comprobantes.component.ts
3.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import { Component, OnInit} from '@angular/core';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { BusquedaComprobanteComponent } from '../busqueda-comprobante/busqueda-comprobante.component';
import { ComprobanteService } from './comprobantes.service';
import { Router } from '@angular/router';
import { ModalService } from '../modal/modal.service';
@Component({
templateUrl: './comprobantes.component.html',
styleUrls: ['./comprobantes.component.scss'],
providers: [ ComprobanteService ]
})
export class ComprobantesComponent implements OnInit {
constructor(
private modalService: NgbModal,
public comprobanteService: ComprobanteService,
public router: Router,
private modal: ModalService) { }
ngOnInit() { }
filter = '';
estadoArticulos : string;
tempRecibido = [];
cabecera = {};
cuerpo = [];
articulosFiltro = [];
saveLoading = false;
showCabecera = true;
fecha = new Date();
getPaginaFiltro() {
this.articulosFiltro = this.cuerpo.filter((articulo) => {
var tio = articulo.TIO.trim().toLocaleUpperCase().includes(this.filter.toLocaleUpperCase());
var lio = articulo.LI0.trim().toLocaleUpperCase().includes(this.filter.toLocaleUpperCase());
var codigoBarras = articulo.codigoBarras == this.filter;
articulo.cantidadRecibida != articulo.CAN && !articulo.estado ? articulo.estado = 'modificado' :
false;
var estado = articulo.estado == this.estadoArticulos;
return (tio || lio || codigoBarras) && estado;
});
return this.articulosFiltro;
}
getCantidadArticulosByEstado(estado: String) {
return this.cuerpo.filter((articulo) => {
return articulo.estado == estado;
}).length;
}
guardarComprobante() {
if (this.getCantidadArticulosByEstado('pendiente')) {
this.modal.alert('No deben quedar articulos pendientes');
return;
}
if (!this.cuerpo.length) {
this.modal.alert('Debe seleccionar un comprobante');
return;
}
this.saveLoading = true;
this.comprobanteService
.saveComprobantes({cabecera: this.cabecera, cuerpo: this.cuerpo})
.subscribe(data => {
this.modal.alert('Comprobante guardado con éxito').result.then( () => {
this.saveLoading = false;
this.router.navigateByUrl('/home');
});
}, err => {
if (err.status == 510) {
this.modal.alert('Ya existe el comprobante').result.then(() => {
this.router.navigateByUrl('/home');
});
} else {
this.modal.alert('Algo salió mal...');
}
this.saveLoading = false;
console.log(err);
});
}
busquedaComprobantes() {
this.modalService.open(BusquedaComprobanteComponent).result.then(comprobante => {
this.cabecera = comprobante.cabecera;
comprobante.cuerpo.forEach(articulo => {
articulo.cantidadRecibida = articulo.CAN;
});
this.cuerpo = comprobante.cuerpo;
this.getPaginaFiltro();
}, (reason) => { });
}
inputArticulo(articulo) {
if (articulo.tempRecibido > 999999) {
this.modal.alert('Cantidad máxima superada');
return;
}
articulo.input = false;
articulo.cantidadRecibida = articulo.tempRecibido || articulo.CAN;
}
}