Commit f56351031d66bca80e605af2211b67e6a92e66ec

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

idCobrador para recibo

Showing 1 changed file with 3 additions and 2 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: Math.abs($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 idCobrador: $scope.cobranza.cobrador.id
178 }, 179 },
179 cuerpo: cuerpos, 180 cuerpo: cuerpos,
180 cheques: cheques, 181 cheques: cheques,
181 acobypag: { 182 acobypag: {
182 CYV: 'V', 183 CYV: 'V',
183 COD: $scope.cobranza.cliente.COD, 184 COD: $scope.cobranza.cliente.COD,
184 FEP: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '), 185 FEP: $scope.fecha.toISOString().slice(0, 19).replace('T', ' '),
185 TIP: '',//?? 186 TIP: '',//??
186 TCO: 'RC', 187 TCO: 'RC',
187 SUC: $scope.puntoVenta, 188 SUC: $scope.puntoVenta,
188 NCO: $scope.comprobante, 189 NCO: $scope.comprobante,
189 IPA: $scope.getTotalCobrado(), 190 IPA: $scope.getTotalCobrado(),
190 SAL: '',//?? 191 SAL: '',//??
191 TCA: 1, 192 TCA: 1,
192 ZONA: 1, 193 ZONA: 1,
193 FPA: 2,//Forma de pago 194 FPA: 2,//Forma de pago
194 REC: 0, 195 REC: 0,
195 REP: 0, 196 REP: 0,
196 FER: null, 197 FER: null,
197 REM: 0, 198 REM: 0,
198 FRE: null,//?? 199 FRE: null,//??
199 PRO: 'N', 200 PRO: 'N',
200 FEV: $scope.fecha.toISOString().slice(0, 19).replace('T', ' ') 201 FEV: $scope.fecha.toISOString().slice(0, 19).replace('T', ' ')
201 }, 202 },
202 datosCobrador: { 203 datosCobrador: {
203 COD: $scope.cobranza.cobrador.id, 204 COD: $scope.cobranza.cobrador.id,
204 PVE: $scope.puntoVenta, 205 PVE: $scope.puntoVenta,
205 NUM: $scope.comprobante, 206 NUM: $scope.comprobante,
206 EST: 'C', 207 EST: 'C',
207 OBS: 'RC: ' + $scope.comprobante + '-' + $scope.fecha.toLocaleDateString(), 208 OBS: 'RC: ' + $scope.comprobante + '-' + $scope.fecha.toLocaleDateString(),
208 DAT1: 'C', 209 DAT1: 'C',
209 CLI: $scope.cobranza.cliente.COD 210 CLI: $scope.cobranza.cliente.COD
210 } 211 }
211 }; 212 };
212 focaCrearCobranzaService.guardarCobranza(cobranza).then(function(result) { 213 focaCrearCobranzaService.guardarCobranza(cobranza).then(function(result) {
213 focaModalService.alert('Cobranza guardada con éxito'); 214 focaModalService.alert('Cobranza guardada con éxito');
214 console.info(result); 215 console.info(result);
215 216
216 console.info({ 217 console.info({
217 numero: result.data.numero, 218 numero: result.data.numero,
218 actividad: 'Cobranza', 219 actividad: 'Cobranza',
219 observaciones: 'Nº: ' + $filter('comprobante')([ 220 observaciones: 'Nº: ' + $filter('comprobante')([
220 result.data.sucursal, 221 result.data.sucursal,
221 result.data.numero 222 result.data.numero
222 ]) + '<br/>' + 223 ]) + '<br/>' +
223 'Vendedor: ' + $scope.cobranza.cobrador.nombre + '<br/>' + 224 'Vendedor: ' + $scope.cobranza.cobrador.nombre + '<br/>' +
224 'Total: ' + $filter('currency')($scope.getTotalCobrado()), 225 'Total: ' + $filter('currency')($scope.getTotalCobrado()),
225 sucursal: result.data.sucursal 226 sucursal: result.data.sucursal
226 }); 227 });
227 228
228 focaSeguimientoService.guardarPosicion( 229 focaSeguimientoService.guardarPosicion(
229 result.data.numero, 230 result.data.numero,
230 'Cobranza', 231 'Cobranza',
231 'Nº: ' + $filter('comprobante')([ 232 'Nº: ' + $filter('comprobante')([
232 result.data.sucursal, 233 result.data.sucursal,
233 result.data.numero 234 result.data.numero
234 ]) + '<br/>' + 235 ]) + '<br/>' +
235 'Vendedor: ' + $scope.cobranza.cobrador.nombre + '<br/>' + 236 'Vendedor: ' + $scope.cobranza.cobrador.nombre + '<br/>' +
236 'Total: ' + $filter('currency')($scope.getTotalCobrado()), 237 'Total: ' + $filter('currency')($scope.getTotalCobrado()),
237 result.data.sucursal 238 result.data.sucursal
238 ); 239 );
239 240
240 $scope.cobranza = { 241 $scope.cobranza = {
241 fecha: new Date() 242 fecha: new Date()
242 }; 243 };
243 setearMonedaPorDefecto(); 244 setearMonedaPorDefecto();
244 obtenerNumeroComprobante(); 245 obtenerNumeroComprobante();
245 246
246 $scope.cabecera = []; 247 $scope.cabecera = [];
247 $scope.fecha = new Date(); 248 $scope.fecha = new Date();
248 $scope.facturaTabla = []; 249 $scope.facturaTabla = [];
249 $scope.cobrosTabla = []; 250 $scope.cobrosTabla = [];
250 }); 251 });
251 }; 252 };
252 253
253 $scope.swichCobro = function() { 254 $scope.swichCobro = function() {
254 $scope.cobroDeuda = false; 255 $scope.cobroDeuda = false;
255 }; 256 };
256 257
257 $scope.swichDeuda = function() { 258 $scope.swichDeuda = function() {
258 $scope.cobroDeuda = true; 259 $scope.cobroDeuda = true;
259 }; 260 };
260 261
261 $scope.seleccionarCobranza = function() { 262 $scope.seleccionarCobranza = function() {
262 263
263 var modalInstance = $uibModal.open( 264 var modalInstance = $uibModal.open(
264 { 265 {
265 ariaLabelledBy: 'Busqueda de Cobranzas', 266 ariaLabelledBy: 'Busqueda de Cobranzas',
266 templateUrl: 'foca-modal-cobranza.html', 267 templateUrl: 'foca-modal-cobranza.html',
267 controller: 'focaModalCobranzaController', 268 controller: 'focaModalCobranzaController',
268 size: 'lg' 269 size: 'lg'
269 } 270 }
270 ); 271 );
271 modalInstance.result.then(function(cobranza) { 272 modalInstance.result.then(function(cobranza) {
272 $scope.editando = true; 273 $scope.editando = true;
273 $scope.cabecera = []; 274 $scope.cabecera = [];
274 $scope.facturaTabla = []; 275 $scope.facturaTabla = [];
275 $scope.cobrosTabla = []; 276 $scope.cobrosTabla = [];
276 277
277 $scope.fecha = new Date(cobranza.fecha); 278 $scope.fecha = new Date(cobranza.fecha);
278 279
279 addCabecera('Cliente:', cobranza.cliente.NOM); 280 addCabecera('Cliente:', cobranza.cliente.NOM);
280 addCabecera('Cobrador:', cobranza.cobrador); 281 addCabecera('Cobrador:', cobranza.cobrador);
281 282
282 $scope.facturaTabla = cobranza.facturas; 283 $scope.facturaTabla = cobranza.facturas;
283 $scope.cobrosTabla = cobranza.cobros; 284 $scope.cobrosTabla = cobranza.cobros;
284 285
285 }); 286 });
286 }; 287 };
287 288
288 $scope.seleccionarCliente = function() { 289 $scope.seleccionarCliente = function() {
289 290
290 var modalInstance = $uibModal.open( 291 var modalInstance = $uibModal.open(
291 { 292 {
292 ariaLabelledBy: 'Busqueda de Cliente', 293 ariaLabelledBy: 'Busqueda de Cliente',
293 templateUrl: 'foca-busqueda-cliente-modal.html', 294 templateUrl: 'foca-busqueda-cliente-modal.html',
294 controller: 'focaBusquedaClienteModalController', 295 controller: 'focaBusquedaClienteModalController',
295 size: 'lg' 296 size: 'lg'
296 } 297 }
297 ); 298 );
298 modalInstance.result.then( 299 modalInstance.result.then(
299 function(cliente) { 300 function(cliente) {
300 addCabecera('Cliente:', cliente.nom); 301 addCabecera('Cliente:', cliente.nom);
301 $scope.cobranza.cliente = { 302 $scope.cobranza.cliente = {
302 COD: cliente.cod, 303 COD: cliente.cod,
303 CUIT: cliente.cuit, 304 CUIT: cliente.cuit,
304 NOM: cliente.nom 305 NOM: cliente.nom
305 }; 306 };
306 }, function() { 307 }, function() {
307 308
308 } 309 }
309 ); 310 );
310 }; 311 };
311 312
312 $scope.seleccionarFactura = function() { 313 $scope.seleccionarFactura = function() {
313 if(!$scope.cobranza.cliente) { 314 if(!$scope.cobranza.cliente) {
314 focaModalService.alert('Seleccione primero un cliente'); 315 focaModalService.alert('Seleccione primero un cliente');
315 return; 316 return;
316 } 317 }
317 var modalInstance = $uibModal.open( 318 var modalInstance = $uibModal.open(
318 { 319 {
319 ariaLabelledBy: 'Busqueda de Facturas', 320 ariaLabelledBy: 'Busqueda de Facturas',
320 templateUrl: 'foca-modal-factura.html', 321 templateUrl: 'foca-modal-factura.html',
321 controller: 'focaModalFacturaController', 322 controller: 'focaModalFacturaController',
322 size: 'lg', 323 size: 'lg',
323 resolve: { 324 resolve: {
324 parametrosFactura: function() { 325 parametrosFactura: function() {
325 return { 326 return {
326 cliente: $scope.cobranza.cliente.COD, 327 cliente: $scope.cobranza.cliente.COD,
327 simbolo: $scope.cobranza.moneda.SIMBOLO, 328 simbolo: $scope.cobranza.moneda.SIMBOLO,
328 cotizacion: $scope.cobranza.cotizacion.VENDEDOR, 329 cotizacion: $scope.cobranza.cotizacion.VENDEDOR,
329 moneda: $scope.cobranza.moneda.ID 330 moneda: $scope.cobranza.moneda.ID
330 }; 331 };
331 } 332 }
332 } 333 }
333 } 334 }
334 ); 335 );
335 modalInstance.result.then( 336 modalInstance.result.then(
336 function(facturas) { 337 function(facturas) {
337 $scope.facturaTabla = $scope.facturaTabla.concat(facturas); 338 $scope.facturaTabla = $scope.facturaTabla.concat(facturas);
338 }, function() { 339 }, function() {
339 340
340 } 341 }
341 ); 342 );
342 }; 343 };
343 344
344 $scope.seleccionarCheque = function() { 345 $scope.seleccionarCheque = function() {
345 var modalInstance = $uibModal.open( 346 var modalInstance = $uibModal.open(
346 { 347 {
347 ariaLabelledBy: 'Carga de cheques', 348 ariaLabelledBy: 'Carga de cheques',
348 templateUrl: 'modal-cheque.html', 349 templateUrl: 'modal-cheque.html',
349 controller: 'focaModalChequeController', 350 controller: 'focaModalChequeController',
350 size: 'lg' 351 size: 'lg'
351 } 352 }
352 ); 353 );
353 modalInstance.result.then( 354 modalInstance.result.then(
354 function(cheque) { 355 function(cheque) {
355 var cobro = { 356 var cobro = {
356 tipo: 'Ch' + '(' + cheque.numero + ')' + ' ' + cheque.banco.desbco, 357 tipo: 'Ch' + '(' + cheque.numero + ')' + ' ' + cheque.banco.desbco,
357 numero: cheque.numero, 358 numero: cheque.numero,
358 banco: cheque.banco, 359 banco: cheque.banco,
359 fecha: cheque.fechaEmision.toLocaleDateString() + '-' + 360 fecha: cheque.fechaEmision.toLocaleDateString() + '-' +
360 cheque.fechaPresentacion.toLocaleDateString(), 361 cheque.fechaPresentacion.toLocaleDateString(),
361 fechaPresentacion: cheque.fechaPresentacion, 362 fechaPresentacion: cheque.fechaPresentacion,
362 fechaEmision: cheque.fechaEmision, 363 fechaEmision: cheque.fechaEmision,
363 importe: cheque.importe * $scope.cobranza.cotizacion.VENDEDOR, 364 importe: cheque.importe * $scope.cobranza.cotizacion.VENDEDOR,
364 localidad: cheque.localidad, 365 localidad: cheque.localidad,
365 librador: cheque.librador, 366 librador: cheque.librador,
366 provincia: cheque.provincia, 367 provincia: cheque.provincia,
367 observaciones: cheque.observaciones 368 observaciones: cheque.observaciones
368 }; 369 };
369 $scope.cobrosTabla.push(cobro); 370 $scope.cobrosTabla.push(cobro);
370 }, function() { 371 }, function() {
371 372
372 } 373 }
373 ); 374 );
374 }; 375 };
375 376
376 $scope.seleccionarEfectivo = function() { 377 $scope.seleccionarEfectivo = function() {
377 var modalInstance = $uibModal.open( 378 var modalInstance = $uibModal.open(
378 { 379 {
379 ariaLabelledBy: 'Carga de cheques', 380 ariaLabelledBy: 'Carga de cheques',
380 templateUrl: 'modal-efectivo.html', 381 templateUrl: 'modal-efectivo.html',
381 controller: 'focaModalEfectivoController', 382 controller: 'focaModalEfectivoController',
382 size: 'sm' 383 size: 'sm'
383 } 384 }
384 ); 385 );
385 modalInstance.result.then( 386 modalInstance.result.then(
386 function(efectivo) { 387 function(efectivo) {
387 var cobro = { 388 var cobro = {
388 tipo: 'Efectivo', 389 tipo: 'Efectivo',
389 fecha: new Date(), 390 fecha: new Date(),
390 importe: efectivo * $scope.cobranza.cotizacion.VENDEDOR 391 importe: efectivo * $scope.cobranza.cotizacion.VENDEDOR
391 }; 392 };
392 $scope.cobrosTabla.push(cobro); 393 $scope.cobrosTabla.push(cobro);
393 }, function() { 394 }, function() {
394 395
395 } 396 }
396 ); 397 );
397 }; 398 };
398 399
399 $scope.seleccionarMoneda = function() { 400 $scope.seleccionarMoneda = function() {
400 var modalInstance = $uibModal.open( 401 var modalInstance = $uibModal.open(
401 { 402 {
402 ariaLabelledBy: 'Busqueda de Moneda', 403 ariaLabelledBy: 'Busqueda de Moneda',
403 templateUrl: 'modal-moneda.html', 404 templateUrl: 'modal-moneda.html',
404 controller: 'focaModalMonedaController', 405 controller: 'focaModalMonedaController',
405 size: 'lg' 406 size: 'lg'
406 } 407 }
407 ); 408 );
408 modalInstance.result.then( 409 modalInstance.result.then(
409 function(moneda) { 410 function(moneda) {
410 $scope.seleccionarCotizacion(moneda); 411 $scope.seleccionarCotizacion(moneda);
411 }, function() { 412 }, function() {
412 413
413 } 414 }
414 ); 415 );
415 }; 416 };
416 417
417 $scope.seleccionarCotizacion = function(moneda) { 418 $scope.seleccionarCotizacion = function(moneda) {
418 var modalInstance = $uibModal.open( 419 var modalInstance = $uibModal.open(
419 { 420 {
420 ariaLabelledBy: 'Busqueda de Cotización', 421 ariaLabelledBy: 'Busqueda de Cotización',
421 templateUrl: 'modal-cotizacion.html', 422 templateUrl: 'modal-cotizacion.html',
422 controller: 'focaModalCotizacionController', 423 controller: 'focaModalCotizacionController',
423 size: 'lg', 424 size: 'lg',
424 resolve: {idMoneda: function() {return moneda.ID;}} 425 resolve: {idMoneda: function() {return moneda.ID;}}
425 } 426 }
426 ); 427 );
427 modalInstance.result.then( 428 modalInstance.result.then(
428 function(cotizacion) { 429 function(cotizacion) {
429 $scope.cobranza.moneda = moneda; 430 $scope.cobranza.moneda = moneda;
430 $scope.cobranza.cotizacion = cotizacion; 431 $scope.cobranza.cotizacion = cotizacion;
431 addCabecera('Moneda:', moneda.DETALLE); 432 addCabecera('Moneda:', moneda.DETALLE);
432 addCabecera( 433 addCabecera(
433 'Fecha cotizacion:', 434 'Fecha cotizacion:',
434 $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy') 435 $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy')
435 ); 436 );
436 addCabecera('Cotizacion:', cotizacion.VENDEDOR); 437 addCabecera('Cotizacion:', cotizacion.VENDEDOR);
437 }, function() { 438 }, function() {
438 439
439 } 440 }
440 ); 441 );
441 }; 442 };
442 443
443 $scope.seleccionarCobrador = function() { 444 $scope.seleccionarCobrador = function() {
444 var modalInstance = $uibModal.open( 445 var modalInstance = $uibModal.open(
445 { 446 {
446 ariaLabelledBy: 'Busqueda de Cobradores', 447 ariaLabelledBy: 'Busqueda de Cobradores',
447 templateUrl: 'modal-cobradores.html', 448 templateUrl: 'modal-cobradores.html',
448 controller: 'focaModalCobradoresController', 449 controller: 'focaModalCobradoresController',
449 size: 'lg' 450 size: 'lg'
450 } 451 }
451 ); 452 );
452 modalInstance.result.then( 453 modalInstance.result.then(
453 function(cobrador) { 454 function(cobrador) {
454 addCabecera('Cobrador:', cobrador.nombre); 455 addCabecera('Cobrador:', cobrador.nombre);
455 $scope.cobranza.cobrador = cobrador; 456 $scope.cobranza.cobrador = cobrador;
456 }, function() { 457 }, function() {
457 458
458 } 459 }
459 ); 460 );
460 }; 461 };
461 462
462 $scope.getTotalDeuda = function() { 463 $scope.getTotalDeuda = function() {
463 var total = 0; 464 var total = 0;
464 for (var i = 0; i < $scope.facturaTabla.length; i++) { 465 for (var i = 0; i < $scope.facturaTabla.length; i++) {
465 total += $scope.facturaTabla[i].IPA; 466 total += $scope.facturaTabla[i].IPA;
466 } 467 }
467 return parseFloat(total.toFixed(2)); 468 return parseFloat(total.toFixed(2));
468 }; 469 };
469 470
470 $scope.getTotalCobrado = function() { 471 $scope.getTotalCobrado = function() {
471 var total = 0; 472 var total = 0;
472 for (var i = 0; i < $scope.cobrosTabla.length; i++) { 473 for (var i = 0; i < $scope.cobrosTabla.length; i++) {
473 total += $scope.cobrosTabla[i].importe; 474 total += $scope.cobrosTabla[i].importe;
474 } 475 }
475 return parseFloat(total.toFixed(2)); 476 return parseFloat(total.toFixed(2));
476 }; 477 };
477 478
478 $scope.getSubTotal = function() { 479 $scope.getSubTotal = function() {
479 if($scope.articuloACargar) { 480 if($scope.articuloACargar) {
480 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad; 481 return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad;
481 } 482 }
482 }; 483 };
483 //Recibe aviso si el teclado está en uso 484 //Recibe aviso si el teclado está en uso
484 // $rootScope.$on('usarTeclado', function(event, data) { 485 // $rootScope.$on('usarTeclado', function(event, data) {
485 // if(data) { 486 // if(data) {
486 // $scope.mostrarTeclado = true; 487 // $scope.mostrarTeclado = true;
487 // return; 488 // return;
488 // } 489 // }
489 // $scope.mostrarTeclado = false; 490 // $scope.mostrarTeclado = false;
490 // }) 491 // })
491 $scope.selectFocus = function($event) { 492 $scope.selectFocus = function($event) {
492 //Si el teclado esta en uso no selecciona el valor 493 //Si el teclado esta en uso no selecciona el valor
493 // if($scope.mostrarTeclado) { 494 // if($scope.mostrarTeclado) {
494 // return; 495 // return;
495 // } 496 // }
496 $event.target.select(); 497 $event.target.select();
497 }; 498 };
498 499
499 $scope.salir = function() { 500 $scope.salir = function() {
500 $location.path('/'); 501 $location.path('/');
501 }; 502 };
502 503
503 $scope.parsearATexto = function(articulo) { 504 $scope.parsearATexto = function(articulo) {
504 articulo.cantidad = parseFloat(articulo.cantidad); 505 articulo.cantidad = parseFloat(articulo.cantidad);
505 articulo.precio = parseFloat(articulo.precio); 506 articulo.precio = parseFloat(articulo.precio);
506 }; 507 };
507 508
508 $scope.rellenar = function(relleno, longitud) { 509 $scope.rellenar = function(relleno, longitud) {
509 relleno = '' + relleno; 510 relleno = '' + relleno;
510 while (relleno.length < longitud) { 511 while (relleno.length < longitud) {
511 relleno = '0' + relleno; 512 relleno = '0' + relleno;
512 } 513 }
513 514
514 return relleno; 515 return relleno;
515 }; 516 };
516 517
517 $scope.quitarFactura = function(key) { 518 $scope.quitarFactura = function(key) {
518 $scope.facturaTabla.splice(key, 1); 519 $scope.facturaTabla.splice(key, 1);
519 }; 520 };
520 521
521 $scope.quitarCobro = function(key) { 522 $scope.quitarCobro = function(key) {
522 $scope.cobrosTabla.splice(key, 1); 523 $scope.cobrosTabla.splice(key, 1);
523 }; 524 };
524 525
525 function addCabecera(label, valor) { 526 function addCabecera(label, valor) {
526 var propiedad = $filter('filter')($scope.cabecera, {label: label}, true); 527 var propiedad = $filter('filter')($scope.cabecera, {label: label}, true);
527 if(propiedad.length === 1) { 528 if(propiedad.length === 1) {
528 propiedad[0].valor = valor; 529 propiedad[0].valor = valor;
529 } else { 530 } else {
530 $scope.cabecera.push({label: label, valor: valor}); 531 $scope.cabecera.push({label: label, valor: valor});
531 } 532 }
532 } 533 }
533 // TODO: descomentar cuando se use 534 // TODO: descomentar cuando se use
534 /*function removeCabecera(label) { 535 /*function removeCabecera(label) {
535 var propiedad = $filter('filter')($scope.cabecera, {label: label}, true); 536 var propiedad = $filter('filter')($scope.cabecera, {label: label}, true);
536 if(propiedad.length === 1){ 537 if(propiedad.length === 1){
537 $scope.cabecera.splice($scope.cabecera.indexOf(propiedad[0]), 1); 538 $scope.cabecera.splice($scope.cabecera.indexOf(propiedad[0]), 1);
538 } 539 }
539 }*/ 540 }*/
540 function setearMonedaPorDefecto() { 541 function setearMonedaPorDefecto() {
541 var monedaPorDefecto; 542 var monedaPorDefecto;
542 //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]' 543 //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]'
543 focaCrearCobranzaService.getCotizacionByIdMoneda(1).then(function(res) { 544 focaCrearCobranzaService.getCotizacionByIdMoneda(1).then(function(res) {
544 monedaPorDefecto = res.data[0]; 545 monedaPorDefecto = res.data[0];
545 $scope.cobranza.moneda = monedaPorDefecto; 546 $scope.cobranza.moneda = monedaPorDefecto;
546 $scope.cobranza.cotizacion = monedaPorDefecto.cotizaciones[0]; 547 $scope.cobranza.cotizacion = monedaPorDefecto.cotizaciones[0];
547 }); 548 });
548 } 549 }
549 550
550 function obtenerNumeroComprobante() { 551 function obtenerNumeroComprobante() {
551 focaCrearCobranzaService.getNumeroRecibo().then( 552 focaCrearCobranzaService.getNumeroRecibo().then(
552 function(res) { 553 function(res) {
553 $scope.puntoVenta = $scope.rellenar(res.data.sucursal, 4); 554 $scope.puntoVenta = $scope.rellenar(res.data.sucursal, 4);
554 $scope.comprobante = $scope.rellenar(res.data.numeroRecibo, 8); 555 $scope.comprobante = $scope.rellenar(res.data.numeroRecibo, 8);
555 }, 556 },
556 function(err) { 557 function(err) {
557 focaModalService.alert('La terminal no esta configurada correctamente'); 558 focaModalService.alert('La terminal no esta configurada correctamente');
558 console.info(err); 559 console.info(err);
559 } 560 }
560 ); 561 );
561 } 562 }
562 obtenerNumeroComprobante(); 563 obtenerNumeroComprobante();
563 setearMonedaPorDefecto(); 564 setearMonedaPorDefecto();
564 } 565 }
565 ]); 566 ]);
566 567