Commit 9bb92655ab931c2559a3a451ebcd169a9649f6ac

Authored by Luigi
1 parent 7860c14c21
Exists in master

validacion al editar cobranza seleccionada

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