Commit f6d240e4c08485df992830b03f1287dc1de1c8e8

Authored by Eric Fernandez
1 parent e180278ae0
Exists in master

validaciones en error

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