Commit 0bb9a79d29e16fdfe64bd4d3dcf7930698e41f28

Authored by Jose Pinto
1 parent 2fd90bf29e
Exists in master

ok modal cobrador

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