Commit c96df65e4898f9304d0e86942bfffa79f019ac76

Authored by Luigi
1 parent 5aea58c71f
Exists in master

Valiacion Domicilio

Showing 1 changed file with 2 additions and 1 deletions   Show diff stats
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 'focaModalDomicilioService', 8 'focaModalDomicilioService',
9 '$uibModal', 9 '$uibModal',
10 'idCliente', 10 'idCliente',
11 'esNuevo', 11 'esNuevo',
12 'focaModalService', 12 'focaModalService',
13 function($timeout, $filter, $scope, $uibModalInstance, focaModalDomicilioService, 13 function($timeout, $filter, $scope, $uibModalInstance, focaModalDomicilioService,
14 $uibModal, idCliente, esNuevo, focaModalService) { 14 $uibModal, idCliente, esNuevo, focaModalService) {
15 15
16 $scope.buscar = function() { 16 $scope.buscar = function() {
17 focaModalDomicilioService 17 focaModalDomicilioService
18 .getDomiciliosEntregaByIdCliente($scope.idCliente) 18 .getDomiciliosEntregaByIdCliente($scope.idCliente)
19 .then(function(res) { 19 .then(function(res) {
20 $scope.domicilios = res.data; 20 $scope.domicilios = res.data;
21 $scope.search(); 21 $scope.search();
22 $scope.primerBusqueda = true; 22 $scope.primerBusqueda = true;
23 } 23 }
24 ); 24 );
25 }; 25 };
26 $scope.filters = ''; 26 $scope.filters = '';
27 $scope.idCliente = idCliente; 27 $scope.idCliente = idCliente;
28 $scope.buscar(); 28 $scope.buscar();
29 $scope.ingreso = esNuevo; 29 $scope.ingreso = esNuevo;
30 $scope.primerBusqueda = false; 30 $scope.primerBusqueda = false;
31 $scope.contactos = [{}]; 31 $scope.contactos = [{}];
32 // pagination 32 // pagination
33 $scope.numPerPage = 5; 33 $scope.numPerPage = 5;
34 $scope.currentPage = 1; 34 $scope.currentPage = 1;
35 $scope.filteredDomicilios = []; 35 $scope.filteredDomicilios = [];
36 $scope.currentPageDomicilios = []; 36 $scope.currentPageDomicilios = [];
37 $scope.selectedDomicilio = -1; 37 $scope.selectedDomicilio = -1;
38 $scope.focused = 1; 38 $scope.focused = 1;
39 $scope.domicilio = {};
39 40
40 //METODOS 41 //METODOS
41 $scope.search = function(pressed) { 42 $scope.search = function(pressed) {
42 $scope.filteredDomicilios = $filter('filter')( 43 $scope.filteredDomicilios = $filter('filter')(
43 $scope.domicilios, 44 $scope.domicilios,
44 {$: $scope.filters} 45 {$: $scope.filters}
45 ); 46 );
46 47
47 if(pressed) { 48 if(pressed) {
48 if($scope.filteredDomicilios.length === 0) { 49 if($scope.filteredDomicilios.length === 0) {
49 $timeout(function() { 50 $timeout(function() {
50 angular.element('#search')[0].focus(); 51 angular.element('#search')[0].focus();
51 $scope.filters = ''; 52 $scope.filters = '';
52 }); 53 });
53 }else { 54 }else {
54 primera(); 55 primera();
55 } 56 }
56 } 57 }
57 58
58 $scope.lastPage = Math.ceil( 59 $scope.lastPage = Math.ceil(
59 $scope.filteredDomicilios.length / $scope.numPerPage 60 $scope.filteredDomicilios.length / $scope.numPerPage
60 ); 61 );
61 62
62 $scope.resetPage(); 63 $scope.resetPage();
63 }; 64 };
64 65
65 $scope.resetPage = function() { 66 $scope.resetPage = function() {
66 $scope.currentPage = 1; 67 $scope.currentPage = 1;
67 $scope.selectPage(1); 68 $scope.selectPage(1);
68 }; 69 };
69 70
70 $scope.selectPage = function(page) { 71 $scope.selectPage = function(page) {
71 var start = (page - 1) * $scope.numPerPage; 72 var start = (page - 1) * $scope.numPerPage;
72 var end = start + $scope.numPerPage; 73 var end = start + $scope.numPerPage;
73 $scope.paginas = []; 74 $scope.paginas = [];
74 $scope.paginas = calcularPages(page); 75 $scope.paginas = calcularPages(page);
75 $scope.currentPageDomicilios = $scope.filteredDomicilios.slice(start, end); 76 $scope.currentPageDomicilios = $scope.filteredDomicilios.slice(start, end);
76 $scope.currentPage = page; 77 $scope.currentPage = page;
77 }; 78 };
78 79
79 $scope.select = function(domicilio) { 80 $scope.select = function(domicilio) {
80 $uibModalInstance.close(domicilio); 81 $uibModalInstance.close(domicilio);
81 }; 82 };
82 83
83 $scope.cancel = function() { 84 $scope.cancel = function() {
84 $uibModalInstance.dismiss('cancel'); 85 $uibModalInstance.dismiss('cancel');
85 }; 86 };
86 87
87 $scope.busquedaDown = function(key) { 88 $scope.busquedaDown = function(key) {
88 if (key === 40) { 89 if (key === 40) {
89 primera(key); 90 primera(key);
90 } 91 }
91 }; 92 };
92 93
93 $scope.busquedaPress = function(key) { 94 $scope.busquedaPress = function(key) {
94 if (key === 13) { 95 if (key === 13) {
95 $scope.search(true); 96 $scope.search(true);
96 } 97 }
97 }; 98 };
98 99
99 $scope.itemDomicilio = function(key) { 100 $scope.itemDomicilio = function(key) {
100 if (key === 38) { 101 if (key === 38) {
101 anterior(key); 102 anterior(key);
102 } 103 }
103 104
104 if (key === 40) { 105 if (key === 40) {
105 siguiente(key); 106 siguiente(key);
106 } 107 }
107 108
108 if (key === 37) { 109 if (key === 37) {
109 retrocederPagina(); 110 retrocederPagina();
110 } 111 }
111 112
112 if (key === 39) { 113 if (key === 39) {
113 avanzarPagina(); 114 avanzarPagina();
114 } 115 }
115 }; 116 };
116 117
117 $scope.agregarDomicilio = function() { 118 $scope.agregarDomicilio = function() {
118 119
119 $scope.domicilio.valores = []; 120 $scope.domicilio.valores = [];
120 $scope.domicilio.idCliente = $scope.idCliente; 121 $scope.domicilio.idCliente = $scope.idCliente;
121 if($scope.domicilio.calle) { 122 if($scope.domicilio.calle) {
122 $scope.domicilio.valores.push({ 123 $scope.domicilio.valores.push({
123 ID_ADAC_1: 1, 124 ID_ADAC_1: 1,
124 dato: $scope.domicilio.calle 125 dato: $scope.domicilio.calle
125 }); 126 });
126 } 127 }
127 if($scope.domicilio.numeroCalle) { 128 if($scope.domicilio.numeroCalle) {
128 $scope.domicilio.valores.push({ 129 $scope.domicilio.valores.push({
129 ID_ADAC_1: 2, 130 ID_ADAC_1: 2,
130 dato: $scope.domicilio.numeroCalle 131 dato: $scope.domicilio.numeroCalle
131 }); 132 });
132 } 133 }
133 if($scope.domicilio.localidad) { 134 if($scope.domicilio.localidad) {
134 $scope.domicilio.valores.push({ 135 $scope.domicilio.valores.push({
135 ID_ADAC_1: 3, 136 ID_ADAC_1: 3,
136 dato: $scope.domicilio.localidad 137 dato: $scope.domicilio.localidad
137 }); 138 });
138 } 139 }
139 if($scope.domicilio.provincia) { 140 if($scope.domicilio.provincia) {
140 $scope.domicilio.valores.push({ 141 $scope.domicilio.valores.push({
141 ID_ADAC_1: 4, 142 ID_ADAC_1: 4,
142 dato: $scope.domicilio.provincia 143 dato: $scope.domicilio.provincia
143 }); 144 });
144 } 145 }
145 if($scope.domicilio.latitud) { 146 if($scope.domicilio.latitud) {
146 $scope.domicilio.valores.push({ 147 $scope.domicilio.valores.push({
147 ID_ADAC_1: 23, 148 ID_ADAC_1: 23,
148 dato: $scope.domicilio.latitud.toString() 149 dato: $scope.domicilio.latitud.toString()
149 }); 150 });
150 } 151 }
151 if($scope.domicilio.longitud) { 152 if($scope.domicilio.longitud) {
152 $scope.domicilio.valores.push({ 153 $scope.domicilio.valores.push({
153 ID_ADAC_1: 24, 154 ID_ADAC_1: 24,
154 dato: $scope.domicilio.longitud.toString() 155 dato: $scope.domicilio.longitud.toString()
155 }); 156 });
156 } 157 }
157 158
158 if (!$scope.domicilio.titulo) { 159 if (!$scope.domicilio.titulo) {
159 focaModalService.alert('Ingrese titulo'); 160 focaModalService.alert('Ingrese titulo');
160 return; 161 return;
161 } else if (!$scope.domicilio.calle) { 162 } else if (!$scope.domicilio.calle) {
162 focaModalService.alert('Ingrese calle'); 163 focaModalService.alert('Ingrese calle');
163 return; 164 return;
164 } else if (!$scope.domicilio.numeroCalle) { 165 } else if (!$scope.domicilio.numeroCalle) {
165 focaModalService.alert('Ingrese numero de calle'); 166 focaModalService.alert('Ingrese numero de calle');
166 return; 167 return;
167 } else if (!$scope.domicilio.localidad) { 168 } else if (!$scope.domicilio.localidad) {
168 focaModalService.alert('Ingrese localidad'); 169 focaModalService.alert('Ingrese localidad');
169 return; 170 return;
170 } else if (!$scope.domicilio.provincia) { 171 } else if (!$scope.domicilio.provincia) {
171 focaModalService.alert('Ingrese provincia'); 172 focaModalService.alert('Ingrese provincia');
172 return; 173 return;
173 } 174 }
174 175
175 //domicilios de entrega corresponden al 1 176 //domicilios de entrega corresponden al 1
176 focaModalDomicilioService 177 focaModalDomicilioService
177 .obtenerUltimoPorNivelPadre(1) 178 .obtenerUltimoPorNivelPadre(1)
178 .then(function(res) { 179 .then(function(res) {
179 $scope.domicilio.nivel1 = 1;//domicilio de entrega corresponde 1 180 $scope.domicilio.nivel1 = 1;//domicilio de entrega corresponde 1
180 $scope.domicilio.nivel2 = res.data[0].ultimo + 1; 181 $scope.domicilio.nivel2 = res.data[0].ultimo + 1;
181 focaModalDomicilioService 182 focaModalDomicilioService
182 .guardarDomicilio($scope.domicilio) 183 .guardarDomicilio($scope.domicilio)
183 .then(function() { 184 .then(function() {
184 $scope.buscar(); 185 $scope.buscar();
185 $scope.ingreso = false; 186 $scope.ingreso = false;
186 $scope.domicilio = {}; 187 $scope.domicilio = {};
187 }) 188 })
188 .catch(function() { 189 .catch(function() {
189 focaModalService.alert('Hubo un error al crear el domicilio'); 190 focaModalService.alert('Hubo un error al crear el domicilio');
190 $scope.ingreso = false; 191 $scope.ingreso = false;
191 }); 192 });
192 }); 193 });
193 }; 194 };
194 195
195 $scope.verPuntosDescarga = function(key) { 196 $scope.verPuntosDescarga = function(key) {
196 197
197 $scope.currentPageDomicilios[key].verPuntos = true; 198 $scope.currentPageDomicilios[key].verPuntos = true;
198 $scope.select($scope.currentPageDomicilios[key]); 199 $scope.select($scope.currentPageDomicilios[key]);
199 }; 200 };
200 201
201 $scope.localizarDomicilio = function(localizar) { 202 $scope.localizarDomicilio = function(localizar) {
202 var direccion = null; 203 var direccion = null;
203 if(localizar) { 204 if(localizar) {
204 direccion = { 205 direccion = {
205 calle: $scope.domicilio.calle, 206 calle: $scope.domicilio.calle,
206 numero: $scope.domicilio.numeroCalle, 207 numero: $scope.domicilio.numeroCalle,
207 localidad: $scope.domicilio.localidad, 208 localidad: $scope.domicilio.localidad,
208 provincia: $scope.domicilio.provincia 209 provincia: $scope.domicilio.provincia
209 }; 210 };
210 } 211 }
211 var modalInstance = $uibModal.open( 212 var modalInstance = $uibModal.open(
212 { 213 {
213 ariaLabelledBy: 'Buscar domicilio', 214 ariaLabelledBy: 'Buscar domicilio',
214 templateUrl: 'modal-localizar.html', 215 templateUrl: 'modal-localizar.html',
215 controller: 'focaModalLocalizarController', 216 controller: 'focaModalLocalizarController',
216 size: 'lg', 217 size: 'lg',
217 resolve: { 218 resolve: {
218 direccion: direccion 219 direccion: direccion
219 } 220 }
220 } 221 }
221 ); 222 );
222 modalInstance.result.then(function(res) { 223 modalInstance.result.then(function(res) {
223 $scope.domicilio.latitud = res.latitud; 224 $scope.domicilio.latitud = res.latitud;
224 $scope.domicilio.longitud = res.longitud; 225 $scope.domicilio.longitud = res.longitud;
225 }, function() { 226 }, function() {
226 //TODO: función llamada cuando cancela el modal 227 //TODO: función llamada cuando cancela el modal
227 }); 228 });
228 }; 229 };
229 230
230 $scope.next = function(key) { 231 $scope.next = function(key) {
231 if(key === 13) $scope.focused++; 232 if(key === 13) $scope.focused++;
232 }; 233 };
233 234
234 function calcularPages(paginaActual) { 235 function calcularPages(paginaActual) {
235 var paginas = []; 236 var paginas = [];
236 paginas.push(paginaActual); 237 paginas.push(paginaActual);
237 238
238 if (paginaActual - 1 > 1) { 239 if (paginaActual - 1 > 1) {
239 240
240 paginas.unshift(paginaActual - 1); 241 paginas.unshift(paginaActual - 1);
241 if (paginaActual - 2 > 1) { 242 if (paginaActual - 2 > 1) {
242 paginas.unshift(paginaActual - 2); 243 paginas.unshift(paginaActual - 2);
243 } 244 }
244 } 245 }
245 246
246 if (paginaActual + 1 < $scope.lastPage) { 247 if (paginaActual + 1 < $scope.lastPage) {
247 paginas.push(paginaActual + 1); 248 paginas.push(paginaActual + 1);
248 if (paginaActual + 2 < $scope.lastPage) { 249 if (paginaActual + 2 < $scope.lastPage) {
249 paginas.push(paginaActual + 2); 250 paginas.push(paginaActual + 2);
250 } 251 }
251 } 252 }
252 253
253 if (paginaActual !== 1) { 254 if (paginaActual !== 1) {
254 paginas.unshift(1); 255 paginas.unshift(1);
255 } 256 }
256 257
257 if (paginaActual !== $scope.lastPage) { 258 if (paginaActual !== $scope.lastPage) {
258 paginas.push($scope.lastPage); 259 paginas.push($scope.lastPage);
259 } 260 }
260 261
261 return paginas; 262 return paginas;
262 } 263 }
263 264
264 function primera() { 265 function primera() {
265 $scope.selectedDomicilio = 0; 266 $scope.selectedDomicilio = 0;
266 } 267 }
267 268
268 function anterior() { 269 function anterior() {
269 if ($scope.selectedDomicilio === 0 && $scope.currentPage > 1) { 270 if ($scope.selectedDomicilio === 0 && $scope.currentPage > 1) {
270 retrocederPagina(); 271 retrocederPagina();
271 } else { 272 } else {
272 $scope.selectedDomicilio--; 273 $scope.selectedDomicilio--;
273 } 274 }
274 } 275 }
275 276
276 function siguiente() { 277 function siguiente() {
277 if ($scope.selectedDomicilio < $scope.currentPageDomicilios.length ) { 278 if ($scope.selectedDomicilio < $scope.currentPageDomicilios.length ) {
278 $scope.selectedDomicilio++; 279 $scope.selectedDomicilio++;
279 } else { 280 } else {
280 avanzarPagina(); 281 avanzarPagina();
281 } 282 }
282 } 283 }
283 284
284 function retrocederPagina() { 285 function retrocederPagina() {
285 if ($scope.currentPage > 1) { 286 if ($scope.currentPage > 1) {
286 $scope.selectPage($scope.currentPage - 1); 287 $scope.selectPage($scope.currentPage - 1);
287 $scope.selectedDomicilio = $scope.numPerPage - 1; 288 $scope.selectedDomicilio = $scope.numPerPage - 1;
288 } 289 }
289 } 290 }
290 291
291 function avanzarPagina() { 292 function avanzarPagina() {
292 if ($scope.currentPage < $scope.lastPage) { 293 if ($scope.currentPage < $scope.lastPage) {
293 $scope.selectPage($scope.currentPage + 1); 294 $scope.selectPage($scope.currentPage + 1);
294 $scope.selectedDomicilio = 0; 295 $scope.selectedDomicilio = 0;
295 } 296 }
296 } 297 }
297 } 298 }
298 ] 299 ]
299 ); 300 );
300 301