Commit ded2b1295613418349886665b4972db2bd0f493c

Authored by Luigi
1 parent 8041e9183f
Exists in master and in 1 other branch develop

Correccion de cambio de monedas

Showing 1 changed file with 4 additions and 0 deletions   Show diff stats
src/js/controller.js
1 angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', 1 angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl',
2 [ 2 [
3 '$scope', 3 '$scope',
4 '$uibModal', 4 '$uibModal',
5 '$location', 5 '$location',
6 '$filter', 6 '$filter',
7 '$timeout', 7 '$timeout',
8 'crearNotaPedidoService', 8 'crearNotaPedidoService',
9 'focaBotoneraLateralService', 9 'focaBotoneraLateralService',
10 'focaModalService', 10 'focaModalService',
11 'notaPedidoBusinessService', 11 'notaPedidoBusinessService',
12 '$rootScope', 12 '$rootScope',
13 'focaSeguimientoService', 13 'focaSeguimientoService',
14 'APP', 14 'APP',
15 'focaLoginService', 15 'focaLoginService',
16 '$localStorage', 16 '$localStorage',
17 function( 17 function(
18 $scope, $uibModal, $location, $filter, $timeout, crearNotaPedidoService, 18 $scope, $uibModal, $location, $filter, $timeout, crearNotaPedidoService,
19 focaBotoneraLateralService, focaModalService, notaPedidoBusinessService, 19 focaBotoneraLateralService, focaModalService, notaPedidoBusinessService,
20 $rootScope, focaSeguimientoService, APP, focaLoginService, $localStorage) 20 $rootScope, focaSeguimientoService, APP, focaLoginService, $localStorage)
21 { 21 {
22 config(); 22 config();
23 23
24 function config() { 24 function config() {
25 // PARAMETROS INICIALES PARA FUNCIONAMIENTO DEL PROGRAMA 25 // PARAMETROS INICIALES PARA FUNCIONAMIENTO DEL PROGRAMA
26 $scope.notaPedido = {}; 26 $scope.notaPedido = {};
27 $scope.isNumber = angular.isNumber; 27 $scope.isNumber = angular.isNumber;
28 $scope.datepickerAbierto = false; 28 $scope.datepickerAbierto = false;
29 $scope.show = false; 29 $scope.show = false;
30 $scope.cargando = true; 30 $scope.cargando = true;
31 $scope.botonera = crearNotaPedidoService.getBotonera(); 31 $scope.botonera = crearNotaPedidoService.getBotonera();
32 $scope.puntoVenta = $filter('rellenarDigitos')(0, 4); 32 $scope.puntoVenta = $filter('rellenarDigitos')(0, 4);
33 $scope.comprobante = $filter('rellenarDigitos')(0, 8); 33 $scope.comprobante = $filter('rellenarDigitos')(0, 8);
34 $scope.dateOptions = { 34 $scope.dateOptions = {
35 maxDate: new Date(), 35 maxDate: new Date(),
36 minDate: new Date(2010, 0, 1) 36 minDate: new Date(2010, 0, 1)
37 }; 37 };
38 38
39 //SETEO BOTONERA LATERAL 39 //SETEO BOTONERA LATERAL
40 $timeout(function() { 40 $timeout(function() {
41 focaBotoneraLateralService.showSalir(false); 41 focaBotoneraLateralService.showSalir(false);
42 focaBotoneraLateralService.showPausar(true); 42 focaBotoneraLateralService.showPausar(true);
43 focaBotoneraLateralService.showGuardar(true, $scope.crearNotaPedido); 43 focaBotoneraLateralService.showGuardar(true, $scope.crearNotaPedido);
44 focaBotoneraLateralService.addCustomButton('Salir', salir); 44 focaBotoneraLateralService.addCustomButton('Salir', salir);
45 }); 45 });
46 46
47 // SETEA BOTONERA DE FACTURADOR TENIENDO EN CUENTA SI ESTA SETEADO EL VENDEDOR 47 // SETEA BOTONERA DE FACTURADOR TENIENDO EN CUENTA SI ESTA SETEADO EL VENDEDOR
48 if (APP === 'distribuidor') { 48 if (APP === 'distribuidor') {
49 $scope.idVendedor = focaLoginService.getLoginData().vendedorCobrador; 49 $scope.idVendedor = focaLoginService.getLoginData().vendedorCobrador;
50 } 50 }
51 51
52 //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]' 52 //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]'
53 crearNotaPedidoService.getCotizacionByIdMoneda(1).then(function(res) { 53 crearNotaPedidoService.getCotizacionByIdMoneda(1).then(function(res) {
54 var monedaPorDefecto = res.data[0]; 54 var monedaPorDefecto = res.data[0];
55 55
56 $scope.notaPedido.cotizacion = Object.assign( 56 $scope.notaPedido.cotizacion = Object.assign(
57 {moneda: monedaPorDefecto}, 57 {moneda: monedaPorDefecto},
58 monedaPorDefecto.cotizaciones[0] 58 monedaPorDefecto.cotizaciones[0]
59 ); 59 );
60 $scope.inicial.cotizacion = $scope.notaPedido.cotizacion; 60 $scope.inicial.cotizacion = $scope.notaPedido.cotizacion;
61 }); 61 });
62 62
63 init(); 63 init();
64 $timeout(function() {getLSNotaPedido();}); 64 $timeout(function() {getLSNotaPedido();});
65 } 65 }
66 66
67 function init() { 67 function init() {
68 $scope.$broadcast('cleanCabecera'); 68 $scope.$broadcast('cleanCabecera');
69 69
70 $scope.notaPedido = { 70 $scope.notaPedido = {
71 id: 0, 71 id: 0,
72 cliente: {}, 72 cliente: {},
73 proveedor: {}, 73 proveedor: {},
74 domicilio: {dom: ''}, 74 domicilio: {dom: ''},
75 vendedor: {}, 75 vendedor: {},
76 fechaCarga: new Date(), 76 fechaCarga: new Date(),
77 cotizacion: {}, 77 cotizacion: {},
78 articulosNotaPedido: [], 78 articulosNotaPedido: [],
79 notaPedidoPlazo: [] 79 notaPedidoPlazo: []
80 }; 80 };
81 $scope.idLista = undefined; 81 $scope.idLista = undefined;
82 82
83 crearNotaPedidoService.getNumeroNotaPedido().then( 83 crearNotaPedidoService.getNumeroNotaPedido().then(
84 function(res) { 84 function(res) {
85 $scope.puntoVenta = $filter('rellenarDigitos')( 85 $scope.puntoVenta = $filter('rellenarDigitos')(
86 res.data.sucursal, 4 86 res.data.sucursal, 4
87 ); 87 );
88 88
89 $scope.comprobante = $filter('rellenarDigitos')( 89 $scope.comprobante = $filter('rellenarDigitos')(
90 res.data.numeroNotaPedido, 8 90 res.data.numeroNotaPedido, 8
91 ); 91 );
92 }, 92 },
93 function(err) { 93 function(err) {
94 focaModalService.alert('La terminal no esta configurada correctamente'); 94 focaModalService.alert('La terminal no esta configurada correctamente');
95 console.info(err); 95 console.info(err);
96 } 96 }
97 ); 97 );
98 98
99 if (APP === 'distribuidor') { 99 if (APP === 'distribuidor') {
100 crearNotaPedidoService.getVendedorById($scope.idVendedor).then( 100 crearNotaPedidoService.getVendedorById($scope.idVendedor).then(
101 function(res) { 101 function(res) {
102 var vendedor = res.data; 102 var vendedor = res.data;
103 $scope.$broadcast('addCabecera', { 103 $scope.$broadcast('addCabecera', {
104 label: 'Vendedor:', 104 label: 'Vendedor:',
105 valor: $filter('rellenarDigitos')(vendedor.NUM, 3) + ' - ' + 105 valor: $filter('rellenarDigitos')(vendedor.NUM, 3) + ' - ' +
106 vendedor.NOM 106 vendedor.NOM
107 }); 107 });
108 108
109 $scope.notaPedido.vendedor = vendedor; 109 $scope.notaPedido.vendedor = vendedor;
110 } 110 }
111 ); 111 );
112 } 112 }
113 113
114 $scope.inicial = angular.copy($scope.notaPedido); 114 $scope.inicial = angular.copy($scope.notaPedido);
115 } 115 }
116 116
117 $scope.$watch('notaPedido', function(newValue) { 117 $scope.$watch('notaPedido', function(newValue) {
118 focaBotoneraLateralService.setPausarData({ 118 focaBotoneraLateralService.setPausarData({
119 label: 'notaPedido', 119 label: 'notaPedido',
120 val: newValue 120 val: newValue
121 }); 121 });
122 }, true); 122 }, true);
123 123
124 $scope.crearNotaPedido = function() { 124 $scope.crearNotaPedido = function() {
125 if (!$scope.notaPedido.cliente.COD) { 125 if (!$scope.notaPedido.cliente.COD) {
126 focaModalService.alert('Ingrese Cliente'); 126 focaModalService.alert('Ingrese Cliente');
127 return; 127 return;
128 } else if (!$scope.notaPedido.proveedor.COD) { 128 } else if (!$scope.notaPedido.proveedor.COD) {
129 focaModalService.alert('Ingrese Proveedor'); 129 focaModalService.alert('Ingrese Proveedor');
130 return; 130 return;
131 } else if (!$scope.notaPedido.cotizacion.ID) { 131 } else if (!$scope.notaPedido.cotizacion.ID) {
132 focaModalService.alert('Ingrese Cotización'); 132 focaModalService.alert('Ingrese Cotización');
133 return; 133 return;
134 } else if (!$scope.notaPedido.cotizacion.moneda.ID) { 134 } else if (!$scope.notaPedido.cotizacion.moneda.ID) {
135 focaModalService.alert('Ingrese Moneda'); 135 focaModalService.alert('Ingrese Moneda');
136 return; 136 return;
137 } else if (!$scope.notaPedido.notaPedidoPlazo) { 137 } else if (!$scope.notaPedido.notaPedidoPlazo) {
138 focaModalService.alert('Ingrese Precios y Condiciones'); 138 focaModalService.alert('Ingrese Precios y Condiciones');
139 return; 139 return;
140 } else if ( 140 } else if (
141 $scope.notaPedido.flete === undefined || $scope.notaPedido.flete === null) 141 $scope.notaPedido.flete === undefined || $scope.notaPedido.flete === null)
142 { 142 {
143 focaModalService.alert('Ingrese Flete'); 143 focaModalService.alert('Ingrese Flete');
144 return; 144 return;
145 } else if (!$scope.notaPedido.domicilioStamp) {//TODO validar domicilio correcto 145 } else if (!$scope.notaPedido.domicilioStamp) {//TODO validar domicilio correcto
146 focaModalService.alert('Ingrese Domicilio'); 146 focaModalService.alert('Ingrese Domicilio');
147 return; 147 return;
148 } else if ($scope.notaPedido.articulosNotaPedido.length === 0) { 148 } else if ($scope.notaPedido.articulosNotaPedido.length === 0) {
149 focaModalService.alert('Debe cargar al menos un articulo'); 149 focaModalService.alert('Debe cargar al menos un articulo');
150 return; 150 return;
151 } 151 }
152 focaBotoneraLateralService.startGuardar(); 152 focaBotoneraLateralService.startGuardar();
153 $scope.saveLoading = true; 153 $scope.saveLoading = true;
154 var notaPedido = { 154 var notaPedido = {
155 id: $scope.notaPedido.id, 155 id: $scope.notaPedido.id,
156 fechaCarga: new Date($scope.notaPedido.fechaCarga) 156 fechaCarga: new Date($scope.notaPedido.fechaCarga)
157 .toISOString().slice(0, 19).replace('T', ' '), 157 .toISOString().slice(0, 19).replace('T', ' '),
158 idVendedor: $scope.notaPedido.vendedor.id, 158 idVendedor: $scope.notaPedido.vendedor.id,
159 idCliente: $scope.notaPedido.cliente.COD, 159 idCliente: $scope.notaPedido.cliente.COD,
160 nombreCliente: $scope.notaPedido.cliente.NOM, 160 nombreCliente: $scope.notaPedido.cliente.NOM,
161 cuitCliente: $scope.notaPedido.cliente.CUIT, 161 cuitCliente: $scope.notaPedido.cliente.CUIT,
162 idProveedor: $scope.notaPedido.proveedor.COD, 162 idProveedor: $scope.notaPedido.proveedor.COD,
163 idDomicilio: $scope.notaPedido.domicilio.id, 163 idDomicilio: $scope.notaPedido.domicilio.id,
164 idCotizacion: $scope.notaPedido.cotizacion.ID, 164 idCotizacion: $scope.notaPedido.cotizacion.ID,
165 idPrecioCondicion: $scope.notaPedido.idPrecioCondicion, 165 idPrecioCondicion: $scope.notaPedido.idPrecioCondicion,
166 cotizacion: $scope.notaPedido.cotizacion.VENDEDOR, 166 cotizacion: $scope.notaPedido.cotizacion.VENDEDOR,
167 flete: $scope.notaPedido.flete, 167 flete: $scope.notaPedido.flete,
168 fob: $scope.notaPedido.fob, 168 fob: $scope.notaPedido.fob,
169 bomba: $scope.notaPedido.bomba, 169 bomba: $scope.notaPedido.bomba,
170 kilometros: $scope.notaPedido.kilometros, 170 kilometros: $scope.notaPedido.kilometros,
171 domicilioStamp: $scope.notaPedido.domicilioStamp, 171 domicilioStamp: $scope.notaPedido.domicilioStamp,
172 observaciones: $scope.notaPedido.observaciones, 172 observaciones: $scope.notaPedido.observaciones,
173 estado: 0, 173 estado: 0,
174 total: $scope.getTotal() 174 total: $scope.getTotal()
175 }; 175 };
176 crearNotaPedidoService.crearNotaPedido(notaPedido).then( 176 crearNotaPedidoService.crearNotaPedido(notaPedido).then(
177 function(data) { 177 function(data) {
178 // Al guardar los datos de la nota de pedido logueamos la 178 // Al guardar los datos de la nota de pedido logueamos la
179 // actividad para su seguimiento. 179 // actividad para su seguimiento.
180 //TODO: GUARDAR POSISIONAMIENTO AL EDITAR? 180 //TODO: GUARDAR POSISIONAMIENTO AL EDITAR?
181 focaSeguimientoService.guardarPosicion( 181 focaSeguimientoService.guardarPosicion(
182 'Nota de pedido', 182 'Nota de pedido',
183 data.data.id, 183 data.data.id,
184 '' 184 ''
185 ); 185 );
186 notaPedidoBusinessService.addArticulos( 186 notaPedidoBusinessService.addArticulos(
187 $scope.notaPedido.articulosNotaPedido, 187 $scope.notaPedido.articulosNotaPedido,
188 data.data.id, $scope.notaPedido.cotizacion.VENDEDOR); 188 data.data.id, $scope.notaPedido.cotizacion.VENDEDOR);
189 189
190 if ($scope.notaPedido.notaPedidoPuntoDescarga) { 190 if ($scope.notaPedido.notaPedidoPuntoDescarga) {
191 notaPedidoBusinessService.addPuntosDescarga(data.data.id, 191 notaPedidoBusinessService.addPuntosDescarga(data.data.id,
192 $scope.notaPedido.notaPedidoPuntoDescarga); 192 $scope.notaPedido.notaPedidoPuntoDescarga);
193 } 193 }
194 194
195 var plazos = $scope.notaPedido.notaPedidoPlazo; 195 var plazos = $scope.notaPedido.notaPedidoPlazo;
196 var plazosACrear = []; 196 var plazosACrear = [];
197 plazos.forEach(function(plazo) { 197 plazos.forEach(function(plazo) {
198 plazosACrear.push({ 198 plazosACrear.push({
199 idNotaPedido: data.data.id, 199 idNotaPedido: data.data.id,
200 dias: plazo.dias 200 dias: plazo.dias
201 }); 201 });
202 }); 202 });
203 203
204 if (plazosACrear.length) { 204 if (plazosACrear.length) {
205 crearNotaPedidoService.crearPlazosParaNotaPedido(plazosACrear); 205 crearNotaPedidoService.crearPlazosParaNotaPedido(plazosACrear);
206 } 206 }
207 207
208 notaPedidoBusinessService.addEstado(data.data.id, 208 notaPedidoBusinessService.addEstado(data.data.id,
209 $scope.notaPedido.vendedor.id); 209 $scope.notaPedido.vendedor.id);
210 210
211 focaBotoneraLateralService.endGuardar(true); 211 focaBotoneraLateralService.endGuardar(true);
212 $scope.saveLoading = false; 212 $scope.saveLoading = false;
213 213
214 init(); 214 init();
215 }, function(error) { 215 }, function(error) {
216 focaModalService.alert('Hubo un error al crear la nota de pedido'); 216 focaModalService.alert('Hubo un error al crear la nota de pedido');
217 focaBotoneraLateralService.endGuardar(); 217 focaBotoneraLateralService.endGuardar();
218 $scope.saveLoading = false; 218 $scope.saveLoading = false;
219 console.info(error); 219 console.info(error);
220 } 220 }
221 ); 221 );
222 }; 222 };
223 223
224 $scope.seleccionarNotaPedido = function() { 224 $scope.seleccionarNotaPedido = function() {
225 var modalInstance = $uibModal.open( 225 var modalInstance = $uibModal.open(
226 { 226 {
227 ariaLabelledBy: 'Busqueda de Nota de Pedido', 227 ariaLabelledBy: 'Busqueda de Nota de Pedido',
228 templateUrl: 'foca-modal-nota-pedido.html', 228 templateUrl: 'foca-modal-nota-pedido.html',
229 controller: 'focaModalNotaPedidoController', 229 controller: 'focaModalNotaPedidoController',
230 size: 'lg', 230 size: 'lg',
231 resolve: { 231 resolve: {
232 usadoPor: function() {return 'notaPedido';}, 232 usadoPor: function() {return 'notaPedido';},
233 idVendedor: function() { 233 idVendedor: function() {
234 if (APP === 'distribuidor') 234 if (APP === 'distribuidor')
235 return $scope.notaPedido.vendedor.id; 235 return $scope.notaPedido.vendedor.id;
236 else 236 else
237 return null; 237 return null;
238 } 238 }
239 } 239 }
240 } 240 }
241 ); 241 );
242 modalInstance.result.then(setearNotaPedido); 242 modalInstance.result.then(setearNotaPedido);
243 }; 243 };
244 244
245 $scope.seleccionarProductos = function() { 245 $scope.seleccionarProductos = function() {
246 if ($scope.idLista === undefined) { 246 if ($scope.idLista === undefined) {
247 focaModalService.alert( 247 focaModalService.alert(
248 'Primero seleccione una lista de precio y condicion'); 248 'Primero seleccione una lista de precio y condicion');
249 return; 249 return;
250 } 250 }
251 var modalInstance = $uibModal.open( 251 var modalInstance = $uibModal.open(
252 { 252 {
253 ariaLabelledBy: 'Busqueda de Productos', 253 ariaLabelledBy: 'Busqueda de Productos',
254 templateUrl: 'modal-busqueda-productos.html', 254 templateUrl: 'modal-busqueda-productos.html',
255 controller: 'modalBusquedaProductosCtrl', 255 controller: 'modalBusquedaProductosCtrl',
256 resolve: { 256 resolve: {
257 parametroProducto: { 257 parametroProducto: {
258 idLista: $scope.idLista, 258 idLista: $scope.idLista,
259 cotizacion: $scope.notaPedido.cotizacion.VENDEDOR, 259 cotizacion: $scope.notaPedido.cotizacion.VENDEDOR,
260 simbolo: $scope.notaPedido.cotizacion.moneda.SIMBOLO 260 simbolo: $scope.notaPedido.cotizacion.moneda.SIMBOLO
261 } 261 }
262 }, 262 },
263 size: 'lg' 263 size: 'lg'
264 } 264 }
265 ); 265 );
266 modalInstance.result.then( 266 modalInstance.result.then(
267 function(producto) { 267 function(producto) {
268 var newArt = 268 var newArt =
269 { 269 {
270 id: 0, 270 id: 0,
271 codigo: producto.codigo, 271 codigo: producto.codigo,
272 sector: producto.sector, 272 sector: producto.sector,
273 sectorCodigo: producto.sector + '-' + producto.codigo, 273 sectorCodigo: producto.sector + '-' + producto.codigo,
274 descripcion: producto.descripcion, 274 descripcion: producto.descripcion,
275 item: $scope.notaPedido.articulosNotaPedido.length + 1, 275 item: $scope.notaPedido.articulosNotaPedido.length + 1,
276 nombre: producto.descripcion, 276 nombre: producto.descripcion,
277 precio: parseFloat(producto.precio.toFixed(4)), 277 precio: parseFloat(producto.precio.toFixed(4)),
278 costoUnitario: producto.costo, 278 costoUnitario: producto.costo,
279 editCantidad: false, 279 editCantidad: false,
280 editPrecio: false, 280 editPrecio: false,
281 rubro: producto.CodRub, 281 rubro: producto.CodRub,
282 exentoUnitario: producto.precio, 282 exentoUnitario: producto.precio,
283 ivaUnitario: producto.IMPIVA, 283 ivaUnitario: producto.IMPIVA,
284 impuestoInternoUnitario: producto.ImpInt, 284 impuestoInternoUnitario: producto.ImpInt,
285 impuestoInterno1Unitario: producto.ImpInt2, 285 impuestoInterno1Unitario: producto.ImpInt2,
286 impuestoInterno2Unitario: producto.ImpInt3, 286 impuestoInterno2Unitario: producto.ImpInt3,
287 precioLista: producto.precio, 287 precioLista: producto.precio,
288 combustible: 1, 288 combustible: 1,
289 facturado: 0, 289 facturado: 0,
290 idArticulo: producto.id 290 idArticulo: producto.id
291 }; 291 };
292 $scope.articuloACargar = newArt; 292 $scope.articuloACargar = newArt;
293 $scope.cargando = false; 293 $scope.cargando = false;
294 }, function() { 294 }, function() {
295 // funcion ejecutada cuando se cancela el modal 295 // funcion ejecutada cuando se cancela el modal
296 } 296 }
297 ); 297 );
298 }; 298 };
299 299
300 $scope.seleccionarPuntosDeDescarga = function() { 300 $scope.seleccionarPuntosDeDescarga = function() {
301 if (!$scope.notaPedido.cliente.COD || !$scope.notaPedido.domicilio.id) { 301 if (!$scope.notaPedido.cliente.COD || !$scope.notaPedido.domicilio.id) {
302 focaModalService.alert('Primero seleccione un cliente y un domicilio'); 302 focaModalService.alert('Primero seleccione un cliente y un domicilio');
303 return; 303 return;
304 } else { 304 } else {
305 var modalInstance = $uibModal.open( 305 var modalInstance = $uibModal.open(
306 { 306 {
307 ariaLabelledBy: 'Búsqueda de Puntos de descarga', 307 ariaLabelledBy: 'Búsqueda de Puntos de descarga',
308 templateUrl: 'modal-punto-descarga.html', 308 templateUrl: 'modal-punto-descarga.html',
309 controller: 'focaModalPuntoDescargaController', 309 controller: 'focaModalPuntoDescargaController',
310 size: 'lg', 310 size: 'lg',
311 resolve: { 311 resolve: {
312 filters: { 312 filters: {
313 idDomicilio: $scope.notaPedido.domicilio.id, 313 idDomicilio: $scope.notaPedido.domicilio.id,
314 idCliente: $scope.notaPedido.cliente.COD, 314 idCliente: $scope.notaPedido.cliente.COD,
315 articulos: $scope.notaPedido.articulosNotaPedido, 315 articulos: $scope.notaPedido.articulosNotaPedido,
316 puntosDescarga: $scope.notaPedido.notaPedidoPuntoDescarga 316 puntosDescarga: $scope.notaPedido.notaPedidoPuntoDescarga
317 } 317 }
318 } 318 }
319 } 319 }
320 ); 320 );
321 modalInstance.result.then( 321 modalInstance.result.then(
322 function(puntosDescarga) { 322 function(puntosDescarga) {
323 $scope.notaPedido.notaPedidoPuntoDescarga = puntosDescarga; 323 $scope.notaPedido.notaPedidoPuntoDescarga = puntosDescarga;
324 324
325 //AGREGO PUNTOS DE DESCARGA A CABECERA 325 //AGREGO PUNTOS DE DESCARGA A CABECERA
326 var puntosStamp = ''; 326 var puntosStamp = '';
327 puntosDescarga.forEach(function(punto, idx, arr) { 327 puntosDescarga.forEach(function(punto, idx, arr) {
328 puntosStamp += punto.descripcion; 328 puntosStamp += punto.descripcion;
329 if ((idx + 1) !== arr.length) puntosStamp += ', '; 329 if ((idx + 1) !== arr.length) puntosStamp += ', ';
330 }); 330 });
331 331
332 $scope.$broadcast('addCabecera', { 332 $scope.$broadcast('addCabecera', {
333 label: 'Puntos de descarga:', 333 label: 'Puntos de descarga:',
334 valor: puntosStamp 334 valor: puntosStamp
335 }); 335 });
336 }, function() { 336 }, function() {
337 $scope.abrirModalDomicilios($scope.cliente); 337 $scope.abrirModalDomicilios($scope.cliente);
338 } 338 }
339 ); 339 );
340 } 340 }
341 }; 341 };
342 342
343 $scope.seleccionarProveedor = function() { 343 $scope.seleccionarProveedor = function() {
344 $scope.abrirModalProveedores(function() { 344 $scope.abrirModalProveedores(function() {
345 if (validarNotaRemitada()) { 345 if (validarNotaRemitada()) {
346 var modalInstance = $uibModal.open( 346 var modalInstance = $uibModal.open(
347 { 347 {
348 ariaLabelledBy: 'Busqueda de Flete', 348 ariaLabelledBy: 'Busqueda de Flete',
349 templateUrl: 'modal-flete.html', 349 templateUrl: 'modal-flete.html',
350 controller: 'focaModalFleteController', 350 controller: 'focaModalFleteController',
351 size: 'lg', 351 size: 'lg',
352 resolve: { 352 resolve: {
353 parametrosFlete: 353 parametrosFlete:
354 function() { 354 function() {
355 return { 355 return {
356 flete: $scope.notaPedido.fob ? 'FOB' : 356 flete: $scope.notaPedido.fob ? 'FOB' :
357 ( $scope.notaPedido.flete ? '1' : 357 ( $scope.notaPedido.flete ? '1' :
358 ($scope.notaPedido.flete === undefined ? 358 ($scope.notaPedido.flete === undefined ?
359 null : '0')), 359 null : '0')),
360 bomba: $scope.notaPedido.bomba ? '1' : 360 bomba: $scope.notaPedido.bomba ? '1' :
361 ($scope.notaPedido.bomba === undefined ? 361 ($scope.notaPedido.bomba === undefined ?
362 null : '0'), 362 null : '0'),
363 kilometros: $scope.notaPedido.kilometros 363 kilometros: $scope.notaPedido.kilometros
364 }; 364 };
365 } 365 }
366 } 366 }
367 } 367 }
368 ); 368 );
369 modalInstance.result.then( 369 modalInstance.result.then(
370 function(datos) { 370 function(datos) {
371 $scope.notaPedido.flete = datos.flete; 371 $scope.notaPedido.flete = datos.flete;
372 $scope.notaPedido.fob = datos.FOB; 372 $scope.notaPedido.fob = datos.FOB;
373 $scope.notaPedido.bomba = datos.bomba; 373 $scope.notaPedido.bomba = datos.bomba;
374 $scope.notaPedido.kilometros = datos.kilometros; 374 $scope.notaPedido.kilometros = datos.kilometros;
375 $scope.$broadcast('addCabecera', { 375 $scope.$broadcast('addCabecera', {
376 label: 'Flete:', 376 label: 'Flete:',
377 valor: datos.FOB ? 'FOB' : (datos.flete ? 'Si' : 'No') 377 valor: datos.FOB ? 'FOB' : (datos.flete ? 'Si' : 'No')
378 }); 378 });
379 if (datos.flete) { 379 if (datos.flete) {
380 $scope.$broadcast('addCabecera', { 380 $scope.$broadcast('addCabecera', {
381 label: 'Bomba:', 381 label: 'Bomba:',
382 valor: datos.bomba ? 'Si' : 'No' 382 valor: datos.bomba ? 'Si' : 'No'
383 }); 383 });
384 $scope.$broadcast('addCabecera', { 384 $scope.$broadcast('addCabecera', {
385 label: 'Kilometros:', 385 label: 'Kilometros:',
386 valor: datos.kilometros 386 valor: datos.kilometros
387 }); 387 });
388 } else { 388 } else {
389 $scope.$broadcast('removeCabecera', 'Bomba:'); 389 $scope.$broadcast('removeCabecera', 'Bomba:');
390 $scope.$broadcast('removeCabecera', 'Kilometros:'); 390 $scope.$broadcast('removeCabecera', 'Kilometros:');
391 $scope.notaPedido.bomba = false; 391 $scope.notaPedido.bomba = false;
392 $scope.notaPedido.kilometros = null; 392 $scope.notaPedido.kilometros = null;
393 } 393 }
394 }, function() { 394 }, function() {
395 $scope.seleccionarTransportista(); 395 $scope.seleccionarTransportista();
396 } 396 }
397 ); 397 );
398 } 398 }
399 }); 399 });
400 }; 400 };
401 401
402 $scope.seleccionarVendedor = function(callback, ocultarVendedor) { 402 $scope.seleccionarVendedor = function(callback, ocultarVendedor) {
403 if (APP === 'distribuidor' || ocultarVendedor) { 403 if (APP === 'distribuidor' || ocultarVendedor) {
404 callback(); 404 callback();
405 return; 405 return;
406 } 406 }
407 407
408 if (validarNotaRemitada()) { 408 if (validarNotaRemitada()) {
409 var parametrosModal = { 409 var parametrosModal = {
410 titulo: 'Búsqueda vendedores', 410 titulo: 'Búsqueda vendedores',
411 query: '/vendedor', 411 query: '/vendedor',
412 columnas: [ 412 columnas: [
413 { 413 {
414 propiedad: 'NUM', 414 propiedad: 'NUM',
415 nombre: 'Código', 415 nombre: 'Código',
416 filtro: { 416 filtro: {
417 nombre: 'rellenarDigitos', 417 nombre: 'rellenarDigitos',
418 parametro: 3 418 parametro: 3
419 } 419 }
420 }, 420 },
421 { 421 {
422 propiedad: 'NOM', 422 propiedad: 'NOM',
423 nombre: 'Nombre' 423 nombre: 'Nombre'
424 } 424 }
425 ], 425 ],
426 size: 'md' 426 size: 'md'
427 }; 427 };
428 focaModalService.modal(parametrosModal).then( 428 focaModalService.modal(parametrosModal).then(
429 function(vendedor) { 429 function(vendedor) {
430 $scope.$broadcast('addCabecera', { 430 $scope.$broadcast('addCabecera', {
431 label: 'Vendedor:', 431 label: 'Vendedor:',
432 valor: $filter('rellenarDigitos')(vendedor.NUM, 3) + ' - ' + 432 valor: $filter('rellenarDigitos')(vendedor.NUM, 3) + ' - ' +
433 vendedor.NOM 433 vendedor.NOM
434 }); 434 });
435 $scope.notaPedido.vendedor = vendedor; 435 $scope.notaPedido.vendedor = vendedor;
436 deleteCliente(); 436 deleteCliente();
437 callback(); 437 callback();
438 }, function() {} 438 }, function() {}
439 ); 439 );
440 } 440 }
441 }; 441 };
442 442
443 $scope.seleccionarCliente = function(ocultarVendedor) { 443 $scope.seleccionarCliente = function(ocultarVendedor) {
444 $scope.seleccionarVendedor(function() { 444 $scope.seleccionarVendedor(function() {
445 if (validarNotaRemitada()) { 445 if (validarNotaRemitada()) {
446 var modalInstance = $uibModal.open( 446 var modalInstance = $uibModal.open(
447 { 447 {
448 ariaLabelledBy: 'Busqueda de Cliente', 448 ariaLabelledBy: 'Busqueda de Cliente',
449 templateUrl: 'foca-busqueda-cliente-modal.html', 449 templateUrl: 'foca-busqueda-cliente-modal.html',
450 controller: 'focaBusquedaClienteModalController', 450 controller: 'focaBusquedaClienteModalController',
451 resolve: { 451 resolve: {
452 vendedor: function() { return $scope.notaPedido.vendedor; }, 452 vendedor: function() { return $scope.notaPedido.vendedor; },
453 cobrador: function() { return null; } 453 cobrador: function() { return null; }
454 }, 454 },
455 size: 'lg' 455 size: 'lg'
456 } 456 }
457 ); 457 );
458 modalInstance.result.then( 458 modalInstance.result.then(
459 function(cliente) { 459 function(cliente) {
460 $scope.abrirModalDomicilios(cliente); 460 $scope.abrirModalDomicilios(cliente);
461 $scope.cliente = cliente; 461 $scope.cliente = cliente;
462 }, function() { 462 }, function() {
463 if (APP !== 'distribuidor') $scope.seleccionarCliente(); 463 if (APP !== 'distribuidor') $scope.seleccionarCliente();
464 } 464 }
465 ); 465 );
466 } 466 }
467 }, ocultarVendedor); 467 }, ocultarVendedor);
468 }; 468 };
469 469
470 $scope.abrirModalProveedores = function(callback) { 470 $scope.abrirModalProveedores = function(callback) {
471 if (validarNotaRemitada()) { 471 if (validarNotaRemitada()) {
472 var parametrosModal = { 472 var parametrosModal = {
473 titulo: 'Búsqueda de Proveedor', 473 titulo: 'Búsqueda de Proveedor',
474 query: '/proveedor', 474 query: '/proveedor',
475 columnas: [ 475 columnas: [
476 { 476 {
477 nombre: 'Código', 477 nombre: 'Código',
478 propiedad: 'COD', 478 propiedad: 'COD',
479 filtro: { 479 filtro: {
480 nombre: 'rellenarDigitos', 480 nombre: 'rellenarDigitos',
481 parametro: 5 481 parametro: 5
482 } 482 }
483 }, 483 },
484 { 484 {
485 nombre: 'Nombre', 485 nombre: 'Nombre',
486 propiedad: 'NOM' 486 propiedad: 'NOM'
487 }, 487 },
488 { 488 {
489 nombre: 'CUIT', 489 nombre: 'CUIT',
490 propiedad: 'CUIT' 490 propiedad: 'CUIT'
491 } 491 }
492 ], 492 ],
493 tipo: 'POST', 493 tipo: 'POST',
494 json: {razonCuitCod: ''} 494 json: {razonCuitCod: ''}
495 }; 495 };
496 focaModalService.modal(parametrosModal).then( 496 focaModalService.modal(parametrosModal).then(
497 function(proveedor) { 497 function(proveedor) {
498 $scope.notaPedido.proveedor = proveedor; 498 $scope.notaPedido.proveedor = proveedor;
499 $scope.$broadcast('addCabecera', { 499 $scope.$broadcast('addCabecera', {
500 label: 'Proveedor:', 500 label: 'Proveedor:',
501 valor: $filter('rellenarDigitos')(proveedor.COD, 5) + ' - ' + 501 valor: $filter('rellenarDigitos')(proveedor.COD, 5) + ' - ' +
502 proveedor.NOM 502 proveedor.NOM
503 }); 503 });
504 callback(); 504 callback();
505 }, function() { 505 }, function() {
506 506
507 } 507 }
508 ); 508 );
509 } 509 }
510 }; 510 };
511 511
512 $scope.abrirModalDomicilios = function(cliente) { 512 $scope.abrirModalDomicilios = function(cliente) {
513 var modalInstanceDomicilio = $uibModal.open( 513 var modalInstanceDomicilio = $uibModal.open(
514 { 514 {
515 ariaLabelledBy: 'Busqueda de Domicilios', 515 ariaLabelledBy: 'Busqueda de Domicilios',
516 templateUrl: 'modal-domicilio.html', 516 templateUrl: 'modal-domicilio.html',
517 controller: 'focaModalDomicilioController', 517 controller: 'focaModalDomicilioController',
518 resolve: { 518 resolve: {
519 idCliente: function() { return cliente.cod; }, 519 idCliente: function() { return cliente.cod; },
520 esNuevo: function() { return cliente.esNuevo; } 520 esNuevo: function() { return cliente.esNuevo; }
521 }, 521 },
522 size: 'lg', 522 size: 'lg',
523 } 523 }
524 ); 524 );
525 modalInstanceDomicilio.result.then( 525 modalInstanceDomicilio.result.then(
526 function(domicilio) { 526 function(domicilio) {
527 $scope.notaPedido.domicilio = domicilio; 527 $scope.notaPedido.domicilio = domicilio;
528 $scope.notaPedido.cliente = { 528 $scope.notaPedido.cliente = {
529 COD: cliente.cod, 529 COD: cliente.cod,
530 CUIT: cliente.cuit, 530 CUIT: cliente.cuit,
531 NOM: cliente.nom, 531 NOM: cliente.nom,
532 MOD: cliente.mod 532 MOD: cliente.mod
533 }; 533 };
534 var domicilioStamp = 534 var domicilioStamp =
535 domicilio.Calle + ' ' + domicilio.Numero + ', ' + 535 domicilio.Calle + ' ' + domicilio.Numero + ', ' +
536 domicilio.Localidad + ', ' + domicilio.Provincia; 536 domicilio.Localidad + ', ' + domicilio.Provincia;
537 $scope.notaPedido.domicilioStamp = domicilioStamp; 537 $scope.notaPedido.domicilioStamp = domicilioStamp;
538 538
539 $scope.notaPedido.notaPedidoPuntoDescarga = domicilio.puntosDescarga; 539 $scope.notaPedido.notaPedidoPuntoDescarga = domicilio.puntosDescarga;
540 540
541 $scope.$broadcast('addCabecera', { 541 $scope.$broadcast('addCabecera', {
542 label: 'Cliente:', 542 label: 'Cliente:',
543 valor: $filter('rellenarDigitos')(cliente.cod, 5) + ' - ' + cliente.nom 543 valor: $filter('rellenarDigitos')(cliente.cod, 5) + ' - ' + cliente.nom
544 }); 544 });
545 $scope.$broadcast('addCabecera', { 545 $scope.$broadcast('addCabecera', {
546 label: 'Domicilio:', 546 label: 'Domicilio:',
547 valor: domicilioStamp 547 valor: domicilioStamp
548 }); 548 });
549 if (domicilio.verPuntos) { 549 if (domicilio.verPuntos) {
550 delete $scope.notaPedido.domicilio.verPuntos; 550 delete $scope.notaPedido.domicilio.verPuntos;
551 $scope.seleccionarPuntosDeDescarga(); 551 $scope.seleccionarPuntosDeDescarga();
552 } else { 552 } else {
553 crearNotaPedidoService 553 crearNotaPedidoService
554 .getPuntosDescargaByClienDom(domicilio.id, cliente.cod) 554 .getPuntosDescargaByClienDom(domicilio.id, cliente.cod)
555 .then(function(res) { 555 .then(function(res) {
556 if (res.data.length) $scope.seleccionarPuntosDeDescarga(); 556 if (res.data.length) $scope.seleccionarPuntosDeDescarga();
557 }); 557 });
558 } 558 }
559 }, function() { 559 }, function() {
560 $scope.seleccionarCliente(true); 560 $scope.seleccionarCliente(true);
561 return; 561 return;
562 } 562 }
563 ); 563 );
564 }; 564 };
565 565
566 $scope.getTotal = function() { 566 $scope.getTotal = function() {
567 var total = 0; 567 var total = 0;
568 if ($scope.notaPedido.articulosNotaPedido) { 568 if ($scope.notaPedido.articulosNotaPedido) {
569 var arrayTempArticulos = $scope.notaPedido.articulosNotaPedido; 569 var arrayTempArticulos = $scope.notaPedido.articulosNotaPedido;
570 for (var i = 0; i < arrayTempArticulos.length; i++) { 570 for (var i = 0; i < arrayTempArticulos.length; i++) {
571 total += arrayTempArticulos[i].precio * arrayTempArticulos[i].cantidad; 571 total += arrayTempArticulos[i].precio * arrayTempArticulos[i].cantidad;
572 } 572 }
573 } 573 }
574 return parseFloat(total.toFixed(2)); 574 return parseFloat(total.toFixed(2));
575 }; 575 };
576 576
577 $scope.getSubTotal = function() { 577 $scope.getSubTotal = function() {
578 if ($scope.articuloACargar) { 578 if ($scope.articuloACargar) {
579 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad; 579 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad;
580 } 580 }
581 }; 581 };
582 582
583 $scope.seleccionarPreciosYCondiciones = function() { 583 $scope.seleccionarPreciosYCondiciones = function() {
584 if (!$scope.notaPedido.cliente.COD) { 584 if (!$scope.notaPedido.cliente.COD) {
585 focaModalService.alert('Primero seleccione un cliente'); 585 focaModalService.alert('Primero seleccione un cliente');
586 return; 586 return;
587 } 587 }
588 if (validarNotaRemitada()) { 588 if (validarNotaRemitada()) {
589 var modalInstance = $uibModal.open( 589 var modalInstance = $uibModal.open(
590 { 590 {
591 ariaLabelledBy: 'Busqueda de Precio Condición', 591 ariaLabelledBy: 'Busqueda de Precio Condición',
592 templateUrl: 'modal-precio-condicion.html', 592 templateUrl: 'modal-precio-condicion.html',
593 controller: 'focaModalPrecioCondicionController', 593 controller: 'focaModalPrecioCondicionController',
594 size: 'lg', 594 size: 'lg',
595 resolve: { 595 resolve: {
596 idListaPrecio: function() { 596 idListaPrecio: function() {
597 return $scope.notaPedido.cliente.MOD || null; 597 return $scope.notaPedido.cliente.MOD || null;
598 } 598 }
599 } 599 }
600 } 600 }
601 ); 601 );
602 modalInstance.result.then( 602 modalInstance.result.then(
603 function(precioCondicion) { 603 function(precioCondicion) {
604 var cabecera = ''; 604 var cabecera = '';
605 var plazosConcat = ''; 605 var plazosConcat = '';
606 if (!Array.isArray(precioCondicion)) { 606 if (!Array.isArray(precioCondicion)) {
607 $scope.notaPedido.notaPedidoPlazo = precioCondicion.plazoPago; 607 $scope.notaPedido.notaPedidoPlazo = precioCondicion.plazoPago;
608 $scope.notaPedido.precioCondicion = precioCondicion; 608 $scope.notaPedido.precioCondicion = precioCondicion;
609 $scope.notaPedido.idPrecioCondicion = precioCondicion.id; 609 $scope.notaPedido.idPrecioCondicion = precioCondicion.id;
610 $scope.idLista = precioCondicion.idListaPrecio; 610 $scope.idLista = precioCondicion.idListaPrecio;
611 for (var i = 0; i < precioCondicion.plazoPago.length; i++) { 611 for (var i = 0; i < precioCondicion.plazoPago.length; i++) {
612 plazosConcat += precioCondicion.plazoPago[i].dias + ' '; 612 plazosConcat += precioCondicion.plazoPago[i].dias + ' ';
613 } 613 }
614 cabecera = $filter('rellenarDigitos')(precioCondicion.id, 4) + 614 cabecera = $filter('rellenarDigitos')(precioCondicion.id, 4) +
615 ' - ' + precioCondicion.nombre + ' ' + plazosConcat.trim(); 615 ' - ' + precioCondicion.nombre + ' ' + plazosConcat.trim();
616 } else { //Cuando se ingresan los plazos manualmente 616 } else { //Cuando se ingresan los plazos manualmente
617 $scope.notaPedido.idPrecioCondicion = 0; 617 $scope.notaPedido.idPrecioCondicion = 0;
618 //-1, el modal productos busca todos los productos 618 //-1, el modal productos busca todos los productos
619 $scope.idLista = -1; 619 $scope.idLista = -1;
620 $scope.notaPedido.notaPedidoPlazo = precioCondicion; 620 $scope.notaPedido.notaPedidoPlazo = precioCondicion;
621 for (var j = 0; j < precioCondicion.length; j++) { 621 for (var j = 0; j < precioCondicion.length; j++) {
622 plazosConcat += precioCondicion[j].dias + ' '; 622 plazosConcat += precioCondicion[j].dias + ' ';
623 } 623 }
624 cabecera = 'Ingreso manual ' + plazosConcat.trim(); 624 cabecera = 'Ingreso manual ' + plazosConcat.trim();
625 } 625 }
626 $scope.notaPedido.articulosNotaPedido = []; 626 $scope.notaPedido.articulosNotaPedido = [];
627 $scope.$broadcast('addCabecera', { 627 $scope.$broadcast('addCabecera', {
628 label: 'Precios y condiciones:', 628 label: 'Precios y condiciones:',
629 valor: cabecera 629 valor: cabecera
630 }); 630 });
631 }, function() { 631 }, function() {
632 632
633 } 633 }
634 ); 634 );
635 } 635 }
636 }; 636 };
637 637
638 $scope.seleccionarMoneda = function() { 638 $scope.seleccionarMoneda = function() {
639 if (validarNotaRemitada()) { 639 if (validarNotaRemitada()) {
640 var parametrosModal = { 640 var parametrosModal = {
641 titulo: 'Búsqueda de monedas', 641 titulo: 'Búsqueda de monedas',
642 query: '/moneda', 642 query: '/moneda',
643 columnas: [ 643 columnas: [
644 { 644 {
645 propiedad: 'DETALLE', 645 propiedad: 'DETALLE',
646 nombre: 'Nombre' 646 nombre: 'Nombre'
647 }, 647 },
648 { 648 {
649 propiedad: 'SIMBOLO', 649 propiedad: 'SIMBOLO',
650 nombre: 'Símbolo' 650 nombre: 'Símbolo'
651 } 651 }
652 ], 652 ],
653 size: 'md' 653 size: 'md'
654 }; 654 };
655 focaModalService.modal(parametrosModal).then( 655 focaModalService.modal(parametrosModal).then(
656 function(moneda) { 656 function(moneda) {
657 $scope.abrirModalCotizacion(moneda); 657 $scope.abrirModalCotizacion(moneda);
658 }, function() { 658 }, function() {
659 659
660 } 660 }
661 ); 661 );
662 } 662 }
663 }; 663 };
664 664
665 $scope.seleccionarObservaciones = function() { 665 $scope.seleccionarObservaciones = function() {
666 var observacion = { 666 var observacion = {
667 titulo: 'Ingrese Observaciones', 667 titulo: 'Ingrese Observaciones',
668 value: $scope.notaPedido.observaciones, 668 value: $scope.notaPedido.observaciones,
669 maxlength: 155, 669 maxlength: 155,
670 textarea: true 670 textarea: true
671 }; 671 };
672 672
673 focaModalService 673 focaModalService
674 .prompt(observacion) 674 .prompt(observacion)
675 .then(function(observaciones) { 675 .then(function(observaciones) {
676 $scope.$broadcast('addCabecera', { 676 $scope.$broadcast('addCabecera', {
677 label: 'Observaciones:', 677 label: 'Observaciones:',
678 valor: observaciones 678 valor: observaciones
679 }); 679 });
680 $scope.notaPedido.observaciones = observaciones; 680 $scope.notaPedido.observaciones = observaciones;
681 }); 681 });
682 }; 682 };
683 683
684 $scope.abrirModalCotizacion = function(moneda) { 684 $scope.abrirModalCotizacion = function(moneda) {
685 var modalInstance = $uibModal.open( 685 var modalInstance = $uibModal.open(
686 { 686 {
687 ariaLabelledBy: 'Busqueda de Cotización', 687 ariaLabelledBy: 'Busqueda de Cotización',
688 templateUrl: 'modal-cotizacion.html', 688 templateUrl: 'modal-cotizacion.html',
689 controller: 'focaModalCotizacionController', 689 controller: 'focaModalCotizacionController',
690 size: 'lg', 690 size: 'lg',
691 resolve: { 691 resolve: {
692 idMoneda: function() { 692 idMoneda: function() {
693 return moneda.ID; 693 return moneda.ID;
694 } 694 }
695 } 695 }
696 } 696 }
697 ); 697 );
698 modalInstance.result.then( 698 modalInstance.result.then(
699 function(cotizacion) { 699 function(cotizacion) {
700 var articulosTablaTemp = $scope.notaPedido.articulosNotaPedido || []; 700 var articulosTablaTemp = $scope.notaPedido.articulosNotaPedido || [];
701 for (var i = 0; i < articulosTablaTemp.length; i++) { 701 for (var i = 0; i < articulosTablaTemp.length; i++) {
702 articulosTablaTemp[i].precio = articulosTablaTemp[i].precio * 702 articulosTablaTemp[i].precio = articulosTablaTemp[i].precio *
703 $scope.notaPedido.cotizacion.VENDEDOR; 703 $scope.notaPedido.cotizacion.VENDEDOR;
704 articulosTablaTemp[i].precio = articulosTablaTemp[i].precio / 704 articulosTablaTemp[i].precio = articulosTablaTemp[i].precio /
705 cotizacion.VENDEDOR; 705 cotizacion.VENDEDOR;
706 } 706 }
707 $scope.notaPedido.articulosNotaPedido = articulosTablaTemp; 707 $scope.notaPedido.articulosNotaPedido = articulosTablaTemp;
708 $scope.notaPedido.cotizacion = cotizacion; 708 $scope.notaPedido.cotizacion = cotizacion;
709 $scope.notaPedido.cotizacion.moneda = moneda; 709 $scope.notaPedido.cotizacion.moneda = moneda;
710 if (moneda.DETALLE === 'PESOS ARGENTINOS') { 710 if (moneda.DETALLE === 'PESOS ARGENTINOS') {
711 $scope.$broadcast('removeCabecera', 'Moneda:'); 711 $scope.$broadcast('removeCabecera', 'Moneda:');
712 $scope.$broadcast('removeCabecera', 'Fecha cotizacion:'); 712 $scope.$broadcast('removeCabecera', 'Fecha cotizacion:');
713 $scope.$broadcast('removeCabecera', 'Cotizacion:'); 713 $scope.$broadcast('removeCabecera', 'Cotizacion:');
714 } else { 714 } else {
715 $scope.$broadcast('addCabecera', { 715 $scope.$broadcast('addCabecera', {
716 label: 'Moneda:', 716 label: 'Moneda:',
717 valor: moneda.DETALLE 717 valor: moneda.DETALLE
718 }); 718 });
719 $scope.$broadcast('addCabecera', { 719 $scope.$broadcast('addCabecera', {
720 label: 'Fecha cotizacion:', 720 label: 'Fecha cotizacion:',
721 valor: $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy') 721 valor: $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy')
722 }); 722 });
723 $scope.$broadcast('addCabecera', { 723 $scope.$broadcast('addCabecera', {
724 label: 'Cotizacion:', 724 label: 'Cotizacion:',
725 valor: $filter('number')(cotizacion.VENDEDOR, '2') 725 valor: $filter('number')(cotizacion.VENDEDOR, '2')
726 }); 726 });
727 } 727 }
728 }, function() { 728 }, function() {
729 729
730 } 730 }
731 ); 731 );
732 }; 732 };
733 733
734 $scope.agregarATabla = function(key) { 734 $scope.agregarATabla = function(key) {
735 if (key === 13) { 735 if (key === 13) {
736 if ($scope.articuloACargar.cantidad === undefined || 736 if ($scope.articuloACargar.cantidad === undefined ||
737 $scope.articuloACargar.cantidad === 0 || 737 $scope.articuloACargar.cantidad === 0 ||
738 $scope.articuloACargar.cantidad === null ) { 738 $scope.articuloACargar.cantidad === null ) {
739 focaModalService.alert('El valor debe ser al menos 1'); 739 focaModalService.alert('El valor debe ser al menos 1');
740 return; 740 return;
741 } 741 }
742 delete $scope.articuloACargar.sectorCodigo; 742 delete $scope.articuloACargar.sectorCodigo;
743 $scope.notaPedido.articulosNotaPedido.push($scope.articuloACargar); 743 $scope.notaPedido.articulosNotaPedido.push($scope.articuloACargar);
744 $scope.cargando = true; 744 $scope.cargando = true;
745 } 745 }
746 }; 746 };
747 747
748 $scope.quitarArticulo = function(key) { 748 $scope.quitarArticulo = function(key) {
749 $scope.notaPedido.articulosNotaPedido.splice(key, 1); 749 $scope.notaPedido.articulosNotaPedido.splice(key, 1);
750 }; 750 };
751 751
752 $scope.editarArticulo = function(key, articulo) { 752 $scope.editarArticulo = function(key, articulo) {
753 if (key === 13) { 753 if (key === 13) {
754 if (articulo.cantidad === null || articulo.cantidad === 0 || 754 if (articulo.cantidad === null || articulo.cantidad === 0 ||
755 articulo.cantidad === undefined) { 755 articulo.cantidad === undefined) {
756 focaModalService.alert('El valor debe ser al menos 1'); 756 focaModalService.alert('El valor debe ser al menos 1');
757 return; 757 return;
758 } 758 }
759 articulo.editCantidad = false; 759 articulo.editCantidad = false;
760 articulo.editPrecio = false; 760 articulo.editPrecio = false;
761 } 761 }
762 }; 762 };
763 763
764 $scope.cambioEdit = function(articulo, propiedad) { 764 $scope.cambioEdit = function(articulo, propiedad) {
765 if (propiedad === 'cantidad') { 765 if (propiedad === 'cantidad') {
766 articulo.editCantidad = true; 766 articulo.editCantidad = true;
767 } else if (propiedad === 'precio') { 767 } else if (propiedad === 'precio') {
768 articulo.editPrecio = true; 768 articulo.editPrecio = true;
769 } 769 }
770 }; 770 };
771 771
772 $scope.resetFilter = function() { 772 $scope.resetFilter = function() {
773 $scope.articuloACargar = {}; 773 $scope.articuloACargar = {};
774 $scope.cargando = true; 774 $scope.cargando = true;
775 }; 775 };
776 //Recibe aviso si el teclado está en uso 776 //Recibe aviso si el teclado está en uso
777 $rootScope.$on('usarTeclado', function(event, data) { 777 $rootScope.$on('usarTeclado', function(event, data) {
778 if (data) { 778 if (data) {
779 $scope.mostrarTeclado = true; 779 $scope.mostrarTeclado = true;
780 return; 780 return;
781 } 781 }
782 $scope.mostrarTeclado = false; 782 $scope.mostrarTeclado = false;
783 }); 783 });
784 784
785 $scope.selectFocus = function($event) { 785 $scope.selectFocus = function($event) {
786 // Si el teclado esta en uso no selecciona el valor 786 // Si el teclado esta en uso no selecciona el valor
787 if ($scope.mostrarTeclado) { 787 if ($scope.mostrarTeclado) {
788 return; 788 return;
789 } 789 }
790 $event.target.select(); 790 $event.target.select();
791 }; 791 };
792 792
793 $scope.salir = function() { 793 $scope.salir = function() {
794 $location.path('/'); 794 $location.path('/');
795 }; 795 };
796 796
797 $scope.parsearATexto = function(articulo) { 797 $scope.parsearATexto = function(articulo) {
798 articulo.cantidad = parseFloat(articulo.cantidad); 798 articulo.cantidad = parseFloat(articulo.cantidad);
799 articulo.precio = parseFloat(articulo.precio); 799 articulo.precio = parseFloat(articulo.precio);
800 }; 800 };
801 801
802 function setearNotaPedido(notaPedido) { 802 function setearNotaPedido(notaPedido) {
803 //añado cabeceras 803 //añado cabeceras
804 $scope.notaPedido = notaPedido; 804 $scope.notaPedido = notaPedido;
805 $scope.$broadcast('removeCabecera', 'Bomba:'); 805 $scope.$broadcast('removeCabecera', 'Bomba:');
806 $scope.$broadcast('removeCabecera', 'Kilometros:'); 806 $scope.$broadcast('removeCabecera', 'Kilometros:');
807 $scope.$broadcast('removeCabecera', 'Moneda:');
808 $scope.$broadcast('removeCabecera', 'Fecha cotizacion:');
809 $scope.$broadcast('removeCabecera', 'Cotizacion:');
810
807 811
808 var cabeceras = []; 812 var cabeceras = [];
809 813
810 if (notaPedido.cotizacion.moneda.CODIGO_AFIP != 'PES') { 814 if (notaPedido.cotizacion.moneda.CODIGO_AFIP != 'PES') {
811 cabeceras.push({ 815 cabeceras.push({
812 label: 'Moneda:', 816 label: 'Moneda:',
813 valor: notaPedido.cotizacion.moneda.DETALLE 817 valor: notaPedido.cotizacion.moneda.DETALLE
814 }); 818 });
815 cabeceras.push({ 819 cabeceras.push({
816 label: 'Fecha cotizacion:', 820 label: 'Fecha cotizacion:',
817 valor: $filter('date')(notaPedido.cotizacion.FECHA, 821 valor: $filter('date')(notaPedido.cotizacion.FECHA,
818 'dd/MM/yyyy') 822 'dd/MM/yyyy')
819 }); 823 });
820 cabeceras.push({ 824 cabeceras.push({
821 label: 'Cotizacion:', 825 label: 'Cotizacion:',
822 valor: $filter('number')(notaPedido.cotizacion.VENDEDOR, 826 valor: $filter('number')(notaPedido.cotizacion.VENDEDOR,
823 '2') 827 '2')
824 }); 828 });
825 } 829 }
826 830
827 if (notaPedido.cliente.COD) { 831 if (notaPedido.cliente.COD) {
828 cabeceras.push({ 832 cabeceras.push({
829 label: 'Cliente:', 833 label: 'Cliente:',
830 valor: notaPedido.cliente.NOM 834 valor: notaPedido.cliente.NOM
831 }); 835 });
832 cabeceras.push({ 836 cabeceras.push({
833 label: 'Domicilio:', 837 label: 'Domicilio:',
834 valor: notaPedido.domicilioStamp 838 valor: notaPedido.domicilioStamp
835 }); 839 });
836 } 840 }
837 841
838 if (notaPedido.vendedor.NUM) { 842 if (notaPedido.vendedor.NUM) {
839 cabeceras.push({ 843 cabeceras.push({
840 label: 'Vendedor:', 844 label: 'Vendedor:',
841 valor: $filter('rellenarDigitos')(notaPedido.vendedor.NUM, 3) + 845 valor: $filter('rellenarDigitos')(notaPedido.vendedor.NUM, 3) +
842 ' - ' + notaPedido.vendedor.NOM 846 ' - ' + notaPedido.vendedor.NOM
843 }); 847 });
844 } 848 }
845 849
846 if (notaPedido.proveedor.COD) { 850 if (notaPedido.proveedor.COD) {
847 cabeceras.push({ 851 cabeceras.push({
848 label: 'Proveedor:', 852 label: 'Proveedor:',
849 valor: $filter('rellenarDigitos')(notaPedido.proveedor.COD, 5) + 853 valor: $filter('rellenarDigitos')(notaPedido.proveedor.COD, 5) +
850 ' - ' + notaPedido.proveedor.NOM 854 ' - ' + notaPedido.proveedor.NOM
851 }); 855 });
852 } 856 }
853 857
854 if (notaPedido.notaPedidoPlazo.length) { 858 if (notaPedido.notaPedidoPlazo.length) {
855 cabeceras.push({ 859 cabeceras.push({
856 label: 'Precios y condiciones:', 860 label: 'Precios y condiciones:',
857 valor: valorPrecioCondicion() + ' ' + 861 valor: valorPrecioCondicion() + ' ' +
858 notaPedidoBusinessService 862 notaPedidoBusinessService
859 .plazoToString(notaPedido.notaPedidoPlazo) 863 .plazoToString(notaPedido.notaPedidoPlazo)
860 }); 864 });
861 } 865 }
862 866
863 if (notaPedido.flete !== undefined) { 867 if (notaPedido.flete !== undefined) {
864 cabeceras.push({ 868 cabeceras.push({
865 label: 'Flete:', 869 label: 'Flete:',
866 valor: notaPedido.fob === 1 ? 'FOB' : ( 870 valor: notaPedido.fob === 1 ? 'FOB' : (
867 notaPedido.flete === 1 ? 'Si' : 'No') 871 notaPedido.flete === 1 ? 'Si' : 'No')
868 }); 872 });
869 } 873 }
870 874
871 function valorPrecioCondicion() { 875 function valorPrecioCondicion() {
872 if (notaPedido.idPrecioCondicion > 0) { 876 if (notaPedido.idPrecioCondicion > 0) {
873 return notaPedido.precioCondicion.nombre; 877 return notaPedido.precioCondicion.nombre;
874 } else { 878 } else {
875 return 'Ingreso Manual'; 879 return 'Ingreso Manual';
876 } 880 }
877 } 881 }
878 882
879 if (notaPedido.flete === 1) { 883 if (notaPedido.flete === 1) {
880 var cabeceraBomba = { 884 var cabeceraBomba = {
881 label: 'Bomba:', 885 label: 'Bomba:',
882 valor: notaPedido.bomba === 1 ? 'Si' : 'No' 886 valor: notaPedido.bomba === 1 ? 'Si' : 'No'
883 }; 887 };
884 if (notaPedido.kilometros) { 888 if (notaPedido.kilometros) {
885 var cabeceraKilometros = { 889 var cabeceraKilometros = {
886 label: 'Kilometros:', 890 label: 'Kilometros:',
887 valor: notaPedido.kilometros 891 valor: notaPedido.kilometros
888 }; 892 };
889 cabeceras.push(cabeceraKilometros); 893 cabeceras.push(cabeceraKilometros);
890 } 894 }
891 cabeceras.push(cabeceraBomba); 895 cabeceras.push(cabeceraBomba);
892 } 896 }
893 897
894 notaPedidoBusinessService.calcularArticulos($scope.notaPedido.articulosNotaPedido, 898 notaPedidoBusinessService.calcularArticulos($scope.notaPedido.articulosNotaPedido,
895 notaPedido.cotizacion.VENDEDOR); 899 notaPedido.cotizacion.VENDEDOR);
896 900
897 if (notaPedido.idPrecioCondicion > 0) { 901 if (notaPedido.idPrecioCondicion > 0) {
898 $scope.idLista = notaPedido.precioCondicion.idListaPrecio; 902 $scope.idLista = notaPedido.precioCondicion.idListaPrecio;
899 } else { 903 } else {
900 $scope.idLista = -1; 904 $scope.idLista = -1;
901 } 905 }
902 906
903 $scope.puntoVenta = $filter('rellenarDigitos')( 907 $scope.puntoVenta = $filter('rellenarDigitos')(
904 notaPedido.sucursal, 4 908 notaPedido.sucursal, 4
905 ); 909 );
906 910
907 $scope.comprobante = $filter('rellenarDigitos')( 911 $scope.comprobante = $filter('rellenarDigitos')(
908 notaPedido.numeroNotaPedido, 8 912 notaPedido.numeroNotaPedido, 8
909 ); 913 );
910 914
911 $scope.notaPedido.notaPedidoPuntoDescarga = 915 $scope.notaPedido.notaPedidoPuntoDescarga =
912 formatearPuntosDescarga(notaPedido.notaPedidoPuntoDescarga || []); 916 formatearPuntosDescarga(notaPedido.notaPedidoPuntoDescarga || []);
913 addArrayCabecera(cabeceras); 917 addArrayCabecera(cabeceras);
914 } 918 }
915 919
916 function addArrayCabecera(array) { 920 function addArrayCabecera(array) {
917 for (var i = 0; i < array.length; i++) { 921 for (var i = 0; i < array.length; i++) {
918 $scope.$broadcast('addCabecera', { 922 $scope.$broadcast('addCabecera', {
919 label: array[i].label, 923 label: array[i].label,
920 valor: array[i].valor 924 valor: array[i].valor
921 }); 925 });
922 } 926 }
923 } 927 }
924 928
925 function validarNotaRemitada() { 929 function validarNotaRemitada() {
926 if (!$scope.notaPedido.idRemito) { 930 if (!$scope.notaPedido.idRemito) {
927 return true; 931 return true;
928 } else { 932 } else {
929 focaModalService.alert('No se puede editar una nota de pedido remitada'); 933 focaModalService.alert('No se puede editar una nota de pedido remitada');
930 return false; 934 return false;
931 } 935 }
932 } 936 }
933 937
934 function formatearPuntosDescarga(puntosDescarga) { 938 function formatearPuntosDescarga(puntosDescarga) {
935 var result = []; 939 var result = [];
936 940
937 puntosDescarga.forEach(function(el) { 941 puntosDescarga.forEach(function(el) {
938 var puntoDescarga = result.filter(function(resultPunto) { 942 var puntoDescarga = result.filter(function(resultPunto) {
939 return resultPunto.id === el.idPuntoDescarga; 943 return resultPunto.id === el.idPuntoDescarga;
940 }); 944 });
941 945
942 if (puntoDescarga.length) { 946 if (puntoDescarga.length) {
943 puntoDescarga[0].articulosAgregados.push({ 947 puntoDescarga[0].articulosAgregados.push({
944 cantidad: el.cantidad, 948 cantidad: el.cantidad,
945 descripcion: el.producto.descripcion, 949 descripcion: el.producto.descripcion,
946 id: el.producto.id 950 id: el.producto.id
947 }); 951 });
948 } else { 952 } else {
949 result.push({ 953 result.push({
950 id: el.puntoDescarga.id, 954 id: el.puntoDescarga.id,
951 id_cliente: el.puntoDescarga.id_cliente, 955 id_cliente: el.puntoDescarga.id_cliente,
952 id_da_config_0: el.puntoDescarga.id_da_config_0, 956 id_da_config_0: el.puntoDescarga.id_da_config_0,
953 latitud: el.puntoDescarga.latitud, 957 latitud: el.puntoDescarga.latitud,
954 longitud: el.puntoDescarga.longitud, 958 longitud: el.puntoDescarga.longitud,
955 descripcion: el.puntoDescarga.descripcion, 959 descripcion: el.puntoDescarga.descripcion,
956 articulosAgregados: [ 960 articulosAgregados: [
957 { 961 {
958 cantidad: el.cantidad, 962 cantidad: el.cantidad,
959 descripcion: el.producto.descripcion, 963 descripcion: el.producto.descripcion,
960 id: el.producto.id 964 id: el.producto.id
961 } 965 }
962 ] 966 ]
963 }); 967 });
964 } 968 }
965 }); 969 });
966 return result; 970 return result;
967 } 971 }
968 972
969 function salir() { 973 function salir() {
970 var confirmacion = false; 974 var confirmacion = false;
971 975
972 if (!angular.equals($scope.notaPedido, $scope.inicial)) { 976 if (!angular.equals($scope.notaPedido, $scope.inicial)) {
973 confirmacion = true; 977 confirmacion = true;
974 } 978 }
975 979
976 if (confirmacion) { 980 if (confirmacion) {
977 focaModalService.confirm( 981 focaModalService.confirm(
978 '¿Está seguro de que desea salir? Se perderán todos los datos cargados.' 982 '¿Está seguro de que desea salir? Se perderán todos los datos cargados.'
979 ).then(function(data) { 983 ).then(function(data) {
980 if (data) { 984 if (data) {
981 $location.path('/'); 985 $location.path('/');
982 } 986 }
983 }); 987 });
984 } else { 988 } else {
985 $location.path('/'); 989 $location.path('/');
986 } 990 }
987 } 991 }
988 992
989 function getLSNotaPedido() { 993 function getLSNotaPedido() {
990 var notaPedido = JSON.parse($localStorage.notaPedido || null); 994 var notaPedido = JSON.parse($localStorage.notaPedido || null);
991 if (notaPedido) { 995 if (notaPedido) {
992 setearNotaPedido(notaPedido); 996 setearNotaPedido(notaPedido);
993 delete $localStorage.notaPedido; 997 delete $localStorage.notaPedido;
994 } 998 }
995 } 999 }
996 1000
997 function deleteCliente() { 1001 function deleteCliente() {
998 delete $scope.notaPedido.domicilioStamp; 1002 delete $scope.notaPedido.domicilioStamp;
999 delete $scope.notaPedido.notaPedidoPuntoDescarga; 1003 delete $scope.notaPedido.notaPedidoPuntoDescarga;
1000 $scope.notaPedido.domicilio = {dom: ''}; 1004 $scope.notaPedido.domicilio = {dom: ''};
1001 $scope.notaPedido.cliente = {}; 1005 $scope.notaPedido.cliente = {};
1002 $scope.$broadcast('removeCabecera', 'Cliente:'); 1006 $scope.$broadcast('removeCabecera', 'Cliente:');
1003 $scope.$broadcast('removeCabecera', 'Domicilio:'); 1007 $scope.$broadcast('removeCabecera', 'Domicilio:');
1004 $scope.$broadcast('removeCabecera', 'Puntos de descarga:'); 1008 $scope.$broadcast('removeCabecera', 'Puntos de descarga:');
1005 } 1009 }
1006 } 1010 }
1007 ]); 1011 ]);
1008 1012