Commit 78db92a5563c2e7a8e2211c014388dea25eb40c4

Authored by Eric Fernandez
Exists in master

Merge branch 'master' into 'develop'

Master

See merge request !74
src/js/controller.js
1 angular.module('focaCrearCobranza') .controller('cobranzaController', 1 angular.module('focaCrearCobranza') .controller('cobranzaController',
2 [ 2 [
3 '$scope', '$timeout', '$uibModal', '$location', 3 '$scope', '$timeout', '$uibModal', '$location',
4 'focaCrearCobranzaService', 'focaModalService', '$filter', 'focaSeguimientoService', 4 'focaCrearCobranzaService', 'focaModalService', '$filter', 'focaSeguimientoService',
5 'focaBotoneraLateralService', 'APP', 'focaLoginService', '$localStorage', 5 'focaBotoneraLateralService', 'APP', 'focaLoginService', '$localStorage',
6 function($scope, $timeout, $uibModal, $location, focaCrearCobranzaService, 6 function($scope, $timeout, $uibModal, $location, focaCrearCobranzaService,
7 focaModalService, $filter, focaSeguimientoService, focaBotoneraLateralService, 7 focaModalService, $filter, focaSeguimientoService, focaBotoneraLateralService,
8 APP, loginService, $localStorage) 8 APP, loginService, $localStorage)
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.puntoVenta = $filter('rellenarDigitos')(0, 4); 17 $scope.puntoVenta = $filter('rellenarDigitos')(0, 4);
18 $scope.comprobante = $filter('rellenarDigitos')(0, 8); 18 $scope.comprobante = $filter('rellenarDigitos')(0, 8);
19 $scope.botonera = focaCrearCobranzaService.getBotonera(); 19 $scope.botonera = focaCrearCobranzaService.getBotonera();
20 $scope.dateOptions = { 20 $scope.dateOptions = {
21 maxDate: new Date(), 21 maxDate: new Date(),
22 minDate: new Date(2010, 0, 1) 22 minDate: new Date(2010, 0, 1)
23 }; 23 };
24 24
25 //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]' 25 //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]'
26 focaCrearCobranzaService.getCotizacionByIdMoneda(1).then(function(res) { 26 focaCrearCobranzaService.getCotizacionByIdMoneda(1).then(function(res) {
27 var moneda = res.data[0]; 27 var moneda = res.data[0];
28 moneda.cotizacion = moneda.cotizaciones[0]; 28 moneda.cotizacion = moneda.cotizaciones[0];
29 $scope.cobranza.moneda = $scope.inicial.moneda = moneda; 29 $scope.cobranza.moneda = $scope.inicial.moneda = moneda;
30 $filter('filter')( $scope.botonera, { 30 $filter('filter')( $scope.botonera, {
31 label: 'Moneda' 31 label: 'Moneda'
32 })[0].checked = true; 32 })[0].checked = true;
33 $timeout(function() { getLSCobranza();} ); 33 $timeout(function() { getLSCobranza();} );
34 }); 34 });
35 35
36 $timeout(function() { 36 $timeout(function() {
37 focaBotoneraLateralService.showSalir(false); 37 focaBotoneraLateralService.showSalir(false);
38 focaBotoneraLateralService.showPausar(true); 38 focaBotoneraLateralService.showPausar(true);
39 focaBotoneraLateralService.showGuardar(true, $scope.crearCobranza); 39 focaBotoneraLateralService.showGuardar(true, $scope.crearCobranza);
40 focaBotoneraLateralService.addCustomButton('Salir', salir); 40 focaBotoneraLateralService.addCustomButton('Salir', salir);
41 }); 41 });
42 42
43 if (APP === 'cobranza') { 43 if (APP === 'cobranza') {
44 $scope.idCobrador = loginService.getLoginData().vendedorCobrador; 44 $scope.idCobrador = loginService.getLoginData().vendedorCobrador;
45 } 45 }
46 46
47 init(); 47 init();
48 } 48 }
49 49
50 function init() { 50 function init() {
51 $scope.$broadcast('cleanCabecera'); 51 $scope.$broadcast('cleanCabecera');
52 $scope.cobranza = { 52 $scope.cobranza = {
53 FEC: new Date(), 53 FEC: new Date(),
54 moneda: {}, 54 moneda: {},
55 facturas: [], 55 facturas: [],
56 cobros: [], 56 cobros: [],
57 cliente: {}, 57 cliente: {},
58 cobrador: {} 58 cobrador: {}
59 }; 59 };
60 60
61 if (APP === 'cobranza') { 61 if (APP === 'cobranza') {
62 focaCrearCobranzaService.getCobradorById($scope.idCobrador).then( 62 focaCrearCobranzaService.getCobradorById($scope.idCobrador).then(
63 function(res) { 63 function(res) {
64 var cobrador = res.data; 64 var cobrador = res.data;
65 65
66 $scope.$broadcast('addCabecera', { 66 $scope.$broadcast('addCabecera', {
67 label: 'Cobrador:', 67 label: 'Cobrador:',
68 valor: $filter('rellenarDigitos')(cobrador.NUM, 3) + ' - ' + 68 valor: $filter('rellenarDigitos')(cobrador.NUM, 3) + ' - ' +
69 cobrador.NOM 69 cobrador.NOM
70 }); 70 });
71 71
72 $scope.cobranza.cobrador = cobrador; 72 $scope.cobranza.cobrador = cobrador;
73 $scope.inicial.cobrador = $scope.cobranza.cobrador; 73 $scope.inicial.cobrador = $scope.cobranza.cobrador;
74 } 74 }
75 ); 75 );
76 } 76 }
77 77
78 $scope.inicial = angular.copy($scope.cobranza); 78 $scope.inicial = angular.copy($scope.cobranza);
79 79
80 focaCrearCobranzaService.getNumeroRecibo().then( 80 focaCrearCobranzaService.getNumeroRecibo().then(
81 function(res) { 81 function(res) {
82 $scope.puntoVenta = $filter('rellenarDigitos')( 82 $scope.puntoVenta = $filter('rellenarDigitos')(
83 res.data.sucursal, 4 83 res.data.sucursal, 4
84 ); 84 );
85 85
86 $scope.comprobante = $filter('rellenarDigitos')( 86 $scope.comprobante = $filter('rellenarDigitos')(
87 res.data.numeroRecibo, 8 87 res.data.numeroRecibo, 8
88 ); 88 );
89 }, 89 },
90 function(err) { 90 function(err) {
91 focaModalService.alert( 91 focaModalService.alert(
92 'La terminal no esta configurada correctamente' 92 'La terminal no esta configurada correctamente'
93 ); 93 );
94 console.info(err); 94 console.info(err);
95 } 95 }
96 ); 96 );
97 } 97 }
98 98
99 $scope.$watch('cobranza', function(newValue) { 99 $scope.$watch('cobranza', function(newValue) {
100 focaBotoneraLateralService.setPausarData({ 100 focaBotoneraLateralService.setPausarData({
101 label: 'cobranza', 101 label: 'cobranza',
102 val: newValue 102 val: newValue
103 }); 103 });
104 }, true); 104 }, true);
105 105
106 $scope.crearCobranza = function() { 106 $scope.crearCobranza = function() {
107 if (!$scope.cobranza.cliente.COD) { 107 if (!$scope.cobranza.cliente.COD) {
108 focaModalService.alert('Ingrese Cliente'); 108 focaModalService.alert('Ingrese Cliente');
109 return; 109 return;
110 } 110 }
111 if (!$scope.cobranza.cobrador.NUM) { 111 if (!$scope.cobranza.cobrador.NUM) {
112 focaModalService.alert('Ingrese Cobrador'); 112 focaModalService.alert('Ingrese Cobrador');
113 return; 113 return;
114 } 114 }
115 if ($scope.cobranza.facturas.length < 1) { 115 if ($scope.cobranza.facturas.length < 1) {
116 focaModalService.alert('Ingrese al menos una factura'); 116 focaModalService.alert('Ingrese al menos una factura');
117 return; 117 return;
118 } 118 }
119 if ($scope.getTotalCobrado() + $scope.getTotalDeuda() !== 0) { 119 if ($scope.getTotalCobrado() + $scope.getTotalDeuda() !== 0) {
120 focaModalService.alert('La diferencia debe ser ' + 120 focaModalService.alert('La diferencia debe ser ' +
121 $scope.cobranza.moneda.SIMBOLO + '0,00'); 121 $scope.cobranza.moneda.SIMBOLO + '0,00');
122 return; 122 return;
123 } 123 }
124 var cobranza = {}; 124 var cobranza = {};
125 var cheques = []; 125 var cheques = [];
126 var cuerpos = []; 126 var cuerpos = [];
127 var imgs = []; 127 var imgs = [];
128 var observacion; 128 var observacion;
129 //TODO: habilitar edición 129 //TODO: habilitar edición
130 $scope.editando = false; 130 $scope.editando = false;
131 focaBotoneraLateralService.startGuardar(); 131 focaBotoneraLateralService.startGuardar();
132 $scope.saveLoading = true; 132 $scope.saveLoading = true;
133 for(var i = 0; i < $scope.cobranza.facturas.length; i++) { 133 for(var i = 0; i < $scope.cobranza.facturas.length; i++) {
134 var cuerpoFactura = { 134 var cuerpoFactura = {
135 CYV: 'V', 135 CYV: 'V',
136 TIP: 'C', 136 TIP: 'C',
137 TCO: 'RC', 137 TCO: 'RC',
138 PVE: $scope.puntoVenta, 138 PVE: $scope.puntoVenta,
139 NCO: $scope.comprobante, 139 NCO: $scope.comprobante,
140 LOP: 'L', 140 LOP: 'L',
141 TIL: $scope.cobranza.facturas[i].TCO, 141 TIL: $scope.cobranza.facturas[i].TCO,
142 COM: $scope.cobranza.facturas[i].COM + '-' + 142 COM: $scope.cobranza.facturas[i].numeroFactura + '-' +
143 $filter('rellenarDigitos')($scope.cobranza.facturas[i].NCU,2), 143 $filter('rellenarDigitos')($scope.cobranza.facturas[i].NCU),
144 FEC: new Date($scope.cobranza.FEC) 144 FEC: new Date($scope.cobranza.FEC)
145 .toISOString().slice(0, 19).replace('T', ' '), 145 .toISOString().slice(0, 19).replace('T', ' '),
146 IMP: Math.abs($scope.cobranza.facturas[i].IMP || 146 IMP: Math.abs($scope.cobranza.facturas[i].IMP ||
147 $scope.cobranza.facturas[i].IPA), 147 $scope.cobranza.facturas[i].IPA),
148 RES: 0,//caja de tesorería 148 RES: 0,//caja de tesorería
149 SUBM: 0, 149 SUBM: 0,
150 NCU: $scope.cobranza.facturas[i].NCU 150 NCU: $scope.cobranza.facturas[i].NCU
151 }; 151 };
152 cuerpos.push(cuerpoFactura); 152 cuerpos.push(cuerpoFactura);
153
154 } 153 }
155
156 for (var j = 0; j < $scope.cobranza.cobros.length; j++) { 154 for (var j = 0; j < $scope.cobranza.cobros.length; j++) {
157
158 var efectivo = $scope.cobranza.cobros[j].tipo === 'Efectivo'; 155 var efectivo = $scope.cobranza.cobros[j].tipo === 'Efectivo';
159 var cuerpoCobros = { 156 var cuerpoCobros = {
160 CYV: 'V', 157 CYV: 'V',
161 TIP: 'C', 158 TIP: 'C',
162 TCO: 'RC', 159 TCO: 'RC',
163 PVE: $scope.puntoVenta, 160 PVE: $scope.puntoVenta,
164 NCO: $scope.comprobante, 161 NCO: $scope.comprobante,
165 LOP: 'P', 162 LOP: 'P',
166 TIL: $scope.cobranza.cobros[j].TIL, 163 TIL: $scope.cobranza.cobros[j].TIL,
167 COM: efectivo ? 'ef(COBRO EN EFECTIVO)' : $scope.cobranza.cobros[j].COM, 164 COM: efectivo ? 'ef(COBRO EN EFECTIVO)' : $scope.cobranza.cobros[j].COM,
168 FEC: !$scope.cobranza.cobros[j].fechaPresentacion ? 165 FEC: !$scope.cobranza.cobros[j].fechaPresentacion ?
169 new Date($scope.cobranza.cobros[j].FEC) 166 new Date($scope.cobranza.cobros[j].FEC)
170 .toISOString().slice(0, 19).replace('T', ' ') : 167 .toISOString().slice(0, 19).replace('T', ' ') :
171 new Date($scope.cobranza.cobros[j].fechaPresentacion) 168 new Date($scope.cobranza.cobros[j].fechaPresentacion)
172 .toISOString().slice(0, 19).replace('T', ' '), 169 .toISOString().slice(0, 19).replace('T', ' '),
173 IMP: Math.abs($scope.cobranza.cobros[j].IMP), 170 IMP: Math.abs($scope.cobranza.cobros[j].IMP),
174 RES: 0,//caja de tesorería 171 RES: 0,//caja de tesorería
175 SUBM: 0 172 SUBM: 0
176 }; 173 };
177 cuerpos.push(cuerpoCobros); 174 cuerpos.push(cuerpoCobros);
178 175
179 if ($scope.cobranza.cobros[j].observacion) 176 if ($scope.cobranza.cobros[j].observacion)
180 observacion = $scope.cobranza.cobros[j].observacion; 177 observacion = $scope.cobranza.cobros[j].observacion;
181 178
182 if ($scope.cobranza.cobros[j].banco) { 179 if ($scope.cobranza.cobros[j].banco) {
183 var cheque = { 180 var cheque = {
184 BCO: $scope.cobranza.cobros[j].banco.ID, 181 BCO: $scope.cobranza.cobros[j].banco.ID,
185 NUM: $scope.comprobante, 182 NUM: $scope.comprobante,
186 FEP: new Date($scope.cobranza.cobros[j].fechaPresentacion) 183 FEP: new Date($scope.cobranza.cobros[j].fechaPresentacion)
187 .toISOString().slice(0, 19).replace('T', ' '), 184 .toISOString().slice(0, 19).replace('T', ' '),
188 FEE: new Date($scope.cobranza.cobros[j].fechaEmision) 185 FEE: new Date($scope.cobranza.cobros[j].fechaEmision)
189 .toISOString().slice(0, 19).replace('T', ' '), 186 .toISOString().slice(0, 19).replace('T', ' '),
190 LUG: $scope.cobranza.cobros[j].localidad.NOMBRE, 187 LUG: $scope.cobranza.cobros[j].localidad.NOMBRE,
191 IMP: $scope.cobranza.cobros[j].importe, 188 IMP: $scope.cobranza.cobros[j].importe,
192 LIB: $scope.cobranza.cobros[j].librador, 189 LIB: $scope.cobranza.cobros[j].librador,
193 EST: 'C',//'D' depositado, 'E' entregado, 'C' en cartera 190 EST: 'C',//'D' depositado, 'E' entregado, 'C' en cartera
194 PCI: $scope.cobranza.cobros[j].provincia.ID, 191 PCI: $scope.cobranza.cobros[j].provincia.ID,
195 LPLA: 0, 192 LPLA: 0,
196 PLA: 0, 193 PLA: 0,
197 VEN: $scope.cobranza.cobrador.id,//Id vendedor 194 VEN: $scope.cobranza.cobrador.id,//Id vendedor
198 CCLIE: $scope.cobranza.cliente.COD,//Id cliente 195 CCLIE: $scope.cobranza.cliente.COD,//Id cliente
199 REN: 0, 196 REN: 0,
200 PVEC: $scope.puntoVenta, 197 PVEC: $scope.puntoVenta,
201 NCOC: $scope.comprobante, 198 NCOC: $scope.comprobante,
202 OBSE: $scope.cobranza.cobros[j].observaciones, 199 OBSE: $scope.cobranza.cobros[j].observaciones,
203 LUV: 0, 200 LUV: 0,
204 ORI: 've', 201 ORI: 've',
205 FER: '', 202 FER: '',
206 BIMP: 0, 203 BIMP: 0,
207 COMP: 'C ' +'RC ' + $scope.puntoVenta + '-' + $scope.comprobante, 204 COMP: 'C ' +'RC ' + $scope.puntoVenta + '-' + $scope.comprobante,
208 VAL_E: '',//Cuando egresa por ingresos y egresos en el numero de egreso 205 VAL_E: '',//Cuando egresa por ingresos y egresos en el numero de egreso
209 VAL_I: '',//Cuando Ingresa por ingresos y egresos en el numero ingreso 206 VAL_I: '',//Cuando Ingresa por ingresos y egresos en el numero ingreso
210 REC_CAJ: 'D', 207 REC_CAJ: 'D',
211 TIPO_C: 0,//?? 208 TIPO_C: 0,//??
212 SALDO_CAJ: 'S', 209 SALDO_CAJ: 'S',
213 FECHA_INGRESO: new Date($scope.cobranza.FEC) 210 FECHA_INGRESO: new Date($scope.cobranza.FEC)
214 .toISOString().slice(0, 19).replace('T', ' '), 211 .toISOString().slice(0, 19).replace('T', ' '),
215 Vendedor_valor: 0, 212 Vendedor_valor: 0,
216 FAMILIA: 0, 213 FAMILIA: 0,
217 CUIT_LIB: '', 214 CUIT_LIB: '',
218 COD_LUG: $scope.cobranza.cobros[j].localidad.ID,//código lugar 215 COD_LUG: $scope.cobranza.cobros[j].localidad.ID,//código lugar
219 SEN: '', 216 SEN: '',
220 NRC: 0, 217 NRC: 0,
221 COD_LARGO: '', 218 COD_LARGO: '',
222 VN: 0, 219 VN: 0,
223 ID_LECTOR: 0, 220 ID_LECTOR: 0,
224 NATHB: '' 221 NATHB: ''
225 }; 222 };
226 cheques.push(cheque); 223 cheques.push(cheque);
227 } 224 }
228 if ($scope.cobranza.cobros[j].imgs) imgs = $scope.cobranza.cobros[j].imgs; 225 if ($scope.cobranza.cobros[j].imgs) imgs = $scope.cobranza.cobros[j].imgs;
229 226
230 } 227 }
231 228
232 cobranza = { 229 cobranza = {
233 recibo: { 230 recibo: {
234 CYV: 'V', 231 CYV: 'V',
235 TIP: 'C', 232 TIP: 'C',
236 TCO: 'RC', 233 TCO: 'RC',
237 PVE: $scope.puntoVenta, //Sucursar, punto de venta 234 PVE: $scope.puntoVenta, //Sucursar, punto de venta
238 NCO: $scope.comprobante, //Numero de comprobante 235 NCO: $scope.comprobante, //Numero de comprobante
239 FEC: new Date($scope.cobranza.FEC) 236 FEC: new Date($scope.cobranza.FEC)
240 .toISOString().slice(0, 19).replace('T', ' '), 237 .toISOString().slice(0, 19).replace('T', ' '),
241 CLI: $scope.cobranza.cliente.COD, 238 CLI: $scope.cobranza.cliente.COD,
242 ATO: 0, //número de asiento 239 ATO: 0, //número de asiento
243 CFE: $scope.cobranza.cobrador.NOM, 240 CFE: $scope.cobranza.cobrador.NOM,
244 PLA: '',//Numero de planilla, sin uso 241 PLA: '',//Numero de planilla, sin uso
245 ID_MONEDA: $scope.cobranza.moneda.ID, 242 ID_MONEDA: $scope.cobranza.moneda.ID,
246 COTIZACION: $scope.cobranza.moneda.cotizacion.VENDEDOR, 243 COTIZACION: $scope.cobranza.moneda.cotizacion.VENDEDOR,
247 idCobrador: $scope.cobranza.cobrador.id 244 idCobrador: $scope.cobranza.cobrador.id
248 }, 245 },
249 cuerpo: cuerpos, 246 cuerpo: cuerpos,
250 cheques: cheques, 247 cheques: cheques,
251 acobypag: { 248 acobypag: {
252 CYV: 'V', 249 CYV: 'V',
253 COD: $scope.cobranza.cliente.COD, 250 COD: $scope.cobranza.cliente.COD,
254 FEP: new Date($scope.cobranza.FEC) 251 FEP: new Date($scope.cobranza.FEC)
255 .toISOString().slice(0, 19).replace('T', ' '), 252 .toISOString().slice(0, 19).replace('T', ' '),
256 TIP: 'C', 253 TIP: 'C',
257 TCO: 'RC', 254 TCO: 'RC',
258 SUC: $scope.puntoVenta, 255 SUC: $scope.puntoVenta,
259 NCO: $scope.comprobante, 256 NCO: $scope.comprobante,
260 IPA: $scope.getTotalCobrado(), 257 IPA: $scope.getTotalCobrado(),
261 SAL: '',//?? 258 SAL: '',//??
262 TCA: 1, 259 TCA: 1,
263 ZONA: 1, 260 ZONA: 1,
264 FPA: 2,//Forma de pago 261 FPA: 2,//Forma de pago
265 REC: 0, 262 REC: 0,
266 REP: 0, 263 REP: 0,
267 FER: null, 264 FER: null,
268 REM: 0, 265 REM: 0,
269 FRE: null,//?? 266 FRE: null,//??
270 PRO: 'N', 267 PRO: 'N',
271 FEV: new Date($scope.cobranza.FEC) 268 FEV: new Date($scope.cobranza.FEC)
272 .toISOString().slice(0, 19).replace('T', ' ') 269 .toISOString().slice(0, 19).replace('T', ' ')
273 }, 270 },
274 datosCobrador: { 271 datosCobrador: {
275 COD: $scope.cobranza.cobrador.NUM, 272 COD: $scope.cobranza.cobrador.NUM,
276 PVE: $scope.puntoVenta, 273 PVE: $scope.puntoVenta,
277 NUM: $scope.comprobante, 274 NUM: $scope.comprobante,
278 EST: 'C', 275 EST: 'C',
279 OBS: 'RC: ' + $scope.comprobante + '-' + 276 OBS: 'RC: ' + $scope.comprobante + '-' +
280 new Date($scope.cobranza.FEC).toLocaleDateString(), 277 new Date($scope.cobranza.FEC).toLocaleDateString(),
281 DAT1: 'C', 278 DAT1: 'C',
282 CLI: $scope.cobranza.cliente.COD 279 CLI: $scope.cobranza.cliente.COD
283 }, 280 },
284 cliente: $scope.cobranza.cliente, 281 cliente: $scope.cobranza.cliente,
285 imgs: imgs, 282 imgs: imgs,
286 observacion: observacion 283 observacion: observacion,
284 facturasACobrar: $scope.cobranza.facturas
287 }; 285 };
288 //COPIO cobranzaMail Y A cobranza LE ELIMINO EL VALOR NCU DE LOS CUERPOS 286 //COPIO cobranzaMail Y A cobranza LE ELIMINO EL VALOR NCU DE LOS CUERPOS
289 var cobranzaMail = angular.copy(cobranza); 287 var cobranzaMail = angular.copy(cobranza);
288
290 cobranza.cuerpo = cobranza.cuerpo.map(function(c) { 289 cobranza.cuerpo = cobranza.cuerpo.map(function(c) {
291 if (c.NCU) delete c.NCU; 290 if (c.NCU) delete c.NCU;
292 return c; 291 return c;
293 }); 292 });
294
295 focaCrearCobranzaService 293 focaCrearCobranzaService
296 .guardarCobranza(cobranza) 294 .guardarCobranza(cobranza)
297 .then( 295 .then(
298 function(result) { 296 function(result) {
299 focaBotoneraLateralService.endGuardar(true); 297 focaBotoneraLateralService.endGuardar(true);
300 $scope.saveLoading = false; 298 $scope.saveLoading = false;
301 299
302 enviarMail(cobranzaMail); 300 enviarMail(cobranzaMail);
303 301
304 focaSeguimientoService.guardarPosicion( 302 focaSeguimientoService.guardarPosicion(
305 'Cobranza', 303 'Cobranza',
306 result.data, 304 result.data,
307 '' 305 ''
308 ); 306 );
309 307
310 init(); 308 config();
311 }, function(error) { 309 }, function(error) {
312 focaModalService.alert('Hubo un problema al cargar la cobranza'); 310 focaModalService.alert('Hubo un problema al cargar la cobranza');
313 focaBotoneraLateralService.endGuardar(); 311 focaBotoneraLateralService.endGuardar();
314 $scope.saveLoading = false; 312 $scope.saveLoading = false;
315 console.info(error); 313 console.info(error);
316 } 314 }
317 ); 315 );
318 }; 316 };
319 317
320 $scope.seleccionarCobros = function() { 318 $scope.seleccionarCobros = function() {
321 $scope.cobroDeuda = false; 319 $scope.cobroDeuda = false;
322 }; 320 };
323 321
324 $scope.seleccionarComprobantes = function() { 322 $scope.seleccionarComprobantes = function() {
325 $scope.cobroDeuda = true; 323 $scope.cobroDeuda = true;
326 }; 324 };
327 325
328 $scope.seleccionarCobranza = function() { 326 $scope.seleccionarCobranza = function() {
329 327
330 var modalInstance = $uibModal.open( 328 var modalInstance = $uibModal.open(
331 { 329 {
332 ariaLabelledBy: 'Busqueda de Cobranzas', 330 ariaLabelledBy: 'Busqueda de Cobranzas',
333 templateUrl: 'foca-modal-cobranza.html', 331 templateUrl: 'foca-modal-cobranza.html',
334 controller: 'focaModalCobranzaController', 332 controller: 'focaModalCobranzaController',
335 size: 'lg' 333 size: 'lg'
336 } 334 }
337 ); 335 );
338 modalInstance.result.then(function(cobranza) { 336 modalInstance.result.then(function(cobranza) {
339 cobranza.moneda.cotizacion = cobranza.moneda.cotizaciones[0]; 337 cobranza.moneda.cotizacion = cobranza.moneda.cotizaciones[0];
340 setearCobranza(cobranza); 338 setearCobranza(cobranza);
341 }); 339 });
342 }; 340 };
343 341
344 $scope.seleccionarResumenDeCuenta = function() { 342 $scope.seleccionarResumenDeCuenta = function() {
345 if (!$scope.cobranza.cliente.COD) { 343 if (!$scope.cobranza.cliente.COD) {
346 focaModalService.alert('Seleccione primero un cliente'); 344 focaModalService.alert('Seleccione primero un cliente');
347 return; 345 return;
348 } 346 }
349 var modalInstance = $uibModal.open( 347 var modalInstance = $uibModal.open(
350 { 348 {
351 ariaLabelledBy: 'Resumen de cuentas', 349 ariaLabelledBy: 'Resumen de cuentas',
352 templateUrl: 'modal-resumen-cuenta.html', 350 templateUrl: 'modal-resumen-cuenta.html',
353 controller: 'focaModalResumenCuentaController', 351 controller: 'focaModalResumenCuentaController',
354 resolve: { 352 resolve: {
355 cliente: function() { return $scope.cobranza.cliente; } 353 cliente: function() { return $scope.cobranza.cliente; }
356 }, 354 },
357 size: 'lg' 355 size: 'lg'
358 } 356 }
359 ); 357 );
360 modalInstance.result.then( 358 modalInstance.result.then(
361 function(cliente) { 359 function(cliente) {
362 $scope.abrirModalDomicilios(cliente); 360 $scope.abrirModalDomicilios(cliente);
363 $scope.cliente = cliente; 361 $scope.cliente = cliente;
364 }, function() {} 362 }, function() {}
365 ); 363 );
366 }; 364 };
367 365
368 $scope.seleccionarCliente = function() { 366 $scope.seleccionarCliente = function() {
369 $scope.seleccionarCobrador(function() { 367 $scope.seleccionarCobrador(function() {
370 var modalInstance = $uibModal.open( 368 var modalInstance = $uibModal.open(
371 { 369 {
372 ariaLabelledBy: 'Busqueda de Cliente', 370 ariaLabelledBy: 'Busqueda de Cliente',
373 templateUrl: 'foca-busqueda-cliente-modal.html', 371 templateUrl: 'foca-busqueda-cliente-modal.html',
374 controller: 'focaBusquedaClienteModalController', 372 controller: 'focaBusquedaClienteModalController',
375 resolve: { 373 resolve: {
376 vendedor: function() { return null; }, 374 vendedor: function() { return null; },
377 cobrador: function() { return $scope.cobranza.cobrador; } 375 cobrador: function() { return $scope.cobranza.cobrador; }
378 }, 376 },
379 size: 'lg' 377 size: 'lg'
380 } 378 }
381 ); 379 );
382 modalInstance.result.then( 380 modalInstance.result.then(
383 function(cliente) { 381 function(cliente) {
384 var clienteMayus = { 382 var clienteMayus = {
385 COD: cliente.cod, 383 COD: cliente.cod,
386 NOM: cliente.nom, 384 NOM: cliente.nom,
387 CUIT: cliente.cuit, 385 CUIT: cliente.cuit,
388 MAIL: cliente.mail 386 MAIL: cliente.mail
389 }; 387 };
390 388
391 $scope.$broadcast('addCabecera', { 389 $scope.$broadcast('addCabecera', {
392 label: 'Cliente:', 390 label: 'Cliente:',
393 valor: $filter('rellenarDigitos')(clienteMayus.COD, 5) + ' - ' + 391 valor: $filter('rellenarDigitos')(clienteMayus.COD, 5) + ' - ' +
394 clienteMayus.NOM 392 clienteMayus.NOM
395 }); 393 });
396 394
397 $filter('filter')($scope.botonera, 395 $filter('filter')($scope.botonera,
398 { label: 'Cliente'})[0].checked = true; 396 { label: 'Cliente'})[0].checked = true;
399 397
400 $scope.cobranza.cliente = clienteMayus; 398 $scope.cobranza.cliente = clienteMayus;
401 $scope.cobranza.facturas = []; 399 $scope.cobranza.facturas = [];
402 }, function() { 400 }, function() {
403 if (APP !== 'cobranza') $scope.seleccionarCliente(); 401 if (APP !== 'cobranza') $scope.seleccionarCliente();
404 } 402 }
405 ); 403 );
406 }); 404 });
407 }; 405 };
408 406
409 $scope.seleccionarCobrador = function(callback) { 407 $scope.seleccionarCobrador = function(callback) {
410 408
411 if (APP === 'cobranza') { 409 if (APP === 'cobranza') {
412 callback(); 410 callback();
413 return; 411 return;
414 } 412 }
415 413
416 var parametrosModal = { 414 var parametrosModal = {
417 query: '/cobrador', 415 query: '/cobrador',
418 columnas: [ 416 columnas: [
419 { 417 {
420 propiedad: 'NUM', 418 propiedad: 'NUM',
421 nombre: 'Codigo', 419 nombre: 'Codigo',
422 filtro: { 420 filtro: {
423 nombre: 'rellenarDigitos', 421 nombre: 'rellenarDigitos',
424 parametro: 3 422 parametro: 3
425 } 423 }
426 }, 424 },
427 { 425 {
428 propiedad: 'NOM', 426 propiedad: 'NOM',
429 nombre: 'Nombre' 427 nombre: 'Nombre'
430 } 428 }
431 ], 429 ],
432 titulo:'Búsqueda de cobradores' 430 titulo:'Búsqueda de cobradores'
433 }; 431 };
434 focaModalService.modal(parametrosModal).then( 432 focaModalService.modal(parametrosModal).then(
435 function(cobrador) { 433 function(cobrador) {
436 $scope.$broadcast('addCabecera', { 434 $scope.$broadcast('addCabecera', {
437 label: 'Cobrador:', 435 label: 'Cobrador:',
438 valor: $filter('rellenarDigitos')(cobrador.NUM, 3) + ' - ' + 436 valor: $filter('rellenarDigitos')(cobrador.NUM, 3) + ' - ' +
439 cobrador.NOM 437 cobrador.NOM
440 }); 438 });
441 $scope.cobranza.cobrador = cobrador; 439 $scope.cobranza.cobrador = cobrador;
442 440
443 //ELIMINO CLIENTE 441 //ELIMINO CLIENTE
444 $scope.$broadcast('removeCabecera', 'Cliente:'); 442 $scope.$broadcast('removeCabecera', 'Cliente:');
445 $scope.cobranza.cliente = {}; 443 $scope.cobranza.cliente = {};
446 444
447 callback(); 445 callback();
448 }, function() {} 446 }, function() {}
449 ); 447 );
450 }; 448 };
451 449
452 $scope.seleccionarFactura = function() { 450 $scope.seleccionarFactura = function() {
453 if (!$scope.cobranza.cliente.COD) { 451 if (!$scope.cobranza.cliente.COD) {
454 focaModalService.alert('Seleccione primero un cliente'); 452 focaModalService.alert('Seleccione primero un cliente');
455 return; 453 return;
456 } 454 }
457 var modalInstance = $uibModal.open( 455 var modalInstance = $uibModal.open(
458 { 456 {
459 ariaLabelledBy: 'Busqueda de Facturas', 457 ariaLabelledBy: 'Busqueda de Facturas',
460 templateUrl: 'foca-modal-factura.html', 458 templateUrl: 'foca-modal-factura.html',
461 controller: 'focaModalFacturaController', 459 controller: 'focaModalFacturaController',
462 size: 'lg', 460 size: 'lg',
463 resolve: { 461 resolve: {
464 parametrosFactura: function() { 462 parametrosFactura: function() {
465 return { 463 return {
466 cliente: $scope.cobranza.cliente, 464 cliente: $scope.cobranza.cliente,
467 simbolo: $scope.cobranza.moneda.SIMBOLO, 465 simbolo: $scope.cobranza.moneda.SIMBOLO,
468 cotizacion: $scope.cobranza.moneda, 466 cotizacion: $scope.cobranza.moneda,
469 moneda: $scope.cobranza.moneda.ID 467 moneda: $scope.cobranza.moneda.ID
470 }; 468 };
471 } 469 }
472 } 470 }
473 } 471 }
474 ); 472 );
475 modalInstance.result.then( 473 modalInstance.result.then(
476 function(facturas) { 474 function(facturas) {
477 var facturasResult = []; 475 var facturasResult = [];
478 //AGREGO A FACTURASRESULT LAS FACTURAS QUE NO HAN SIDO SELECCIONADAS 476 //AGREGO A FACTURASRESULT LAS FACTURAS QUE NO HAN SIDO SELECCIONADAS
479 facturas.forEach(function(factura) { 477 facturas.forEach(function(factura) {
480 var existe = $scope.cobranza.facturas.filter(function(e) { 478 var existe = $scope.cobranza.facturas.filter(function(e) {
481 return angular.equals(factura, e); 479 return angular.equals(factura, e);
482 }); 480 });
483 481
484 if (!existe.length) facturasResult.push(factura); 482 if (!existe.length) facturasResult.push(factura);
485 }); 483 });
486 484
487 $scope.cobranza.facturas = $scope.cobranza.facturas.concat(facturasResult); 485 $scope.cobranza.facturas = $scope.cobranza.facturas.concat(facturasResult);
488 }, function() { } 486 }, function() { }
489 ); 487 );
490 }; 488 };
491 489
492 $scope.seleccionarCheque = function(cheque) { 490 $scope.seleccionarCheque = function(cheque) {
493 491
494 var parametros; 492 var parametros;
495 493
496 if(!cheque) { 494 if(!cheque) {
497 parametros = { 495 parametros = {
498 importe: getSugerido(), 496 importe: getSugerido(),
499 esNuevo : true 497 esNuevo : true
500 }; 498 };
501 } else { 499 } else {
502 parametros = cheque; 500 parametros = cheque;
503 parametros.importe = cheque.IMP; 501 parametros.importe = cheque.IMP;
504 } 502 }
505 503
506 var modalInstance = $uibModal.open( 504 var modalInstance = $uibModal.open(
507 { 505 {
508 ariaLabelledBy: 'Carga de cheques', 506 ariaLabelledBy: 'Carga de cheques',
509 templateUrl: 'modal-cheque.html', 507 templateUrl: 'modal-cheque.html',
510 controller: 'focaModalChequeController', 508 controller: 'focaModalChequeController',
511 size: 'lg', 509 size: 'lg',
512 resolve: { 510 resolve: {
513 cheque: function() { 511 cheque: function() {
514 return parametros; 512 return parametros;
515 } 513 }
516 } 514 }
517 } 515 }
518 ); 516 );
519 modalInstance.result.then( 517 modalInstance.result.then(
520 function(cheque) { 518 function(cheque) {
521 var cobro = { 519 var cobro = {
522 COM: 'ch' + '(' + cheque.numero + ')' + ' ' + cheque.banco.desbco, 520 COM: 'ch' + '(' + cheque.numero + ')' + ' ' + cheque.banco.desbco,
523 numero: cheque.numero, 521 numero: cheque.numero,
524 banco: cheque.banco, 522 banco: cheque.banco,
525 FEC: cheque.fechaEmision.toLocaleDateString() + '-' + 523 FEC: cheque.fechaEmision.toLocaleDateString() + '-' +
526 cheque.fechaPresentacion.toLocaleDateString(), 524 cheque.fechaPresentacion.toLocaleDateString(),
527 fechaPresentacion: cheque.fechaPresentacion, 525 fechaPresentacion: cheque.fechaPresentacion,
528 fechaEmision: cheque.fechaEmision, 526 fechaEmision: cheque.fechaEmision,
529 IMP: cheque.importe, 527 IMP: cheque.importe,
530 localidad: cheque.localidad, 528 localidad: cheque.localidad,
531 librador: cheque.librador, 529 librador: cheque.librador,
532 provincia: cheque.provincia, 530 provincia: cheque.provincia,
533 observaciones: cheque.observaciones, 531 observaciones: cheque.observaciones,
534 TIL: 'EF' 532 TIL: 'EF'
535 }; 533 };
536 pushearCobro(cobro, cheque.$$hashKey); 534 pushearCobro(cobro, cheque.$$hashKey);
537 }, function() { 535 }, function() {
538 536
539 } 537 }
540 ); 538 );
541 }; 539 };
542 540
543 $scope.seleccionarEfectivo = function() { 541 $scope.seleccionarEfectivo = function() {
544 542
545 var importe = 0; 543 var importe = 0;
546 $scope.cobranza.cobros.filter(function(a) { 544 $scope.cobranza.cobros.filter(function(a) {
547 if(a.COM === 'Efectivo') { 545 if(a.COM === 'Efectivo') {
548 importe = a.IMP; 546 importe = a.IMP;
549 } 547 }
550 }); 548 });
551 549
552 var modalInstance = $uibModal.open( 550 var modalInstance = $uibModal.open(
553 { 551 {
554 ariaLabelledBy: 'Carga de cheques', 552 ariaLabelledBy: 'Carga de cheques',
555 templateUrl: 'modal-efectivo.html', 553 templateUrl: 'modal-efectivo.html',
556 controller: 'focaModalEfectivoController', 554 controller: 'focaModalEfectivoController',
557 size: 'sm', 555 size: 'sm',
558 resolve: { 556 resolve: {
559 sugerido: function() { 557 sugerido: function() {
560 return parseFloat(getSugerido()) + parseFloat(importe); 558 return parseFloat(getSugerido()) + parseFloat(importe);
561 } 559 }
562 } 560 }
563 } 561 }
564 ); 562 );
565 modalInstance.result.then( 563 modalInstance.result.then(
566 function(efectivo) { 564 function(efectivo) {
567 565
568 var cobro = { 566 var cobro = {
569 COM: 'Efectivo', 567 COM: 'Efectivo',
570 FEC: new Date(), 568 FEC: new Date(),
571 IMP: efectivo, 569 IMP: efectivo,
572 TIL: 'EF' 570 TIL: 'EF'
573 }; 571 };
574 572
575 $scope.cobranza.cobros = $scope.cobranza.cobros.filter(function(a) { 573 $scope.cobranza.cobros = $scope.cobranza.cobros.filter(function(a) {
576 return a.COM !== 'Efectivo'; 574 return a.COM !== 'Efectivo';
577 }); 575 });
578 576
579 $scope.cobranza.cobros.push(cobro); 577 $scope.cobranza.cobros.push(cobro);
580 }, function() { 578 }, function() {
581 579
582 } 580 }
583 ); 581 );
584 }; 582 };
585 583
586 $scope.seleccionarDetalles = function(detalle) { 584 $scope.seleccionarDetalles = function(detalle) {
587 585
588 var parametro = {}; 586 var parametro = {};
589 587
590 if(!detalle) { 588 if(!detalle) {
591 parametro = { 589 parametro = {
592 importe: getSugerido(), 590 importe: getSugerido(),
593 files: [] 591 files: []
594 }; 592 };
595 } else { 593 } else {
596 parametro = detalle; 594 parametro = detalle;
597 parametro.importe = detalle.IMP; 595 parametro.importe = detalle.IMP;
598 parametro.files= detalle.imgs; 596 parametro.files= detalle.imgs;
599 } 597 }
600 598
601 var modalInstance = $uibModal.open( 599 var modalInstance = $uibModal.open(
602 { 600 {
603 ariaLabelledBy: 'Carga de detalles', 601 ariaLabelledBy: 'Carga de detalles',
604 templateUrl: 'modal-detalles.html', 602 templateUrl: 'modal-detalles.html',
605 controller: 'focaModalDetallesController', 603 controller: 'focaModalDetallesController',
606 size: 'lg', 604 size: 'lg',
607 resolve: { 605 resolve: {
608 parametros: function() { 606 parametros: function() {
609 return parametro; 607 return parametro;
610 } 608 }
611 } 609 }
612 } 610 }
613 ); 611 );
614 modalInstance.result.then( 612 modalInstance.result.then(
615 function(detalles) { 613 function(detalles) {
616 614
617 var cobro = { 615 var cobro = {
618 COM: 'de(COBRO POR DETALLES)', 616 COM: 'de(COBRO POR DETALLES)',
619 FEC: new Date(), 617 FEC: new Date(),
620 IMP: detalles.importe, 618 IMP: detalles.importe,
621 imgs: detalles.files, 619 imgs: detalles.files,
622 TIL: 'DE', 620 TIL: 'DE',
623 observacion: detalles.observacion 621 observacion: detalles.observacion
624 }; 622 };
625 pushearCobro(cobro, detalles.$$hashKey); 623 pushearCobro(cobro, detalles.$$hashKey);
626 }, function() {} 624 }, function() {}
627 ); 625 );
628 }; 626 };
629 627
630 $scope.seleccionarMoneda = function() { 628 $scope.seleccionarMoneda = function() {
631 var parametrosModal = { 629 var parametrosModal = {
632 titulo: 'Búsqueda de monedas', 630 titulo: 'Búsqueda de monedas',
633 query: '/moneda', 631 query: '/moneda',
634 columnas: [ 632 columnas: [
635 { 633 {
636 propiedad: 'DETALLE', 634 propiedad: 'DETALLE',
637 nombre: 'Nombre' 635 nombre: 'Nombre'
638 }, 636 },
639 { 637 {
640 propiedad: 'SIMBOLO', 638 propiedad: 'SIMBOLO',
641 nombre: 'Símbolo' 639 nombre: 'Símbolo'
642 } 640 }
643 ], 641 ],
644 size: 'md' 642 size: 'md'
645 }; 643 };
646 focaModalService.modal(parametrosModal).then( 644 focaModalService.modal(parametrosModal).then(
647 function(moneda) { 645 function(moneda) {
648 $scope.seleccionarCotizacion(moneda); 646 $scope.seleccionarCotizacion(moneda);
649 }, function() { 647 }, function() {
650 648
651 } 649 }
652 ); 650 );
653 }; 651 };
654 652
655 $scope.seleccionarCotizacion = function(moneda) { 653 $scope.seleccionarCotizacion = function(moneda) {
656 var modalInstance = $uibModal.open( 654 var modalInstance = $uibModal.open(
657 { 655 {
658 ariaLabelledBy: 'Busqueda de Cotización', 656 ariaLabelledBy: 'Busqueda de Cotización',
659 templateUrl: 'modal-cotizacion.html', 657 templateUrl: 'modal-cotizacion.html',
660 controller: 'focaModalCotizacionController', 658 controller: 'focaModalCotizacionController',
661 size: 'lg', 659 size: 'lg',
662 resolve: {idMoneda: function() {return moneda.ID;}} 660 resolve: {idMoneda: function() {return moneda.ID;}}
663 } 661 }
664 ); 662 );
665 modalInstance.result.then( 663 modalInstance.result.then(
666 function(cotizacion) { 664 function(cotizacion) {
667 $scope.cobranza.moneda = moneda; 665 $scope.cobranza.moneda = moneda;
668 $scope.cobranza.moneda.cotizacion = cotizacion; 666 $scope.cobranza.moneda.cotizacion = cotizacion;
669 if (moneda.DETALLE === 'PESOS ARGENTINOS') { 667 if (moneda.DETALLE === 'PESOS ARGENTINOS') {
670 $scope.$broadcast('removeCabecera', 'Moneda:'); 668 $scope.$broadcast('removeCabecera', 'Moneda:');
671 $scope.$broadcast('removeCabecera', 'Fecha cotizacion:'); 669 $scope.$broadcast('removeCabecera', 'Fecha cotizacion:');
672 $scope.$broadcast('removeCabecera', 'Cotizacion:'); 670 $scope.$broadcast('removeCabecera', 'Cotizacion:');
673 } else { 671 } else {
674 $scope.$broadcast('addCabecera', { 672 $scope.$broadcast('addCabecera', {
675 label: 'Moneda:', 673 label: 'Moneda:',
676 valor: moneda.DETALLE 674 valor: moneda.DETALLE
677 }); 675 });
678 $scope.$broadcast('addCabecera', { 676 $scope.$broadcast('addCabecera', {
679 label: 'Fecha cotizacion:', 677 label: 'Fecha cotizacion:',
680 valor: $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy') 678 valor: $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy')
681 }); 679 });
682 $scope.$broadcast('addCabecera', { 680 $scope.$broadcast('addCabecera', {
683 label: 'Cotizacion:', 681 label: 'Cotizacion:',
684 valor: $filter('number')(cotizacion.VENDEDOR, '2') 682 valor: $filter('number')(cotizacion.VENDEDOR, '2')
685 }); 683 });
686 } 684 }
687 685
688 $filter('filter')( $scope.botonera, { 686 $filter('filter')( $scope.botonera, {
689 label: 'Moneda' 687 label: 'Moneda'
690 })[0].checked = true; 688 })[0].checked = true;
691 689
692 }, function() { 690 }, function() {
693 691
694 } 692 }
695 ); 693 );
696 }; 694 };
697 695
698 $scope.getTotalDeuda = function() { 696 $scope.getTotalDeuda = function() {
699 var total = 0; 697 var total = 0;
700 for (var i = 0; i < $scope.cobranza.facturas.length; i++) { 698 for (var i = 0; i < $scope.cobranza.facturas.length; i++) {
701 total += $scope.cobranza.facturas[i].IMP || $scope.cobranza.facturas[i].IPA; 699 total += $scope.cobranza.facturas[i].IMP || $scope.cobranza.facturas[i].IPA;
702 } 700 }
703 return parseFloat(total.toFixed(2)); 701 return parseFloat(total.toFixed(2));
704 }; 702 };
705 703
706 $scope.getTotalCobrado = function() { 704 $scope.getTotalCobrado = function() {
707 var total = 0; 705 var total = 0;
708 for (var i = 0; i < $scope.cobranza.cobros.length; i++) { 706 for (var i = 0; i < $scope.cobranza.cobros.length; i++) {
709 total += $scope.cobranza.cobros[i].IMP; 707 total += $scope.cobranza.cobros[i].IMP;
710 } 708 }
711 return parseFloat(total.toFixed(2)); 709 return parseFloat(total.toFixed(2));
712 }; 710 };
713 711
714 $scope.getSubTotal = function() { 712 $scope.getSubTotal = function() {
715 if ($scope.articuloACargar) { 713 if ($scope.articuloACargar) {
716 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad; 714 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad;
717 } 715 }
718 }; 716 };
719 //Recibe aviso si el teclado está en uso 717 //Recibe aviso si el teclado está en uso
720 // $rootScope.$on('usarTeclado', function(event, data) { 718 // $rootScope.$on('usarTeclado', function(event, data) {
721 // if(data) { 719 // if(data) {
722 // $scope.mostrarTeclado = true; 720 // $scope.mostrarTeclado = true;
723 // return; 721 // return;
724 // } 722 // }
725 // $scope.mostrarTeclado = false; 723 // $scope.mostrarTeclado = false;
726 // }) 724 // })
727 $scope.selectFocus = function($event) { 725 $scope.selectFocus = function($event) {
728 //Si el teclado esta en uso no selecciona el valor 726 //Si el teclado esta en uso no selecciona el valor
729 // if($scope.mostrarTeclado) { 727 // if($scope.mostrarTeclado) {
730 // return; 728 // return;
731 // } 729 // }
732 $event.target.select(); 730 $event.target.select();
733 }; 731 };
734 732
735 $scope.salir = function() { 733 $scope.salir = function() {
736 $location.path('/'); 734 $location.path('/');
737 }; 735 };
738 736
739 $scope.parsearATexto = function(articulo) { 737 $scope.parsearATexto = function(articulo) {
740 articulo.cantidad = parseFloat(articulo.cantidad); 738 articulo.cantidad = parseFloat(articulo.cantidad);
741 articulo.precio = parseFloat(articulo.precio); 739 articulo.precio = parseFloat(articulo.precio);
742 }; 740 };
743 741
744 $scope.quitarFactura = function(key) { 742 $scope.quitarFactura = function(key) {
745 $scope.cobranza.facturas.splice(key, 1); 743 $scope.cobranza.facturas.splice(key, 1);
746 }; 744 };
747 745
748 $scope.quitarCobro = function(key) { 746 $scope.quitarCobro = function(key) {
749 $scope.cobranza.cobros.splice(key, 1); 747 $scope.cobranza.cobros.splice(key, 1);
750 }; 748 };
751 749
752 $scope.editarCobro = function(cobro) { 750 $scope.editarCobro = function(cobro) {
753 if(cobro.COM === 'Efectivo') { 751 if(cobro.COM === 'Efectivo') {
754 $scope.seleccionarEfectivo(); 752 $scope.seleccionarEfectivo();
755 } else if(cobro.COM.substring(0, 2) === 'de') { 753 } else if(cobro.COM.substring(0, 2) === 'de') {
756 $scope.seleccionarDetalles(cobro); 754 $scope.seleccionarDetalles(cobro);
757 } else if(cobro.COM.substring(0, 2) === 'ch') { 755 } else if(cobro.COM.substring(0, 2) === 'ch') {
758 $scope.seleccionarCheque(cobro); 756 $scope.seleccionarCheque(cobro);
759 } 757 }
760 }; 758 };
761 759
762 $scope.$watch('cobranza.facturas', function() { 760 $scope.$watch('cobranza.facturas', function() {
763 if ($scope.cobranza.facturas.length) { 761 if ($scope.cobranza.facturas.length) {
764 $filter('filter')( $scope.botonera, { 762 $filter('filter')( $scope.botonera, {
765 label: 'Comprobantes' 763 label: 'Comprobantes'
766 })[0].checked = true; 764 })[0].checked = true;
767 } else { 765 } else {
768 $filter('filter')( $scope.botonera, { 766 $filter('filter')( $scope.botonera, {
769 label: 'Comprobantes' 767 label: 'Comprobantes'
770 })[0].checked = false; 768 })[0].checked = false;
771 } 769 }
772 }, true); 770 }, true);
773 771
774 $scope.$watch('cobranza.cobros', function() { 772 $scope.$watch('cobranza.cobros', function() {
775 if ($scope.cobranza.cobros.length) { 773 if ($scope.cobranza.cobros.length) {
776 $filter('filter')( $scope.botonera, { 774 $filter('filter')( $scope.botonera, {
777 label: 'Cobros' 775 label: 'Cobros'
778 })[0].checked = true; 776 })[0].checked = true;
779 } else { 777 } else {
780 $filter('filter')( $scope.botonera, { 778 $filter('filter')( $scope.botonera, {
781 label: 'Cobros' 779 label: 'Cobros'
782 })[0].checked = false; 780 })[0].checked = false;
783 } 781 }
784 }, true); 782 }, true);
785 783
786 function pushearCobro(cobro, hashKey) { 784 function pushearCobro(cobro, hashKey) {
787 var existe; 785 var existe;
788 786
789 $scope.cobranza.cobros.forEach(function(c, idx) { 787 $scope.cobranza.cobros.forEach(function(c, idx) {
790 if(c.$$hashKey === hashKey) { 788 if(c.$$hashKey === hashKey) {
791 $scope.cobranza.cobros[idx] = cobro; 789 $scope.cobranza.cobros[idx] = cobro;
792 existe = true; 790 existe = true;
793 } 791 }
794 }); 792 });
795 if (!existe) { 793 if (!existe) {
796 $scope.cobranza.cobros.push(cobro); 794 $scope.cobranza.cobros.push(cobro);
797 } 795 }
798 } 796 }
799 797
800 function salir() { 798 function salir() {
801 var confirmacion = false; 799 var confirmacion = false;
802 800
803 if (!angular.equals($scope.cobranza, $scope.inicial)) { 801 if (!angular.equals($scope.cobranza, $scope.inicial)) {
804 confirmacion = true; 802 confirmacion = true;
805 } 803 }
806 804
807 if (confirmacion) { 805 if (confirmacion) {
808 focaModalService.confirm( 806 focaModalService.confirm(
809 '¿Está seguro de que desea salir? Se perderán todos los datos cargados.' 807 '¿Está seguro de que desea salir? Se perderán todos los datos cargados.'
810 ).then(function(data) { 808 ).then(function(data) {
811 if (data) { 809 if (data) {
812 $location.path('/'); 810 $location.path('/');
813 } 811 }
814 }); 812 });
815 } else { 813 } else {
816 $location.path('/'); 814 $location.path('/');
817 } 815 }
818 } 816 }
819 817
820 function setearCobranza(cobranza) { 818 function setearCobranza(cobranza) {
821 $scope.editando = true; 819 $scope.editando = true;
822 $scope.$broadcast('cleanCabecera'); 820 $scope.$broadcast('cleanCabecera');
823 821
824 if (cobranza.cliente) { 822 if (cobranza.cliente) {
825 $scope.$broadcast('addCabecera', { 823 $scope.$broadcast('addCabecera', {
826 label: 'Cliente:', 824 label: 'Cliente:',
827 valor: $filter('rellenarDigitos')(cobranza.cliente.COD, 5) + ' - ' + 825 valor: $filter('rellenarDigitos')(cobranza.cliente.COD, 5) + ' - ' +
828 cobranza.cliente.NOM 826 cobranza.cliente.NOM
829 }); 827 });
830 828
831 $filter('filter')( $scope.botonera, { 829 $filter('filter')( $scope.botonera, {
832 label: 'Cliente' 830 label: 'Cliente'
833 })[0].checked = true; 831 })[0].checked = true;
834 } 832 }
835 if (cobranza.cobrador && cobranza.cobrador.NUM) { 833 if (cobranza.cobrador && cobranza.cobrador.NUM) {
836 $scope.$broadcast('addCabecera', { 834 $scope.$broadcast('addCabecera', {
837 label: 'Cobrador:', 835 label: 'Cobrador:',
838 valor: (cobranza.cobrador.NUM) ? 836 valor: (cobranza.cobrador.NUM) ?
839 $filter('rellenarDigitos')(cobranza.cobrador.NUM, 5) + ' - ' + 837 $filter('rellenarDigitos')(cobranza.cobrador.NUM, 5) + ' - ' +
840 cobranza.cobrador.NOM : cobranza.cobrador 838 cobranza.cobrador.NOM : cobranza.cobrador
841 839
842 }); 840 });
843 } 841 }
844 842
845 // TODO: Setear moneda 843 // TODO: Setear moneda
846 if (cobranza.moneda) { 844 if (cobranza.moneda) {
847 $filter('filter')( $scope.botonera, { 845 $filter('filter')( $scope.botonera, {
848 label: 'Moneda' 846 label: 'Moneda'
849 })[0].checked = true; 847 })[0].checked = true;
850 } 848 }
851 849
852 $scope.cobranza = cobranza; 850 $scope.cobranza = cobranza;
853 } 851 }
854 852
855 function getLSCobranza() { 853 function getLSCobranza() {
856 var cobranza = JSON.parse($localStorage.cobranza || null); 854 var cobranza = JSON.parse($localStorage.cobranza || null);
857 if (cobranza) { 855 if (cobranza) {
858 setearCobranza(cobranza); 856 setearCobranza(cobranza);
859 delete $localStorage.cobranza; 857 delete $localStorage.cobranza;
860 } 858 }
861 } 859 }
862 860
863 function enviarMail(recibo) { 861 function enviarMail(recibo) {
864 focaModalService.mail( 862 focaModalService.mail(
865 { 863 {
866 titulo: 'Enviar recibo', 864 titulo: 'Enviar recibo',
867 descarga: { 865 descarga: {
868 nombre: recibo.recibo.PVE + '-' + recibo.recibo.NCO + '.pdf', 866 nombre: recibo.recibo.PVE + '-' + recibo.recibo.NCO + '.pdf',
869 url: '/mail/recibo/descargar', 867 url: '/mail/recibo/descargar',
870 }, 868 },
871 envio: { 869 envio: {
872 mailCliente: recibo.cliente.MAIL, 870 mailCliente: recibo.cliente.MAIL,
873 url: '/mail/recibo', 871 url: '/mail/recibo',
874 }, 872 },
875 options: { 873 options: {
876 recibo: recibo 874 recibo: recibo
877 } 875 }
878 } 876 }
879 ); 877 );
880 } 878 }
881 879
882 function getSugerido() { 880 function getSugerido() {
883 var result; 881 var result;
884 882
885 var valor = $scope.getTotalDeuda() + $scope.getTotalCobrado(); 883 var valor = $scope.getTotalDeuda() + $scope.getTotalCobrado();
886 884
887 if (valor < 0) { 885 if (valor < 0) {
888 result = Math.abs(valor).toFixed(4); 886 result = Math.abs(valor).toFixed(4);
889 } 887 }
890 888
891 return result; 889 return result;
892 } 890 }
893 } 891 }