Commit 696658a387baf453f1390fd002dfc3be76d7dd69

Authored by Jose Pinto
1 parent be17b0970f
Exists in master

agrego precio sugerido y foca-focus a todos los campos

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