Commit 96fd1c75d000e63e9e48421b8f4147bf668054c3

Authored by Luigi
1 parent f91a30d67d
Exists in master

Cliente vació al crear una nueva

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