Commit 7c5cecaf75c155ff27031f2175003acfbc7faa4c

Authored by Jose Pinto
1 parent a18e70eeb5
Exists in master and in 1 other branch develop

ok mail cliente

Showing 1 changed file with 2 additions and 3 deletions   Show diff stats
src/js/controller.js
1 angular.module('focaModalFactura') 1 angular.module('focaModalFactura')
2 .controller('focaModalFacturaController', 2 .controller('focaModalFacturaController',
3 [ 3 [
4 '$filter', 4 '$filter',
5 '$scope', 5 '$scope',
6 '$uibModalInstance', 6 '$uibModalInstance',
7 'focaModalFacturaService', 7 'focaModalFacturaService',
8 'parametrosFactura', 8 'parametrosFactura',
9 '$uibModal', 9 '$uibModal',
10 'focaModalService', 10 'focaModalService',
11 function($filter, $scope, $uibModalInstance, 11 function($filter, $scope, $uibModalInstance,
12 focaModalFacturaService, parametrosFactura, $uibModal, focaModalService 12 focaModalFacturaService, parametrosFactura, $uibModal, focaModalService
13 ) { 13 ) {
14 var fecha = new Date(); 14 var fecha = new Date();
15 $scope.fechaHasta = new Date(); 15 $scope.fechaHasta = new Date();
16 $scope.fechaDesde = new Date(fecha.setMonth(fecha.getMonth() - 1)); 16 $scope.fechaDesde = new Date(fecha.setMonth(fecha.getMonth() - 1));
17 $scope.filters = ''; 17 $scope.filters = '';
18 $scope.facturas = []; 18 $scope.facturas = [];
19 $scope.primerBusqueda = false; 19 $scope.primerBusqueda = false;
20 $scope.searchLoading = false; 20 $scope.searchLoading = false;
21 $scope.parametrosFactura = parametrosFactura; 21 $scope.parametrosFactura = parametrosFactura;
22 // pagination 22 // pagination
23 $scope.numPerPage = 10; 23 $scope.numPerPage = 10;
24 $scope.currentPage = 1; 24 $scope.currentPage = 1;
25 $scope.filteredFacturas = []; 25 $scope.filteredFacturas = [];
26 $scope.currentPageFacturas = []; 26 $scope.currentPageFacturas = [];
27 $scope.selectedFactura = -1; 27 $scope.selectedFactura = -1;
28 28
29 //METODOS 29 //METODOS
30 $scope.busquedaPress = function(key) { 30 $scope.busquedaPress = function(key) {
31 if (key === 13) { 31 if (key === 13) {
32 if(!$scope.fechaDesde) { 32 if(!$scope.fechaDesde) {
33 focaModalService.alert('INGRESE FECHA DESDE'); 33 focaModalService.alert('INGRESE FECHA DESDE');
34 return; 34 return;
35 } 35 }
36 if(!$scope.fechaHasta) { 36 if(!$scope.fechaHasta) {
37 focaModalService.alert('INGRESE FECHA HASTA'); 37 focaModalService.alert('INGRESE FECHA HASTA');
38 return; 38 return;
39 } 39 }
40 if($scope.fechaDesde > $scope.fechaHasta) { 40 if($scope.fechaDesde > $scope.fechaHasta) {
41 focaModalService 41 focaModalService
42 .alert('La fecha desde no puede ser mayor a la fecha hasta'); 42 .alert('La fecha desde no puede ser mayor a la fecha hasta');
43 return; 43 return;
44 } 44 }
45 $scope.searchLoading = true; 45 $scope.searchLoading = true;
46 //TODO hacer filtro de fecha 46 //TODO hacer filtro de fecha
47 focaModalFacturaService 47 focaModalFacturaService
48 .getFacturasByIdCliente( 48 .getFacturasByIdCliente(
49 parametrosFactura.cliente.COD, 49 parametrosFactura.cliente.COD,
50 parametrosFactura.moneda, 50 parametrosFactura.moneda,
51 '2001-01-01', 51 '2001-01-01',
52 '2100-12-31' 52 '2100-12-31'
53 ) 53 )
54 .then(llenarDatos); 54 .then(llenarDatos);
55 } 55 }
56 }; 56 };
57 57
58 $scope.aceptar = function() { 58 $scope.aceptar = function() {
59 var result = $scope.facturas.filter(function(a) {return a.checked === true;}); 59 var result = $scope.facturas.filter(function(a) {return a.checked === true;});
60 $uibModalInstance.close(result); 60 $uibModalInstance.close(result);
61 }; 61 };
62 62
63 $scope.tieneAlMenosUno = function() { 63 $scope.tieneAlMenosUno = function() {
64 var result = $scope.facturas.filter(function(a) {return a.checked === true;}); 64 var result = $scope.facturas.filter(function(a) {return a.checked === true;});
65 return !result.length; 65 return !result.length;
66 }; 66 };
67 67
68 function llenarDatos(res) { 68 function llenarDatos(res) {
69 $scope.facturas = []; 69 $scope.facturas = [];
70 $scope.filteredFacturas = []; 70 $scope.filteredFacturas = [];
71 $scope.currentPageFacturas = []; 71 $scope.currentPageFacturas = [];
72 $scope.selectedFactura = -1; 72 $scope.selectedFactura = -1;
73 $scope.searchLoading = false; 73 $scope.searchLoading = false;
74 $scope.primerBusqueda = true; 74 $scope.primerBusqueda = true;
75 $scope.facturas = calcularSaldos(res.data); 75 $scope.facturas = calcularSaldos(res.data);
76 $scope.search(); 76 $scope.search();
77 primera(); 77 primera();
78 } 78 }
79 79
80 $scope.verFactura = function(factura) { 80 $scope.verFactura = function(factura) {
81 var modalInstance = $uibModal.open( 81 var modalInstance = $uibModal.open(
82 { 82 {
83 ariaLabelledBy: 'Detalle de factura', 83 ariaLabelledBy: 'Detalle de factura',
84 templateUrl: 'foca-modal-factura-detalle.html', 84 templateUrl: 'foca-modal-factura-detalle.html',
85 controller: 'focaModalFacturaDetalleController', 85 controller: 'focaModalFacturaDetalleController',
86 size: 'md', 86 size: 'md',
87 resolve: { 87 resolve: {
88 factura: factura 88 factura: factura
89 } 89 }
90 } 90 }
91 ); 91 );
92 modalInstance.result.then(); 92 modalInstance.result.then();
93 }; 93 };
94 94
95 $scope.search = function() { 95 $scope.search = function() {
96 if($scope.facturas.length > 0) { 96 if($scope.facturas.length > 0) {
97 $scope.filteredFacturas = $filter('filter')( 97 $scope.filteredFacturas = $filter('filter')(
98 $scope.facturas, 98 $scope.facturas,
99 {$: $scope.filters} 99 {$: $scope.filters}
100 ); 100 );
101 101
102 $scope.lastPage = Math.ceil( 102 $scope.lastPage = Math.ceil(
103 $scope.filteredFacturas.length / $scope.numPerPage 103 $scope.filteredFacturas.length / $scope.numPerPage
104 ); 104 );
105 105
106 $scope.resetPage(); 106 $scope.resetPage();
107 } 107 }
108 }; 108 };
109 109
110 $scope.resetPage = function() { 110 $scope.resetPage = function() {
111 $scope.currentPage = 1; 111 $scope.currentPage = 1;
112 $scope.selectPage(1); 112 $scope.selectPage(1);
113 }; 113 };
114 114
115 $scope.selectPage = function(page) { 115 $scope.selectPage = function(page) {
116 var start = (page - 1) * $scope.numPerPage; 116 var start = (page - 1) * $scope.numPerPage;
117 var end = start + $scope.numPerPage; 117 var end = start + $scope.numPerPage;
118 $scope.paginas = []; 118 $scope.paginas = [];
119 $scope.paginas = calcularPages(page); 119 $scope.paginas = calcularPages(page);
120 $scope.currentPageFacturas = $scope.filteredFacturas.slice(start, end); 120 $scope.currentPageFacturas = $scope.filteredFacturas.slice(start, end);
121 $scope.currentPage = page; 121 $scope.currentPage = page;
122 }; 122 };
123 123
124 $scope.cancel = function() { 124 $scope.cancel = function() {
125 $uibModalInstance.dismiss('cancel'); 125 $uibModalInstance.dismiss('cancel');
126 }; 126 };
127 127
128 $scope.busquedaDown = function(key) { 128 $scope.busquedaDown = function(key) {
129 if (key === 40) { 129 if (key === 40) {
130 primera(key); 130 primera(key);
131 } 131 }
132 }; 132 };
133 133
134 $scope.itemFactura = function(key) { 134 $scope.itemFactura = function(key) {
135 if (key === 38) { 135 if (key === 38) {
136 anterior(key); 136 anterior(key);
137 } 137 }
138 138
139 if (key === 40) { 139 if (key === 40) {
140 siguiente(key); 140 siguiente(key);
141 } 141 }
142 142
143 if (key === 37) { 143 if (key === 37) {
144 retrocederPagina(); 144 retrocederPagina();
145 } 145 }
146 146
147 if (key === 39) { 147 if (key === 39) {
148 avanzarPagina(); 148 avanzarPagina();
149 } 149 }
150 }; 150 };
151 151
152 $scope.enviarMail = function(factura) { 152 $scope.enviarMail = function(factura) {
153 console.log(factura);
153 focaModalService.mail( 154 focaModalService.mail(
154 { 155 {
155 titulo: 'Enviar comprobante', 156 titulo: 'Enviar comprobante',
156 //TODO: CONFIGURAR DESCARGA
157 descarga: { 157 descarga: {
158 nombre: factura.numeroFactura + '.pdf', 158 nombre: factura.numeroFactura + '.pdf',
159 url: '/mail/comprobante/descargar', 159 url: '/mail/comprobante/descargar',
160 }, 160 },
161 envio: { 161 envio: {
162 //TODO: TOMAR EMAIL DEL CLIENTE 162 mailCliente: factura.cliente.MAIL,
163 mailCliente: 'jpinto@focasoftware.com',
164 url: '/mail/comprobante' 163 url: '/mail/comprobante'
165 }, 164 },
166 options: { 165 options: {
167 factura: factura 166 factura: factura
168 } 167 }
169 } 168 }
170 ); 169 );
171 }; 170 };
172 171
173 function calcularPages(paginaActual) { 172 function calcularPages(paginaActual) {
174 var paginas = []; 173 var paginas = [];
175 paginas.push(paginaActual); 174 paginas.push(paginaActual);
176 175
177 if (paginaActual - 1 > 1) { 176 if (paginaActual - 1 > 1) {
178 177
179 paginas.unshift(paginaActual - 1); 178 paginas.unshift(paginaActual - 1);
180 if (paginaActual - 2 > 1) { 179 if (paginaActual - 2 > 1) {
181 paginas.unshift(paginaActual - 2); 180 paginas.unshift(paginaActual - 2);
182 } 181 }
183 } 182 }
184 183
185 if (paginaActual + 1 < $scope.lastPage) { 184 if (paginaActual + 1 < $scope.lastPage) {
186 paginas.push(paginaActual + 1); 185 paginas.push(paginaActual + 1);
187 if (paginaActual + 2 < $scope.lastPage) { 186 if (paginaActual + 2 < $scope.lastPage) {
188 paginas.push(paginaActual + 2); 187 paginas.push(paginaActual + 2);
189 } 188 }
190 } 189 }
191 190
192 if (paginaActual !== 1) { 191 if (paginaActual !== 1) {
193 paginas.unshift(1); 192 paginas.unshift(1);
194 } 193 }
195 194
196 if (paginaActual !== $scope.lastPage) { 195 if (paginaActual !== $scope.lastPage) {
197 paginas.push($scope.lastPage); 196 paginas.push($scope.lastPage);
198 } 197 }
199 198
200 return paginas; 199 return paginas;
201 } 200 }
202 201
203 function primera() { 202 function primera() {
204 $scope.selectedFactura = 0; 203 $scope.selectedFactura = 0;
205 } 204 }
206 205
207 function anterior() { 206 function anterior() {
208 if ($scope.selectedFactura === 0 && $scope.currentPage > 1) { 207 if ($scope.selectedFactura === 0 && $scope.currentPage > 1) {
209 retrocederPagina(); 208 retrocederPagina();
210 } else { 209 } else {
211 $scope.selectedFactura--; 210 $scope.selectedFactura--;
212 } 211 }
213 } 212 }
214 213
215 function siguiente() { 214 function siguiente() {
216 if ($scope.selectedFactura < $scope.currentPageFacturas.length - 1 ) { 215 if ($scope.selectedFactura < $scope.currentPageFacturas.length - 1 ) {
217 $scope.selectedFactura++; 216 $scope.selectedFactura++;
218 } else { 217 } else {
219 avanzarPagina(); 218 avanzarPagina();
220 } 219 }
221 } 220 }
222 221
223 function retrocederPagina() { 222 function retrocederPagina() {
224 if ($scope.currentPage > 1) { 223 if ($scope.currentPage > 1) {
225 $scope.selectPage($scope.currentPage - 1); 224 $scope.selectPage($scope.currentPage - 1);
226 $scope.selectedFactura = $scope.numPerPage - 1; 225 $scope.selectedFactura = $scope.numPerPage - 1;
227 } 226 }
228 } 227 }
229 228
230 function avanzarPagina() { 229 function avanzarPagina() {
231 if ($scope.currentPage < $scope.lastPage) { 230 if ($scope.currentPage < $scope.lastPage) {
232 $scope.selectPage($scope.currentPage + 1); 231 $scope.selectPage($scope.currentPage + 1);
233 $scope.selectedFactura = 0; 232 $scope.selectedFactura = 0;
234 } 233 }
235 } 234 }
236 235
237 function calcularSaldos(facturas) { 236 function calcularSaldos(facturas) {
238 var saldo = 0; 237 var saldo = 0;
239 238
240 facturas.forEach(function(factura) { 239 facturas.forEach(function(factura) {
241 if (factura.TCO === 'CI' || 240 if (factura.TCO === 'CI' ||
242 factura.TCO === 'FT' || 241 factura.TCO === 'FT' ||
243 factura.TCO === 'ND'){ 242 factura.TCO === 'ND'){
244 factura.IPA = factura.IPA * -1; 243 factura.IPA = factura.IPA * -1;
245 }else{ 244 }else{
246 factura.IPA = factura.IPA; 245 factura.IPA = factura.IPA;
247 } 246 }
248 saldo += factura.IPA; 247 saldo += factura.IPA;
249 factura.saldo = saldo; 248 factura.saldo = saldo;
250 factura.saldo_show = Math.abs(saldo); 249 factura.saldo_show = Math.abs(saldo);
251 factura.IPA_SHOW = Math.abs(factura.IPA); 250 factura.IPA_SHOW = Math.abs(factura.IPA);
252 }); 251 });
253 252
254 return facturas; 253 return facturas;
255 } 254 }
256 255
257 $scope.busquedaPress(13); 256 $scope.busquedaPress(13);
258 } 257 }
259 ] 258 ]
260 ); 259 );