Commit 1aafd37890814111d1960a04e089a49cdd7f7bcf

Authored by Eric Fernandez
1 parent 707c6402a6
Exists in master

vuelvo atrás en el refactor

Showing 1 changed file with 10 additions and 26 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 if(!$scope.cobranza.cobrador) { 364 if(!$scope.cobranza.cobrador) {
365 focaModalService.alert('Ingrese primero cobrador'); 365 focaModalService.alert('Ingrese primero cobrador');
366 return; 366 return;
367 } 367 }
368 var parametrosModal = { 368 var modalInstance = $uibModal.open(
369 titulo: 'Búsqueda de Clientes', 369 {
370 query: '/cliente/listar', 370 ariaLabelledBy: 'Busqueda de Cliente',
371 columnas: [ 371 templateUrl: 'foca-busqueda-cliente-modal.html',
372 { 372 controller: 'focaBusquedaClienteModalController',
373 nombre: 'Código', 373 resolve: {
374 propiedad: 'cod', 374 vendedor: function() { return $scope.cobranza.cobrador; }
375 filtro: {
376 nombre: 'rellenarDigitos',
377 parametro: 5
378 }
379 },
380 {
381 nombre: 'Nombre',
382 propiedad: 'nom'
383 }, 375 },
384 { 376 size: 'lg'
385 nombre: 'CUIT',
386 propiedad: 'cuit'
387 }
388 ],
389 tipo: 'POST',
390 json: {
391 nombreOCuit: '',
392 idVendedor: $scope.cobranza.cobrador.id
393 } 377 }
394 }; 378 );
395 focaModalService.modal(parametrosModal).then( 379 modalInstance.result.then(
396 function(cliente) { 380 function(cliente) {
397 $scope.$broadcast('addCabecera', { 381 $scope.$broadcast('addCabecera', {
398 label: 'Cliente:', 382 label: 'Cliente:',
399 valor: $filter('rellenarDigitos')(cliente.COD, 5) + ' - ' + cliente.NOM 383 valor: $filter('rellenarDigitos')(cliente.COD, 5) + ' - ' + cliente.NOM
400 }); 384 });
401 $scope.cobranza.cliente = cliente; 385 $scope.cobranza.cliente = cliente;
402 } 386 }
403 ); 387 );
404 }; 388 };
405 389
406 $scope.seleccionarFactura = function() { 390 $scope.seleccionarFactura = function() {
407 if(!$scope.cobranza.cliente) { 391 if(!$scope.cobranza.cliente) {
408 focaModalService.alert('Seleccione primero un cliente'); 392 focaModalService.alert('Seleccione primero un cliente');
409 return; 393 return;
410 } 394 }
411 var modalInstance = $uibModal.open( 395 var modalInstance = $uibModal.open(
412 { 396 {
413 ariaLabelledBy: 'Busqueda de Facturas', 397 ariaLabelledBy: 'Busqueda de Facturas',
414 templateUrl: 'foca-modal-factura.html', 398 templateUrl: 'foca-modal-factura.html',
415 controller: 'focaModalFacturaController', 399 controller: 'focaModalFacturaController',
416 size: 'lg', 400 size: 'lg',
417 resolve: { 401 resolve: {
418 parametrosFactura: function() { 402 parametrosFactura: function() {
419 return { 403 return {
420 cliente: $scope.cobranza.cliente, 404 cliente: $scope.cobranza.cliente,
421 simbolo: $scope.cobranza.moneda.SIMBOLO, 405 simbolo: $scope.cobranza.moneda.SIMBOLO,
422 cotizacion: $scope.cobranza.cotizacion.VENDEDOR, 406 cotizacion: $scope.cobranza.cotizacion.VENDEDOR,
423 moneda: $scope.cobranza.moneda.ID 407 moneda: $scope.cobranza.moneda.ID
424 }; 408 };
425 } 409 }
426 } 410 }
427 } 411 }
428 ); 412 );
429 modalInstance.result.then( 413 modalInstance.result.then(
430 function(facturas) { 414 function(facturas) {
431 $scope.facturaTabla = $scope.facturaTabla.concat(facturas); 415 $scope.facturaTabla = $scope.facturaTabla.concat(facturas);
432 }, function() { 416 }, function() {
433 417
434 } 418 }
435 ); 419 );
436 }; 420 };
437 421
438 $scope.seleccionarCheque = function() { 422 $scope.seleccionarCheque = function() {
439 var modalInstance = $uibModal.open( 423 var modalInstance = $uibModal.open(
440 { 424 {
441 ariaLabelledBy: 'Carga de cheques', 425 ariaLabelledBy: 'Carga de cheques',
442 templateUrl: 'modal-cheque.html', 426 templateUrl: 'modal-cheque.html',
443 controller: 'focaModalChequeController', 427 controller: 'focaModalChequeController',
444 size: 'lg', 428 size: 'lg',
445 resolve: { 429 resolve: {
446 sugerido: function() { 430 sugerido: function() {
447 var sugerido = $scope.getTotalDeuda() + $scope.getTotalCobrado(); 431 var sugerido = $scope.getTotalDeuda() + $scope.getTotalCobrado();
448 return sugerido < 0 ? sugerido : null; 432 return sugerido < 0 ? sugerido : null;
449 } 433 }
450 } 434 }
451 } 435 }
452 ); 436 );
453 modalInstance.result.then( 437 modalInstance.result.then(
454 function(cheque) { 438 function(cheque) {
455 var cobro = { 439 var cobro = {
456 tipo: 'Ch' + '(' + cheque.numero + ')' + ' ' + cheque.banco.desbco, 440 tipo: 'Ch' + '(' + cheque.numero + ')' + ' ' + cheque.banco.desbco,
457 numero: cheque.numero, 441 numero: cheque.numero,
458 banco: cheque.banco, 442 banco: cheque.banco,
459 fecha: cheque.fechaEmision.toLocaleDateString() + '-' + 443 fecha: cheque.fechaEmision.toLocaleDateString() + '-' +
460 cheque.fechaPresentacion.toLocaleDateString(), 444 cheque.fechaPresentacion.toLocaleDateString(),
461 fechaPresentacion: cheque.fechaPresentacion, 445 fechaPresentacion: cheque.fechaPresentacion,
462 fechaEmision: cheque.fechaEmision, 446 fechaEmision: cheque.fechaEmision,
463 importe: cheque.importe * $scope.cobranza.cotizacion.VENDEDOR, 447 importe: cheque.importe * $scope.cobranza.cotizacion.VENDEDOR,
464 localidad: cheque.localidad, 448 localidad: cheque.localidad,
465 librador: cheque.librador, 449 librador: cheque.librador,
466 provincia: cheque.provincia, 450 provincia: cheque.provincia,
467 observaciones: cheque.observaciones 451 observaciones: cheque.observaciones
468 }; 452 };
469 $scope.cobrosTabla.push(cobro); 453 $scope.cobrosTabla.push(cobro);
470 }, function() { 454 }, function() {
471 455
472 } 456 }
473 ); 457 );
474 }; 458 };
475 459
476 $scope.seleccionarEfectivo = function() { 460 $scope.seleccionarEfectivo = function() {
477 var modalInstance = $uibModal.open( 461 var modalInstance = $uibModal.open(
478 { 462 {
479 ariaLabelledBy: 'Carga de cheques', 463 ariaLabelledBy: 'Carga de cheques',
480 templateUrl: 'modal-efectivo.html', 464 templateUrl: 'modal-efectivo.html',
481 controller: 'focaModalEfectivoController', 465 controller: 'focaModalEfectivoController',
482 size: 'sm', 466 size: 'sm',
483 resolve: { 467 resolve: {
484 sugerido: function() { 468 sugerido: function() {
485 var sugerido = $scope.getTotalDeuda() + $scope.getTotalCobrado(); 469 var sugerido = $scope.getTotalDeuda() + $scope.getTotalCobrado();
486 return sugerido < 0 ? sugerido : null; 470 return sugerido < 0 ? sugerido : null;
487 } 471 }
488 } 472 }
489 } 473 }
490 ); 474 );
491 modalInstance.result.then( 475 modalInstance.result.then(
492 function(efectivo) { 476 function(efectivo) {
493 var cobro = { 477 var cobro = {
494 tipo: 'Efectivo', 478 tipo: 'Efectivo',
495 fecha: new Date(), 479 fecha: new Date(),
496 importe: efectivo * $scope.cobranza.cotizacion.VENDEDOR 480 importe: efectivo * $scope.cobranza.cotizacion.VENDEDOR
497 }; 481 };
498 $scope.cobrosTabla = $scope.cobrosTabla.filter(function(a) { 482 $scope.cobrosTabla = $scope.cobrosTabla.filter(function(a) {
499 return a.tipo !== 'Efectivo'; 483 return a.tipo !== 'Efectivo';
500 }); 484 });
501 $scope.cobrosTabla.push(cobro); 485 $scope.cobrosTabla.push(cobro);
502 }, function() { 486 }, function() {
503 487
504 } 488 }
505 ); 489 );
506 }; 490 };
507 491
508 $scope.seleccionarMoneda = function() { 492 $scope.seleccionarMoneda = function() {
509 var parametrosModal = { 493 var parametrosModal = {
510 titulo: 'Búsqueda de monedas', 494 titulo: 'Búsqueda de monedas',
511 query: '/moneda', 495 query: '/moneda',
512 columnas: [ 496 columnas: [
513 { 497 {
514 propiedad: 'DETALLE', 498 propiedad: 'DETALLE',
515 nombre: 'Nombre' 499 nombre: 'Nombre'
516 }, 500 },
517 { 501 {
518 propiedad: 'SIMBOLO', 502 propiedad: 'SIMBOLO',
519 nombre: 'Símbolo' 503 nombre: 'Símbolo'
520 } 504 }
521 ], 505 ],
522 size: 'md' 506 size: 'md'
523 }; 507 };
524 focaModalService.modal(parametrosModal).then( 508 focaModalService.modal(parametrosModal).then(
525 function(moneda) { 509 function(moneda) {
526 $scope.seleccionarCotizacion(moneda); 510 $scope.seleccionarCotizacion(moneda);
527 }, function() { 511 }, function() {
528 512
529 } 513 }
530 ); 514 );
531 }; 515 };
532 516
533 $scope.seleccionarCotizacion = function(moneda) { 517 $scope.seleccionarCotizacion = function(moneda) {
534 var modalInstance = $uibModal.open( 518 var modalInstance = $uibModal.open(
535 { 519 {
536 ariaLabelledBy: 'Busqueda de Cotización', 520 ariaLabelledBy: 'Busqueda de Cotización',
537 templateUrl: 'modal-cotizacion.html', 521 templateUrl: 'modal-cotizacion.html',
538 controller: 'focaModalCotizacionController', 522 controller: 'focaModalCotizacionController',
539 size: 'lg', 523 size: 'lg',
540 resolve: {idMoneda: function() {return moneda.ID;}} 524 resolve: {idMoneda: function() {return moneda.ID;}}
541 } 525 }
542 ); 526 );
543 modalInstance.result.then( 527 modalInstance.result.then(
544 function(cotizacion) { 528 function(cotizacion) {
545 $scope.cobranza.moneda = moneda; 529 $scope.cobranza.moneda = moneda;
546 $scope.cobranza.cotizacion = cotizacion; 530 $scope.cobranza.cotizacion = cotizacion;
547 if(moneda.DETALLE === 'PESOS ARGENTINOS') { 531 if(moneda.DETALLE === 'PESOS ARGENTINOS') {
548 $scope.$broadcast('removeCabecera', 'Moneda:'); 532 $scope.$broadcast('removeCabecera', 'Moneda:');
549 $scope.$broadcast('removeCabecera', 'Fecha cotizacion:'); 533 $scope.$broadcast('removeCabecera', 'Fecha cotizacion:');
550 $scope.$broadcast('removeCabecera', 'Cotizacion:'); 534 $scope.$broadcast('removeCabecera', 'Cotizacion:');
551 }else { 535 }else {
552 $scope.$broadcast('addCabecera', { 536 $scope.$broadcast('addCabecera', {
553 label: 'Moneda:', 537 label: 'Moneda:',
554 valor: moneda.DETALLE 538 valor: moneda.DETALLE
555 }); 539 });
556 $scope.$broadcast('addCabecera', { 540 $scope.$broadcast('addCabecera', {
557 label: 'Fecha cotizacion:', 541 label: 'Fecha cotizacion:',
558 valor: $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy') 542 valor: $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy')
559 }); 543 });
560 $scope.$broadcast('addCabecera', { 544 $scope.$broadcast('addCabecera', {
561 label: 'Cotizacion:', 545 label: 'Cotizacion:',
562 valor: $filter('number')(cotizacion.VENDEDOR, '2') 546 valor: $filter('number')(cotizacion.VENDEDOR, '2')
563 }); 547 });
564 } 548 }
565 }, function() { 549 }, function() {
566 550
567 } 551 }
568 ); 552 );
569 }; 553 };
570 554
571 $scope.seleccionarCobrador = function() { 555 $scope.seleccionarCobrador = function() {
572 var parametrosModal = { 556 var parametrosModal = {
573 query: '/cobrador', 557 query: '/cobrador',
574 columnas: [ 558 columnas: [
575 { 559 {
576 propiedad: 'NUM', 560 propiedad: 'NUM',
577 nombre: 'Codigo', 561 nombre: 'Codigo',
578 filtro: { 562 filtro: {
579 nombre: 'rellenarDigitos', 563 nombre: 'rellenarDigitos',
580 parametro: 3} 564 parametro: 3}
581 }, 565 },
582 { 566 {
583 propiedad: 'NOM', 567 propiedad: 'NOM',
584 nombre: 'Nombre' 568 nombre: 'Nombre'
585 } 569 }
586 ], 570 ],
587 titulo:'Búsqueda de cobradores' 571 titulo:'Búsqueda de cobradores'
588 }; 572 };
589 focaModalService.modal(parametrosModal).then( 573 focaModalService.modal(parametrosModal).then(
590 function(cobrador) { 574 function(cobrador) {
591 $scope.$broadcast('addCabecera', { 575 $scope.$broadcast('addCabecera', {
592 label: 'Cobrador:', 576 label: 'Cobrador:',
593 valor: $filter('rellenarDigitos')(cobrador.NUM, 3) + ' - ' + 577 valor: $filter('rellenarDigitos')(cobrador.NUM, 3) + ' - ' +
594 cobrador.NOM 578 cobrador.NOM
595 }); 579 });
596 $scope.cobranza.cobrador = cobrador; 580 $scope.cobranza.cobrador = cobrador;
597 }, function() { 581 }, function() {
598 582
599 } 583 }
600 ); 584 );
601 }; 585 };
602 586
603 $scope.getTotalDeuda = function() { 587 $scope.getTotalDeuda = function() {
604 var total = 0; 588 var total = 0;
605 for (var i = 0; i < $scope.facturaTabla.length; i++) { 589 for (var i = 0; i < $scope.facturaTabla.length; i++) {
606 total += $scope.facturaTabla[i].IPA; 590 total += $scope.facturaTabla[i].IPA;
607 } 591 }
608 return parseFloat(total.toFixed(2)); 592 return parseFloat(total.toFixed(2));
609 }; 593 };
610 594
611 $scope.getTotalCobrado = function() { 595 $scope.getTotalCobrado = function() {
612 var total = 0; 596 var total = 0;
613 for (var i = 0; i < $scope.cobrosTabla.length; i++) { 597 for (var i = 0; i < $scope.cobrosTabla.length; i++) {
614 total += $scope.cobrosTabla[i].importe; 598 total += $scope.cobrosTabla[i].importe;
615 } 599 }
616 return parseFloat(total.toFixed(2)); 600 return parseFloat(total.toFixed(2));
617 }; 601 };
618 602
619 $scope.getSubTotal = function() { 603 $scope.getSubTotal = function() {
620 if($scope.articuloACargar) { 604 if($scope.articuloACargar) {
621 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad; 605 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad;
622 } 606 }
623 }; 607 };
624 //Recibe aviso si el teclado está en uso 608 //Recibe aviso si el teclado está en uso
625 // $rootScope.$on('usarTeclado', function(event, data) { 609 // $rootScope.$on('usarTeclado', function(event, data) {
626 // if(data) { 610 // if(data) {
627 // $scope.mostrarTeclado = true; 611 // $scope.mostrarTeclado = true;
628 // return; 612 // return;
629 // } 613 // }
630 // $scope.mostrarTeclado = false; 614 // $scope.mostrarTeclado = false;
631 // }) 615 // })
632 $scope.selectFocus = function($event) { 616 $scope.selectFocus = function($event) {
633 //Si el teclado esta en uso no selecciona el valor 617 //Si el teclado esta en uso no selecciona el valor
634 // if($scope.mostrarTeclado) { 618 // if($scope.mostrarTeclado) {
635 // return; 619 // return;
636 // } 620 // }
637 $event.target.select(); 621 $event.target.select();
638 }; 622 };
639 623
640 $scope.salir = function() { 624 $scope.salir = function() {
641 $location.path('/'); 625 $location.path('/');
642 }; 626 };
643 627
644 $scope.parsearATexto = function(articulo) { 628 $scope.parsearATexto = function(articulo) {
645 articulo.cantidad = parseFloat(articulo.cantidad); 629 articulo.cantidad = parseFloat(articulo.cantidad);
646 articulo.precio = parseFloat(articulo.precio); 630 articulo.precio = parseFloat(articulo.precio);
647 }; 631 };
648 632
649 $scope.quitarFactura = function(key) { 633 $scope.quitarFactura = function(key) {
650 $scope.facturaTabla.splice(key, 1); 634 $scope.facturaTabla.splice(key, 1);
651 }; 635 };
652 636
653 $scope.quitarCobro = function(key) { 637 $scope.quitarCobro = function(key) {
654 $scope.cobrosTabla.splice(key, 1); 638 $scope.cobrosTabla.splice(key, 1);
655 }; 639 };
656 640
657 function salir() { 641 function salir() {
658 var confirmacion = false; 642 var confirmacion = false;
659 643
660 angular.forEach($scope.inicial, function(valor, key) { 644 angular.forEach($scope.inicial, function(valor, key) {
661 if (!angular.equals($scope[key], $scope.inicial[key])) { 645 if (!angular.equals($scope[key], $scope.inicial[key])) {
662 confirmacion = true; 646 confirmacion = true;
663 } 647 }
664 }); 648 });
665 649
666 if (confirmacion) { 650 if (confirmacion) {
667 focaModalService.confirm( 651 focaModalService.confirm(
668 '¿Está seguro de que desea salir? Se perderán todos los datos cargados.' 652 '¿Está seguro de que desea salir? Se perderán todos los datos cargados.'
669 ).then(function(data) { 653 ).then(function(data) {
670 if (data) { 654 if (data) {
671 $location.path('/'); 655 $location.path('/');
672 } 656 }
673 }); 657 });
674 } else { 658 } else {
675 $location.path('/'); 659 $location.path('/');
676 } 660 }
677 } 661 }
678 } 662 }
679 ]); 663 ]);
680 664