Commit 71ca5ecd9cb7d6b1f65e03a7a622163c7eb06ba5

Authored by Jose Pinto
1 parent 6137782ec8
Exists in master

fix bug focus

src/js/controller.js
1 angular.module('focaModalCheque') 1 angular.module('focaModalCheque')
2 .controller('focaModalChequeController', 2 .controller('focaModalChequeController',
3 [ 3 [
4 '$filter', 4 '$filter',
5 '$scope', 5 '$scope',
6 '$uibModalInstance', 6 '$uibModalInstance',
7 '$uibModal', 7 '$uibModal',
8 'sugerido', 8 'sugerido',
9 'focaModalService', 9 'focaModalService',
10 function($filter, $scope, $uibModalInstance, $uibModal, sugerido, focaModalService) { 10 function($filter, $scope, $uibModalInstance, $uibModal, sugerido, focaModalService) {
11 $scope.cheque = { 11 $scope.cheque = {
12 banco: { 12 banco: {
13 desbco: ''//Nombre del banco 13 desbco: ''//Nombre del banco
14 }, 14 },
15 provincia: { 15 provincia: {
16 NOMBRE:'' 16 NOMBRE:''
17 }, 17 },
18 localidad: { 18 localidad: {
19 NOMBRE: '' 19 NOMBRE: ''
20 }, 20 },
21 fechaEmision: new Date() 21 fechaEmision: new Date()
22 }; 22 };
23 $scope.focused = 1; 23 $scope.focused = 1;
24 24
25 if(sugerido && sugerido < 0) { 25 if(sugerido && sugerido < 0) {
26 $scope.cheque.importe = Math.abs(sugerido); 26 $scope.cheque.importe = Math.abs(sugerido);
27 } 27 }
28 $scope.next = function(key) {
29 if(key === 13) $scope.focused++;
30 };
28 31
29 $scope.seleccionarBanco = function(key) { 32 $scope.seleccionarBanco = function(key) {
30 if(key === 13) { 33 if(key === 13) {
31 var parametrosModal = { 34 var parametrosModal = {
32 query: '/banco', 35 query: '/banco',
33 columnas: [ 36 columnas: [
34 { 37 {
35 propiedad: 'ID', 38 propiedad: 'ID',
36 nombre: 'Codigo', 39 nombre: 'Codigo',
37 filtro: { 40 filtro: {
38 nombre: 'rellenarDigitos', 41 nombre: 'rellenarDigitos',
39 parametro: 3} 42 parametro: 3}
40 }, 43 },
41 { 44 {
42 propiedad: 'desbco', 45 propiedad: 'desbco',
43 nombre: 'Nombre' 46 nombre: 'Nombre'
44 } 47 }
45 ], 48 ],
46 titulo:'Búsqueda de bancos', 49 titulo:'Búsqueda de bancos',
47 size: 'md' 50 size: 'md'
48 }; 51 };
49 focaModalService.modal(parametrosModal).then(function(banco) { 52 focaModalService.modal(parametrosModal).then(function(banco) {
50 $scope.cheque.banco = banco; 53 $scope.cheque.banco = banco;
51 $scope.focused = 2; 54 $scope.focused = 2;
52 }, function() { 55 }, function() {
53 //TODO: función llamada cuando cancela el modal 56 //TODO: función llamada cuando cancela el modal
54 }); 57 });
55 } 58 }
56 }; 59 };
57 60
58 $scope.seleccionarProvincia = function(key) { 61 $scope.seleccionarProvincia = function(key) {
59 if(key === 13) { 62 if(key === 13) {
60 var parametrosModal = { 63 var parametrosModal = {
61 query: '/provincia', 64 query: '/provincia',
62 columnas: [ 65 columnas: [
63 { 66 {
64 propiedad: 'ID', 67 propiedad: 'ID',
65 nombre: 'Codigo', 68 nombre: 'Codigo',
66 filtro: { 69 filtro: {
67 nombre: 'rellenarDigitos', 70 nombre: 'rellenarDigitos',
68 parametro: 3} 71 parametro: 3}
69 }, 72 },
70 { 73 {
71 propiedad: 'NOMBRE', 74 propiedad: 'NOMBRE',
72 nombre: 'Nombre' 75 nombre: 'Nombre'
73 } 76 }
74 ], 77 ],
75 titulo:'Búsqueda de provincias', 78 titulo:'Búsqueda de provincias',
76 size: 'md' 79 size: 'md'
77 }; 80 };
78 focaModalService.modal(parametrosModal).then(function(provincia) { 81 focaModalService.modal(parametrosModal).then(function(provincia) {
79 $scope.cheque.provincia = provincia; 82 $scope.cheque.provincia = provincia;
80 $scope.focused = 3; 83 $scope.focused = 3;
81 }, function() { 84 }, function() {
82 //TODO: función llamada cuando cancela el modal 85 //TODO: función llamada cuando cancela el modal
83 }); 86 });
84 } 87 }
85 }; 88 };
86 89
87 $scope.seleccionarLocalidad = function(key) { 90 $scope.seleccionarLocalidad = function(key) {
88 if($scope.cheque.provincia.ID === undefined) { 91 if($scope.cheque.provincia.ID === undefined) {
89 focaModalService.alert('Seleccione una provincia'); 92 focaModalService.alert('Seleccione una provincia');
90 return; 93 return;
91 } 94 }
92 if(key === 13) { 95 if(key === 13) {
93 var parametrosModal = { 96 var parametrosModal = {
94 query: '/localidad/' + $scope.cheque.provincia.ID, 97 query: '/localidad/' + $scope.cheque.provincia.ID,
95 columnas: [ 98 columnas: [
96 { 99 {
97 propiedad: 'ID', 100 propiedad: 'ID',
98 nombre: 'Codigo', 101 nombre: 'Codigo',
99 filtro: { 102 filtro: {
100 nombre: 'rellenarDigitos', 103 nombre: 'rellenarDigitos',
101 parametro: 3} 104 parametro: 3}
102 }, 105 },
103 { 106 {
104 propiedad: 'NOMBRE', 107 propiedad: 'NOMBRE',
105 nombre: 'Nombre' 108 nombre: 'Nombre'
106 } 109 }
107 ], 110 ],
108 titulo:'Búsqueda de localidades', 111 titulo:'Búsqueda de localidades',
109 size: 'md' 112 size: 'md'
110 }; 113 };
111 focaModalService.modal(parametrosModal).then(function(localidad) { 114 focaModalService.modal(parametrosModal).then(function(localidad) {
112 $scope.cheque.localidad = localidad; 115 $scope.cheque.localidad = localidad;
113 $scope.focused = 4; 116 $scope.focused = 4;
114 }, function() { 117 }, function() {
115 //TODO: función llamada cuando cancela el modal 118 //TODO: función llamada cuando cancela el modal
116 }); 119 });
117 } 120 }
118 }; 121 };
119 122
120 $scope.aceptar = function() { 123 $scope.aceptar = function() {
121 delete $scope.cheque.provincia.localidades; 124 delete $scope.cheque.provincia.localidades;
122 //TODO: al enviar el importe con punto se pone como mil, no como decimal 125 //TODO: al enviar el importe con punto se pone como mil, no como decimal
123 $scope.cheque.importe = parseFloat($scope.cheque.importe); 126 $scope.cheque.importe = parseFloat($scope.cheque.importe);
124 $uibModalInstance.close($scope.cheque); 127 $uibModalInstance.close($scope.cheque);
125 }; 128 };
126 129
127 $scope.cancel = function() { 130 $scope.cancel = function() {
128 $uibModalInstance.dismiss('cancel'); 131 $uibModalInstance.dismiss('cancel');
129 }; 132 };
130 } 133 }
131 ] 134 ]
132 ); 135 );
133 136
src/views/modal-cheque.html
1 <div class="modal-header"> 1 <div class="modal-header">
2 <h3 class="modal-title">Cobro con cheques</h3> 2 <h3 class="modal-title">Cobro con cheques</h3>
3 </div> 3 </div>
4 <div class="modal-body" id="modal-body"> 4 <div class="modal-body" id="modal-body">
5 <form name="formCheque"> 5 <form name="formCheque">
6 <div class="row"> 6 <div class="row">
7 <div class="col-12 col-md-2"> 7 <div class="col-12 col-md-2">
8 <label class="form-control-sm">Banco:</label> 8 <label class="form-control-sm">Banco:</label>
9 </div> 9 </div>
10 <div class="col-12 col-md-10 input-group"> 10 <div class="col-12 col-md-10 input-group">
11 <input 11 <input
12 type="text" 12 type="text"
13 teclado-virtual 13 teclado-virtual
14 class="form-control form-control-sm" 14 class="form-control form-control-sm"
15 placeholder="Nombre del banco o código" 15 placeholder="Nombre del banco o código"
16 ng-model="cheque.banco.desbco" 16 ng-model="cheque.banco.desbco"
17 ng-required="true" 17 ng-required="true"
18 ng-keypress="seleccionarBanco($event.keyCode)" 18 ng-keypress="seleccionarBanco($event.keyCode)"
19 foca-focus="focused == 1" 19 foca-focus="focused == 1"
20 ng-focus="focused = 1" 20 ng-focus="focused = 1"
21 /> 21 />
22 <div class="input-group-append"> 22 <div class="input-group-append">
23 <button 23 <button
24 ladda="searchLoading" 24 ladda="searchLoading"
25 class="btn btn-outline-secondary form-control-sm" 25 class="btn btn-outline-secondary form-control-sm"
26 type="button" 26 type="button"
27 ng-click="seleccionarBanco(13)" 27 ng-click="seleccionarBanco(13)"
28 > 28 >
29 <i class="fa fa-search" aria-hidden="true"></i> 29 <i class="fa fa-search" aria-hidden="true"></i>
30 </button> 30 </button>
31 </div> 31 </div>
32 </div> 32 </div>
33 <div class="col-12 col-md-2"> 33 <div class="col-12 col-md-2">
34 <label class="form-control-sm">Provincia:</label> 34 <label class="form-control-sm">Provincia:</label>
35 </div> 35 </div>
36 <div class="col-12 col-md-5 input-group"> 36 <div class="col-12 col-md-5 input-group">
37 <input 37 <input
38 type="text" 38 type="text"
39 teclado-virtual 39 teclado-virtual
40 class="form-control form-control-sm" 40 class="form-control form-control-sm"
41 placeholder="Nombre o Código de Provincia " 41 placeholder="Nombre o Código de Provincia "
42 ng-model="cheque.provincia.NOMBRE" 42 ng-model="cheque.provincia.NOMBRE"
43 ng-required="true" 43 ng-required="true"
44 ng-keypress="seleccionarProvincia($event.keyCode)" 44 ng-keypress="seleccionarProvincia($event.keyCode)"
45 foca-focus="focused == 2" 45 foca-focus="focused == 2"
46 ng-focus="focused = 2"/> 46 ng-focus="focused = 2"/>
47 <div class="input-group-append"> 47 <div class="input-group-append">
48 <button 48 <button
49 ladda="searchLoading" 49 ladda="searchLoading"
50 class="btn btn-outline-secondary form-control-sm" 50 class="btn btn-outline-secondary form-control-sm"
51 type="button" 51 type="button"
52 ng-click="seleccionarProvincia(13)" 52 ng-click="seleccionarProvincia(13)"
53 > 53 >
54 <i class="fa fa-search" aria-hidden="true"></i> 54 <i class="fa fa-search" aria-hidden="true"></i>
55 </button> 55 </button>
56 </div> 56 </div>
57 </div> 57 </div>
58 <div class="col-12 col-md-1"> 58 <div class="col-12 col-md-1">
59 <label class="form-control-sm">Lugar:</label> 59 <label class="form-control-sm">Lugar:</label>
60 </div> 60 </div>
61 <div class="col-12 col-md-4 input-group"> 61 <div class="col-12 col-md-4 input-group">
62 <input 62 <input
63 type="text" 63 type="text"
64 teclado-virtual 64 teclado-virtual
65 class="form-control form-control-sm" 65 class="form-control form-control-sm"
66 placeholder="Nombre o código del lugar" 66 placeholder="Nombre o código del lugar"
67 ng-model="cheque.localidad.NOMBRE" 67 ng-model="cheque.localidad.NOMBRE"
68 ng-required="true" 68 ng-required="true"
69 ng-keypress="seleccionarLocalidad($event.keyCode)" 69 ng-keypress="seleccionarLocalidad($event.keyCode)"
70 foca-focus="focused == 3" 70 foca-focus="focused == 3"
71 ng-focus="focused = 3"/> 71 ng-focus="focused = 3"/>
72 <div class="input-group-append"> 72 <div class="input-group-append">
73 <button 73 <button
74 ladda="searchLoading" 74 ladda="searchLoading"
75 class="btn btn-outline-secondary form-control-sm" 75 class="btn btn-outline-secondary form-control-sm"
76 type="button" 76 type="button"
77 ng-click="seleccionarLocalidad(13)" 77 ng-click="seleccionarLocalidad(13)"
78 > 78 >
79 <i class="fa fa-search" aria-hidden="true"></i> 79 <i class="fa fa-search" aria-hidden="true"></i>
80 </button> 80 </button>
81 </div> 81 </div>
82 </div> 82 </div>
83 <div class="col-12 col-md-2"> 83 <div class="col-12 col-md-2">
84 <label class="form-control-sm">Librador:</label> 84 <label class="form-control-sm">Librador:</label>
85 </div> 85 </div>
86 <div class="col-12 col-md-10"> 86 <div class="col-12 col-md-10">
87 <input 87 <input
88 type="text" 88 type="text"
89 teclado-virtual 89 teclado-virtual
90 class="form-control form-control-sm" 90 class="form-control form-control-sm"
91 placeholder="Librador" 91 placeholder="Librador"
92 ng-model="cheque.librador" 92 ng-model="cheque.librador"
93 ng-required="true" 93 ng-required="true"
94 ng-keypress="focused = 5" 94 ng-keypress="next($event.keyCode)"
95 foca-focus="focused == 4" 95 foca-focus="focused == 4"
96 ng-focus="focused = 4"/> 96 ng-focus="focused = 4"/>
97 </div> 97 </div>
98 <div class="col-12 col-md-2"> 98 <div class="col-12 col-md-2">
99 <label class="form-control-sm">Cheque:</label> 99 <label class="form-control-sm">Cheque:</label>
100 </div> 100 </div>
101 <div class="col-6 col-md-3"> 101 <div class="col-6 col-md-3">
102 <input 102 <input
103 foca-tipo-input 103 foca-tipo-input
104 teclado-virtual 104 teclado-virtual
105 class="form-control form-control-sm" 105 class="form-control form-control-sm"
106 placeholder="Número" 106 placeholder="Número"
107 ng-model="cheque.numero" 107 ng-model="cheque.numero"
108 ng-required="true" 108 ng-required="true"
109 ng-keypress="focused = 6" 109 ng-keypress="next($event.keyCode)"
110 foca-focus="focused == 5" 110 foca-focus="focused == 5"
111 ng-focus="focused = 5"/> 111 ng-focus="focused = 5"/>
112 </div> 112 </div>
113 <div class="col-6 col-md-7 input-group mb-2"> 113 <div class="col-6 col-md-7 input-group mb-2">
114 <div class="input-group-prepend"> 114 <div class="input-group-prepend">
115 <div class="input-group-text form-control form-control-sm">$</div> 115 <div class="input-group-text form-control form-control-sm">$</div>
116 </div> 116 </div>
117 <input 117 <input
118 foca-tipo-input 118 foca-tipo-input
119 teclado-virtual 119 teclado-virtual
120 class="form-control form-control-sm" 120 class="form-control form-control-sm"
121 placeholder="Importe" 121 placeholder="Importe"
122 ng-model="cheque.importe" 122 ng-model="cheque.importe"
123 ng-keypress="focused = 7; datepickerOpen = true" 123 ng-keypress="next($event.keyCode)"
124 ng-required="true" 124 ng-required="true"
125 foca-focus="focused == 6" 125 foca-focus="focused == 6"
126 ng-focus="focused = 6"/> 126 ng-focus="focused = 6"/>
127 </div> 127 </div>
128 <div class="col-12 col-md-2"> 128 <div class="col-12 col-md-2">
129 <label class="form-control-sm">Emisión:</label> 129 <label class="form-control-sm">Emisión:</label>
130 </div> 130 </div>
131 <div class="col-12 col-md-4 input-group"> 131 <div class="col-12 col-md-4 input-group">
132 <div class="input-group-prepend"> 132 <div class="input-group-prepend">
133 <div class="input-group-text form-control form-control-sm"> 133 <div class="input-group-text form-control form-control-sm">
134 <i class="fa fa-calendar"></i> 134 <i class="fa fa-calendar"></i>
135 </div> 135 </div>
136 </div> 136 </div>
137 <input 137 <input
138 type="text" 138 type="text"
139 class="form-control form-control-sm" 139 class="form-control form-control-sm"
140 placeholder="Fecha" 140 placeholder="Fecha"
141 ng-model="cheque.fechaEmision" 141 ng-model="cheque.fechaEmision"
142 uib-datepicker-popup="dd/MM/yyyy" 142 uib-datepicker-popup="dd/MM/yyyy"
143 show-button-bar="false" 143 show-button-bar="false"
144 is-open="datepickerOpen" 144 is-open="datepickerOpen"
145 on-open-focus="false" 145 on-open-focus="false"
146 ng-focus="datepickerOpen = true; focused = 7" 146 ng-focus="datepickerOpen = true; focused = 7"
147 ng-required="true" 147 ng-required="true"
148 foca-focus="focused == 7" 148 foca-focus="focused == 7"
149 ng-blur="focused = 8"/> 149 ng-blur="focused = 8"/>
150 </div> 150 </div>
151 <div class="col-12 col-md-2"> 151 <div class="col-12 col-md-2">
152 <label class="form-control-sm">Presentación:</label> 152 <label class="form-control-sm">Presentación:</label>
153 </div> 153 </div>
154 <div class="col-12 col-md-4 input-group"> 154 <div class="col-12 col-md-4 input-group">
155 <div class="input-group-prepend"> 155 <div class="input-group-prepend">
156 <div class="input-group-text form-control form-control-sm"> 156 <div class="input-group-text form-control form-control-sm">
157 <i class="fa fa-calendar"></i> 157 <i class="fa fa-calendar"></i>
158 </div> 158 </div>
159 </div> 159 </div>
160 <input 160 <input
161 type="text" 161 type="text"
162 class="form-control form-control-sm" 162 class="form-control form-control-sm"
163 placeholder="Fecha" 163 placeholder="Fecha"
164 ng-model="cheque.fechaPresentacion" 164 ng-model="cheque.fechaPresentacion"
165 uib-datepicker-popup="dd/MM/yyyy" 165 uib-datepicker-popup="dd/MM/yyyy"
166 show-button-bar="false" 166 show-button-bar="false"
167 is-open="datepicker2Open" 167 is-open="datepicker2Open"
168 on-open-focus="false" 168 on-open-focus="false"
169 ng-focus="datepicker2Open = true; focused = 8" 169 ng-focus="datepicker2Open = true; focused = 8"
170 ng-required="true" 170 ng-required="true"
171 foca-focus="focused == 8" 171 foca-focus="focused == 8"
172 ng-blur="focused = 9"/> 172 ng-blur="focused = 9"/>
173 </div> 173 </div>
174 <div class="col-12 col-md-2"> 174 <div class="col-12 col-md-2">
175 <label class="form-control-sm">Observaciones:</label> 175 <label class="form-control-sm">Observaciones:</label>
176 </div> 176 </div>
177 <div class="col-12 col-md-10"> 177 <div class="col-12 col-md-10">
178 <textarea teclado-virtual 178 <textarea teclado-virtual
179 ng-model="cheque.observaciones" 179 ng-model="cheque.observaciones"
180 class="form-control form-control-sm" 180 class="form-control form-control-sm"
181 foca-focus="focused == 9" 181 foca-focus="focused == 9"
182 ng-focus="focused = 9"></textarea> 182 ng-focus="focused = 9"></textarea>
183 </div> 183 </div>
184 </div> 184 </div>
185 </form> 185 </form>
186 </div> 186 </div>
187 <div class="modal-footer"> 187 <div class="modal-footer">
188 <button 188 <button
189 class="btn btn-primary" 189 class="btn btn-primary"
190 type="button" 190 type="button"
191 ng-click="aceptar()" 191 ng-click="aceptar()"
192 ng-disabled="!formCheque.$valid" 192 ng-disabled="!formCheque.$valid"
193 >Aceptar</button> 193 >Aceptar</button>
194 <button class="btn btn-secondary" type="button" ng-click="cancel()">Cancelar</button> 194 <button class="btn btn-secondary" type="button" ng-click="cancel()">Cancelar</button>
195 </div> 195 </div>
196 196