Commit 024031b3a5c4276ca707e4cec40ed35241e4be31

Authored by Mauricio Cattafi

Merge branch 'develop' into 'master'

Develop

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