Commit 03f6353fa6cdb4a97e321de1619951d828db8e56

Authored by Eric Fernandez
Exists in master

Merge branch 'master' into 'develop'

Master(efernandez)

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