Commit 256d30e1c5456f630065085de21d86c4e8e10e9b

Authored by Nicolás Guarnieri
1 parent 1a18026adc
Exists in master

ortografia

Showing 1 changed file with 1 additions and 1 deletions   Show diff stats
src/js/controller.js
1 angular.module('focaCrearCobranza') .controller('cobranzaController', 1 angular.module('focaCrearCobranza') .controller('cobranzaController',
2 [ 2 [
3 '$scope', '$rootScope', '$timeout', '$uibModal', '$location', 3 '$scope', '$rootScope', '$timeout', '$uibModal', '$location',
4 'focaCrearCobranzaService', 'focaModalService', '$filter', 'focaSeguimientoService', 4 'focaCrearCobranzaService', 'focaModalService', '$filter', 'focaSeguimientoService',
5 'focaBotoneraLateralService', 'APP', 'focaLoginService', 5 'focaBotoneraLateralService', 'APP', 'focaLoginService',
6 function($scope, $rootScope, $timeout, $uibModal, $location, focaCrearCobranzaService, 6 function($scope, $rootScope, $timeout, $uibModal, $location, focaCrearCobranzaService,
7 focaModalService, $filter, focaSeguimientoService, focaBotoneraLateralService, 7 focaModalService, $filter, focaSeguimientoService, focaBotoneraLateralService,
8 APP, loginService) 8 APP, loginService)
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.fecha = new Date(); 17 $scope.fecha = new Date();
18 $scope.puntoVenta = $filter('rellenarDigitos')(0, 4); 18 $scope.puntoVenta = $filter('rellenarDigitos')(0, 4);
19 $scope.comprobante = $filter('rellenarDigitos')(0, 8); 19 $scope.comprobante = $filter('rellenarDigitos')(0, 8);
20 20
21 $scope.dateOptions = { 21 $scope.dateOptions = {
22 maxDate: new Date(), 22 maxDate: new Date(),
23 minDate: new Date(2010, 0, 1) 23 minDate: new Date(2010, 0, 1)
24 }; 24 };
25 25
26 var monedaPorDefecto; 26 var monedaPorDefecto;
27 //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]' 27 //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]'
28 focaCrearCobranzaService.getCotizacionByIdMoneda(1).then(function(res) { 28 focaCrearCobranzaService.getCotizacionByIdMoneda(1).then(function(res) {
29 monedaPorDefecto = res.data[0]; 29 monedaPorDefecto = res.data[0];
30 30
31 $scope.cobranza.moneda = monedaPorDefecto; 31 $scope.cobranza.moneda = monedaPorDefecto;
32 $scope.inicial.cobranza.moneda = $scope.cobranza.moneda; 32 $scope.inicial.cobranza.moneda = $scope.cobranza.moneda;
33 33
34 $scope.cobranza.cotizacion = monedaPorDefecto.cotizaciones[0]; 34 $scope.cobranza.cotizacion = monedaPorDefecto.cotizaciones[0];
35 $scope.inicial.cobranza.cotizacion = $scope.cobranza.cotizacion; 35 $scope.inicial.cobranza.cotizacion = $scope.cobranza.cotizacion;
36 }); 36 });
37 37
38 $timeout(function() { 38 $timeout(function() {
39 focaBotoneraLateralService.showSalir(false); 39 focaBotoneraLateralService.showSalir(false);
40 focaBotoneraLateralService.showPausar(true); 40 focaBotoneraLateralService.showPausar(true);
41 focaBotoneraLateralService.showGuardar(true, $scope.crearCobranza); 41 focaBotoneraLateralService.showGuardar(true, $scope.crearCobranza);
42 focaBotoneraLateralService.addCustomButton('Salir', salir); 42 focaBotoneraLateralService.addCustomButton('Salir', salir);
43 }); 43 });
44 44
45 if (APP === 'cobranza') { 45 if (APP === 'cobranza') {
46 $scope.idCobrador = loginService.getLoginData().vendedorCobrador; 46 $scope.idCobrador = loginService.getLoginData().vendedorCobrador;
47 $scope.botonera = focaCrearCobranzaService.getBotonera($scope.idCobrador); 47 $scope.botonera = focaCrearCobranzaService.getBotonera($scope.idCobrador);
48 } else { 48 } else {
49 $scope.botonera = focaCrearCobranzaService.getBotonera(); 49 $scope.botonera = focaCrearCobranzaService.getBotonera();
50 } 50 }
51 51
52 init(); 52 init();
53 } 53 }
54 54
55 function init() { 55 function init() {
56 $scope.$broadcast('cleanCabecera'); 56 $scope.$broadcast('cleanCabecera');
57 57
58 $scope.cobranza = {}; 58 $scope.cobranza = {};
59 $scope.facturaTabla = []; 59 $scope.facturaTabla = [];
60 $scope.cobrosTabla = []; 60 $scope.cobrosTabla = [];
61 61
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.CodVen) + ' - ' + 68 valor: $filter('rellenarDigitos')(cobrador.CodVen) + ' - ' +
69 cobrador.NomVen 69 cobrador.NomVen
70 }); 70 });
71 71
72 $scope.cobranza.cobrador = cobrador; 72 $scope.cobranza.cobrador = cobrador;
73 $scope.inicial.cobranza.cobrador = $scope.cobranza.cobrador; 73 $scope.inicial.cobranza.cobrador = $scope.cobranza.cobrador;
74 } 74 }
75 ); 75 );
76 76
77 $scope.inicial = { 77 $scope.inicial = {
78 cobranza: angular.copy($scope.cobranza), 78 cobranza: angular.copy($scope.cobranza),
79 facturaTabla: angular.copy($scope.facturaTabla), 79 facturaTabla: angular.copy($scope.facturaTabla),
80 cobrosTabla: angular.copy($scope.cobrosTabla) 80 cobrosTabla: angular.copy($scope.cobrosTabla)
81 }; 81 };
82 82
83 focaCrearCobranzaService.getNumeroRecibo().then( 83 focaCrearCobranzaService.getNumeroRecibo().then(
84 function(res) { 84 function(res) {
85 $scope.puntoVenta = $filter('rellenarDigitos')( 85 $scope.puntoVenta = $filter('rellenarDigitos')(
86 res.data.sucursal, 4 86 res.data.sucursal, 4
87 ); 87 );
88 88
89 $scope.comprobante = $filter('rellenarDigitos')( 89 $scope.comprobante = $filter('rellenarDigitos')(
90 res.data.numeroRecibo, 8 90 res.data.numeroRecibo, 8
91 ); 91 );
92 }, 92 },
93 function(err) { 93 function(err) {
94 focaModalService.alert( 94 focaModalService.alert(
95 'La terminal no esta configurada correctamente' 95 'La terminal no esta configurada correctamente'
96 ); 96 );
97 console.info(err); 97 console.info(err);
98 } 98 }
99 ); 99 );
100 } 100 }
101 101
102 $scope.crearCobranza = function() { 102 $scope.crearCobranza = function() {
103 if(!$scope.cobranza.cliente) { 103 if(!$scope.cobranza.cliente) {
104 focaModalService.alert('Ingrese Cliente'); 104 focaModalService.alert('Ingrese Cliente');
105 return; 105 return;
106 } 106 }
107 if(!$scope.cobranza.cobrador) { 107 if(!$scope.cobranza.cobrador) {
108 focaModalService.alert('Ingrese Cobrador'); 108 focaModalService.alert('Ingrese Cobrador');
109 return; 109 return;
110 } 110 }
111 if($scope.facturaTabla.length < 1) { 111 if($scope.facturaTabla.length < 1) {
112 focaModalService.alert('Ingrese al menos una factura'); 112 focaModalService.alert('Ingrese al menos una factura');
113 return; 113 return;
114 } 114 }
115 if($scope.getTotalCobrado() + $scope.getTotalDeuda() !== 0) { 115 if($scope.getTotalCobrado() + $scope.getTotalDeuda() !== 0) {
116 focaModalService.alert('La diferencia debe ser ' + 116 focaModalService.alert('La diferencia debe ser ' +
117 $scope.cobranza.moneda.SIMBOLO + '0,00'); 117 $scope.cobranza.moneda.SIMBOLO + '0,00');
118 return; 118 return;
119 } 119 }
120 120
121 var cobranza = {}; 121 var cobranza = {};
122 var cheques = []; 122 var cheques = [];
123 var cuerpos = []; 123 var cuerpos = [];
124 //TODO: habilitar edición 124 //TODO: habilitar edición
125 $scope.editando = false; 125 $scope.editando = false;
126 focaBotoneraLateralService.startGuardar(); 126 focaBotoneraLateralService.startGuardar();
127 $scope.saveLoading = true; 127 $scope.saveLoading = true;
128 for(var i = 0; i < $scope.facturaTabla.length; i++) { 128 for(var i = 0; i < $scope.facturaTabla.length; i++) {
129 var cuerpoFactura = { 129 var cuerpoFactura = {
130 CYV: 'V', 130 CYV: 'V',
131 TIP: 'C', 131 TIP: 'C',
132 TCO: 'RC', 132 TCO: 'RC',
133 PVE: $scope.puntoVenta, 133 PVE: $scope.puntoVenta,
134 NCO: $scope.comprobante, 134 NCO: $scope.comprobante,
135 LOP: 'L', 135 LOP: 'L',
136 TIL: $scope.facturaTabla[i].TCO, 136 TIL: $scope.facturaTabla[i].TCO,
137 COM: $scope.facturaTabla[i].numeroFactura + '-' + 137 COM: $scope.facturaTabla[i].numeroFactura + '-' +
138 $filter('rellenarDigitos')($scope.facturaTabla[i].NCU,2), 138 $filter('rellenarDigitos')($scope.facturaTabla[i].NCU,2),
139 FEC: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '), 139 FEC: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '),
140 IMP: Math.abs($scope.facturaTabla[i].IPA), 140 IMP: Math.abs($scope.facturaTabla[i].IPA),
141 RES: 0,//caja de tesorería 141 RES: 0,//caja de tesorería
142 SUBM: 0, 142 SUBM: 0,
143 NCU: $scope.facturaTabla[i].NCU 143 NCU: $scope.facturaTabla[i].NCU
144 }; 144 };
145 cuerpos.push(cuerpoFactura); 145 cuerpos.push(cuerpoFactura);
146 } 146 }
147 147
148 for (var j = 0; j < $scope.cobrosTabla.length; j++) { 148 for (var j = 0; j < $scope.cobrosTabla.length; j++) {
149 149
150 var efectivo = $scope.cobrosTabla[j].tipo === 'Efectivo' ? true : false; 150 var efectivo = $scope.cobrosTabla[j].tipo === 'Efectivo' ? true : false;
151 var cuerpoCobros = { 151 var cuerpoCobros = {
152 CYV: 'V', 152 CYV: 'V',
153 TIP: 'C', 153 TIP: 'C',
154 TCO: 'RC', 154 TCO: 'RC',
155 PVE: $scope.puntoVenta, 155 PVE: $scope.puntoVenta,
156 NCO: $scope.comprobante, 156 NCO: $scope.comprobante,
157 LOP: 'P', 157 LOP: 'P',
158 TIL: 'EF', 158 TIL: 'EF',
159 COM: efectivo ? 'ef(COBRO EN EFECTIVO)' : 'ch(' + 159 COM: efectivo ? 'ef(COBRO EN EFECTIVO)' : 'ch(' +
160 $scope.cobrosTabla[j].numero + ')' + $scope.cobrosTabla[j].banco.desbco, 160 $scope.cobrosTabla[j].numero + ')' + $scope.cobrosTabla[j].banco.desbco,
161 FEC: efectivo ? 161 FEC: efectivo ?
162 $scope.cobrosTabla[j].fecha 162 $scope.cobrosTabla[j].fecha
163 .toISOString().slice(0, 19).replace('T', ' ') : 163 .toISOString().slice(0, 19).replace('T', ' ') :
164 $scope.cobrosTabla[j].fechaPresentacion 164 $scope.cobrosTabla[j].fechaPresentacion
165 .toISOString().slice(0, 19).replace('T', ' '), 165 .toISOString().slice(0, 19).replace('T', ' '),
166 IMP: Math.abs($scope.cobrosTabla[j].importe), 166 IMP: Math.abs($scope.cobrosTabla[j].importe),
167 RES: 0,//caja de tesorería 167 RES: 0,//caja de tesorería
168 SUBM: 0 168 SUBM: 0
169 }; 169 };
170 cuerpos.push(cuerpoCobros); 170 cuerpos.push(cuerpoCobros);
171 171
172 if(!efectivo) { 172 if(!efectivo) {
173 var cheque = { 173 var cheque = {
174 BCO: $scope.cobrosTabla[j].banco.ID, 174 BCO: $scope.cobrosTabla[j].banco.ID,
175 NUM: $scope.comprobante, 175 NUM: $scope.comprobante,
176 FEP: $scope.cobrosTabla[j].fechaPresentacion 176 FEP: $scope.cobrosTabla[j].fechaPresentacion
177 .toISOString().slice(0, 19).replace('T', ' '), 177 .toISOString().slice(0, 19).replace('T', ' '),
178 FEE: $scope.cobrosTabla[j].fechaEmision 178 FEE: $scope.cobrosTabla[j].fechaEmision
179 .toISOString().slice(0, 19).replace('T', ' '), 179 .toISOString().slice(0, 19).replace('T', ' '),
180 LUG: $scope.cobrosTabla[j].localidad.NOMBRE, 180 LUG: $scope.cobrosTabla[j].localidad.NOMBRE,
181 IMP: $scope.cobrosTabla[j].importe, 181 IMP: $scope.cobrosTabla[j].importe,
182 LIB: $scope.cobrosTabla[j].librador, 182 LIB: $scope.cobrosTabla[j].librador,
183 EST: 'C',//'D' depositado, 'E' entregado, 'C' en cartera 183 EST: 'C',//'D' depositado, 'E' entregado, 'C' en cartera
184 PCI: $scope.cobrosTabla[j].provincia.ID, 184 PCI: $scope.cobrosTabla[j].provincia.ID,
185 LPLA: 0, 185 LPLA: 0,
186 PLA: 0, 186 PLA: 0,
187 VEN: $scope.cobranza.cobrador.CodVen,//Id vendedor 187 VEN: $scope.cobranza.cobrador.CodVen,//Id vendedor
188 CCLIE: $scope.cobranza.cliente.COD,//Id cliente 188 CCLIE: $scope.cobranza.cliente.COD,//Id cliente
189 REN: 0, 189 REN: 0,
190 PVEC: $scope.puntoVenta, 190 PVEC: $scope.puntoVenta,
191 NCOC: $scope.comprobante, 191 NCOC: $scope.comprobante,
192 OBSE: $scope.cobrosTabla[j].observaciones, 192 OBSE: $scope.cobrosTabla[j].observaciones,
193 LUV: 0, 193 LUV: 0,
194 ORI: 've', 194 ORI: 've',
195 FER: '', 195 FER: '',
196 BIMP: 0, 196 BIMP: 0,
197 COMP: 'C ' +'RC ' + $scope.puntoVenta + '-' + $scope.comprobante, 197 COMP: 'C ' +'RC ' + $scope.puntoVenta + '-' + $scope.comprobante,
198 VAL_E: '',//Cuando egresa por ingresos y egresos en el numero de egreso 198 VAL_E: '',//Cuando egresa por ingresos y egresos en el numero de egreso
199 VAL_I: '',//Cuando Ingresa por ingresos y egresos en el numero ingreso 199 VAL_I: '',//Cuando Ingresa por ingresos y egresos en el numero ingreso
200 REC_CAJ: 'D', 200 REC_CAJ: 'D',
201 TIPO_C: 0,//?? 201 TIPO_C: 0,//??
202 SALDO_CAJ: 'S', 202 SALDO_CAJ: 'S',
203 FECHA_INGRESO: $scope.fecha 203 FECHA_INGRESO: $scope.fecha
204 .toISOString().slice(0, 19).replace('T', ' '), 204 .toISOString().slice(0, 19).replace('T', ' '),
205 Vendedor_valor: 0, 205 Vendedor_valor: 0,
206 FAMILIA: 0, 206 FAMILIA: 0,
207 CUIT_LIB: '', 207 CUIT_LIB: '',
208 COD_LUG: $scope.cobrosTabla[j].localidad.ID,//código lugar 208 COD_LUG: $scope.cobrosTabla[j].localidad.ID,//código lugar
209 SEN: '', 209 SEN: '',
210 NRC: 0, 210 NRC: 0,
211 COD_LARGO: '', 211 COD_LARGO: '',
212 VN: 0, 212 VN: 0,
213 ID_LECTOR: 0, 213 ID_LECTOR: 0,
214 NATHB: '' 214 NATHB: ''
215 }; 215 };
216 cheques.push(cheque); 216 cheques.push(cheque);
217 } 217 }
218 } 218 }
219 219
220 cobranza = { 220 cobranza = {
221 recibo: { 221 recibo: {
222 CYV: 'V', 222 CYV: 'V',
223 TIP: 'C', 223 TIP: 'C',
224 TCO: 'RC', 224 TCO: 'RC',
225 PVE: $scope.puntoVenta, //Sucursar, punto de venta 225 PVE: $scope.puntoVenta, //Sucursar, punto de venta
226 NCO: $scope.comprobante, //Numero de comprobante 226 NCO: $scope.comprobante, //Numero de comprobante
227 FEC: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '), 227 FEC: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '),
228 CLI: $scope.cobranza.cliente.COD, 228 CLI: $scope.cobranza.cliente.COD,
229 ATO: 0, //número de asiento 229 ATO: 0, //número de asiento
230 CFE: $scope.cobranza.cobrador.NomVen, 230 CFE: $scope.cobranza.cobrador.NomVen,
231 PLA: '',//Numero de planilla, sin uso 231 PLA: '',//Numero de planilla, sin uso
232 ID_MONEDA: $scope.cobranza.moneda.ID, 232 ID_MONEDA: $scope.cobranza.moneda.ID,
233 COTIZACION: $scope.cobranza.cotizacion.VENDEDOR, 233 COTIZACION: $scope.cobranza.cotizacion.VENDEDOR,
234 idCobrador: $scope.cobranza.cobrador.CodVen 234 idCobrador: $scope.cobranza.cobrador.CodVen
235 }, 235 },
236 cuerpo: cuerpos, 236 cuerpo: cuerpos,
237 cheques: cheques, 237 cheques: cheques,
238 acobypag: { 238 acobypag: {
239 CYV: 'V', 239 CYV: 'V',
240 COD: $scope.cobranza.cliente.COD, 240 COD: $scope.cobranza.cliente.COD,
241 FEP: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '), 241 FEP: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '),
242 TIP: 'C', 242 TIP: 'C',
243 TCO: 'RC', 243 TCO: 'RC',
244 SUC: $scope.puntoVenta, 244 SUC: $scope.puntoVenta,
245 NCO: $scope.comprobante, 245 NCO: $scope.comprobante,
246 IPA: $scope.getTotalCobrado(), 246 IPA: $scope.getTotalCobrado(),
247 SAL: '',//?? 247 SAL: '',//??
248 TCA: 1, 248 TCA: 1,
249 ZONA: 1, 249 ZONA: 1,
250 FPA: 2,//Forma de pago 250 FPA: 2,//Forma de pago
251 REC: 0, 251 REC: 0,
252 REP: 0, 252 REP: 0,
253 FER: null, 253 FER: null,
254 REM: 0, 254 REM: 0,
255 FRE: null,//?? 255 FRE: null,//??
256 PRO: 'N', 256 PRO: 'N',
257 FEV: $scope.fecha.toISOString().slice(0, 19).replace('T', ' ') 257 FEV: $scope.fecha.toISOString().slice(0, 19).replace('T', ' ')
258 }, 258 },
259 datosCobrador: { 259 datosCobrador: {
260 COD: $scope.cobranza.cobrador.CodVen, 260 COD: $scope.cobranza.cobrador.CodVen,
261 PVE: $scope.puntoVenta, 261 PVE: $scope.puntoVenta,
262 NUM: $scope.comprobante, 262 NUM: $scope.comprobante,
263 EST: 'C', 263 EST: 'C',
264 OBS: 'RC: ' + $scope.comprobante + '-' + $scope.fecha.toLocaleDateString(), 264 OBS: 'RC: ' + $scope.comprobante + '-' + $scope.fecha.toLocaleDateString(),
265 DAT1: 'C', 265 DAT1: 'C',
266 CLI: $scope.cobranza.cliente.COD 266 CLI: $scope.cobranza.cliente.COD
267 }, 267 },
268 cliente: $scope.cobranza.cliente 268 cliente: $scope.cobranza.cliente
269 }; 269 };
270 //COPIO cobranzaMail Y A cobranza LE ELIMINO EL VALOR NCU DE LOS CUERPOS 270 //COPIO cobranzaMail Y A cobranza LE ELIMINO EL VALOR NCU DE LOS CUERPOS
271 var cobranzaMail = angular.copy(cobranza); 271 var cobranzaMail = angular.copy(cobranza);
272 cobranza.cuerpo = cobranza.cuerpo.map(function(c) { 272 cobranza.cuerpo = cobranza.cuerpo.map(function(c) {
273 if (c.NCU) delete c.NCU; 273 if (c.NCU) delete c.NCU;
274 return c; 274 return c;
275 }); 275 });
276 276
277 277
278 focaCrearCobranzaService 278 focaCrearCobranzaService
279 .guardarCobranza(cobranza) 279 .guardarCobranza(cobranza)
280 .then( 280 .then(
281 function(result) { 281 function(result) {
282 var cliente = angular.copy($scope.cobranza.cliente); 282 var cliente = angular.copy($scope.cobranza.cliente);
283 focaBotoneraLateralService.endGuardar(true); 283 focaBotoneraLateralService.endGuardar(true);
284 $scope.saveLoading = false; 284 $scope.saveLoading = false;
285 285
286 focaModalService 286 focaModalService
287 .prompt('Ingrese los emails separados por coma para enviar comprobante', 287 .prompt('Ingrese los emails separados por coma para enviar comprobante',
288 cliente.MAIL) 288 cliente.MAIL)
289 .then(function(res) { 289 .then(function(res) {
290 return Promise.all([ 290 return Promise.all([
291 focaCrearCobranzaService 291 focaCrearCobranzaService
292 .enviarComprobantePorMail(res, cobranzaMail), 292 .enviarComprobantePorMail(res, cobranzaMail),
293 focaCrearCobranzaService 293 focaCrearCobranzaService
294 .actualizarEmail(res, cliente.COD) 294 .actualizarEmail(res, cliente.COD)
295 ]); 295 ]);
296 }) 296 })
297 .then(function() { 297 .then(function() {
298 focaModalService.alert('Mensaje enviado correctamente'); 298 focaModalService.alert('Mensaje enviado correctamente');
299 }); 299 });
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 init(); 307 init();
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 326
327 var modalInstance = $uibModal.open( 327 var modalInstance = $uibModal.open(
328 { 328 {
329 ariaLabelledBy: 'Busqueda de Cobranzas', 329 ariaLabelledBy: 'Busqueda de Cobranzas',
330 templateUrl: 'foca-modal-cobranza.html', 330 templateUrl: 'foca-modal-cobranza.html',
331 controller: 'focaModalCobranzaController', 331 controller: 'focaModalCobranzaController',
332 size: 'lg' 332 size: 'lg'
333 } 333 }
334 ); 334 );
335 modalInstance.result.then(function(cobranza) { 335 modalInstance.result.then(function(cobranza) {
336 $scope.editando = true; 336 $scope.editando = true;
337 $scope.facturaTabla = []; 337 $scope.facturaTabla = [];
338 $scope.cobrosTabla = []; 338 $scope.cobrosTabla = [];
339 $scope.$broadcast('cleanCabecera'); 339 $scope.$broadcast('cleanCabecera');
340 340
341 $scope.fecha = new Date(cobranza.fecha); 341 $scope.fecha = new Date(cobranza.fecha);
342 342
343 $scope.$broadcast('addCabecera', { 343 $scope.$broadcast('addCabecera', {
344 label: 'Cliente:', 344 label: 'Cliente:',
345 valor: $filter('rellenarDigitos')(cobranza.cliente.COD, 5) + ' - ' + 345 valor: $filter('rellenarDigitos')(cobranza.cliente.COD, 5) + ' - ' +
346 cobranza.cliente.NOM 346 cobranza.cliente.NOM
347 }); 347 });
348 $scope.$broadcast('addCabecera', { 348 $scope.$broadcast('addCabecera', {
349 label: 'Cobrador:', 349 label: 'Cobrador:',
350 valor: cobranza.cobrador 350 valor: cobranza.cobrador
351 //TODO: hacer la relación y traer el cobrador para poner su código 351 //TODO: hacer la relación y traer el cobrador para poner su código
352 // valor: $filter('rellenarDigitos')(cobranza.cobrador.CodVen, 5) + ' - ' + 352 // valor: $filter('rellenarDigitos')(cobranza.cobrador.CodVen, 5) + ' - ' +
353 // cobranza.cobrador 353 // cobranza.cobrador
354 }); 354 });
355 355
356 $scope.facturaTabla = cobranza.facturas; 356 $scope.facturaTabla = cobranza.facturas;
357 $scope.cobrosTabla = cobranza.cobros; 357 $scope.cobrosTabla = cobranza.cobros;
358 }); 358 });
359 }; 359 };
360 360
361 $scope.seleccionarCliente = function() { 361 $scope.seleccionarCliente = function() {
362 var parametrosModal = { 362 var parametrosModal = {
363 titulo: 'Búsqueda de Clientes', 363 titulo: 'Búsqueda de Clientes',
364 query: '/cliente/listar', 364 query: '/cliente/listar',
365 columnas: [ 365 columnas: [
366 { 366 {
367 nombre: 'Código', 367 nombre: 'Código',
368 propiedad: 'COD', 368 propiedad: 'COD',
369 filtro: { 369 filtro: {
370 nombre: 'rellenarDigitos', 370 nombre: 'rellenarDigitos',
371 parametro: 5 371 parametro: 5
372 } 372 }
373 }, 373 },
374 { 374 {
375 nombre: 'Nombre', 375 nombre: 'Nombre',
376 propiedad: 'NOM' 376 propiedad: 'NOM'
377 }, 377 },
378 { 378 {
379 nombre: 'CUIT', 379 nombre: 'CUIT',
380 propiedad: 'CUIT' 380 propiedad: 'CUIT'
381 } 381 }
382 ], 382 ],
383 tipo: 'POST', 383 tipo: 'POST',
384 json: {'nombreOCuit': ''} 384 json: {'nombreOCuit': ''}
385 }; 385 };
386 focaModalService.modal(parametrosModal).then( 386 focaModalService.modal(parametrosModal).then(
387 function(cliente) { 387 function(cliente) {
388 $scope.$broadcast('addCabecera', { 388 $scope.$broadcast('addCabecera', {
389 label: 'Cliente:', 389 label: 'Cliente:',
390 valor: $filter('rellenarDigitos')(cliente.COD, 5) + ' - ' + cliente.NOM 390 valor: $filter('rellenarDigitos')(cliente.COD, 5) + ' - ' + cliente.NOM
391 }); 391 });
392 $scope.cobranza.cliente = cliente; 392 $scope.cobranza.cliente = cliente;
393 } 393 }
394 ); 394 );
395 }; 395 };
396 396
397 $scope.seleccionarFactura = function() { 397 $scope.seleccionarFactura = function() {
398 if(!$scope.cobranza.cliente) { 398 if(!$scope.cobranza.cliente) {
399 focaModalService.alert('Seleccione primero un cliente'); 399 focaModalService.alert('Seleccione primero un cliente');
400 return; 400 return;
401 } 401 }
402 var modalInstance = $uibModal.open( 402 var modalInstance = $uibModal.open(
403 { 403 {
404 ariaLabelledBy: 'Busqueda de Facturas', 404 ariaLabelledBy: 'Busqueda de Facturas',
405 templateUrl: 'foca-modal-factura.html', 405 templateUrl: 'foca-modal-factura.html',
406 controller: 'focaModalFacturaController', 406 controller: 'focaModalFacturaController',
407 size: 'lg', 407 size: 'lg',
408 resolve: { 408 resolve: {
409 parametrosFactura: function() { 409 parametrosFactura: function() {
410 return { 410 return {
411 cliente: $scope.cobranza.cliente, 411 cliente: $scope.cobranza.cliente,
412 simbolo: $scope.cobranza.moneda.SIMBOLO, 412 simbolo: $scope.cobranza.moneda.SIMBOLO,
413 cotizacion: $scope.cobranza.cotizacion.VENDEDOR, 413 cotizacion: $scope.cobranza.cotizacion.VENDEDOR,
414 moneda: $scope.cobranza.moneda.ID 414 moneda: $scope.cobranza.moneda.ID
415 }; 415 };
416 } 416 }
417 } 417 }
418 } 418 }
419 ); 419 );
420 modalInstance.result.then( 420 modalInstance.result.then(
421 function(facturas) { 421 function(facturas) {
422 $scope.facturaTabla = $scope.facturaTabla.concat(facturas); 422 $scope.facturaTabla = $scope.facturaTabla.concat(facturas);
423 }, function() { 423 }, function() {
424 424
425 } 425 }
426 ); 426 );
427 }; 427 };
428 428
429 $scope.seleccionarCheque = function() { 429 $scope.seleccionarCheque = function() {
430 var modalInstance = $uibModal.open( 430 var modalInstance = $uibModal.open(
431 { 431 {
432 ariaLabelledBy: 'Carga de cheques', 432 ariaLabelledBy: 'Carga de cheques',
433 templateUrl: 'modal-cheque.html', 433 templateUrl: 'modal-cheque.html',
434 controller: 'focaModalChequeController', 434 controller: 'focaModalChequeController',
435 size: 'lg', 435 size: 'lg',
436 resolve: { 436 resolve: {
437 sugerido: function() { 437 sugerido: function() {
438 var sugerido = $scope.getTotalDeuda() + $scope.getTotalCobrado(); 438 var sugerido = $scope.getTotalDeuda() + $scope.getTotalCobrado();
439 return sugerido < 0 ? sugerido : null; 439 return sugerido < 0 ? sugerido : null;
440 } 440 }
441 } 441 }
442 } 442 }
443 ); 443 );
444 modalInstance.result.then( 444 modalInstance.result.then(
445 function(cheque) { 445 function(cheque) {
446 var cobro = { 446 var cobro = {
447 tipo: 'Ch' + '(' + cheque.numero + ')' + ' ' + cheque.banco.desbco, 447 tipo: 'Ch' + '(' + cheque.numero + ')' + ' ' + cheque.banco.desbco,
448 numero: cheque.numero, 448 numero: cheque.numero,
449 banco: cheque.banco, 449 banco: cheque.banco,
450 fecha: cheque.fechaEmision.toLocaleDateString() + '-' + 450 fecha: cheque.fechaEmision.toLocaleDateString() + '-' +
451 cheque.fechaPresentacion.toLocaleDateString(), 451 cheque.fechaPresentacion.toLocaleDateString(),
452 fechaPresentacion: cheque.fechaPresentacion, 452 fechaPresentacion: cheque.fechaPresentacion,
453 fechaEmision: cheque.fechaEmision, 453 fechaEmision: cheque.fechaEmision,
454 importe: cheque.importe * $scope.cobranza.cotizacion.VENDEDOR, 454 importe: cheque.importe * $scope.cobranza.cotizacion.VENDEDOR,
455 localidad: cheque.localidad, 455 localidad: cheque.localidad,
456 librador: cheque.librador, 456 librador: cheque.librador,
457 provincia: cheque.provincia, 457 provincia: cheque.provincia,
458 observaciones: cheque.observaciones 458 observaciones: cheque.observaciones
459 }; 459 };
460 $scope.cobrosTabla.push(cobro); 460 $scope.cobrosTabla.push(cobro);
461 }, function() { 461 }, function() {
462 462
463 } 463 }
464 ); 464 );
465 }; 465 };
466 466
467 $scope.seleccionarEfectivo = function() { 467 $scope.seleccionarEfectivo = function() {
468 var modalInstance = $uibModal.open( 468 var modalInstance = $uibModal.open(
469 { 469 {
470 ariaLabelledBy: 'Carga de cheques', 470 ariaLabelledBy: 'Carga de cheques',
471 templateUrl: 'modal-efectivo.html', 471 templateUrl: 'modal-efectivo.html',
472 controller: 'focaModalEfectivoController', 472 controller: 'focaModalEfectivoController',
473 size: 'sm', 473 size: 'sm',
474 resolve: { 474 resolve: {
475 sugerido: function() { 475 sugerido: function() {
476 var sugerido = $scope.getTotalDeuda() + $scope.getTotalCobrado(); 476 var sugerido = $scope.getTotalDeuda() + $scope.getTotalCobrado();
477 return sugerido < 0 ? sugerido : null; 477 return sugerido < 0 ? sugerido : null;
478 } 478 }
479 } 479 }
480 } 480 }
481 ); 481 );
482 modalInstance.result.then( 482 modalInstance.result.then(
483 function(efectivo) { 483 function(efectivo) {
484 var cobro = { 484 var cobro = {
485 tipo: 'Efectivo', 485 tipo: 'Efectivo',
486 fecha: new Date(), 486 fecha: new Date(),
487 importe: efectivo * $scope.cobranza.cotizacion.VENDEDOR 487 importe: efectivo * $scope.cobranza.cotizacion.VENDEDOR
488 }; 488 };
489 $scope.cobrosTabla = $scope.cobrosTabla.filter(function(a) { 489 $scope.cobrosTabla = $scope.cobrosTabla.filter(function(a) {
490 return a.tipo !== 'Efectivo'; 490 return a.tipo !== 'Efectivo';
491 }); 491 });
492 $scope.cobrosTabla.push(cobro); 492 $scope.cobrosTabla.push(cobro);
493 }, function() { 493 }, function() {
494 494
495 } 495 }
496 ); 496 );
497 }; 497 };
498 498
499 $scope.seleccionarMoneda = function() { 499 $scope.seleccionarMoneda = function() {
500 var parametrosModal = { 500 var parametrosModal = {
501 titulo: 'Búsqueda de monedas', 501 titulo: 'Búsqueda de monedas',
502 query: '/moneda', 502 query: '/moneda',
503 columnas: [ 503 columnas: [
504 { 504 {
505 propiedad: 'DETALLE', 505 propiedad: 'DETALLE',
506 nombre: 'Nombre' 506 nombre: 'Nombre'
507 }, 507 },
508 { 508 {
509 propiedad: 'SIMBOLO', 509 propiedad: 'SIMBOLO',
510 nombre: 'Símbolo' 510 nombre: 'Símbolo'
511 } 511 }
512 ], 512 ],
513 size: 'md' 513 size: 'md'
514 }; 514 };
515 focaModalService.modal(parametrosModal).then( 515 focaModalService.modal(parametrosModal).then(
516 function(moneda) { 516 function(moneda) {
517 $scope.seleccionarCotizacion(moneda); 517 $scope.seleccionarCotizacion(moneda);
518 }, function() { 518 }, function() {
519 519
520 } 520 }
521 ); 521 );
522 }; 522 };
523 523
524 $scope.seleccionarCotizacion = function(moneda) { 524 $scope.seleccionarCotizacion = function(moneda) {
525 var modalInstance = $uibModal.open( 525 var modalInstance = $uibModal.open(
526 { 526 {
527 ariaLabelledBy: 'Busqueda de Cotización', 527 ariaLabelledBy: 'Busqueda de Cotización',
528 templateUrl: 'modal-cotizacion.html', 528 templateUrl: 'modal-cotizacion.html',
529 controller: 'focaModalCotizacionController', 529 controller: 'focaModalCotizacionController',
530 size: 'lg', 530 size: 'lg',
531 resolve: {idMoneda: function() {return moneda.ID;}} 531 resolve: {idMoneda: function() {return moneda.ID;}}
532 } 532 }
533 ); 533 );
534 modalInstance.result.then( 534 modalInstance.result.then(
535 function(cotizacion) { 535 function(cotizacion) {
536 $scope.cobranza.moneda = moneda; 536 $scope.cobranza.moneda = moneda;
537 $scope.cobranza.cotizacion = cotizacion; 537 $scope.cobranza.cotizacion = cotizacion;
538 if(moneda.DETALLE === 'PESOS ARGENTINOS') { 538 if(moneda.DETALLE === 'PESOS ARGENTINOS') {
539 $scope.$broadcast('removeCabecera', 'Moneda:'); 539 $scope.$broadcast('removeCabecera', 'Moneda:');
540 $scope.$broadcast('removeCabecera', 'Fecha cotizacion:'); 540 $scope.$broadcast('removeCabecera', 'Fecha cotizacion:');
541 $scope.$broadcast('removeCabecera', 'Cotizacion:'); 541 $scope.$broadcast('removeCabecera', 'Cotizacion:');
542 }else { 542 }else {
543 $scope.$broadcast('addCabecera', { 543 $scope.$broadcast('addCabecera', {
544 label: 'Moneda:', 544 label: 'Moneda:',
545 valor: moneda.DETALLE 545 valor: moneda.DETALLE
546 }); 546 });
547 $scope.$broadcast('addCabecera', { 547 $scope.$broadcast('addCabecera', {
548 label: 'Fecha cotizacion:', 548 label: 'Fecha cotizacion:',
549 valor: $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy') 549 valor: $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy')
550 }); 550 });
551 $scope.$broadcast('addCabecera', { 551 $scope.$broadcast('addCabecera', {
552 label: 'Cotizacion:', 552 label: 'Cotizacion:',
553 valor: $filter('number')(cotizacion.VENDEDOR, '2') 553 valor: $filter('number')(cotizacion.VENDEDOR, '2')
554 }); 554 });
555 } 555 }
556 }, function() { 556 }, function() {
557 557
558 } 558 }
559 ); 559 );
560 }; 560 };
561 561
562 $scope.seleccionarCobrador = function() { 562 $scope.seleccionarCobrador = function() {
563 var parametrosModal = { 563 var parametrosModal = {
564 query: '/cobrador', 564 query: '/cobrador',
565 columnas: [ 565 columnas: [
566 { 566 {
567 propiedad: 'CodVen', 567 propiedad: 'CodVen',
568 nombre: 'Codigo', 568 nombre: 'Codigo',
569 filtro: { 569 filtro: {
570 nombre: 'rellenarDigitos', 570 nombre: 'rellenarDigitos',
571 parametro: 3} 571 parametro: 3}
572 }, 572 },
573 { 573 {
574 propiedad: 'NomVen', 574 propiedad: 'NomVen',
575 nombre: 'Nombre' 575 nombre: 'Nombre'
576 } 576 }
577 ], 577 ],
578 titulo:'Búsqueda de cobradores' 578 titulo:'Búsqueda de cobradores'
579 }; 579 };
580 focaModalService.modal(parametrosModal).then( 580 focaModalService.modal(parametrosModal).then(
581 function(cobrador) { 581 function(cobrador) {
582 $scope.$broadcast('addCabecera', { 582 $scope.$broadcast('addCabecera', {
583 label: 'Cobrador:', 583 label: 'Cobrador:',
584 valor: $filter('rellenarDigitos')(cobrador.CodVen) + ' - ' + 584 valor: $filter('rellenarDigitos')(cobrador.CodVen) + ' - ' +
585 cobrador.NomVen 585 cobrador.NomVen
586 }); 586 });
587 $scope.cobranza.cobrador = cobrador; 587 $scope.cobranza.cobrador = cobrador;
588 }, function() { 588 }, function() {
589 589
590 } 590 }
591 ); 591 );
592 }; 592 };
593 593
594 $scope.getTotalDeuda = function() { 594 $scope.getTotalDeuda = function() {
595 var total = 0; 595 var total = 0;
596 for (var i = 0; i < $scope.facturaTabla.length; i++) { 596 for (var i = 0; i < $scope.facturaTabla.length; i++) {
597 total += $scope.facturaTabla[i].IPA; 597 total += $scope.facturaTabla[i].IPA;
598 } 598 }
599 return parseFloat(total.toFixed(2)); 599 return parseFloat(total.toFixed(2));
600 }; 600 };
601 601
602 $scope.getTotalCobrado = function() { 602 $scope.getTotalCobrado = function() {
603 var total = 0; 603 var total = 0;
604 for (var i = 0; i < $scope.cobrosTabla.length; i++) { 604 for (var i = 0; i < $scope.cobrosTabla.length; i++) {
605 total += $scope.cobrosTabla[i].importe; 605 total += $scope.cobrosTabla[i].importe;
606 } 606 }
607 return parseFloat(total.toFixed(2)); 607 return parseFloat(total.toFixed(2));
608 }; 608 };
609 609
610 $scope.getSubTotal = function() { 610 $scope.getSubTotal = function() {
611 if($scope.articuloACargar) { 611 if($scope.articuloACargar) {
612 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad; 612 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad;
613 } 613 }
614 }; 614 };
615 //Recibe aviso si el teclado está en uso 615 //Recibe aviso si el teclado está en uso
616 // $rootScope.$on('usarTeclado', function(event, data) { 616 // $rootScope.$on('usarTeclado', function(event, data) {
617 // if(data) { 617 // if(data) {
618 // $scope.mostrarTeclado = true; 618 // $scope.mostrarTeclado = true;
619 // return; 619 // return;
620 // } 620 // }
621 // $scope.mostrarTeclado = false; 621 // $scope.mostrarTeclado = false;
622 // }) 622 // })
623 $scope.selectFocus = function($event) { 623 $scope.selectFocus = function($event) {
624 //Si el teclado esta en uso no selecciona el valor 624 //Si el teclado esta en uso no selecciona el valor
625 // if($scope.mostrarTeclado) { 625 // if($scope.mostrarTeclado) {
626 // return; 626 // return;
627 // } 627 // }
628 $event.target.select(); 628 $event.target.select();
629 }; 629 };
630 630
631 $scope.salir = function() { 631 $scope.salir = function() {
632 $location.path('/'); 632 $location.path('/');
633 }; 633 };
634 634
635 $scope.parsearATexto = function(articulo) { 635 $scope.parsearATexto = function(articulo) {
636 articulo.cantidad = parseFloat(articulo.cantidad); 636 articulo.cantidad = parseFloat(articulo.cantidad);
637 articulo.precio = parseFloat(articulo.precio); 637 articulo.precio = parseFloat(articulo.precio);
638 }; 638 };
639 639
640 $scope.quitarFactura = function(key) { 640 $scope.quitarFactura = function(key) {
641 $scope.facturaTabla.splice(key, 1); 641 $scope.facturaTabla.splice(key, 1);
642 }; 642 };
643 643
644 $scope.quitarCobro = function(key) { 644 $scope.quitarCobro = function(key) {
645 $scope.cobrosTabla.splice(key, 1); 645 $scope.cobrosTabla.splice(key, 1);
646 }; 646 };
647 647
648 function salir() { 648 function salir() {
649 var confirmacion = false; 649 var confirmacion = false;
650 650
651 angular.forEach($scope.inicial, function(valor, key) { 651 angular.forEach($scope.inicial, function(valor, key) {
652 if (!angular.equals($scope[key], $scope.inicial[key])) { 652 if (!angular.equals($scope[key], $scope.inicial[key])) {
653 confirmacion = true; 653 confirmacion = true;
654 } 654 }
655 }); 655 });
656 656
657 if (confirmacion) { 657 if (confirmacion) {
658 focaModalService.confirm( 658 focaModalService.confirm(
659 '¿Esta seguro de que desea salir? Se perderán todos los datos cargados.' 659 '¿Está seguro de que desea salir? Se perderán todos los datos cargados.'
660 ).then(function(data) { 660 ).then(function(data) {
661 if (data) { 661 if (data) {
662 $location.path('/'); 662 $location.path('/');
663 } 663 }
664 }); 664 });
665 } else { 665 } else {
666 $location.path('/'); 666 $location.path('/');
667 } 667 }
668 } 668 }
669 } 669 }
670 ]); 670 ]);
671 671