Commit eaf6dfa1fa80ffdd60fbba4e692bceb53885eb43

Authored by Eric Fernandez
Exists in master and in 1 other branch develop

Merge branch 'master' into 'develop'

Master(efernandez)

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