Commit 6a2e1afce424f5997454f3578da1d0f4a4b2f84a

Authored by Eric Fernandez
1 parent 9052ac9459
Exists in master

ya no es necesario obtener el usuario, sino que envío el id del cobrador

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