Commit cfb11f57b42c773632238e6c5eb9d2728e80ea90

Authored by Nicolás Guarnieri
1 parent 9be79e8a24
Exists in master

console para debug

Showing 1 changed file with 12 additions and 0 deletions   Show diff stats
src/js/controller.js
1 angular.module('focaCrearCobranza') .controller('cobranzaController', 1 angular.module('focaCrearCobranza') .controller('cobranzaController',
2 [ 2 [
3 '$scope', 3 '$scope',
4 '$uibModal', 4 '$uibModal',
5 '$location', 5 '$location',
6 '$filter', 6 '$filter',
7 'focaCrearCobranzaService', 7 'focaCrearCobranzaService',
8 'focaModalService', 8 'focaModalService',
9 '$cookies', 9 '$cookies',
10 'focaSeguimientoService', 10 'focaSeguimientoService',
11 function($scope, $uibModal, $location, $filter, focaCrearCobranzaService, focaModalService, 11 function($scope, $uibModal, $location, $filter, focaCrearCobranzaService, focaModalService,
12 $cookies, focaSeguimientoService) 12 $cookies, focaSeguimientoService)
13 { 13 {
14 $scope.botonera = [ 14 $scope.botonera = [
15 {texto: 'Cliente', accion: function() {$scope.seleccionarCliente();}}, 15 {texto: 'Cliente', accion: function() {$scope.seleccionarCliente();}},
16 {texto: 'Cobrador', accion: function() {$scope.seleccionarCobrador();}}, 16 {texto: 'Cobrador', accion: function() {$scope.seleccionarCobrador();}},
17 {texto: 'Comprobantes', accion: function() {$scope.swichDeuda();}}, 17 {texto: 'Comprobantes', accion: function() {$scope.swichDeuda();}},
18 {texto: 'Cobros', accion: function() {$scope.swichCobro();}}, 18 {texto: 'Cobros', accion: function() {$scope.swichCobro();}},
19 {texto: 'Moneda', accion: function() {$scope.seleccionarMoneda();}}, 19 {texto: 'Moneda', accion: function() {$scope.seleccionarMoneda();}},
20 {texto: '', accion: function() {}}, 20 {texto: '', accion: function() {}},
21 {texto: '', accion: function() {}}, 21 {texto: '', accion: function() {}},
22 {texto: '', accion: function() {}} 22 {texto: '', accion: function() {}}
23 ]; 23 ];
24 $scope.datepickerAbierto = false; 24 $scope.datepickerAbierto = false;
25 $scope.cobroDeuda = true; 25 $scope.cobroDeuda = true;
26 $scope.show = false; 26 $scope.show = false;
27 $scope.cargando = true; 27 $scope.cargando = true;
28 $scope.dateOptions = { 28 $scope.dateOptions = {
29 maxDate: new Date(), 29 maxDate: new Date(),
30 minDate: new Date(2010, 0, 1) 30 minDate: new Date(2010, 0, 1)
31 }; 31 };
32 32
33 $scope.cabecera = []; 33 $scope.cabecera = [];
34 $scope.showCabecera = true; 34 $scope.showCabecera = true;
35 35
36 $scope.cobranza = {}; 36 $scope.cobranza = {};
37 37
38 $scope.fecha = new Date(); 38 $scope.fecha = new Date();
39 $scope.puntoVenta = '0000'; 39 $scope.puntoVenta = '0000';
40 $scope.comprobante = '00000000'; 40 $scope.comprobante = '00000000';
41 $scope.facturaTabla = []; 41 $scope.facturaTabla = [];
42 $scope.cobrosTabla = []; 42 $scope.cobrosTabla = [];
43 43
44 focaCrearCobranzaService.getUsuario($cookies.get('idUsuario')).then(function(data) { 44 focaCrearCobranzaService.getUsuario($cookies.get('idUsuario')).then(function(data) {
45 $scope.usuario = data.data; 45 $scope.usuario = data.data;
46 }); 46 });
47 47
48 $scope.crearCobranza = function() { 48 $scope.crearCobranza = function() {
49 if(!$scope.cobranza.cliente) { 49 if(!$scope.cobranza.cliente) {
50 focaModalService.alert('Ingrese Cliente'); 50 focaModalService.alert('Ingrese Cliente');
51 return; 51 return;
52 } 52 }
53 if(!$scope.cobranza.cobrador) { 53 if(!$scope.cobranza.cobrador) {
54 focaModalService.alert('Ingrese Cobrador'); 54 focaModalService.alert('Ingrese Cobrador');
55 return; 55 return;
56 } 56 }
57 if($scope.facturaTabla.length < 1) { 57 if($scope.facturaTabla.length < 1) {
58 focaModalService.alert('Ingrese al menos una factura'); 58 focaModalService.alert('Ingrese al menos una factura');
59 return; 59 return;
60 } 60 }
61 if($scope.getTotalCobrado() + $scope.getTotalDeuda() !== 0) { 61 if($scope.getTotalCobrado() + $scope.getTotalDeuda() !== 0) {
62 focaModalService.alert('La diferencia debe ser ' + 62 focaModalService.alert('La diferencia debe ser ' +
63 $scope.cobranza.moneda.SIMBOLO + '0,00'); 63 $scope.cobranza.moneda.SIMBOLO + '0,00');
64 return; 64 return;
65 } 65 }
66 var cobranza = {}; 66 var cobranza = {};
67 var cheques = []; 67 var cheques = [];
68 var cuerpos = []; 68 var cuerpos = [];
69 //TODO: habilitar edición 69 //TODO: habilitar edición
70 $scope.editando = false; 70 $scope.editando = false;
71 71
72 for (var i = 0; i < $scope.facturaTabla.length; i++) { 72 for (var i = 0; i < $scope.facturaTabla.length; i++) {
73 var cuerpoFactura = { 73 var cuerpoFactura = {
74 CYV: 'V', 74 CYV: 'V',
75 TIP: 'C', 75 TIP: 'C',
76 TCO: 'RC', 76 TCO: 'RC',
77 PVE: $scope.puntoVenta, 77 PVE: $scope.puntoVenta,
78 NCO: $scope.comprobante, 78 NCO: $scope.comprobante,
79 LOP: 'L', 79 LOP: 'L',
80 TIL: $scope.facturaTabla[i].TCO, 80 TIL: $scope.facturaTabla[i].TCO,
81 COM: $scope.facturaTabla[i].numeroFactura + '-' + 81 COM: $scope.facturaTabla[i].numeroFactura + '-' +
82 $scope.rellenar($scope.facturaTabla[i].NCU,2), 82 $scope.rellenar($scope.facturaTabla[i].NCU,2),
83 FEC: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '), 83 FEC: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '),
84 IMP: $scope.facturaTabla[i].IPA, 84 IMP: $scope.facturaTabla[i].IPA,
85 RES: 0,//caja de tesorería 85 RES: 0,//caja de tesorería
86 SUBM: 0 86 SUBM: 0
87 }; 87 };
88 cuerpos.push(cuerpoFactura); 88 cuerpos.push(cuerpoFactura);
89 } 89 }
90 90
91 for (var j = 0; j < $scope.cobrosTabla.length; j++) { 91 for (var j = 0; j < $scope.cobrosTabla.length; j++) {
92 92
93 var efectivo = $scope.cobrosTabla[j].tipo === 'Efectivo' ? true : false; 93 var efectivo = $scope.cobrosTabla[j].tipo === 'Efectivo' ? true : false;
94 94
95 var cuerpoCobros = { 95 var cuerpoCobros = {
96 CYV: 'V', 96 CYV: 'V',
97 TIP: 'C', 97 TIP: 'C',
98 TCO: 'RC', 98 TCO: 'RC',
99 PVE: $scope.puntoVenta, 99 PVE: $scope.puntoVenta,
100 NCO: $scope.comprobante, 100 NCO: $scope.comprobante,
101 LOP: 'P', 101 LOP: 'P',
102 TIL: 'EF', 102 TIL: 'EF',
103 COM: efectivo ? 'ef(COBRO EN EFECTIVO)' : 'ch(' + 103 COM: efectivo ? 'ef(COBRO EN EFECTIVO)' : 'ch(' +
104 $scope.cobrosTabla[j].numero + ')' + $scope.cobrosTabla[j].banco.desbco, 104 $scope.cobrosTabla[j].numero + ')' + $scope.cobrosTabla[j].banco.desbco,
105 FEC: efectivo ? 105 FEC: efectivo ?
106 $scope.cobrosTabla[j].fecha 106 $scope.cobrosTabla[j].fecha
107 .toISOString().slice(0, 19).replace('T', ' ') : 107 .toISOString().slice(0, 19).replace('T', ' ') :
108 $scope.cobrosTabla[j].fechaPresentacion 108 $scope.cobrosTabla[j].fechaPresentacion
109 .toISOString().slice(0, 19).replace('T', ' '), 109 .toISOString().slice(0, 19).replace('T', ' '),
110 IMP: $scope.cobrosTabla[j].importe, 110 IMP: $scope.cobrosTabla[j].importe,
111 RES: 0,//caja de tesorería 111 RES: 0,//caja de tesorería
112 SUBM: 0 112 SUBM: 0
113 }; 113 };
114 cuerpos.push(cuerpoCobros); 114 cuerpos.push(cuerpoCobros);
115 115
116 if(!efectivo) { 116 if(!efectivo) {
117 var cheque = { 117 var cheque = {
118 BCO: $scope.cobrosTabla[j].banco.ID, 118 BCO: $scope.cobrosTabla[j].banco.ID,
119 NUM: $scope.comprobante, 119 NUM: $scope.comprobante,
120 FEP: $scope.cobrosTabla[j].fechaPresentacion 120 FEP: $scope.cobrosTabla[j].fechaPresentacion
121 .toISOString().slice(0, 19).replace('T', ' '), 121 .toISOString().slice(0, 19).replace('T', ' '),
122 FEE: $scope.cobrosTabla[j].fechaEmision 122 FEE: $scope.cobrosTabla[j].fechaEmision
123 .toISOString().slice(0, 19).replace('T', ' '), 123 .toISOString().slice(0, 19).replace('T', ' '),
124 LUG: $scope.cobrosTabla[j].localidad.NOMBRE, 124 LUG: $scope.cobrosTabla[j].localidad.NOMBRE,
125 IMP: $scope.cobrosTabla[j].importe, 125 IMP: $scope.cobrosTabla[j].importe,
126 LIB: $scope.cobrosTabla[j].librador, 126 LIB: $scope.cobrosTabla[j].librador,
127 EST: 'C',//'D' depositado, 'E' entregado, 'C' en cartera 127 EST: 'C',//'D' depositado, 'E' entregado, 'C' en cartera
128 PCI: $scope.cobrosTabla[j].provincia.ID, 128 PCI: $scope.cobrosTabla[j].provincia.ID,
129 LPLA: 0, 129 LPLA: 0,
130 PLA: 0, 130 PLA: 0,
131 VEN: $scope.usuario.CodVen,//Id vendedor 131 VEN: $scope.usuario.CodVen,//Id vendedor
132 CCLIE: $scope.cobranza.cliente.COD,//Id cliente 132 CCLIE: $scope.cobranza.cliente.COD,//Id cliente
133 REN: 0, 133 REN: 0,
134 PVEC: $scope.puntoVenta, 134 PVEC: $scope.puntoVenta,
135 NCOC: $scope.comprobante, 135 NCOC: $scope.comprobante,
136 OBSE: $scope.cobrosTabla[j].observaciones, 136 OBSE: $scope.cobrosTabla[j].observaciones,
137 LUV: 0, 137 LUV: 0,
138 ORI: 've', 138 ORI: 've',
139 FER: '', 139 FER: '',
140 BIMP: 0, 140 BIMP: 0,
141 COMP: 'C ' +'RC ' + $scope.puntoVenta + '-' + $scope.comprobante, 141 COMP: 'C ' +'RC ' + $scope.puntoVenta + '-' + $scope.comprobante,
142 VAL_E: '',//Cuando egresa por ingresos y egresos en el numero de egreso 142 VAL_E: '',//Cuando egresa por ingresos y egresos en el numero de egreso
143 VAL_I: '',//Cuando Ingresa por ingresos y egresos en el numero ingreso 143 VAL_I: '',//Cuando Ingresa por ingresos y egresos en el numero ingreso
144 REC_CAJ: 'D', 144 REC_CAJ: 'D',
145 TIPO_C: 0,//?? 145 TIPO_C: 0,//??
146 SALDO_CAJ: 'S', 146 SALDO_CAJ: 'S',
147 FECHA_INGRESO: $scope.fecha 147 FECHA_INGRESO: $scope.fecha
148 .toISOString().slice(0, 19).replace('T', ' '), 148 .toISOString().slice(0, 19).replace('T', ' '),
149 Vendedor_valor: 0, 149 Vendedor_valor: 0,
150 FAMILIA: 0, 150 FAMILIA: 0,
151 CUIT_LIB: '', 151 CUIT_LIB: '',
152 COD_LUG: $scope.cobrosTabla[j].localidad.ID,//código lugar 152 COD_LUG: $scope.cobrosTabla[j].localidad.ID,//código lugar
153 SEN: '', 153 SEN: '',
154 NRC: 0, 154 NRC: 0,
155 COD_LARGO: '', 155 COD_LARGO: '',
156 VN: 0, 156 VN: 0,
157 ID_LECTOR: 0, 157 ID_LECTOR: 0,
158 NATHB: '' 158 NATHB: ''
159 }; 159 };
160 cheques.push(cheque); 160 cheques.push(cheque);
161 } 161 }
162 } 162 }
163 163
164 cobranza = { 164 cobranza = {
165 recibo: { 165 recibo: {
166 CYV: 'V', 166 CYV: 'V',
167 TIP: 'C', 167 TIP: 'C',
168 TCO: 'RC', 168 TCO: 'RC',
169 PVE: $scope.puntoVenta, //Sucursar, punto de venta 169 PVE: $scope.puntoVenta, //Sucursar, punto de venta
170 NCO: $scope.comprobante, //Numero de comprobante 170 NCO: $scope.comprobante, //Numero de comprobante
171 FEC: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '), 171 FEC: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '),
172 CLI: $scope.cobranza.cliente.COD, 172 CLI: $scope.cobranza.cliente.COD,
173 ATO: 0, //número de asiento 173 ATO: 0, //número de asiento
174 CFE: $scope.cobranza.cobrador.nombre, 174 CFE: $scope.cobranza.cobrador.nombre,
175 PLA: '',//Numero de planilla, sin uso 175 PLA: '',//Numero de planilla, sin uso
176 ID_MONEDA: $scope.cobranza.moneda.ID, 176 ID_MONEDA: $scope.cobranza.moneda.ID,
177 COTIZACION: $scope.cobranza.cotizacion.VENDEDOR 177 COTIZACION: $scope.cobranza.cotizacion.VENDEDOR
178 }, 178 },
179 cuerpo: cuerpos, 179 cuerpo: cuerpos,
180 cheques: cheques, 180 cheques: cheques,
181 acobypag: { 181 acobypag: {
182 CYV: 'V', 182 CYV: 'V',
183 COD: $scope.cobranza.cliente.COD, 183 COD: $scope.cobranza.cliente.COD,
184 FEP: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '), 184 FEP: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '),
185 TIP: '',//?? 185 TIP: '',//??
186 TCO: 'RC', 186 TCO: 'RC',
187 SUC: $scope.puntoVenta, 187 SUC: $scope.puntoVenta,
188 NCO: $scope.comprobante, 188 NCO: $scope.comprobante,
189 IPA: $scope.getTotalCobrado(), 189 IPA: $scope.getTotalCobrado(),
190 SAL: '',//?? 190 SAL: '',//??
191 TCA: 1, 191 TCA: 1,
192 ZONA: 1, 192 ZONA: 1,
193 FPA: 2,//Forma de pago 193 FPA: 2,//Forma de pago
194 REC: 0, 194 REC: 0,
195 REP: 0, 195 REP: 0,
196 FER: null, 196 FER: null,
197 REM: 0, 197 REM: 0,
198 FRE: null,//?? 198 FRE: null,//??
199 PRO: 'N', 199 PRO: 'N',
200 FEV: $scope.fecha.toISOString().slice(0, 19).replace('T', ' ') 200 FEV: $scope.fecha.toISOString().slice(0, 19).replace('T', ' ')
201 }, 201 },
202 datosCobrador: { 202 datosCobrador: {
203 COD: $scope.cobranza.cobrador.id, 203 COD: $scope.cobranza.cobrador.id,
204 PVE: $scope.puntoVenta, 204 PVE: $scope.puntoVenta,
205 NUM: $scope.comprobante, 205 NUM: $scope.comprobante,
206 EST: 'C', 206 EST: 'C',
207 OBS: 'RC: ' + $scope.comprobante + '-' + $scope.fecha.toLocaleDateString(), 207 OBS: 'RC: ' + $scope.comprobante + '-' + $scope.fecha.toLocaleDateString(),
208 DAT1: 'C', 208 DAT1: 'C',
209 CLI: $scope.cobranza.cliente.COD 209 CLI: $scope.cobranza.cliente.COD
210 } 210 }
211 }; 211 };
212 focaCrearCobranzaService.guardarCobranza(cobranza).then(function(result) { 212 focaCrearCobranzaService.guardarCobranza(cobranza).then(function(result) {
213 focaModalService.alert('Cobranza guardada con éxito'); 213 focaModalService.alert('Cobranza guardada con éxito');
214 214
215 console.info({
216 numero: result.data.numero,
217 actividad: 'Cobranza',
218 observaciones: 'Nº: ' + $filter('comprobante')([
219 result.data.sucursal,
220 result.data.numero
221 ]) + '<br/>' +
222 'Vendedor: ' + $scope.cobranza.cobrador.nombre + '<br/>' +
223 'Total: ' + $filter('currency')($scope.getTotalCobrado()),
224 sucursal: result.data.sucursal
225 });
226
215 focaSeguimientoService.guardarPosicion( 227 focaSeguimientoService.guardarPosicion(
216 result.data.numero, 228 result.data.numero,
217 'Cobranza', 229 'Cobranza',
218 'Nº: ' + $filter('comprobante')([ 230 'Nº: ' + $filter('comprobante')([
219 result.data.sucursal, 231 result.data.sucursal,
220 result.data.numero 232 result.data.numero
221 ]) + '<br/>' + 233 ]) + '<br/>' +
222 'Vendedor: ' + $scope.cobranza.cobrador.nombre + '<br/>' + 234 'Vendedor: ' + $scope.cobranza.cobrador.nombre + '<br/>' +
223 'Total: ' + $filter('currency')($scope.getTotalCobrado()), 235 'Total: ' + $filter('currency')($scope.getTotalCobrado()),
224 result.data.sucursal 236 result.data.sucursal
225 ); 237 );
226 238
227 $scope.cobranza = { 239 $scope.cobranza = {
228 fecha: new Date() 240 fecha: new Date()
229 }; 241 };
230 setearMonedaPorDefecto(); 242 setearMonedaPorDefecto();
231 obtenerNumeroComprobante(); 243 obtenerNumeroComprobante();
232 244
233 $scope.cabecera = []; 245 $scope.cabecera = [];
234 $scope.fecha = new Date(); 246 $scope.fecha = new Date();
235 $scope.facturaTabla = []; 247 $scope.facturaTabla = [];
236 $scope.cobrosTabla = []; 248 $scope.cobrosTabla = [];
237 }); 249 });
238 }; 250 };
239 251
240 $scope.swichCobro = function() { 252 $scope.swichCobro = function() {
241 $scope.cobroDeuda = false; 253 $scope.cobroDeuda = false;
242 }; 254 };
243 255
244 $scope.swichDeuda = function() { 256 $scope.swichDeuda = function() {
245 $scope.cobroDeuda = true; 257 $scope.cobroDeuda = true;
246 }; 258 };
247 259
248 $scope.seleccionarCobranza = function() { 260 $scope.seleccionarCobranza = function() {
249 261
250 var modalInstance = $uibModal.open( 262 var modalInstance = $uibModal.open(
251 { 263 {
252 ariaLabelledBy: 'Busqueda de Cobranzas', 264 ariaLabelledBy: 'Busqueda de Cobranzas',
253 templateUrl: 'foca-modal-cobranza.html', 265 templateUrl: 'foca-modal-cobranza.html',
254 controller: 'focaModalCobranzaController', 266 controller: 'focaModalCobranzaController',
255 size: 'lg' 267 size: 'lg'
256 } 268 }
257 ); 269 );
258 modalInstance.result.then(function(cobranza) { 270 modalInstance.result.then(function(cobranza) {
259 $scope.editando = true; 271 $scope.editando = true;
260 $scope.cabecera = []; 272 $scope.cabecera = [];
261 $scope.facturaTabla = []; 273 $scope.facturaTabla = [];
262 $scope.cobrosTabla = []; 274 $scope.cobrosTabla = [];
263 275
264 $scope.fecha = new Date(cobranza.fecha); 276 $scope.fecha = new Date(cobranza.fecha);
265 277
266 addCabecera('Cliente:', cobranza.cliente.NOM); 278 addCabecera('Cliente:', cobranza.cliente.NOM);
267 addCabecera('Cobrador:', cobranza.cobrador); 279 addCabecera('Cobrador:', cobranza.cobrador);
268 280
269 $scope.facturaTabla = cobranza.facturas; 281 $scope.facturaTabla = cobranza.facturas;
270 $scope.cobrosTabla = cobranza.cobros; 282 $scope.cobrosTabla = cobranza.cobros;
271 283
272 }); 284 });
273 }; 285 };
274 286
275 $scope.seleccionarCliente = function() { 287 $scope.seleccionarCliente = function() {
276 288
277 var modalInstance = $uibModal.open( 289 var modalInstance = $uibModal.open(
278 { 290 {
279 ariaLabelledBy: 'Busqueda de Cliente', 291 ariaLabelledBy: 'Busqueda de Cliente',
280 templateUrl: 'foca-busqueda-cliente-modal.html', 292 templateUrl: 'foca-busqueda-cliente-modal.html',
281 controller: 'focaBusquedaClienteModalController', 293 controller: 'focaBusquedaClienteModalController',
282 size: 'lg' 294 size: 'lg'
283 } 295 }
284 ); 296 );
285 modalInstance.result.then( 297 modalInstance.result.then(
286 function(cliente) { 298 function(cliente) {
287 addCabecera('Cliente:', cliente.nom); 299 addCabecera('Cliente:', cliente.nom);
288 $scope.cobranza.cliente = { 300 $scope.cobranza.cliente = {
289 COD: cliente.cod, 301 COD: cliente.cod,
290 CUIT: cliente.cuit, 302 CUIT: cliente.cuit,
291 NOM: cliente.nom 303 NOM: cliente.nom
292 }; 304 };
293 }, function() { 305 }, function() {
294 306
295 } 307 }
296 ); 308 );
297 }; 309 };
298 310
299 $scope.seleccionarFactura = function() { 311 $scope.seleccionarFactura = function() {
300 if(!$scope.cobranza.cliente) { 312 if(!$scope.cobranza.cliente) {
301 focaModalService.alert('Seleccione primero un cliente'); 313 focaModalService.alert('Seleccione primero un cliente');
302 return; 314 return;
303 } 315 }
304 var modalInstance = $uibModal.open( 316 var modalInstance = $uibModal.open(
305 { 317 {
306 ariaLabelledBy: 'Busqueda de Facturas', 318 ariaLabelledBy: 'Busqueda de Facturas',
307 templateUrl: 'foca-modal-factura.html', 319 templateUrl: 'foca-modal-factura.html',
308 controller: 'focaModalFacturaController', 320 controller: 'focaModalFacturaController',
309 size: 'lg', 321 size: 'lg',
310 resolve: { 322 resolve: {
311 parametrosFactura: function() { 323 parametrosFactura: function() {
312 return { 324 return {
313 cliente: $scope.cobranza.cliente.COD, 325 cliente: $scope.cobranza.cliente.COD,
314 simbolo: $scope.cobranza.moneda.SIMBOLO, 326 simbolo: $scope.cobranza.moneda.SIMBOLO,
315 cotizacion: $scope.cobranza.cotizacion.VENDEDOR, 327 cotizacion: $scope.cobranza.cotizacion.VENDEDOR,
316 moneda: $scope.cobranza.moneda.ID 328 moneda: $scope.cobranza.moneda.ID
317 }; 329 };
318 } 330 }
319 } 331 }
320 } 332 }
321 ); 333 );
322 modalInstance.result.then( 334 modalInstance.result.then(
323 function(facturas) { 335 function(facturas) {
324 $scope.facturaTabla = $scope.facturaTabla.concat(facturas); 336 $scope.facturaTabla = $scope.facturaTabla.concat(facturas);
325 }, function() { 337 }, function() {
326 338
327 } 339 }
328 ); 340 );
329 }; 341 };
330 342
331 $scope.seleccionarCheque = function() { 343 $scope.seleccionarCheque = function() {
332 var modalInstance = $uibModal.open( 344 var modalInstance = $uibModal.open(
333 { 345 {
334 ariaLabelledBy: 'Carga de cheques', 346 ariaLabelledBy: 'Carga de cheques',
335 templateUrl: 'modal-cheque.html', 347 templateUrl: 'modal-cheque.html',
336 controller: 'focaModalChequeController', 348 controller: 'focaModalChequeController',
337 size: 'lg' 349 size: 'lg'
338 } 350 }
339 ); 351 );
340 modalInstance.result.then( 352 modalInstance.result.then(
341 function(cheque) { 353 function(cheque) {
342 var cobro = { 354 var cobro = {
343 tipo: 'Ch' + '(' + cheque.numero + ')' + ' ' + cheque.banco.desbco, 355 tipo: 'Ch' + '(' + cheque.numero + ')' + ' ' + cheque.banco.desbco,
344 numero: cheque.numero, 356 numero: cheque.numero,
345 banco: cheque.banco, 357 banco: cheque.banco,
346 fecha: cheque.fechaEmision.toLocaleDateString() + '-' + 358 fecha: cheque.fechaEmision.toLocaleDateString() + '-' +
347 cheque.fechaPresentacion.toLocaleDateString(), 359 cheque.fechaPresentacion.toLocaleDateString(),
348 fechaPresentacion: cheque.fechaPresentacion, 360 fechaPresentacion: cheque.fechaPresentacion,
349 fechaEmision: cheque.fechaEmision, 361 fechaEmision: cheque.fechaEmision,
350 importe: cheque.importe * $scope.cobranza.cotizacion.VENDEDOR, 362 importe: cheque.importe * $scope.cobranza.cotizacion.VENDEDOR,
351 localidad: cheque.localidad, 363 localidad: cheque.localidad,
352 librador: cheque.librador, 364 librador: cheque.librador,
353 provincia: cheque.provincia, 365 provincia: cheque.provincia,
354 observaciones: cheque.observaciones 366 observaciones: cheque.observaciones
355 }; 367 };
356 $scope.cobrosTabla.push(cobro); 368 $scope.cobrosTabla.push(cobro);
357 }, function() { 369 }, function() {
358 370
359 } 371 }
360 ); 372 );
361 }; 373 };
362 374
363 $scope.seleccionarEfectivo = function() { 375 $scope.seleccionarEfectivo = function() {
364 var modalInstance = $uibModal.open( 376 var modalInstance = $uibModal.open(
365 { 377 {
366 ariaLabelledBy: 'Carga de cheques', 378 ariaLabelledBy: 'Carga de cheques',
367 templateUrl: 'modal-efectivo.html', 379 templateUrl: 'modal-efectivo.html',
368 controller: 'focaModalEfectivoController', 380 controller: 'focaModalEfectivoController',
369 size: 'sm' 381 size: 'sm'
370 } 382 }
371 ); 383 );
372 modalInstance.result.then( 384 modalInstance.result.then(
373 function(efectivo) { 385 function(efectivo) {
374 var cobro = { 386 var cobro = {
375 tipo: 'Efectivo', 387 tipo: 'Efectivo',
376 fecha: new Date(), 388 fecha: new Date(),
377 importe: efectivo * $scope.cobranza.cotizacion.VENDEDOR 389 importe: efectivo * $scope.cobranza.cotizacion.VENDEDOR
378 }; 390 };
379 $scope.cobrosTabla.push(cobro); 391 $scope.cobrosTabla.push(cobro);
380 }, function() { 392 }, function() {
381 393
382 } 394 }
383 ); 395 );
384 }; 396 };
385 397
386 $scope.seleccionarMoneda = function() { 398 $scope.seleccionarMoneda = function() {
387 var modalInstance = $uibModal.open( 399 var modalInstance = $uibModal.open(
388 { 400 {
389 ariaLabelledBy: 'Busqueda de Moneda', 401 ariaLabelledBy: 'Busqueda de Moneda',
390 templateUrl: 'modal-moneda.html', 402 templateUrl: 'modal-moneda.html',
391 controller: 'focaModalMonedaController', 403 controller: 'focaModalMonedaController',
392 size: 'lg' 404 size: 'lg'
393 } 405 }
394 ); 406 );
395 modalInstance.result.then( 407 modalInstance.result.then(
396 function(moneda) { 408 function(moneda) {
397 $scope.seleccionarCotizacion(moneda); 409 $scope.seleccionarCotizacion(moneda);
398 }, function() { 410 }, function() {
399 411
400 } 412 }
401 ); 413 );
402 }; 414 };
403 415
404 $scope.seleccionarCotizacion = function(moneda) { 416 $scope.seleccionarCotizacion = function(moneda) {
405 var modalInstance = $uibModal.open( 417 var modalInstance = $uibModal.open(
406 { 418 {
407 ariaLabelledBy: 'Busqueda de Cotización', 419 ariaLabelledBy: 'Busqueda de Cotización',
408 templateUrl: 'modal-cotizacion.html', 420 templateUrl: 'modal-cotizacion.html',
409 controller: 'focaModalCotizacionController', 421 controller: 'focaModalCotizacionController',
410 size: 'lg', 422 size: 'lg',
411 resolve: {idMoneda: function() {return moneda.ID;}} 423 resolve: {idMoneda: function() {return moneda.ID;}}
412 } 424 }
413 ); 425 );
414 modalInstance.result.then( 426 modalInstance.result.then(
415 function(cotizacion) { 427 function(cotizacion) {
416 $scope.cobranza.moneda = moneda; 428 $scope.cobranza.moneda = moneda;
417 $scope.cobranza.cotizacion = cotizacion; 429 $scope.cobranza.cotizacion = cotizacion;
418 addCabecera('Moneda:', moneda.DETALLE); 430 addCabecera('Moneda:', moneda.DETALLE);
419 addCabecera( 431 addCabecera(
420 'Fecha cotizacion:', 432 'Fecha cotizacion:',
421 $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy') 433 $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy')
422 ); 434 );
423 addCabecera('Cotizacion:', cotizacion.VENDEDOR); 435 addCabecera('Cotizacion:', cotizacion.VENDEDOR);
424 }, function() { 436 }, function() {
425 437
426 } 438 }
427 ); 439 );
428 }; 440 };
429 441
430 $scope.seleccionarCobrador = function() { 442 $scope.seleccionarCobrador = function() {
431 var modalInstance = $uibModal.open( 443 var modalInstance = $uibModal.open(
432 { 444 {
433 ariaLabelledBy: 'Busqueda de Cobradores', 445 ariaLabelledBy: 'Busqueda de Cobradores',
434 templateUrl: 'modal-cobradores.html', 446 templateUrl: 'modal-cobradores.html',
435 controller: 'focaModalCobradoresController', 447 controller: 'focaModalCobradoresController',
436 size: 'lg' 448 size: 'lg'
437 } 449 }
438 ); 450 );
439 modalInstance.result.then( 451 modalInstance.result.then(
440 function(cobrador) { 452 function(cobrador) {
441 addCabecera('Cobrador:', cobrador.nombre); 453 addCabecera('Cobrador:', cobrador.nombre);
442 $scope.cobranza.cobrador = cobrador; 454 $scope.cobranza.cobrador = cobrador;
443 }, function() { 455 }, function() {
444 456
445 } 457 }
446 ); 458 );
447 }; 459 };
448 460
449 $scope.getTotalDeuda = function() { 461 $scope.getTotalDeuda = function() {
450 var total = 0; 462 var total = 0;
451 for (var i = 0; i < $scope.facturaTabla.length; i++) { 463 for (var i = 0; i < $scope.facturaTabla.length; i++) {
452 total += $scope.facturaTabla[i].IPA; 464 total += $scope.facturaTabla[i].IPA;
453 } 465 }
454 return parseFloat(total.toFixed(2)); 466 return parseFloat(total.toFixed(2));
455 }; 467 };
456 468
457 $scope.getTotalCobrado = function() { 469 $scope.getTotalCobrado = function() {
458 var total = 0; 470 var total = 0;
459 for (var i = 0; i < $scope.cobrosTabla.length; i++) { 471 for (var i = 0; i < $scope.cobrosTabla.length; i++) {
460 total += $scope.cobrosTabla[i].importe; 472 total += $scope.cobrosTabla[i].importe;
461 } 473 }
462 return parseFloat(total.toFixed(2)); 474 return parseFloat(total.toFixed(2));
463 }; 475 };
464 476
465 $scope.getSubTotal = function() { 477 $scope.getSubTotal = function() {
466 if($scope.articuloACargar) { 478 if($scope.articuloACargar) {
467 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad; 479 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad;
468 } 480 }
469 }; 481 };
470 //Recibe aviso si el teclado está en uso 482 //Recibe aviso si el teclado está en uso
471 // $rootScope.$on('usarTeclado', function(event, data) { 483 // $rootScope.$on('usarTeclado', function(event, data) {
472 // if(data) { 484 // if(data) {
473 // $scope.mostrarTeclado = true; 485 // $scope.mostrarTeclado = true;
474 // return; 486 // return;
475 // } 487 // }
476 // $scope.mostrarTeclado = false; 488 // $scope.mostrarTeclado = false;
477 // }) 489 // })
478 $scope.selectFocus = function($event) { 490 $scope.selectFocus = function($event) {
479 //Si el teclado esta en uso no selecciona el valor 491 //Si el teclado esta en uso no selecciona el valor
480 // if($scope.mostrarTeclado) { 492 // if($scope.mostrarTeclado) {
481 // return; 493 // return;
482 // } 494 // }
483 $event.target.select(); 495 $event.target.select();
484 }; 496 };
485 497
486 $scope.salir = function() { 498 $scope.salir = function() {
487 $location.path('/'); 499 $location.path('/');
488 }; 500 };
489 501
490 $scope.parsearATexto = function(articulo) { 502 $scope.parsearATexto = function(articulo) {
491 articulo.cantidad = parseFloat(articulo.cantidad); 503 articulo.cantidad = parseFloat(articulo.cantidad);
492 articulo.precio = parseFloat(articulo.precio); 504 articulo.precio = parseFloat(articulo.precio);
493 }; 505 };
494 506
495 $scope.rellenar = function(relleno, longitud) { 507 $scope.rellenar = function(relleno, longitud) {
496 relleno = '' + relleno; 508 relleno = '' + relleno;
497 while (relleno.length < longitud) { 509 while (relleno.length < longitud) {
498 relleno = '0' + relleno; 510 relleno = '0' + relleno;
499 } 511 }
500 512
501 return relleno; 513 return relleno;
502 }; 514 };
503 515
504 $scope.quitarFactura = function(key) { 516 $scope.quitarFactura = function(key) {
505 $scope.facturaTabla.splice(key, 1); 517 $scope.facturaTabla.splice(key, 1);
506 }; 518 };
507 519
508 $scope.quitarCobro = function(key) { 520 $scope.quitarCobro = function(key) {
509 $scope.cobrosTabla.splice(key, 1); 521 $scope.cobrosTabla.splice(key, 1);
510 }; 522 };
511 523
512 function addCabecera(label, valor) { 524 function addCabecera(label, valor) {
513 var propiedad = $filter('filter')($scope.cabecera, {label: label}, true); 525 var propiedad = $filter('filter')($scope.cabecera, {label: label}, true);
514 if(propiedad.length === 1) { 526 if(propiedad.length === 1) {
515 propiedad[0].valor = valor; 527 propiedad[0].valor = valor;
516 } else { 528 } else {
517 $scope.cabecera.push({label: label, valor: valor}); 529 $scope.cabecera.push({label: label, valor: valor});
518 } 530 }
519 } 531 }
520 // TODO: descomentar cuando se use 532 // TODO: descomentar cuando se use
521 /*function removeCabecera(label) { 533 /*function removeCabecera(label) {
522 var propiedad = $filter('filter')($scope.cabecera, {label: label}, true); 534 var propiedad = $filter('filter')($scope.cabecera, {label: label}, true);
523 if(propiedad.length === 1){ 535 if(propiedad.length === 1){
524 $scope.cabecera.splice($scope.cabecera.indexOf(propiedad[0]), 1); 536 $scope.cabecera.splice($scope.cabecera.indexOf(propiedad[0]), 1);
525 } 537 }
526 }*/ 538 }*/
527 function setearMonedaPorDefecto() { 539 function setearMonedaPorDefecto() {
528 var monedaPorDefecto; 540 var monedaPorDefecto;
529 //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]' 541 //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]'
530 focaCrearCobranzaService.getCotizacionByIdMoneda(1).then(function(res) { 542 focaCrearCobranzaService.getCotizacionByIdMoneda(1).then(function(res) {
531 monedaPorDefecto = res.data[0]; 543 monedaPorDefecto = res.data[0];
532 $scope.cobranza.moneda = monedaPorDefecto; 544 $scope.cobranza.moneda = monedaPorDefecto;
533 $scope.cobranza.cotizacion = monedaPorDefecto.cotizaciones[0]; 545 $scope.cobranza.cotizacion = monedaPorDefecto.cotizaciones[0];
534 }); 546 });
535 } 547 }
536 548
537 function obtenerNumeroComprobante() { 549 function obtenerNumeroComprobante() {
538 focaCrearCobranzaService.getNumeroRecibo().then( 550 focaCrearCobranzaService.getNumeroRecibo().then(
539 function(res) { 551 function(res) {
540 $scope.puntoVenta = $scope.rellenar(res.data.sucursal, 4); 552 $scope.puntoVenta = $scope.rellenar(res.data.sucursal, 4);
541 $scope.comprobante = $scope.rellenar(res.data.numeroRecibo, 8); 553 $scope.comprobante = $scope.rellenar(res.data.numeroRecibo, 8);
542 }, 554 },
543 function(err) { 555 function(err) {
544 focaModalService.alert('La terminal no esta configurada correctamente'); 556 focaModalService.alert('La terminal no esta configurada correctamente');
545 console.info(err); 557 console.info(err);
546 } 558 }
547 ); 559 );
548 } 560 }
549 obtenerNumeroComprobante(); 561 obtenerNumeroComprobante();
550 setearMonedaPorDefecto(); 562 setearMonedaPorDefecto();
551 } 563 }
552 ]); 564 ]);
553 565