Commit c6a1e8597cecefded42bd27a7b3b2ecff7e4658a

Authored by Marcelo Puebla
Exists in master

Merge branch 'master' into 'develop'

Master(benjamin)

See merge request !83
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 362 modalInstance.result
358 .then($scope.abrirModalDomicilios) 363 .then($scope.abrirModalDomicilios)
359 .catch(console.log); 364 .catch(console.log);
360 }; 365 };
361 366
362 $scope.seleccionarCliente = function () { 367 $scope.seleccionarCliente = function () {
363 if ($scope.cobranza.id === undefined) { 368 if ($scope.cobranza.id === undefined) {
364 var modalInstance = $uibModal.open( 369 var modalInstance = $uibModal.open(
365 { 370 {
366 ariaLabelledBy: 'Busqueda de Cliente', 371 ariaLabelledBy: 'Busqueda de Cliente',
367 templateUrl: 'foca-busqueda-cliente-modal.html', 372 templateUrl: 'foca-busqueda-cliente-modal.html',
368 controller: 'focaBusquedaClienteModalController', 373 controller: 'focaBusquedaClienteModalController',
369 resolve: { 374 resolve: {
370 parametros: function () { 375 parametros: function () {
371 return { 376 return {
372 vendedor: function () { return null; }, 377 vendedor: function () { return null; },
373 cobrador: function () { return null; } 378 cobrador: function () { return null; }
374 }; 379 };
375 } 380 }
376 }, 381 },
377 size: 'lg' 382 size: 'lg'
378 } 383 }
379 ); 384 );
380 modalInstance.result.then( 385 modalInstance.result.then(
381 function (cliente) { 386 function (cliente) {
382 387
383 if (angular.equals({}, cliente.cobrador) || !cliente.cobrador) { 388 if (angular.equals({}, cliente.cobrador) || !cliente.cobrador) {
384 focaModalService.alert('El cliente no tiene un cobrador asignado') 389 focaModalService.alert('El cliente no tiene un cobrador asignado')
385 .then($scope.seleccionarCliente); 390 .then($scope.seleccionarCliente);
386 return; 391 return;
387 } 392 }
388 393
389 //ELIMINO CLIENTE 394 //ELIMINO CLIENTE
390 $scope.$broadcast('removeCabecera', 'Cliente:'); 395 $scope.$broadcast('removeCabecera', 'Cliente:');
391 396
392 $scope.cobranza.cliente = cliente; 397 $scope.cobranza.cliente = cliente;
393 398
394 $scope.$broadcast('addCabecera', { 399 $scope.$broadcast('addCabecera', {
395 label: 'Cobrador:', 400 label: 'Cobrador:',
396 valor: $filter('rellenarDigitos')(cliente.cobrador.NUM, 3) + 401 valor: $filter('rellenarDigitos')(cliente.cobrador.NUM, 3) +
397 ' - ' + cliente.cobrador.NOM 402 ' - ' + cliente.cobrador.NOM
398 }); 403 });
399 $scope.cobranza.cobrador = cliente.cobrador; 404 $scope.cobranza.cobrador = cliente.cobrador;
400 405
401 $scope.$broadcast('addCabecera', { 406 $scope.$broadcast('addCabecera', {
402 label: 'Cliente:', 407 label: 'Cliente:',
403 valor: $filter('rellenarDigitos')(cliente.COD, 5) + ' - ' + 408 valor: $filter('rellenarDigitos')(cliente.COD, 5) + ' - ' +
404 cliente.NOM 409 cliente.NOM
405 }); 410 });
406 411
407 $filter('filter')($scope.botonera, 412 $filter('filter')($scope.botonera,
408 { label: 'Cliente' })[0].checked = true; 413 { label: 'Cliente' })[0].checked = true;
409 414
410 $scope.cobranza.facturas = []; 415 $scope.cobranza.facturas = [];
411 416
412 }, function () { 417 }, function () {
413 } 418 }
414 ); 419 );
415 } else { 420 } else {
416 focaModalService.alert('Esta cobranza no se puede editar'); 421 focaModalService.alert('Esta cobranza no se puede editar');
417 return; 422 return;
418 } 423 }
419 }; 424 };
420 425
421 $scope.seleccionarFactura = function () { 426 $scope.seleccionarFactura = function () {
422 if ($scope.cobranza.id === undefined) { 427 if ($scope.cobranza.id === undefined) {
423 if (!$scope.cobranza.cliente.COD) { 428 if (!$scope.cobranza.cliente.COD) {
424 focaModalService.alert('Seleccione primero un cliente'); 429 focaModalService.alert('Seleccione primero un cliente');
425 return; 430 return;
426 } 431 }
427 var modalInstance = $uibModal.open( 432 var modalInstance = $uibModal.open(
428 { 433 {
429 ariaLabelledBy: 'Busqueda de Facturas', 434 ariaLabelledBy: 'Busqueda de Facturas',
430 templateUrl: 'foca-modal-factura.html', 435 templateUrl: 'foca-modal-factura.html',
431 controller: 'focaModalFacturaController', 436 controller: 'focaModalFacturaController',
432 size: 'lg', 437 size: 'lg',
433 resolve: { 438 resolve: {
434 parametrosFactura: function () { 439 parametrosFactura: function () {
435 return { 440 return {
436 cliente: $scope.cobranza.cliente, 441 cliente: $scope.cobranza.cliente,
437 simbolo: $scope.cobranza.moneda.SIMBOLO, 442 simbolo: $scope.cobranza.moneda.SIMBOLO,
438 cotizacion: $scope.cobranza.moneda, 443 cotizacion: $scope.cobranza.moneda,
439 moneda: $scope.cobranza.moneda.ID 444 moneda: $scope.cobranza.moneda.ID
440 }; 445 };
441 } 446 }
442 } 447 }
443 } 448 }
444 ); 449 );
445 modalInstance.result.then( 450 modalInstance.result.then(
446 function (facturas) { 451 function (facturas) {
447 var facturasResult = []; 452 var facturasResult = [];
448 //AGREGO A FACTURASRESULT LAS FACTURAS QUE NO HAN SIDO SELECCIONADAS 453 //AGREGO A FACTURASRESULT LAS FACTURAS QUE NO HAN SIDO SELECCIONADAS
449 facturas.forEach(function (factura) { 454 facturas.forEach(function (factura) {
450 var existe = $scope.cobranza.facturas.filter(function (e) { 455 var existe = $scope.cobranza.facturas.filter(function (e) {
451 return angular.equals(factura, e); 456 return angular.equals(factura, e);
452 }); 457 });
453 458
454 if (!existe.length) facturasResult.push(factura); 459 if (!existe.length) facturasResult.push(factura);
455 }); 460 });
456 461
457 $scope.cobranza.facturas = 462 $scope.cobranza.facturas =
458 $scope.cobranza.facturas.concat(facturasResult); 463 $scope.cobranza.facturas.concat(facturasResult);
459 }, function () { } 464 }, function () { }
460 ); 465 );
461 } else { 466 } else {
462 focaModalService.alert('Esta cobranza no se puede editar'); 467 focaModalService.alert('Esta cobranza no se puede editar');
463 return; 468 return;
464 } 469 }
465 470
466 }; 471 };
467 472
468 $scope.seleccionarCheque = function (cheque) { 473 $scope.seleccionarCheque = function (cheque) {
469 if ($scope.cobranza.id === undefined) { 474 if ($scope.cobranza.id === undefined) {
470 var parametros; 475 var parametros;
471 476
472 if (!cheque) { 477 if (!cheque) {
473 parametros = { 478 parametros = {
474 importe: getSugerido(), 479 importe: getSugerido(),
475 esNuevo: true 480 esNuevo: true
476 }; 481 };
477 } else { 482 } else {
478 parametros = cheque; 483 parametros = cheque;
479 parametros.importe = cheque.IMP; 484 parametros.importe = cheque.IMP;
480 } 485 }
481 486
482 var modalInstance = $uibModal.open( 487 var modalInstance = $uibModal.open(
483 { 488 {
484 ariaLabelledBy: 'Carga de cheques', 489 ariaLabelledBy: 'Carga de cheques',
485 templateUrl: 'modal-cheque.html', 490 templateUrl: 'modal-cheque.html',
486 controller: 'focaModalChequeController', 491 controller: 'focaModalChequeController',
487 size: 'lg', 492 size: 'lg',
488 resolve: { 493 resolve: {
489 cheque: function () { 494 cheque: function () {
490 return parametros; 495 return parametros;
491 } 496 }
492 } 497 }
493 } 498 }
494 ); 499 );
495 modalInstance.result.then( 500 modalInstance.result.then(
496 function (cheque) { 501 function (cheque) {
497 var cobro = { 502 var cobro = {
498 COM: 'ch' + '(' + cheque.numero + ')' + ' ' + cheque.banco.desbco, 503 COM: 'ch' + '(' + cheque.numero + ')' + ' ' + cheque.banco.desbco,
499 numero: cheque.numero, 504 numero: cheque.numero,
500 banco: cheque.banco, 505 banco: cheque.banco,
501 FEC: cheque.fechaEmision.toLocaleDateString() + '-' + 506 FEC: cheque.fechaEmision.toLocaleDateString() + '-' +
502 cheque.fechaPresentacion.toLocaleDateString(), 507 cheque.fechaPresentacion.toLocaleDateString(),
503 fechaPresentacion: cheque.fechaPresentacion, 508 fechaPresentacion: cheque.fechaPresentacion,
504 fechaEmision: cheque.fechaEmision, 509 fechaEmision: cheque.fechaEmision,
505 IMP: cheque.importe, 510 IMP: cheque.importe,
506 localidad: cheque.localidad, 511 localidad: cheque.localidad,
507 librador: cheque.librador, 512 librador: cheque.librador,
508 provincia: cheque.provincia, 513 provincia: cheque.provincia,
509 observaciones: cheque.observaciones, 514 observaciones: cheque.observaciones,
510 TIL: 'EF' 515 TIL: 'EF'
511 }; 516 };
512 pushearCobro(cobro, cheque.$$hashKey); 517 pushearCobro(cobro, cheque.$$hashKey);
513 }, function () { 518 }, function () {
514 519
515 } 520 }
516 ); 521 );
517 } else { 522 } else {
518 focaModalService.alert('Esta cobranza no se puede editar'); 523 focaModalService.alert('Esta cobranza no se puede editar');
519 return; 524 return;
520 } 525 }
521 526
522 }; 527 };
523 528
524 $scope.seleccionarEfectivo = function () { 529 $scope.seleccionarEfectivo = function () {
525 if ($scope.cobranza.id === undefined) { 530 if ($scope.cobranza.id === undefined) {
526 var importe = 0; 531 var importe = 0;
527 $scope.cobranza.cobros.filter(function (a) { 532 $scope.cobranza.cobros.filter(function (a) {
528 if (a.COM === 'Efectivo') { 533 if (a.COM === 'Efectivo') {
529 importe = a.IMP; 534 importe = a.IMP;
530 } 535 }
531 }); 536 });
532 537
533 var modalInstance = $uibModal.open( 538 var modalInstance = $uibModal.open(
534 { 539 {
535 ariaLabelledBy: 'Carga de cheques', 540 ariaLabelledBy: 'Carga de cheques',
536 templateUrl: 'modal-efectivo.html', 541 templateUrl: 'modal-efectivo.html',
537 controller: 'focaModalEfectivoController', 542 controller: 'focaModalEfectivoController',
538 size: 'sm', 543 size: 'sm',
539 resolve: { 544 resolve: {
540 sugerido: function () { 545 sugerido: function () {
541 return parseFloat(getSugerido()) + parseFloat(importe); 546 return parseFloat(getSugerido()) + parseFloat(importe);
542 } 547 }
543 } 548 }
544 } 549 }
545 ); 550 );
546 modalInstance.result.then( 551 modalInstance.result.then(
547 function (efectivo) { 552 function (efectivo) {
548 553
549 var cobro = { 554 var cobro = {
550 COM: 'Efectivo', 555 COM: 'Efectivo',
551 FEC: new Date(), 556 FEC: new Date(),
552 IMP: efectivo, 557 IMP: efectivo,
553 TIL: 'EF' 558 TIL: 'EF'
554 }; 559 };
555 560
556 $scope.cobranza.cobros = $scope.cobranza.cobros.filter(function (a) { 561 $scope.cobranza.cobros = $scope.cobranza.cobros.filter(function (a) {
557 return a.COM !== 'Efectivo'; 562 return a.COM !== 'Efectivo';
558 }); 563 });
559 564
560 $scope.cobranza.cobros.push(cobro); 565 $scope.cobranza.cobros.push(cobro);
561 }, function () { 566 }, function () {
562 567
563 } 568 }
564 ); 569 );
565 } else { 570 } else {
566 focaModalService.alert('Esta cobranza no se puede editar'); 571 focaModalService.alert('Esta cobranza no se puede editar');
567 return; 572 return;
568 } 573 }
569 }; 574 };
570 575
571 $scope.seleccionarDetalles = function (detalle) { 576 $scope.seleccionarDetalles = function (detalle) {
572 if ($scope.cobranza.id === undefined) { 577 if ($scope.cobranza.id === undefined) {
573 var parametro = {}; 578 var parametro = {};
574 579
575 if (!detalle) { 580 if (!detalle) {
576 parametro = { 581 parametro = {
577 importe: getSugerido(), 582 importe: getSugerido(),
578 files: [] 583 files: []
579 }; 584 };
580 } else { 585 } else {
581 parametro = detalle; 586 parametro = detalle;
582 parametro.importe = detalle.IMP; 587 parametro.importe = detalle.IMP;
583 parametro.files = detalle.imgs; 588 parametro.files = detalle.imgs;
584 } 589 }
585 590
586 var modalInstance = $uibModal.open( 591 var modalInstance = $uibModal.open(
587 { 592 {
588 ariaLabelledBy: 'Carga de detalles', 593 ariaLabelledBy: 'Carga de detalles',
589 templateUrl: 'modal-detalles.html', 594 templateUrl: 'modal-detalles.html',
590 controller: 'focaModalDetallesController', 595 controller: 'focaModalDetallesController',
591 size: 'lg', 596 size: 'lg',
592 resolve: { 597 resolve: {
593 parametros: function () { 598 parametros: function () {
594 return parametro; 599 return parametro;
595 } 600 }
596 } 601 }
597 } 602 }
598 ); 603 );
599 modalInstance.result.then( 604 modalInstance.result.then(
600 function (detalles) { 605 function (detalles) {
601 606
602 var cobro = { 607 var cobro = {
603 COM: 'de(COBRO POR DETALLES)', 608 COM: 'de(COBRO POR DETALLES)',
604 FEC: new Date(), 609 FEC: new Date(),
605 IMP: detalles.importe, 610 IMP: detalles.importe,
606 imgs: detalles.files, 611 imgs: detalles.files,
607 TIL: 'DE', 612 TIL: 'DE',
608 observacion: detalles.observacion 613 observacion: detalles.observacion
609 }; 614 };
610 pushearCobro(cobro, detalles.$$hashKey); 615 pushearCobro(cobro, detalles.$$hashKey);
611 }, function () { } 616 }, function () { }
612 ); 617 );
613 } else { 618 } else {
614 focaModalService.alert('Esta cobranza no se puede editar'); 619 focaModalService.alert('Esta cobranza no se puede editar');
615 return; 620 return;
616 } 621 }
617 }; 622 };
618 623
619 $scope.seleccionarMoneda = function () { 624 $scope.seleccionarMoneda = function () {
620 if ($scope.cobranza.id === undefined) { 625 if ($scope.cobranza.id === undefined) {
621 var parametrosModal = { 626 var parametrosModal = {
622 titulo: 'Búsqueda de monedas', 627 titulo: 'Búsqueda de monedas',
623 query: '/moneda', 628 query: '/moneda',
624 columnas: [ 629 columnas: [
625 { 630 {
626 propiedad: 'DETALLE', 631 propiedad: 'DETALLE',
627 nombre: 'Nombre' 632 nombre: 'Nombre'
628 }, 633 },
629 { 634 {
630 propiedad: 'SIMBOLO', 635 propiedad: 'SIMBOLO',
631 nombre: 'Símbolo' 636 nombre: 'Símbolo'
632 } 637 }
633 ], 638 ],
634 size: 'md' 639 size: 'md'
635 }; 640 };
636 focaModalService.modal(parametrosModal).then( 641 focaModalService.modal(parametrosModal).then(
637 function (moneda) { 642 function (moneda) {
638 $scope.seleccionarCotizacion(moneda); 643 $scope.seleccionarCotizacion(moneda);
639 }, function () { 644 }, function () {
640 645
641 } 646 }
642 ); 647 );
643 } else { 648 } else {
644 focaModalService.alert('Esta cobranza no se puede editar'); 649 focaModalService.alert('Esta cobranza no se puede editar');
645 return; 650 return;
646 } 651 }
647 652
648 }; 653 };
649 654
650 $scope.seleccionarCotizacion = function (moneda) { 655 $scope.seleccionarCotizacion = function (moneda) {
651 var modalInstance = $uibModal.open( 656 var modalInstance = $uibModal.open(
652 { 657 {
653 ariaLabelledBy: 'Busqueda de Cotización', 658 ariaLabelledBy: 'Busqueda de Cotización',
654 templateUrl: 'modal-cotizacion.html', 659 templateUrl: 'modal-cotizacion.html',
655 controller: 'focaModalCotizacionController', 660 controller: 'focaModalCotizacionController',
656 size: 'lg', 661 size: 'lg',
657 resolve: { idMoneda: function () { return moneda.ID; } } 662 resolve: { idMoneda: function () { return moneda.ID; } }
658 } 663 }
659 ); 664 );
660 modalInstance.result.then( 665 modalInstance.result.then(
661 function (cotizacion) { 666 function (cotizacion) {
662 $scope.cobranza.moneda = moneda; 667 $scope.cobranza.moneda = moneda;
663 $scope.cobranza.moneda.cotizacion = cotizacion; 668 $scope.cobranza.moneda.cotizacion = cotizacion;
664 if (moneda.DETALLE === 'PESOS ARGENTINOS') { 669 if (moneda.DETALLE === 'PESOS ARGENTINOS') {
665 $scope.$broadcast('removeCabecera', 'Moneda:'); 670 $scope.$broadcast('removeCabecera', 'Moneda:');
666 $scope.$broadcast('removeCabecera', 'Fecha cotizacion:'); 671 $scope.$broadcast('removeCabecera', 'Fecha cotizacion:');
667 $scope.$broadcast('removeCabecera', 'Cotizacion:'); 672 $scope.$broadcast('removeCabecera', 'Cotizacion:');
668 } else { 673 } else {
669 $scope.$broadcast('addCabecera', { 674 $scope.$broadcast('addCabecera', {
670 label: 'Moneda:', 675 label: 'Moneda:',
671 valor: moneda.DETALLE 676 valor: moneda.DETALLE
672 }); 677 });
673 $scope.$broadcast('addCabecera', { 678 $scope.$broadcast('addCabecera', {
674 label: 'Fecha cotizacion:', 679 label: 'Fecha cotizacion:',
675 valor: $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy') 680 valor: $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy')
676 }); 681 });
677 $scope.$broadcast('addCabecera', { 682 $scope.$broadcast('addCabecera', {
678 label: 'Cotizacion:', 683 label: 'Cotizacion:',
679 valor: $filter('number')(cotizacion.VENDEDOR, '2') 684 valor: $filter('number')(cotizacion.VENDEDOR, '2')
680 }); 685 });
681 } 686 }
682 687
683 $filter('filter')($scope.botonera, { 688 $filter('filter')($scope.botonera, {
684 label: 'Moneda' 689 label: 'Moneda'
685 })[0].checked = true; 690 })[0].checked = true;
686 691
687 }, function () { 692 }, function () {
688 693
689 } 694 }
690 ); 695 );
691 }; 696 };
692 697
693 $scope.getTotalDeuda = function () { 698 $scope.getTotalDeuda = function () {
694 var total = 0; 699 var total = 0;
695 for (var i = 0; i < $scope.cobranza.facturas.length; i++) { 700 for (var i = 0; i < $scope.cobranza.facturas.length; i++) {
696 total += $scope.cobranza.facturas[i].IMP || $scope.cobranza.facturas[i].IPA; 701 total += $scope.cobranza.facturas[i].IMP || $scope.cobranza.facturas[i].IPA;
697 } 702 }
698 return parseFloat(total.toFixed(2)); 703 return parseFloat(total.toFixed(2));
699 }; 704 };
700 705
701 $scope.getTotalCobrado = function () { 706 $scope.getTotalCobrado = function () {
702 var total = 0; 707 var total = 0;
703 for (var i = 0; i < $scope.cobranza.cobros.length; i++) { 708 for (var i = 0; i < $scope.cobranza.cobros.length; i++) {
704 total += $scope.cobranza.cobros[i].IMP; 709 total += $scope.cobranza.cobros[i].IMP;
705 } 710 }
706 return parseFloat(total.toFixed(2)); 711 return parseFloat(total.toFixed(2));
707 }; 712 };
708 713
709 $scope.getSubTotal = function () { 714 $scope.getSubTotal = function () {
710 if ($scope.articuloACargar) { 715 if ($scope.articuloACargar) {
711 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad; 716 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad;
712 } 717 }
713 }; 718 };
714 //Recibe aviso si el teclado está en uso 719 //Recibe aviso si el teclado está en uso
715 // $rootScope.$on('usarTeclado', function(event, data) { 720 // $rootScope.$on('usarTeclado', function(event, data) {
716 // if(data) { 721 // if(data) {
717 // $scope.mostrarTeclado = true; 722 // $scope.mostrarTeclado = true;
718 // return; 723 // return;
719 // } 724 // }
720 // $scope.mostrarTeclado = false; 725 // $scope.mostrarTeclado = false;
721 // }) 726 // })
722 $scope.selectFocus = function ($event) { 727 $scope.selectFocus = function ($event) {
723 //Si el teclado esta en uso no selecciona el valor 728 //Si el teclado esta en uso no selecciona el valor
724 // if($scope.mostrarTeclado) { 729 // if($scope.mostrarTeclado) {
725 // return; 730 // return;
726 // } 731 // }
727 $event.target.select(); 732 $event.target.select();
728 }; 733 };
729 734
730 $scope.salir = function () { 735 $scope.salir = function () {
731 $location.path('/'); 736 $location.path('/');
732 }; 737 };
733 738
734 $scope.parsearATexto = function (articulo) { 739 $scope.parsearATexto = function (articulo) {
735 articulo.cantidad = parseFloat(articulo.cantidad); 740 articulo.cantidad = parseFloat(articulo.cantidad);
736 articulo.precio = parseFloat(articulo.precio); 741 articulo.precio = parseFloat(articulo.precio);
737 }; 742 };
738 743
739 $scope.quitarFactura = function (key) { 744 $scope.quitarFactura = function (key) {
740 if ($scope.cobranza.id === undefined) { 745 if ($scope.cobranza.id === undefined) {
741 $scope.cobranza.facturas.splice(key, 1); 746 $scope.cobranza.facturas.splice(key, 1);
742 } else { 747 } else {
743 focaModalService.alert('Esta comprobante no se puede eliminar'); 748 focaModalService.alert('Esta comprobante no se puede eliminar');
744 return; 749 return;
745 } 750 }
746 }; 751 };
747 752
748 $scope.quitarCobro = function (key) { 753 $scope.quitarCobro = function (key) {
749 if ($scope.cobranza.id === undefined) { 754 if ($scope.cobranza.id === undefined) {
750 $scope.cobranza.cobros.splice(key, 1); 755 $scope.cobranza.cobros.splice(key, 1);
751 } else { 756 } else {
752 focaModalService.alert('Esta comprobante no se puede eliminar'); 757 focaModalService.alert('Esta comprobante no se puede eliminar');
753 return; 758 return;
754 } 759 }
755 }; 760 };
756 761
757 $scope.editarCobro = function (cobro) { 762 $scope.editarCobro = function (cobro) {
758 if (cobro.COM === 'Efectivo') { 763 if (cobro.COM === 'Efectivo') {
759 $scope.seleccionarEfectivo(); 764 $scope.seleccionarEfectivo();
760 } else if (cobro.COM.substring(0, 2) === 'de') { 765 } else if (cobro.COM.substring(0, 2) === 'de') {
761 $scope.seleccionarDetalles(cobro); 766 $scope.seleccionarDetalles(cobro);
762 } else if (cobro.COM.substring(0, 2) === 'ch') { 767 } else if (cobro.COM.substring(0, 2) === 'ch') {
763 $scope.seleccionarCheque(cobro); 768 $scope.seleccionarCheque(cobro);
764 } 769 }
765 }; 770 };
766 771
767 $scope.$watch('cobranza.facturas', function () { 772 $scope.$watch('cobranza.facturas', function () {
768 if ($scope.cobranza.facturas.length) { 773 if ($scope.cobranza.facturas.length) {
769 $filter('filter')($scope.botonera, { 774 $filter('filter')($scope.botonera, {
770 label: 'Comprobantes' 775 label: 'Comprobantes'
771 })[0].checked = true; 776 })[0].checked = true;
772 } else { 777 } else {
773 $filter('filter')($scope.botonera, { 778 $filter('filter')($scope.botonera, {
774 label: 'Comprobantes' 779 label: 'Comprobantes'
775 })[0].checked = false; 780 })[0].checked = false;
776 } 781 }
777 }, true); 782 }, true);
778 783
779 $scope.$watch('cobranza.cobros', function () { 784 $scope.$watch('cobranza.cobros', function () {
780 if ($scope.cobranza.cobros.length) { 785 if ($scope.cobranza.cobros.length) {
781 $filter('filter')($scope.botonera, { 786 $filter('filter')($scope.botonera, {
782 label: 'Cobros' 787 label: 'Cobros'
783 })[0].checked = true; 788 })[0].checked = true;
784 } else { 789 } else {
785 $filter('filter')($scope.botonera, { 790 $filter('filter')($scope.botonera, {
786 label: 'Cobros' 791 label: 'Cobros'
787 })[0].checked = false; 792 })[0].checked = false;
788 } 793 }
789 }, true); 794 }, true);
790 795
791 function pushearCobro(cobro, hashKey) { 796 function pushearCobro(cobro, hashKey) {
792 var existe; 797 var existe;
793 798
794 $scope.cobranza.cobros.forEach(function (c, idx) { 799 $scope.cobranza.cobros.forEach(function (c, idx) {
795 if (c.$$hashKey === hashKey) { 800 if (c.$$hashKey === hashKey) {
796 $scope.cobranza.cobros[idx] = cobro; 801 $scope.cobranza.cobros[idx] = cobro;
797 existe = true; 802 existe = true;
798 } 803 }
799 }); 804 });
800 if (!existe) { 805 if (!existe) {
801 $scope.cobranza.cobros.push(cobro); 806 $scope.cobranza.cobros.push(cobro);
802 } 807 }
803 } 808 }
804 809
805 function salir() { 810 function salir() {
806 var confirmacion = false; 811 var confirmacion = false;
807 812
808 if (!angular.equals($scope.cobranza, $scope.inicial)) { 813 if (!angular.equals($scope.cobranza, $scope.inicial)) {
809 confirmacion = true; 814 confirmacion = true;
810 } 815 }
811 816
812 if (confirmacion) { 817 if (confirmacion) {
813 focaModalService.confirm( 818 focaModalService.confirm(
814 '¿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.'
815 ).then(function (data) { 820 ).then(function (data) {
816 if (data) { 821 if (data) {
817 $location.path('/'); 822 $location.path('/');
823 var rutaJson = JSON.parse($localStorage.rutas);
824 removeItemFromArr(rutaJson, 'cobranza/crear');
825 $localStorage.rutas = JSON.stringify(rutaJson);
818 } 826 }
819 }); 827 });
820 } else { 828 } else {
821 $location.path('/'); 829 $location.path('/');
822 } 830 }
823 } 831 }
824 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
825 function setearCobranza(cobranza) { 841 function setearCobranza(cobranza) {
826 $scope.editando = true; 842 $scope.editando = true;
827 $scope.$broadcast('cleanCabecera'); 843 $scope.$broadcast('cleanCabecera');
828 844
829 if (cobranza.cliente) { 845 if (cobranza.cliente) {
830 $scope.$broadcast('addCabecera', { 846 $scope.$broadcast('addCabecera', {
831 label: 'Cliente:', 847 label: 'Cliente:',
832 valor: $filter('rellenarDigitos')(cobranza.cliente.COD, 5) + ' - ' + 848 valor: $filter('rellenarDigitos')(cobranza.cliente.COD, 5) + ' - ' +
833 cobranza.cliente.NOM 849 cobranza.cliente.NOM
834 }); 850 });
835 851
836 $filter('filter')($scope.botonera, { 852 $filter('filter')($scope.botonera, {
837 label: 'Cliente' 853 label: 'Cliente'
838 })[0].checked = true; 854 })[0].checked = true;
839 } 855 }
840 if (cobranza.cobrador && cobranza.cobrador.NUM) { 856 if (cobranza.cobrador && cobranza.cobrador.NUM) {
841 $scope.$broadcast('addCabecera', { 857 $scope.$broadcast('addCabecera', {
842 label: 'Cobrador:', 858 label: 'Cobrador:',
843 valor: (cobranza.cobrador.NUM) ? 859 valor: (cobranza.cobrador.NUM) ?
844 $filter('rellenarDigitos')(cobranza.cobrador.NUM, 5) + ' - ' + 860 $filter('rellenarDigitos')(cobranza.cobrador.NUM, 5) + ' - ' +
845 cobranza.cobrador.NOM : cobranza.cobrador 861 cobranza.cobrador.NOM : cobranza.cobrador
846 862
847 }); 863 });
848 } 864 }
849 865
850 // TODO: Setear moneda 866 // TODO: Setear moneda
851 if (cobranza.moneda) { 867 if (cobranza.moneda) {
852 $filter('filter')($scope.botonera, { 868 $filter('filter')($scope.botonera, {
853 label: 'Moneda' 869 label: 'Moneda'
854 })[0].checked = true; 870 })[0].checked = true;
855 } 871 }
856 872
857 $scope.cobranza = cobranza; 873 $scope.cobranza = cobranza;
858 } 874 }
859 875
860 function getLSCobranza() { 876 function getLSCobranza() {
861 var cobranza = JSON.parse($localStorage.cobranza || null); 877 var cobranza = JSON.parse($localStorage.cobranza || null);
862 if (cobranza) { 878 if (cobranza) {
863 setearCobranza(cobranza); 879 setearCobranza(cobranza);
864 delete $localStorage.cobranza; 880 delete $localStorage.cobranza;
865 } 881 }
866 } 882 }
867 883
868 function enviarMail(recibo) { 884 function enviarMail(recibo) {
869 focaModalService.mail( 885 focaModalService.mail(
870 { 886 {
871 titulo: 'Enviar recibo', 887 titulo: 'Enviar recibo',
872 descarga: { 888 descarga: {
873 nombre: recibo.recibo.PVE + '-' + recibo.recibo.NCO + '.pdf', 889 nombre: recibo.recibo.PVE + '-' + recibo.recibo.NCO + '.pdf',
874 url: '/mail/recibo/descargar', 890 url: '/mail/recibo/descargar',
875 }, 891 },
876 envio: { 892 envio: {
877 mailCliente: recibo.cliente.MAIL, 893 mailCliente: recibo.cliente.MAIL,
878 url: '/mail/recibo', 894 url: '/mail/recibo',
879 }, 895 },
880 options: { 896 options: {
881 recibo: recibo 897 recibo: recibo
882 } 898 }
883 } 899 }
884 ); 900 );
885 } 901 }
886 902
887 function getSugerido() { 903 function getSugerido() {
888 var result; 904 var result;
889 905
890 var valor = $scope.getTotalDeuda() + $scope.getTotalCobrado(); 906 var valor = $scope.getTotalDeuda() + $scope.getTotalCobrado();
891 907
892 if (valor < 0) { 908 if (valor < 0) {
893 result = Math.abs(valor).toFixed(4); 909 result = Math.abs(valor).toFixed(4);
894 } 910 }
895 911
896 return result; 912 return result;
897 } 913 }
898 } 914 }
899 ]); 915 ]);