Commit bc623d091bb5008c26b5514992560da24fd736ef

Authored by Nicolás Guarnieri
1 parent 5e1a7f48ec
Exists in master

nuevos campos para guardado de detalles correctamente

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