Commit 95483f69d9e76e59843bab4ece7ebe0bc9ec95a5

Authored by Eric Fernandez
Exists in master and in 2 other branches develop, lab

Merge branch 'master' of http://git.focasoftware.com/npm/foca-crear-remito

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