Commit 5f5b23670be490aad90761dab2575d2b41ceffeb

Authored by Marcelo Puebla
Exists in master

Merge remote-tracking branch 'origin/master'

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 $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() {
119
118 $scope.domicilio.valores = []; 120 $scope.domicilio.valores = [];
119 $scope.domicilio.idCliente = $scope.idCliente; 121 $scope.domicilio.idCliente = $scope.idCliente;
120 if($scope.domicilio.calle) { 122 if ($scope.domicilio.calle) {
121 $scope.domicilio.valores.push({ 123 $scope.domicilio.valores.push({
122 ID_ADAC_1: 1, 124 ID_ADAC_1: 1,
123 dato: $scope.domicilio.calle 125 dato: $scope.domicilio.calle
124 }); 126 });
125 } 127 }
126 if($scope.domicilio.numeroCalle) { 128 if ($scope.domicilio.numeroCalle) {
127 $scope.domicilio.valores.push({ 129 $scope.domicilio.valores.push({
128 ID_ADAC_1: 2, 130 ID_ADAC_1: 2,
129 dato: $scope.domicilio.numeroCalle 131 dato: $scope.domicilio.numeroCalle
130 }); 132 });
131 } 133 }
132 if($scope.domicilio.localidad) { 134 if ($scope.domicilio.localidad) {
133 $scope.domicilio.valores.push({ 135 $scope.domicilio.valores.push({
134 ID_ADAC_1: 3, 136 ID_ADAC_1: 3,
135 dato: $scope.domicilio.localidad 137 dato: $scope.domicilio.localidad
136 }); 138 });
137 } 139 }
138 if($scope.domicilio.provincia) { 140 if ($scope.domicilio.provincia) {
139 $scope.domicilio.valores.push({ 141 $scope.domicilio.valores.push({
140 ID_ADAC_1: 4, 142 ID_ADAC_1: 4,
141 dato: $scope.domicilio.provincia 143 dato: $scope.domicilio.provincia
142 }); 144 });
143 } 145 }
144 if($scope.domicilio.latitud) { 146 if ($scope.domicilio.latitud) {
145 $scope.domicilio.valores.push({ 147 $scope.domicilio.valores.push({
146 ID_ADAC_1: 23, 148 ID_ADAC_1: 23,
147 dato: $scope.domicilio.latitud 149 dato: $scope.domicilio.latitud.toString()
148 }); 150 });
149 } 151 }
150 if($scope.domicilio.longitud) { 152 if ($scope.domicilio.longitud) {
151 $scope.domicilio.valores.push({ 153 $scope.domicilio.valores.push({
152 ID_ADAC_1: 24, 154 ID_ADAC_1: 24,
153 dato: $scope.domicilio.longitud 155 dato: $scope.domicilio.longitud.toString()
154 }); 156 });
155 } 157 }
158
159 if (!$scope.domicilio.titulo) {
160 focaModalService.alert('Ingrese titulo');
161 return;
162 } else if (!$scope.domicilio.calle) {
163 focaModalService.alert('Ingrese calle');
164 return;
165 } else if (!$scope.domicilio.numeroCalle) {
166 focaModalService.alert('Ingrese numero de calle');
167 return;
168 } else if (!$scope.domicilio.localidad) {
169 focaModalService.alert('Ingrese localidad');
170 return;
171 } else if (!$scope.domicilio.provincia) {
172 focaModalService.alert('Ingrese provincia');
173 return;
174 }
175
156 //domicilios de entrega corresponden al 1 176 //domicilios de entrega corresponden al 1
157 focaModalDomicilioService 177 focaModalDomicilioService
158 .obtenerUltimoPorNivelPadre(1) 178 .obtenerUltimoPorNivelPadre(1)
159 .then(function(res) { 179 .then(function(res) {
160 $scope.domicilio.nivel1 = 1;//domicilio de entrega corresponde 1 180 $scope.domicilio.nivel1 = 1;//domicilio de entrega corresponde 1
161 $scope.domicilio.nivel2 = res.data[0].ultimo + 1; 181 $scope.domicilio.nivel2 = res.data[0].ultimo + 1;
162 focaModalDomicilioService 182 focaModalDomicilioService
163 .guardarDomicilio($scope.domicilio) 183 .guardarDomicilio($scope.domicilio)
164 .then(function() { 184 .then(function() {
165 $scope.buscar(); 185 $scope.buscar();
166 $scope.ingreso = false; 186 $scope.ingreso = false;
167 $scope.domicilio = {}; 187 $scope.domicilio = {};
188 })
189 .catch(function() {
190 focaModalService.alert('Hubo un error al crear el domicilio');
191 $scope.ingreso = false;
168 }); 192 });
169 }); 193 });
170 }; 194 };
171 195
172 $scope.verPuntosDescarga = function(key) { 196 $scope.verPuntosDescarga = function(key) {
173 197
174 $scope.currentPageDomicilios[key].verPuntos = true; 198 $scope.currentPageDomicilios[key].verPuntos = true;
175 $scope.select($scope.currentPageDomicilios[key]); 199 $scope.select($scope.currentPageDomicilios[key]);
176 }; 200 };
177 201
178 $scope.localizarDomicilio = function(localizar) { 202 $scope.localizarDomicilio = function(localizar) {
179 var direccion = null; 203 var direccion = null;
180 if(localizar) { 204 if(localizar) {
181 direccion = { 205 direccion = {
182 calle: $scope.domicilio.calle, 206 calle: $scope.domicilio.calle,
183 numero: $scope.domicilio.numeroCalle, 207 numero: $scope.domicilio.numeroCalle,
184 localidad: $scope.domicilio.localidad, 208 localidad: $scope.domicilio.localidad,
185 provincia: $scope.domicilio.provincia 209 provincia: $scope.domicilio.provincia
186 }; 210 };
187 } 211 }
188 var modalInstance = $uibModal.open( 212 var modalInstance = $uibModal.open(
189 { 213 {
190 ariaLabelledBy: 'Buscar domicilio', 214 ariaLabelledBy: 'Buscar domicilio',
191 templateUrl: 'modal-localizar.html', 215 templateUrl: 'modal-localizar.html',
192 controller: 'focaModalLocalizarController', 216 controller: 'focaModalLocalizarController',
193 size: 'lg', 217 size: 'lg',
194 resolve: { 218 resolve: {
195 direccion: direccion 219 direccion: direccion
196 } 220 }
197 } 221 }
198 ); 222 );
199 modalInstance.result.then(function(res) { 223 modalInstance.result.then(function(res) {
200 $scope.domicilio.latitud = res.latitud; 224 $scope.domicilio.latitud = res.latitud;
201 $scope.domicilio.longitud = res.longitud; 225 $scope.domicilio.longitud = res.longitud;
202 }, function() { 226 }, function() {
203 //TODO: función llamada cuando cancela el modal 227 //TODO: función llamada cuando cancela el modal
204 }); 228 });
205 }; 229 };
206 230
207 $scope.next = function(key) { 231 $scope.next = function(key) {
208 if(key === 13) $scope.focused++; 232 if (key === 13) $scope.focused++;
209 }; 233 };
210 234
211 function calcularPages(paginaActual) { 235 function calcularPages(paginaActual) {
212 var paginas = []; 236 var paginas = [];
213 paginas.push(paginaActual); 237 paginas.push(paginaActual);
214 238
215 if (paginaActual - 1 > 1) { 239 if (paginaActual - 1 > 1) {
216 240
217 paginas.unshift(paginaActual - 1); 241 paginas.unshift(paginaActual - 1);
218 if (paginaActual - 2 > 1) { 242 if (paginaActual - 2 > 1) {
219 paginas.unshift(paginaActual - 2); 243 paginas.unshift(paginaActual - 2);
220 } 244 }
221 } 245 }
222 246
223 if (paginaActual + 1 < $scope.lastPage) { 247 if (paginaActual + 1 < $scope.lastPage) {
224 paginas.push(paginaActual + 1); 248 paginas.push(paginaActual + 1);
225 if (paginaActual + 2 < $scope.lastPage) { 249 if (paginaActual + 2 < $scope.lastPage) {
226 paginas.push(paginaActual + 2); 250 paginas.push(paginaActual + 2);
227 } 251 }
228 } 252 }
229 253
230 if (paginaActual !== 1) { 254 if (paginaActual !== 1) {
231 paginas.unshift(1); 255 paginas.unshift(1);
232 } 256 }
233 257
234 if (paginaActual !== $scope.lastPage) { 258 if (paginaActual !== $scope.lastPage) {
235 paginas.push($scope.lastPage); 259 paginas.push($scope.lastPage);
236 } 260 }
237 261
238 return paginas; 262 return paginas;
239 } 263 }
240 264
241 function primera() { 265 function primera() {
242 $scope.selectedDomicilio = 0; 266 $scope.selectedDomicilio = 0;
243 } 267 }
244 268
245 function anterior() { 269 function anterior() {
246 if ($scope.selectedDomicilio === 0 && $scope.currentPage > 1) { 270 if ($scope.selectedDomicilio === 0 && $scope.currentPage > 1) {
247 retrocederPagina(); 271 retrocederPagina();
248 } else { 272 } else {
249 $scope.selectedDomicilio--; 273 $scope.selectedDomicilio--;
250 } 274 }
251 } 275 }
252 276
253 function siguiente() { 277 function siguiente() {
254 if ($scope.selectedDomicilio < $scope.currentPageDomicilios.length ) { 278 if ($scope.selectedDomicilio < $scope.currentPageDomicilios.length ) {
255 $scope.selectedDomicilio++; 279 $scope.selectedDomicilio++;
256 } else { 280 } else {
257 avanzarPagina(); 281 avanzarPagina();
258 } 282 }
259 } 283 }
260 284
261 function retrocederPagina() { 285 function retrocederPagina() {
262 if ($scope.currentPage > 1) { 286 if ($scope.currentPage > 1) {
263 $scope.selectPage($scope.currentPage - 1); 287 $scope.selectPage($scope.currentPage - 1);
264 $scope.selectedDomicilio = $scope.numPerPage - 1; 288 $scope.selectedDomicilio = $scope.numPerPage - 1;
265 } 289 }
266 } 290 }
267 291
268 function avanzarPagina() { 292 function avanzarPagina() {
269 if ($scope.currentPage < $scope.lastPage) { 293 if ($scope.currentPage < $scope.lastPage) {
270 $scope.selectPage($scope.currentPage + 1); 294 $scope.selectPage($scope.currentPage + 1);
271 $scope.selectedDomicilio = 0; 295 $scope.selectedDomicilio = 0;
272 } 296 }
273 } 297 }
274 } 298 }
275 ] 299 ]
276 ); 300 );
277 301
src/views/modal-domicilio.html
1 <div class="modal-header py-1"> 1 <div class="modal-header py-1">
2 <div class="row w-100"> 2 <div class="row w-100">
3 <div class="col-lg-6"> 3 <div class="col-lg-6">
4 <h5 class="modal-title my-1" ng-hide="ingreso">Búsqueda de Domicilios</h5> 4 <h5 class="modal-title my-1" ng-hide="ingreso">Búsqueda de Domicilios</h5>
5 <h5 class="modal-title my-1" ng-show="ingreso">Crear domicilio</h5> 5 <h5 class="modal-title my-1" ng-show="ingreso">Crear domicilio</h5>
6 </div> 6 </div>
7 <div class="input-group col-lg-6 pr-0 my-2"> 7 <div class="input-group col-lg-6 pr-0 my-2">
8 <input 8 <input
9 type="text" 9 type="text"
10 class="form-control form-control-sm" 10 class="form-control form-control-sm"
11 id="search" 11 id="search"
12 placeholder="Búsqueda" 12 placeholder="Búsqueda"
13 ng-model="filters" 13 ng-model="filters"
14 ng-change="search()" 14 ng-change="search()"
15 ng-keydown="busquedaDown($event.keyCode)" 15 ng-keydown="busquedaDown($event.keyCode)"
16 ng-keypress="busquedaPress($event.keyCode)" 16 ng-keypress="busquedaPress($event.keyCode)"
17 foca-focus="selectedDomicilio == -1" 17 foca-focus="selectedDomicilio == -1"
18 ng-focus="selectedDomicilio = -1" 18 ng-focus="selectedDomicilio = -1"
19 teclado-virtual 19 teclado-virtual
20 > 20 >
21 <div class="input-group-append"> 21 <div class="input-group-append">
22 <button 22 <button
23 ladda="searchLoading" 23 ladda="searchLoading"
24 class="btn btn-outline-secondary" 24 class="btn btn-outline-secondary"
25 type="button" 25 type="button"
26 ng-click="busquedaPress(13)" 26 ng-click="busquedaPress(13)"
27 > 27 >
28 <i class="fa fa-search" aria-hidden="true"></i> 28 <i class="fa fa-search" aria-hidden="true"></i>
29 </button> 29 </button>
30 </div> 30 </div>
31 </div> 31 </div>
32 </div> 32 </div>
33 </div> 33 </div>
34 <div class="modal-body" id="modal-body"> 34 <div class="modal-body" id="modal-body">
35 35
36 <div ng-show="!primerBusqueda"> 36 <div ng-show="!primerBusqueda">
37 Debe realizar una primer búsqueda. 37 Debe realizar una primer búsqueda.
38 </div> 38 </div>
39 39
40 <div ng-show="!ingreso"> 40 <div ng-show="!ingreso">
41 <table ng-show="!ingreso" class="table table-striped table-sm"> 41 <table ng-show="!ingreso" class="table table-striped table-sm">
42 <thead> 42 <thead>
43 <tr> 43 <tr>
44 <th>Titulo</th> 44 <th>Titulo</th>
45 <th>Calle</th> 45 <th>Calle</th>
46 <th>Localidad</th> 46 <th>Localidad</th>
47 <th>Provincia</th> 47 <th>Provincia</th>
48 <th></th> 48 <th></th>
49 <th></th> 49 <th></th>
50 </tr> 50 </tr>
51 </thead> 51 </thead>
52 <tbody> 52 <tbody>
53 <tr ng-show="currentPageDomicilios.length == 0 && primerBusqueda"> 53 <tr ng-show="currentPageDomicilios.length == 0 && primerBusqueda">
54 <td colspan="5"> 54 <td colspan="5">
55 No se encontraron resultados. 55 No se encontraron resultados.
56 </td> 56 </td>
57 </tr> 57 </tr>
58 <tr> 58 <tr>
59 <td colspan="6" ng-show="!ingreso"> 59 <td colspan="6" ng-show="!ingreso">
60 <button 60 <button
61 class="form-control form-control-sm btn-rounded" 61 class="form-control form-control-sm btn-rounded"
62 type="text" 62 type="text"
63 readonly 63 readonly
64 ng-click="ingreso = !ingreso" 64 ng-click="ingreso = !ingreso"
65 > 65 >
66 <i class="fa fa-plus left" aria-hidden="true"></i> 66 <i class="fa fa-plus left" aria-hidden="true"></i>
67 Crear domicilio de entrega 67 Crear domicilio de entrega
68 </button> 68 </button>
69 </td> 69 </td>
70 </tr> 70 </tr>
71 <tr class="selectable" 71 <tr class="selectable"
72 ng-repeat="(key,domicilio) in currentPageDomicilios"> 72 ng-repeat="(key,domicilio) in currentPageDomicilios">
73 <td 73 <td
74 ng-bind="domicilio.titulo" 74 ng-bind="domicilio.titulo"
75 ng-click="select(domicilio)" 75 ng-click="select(domicilio)"
76 ></td> 76 ></td>
77 <td 77 <td
78 ng-bind="domicilio.Calle + ' ' + domicilio.Numero" 78 ng-bind="domicilio.Calle + ' ' + domicilio.Numero"
79 ng-click="select(domicilio)" 79 ng-click="select(domicilio)"
80 ></td> 80 ></td>
81 <td 81 <td
82 ng-bind="domicilio.Localidad" 82 ng-bind="domicilio.Localidad"
83 ng-click="select(domicilio)" 83 ng-click="select(domicilio)"
84 ></td> 84 ></td>
85 <td 85 <td
86 ng-bind="domicilio.Provincia" 86 ng-bind="domicilio.Provincia"
87 ng-click="select(domicilio)" 87 ng-click="select(domicilio)"
88 ></td> 88 ></td>
89 <td> 89 <td>
90 <button 90 <button
91 type="button" 91 type="button"
92 class="btn btn-sm p-1 float-right btn-secondary" 92 class="btn btn-sm p-1 float-right btn-secondary"
93 ng-click="verPuntosDescarga(key)" 93 ng-click="verPuntosDescarga(key)"
94 title="Puntos de descarga" 94 title="Puntos de descarga"
95 > 95 >
96 <small>PD</small> 96 <small>PD</small>
97 </button> 97 </button>
98 </td> 98 </td>
99 <td> 99 <td>
100 <button 100 <button
101 type="button" 101 type="button"
102 class="btn btn-sm p-1 float-right" 102 class="btn btn-sm p-1 float-right"
103 ng-class="{ 103 ng-class="{
104 'btn-secondary': selectedDomicilio != key + 1, 104 'btn-secondary': selectedDomicilio != key + 1,
105 'btn-primary': selectedDomicilio == key + 1 105 'btn-primary': selectedDomicilio == key + 1
106 }" 106 }"
107 foca-focus="selectedDomicilio == {{key + 1}}" 107 foca-focus="selectedDomicilio == {{key + 1}}"
108 ng-keydown="itemDomicilio($event.keyCode)" 108 ng-keydown="itemDomicilio($event.keyCode)"
109 ng-click="select(domicilio)" 109 ng-click="select(domicilio)"
110 title="Seleccionar" 110 title="Seleccionar"
111 > 111 >
112 <i class="fa fa-circle-thin" aria-hidden="true"></i> 112 <i class="fa fa-circle-thin" aria-hidden="true"></i>
113 </button> 113 </button>
114 </td> 114 </td>
115 </tr> 115 </tr>
116 </tbody> 116 </tbody>
117 </table> 117 </table>
118 </div> 118 </div>
119 <form name="formDomicilio" ng-show="ingreso"> 119 <form name="formDomicilio" ng-show="ingreso">
120 <input 120 <input
121 type="hidden" 121 type="hidden"
122 ng-model="domicilio.latitud" 122 ng-model="domicilio.latitud"
123 ng-required="true"> 123 ng-required="true">
124 <input 124 <input
125 type="hidden" 125 type="hidden"
126 ng-model="domicilio.longitud" 126 ng-model="domicilio.longitud"
127 ng-required="true"> 127 ng-required="true">
128 <div class="row"> 128 <div class="row">
129 <div class="col-4"> 129 <div class="col-4">
130 <label>Tipo</label> 130 <label>Tipo</label>
131 <select 131 <select
132 class="form-control" 132 class="form-control"
133 ng-disabled="true" 133 ng-disabled="true"
134 > 134 >
135 <option ng-value="2">Entrega</option> 135 <option ng-value="2">Entrega</option>
136 </select> 136 </select>
137 </div> 137 </div>
138 <div class="col-8"> 138 <div class="col-8">
139 <label>Titulo</label> 139 <label>Titulo</label>
140 <input 140 <input
141 type="text" 141 type="text"
142 foca-focus="ingreso" 142 foca-focus="ingreso"
143 class="form-control" 143 class="form-control"
144 ng-model="domicilio.titulo" 144 ng-model="domicilio.titulo"
145 placeholder="Ingrese título" 145 placeholder="Ingrese título"
146 ng-required="true" 146 ng-required="true"
147 ng-keypress="next($event.keyCode)" 147 ng-keypress="next($event.keyCode)"
148 ng-focus="focused = 1" 148 ng-focus="focused = 1"
149 foca-focus="focused == 1" 149 foca-focus="focused == 1"
150 teclado-virtual 150 teclado-virtual
151 /> 151 />
152 </div> 152 </div>
153 <div class="col-9"> 153 <div class="col-9">
154 <label>Calle</label> 154 <label>Calle</label>
155 <input 155 <input
156 type="text" 156 type="text"
157 class="form-control" 157 class="form-control"
158 ng-model="domicilio.calle" 158 ng-model="domicilio.calle"
159 placeholder="Ingrese calle" 159 placeholder="Ingrese calle"
160 ng-required="true" 160 ng-required="true"
161 ng-keypress="next($event.keyCode)" 161 ng-keypress="next($event.keyCode)"
162 ng-focus="focused = 2" 162 ng-focus="focused = 2"
163 foca-focus="focused == 2" 163 foca-focus="focused == 2"
164 teclado-virtual 164 teclado-virtual
165 /> 165 />
166 </div> 166 </div>
167 <div class="col-3"> 167 <div class="col-3">
168 <label>Nº</label> 168 <label>Nº</label>
169 <input 169 <input
170 type="text" 170 type="text"
171 class="form-control" 171 class="form-control"
172 ng-model="domicilio.numeroCalle" 172 ng-model="domicilio.numeroCalle"
173 placeholder="Ingrese Numero" 173 placeholder="Ingrese Numero"
174 ng-required="true" 174 ng-required="true"
175 ng-keypress="next($event.keyCode)" 175 ng-keypress="next($event.keyCode)"
176 ng-focus="focused = 3" 176 ng-focus="focused = 3"
177 foca-focus="focused == 3" 177 foca-focus="focused == 3"
178 teclado-virtual 178 teclado-virtual
179 /> 179 />
180 </div> 180 </div>
181 <div class="col-6"> 181 <div class="col-6">
182 <label>Localidad</label> 182 <label>Localidad</label>
183 <input 183 <input
184 type="text" 184 type="text"
185 class="form-control" 185 class="form-control"
186 ng-model="domicilio.localidad" 186 ng-model="domicilio.localidad"
187 placeholder="Ingrese localidad" 187 placeholder="Ingrese localidad"
188 ng-required="true" 188 ng-required="true"
189 ng-keypress="next($event.keyCode)" 189 ng-keypress="next($event.keyCode)"
190 ng-focus="focused = 4" 190 ng-focus="focused = 4"
191 foca-focus="focused == 4" 191 foca-focus="focused == 4"
192 teclado-virtual 192 teclado-virtual
193 /> 193 />
194 </div> 194 </div>
195 <div class="col-6"> 195 <div class="col-6">
196 <label>Provincia</label> 196 <label>Provincia</label>
197 <input 197 <input
198 type="text" 198 type="text"
199 class="form-control" 199 class="form-control"
200 ng-model="domicilio.provincia" 200 ng-model="domicilio.provincia"
201 placeholder="Ingrese provincia" 201 placeholder="Ingrese provincia"
202 ng-required="true" 202 ng-required="true"
203 ng-keypress="next($event.keyCode)" 203 ng-keypress="next($event.keyCode)"
204 ng-focus="focused = 5" 204 ng-focus="focused = 5"
205 foca-focus="focused == 5" 205 foca-focus="focused == 5"
206 teclado-virtual 206 teclado-virtual
207 /> 207 />
208 </div> 208 </div>
209 </div> 209 </div>
210 <div class="row mt-3"> 210 <div class="row mt-3">
211 <div class="col-12"> 211 <div class="col-12">
212 <button 212 <button
213 type="button" 213 type="button"
214 class="btn btn-primary float-right ml-3" 214 class="btn btn-primary float-right ml-3"
215 ng-click="localizarDomicilio()">Buscar</button> 215 ng-click="localizarDomicilio()">Buscar</button>
216 <button 216 <button
217 type="button" 217 type="button"
218 class="btn btn-primary float-right" 218 class="btn btn-primary float-right"
219 ng-disabled="!domicilio.calle || !domicilio.numeroCalle || !domicilio.localidad || !domicilio.provincia" 219 ng-disabled="!domicilio.calle || !domicilio.numeroCalle || !domicilio.localidad || !domicilio.provincia"
220 ng-click="localizarDomicilio(true)">Localizar</button> 220 ng-click="localizarDomicilio(true)">Localizar</button>
221 </div> 221 </div>
222 </div> 222 </div>
223 </form> 223 </form>
224 </div> 224 </div>
225 <div class="modal-footer"> 225 <div class="modal-footer">
226 <nav ng-show="currentPageDomicilios.length > 0 && !ingreso" class="mr-auto"> 226 <nav ng-show="currentPageDomicilios.length > 0 && !ingreso" class="mr-auto">
227 <ul class="pagination pagination-sm mb-0 justify-content-end"> 227 <ul class="pagination pagination-sm mb-0 justify-content-end">
228 <li class="page-item" ng-class="{'disabled': currentPage == 1}"> 228 <li class="page-item" ng-class="{'disabled': currentPage == 1}">
229 <a class="page-link" href="javascript:void();" ng-click="selectPage(currentPage - 1)"> 229 <a class="page-link" href="javascript:void();" ng-click="selectPage(currentPage - 1)">
230 <span aria-hidden="true">&laquo;</span> 230 <span aria-hidden="true">&laquo;</span>
231 <span class="sr-only">Anterior</span> 231 <span class="sr-only">Anterior</span>
232 </a> 232 </a>
233 </li> 233 </li>
234 <li 234 <li
235 class="page-item" 235 class="page-item"
236 ng-repeat="pagina in paginas" 236 ng-repeat="pagina in paginas"
237 ng-class="{'active': pagina == currentPage}" 237 ng-class="{'active': pagina == currentPage}"
238 > 238 >
239 <a 239 <a
240 class="page-link" 240 class="page-link"
241 href="javascript:void();" 241 href="javascript:void();"
242 ng-click="selectPage(pagina)" 242 ng-click="selectPage(pagina)"
243 ng-bind="pagina" 243 ng-bind="pagina"
244 ></a> 244 ></a>
245 </li> 245 </li>
246 <li class="page-item" ng-class="{'disabled': currentPage == lastPage}"> 246 <li class="page-item" ng-class="{'disabled': currentPage == lastPage}">
247 <a class="page-link" href="javascript:void();" ng-click="selectPage(currentPage + 1)"> 247 <a class="page-link" href="javascript:void();" ng-click="selectPage(currentPage + 1)">
248 <span aria-hidden="true">&raquo;</span> 248 <span aria-hidden="true">&raquo;</span>
249 <span class="sr-only">Siguiente</span> 249 <span class="sr-only">Siguiente</span>
250 </a> 250 </a>
251 </li> 251 </li>
252 </ul> 252 </ul>
253 </nav> 253 </nav>
254 <button 254 <button
255 ng-show="!ingreso" 255 ng-show="!ingreso"
256 class="btn btn-sm btn-secondary" 256 class="btn btn-sm btn-secondary"
257 type="button" 257 type="button"
258 ng-click="cancel()" 258 ng-click="cancel()"
259 >Volver 259 >Volver
260 </button> 260 </button>
261 <button 261 <button
262 ng-show="ingreso" 262 ng-show="ingreso"
263 class="btn btn-secondary btn-sm" 263 class="btn btn-secondary btn-sm"
264 type="button" 264 type="button"
265 ng-click="ingreso = !ingreso; domicilio = {}; contactos = [{}]" 265 ng-click="ingreso = !ingreso; domicilio = {}; contactos = [{}]"
266 >Cancelar 266 >Cancelar
267 </button> 267 </button>
268 <button 268 <button
269 ng-show="ingreso" 269 ng-show="ingreso"
270 class="btn btn-sm btn-primary" 270 class="btn btn-sm btn-primary"
271 type="button"
272 ng-click="agregarDomicilio()" 271 type="button"
273 ng-disabled="!formDomicilio.$valid" 272 ng-click="agregarDomicilio()"
274 >Agregar domicilio 273 >Agregar domicilio
275 </button> 274 </button>
276 </div> 275 </div>
277 276