Commit 3dcdfd0be96a38c5ae80868e2bbeb448588ccfe0

Authored by Eric Fernandez
1 parent 672347a71b
Exists in master

quito modal moneda

Showing 1 changed file with 16 additions and 9 deletions   Show diff stats
src/js/controller.js
1 angular.module('focaCrearCobranza') .controller('cobranzaController', 1 angular.module('focaCrearCobranza') .controller('cobranzaController',
2 [ 2 [
3 '$scope', 3 '$scope',
4 '$rootScope', 4 '$rootScope',
5 '$timeout', 5 '$timeout',
6 '$uibModal', 6 '$uibModal',
7 '$location', 7 '$location',
8 'focaCrearCobranzaService', 8 'focaCrearCobranzaService',
9 'focaModalService', 9 'focaModalService',
10 '$filter', 10 '$filter',
11 'focaSeguimientoService', 11 'focaSeguimientoService',
12 'focaBotoneraLateralService', 12 'focaBotoneraLateralService',
13 'APP', 13 'APP',
14 'focaLoginService', 14 'focaLoginService',
15 function($scope, $rootScope, $timeout, $uibModal, $location, focaCrearCobranzaService, 15 function($scope, $rootScope, $timeout, $uibModal, $location, focaCrearCobranzaService,
16 focaModalService, $filter, focaSeguimientoService, focaBotoneraLateralService, 16 focaModalService, $filter, focaSeguimientoService, focaBotoneraLateralService,
17 APP, loginService) 17 APP, loginService)
18 { 18 {
19 19
20 if(APP === 'cobranza') { 20 if(APP === 'cobranza') {
21 var idCobrador = loginService.getLoginData().vendedorCobrador; 21 var idCobrador = loginService.getLoginData().vendedorCobrador;
22 $scope.botonera = focaCrearCobranzaService.getBotonera(idCobrador); 22 $scope.botonera = focaCrearCobranzaService.getBotonera(idCobrador);
23 focaCrearCobranzaService.getCobradorById(idCobrador).then( 23 focaCrearCobranzaService.getCobradorById(idCobrador).then(
24 function(res) { 24 function(res) {
25 var cobrador = res.data; 25 var cobrador = res.data;
26 $scope.$broadcast('addCabecera', { 26 $scope.$broadcast('addCabecera', {
27 label: 'Cobrador:', 27 label: 'Cobrador:',
28 valor: cobrador.NomVen 28 valor: cobrador.NomVen
29 }); 29 });
30 $scope.cobranza.cobrador = cobrador; 30 $scope.cobranza.cobrador = cobrador;
31 } 31 }
32 ); 32 );
33 }else { 33 }else {
34 $scope.botonera = focaCrearCobranzaService.getBotonera(); 34 $scope.botonera = focaCrearCobranzaService.getBotonera();
35 } 35 }
36 $scope.datepickerAbierto = false; 36 $scope.datepickerAbierto = false;
37 $scope.cobroDeuda = true; 37 $scope.cobroDeuda = true;
38 $scope.show = false; 38 $scope.show = false;
39 $scope.cargando = true; 39 $scope.cargando = true;
40 $scope.dateOptions = { 40 $scope.dateOptions = {
41 maxDate: new Date(), 41 maxDate: new Date(),
42 minDate: new Date(2010, 0, 1) 42 minDate: new Date(2010, 0, 1)
43 }; 43 };
44 44
45 $scope.cobranza = {}; 45 $scope.cobranza = {};
46 46
47 $scope.fecha = new Date(); 47 $scope.fecha = new Date();
48 $scope.puntoVenta = '0000'; 48 $scope.puntoVenta = '0000';
49 $scope.comprobante = '00000000'; 49 $scope.comprobante = '00000000';
50 $scope.facturaTabla = []; 50 $scope.facturaTabla = [];
51 $scope.cobrosTabla = []; 51 $scope.cobrosTabla = [];
52 52
53 $timeout(function() { 53 $timeout(function() {
54 focaBotoneraLateralService.showSalir(false); 54 focaBotoneraLateralService.showSalir(false);
55 focaBotoneraLateralService.showPausar(true); 55 focaBotoneraLateralService.showPausar(true);
56 focaBotoneraLateralService.showGuardar(true, $scope.crearCobranza); 56 focaBotoneraLateralService.showGuardar(true, $scope.crearCobranza);
57 focaBotoneraLateralService.addCustomButton('Salir', salir); 57 focaBotoneraLateralService.addCustomButton('Salir', salir);
58 }); 58 });
59 59
60 $scope.crearCobranza = function() { 60 $scope.crearCobranza = function() {
61 if(!$scope.cobranza.cliente) { 61 if(!$scope.cobranza.cliente) {
62 focaModalService.alert('Ingrese Cliente'); 62 focaModalService.alert('Ingrese Cliente');
63 return; 63 return;
64 } 64 }
65 if(!$scope.cobranza.cobrador) { 65 if(!$scope.cobranza.cobrador) {
66 focaModalService.alert('Ingrese Cobrador'); 66 focaModalService.alert('Ingrese Cobrador');
67 return; 67 return;
68 } 68 }
69 if($scope.facturaTabla.length < 1) { 69 if($scope.facturaTabla.length < 1) {
70 focaModalService.alert('Ingrese al menos una factura'); 70 focaModalService.alert('Ingrese al menos una factura');
71 return; 71 return;
72 } 72 }
73 if($scope.getTotalCobrado() + $scope.getTotalDeuda() !== 0) { 73 if($scope.getTotalCobrado() + $scope.getTotalDeuda() !== 0) {
74 focaModalService.alert('La diferencia debe ser ' + 74 focaModalService.alert('La diferencia debe ser ' +
75 $scope.cobranza.moneda.SIMBOLO + '0,00'); 75 $scope.cobranza.moneda.SIMBOLO + '0,00');
76 return; 76 return;
77 } 77 }
78 var cobranza = {}; 78 var cobranza = {};
79 var cheques = []; 79 var cheques = [];
80 var cuerpos = []; 80 var cuerpos = [];
81 //TODO: habilitar edición 81 //TODO: habilitar edición
82 $scope.editando = false; 82 $scope.editando = false;
83 focaBotoneraLateralService.startGuardar(); 83 focaBotoneraLateralService.startGuardar();
84 $scope.saveLoading = true; 84 $scope.saveLoading = true;
85 for(var i = 0; i < $scope.facturaTabla.length; i++) { 85 for(var i = 0; i < $scope.facturaTabla.length; i++) {
86 var cuerpoFactura = { 86 var cuerpoFactura = {
87 CYV: 'V', 87 CYV: 'V',
88 TIP: 'C', 88 TIP: 'C',
89 TCO: 'RC', 89 TCO: 'RC',
90 PVE: $scope.puntoVenta, 90 PVE: $scope.puntoVenta,
91 NCO: $scope.comprobante, 91 NCO: $scope.comprobante,
92 LOP: 'L', 92 LOP: 'L',
93 TIL: $scope.facturaTabla[i].TCO, 93 TIL: $scope.facturaTabla[i].TCO,
94 COM: $scope.facturaTabla[i].numeroFactura + '-' + 94 COM: $scope.facturaTabla[i].numeroFactura + '-' +
95 $scope.rellenar($scope.facturaTabla[i].NCU,2), 95 $scope.rellenar($scope.facturaTabla[i].NCU,2),
96 FEC: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '), 96 FEC: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '),
97 IMP: Math.abs($scope.facturaTabla[i].IPA), 97 IMP: Math.abs($scope.facturaTabla[i].IPA),
98 RES: 0,//caja de tesorería 98 RES: 0,//caja de tesorería
99 SUBM: 0 99 SUBM: 0
100 }; 100 };
101 cuerpos.push(cuerpoFactura); 101 cuerpos.push(cuerpoFactura);
102 } 102 }
103 103
104 for (var j = 0; j < $scope.cobrosTabla.length; j++) { 104 for (var j = 0; j < $scope.cobrosTabla.length; j++) {
105 105
106 var efectivo = $scope.cobrosTabla[j].tipo === 'Efectivo' ? true : false; 106 var efectivo = $scope.cobrosTabla[j].tipo === 'Efectivo' ? true : false;
107 107
108 var cuerpoCobros = { 108 var cuerpoCobros = {
109 CYV: 'V', 109 CYV: 'V',
110 TIP: 'C', 110 TIP: 'C',
111 TCO: 'RC', 111 TCO: 'RC',
112 PVE: $scope.puntoVenta, 112 PVE: $scope.puntoVenta,
113 NCO: $scope.comprobante, 113 NCO: $scope.comprobante,
114 LOP: 'P', 114 LOP: 'P',
115 TIL: 'EF', 115 TIL: 'EF',
116 COM: efectivo ? 'ef(COBRO EN EFECTIVO)' : 'ch(' + 116 COM: efectivo ? 'ef(COBRO EN EFECTIVO)' : 'ch(' +
117 $scope.cobrosTabla[j].numero + ')' + $scope.cobrosTabla[j].banco.desbco, 117 $scope.cobrosTabla[j].numero + ')' + $scope.cobrosTabla[j].banco.desbco,
118 FEC: efectivo ? 118 FEC: efectivo ?
119 $scope.cobrosTabla[j].fecha 119 $scope.cobrosTabla[j].fecha
120 .toISOString().slice(0, 19).replace('T', ' ') : 120 .toISOString().slice(0, 19).replace('T', ' ') :
121 $scope.cobrosTabla[j].fechaPresentacion 121 $scope.cobrosTabla[j].fechaPresentacion
122 .toISOString().slice(0, 19).replace('T', ' '), 122 .toISOString().slice(0, 19).replace('T', ' '),
123 IMP: Math.abs($scope.cobrosTabla[j].importe), 123 IMP: Math.abs($scope.cobrosTabla[j].importe),
124 RES: 0,//caja de tesorería 124 RES: 0,//caja de tesorería
125 SUBM: 0 125 SUBM: 0
126 }; 126 };
127 cuerpos.push(cuerpoCobros); 127 cuerpos.push(cuerpoCobros);
128 128
129 if(!efectivo) { 129 if(!efectivo) {
130 var cheque = { 130 var cheque = {
131 BCO: $scope.cobrosTabla[j].banco.ID, 131 BCO: $scope.cobrosTabla[j].banco.ID,
132 NUM: $scope.comprobante, 132 NUM: $scope.comprobante,
133 FEP: $scope.cobrosTabla[j].fechaPresentacion 133 FEP: $scope.cobrosTabla[j].fechaPresentacion
134 .toISOString().slice(0, 19).replace('T', ' '), 134 .toISOString().slice(0, 19).replace('T', ' '),
135 FEE: $scope.cobrosTabla[j].fechaEmision 135 FEE: $scope.cobrosTabla[j].fechaEmision
136 .toISOString().slice(0, 19).replace('T', ' '), 136 .toISOString().slice(0, 19).replace('T', ' '),
137 LUG: $scope.cobrosTabla[j].localidad.NOMBRE, 137 LUG: $scope.cobrosTabla[j].localidad.NOMBRE,
138 IMP: $scope.cobrosTabla[j].importe, 138 IMP: $scope.cobrosTabla[j].importe,
139 LIB: $scope.cobrosTabla[j].librador, 139 LIB: $scope.cobrosTabla[j].librador,
140 EST: 'C',//'D' depositado, 'E' entregado, 'C' en cartera 140 EST: 'C',//'D' depositado, 'E' entregado, 'C' en cartera
141 PCI: $scope.cobrosTabla[j].provincia.ID, 141 PCI: $scope.cobrosTabla[j].provincia.ID,
142 LPLA: 0, 142 LPLA: 0,
143 PLA: 0, 143 PLA: 0,
144 VEN: $scope.cobranza.cobrador.CodVen,//Id vendedor 144 VEN: $scope.cobranza.cobrador.CodVen,//Id vendedor
145 CCLIE: $scope.cobranza.cliente.COD,//Id cliente 145 CCLIE: $scope.cobranza.cliente.COD,//Id cliente
146 REN: 0, 146 REN: 0,
147 PVEC: $scope.puntoVenta, 147 PVEC: $scope.puntoVenta,
148 NCOC: $scope.comprobante, 148 NCOC: $scope.comprobante,
149 OBSE: $scope.cobrosTabla[j].observaciones, 149 OBSE: $scope.cobrosTabla[j].observaciones,
150 LUV: 0, 150 LUV: 0,
151 ORI: 've', 151 ORI: 've',
152 FER: '', 152 FER: '',
153 BIMP: 0, 153 BIMP: 0,
154 COMP: 'C ' +'RC ' + $scope.puntoVenta + '-' + $scope.comprobante, 154 COMP: 'C ' +'RC ' + $scope.puntoVenta + '-' + $scope.comprobante,
155 VAL_E: '',//Cuando egresa por ingresos y egresos en el numero de egreso 155 VAL_E: '',//Cuando egresa por ingresos y egresos en el numero de egreso
156 VAL_I: '',//Cuando Ingresa por ingresos y egresos en el numero ingreso 156 VAL_I: '',//Cuando Ingresa por ingresos y egresos en el numero ingreso
157 REC_CAJ: 'D', 157 REC_CAJ: 'D',
158 TIPO_C: 0,//?? 158 TIPO_C: 0,//??
159 SALDO_CAJ: 'S', 159 SALDO_CAJ: 'S',
160 FECHA_INGRESO: $scope.fecha 160 FECHA_INGRESO: $scope.fecha
161 .toISOString().slice(0, 19).replace('T', ' '), 161 .toISOString().slice(0, 19).replace('T', ' '),
162 Vendedor_valor: 0, 162 Vendedor_valor: 0,
163 FAMILIA: 0, 163 FAMILIA: 0,
164 CUIT_LIB: '', 164 CUIT_LIB: '',
165 COD_LUG: $scope.cobrosTabla[j].localidad.ID,//código lugar 165 COD_LUG: $scope.cobrosTabla[j].localidad.ID,//código lugar
166 SEN: '', 166 SEN: '',
167 NRC: 0, 167 NRC: 0,
168 COD_LARGO: '', 168 COD_LARGO: '',
169 VN: 0, 169 VN: 0,
170 ID_LECTOR: 0, 170 ID_LECTOR: 0,
171 NATHB: '' 171 NATHB: ''
172 }; 172 };
173 cheques.push(cheque); 173 cheques.push(cheque);
174 } 174 }
175 } 175 }
176 176
177 cobranza = { 177 cobranza = {
178 recibo: { 178 recibo: {
179 CYV: 'V', 179 CYV: 'V',
180 TIP: 'C', 180 TIP: 'C',
181 TCO: 'RC', 181 TCO: 'RC',
182 PVE: $scope.puntoVenta, //Sucursar, punto de venta 182 PVE: $scope.puntoVenta, //Sucursar, punto de venta
183 NCO: $scope.comprobante, //Numero de comprobante 183 NCO: $scope.comprobante, //Numero de comprobante
184 FEC: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '), 184 FEC: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '),
185 CLI: $scope.cobranza.cliente.COD, 185 CLI: $scope.cobranza.cliente.COD,
186 ATO: 0, //número de asiento 186 ATO: 0, //número de asiento
187 CFE: $scope.cobranza.cobrador.NomVen, 187 CFE: $scope.cobranza.cobrador.NomVen,
188 PLA: '',//Numero de planilla, sin uso 188 PLA: '',//Numero de planilla, sin uso
189 ID_MONEDA: $scope.cobranza.moneda.ID, 189 ID_MONEDA: $scope.cobranza.moneda.ID,
190 COTIZACION: $scope.cobranza.cotizacion.VENDEDOR, 190 COTIZACION: $scope.cobranza.cotizacion.VENDEDOR,
191 idCobrador: $scope.cobranza.cobrador.CodVen 191 idCobrador: $scope.cobranza.cobrador.CodVen
192 }, 192 },
193 cuerpo: cuerpos, 193 cuerpo: cuerpos,
194 cheques: cheques, 194 cheques: cheques,
195 acobypag: { 195 acobypag: {
196 CYV: 'V', 196 CYV: 'V',
197 COD: $scope.cobranza.cliente.COD, 197 COD: $scope.cobranza.cliente.COD,
198 FEP: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '), 198 FEP: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '),
199 TIP: 'C', 199 TIP: 'C',
200 TCO: 'RC', 200 TCO: 'RC',
201 SUC: $scope.puntoVenta, 201 SUC: $scope.puntoVenta,
202 NCO: $scope.comprobante, 202 NCO: $scope.comprobante,
203 IPA: $scope.getTotalCobrado(), 203 IPA: $scope.getTotalCobrado(),
204 SAL: '',//?? 204 SAL: '',//??
205 TCA: 1, 205 TCA: 1,
206 ZONA: 1, 206 ZONA: 1,
207 FPA: 2,//Forma de pago 207 FPA: 2,//Forma de pago
208 REC: 0, 208 REC: 0,
209 REP: 0, 209 REP: 0,
210 FER: null, 210 FER: null,
211 REM: 0, 211 REM: 0,
212 FRE: null,//?? 212 FRE: null,//??
213 PRO: 'N', 213 PRO: 'N',
214 FEV: $scope.fecha.toISOString().slice(0, 19).replace('T', ' ') 214 FEV: $scope.fecha.toISOString().slice(0, 19).replace('T', ' ')
215 }, 215 },
216 datosCobrador: { 216 datosCobrador: {
217 COD: $scope.cobranza.cobrador.CodVen, 217 COD: $scope.cobranza.cobrador.CodVen,
218 PVE: $scope.puntoVenta, 218 PVE: $scope.puntoVenta,
219 NUM: $scope.comprobante, 219 NUM: $scope.comprobante,
220 EST: 'C', 220 EST: 'C',
221 OBS: 'RC: ' + $scope.comprobante + '-' + $scope.fecha.toLocaleDateString(), 221 OBS: 'RC: ' + $scope.comprobante + '-' + $scope.fecha.toLocaleDateString(),
222 DAT1: 'C', 222 DAT1: 'C',
223 CLI: $scope.cobranza.cliente.COD 223 CLI: $scope.cobranza.cliente.COD
224 } 224 }
225 }; 225 };
226 focaCrearCobranzaService.guardarCobranza(cobranza).then( 226 focaCrearCobranzaService.guardarCobranza(cobranza).then(
227 function(result) { 227 function(result) {
228 focaBotoneraLateralService.endGuardar(true); 228 focaBotoneraLateralService.endGuardar(true);
229 $scope.saveLoading = false; 229 $scope.saveLoading = false;
230 focaModalService.alert('Cobranza guardada con éxito'); 230 focaModalService.alert('Cobranza guardada con éxito');
231 231
232 focaSeguimientoService.guardarPosicion( 232 focaSeguimientoService.guardarPosicion(
233 'Cobranza', 233 'Cobranza',
234 result.data, 234 result.data,
235 '' 235 ''
236 ); 236 );
237 //TODO: si esta en mobile no perder el cobrador 237 //TODO: si esta en mobile no perder el cobrador
238 $scope.cobranza = { 238 $scope.cobranza = {
239 fecha: new Date() 239 fecha: new Date()
240 }; 240 };
241 setearMonedaPorDefecto(); 241 setearMonedaPorDefecto();
242 obtenerNumeroComprobante(); 242 obtenerNumeroComprobante();
243 //TODO: si esta en mobile no perder el cobrador 243 //TODO: si esta en mobile no perder el cobrador
244 $scope.$broadcast('cleanCabecera'); 244 $scope.$broadcast('cleanCabecera');
245 $scope.fecha = new Date(); 245 $scope.fecha = new Date();
246 $scope.facturaTabla = []; 246 $scope.facturaTabla = [];
247 $scope.cobrosTabla = []; 247 $scope.cobrosTabla = [];
248 }, function(error) { 248 }, function(error) {
249 focaModalService.alert('Hubo un problema al cargar la cobranza'); 249 focaModalService.alert('Hubo un problema al cargar la cobranza');
250 focaBotoneraLateralService.endGuardar(); 250 focaBotoneraLateralService.endGuardar();
251 $scope.saveLoading = false; 251 $scope.saveLoading = false;
252 console.info(error); 252 console.info(error);
253 } 253 }
254 ); 254 );
255 }; 255 };
256 256
257 $scope.seleccionarCobros = function() { 257 $scope.seleccionarCobros = function() {
258 $scope.cobroDeuda = false; 258 $scope.cobroDeuda = false;
259 }; 259 };
260 260
261 $scope.seleccionarComprobantes = function() { 261 $scope.seleccionarComprobantes = function() {
262 $scope.cobroDeuda = true; 262 $scope.cobroDeuda = true;
263 }; 263 };
264 264
265 $scope.seleccionarCobranza = function() { 265 $scope.seleccionarCobranza = function() {
266 266
267 var modalInstance = $uibModal.open( 267 var modalInstance = $uibModal.open(
268 { 268 {
269 ariaLabelledBy: 'Busqueda de Cobranzas', 269 ariaLabelledBy: 'Busqueda de Cobranzas',
270 templateUrl: 'foca-modal-cobranza.html', 270 templateUrl: 'foca-modal-cobranza.html',
271 controller: 'focaModalCobranzaController', 271 controller: 'focaModalCobranzaController',
272 size: 'lg' 272 size: 'lg'
273 } 273 }
274 ); 274 );
275 modalInstance.result.then(function(cobranza) { 275 modalInstance.result.then(function(cobranza) {
276 $scope.editando = true; 276 $scope.editando = true;
277 $scope.facturaTabla = []; 277 $scope.facturaTabla = [];
278 $scope.cobrosTabla = []; 278 $scope.cobrosTabla = [];
279 $scope.$broadcast('cleanCabecera'); 279 $scope.$broadcast('cleanCabecera');
280 280
281 $scope.fecha = new Date(cobranza.fecha); 281 $scope.fecha = new Date(cobranza.fecha);
282 282
283 $scope.$broadcast('addCabecera', { 283 $scope.$broadcast('addCabecera', {
284 label: 'Cliente:', 284 label: 'Cliente:',
285 valor: cobranza.cliente.NOM 285 valor: cobranza.cliente.NOM
286 }); 286 });
287 $scope.$broadcast('addCabecera', { 287 $scope.$broadcast('addCabecera', {
288 label: 'Cobrador:', 288 label: 'Cobrador:',
289 valor: cobranza.cobrador 289 valor: cobranza.cobrador
290 }); 290 });
291 291
292 $scope.facturaTabla = cobranza.facturas; 292 $scope.facturaTabla = cobranza.facturas;
293 $scope.cobrosTabla = cobranza.cobros; 293 $scope.cobrosTabla = cobranza.cobros;
294 }); 294 });
295 }; 295 };
296 296
297 $scope.seleccionarCliente = function() { 297 $scope.seleccionarCliente = function() {
298 var modalInstance = $uibModal.open( 298 var modalInstance = $uibModal.open(
299 { 299 {
300 ariaLabelledBy: 'Busqueda de Cliente', 300 ariaLabelledBy: 'Busqueda de Cliente',
301 templateUrl: 'foca-busqueda-cliente-modal.html', 301 templateUrl: 'foca-busqueda-cliente-modal.html',
302 controller: 'focaBusquedaClienteModalController', 302 controller: 'focaBusquedaClienteModalController',
303 size: 'lg', 303 size: 'lg',
304 resolve: { 304 resolve: {
305 vendedor: function(){ return null; } 305 vendedor: function(){ return null; }
306 } 306 }
307 } 307 }
308 ); 308 );
309 modalInstance.result.then( 309 modalInstance.result.then(
310 function(cliente) { 310 function(cliente) {
311 $scope.$broadcast('addCabecera', { 311 $scope.$broadcast('addCabecera', {
312 label: 'Cliente:', 312 label: 'Cliente:',
313 valor: cliente.nom 313 valor: cliente.nom
314 }); 314 });
315 $scope.cobranza.cliente = { 315 $scope.cobranza.cliente = {
316 COD: cliente.cod, 316 COD: cliente.cod,
317 CUIT: cliente.cuit, 317 CUIT: cliente.cuit,
318 NOM: cliente.nom 318 NOM: cliente.nom
319 }; 319 };
320 }, function() { 320 }, function() {
321 321
322 } 322 }
323 ); 323 );
324 }; 324 };
325 325
326 $scope.seleccionarFactura = function() { 326 $scope.seleccionarFactura = function() {
327 if(!$scope.cobranza.cliente) { 327 if(!$scope.cobranza.cliente) {
328 focaModalService.alert('Seleccione primero un cliente'); 328 focaModalService.alert('Seleccione primero un cliente');
329 return; 329 return;
330 } 330 }
331 var modalInstance = $uibModal.open( 331 var modalInstance = $uibModal.open(
332 { 332 {
333 ariaLabelledBy: 'Busqueda de Facturas', 333 ariaLabelledBy: 'Busqueda de Facturas',
334 templateUrl: 'foca-modal-factura.html', 334 templateUrl: 'foca-modal-factura.html',
335 controller: 'focaModalFacturaController', 335 controller: 'focaModalFacturaController',
336 size: 'lg', 336 size: 'lg',
337 resolve: { 337 resolve: {
338 parametrosFactura: function() { 338 parametrosFactura: function() {
339 return { 339 return {
340 cliente: $scope.cobranza.cliente, 340 cliente: $scope.cobranza.cliente,
341 simbolo: $scope.cobranza.moneda.SIMBOLO, 341 simbolo: $scope.cobranza.moneda.SIMBOLO,
342 cotizacion: $scope.cobranza.cotizacion.VENDEDOR, 342 cotizacion: $scope.cobranza.cotizacion.VENDEDOR,
343 moneda: $scope.cobranza.moneda.ID 343 moneda: $scope.cobranza.moneda.ID
344 }; 344 };
345 } 345 }
346 } 346 }
347 } 347 }
348 ); 348 );
349 modalInstance.result.then( 349 modalInstance.result.then(
350 function(facturas) { 350 function(facturas) {
351 $scope.facturaTabla = $scope.facturaTabla.concat(facturas); 351 $scope.facturaTabla = $scope.facturaTabla.concat(facturas);
352 }, function() { 352 }, function() {
353 353
354 } 354 }
355 ); 355 );
356 }; 356 };
357 357
358 $scope.seleccionarCheque = function() { 358 $scope.seleccionarCheque = function() {
359 var modalInstance = $uibModal.open( 359 var modalInstance = $uibModal.open(
360 { 360 {
361 ariaLabelledBy: 'Carga de cheques', 361 ariaLabelledBy: 'Carga de cheques',
362 templateUrl: 'modal-cheque.html', 362 templateUrl: 'modal-cheque.html',
363 controller: 'focaModalChequeController', 363 controller: 'focaModalChequeController',
364 size: 'lg', 364 size: 'lg',
365 resolve: { 365 resolve: {
366 sugerido: function() { 366 sugerido: function() {
367 var sugerido = $scope.getTotalDeuda() + $scope.getTotalCobrado(); 367 var sugerido = $scope.getTotalDeuda() + $scope.getTotalCobrado();
368 return sugerido < 0 ? sugerido : null; 368 return sugerido < 0 ? sugerido : null;
369 } 369 }
370 } 370 }
371 } 371 }
372 ); 372 );
373 modalInstance.result.then( 373 modalInstance.result.then(
374 function(cheque) { 374 function(cheque) {
375 var cobro = { 375 var cobro = {
376 tipo: 'Ch' + '(' + cheque.numero + ')' + ' ' + cheque.banco.desbco, 376 tipo: 'Ch' + '(' + cheque.numero + ')' + ' ' + cheque.banco.desbco,
377 numero: cheque.numero, 377 numero: cheque.numero,
378 banco: cheque.banco, 378 banco: cheque.banco,
379 fecha: cheque.fechaEmision.toLocaleDateString() + '-' + 379 fecha: cheque.fechaEmision.toLocaleDateString() + '-' +
380 cheque.fechaPresentacion.toLocaleDateString(), 380 cheque.fechaPresentacion.toLocaleDateString(),
381 fechaPresentacion: cheque.fechaPresentacion, 381 fechaPresentacion: cheque.fechaPresentacion,
382 fechaEmision: cheque.fechaEmision, 382 fechaEmision: cheque.fechaEmision,
383 importe: cheque.importe * $scope.cobranza.cotizacion.VENDEDOR, 383 importe: cheque.importe * $scope.cobranza.cotizacion.VENDEDOR,
384 localidad: cheque.localidad, 384 localidad: cheque.localidad,
385 librador: cheque.librador, 385 librador: cheque.librador,
386 provincia: cheque.provincia, 386 provincia: cheque.provincia,
387 observaciones: cheque.observaciones 387 observaciones: cheque.observaciones
388 }; 388 };
389 $scope.cobrosTabla.push(cobro); 389 $scope.cobrosTabla.push(cobro);
390 }, function() { 390 }, function() {
391 391
392 } 392 }
393 ); 393 );
394 }; 394 };
395 395
396 $scope.seleccionarEfectivo = function() { 396 $scope.seleccionarEfectivo = function() {
397 var modalInstance = $uibModal.open( 397 var modalInstance = $uibModal.open(
398 { 398 {
399 ariaLabelledBy: 'Carga de cheques', 399 ariaLabelledBy: 'Carga de cheques',
400 templateUrl: 'modal-efectivo.html', 400 templateUrl: 'modal-efectivo.html',
401 controller: 'focaModalEfectivoController', 401 controller: 'focaModalEfectivoController',
402 size: 'sm', 402 size: 'sm',
403 resolve: { 403 resolve: {
404 sugerido: function() { 404 sugerido: function() {
405 var sugerido = $scope.getTotalDeuda() + $scope.getTotalCobrado(); 405 var sugerido = $scope.getTotalDeuda() + $scope.getTotalCobrado();
406 return sugerido < 0 ? sugerido : null; 406 return sugerido < 0 ? sugerido : null;
407 } 407 }
408 } 408 }
409 } 409 }
410 ); 410 );
411 modalInstance.result.then( 411 modalInstance.result.then(
412 function(efectivo) { 412 function(efectivo) {
413 var cobro = { 413 var cobro = {
414 tipo: 'Efectivo', 414 tipo: 'Efectivo',
415 fecha: new Date(), 415 fecha: new Date(),
416 importe: efectivo * $scope.cobranza.cotizacion.VENDEDOR 416 importe: efectivo * $scope.cobranza.cotizacion.VENDEDOR
417 }; 417 };
418 $scope.cobrosTabla = $scope.cobrosTabla.filter(function(a) { 418 $scope.cobrosTabla = $scope.cobrosTabla.filter(function(a) {
419 return a.tipo !== 'Efectivo'; 419 return a.tipo !== 'Efectivo';
420 }); 420 });
421 $scope.cobrosTabla.push(cobro); 421 $scope.cobrosTabla.push(cobro);
422 }, function() { 422 }, function() {
423 423
424 } 424 }
425 ); 425 );
426 }; 426 };
427 427
428 $scope.seleccionarMoneda = function() { 428 $scope.seleccionarMoneda = function() {
429 var modalInstance = $uibModal.open( 429 var parametrosModal = {
430 { 430 titulo: 'Búsqueda de monedas',
431 ariaLabelledBy: 'Busqueda de Moneda', 431 query: '/moneda',
432 templateUrl: 'modal-moneda.html', 432 columnas: [
433 controller: 'focaModalMonedaController', 433 {
434 size: 'lg' 434 propiedad: 'DETALLE',
435 } 435 nombre: 'Nombre'
436 ); 436 },
437 modalInstance.result.then( 437 {
438 propiedad: 'SIMBOLO',
439 nombre: 'simbolo'
440 }
441 ],
442 size: 'md'
443 };
444 focaModalService.modal(parametrosModal).then(
438 function(moneda) { 445 function(moneda) {
439 $scope.seleccionarCotizacion(moneda); 446 $scope.seleccionarCotizacion(moneda);
440 }, function() { 447 }, function() {
441 448
442 } 449 }
443 ); 450 );
444 }; 451 };
445 452
446 $scope.seleccionarCotizacion = function(moneda) { 453 $scope.seleccionarCotizacion = function(moneda) {
447 var modalInstance = $uibModal.open( 454 var modalInstance = $uibModal.open(
448 { 455 {
449 ariaLabelledBy: 'Busqueda de Cotización', 456 ariaLabelledBy: 'Busqueda de Cotización',
450 templateUrl: 'modal-cotizacion.html', 457 templateUrl: 'modal-cotizacion.html',
451 controller: 'focaModalCotizacionController', 458 controller: 'focaModalCotizacionController',
452 size: 'lg', 459 size: 'lg',
453 resolve: {idMoneda: function() {return moneda.ID;}} 460 resolve: {idMoneda: function() {return moneda.ID;}}
454 } 461 }
455 ); 462 );
456 modalInstance.result.then( 463 modalInstance.result.then(
457 function(cotizacion) { 464 function(cotizacion) {
458 $scope.cobranza.moneda = moneda; 465 $scope.cobranza.moneda = moneda;
459 $scope.cobranza.cotizacion = cotizacion; 466 $scope.cobranza.cotizacion = cotizacion;
460 if(moneda.DETALLE === 'PESOS ARGENTINOS') { 467 if(moneda.DETALLE === 'PESOS ARGENTINOS') {
461 $scope.$broadcast('removeCabecera', 'Moneda:'); 468 $scope.$broadcast('removeCabecera', 'Moneda:');
462 $scope.$broadcast('removeCabecera', 'Fecha cotizacion:'); 469 $scope.$broadcast('removeCabecera', 'Fecha cotizacion:');
463 $scope.$broadcast('removeCabecera', 'Cotizacion:'); 470 $scope.$broadcast('removeCabecera', 'Cotizacion:');
464 }else { 471 }else {
465 $scope.$broadcast('addCabecera', { 472 $scope.$broadcast('addCabecera', {
466 label: 'Moneda:', 473 label: 'Moneda:',
467 valor: moneda.DETALLE 474 valor: moneda.DETALLE
468 }); 475 });
469 $scope.$broadcast('addCabecera', { 476 $scope.$broadcast('addCabecera', {
470 label: 'Fecha cotizacion:', 477 label: 'Fecha cotizacion:',
471 valor: $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy') 478 valor: $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy')
472 }); 479 });
473 $scope.$broadcast('addCabecera', { 480 $scope.$broadcast('addCabecera', {
474 label: 'Cotizacion:', 481 label: 'Cotizacion:',
475 valor: $filter('number')(cotizacion.VENDEDOR, '2') 482 valor: $filter('number')(cotizacion.VENDEDOR, '2')
476 }); 483 });
477 } 484 }
478 }, function() { 485 }, function() {
479 486
480 } 487 }
481 ); 488 );
482 }; 489 };
483 490
484 $scope.seleccionarCobrador = function() { 491 $scope.seleccionarCobrador = function() {
485 var parametrosModal = { 492 var parametrosModal = {
486 query: '/cobrador', 493 query: '/cobrador',
487 columnas: [ 494 columnas: [
488 { 495 {
489 propiedad: 'CodVen', 496 propiedad: 'CodVen',
490 nombre: 'Codigo', 497 nombre: 'Codigo',
491 filtro: { 498 filtro: {
492 nombre: 'rellenarDigitos', 499 nombre: 'rellenarDigitos',
493 parametro: 3} 500 parametro: 3}
494 }, 501 },
495 { 502 {
496 propiedad: 'NomVen', 503 propiedad: 'NomVen',
497 nombre: 'Nombre' 504 nombre: 'Nombre'
498 } 505 }
499 ], 506 ],
500 titulo:'Búsqueda de cobradores' 507 titulo:'Búsqueda de cobradores'
501 }; 508 };
502 focaModalService.modal(parametrosModal).then( 509 focaModalService.modal(parametrosModal).then(
503 function(cobrador) { 510 function(cobrador) {
504 $scope.$broadcast('addCabecera', { 511 $scope.$broadcast('addCabecera', {
505 label: 'Cobrador:', 512 label: 'Cobrador:',
506 valor: cobrador.NomVen 513 valor: cobrador.NomVen
507 }); 514 });
508 $scope.cobranza.cobrador = cobrador; 515 $scope.cobranza.cobrador = cobrador;
509 }, function() { 516 }, function() {
510 517
511 } 518 }
512 ); 519 );
513 }; 520 };
514 521
515 $scope.getTotalDeuda = function() { 522 $scope.getTotalDeuda = function() {
516 var total = 0; 523 var total = 0;
517 for (var i = 0; i < $scope.facturaTabla.length; i++) { 524 for (var i = 0; i < $scope.facturaTabla.length; i++) {
518 total += $scope.facturaTabla[i].IPA; 525 total += $scope.facturaTabla[i].IPA;
519 } 526 }
520 return parseFloat(total.toFixed(2)); 527 return parseFloat(total.toFixed(2));
521 }; 528 };
522 529
523 $scope.getTotalCobrado = function() { 530 $scope.getTotalCobrado = function() {
524 var total = 0; 531 var total = 0;
525 for (var i = 0; i < $scope.cobrosTabla.length; i++) { 532 for (var i = 0; i < $scope.cobrosTabla.length; i++) {
526 total += $scope.cobrosTabla[i].importe; 533 total += $scope.cobrosTabla[i].importe;
527 } 534 }
528 return parseFloat(total.toFixed(2)); 535 return parseFloat(total.toFixed(2));
529 }; 536 };
530 537
531 $scope.getSubTotal = function() { 538 $scope.getSubTotal = function() {
532 if($scope.articuloACargar) { 539 if($scope.articuloACargar) {
533 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad; 540 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad;
534 } 541 }
535 }; 542 };
536 //Recibe aviso si el teclado está en uso 543 //Recibe aviso si el teclado está en uso
537 // $rootScope.$on('usarTeclado', function(event, data) { 544 // $rootScope.$on('usarTeclado', function(event, data) {
538 // if(data) { 545 // if(data) {
539 // $scope.mostrarTeclado = true; 546 // $scope.mostrarTeclado = true;
540 // return; 547 // return;
541 // } 548 // }
542 // $scope.mostrarTeclado = false; 549 // $scope.mostrarTeclado = false;
543 // }) 550 // })
544 $scope.selectFocus = function($event) { 551 $scope.selectFocus = function($event) {
545 //Si el teclado esta en uso no selecciona el valor 552 //Si el teclado esta en uso no selecciona el valor
546 // if($scope.mostrarTeclado) { 553 // if($scope.mostrarTeclado) {
547 // return; 554 // return;
548 // } 555 // }
549 $event.target.select(); 556 $event.target.select();
550 }; 557 };
551 558
552 $scope.salir = function() { 559 $scope.salir = function() {
553 $location.path('/'); 560 $location.path('/');
554 }; 561 };
555 562
556 $scope.parsearATexto = function(articulo) { 563 $scope.parsearATexto = function(articulo) {
557 articulo.cantidad = parseFloat(articulo.cantidad); 564 articulo.cantidad = parseFloat(articulo.cantidad);
558 articulo.precio = parseFloat(articulo.precio); 565 articulo.precio = parseFloat(articulo.precio);
559 }; 566 };
560 567
561 $scope.rellenar = function(relleno, longitud) { 568 $scope.rellenar = function(relleno, longitud) {
562 relleno = '' + relleno; 569 relleno = '' + relleno;
563 while (relleno.length < longitud) { 570 while (relleno.length < longitud) {
564 relleno = '0' + relleno; 571 relleno = '0' + relleno;
565 } 572 }
566 573
567 return relleno; 574 return relleno;
568 }; 575 };
569 576
570 $scope.quitarFactura = function(key) { 577 $scope.quitarFactura = function(key) {
571 $scope.facturaTabla.splice(key, 1); 578 $scope.facturaTabla.splice(key, 1);
572 }; 579 };
573 580
574 $scope.quitarCobro = function(key) { 581 $scope.quitarCobro = function(key) {
575 $scope.cobrosTabla.splice(key, 1); 582 $scope.cobrosTabla.splice(key, 1);
576 }; 583 };
577 584
578 function setearMonedaPorDefecto() { 585 function setearMonedaPorDefecto() {
579 var monedaPorDefecto; 586 var monedaPorDefecto;
580 //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]' 587 //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]'
581 focaCrearCobranzaService.getCotizacionByIdMoneda(1).then(function(res) { 588 focaCrearCobranzaService.getCotizacionByIdMoneda(1).then(function(res) {
582 monedaPorDefecto = res.data[0]; 589 monedaPorDefecto = res.data[0];
583 $scope.cobranza.moneda = monedaPorDefecto; 590 $scope.cobranza.moneda = monedaPorDefecto;
584 $scope.cobranza.cotizacion = monedaPorDefecto.cotizaciones[0]; 591 $scope.cobranza.cotizacion = monedaPorDefecto.cotizaciones[0];
585 }); 592 });
586 } 593 }
587 594
588 function obtenerNumeroComprobante() { 595 function obtenerNumeroComprobante() {
589 focaCrearCobranzaService.getNumeroRecibo().then( 596 focaCrearCobranzaService.getNumeroRecibo().then(
590 function(res) { 597 function(res) {
591 $scope.puntoVenta = $scope.rellenar(res.data.sucursal, 4); 598 $scope.puntoVenta = $scope.rellenar(res.data.sucursal, 4);
592 $scope.comprobante = $scope.rellenar(res.data.numeroRecibo, 8); 599 $scope.comprobante = $scope.rellenar(res.data.numeroRecibo, 8);
593 }, 600 },
594 function(err) { 601 function(err) {
595 focaModalService.alert('La terminal no esta configurada correctamente'); 602 focaModalService.alert('La terminal no esta configurada correctamente');
596 console.info(err); 603 console.info(err);
597 } 604 }
598 ); 605 );
599 } 606 }
600 607
601 function salir() { 608 function salir() {
602 var cobranza = { 609 var cobranza = {
603 moneda: $scope.cobranza.moneda, 610 moneda: $scope.cobranza.moneda,
604 cotizacion: $scope.cobranza.cotizacion 611 cotizacion: $scope.cobranza.cotizacion
605 }; 612 };
606 if(JSON.stringify($scope.cobranza) !== JSON.stringify(cobranza)) { 613 if(JSON.stringify($scope.cobranza) !== JSON.stringify(cobranza)) {
607 focaModalService 614 focaModalService
608 .confirm('¿Esta seguro de que desea salir? ' + 615 .confirm('¿Esta seguro de que desea salir? ' +
609 'Se perderán todos los datos cargados.') 616 'Se perderán todos los datos cargados.')
610 .then(function(data) { 617 .then(function(data) {
611 if(data) $location.path('/'); 618 if(data) $location.path('/');
612 }); 619 });
613 }else { 620 }else {
614 $location.path('/'); 621 $location.path('/');
615 } 622 }
616 } 623 }
617 obtenerNumeroComprobante(); 624 obtenerNumeroComprobante();
618 setearMonedaPorDefecto(); 625 setearMonedaPorDefecto();
619 } 626 }
620 ]); 627 ]);
621 628