Commit 226ebb55cc995aa6f56b4bac0bf1daca8f894cbe

Authored by Jose Pinto
Exists in master

Merge branch 'master' into 'master'

timeout

See merge request !4
src/js/controller.js
1 angular.module('focaModalDomicilio') 1 angular.module('focaModalDomicilio')
2 .controller('focaModalDomicilioController', 2 .controller('focaModalDomicilioController',
3 [ 3 [
4 '$timeout', 4 '$timeout',
5 '$filter', 5 '$filter',
6 '$scope', 6 '$scope',
7 '$uibModalInstance', 7 '$uibModalInstance',
8 'idCliente', 8 'idCliente',
9 'esNuevo', 9 'esNuevo',
10 'focaModalDomicilioService', 10 'focaModalDomicilioService',
11 '$uibModal', 11 '$uibModal',
12 function($filter, $scope, $uibModalInstance, idCliente, esNuevo, 12 function($timeout, $filter, $scope, $uibModalInstance, idCliente, esNuevo,
13 focaModalDomicilioService, $uibModal) { 13 focaModalDomicilioService, $uibModal) {
14 14
15 $scope.buscar = function() { 15 $scope.buscar = function() {
16 focaModalDomicilioService 16 focaModalDomicilioService
17 .getDomiciliosEntregaByIdCliente($scope.idCliente) 17 .getDomiciliosEntregaByIdCliente($scope.idCliente)
18 .then(function(res) { 18 .then(function(res) {
19 $scope.domicilios = res.data; 19 $scope.domicilios = res.data;
20 $scope.search(); 20 $scope.search();
21 $scope.primerBusqueda = true; 21 $scope.primerBusqueda = true;
22 } 22 }
23 ); 23 );
24 }; 24 };
25 $scope.filters = ''; 25 $scope.filters = '';
26 $scope.idCliente = idCliente; 26 $scope.idCliente = idCliente;
27 $scope.buscar(); 27 $scope.buscar();
28 $scope.ingreso = esNuevo; 28 $scope.ingreso = esNuevo;
29 $scope.primerBusqueda = false; 29 $scope.primerBusqueda = false;
30 $scope.contactos = [{}]; 30 $scope.contactos = [{}];
31 // pagination 31 // pagination
32 $scope.numPerPage = 5; 32 $scope.numPerPage = 5;
33 $scope.currentPage = 1; 33 $scope.currentPage = 1;
34 $scope.filteredDomicilios = []; 34 $scope.filteredDomicilios = [];
35 $scope.currentPageDomicilios = []; 35 $scope.currentPageDomicilios = [];
36 $scope.selectedDomicilio = -1; 36 $scope.selectedDomicilio = -1;
37 37
38 //METODOS 38 //METODOS
39 $scope.search = function(pressed) { 39 $scope.search = function(pressed) {
40 $scope.filteredDomicilios = $filter('filter')( 40 $scope.filteredDomicilios = $filter('filter')(
41 $scope.domicilios, 41 $scope.domicilios,
42 {$: $scope.filters} 42 {$: $scope.filters}
43 ); 43 );
44 44
45 if(pressed) { 45 if(pressed) {
46 if($scope.filteredDomicilios.length === 0) { 46 if($scope.filteredDomicilios.length === 0) {
47 $timeout(function() { 47 $timeout(function() {
48 angular.element('#search')[0].focus(); 48 angular.element('#search')[0].focus();
49 $scope.filters = ''; 49 $scope.filters = '';
50 }); 50 });
51 }else { 51 }else {
52 primera(); 52 primera();
53 } 53 }
54 } 54 }
55 55
56 $scope.lastPage = Math.ceil( 56 $scope.lastPage = Math.ceil(
57 $scope.filteredDomicilios.length / $scope.numPerPage 57 $scope.filteredDomicilios.length / $scope.numPerPage
58 ); 58 );
59 59
60 $scope.resetPage(); 60 $scope.resetPage();
61 }; 61 };
62 62
63 $scope.resetPage = function() { 63 $scope.resetPage = function() {
64 $scope.currentPage = 1; 64 $scope.currentPage = 1;
65 $scope.selectPage(1); 65 $scope.selectPage(1);
66 }; 66 };
67 67
68 $scope.selectPage = function(page) { 68 $scope.selectPage = function(page) {
69 var start = (page - 1) * $scope.numPerPage; 69 var start = (page - 1) * $scope.numPerPage;
70 var end = start + $scope.numPerPage; 70 var end = start + $scope.numPerPage;
71 $scope.paginas = []; 71 $scope.paginas = [];
72 $scope.paginas = calcularPages(page); 72 $scope.paginas = calcularPages(page);
73 $scope.currentPageDomicilios = $scope.filteredDomicilios.slice(start, end); 73 $scope.currentPageDomicilios = $scope.filteredDomicilios.slice(start, end);
74 $scope.currentPage = page; 74 $scope.currentPage = page;
75 }; 75 };
76 76
77 $scope.select = function(domicilio) { 77 $scope.select = function(domicilio) {
78 $uibModalInstance.close(domicilio); 78 $uibModalInstance.close(domicilio);
79 }; 79 };
80 80
81 $scope.cancel = function() { 81 $scope.cancel = function() {
82 $uibModalInstance.dismiss('cancel'); 82 $uibModalInstance.dismiss('cancel');
83 }; 83 };
84 84
85 $scope.busquedaDown = function(key) { 85 $scope.busquedaDown = function(key) {
86 if (key === 40) { 86 if (key === 40) {
87 primera(key); 87 primera(key);
88 } 88 }
89 }; 89 };
90 90
91 $scope.busquedaPress = function(key) { 91 $scope.busquedaPress = function(key) {
92 if (key === 13) { 92 if (key === 13) {
93 $scope.search(true); 93 $scope.search(true);
94 } 94 }
95 }; 95 };
96 96
97 $scope.itemDomicilio = function(key) { 97 $scope.itemDomicilio = function(key) {
98 if (key === 38) { 98 if (key === 38) {
99 anterior(key); 99 anterior(key);
100 } 100 }
101 101
102 if (key === 40) { 102 if (key === 40) {
103 siguiente(key); 103 siguiente(key);
104 } 104 }
105 105
106 if (key === 37) { 106 if (key === 37) {
107 retrocederPagina(); 107 retrocederPagina();
108 } 108 }
109 109
110 if (key === 39) { 110 if (key === 39) {
111 avanzarPagina(); 111 avanzarPagina();
112 } 112 }
113 }; 113 };
114 114
115 $scope.agregarDomicilio = function() { 115 $scope.agregarDomicilio = function() {
116 $scope.domicilio.valores = []; 116 $scope.domicilio.valores = [];
117 $scope.domicilio.idCliente = $scope.idCliente; 117 $scope.domicilio.idCliente = $scope.idCliente;
118 if($scope.domicilio.calle) { 118 if($scope.domicilio.calle) {
119 $scope.domicilio.valores.push({ 119 $scope.domicilio.valores.push({
120 ID_ADAC_1: 1, 120 ID_ADAC_1: 1,
121 dato: $scope.domicilio.calle 121 dato: $scope.domicilio.calle
122 }); 122 });
123 } 123 }
124 if($scope.domicilio.numeroCalle) { 124 if($scope.domicilio.numeroCalle) {
125 $scope.domicilio.valores.push({ 125 $scope.domicilio.valores.push({
126 ID_ADAC_1: 2, 126 ID_ADAC_1: 2,
127 dato: $scope.domicilio.numeroCalle 127 dato: $scope.domicilio.numeroCalle
128 }); 128 });
129 } 129 }
130 if($scope.domicilio.localidad) { 130 if($scope.domicilio.localidad) {
131 $scope.domicilio.valores.push({ 131 $scope.domicilio.valores.push({
132 ID_ADAC_1: 3, 132 ID_ADAC_1: 3,
133 dato: $scope.domicilio.localidad 133 dato: $scope.domicilio.localidad
134 }); 134 });
135 } 135 }
136 if($scope.domicilio.provincia) { 136 if($scope.domicilio.provincia) {
137 $scope.domicilio.valores.push({ 137 $scope.domicilio.valores.push({
138 ID_ADAC_1: 4, 138 ID_ADAC_1: 4,
139 dato: $scope.domicilio.provincia 139 dato: $scope.domicilio.provincia
140 }); 140 });
141 } 141 }
142 //domicilios de entrega corresponden al 1 142 //domicilios de entrega corresponden al 1
143 focaModalDomicilioService 143 focaModalDomicilioService
144 .obtenerUltimoPorNivelPadre(1) 144 .obtenerUltimoPorNivelPadre(1)
145 .then(function(res) { 145 .then(function(res) {
146 $scope.domicilio.nivel1 = 1;//domicilio de entrega corresponde 1 146 $scope.domicilio.nivel1 = 1;//domicilio de entrega corresponde 1
147 $scope.domicilio.nivel2 = res.data[0].ultimo + 1; 147 $scope.domicilio.nivel2 = res.data[0].ultimo + 1;
148 focaModalDomicilioService 148 focaModalDomicilioService
149 .guardarDomicilio($scope.domicilio) 149 .guardarDomicilio($scope.domicilio)
150 .then(function() { 150 .then(function() {
151 $scope.buscar(); 151 $scope.buscar();
152 $scope.ingreso = false; 152 $scope.ingreso = false;
153 $scope.domicilio = {}; 153 $scope.domicilio = {};
154 }); 154 });
155 }); 155 });
156 }; 156 };
157 157
158 $scope.verPuntosDescarga = function(key) { 158 $scope.verPuntosDescarga = function(key) {
159 var modalInstance = $uibModal.open( 159 var modalInstance = $uibModal.open(
160 { 160 {
161 ariaLabelledBy: 'Busqueda de Puntos de descarga', 161 ariaLabelledBy: 'Busqueda de Puntos de descarga',
162 templateUrl: 'modal-punto-descarga.html', 162 templateUrl: 'modal-punto-descarga.html',
163 controller: 'focaModalPuntoDescargaController', 163 controller: 'focaModalPuntoDescargaController',
164 size: 'md', 164 size: 'md',
165 resolve: { 165 resolve: {
166 filters: { 166 filters: {
167 idDomicilio: $scope.domicilios[key].id, 167 idDomicilio: $scope.domicilios[key].id,
168 idCliente: idCliente 168 idCliente: idCliente
169 } 169 }
170 } 170 }
171 } 171 }
172 ); 172 );
173 modalInstance.result.then(function(puntoDescarga) { 173 modalInstance.result.then(function(puntoDescarga) {
174 console.log(puntoDescarga); 174 console.log(puntoDescarga);
175 }, function() { 175 }, function() {
176 //TODO: función llamada cuando cancela el modal 176 //TODO: función llamada cuando cancela el modal
177 }); 177 });
178 }; 178 };
179 179
180 function calcularPages(paginaActual) { 180 function calcularPages(paginaActual) {
181 var paginas = []; 181 var paginas = [];
182 paginas.push(paginaActual); 182 paginas.push(paginaActual);
183 183
184 if (paginaActual - 1 > 1) { 184 if (paginaActual - 1 > 1) {
185 185
186 paginas.unshift(paginaActual - 1); 186 paginas.unshift(paginaActual - 1);
187 if (paginaActual - 2 > 1) { 187 if (paginaActual - 2 > 1) {
188 paginas.unshift(paginaActual - 2); 188 paginas.unshift(paginaActual - 2);
189 } 189 }
190 } 190 }
191 191
192 if (paginaActual + 1 < $scope.lastPage) { 192 if (paginaActual + 1 < $scope.lastPage) {
193 paginas.push(paginaActual + 1); 193 paginas.push(paginaActual + 1);
194 if (paginaActual + 2 < $scope.lastPage) { 194 if (paginaActual + 2 < $scope.lastPage) {
195 paginas.push(paginaActual + 2); 195 paginas.push(paginaActual + 2);
196 } 196 }
197 } 197 }
198 198
199 if (paginaActual !== 1) { 199 if (paginaActual !== 1) {
200 paginas.unshift(1); 200 paginas.unshift(1);
201 } 201 }
202 202
203 if (paginaActual !== $scope.lastPage) { 203 if (paginaActual !== $scope.lastPage) {
204 paginas.push($scope.lastPage); 204 paginas.push($scope.lastPage);
205 } 205 }
206 206
207 return paginas; 207 return paginas;
208 } 208 }
209 209
210 function primera() { 210 function primera() {
211 $scope.selectedDomicilio = 0; 211 $scope.selectedDomicilio = 0;
212 } 212 }
213 213
214 function anterior() { 214 function anterior() {
215 if ($scope.selectedDomicilio === 0 && $scope.currentPage > 1) { 215 if ($scope.selectedDomicilio === 0 && $scope.currentPage > 1) {
216 retrocederPagina(); 216 retrocederPagina();
217 } else { 217 } else {
218 $scope.selectedDomicilio--; 218 $scope.selectedDomicilio--;
219 } 219 }
220 } 220 }
221 221
222 function siguiente() { 222 function siguiente() {
223 if ($scope.selectedDomicilio < $scope.currentPageDomicilios.length ) { 223 if ($scope.selectedDomicilio < $scope.currentPageDomicilios.length ) {
224 $scope.selectedDomicilio++; 224 $scope.selectedDomicilio++;
225 } else { 225 } else {
226 avanzarPagina(); 226 avanzarPagina();
227 } 227 }
228 } 228 }
229 229
230 function retrocederPagina() { 230 function retrocederPagina() {
231 if ($scope.currentPage > 1) { 231 if ($scope.currentPage > 1) {
232 $scope.selectPage($scope.currentPage - 1); 232 $scope.selectPage($scope.currentPage - 1);
233 $scope.selectedDomicilio = $scope.numPerPage - 1; 233 $scope.selectedDomicilio = $scope.numPerPage - 1;
234 } 234 }
235 } 235 }
236 236
237 function avanzarPagina() { 237 function avanzarPagina() {
238 if ($scope.currentPage < $scope.lastPage) { 238 if ($scope.currentPage < $scope.lastPage) {
239 $scope.selectPage($scope.currentPage + 1); 239 $scope.selectPage($scope.currentPage + 1);
240 $scope.selectedDomicilio = 0; 240 $scope.selectedDomicilio = 0;
241 } 241 }
242 } 242 }
243 } 243 }
244 ] 244 ]
245 ); 245 );
246 246