controller.js
15.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
angular.module('focaCrearNotaPedido')
    .controller('notaPedidoCtrl',
        ['$scope', '$uibModal', '$location', 'crearNotaPedidoService', 'focaModalService',
            function($scope, $uibModal, $location, crearNotaPedidoService, focaModalService) {
                $scope.show = false;
                $scope.edit = false;
                $scope.dateOptions = {
                    maxDate: new Date(),
                    minDate: new Date(2010, 0, 1)
                };
                $scope.notaPedido = {
                    vendedor: {},
                    cliente: {}
                };
                $scope.articulosTabla = [];
                var idLista;
                var notaPedidoTemp = crearNotaPedidoService.getNotaPedido();
                $scope.domiciliosCliente = crearNotaPedidoService.getDomicilios(1);
                crearNotaPedidoService.getPrecioCondicion().then(
                    function(res) {
                        $scope.precioCondiciones = res.data;
                    }
                );
                if (notaPedidoTemp !== undefined) {
                    notaPedidoTemp.fechaCarga = new Date(notaPedidoTemp.fechaCarga);
                    $scope.notaPedido = notaPedidoTemp;
                    $scope.notaPedido.flete = ($scope.notaPedido.flete).toString();
                    $scope.notaPedido.bomba = ($scope.notaPedido.bomba).toString();
                    idLista = $scope.notaPedido.precioCondicion;
                    crearNotaPedidoService
                        .getArticulosByIdNotaPedido($scope.notaPedido.id).then(
                            function(res) {
                                $scope.articulosTabla = res.data;
                            }
                        );
                    crearNotaPedidoService.getDomiciliosByIdNotaPedido($scope.notaPedido.id).then(
                        function(res) {
                            $scope.notaPedido.domicilio = res.data;
                        }
                    );
                } else {
                    $scope.notaPedido.fechaCarga = new Date();
                    $scope.notaPedido.domicilio = [{ id: 0 }];
                    $scope.notaPedido.bomba = '1';
                    $scope.notaPedido.flete = '0';
                    idLista = undefined;
                }
                $scope.addNewDom = function() {
                    $scope.notaPedido.domicilio.push({ 'id': 0 });
                };
                $scope.removeNewChoice = function(choice) {
                    if ($scope.notaPedido.domicilio.length > 1) {
                        $scope.notaPedido.domicilio.splice($scope.notaPedido.domicilio.findIndex(
                            function(c) {
                                return c.$$hashKey === choice.$$hashKey;
                            }
                        ), 1);
                    }
                };
                $scope.crearNotaPedido = function() {
                    var notaPedido = {
                        id: 0,
                        precioCondicion: $scope.notaPedido.precioCondicion,
                        fechaCarga: $scope.notaPedido.fechaCarga,
                        vendedor: $scope.notaPedido.vendedor,
                        cliente: $scope.notaPedido.cliente,
                        producto: $scope.notaPedido.producto,
                        bomba: $scope.notaPedido.bomba,
                        petrolera: $scope.notaPedido.petrolera,
                        domicilio: $scope.notaPedido.domicilio,
                        kilometros: $scope.notaPedido.kilometros,
                        jurisdiccionIIBB: $scope.notaPedido.jurisdiccionIIBB,
                        costoFinanciacion: $scope.notaPedido.costoFinanciacion,
                        flete: $scope.notaPedido.flete,
                        costoUnitarioKmFlete: $scope.notaPedido.costoUnitarioKmFlete,
                        total: $scope.articulosTabla[0].subTotal
                    };
                    crearNotaPedidoService.crearNotaPedido(notaPedido).then(
                        function() {
                            focaModalService('Nota pedido creada');
                            $location.path('/venta-nota-pedido');
                        }
                    );
                    var articulosNotaPedido = $scope.articulosTabla;
                    for(var i = 0; i< articulosNotaPedido.length;i++) {
                        crearNotaPedidoService
                            .crearArticulosParaNotaPedido(articulosNotaPedido[i]).then(
                                function() {
                                    return;
                                }
                            );
                    }
                };
                $scope.siguienteTab = function() {
                    $scope.active = 1;
                };
                $scope.seleccionarArticulo = function() {
                    if (idLista === undefined) {
                        focaModalService.alert(
                            'primero seleccione una lista de precio y condicion');
                        return;
                    }
                    var modalInstance = $uibModal.open(
                        {
                            ariaLabelledBy: 'Busqueda de Productos',
                            templateUrl: 'modal-busqueda-productos.html',
                            controller: 'modalBusquedaProductosCtrl',
                            resolve: { idLista: function() { return idLista; } },
                            size: 'lg'
                        }
                    );
                    modalInstance.result.then(
                        function(producto) {
                            var newArt =
                            {
                                id: 0,
                                codigo: producto.codigo,
                                sector: producto.sector,
                                descripcion: producto.descripcion,
                                item: $scope.articulosTabla.length + 1,
                                nombre: producto.descripcion,
                                precio: producto.precio.toFixed(2),
                                costoUnitario: producto.costo,
                                cantidad: 1
                            };
                            $scope.articuloACargar = newArt;
                        }, function() {
                            // funcion ejecutada cuando se cancela el modal
                        }
                    );
                };
                $scope.seleccionarVendedor = function() {
                    var modalInstance = $uibModal.open(
                        {
                            ariaLabelledBy: 'Busqueda de Vendedores',
                            templateUrl: 'modal-vendedores.html',
                            controller: 'modalVendedoresCtrl',
                            size: 'lg'
                        }
                    );
                    modalInstance.result.then(
                        function(vendedor) {
                            $scope.notaPedido.vendedor.nombre = vendedor.NomVen;
                        }, function() {
                        }
                    );
                };
                $scope.seleccionarPetrolera = function() {
                    var modalInstance = $uibModal.open(
                        {
                            ariaLabelledBy: 'Busqueda de Petrolera',
                            templateUrl: 'modal-petroleras.html',
                            controller: 'modalPetrolerasCtrl',
                            size: 'lg'
                        }
                    );
                    modalInstance.result.then(
                        function(petrolera) {
                            $scope.notaPedido.petrolera = petrolera.NOM;
                        }, function() {
                        }
                    );
                };
                $scope.seleccionarCliente = function() {
                    var modalInstance = $uibModal.open(
                        {
                            ariaLabelledBy: 'Busqueda de Cliente',
                            templateUrl: 'foca-busqueda-cliente-modal.html',
                            controller: 'focaBusquedaClienteModalController',
                            size: 'lg'
                        }
                    );
                    modalInstance.result.then(
                        function(cliente) {
                            $scope.notaPedido.cliente.nombre = cliente.nom;
                        }, function() {
                        }
                    );
                };
                $scope.mostrarFichaCliente = function() {
                    $uibModal.open(
                        {
                            ariaLabelledBy: 'Datos del Cliente',
                            templateUrl: 'foca-crear-nota-pedido-ficha-cliente.html',
                            controller: 'focaCrearNotaPedidoFichaClienteController',
                            size: 'lg'
                        }
                    );
                };
                $scope.obtenerDomicilios = function(id) {
                    crearNotaPedidoService.getDomicilios(id).then(
                        function(res) {
                            $scope.notaPedido.domicilio = res.data;
                        }
                    );
                };
                $scope.getTotal = function() {
                    var total = 0;                    
                    var array = $scope.articulosTabla;
                    for (var i = 0; i < array.length; i++) {
                        total += array[i].precio * array[i].cantidad;
                    }
                    return total.toFixed(2);
                };
                $scope.getSubTotal = function() {
                    if($scope.articuloACargar) {
                        return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad;
                    }                    
                };
                $scope.cargarArticulos = function() {
                    idLista = $scope.notaPedido.precioCondicion;
                    $scope.articulosTabla = [];
                };
                $scope.abrirModalListaPrecio = function() {
                    var modalInstance = $uibModal.open(
                        {
                            ariaLabelledBy: 'Busqueda de Precio Condición',
                            templateUrl: 'modal-precio-condicion.html',
                            controller: 'focaModalPrecioCondicionController',
                            size: 'lg'
                        }
                    );
                    modalInstance.result.then(
                        function(precioCondicion) {
                            $scope.notaPedido.precioCondicion = precioCondicion.nombre;
                            idLista = precioCondicion.idListaPrecio;
                            $scope.articulosTabla = [];
                        }, function() {
                        }
                    );
                };
                $scope.abrirModalFlete = function() {
                    if($scope.notaPedido.flete === '1') {
                        var modalInstance = $uibModal.open(
                            {
                                ariaLabelledBy: 'Busqueda de Flete',
                                templateUrl: 'modal-flete.html',
                                controller: 'focaModalFleteController',
                                size: 'lg'
                            }
                        );
                        modalInstance.result.then(
                            function(flete) {
                                $scope.choferes = '';
                                $scope.vehiculos = '';
                                $scope.notaPedido.fleteNombre = flete.nombre;
                                $scope.notaPedido.costoUnitarioKmFlete = flete.costoKilometro;
                                $scope.choferes = flete.chofer;
                                $scope.vehiculos = flete.vehiculo;
                            }, function() {
                            }
                        );
                    }
                };
                $scope.agregarATabla = function(key) {
                    if(key === 13) {
                        $scope.articulosTabla.unshift($scope.articuloACargar);
                        $scope.articuloACargar = undefined;
                    }
                };
                $scope.quitarArticulo = function(key) {                    
                    $scope.articulosTabla.splice(key, 1);
                };
                $scope.editarArticulo = function(key) {
                    if(key === 13) {
                        $scope.edit = false;
                    }                    
                };
                $scope.cambioEdit = function() {
                    $scope.edit = !$scope.edit ? true : false;
                };
                $scope.limpiarFlete = function() {
                    $scope.notaPedido.fleteNombre = '';
                    $scope.notaPedido.chofer = '';
                    $scope.notaPedido.vehiculo = '';
                    $scope.notaPedido.kilometros = '';
                    $scope.notaPedido.costoUnitarioKmFlete = '';
                };
                $scope.crearPedidoDemo = function() {
                    focaModalService.alert('Pedido Creado');
                    $scope.notaPedido.precioCondicion = '';
                    $scope.articulosTabla = [];
                    $scope.notaPedido.fleteNombre = '';
                    $scope.notaPedido.chofer = '';
                    $scope.notaPedido.vehiculo = '';
                    $scope.notaPedido.kilometros = '';
                    $scope.notaPedido.costoUnitarioKmFlete = '';
                    $scope.notaPedido.vendedor.nombre = '';
                    $scope.notaPedido.cliente.nombre = '';
                    $scope.domicilio.dom = '';
                    $scope.notaPedido.flete = 0;
                };
            }
        ]
    )
    .controller('notaPedidoListaCtrl', [
        '$scope',
        'crearNotaPedidoService',
        '$location',
        function($scope, crearNotaPedidoService, $location) {
            crearNotaPedidoService.obtenerNotaPedido().then(function(datos) {
                $scope.notaPedidos = datos.data;
            });
            $scope.editar = function(notaPedido) {
                crearNotaPedidoService.setNotaPedido(notaPedido);
                $location.path('/venta-nota-pedido/abm/');
            };
            $scope.crearPedido = function() {
                crearNotaPedidoService.clearNotaPedido();
                $location.path('/venta-nota-pedido/abm/');
            };
        }
    ])
    .controller('focaCrearNotaPedidoFichaClienteController', [
        '$scope',
        'crearNotaPedidoService',
        '$location',
        function($scope, crearNotaPedidoService, $location) {
            crearNotaPedidoService.obtenerNotaPedido().then(function(datos) {
                $scope.notaPedidos = datos.data;
            });
            $scope.editar = function(notaPedido) {
                crearNotaPedidoService.setNotaPedido(notaPedido);
                $location.path('/venta-nota-pedido/abm/');
            };
            $scope.crearPedido = function() {
                crearNotaPedidoService.clearNotaPedido();
                $location.path('/venta-nota-pedido/abm/');
            };
        }
    ]);