Commit a7c032b2219c69088a1131ecde26e32a628a124c

Authored by Eric Fernandez
Exists in master and in 1 other branch develop

Merge branch 'master' into 'master'

envia articulos a modal-punto-descarga

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