Commit 5b2034ac429af2a8d1b4340a0cfd7f1ba9027c00
1 parent
8b7191751b
Exists in
master
Limitacion de numeros en DNI - Telefono
Showing
3 changed files
with
58 additions
and
27 deletions
Show diff stats
spec/controllerSpec.js
1 | describe('Controladores de abm chofer', function() { | 1 | describe('Controladores de abm chofer', function() { |
2 | 2 | ||
3 | var $controller; | 3 | var $controller; |
4 | 4 | ||
5 | beforeEach(function() { | 5 | beforeEach(function() { |
6 | module('focaAbmChofer'); | 6 | module('focaAbmChofer'); |
7 | inject(function(_$controller_) { | 7 | inject(function(_$controller_) { |
8 | $controller = _$controller_; | 8 | $controller = _$controller_; |
9 | }); | 9 | }); |
10 | }); | 10 | }); |
11 | 11 | ||
12 | describe('Controlador focaAbmChoferesController', function() { | 12 | describe('Controlador focaAbmChoferesController', function() { |
13 | 13 | ||
14 | it('Existe el controlador focaAbmChoferesController', function() { | 14 | it('Existe el controlador focaAbmChoferesController', function() { |
15 | //arrange | 15 | //arrange |
16 | var controlador = $controller('focaAbmChoferesController', { | 16 | var controlador = $controller('focaAbmChoferesController', { |
17 | $scope: {}, | 17 | $scope: {}, |
18 | focaAbmChoferService: { | 18 | focaAbmChoferService: { |
19 | transportistaSeleccionado: function() { return; } | 19 | transportistaSeleccionado: function() { return; } |
20 | }, | 20 | }, |
21 | $location: {}, | 21 | $location: {}, |
22 | $localStorage: {}, | ||
22 | $uibModal: {}, | 23 | $uibModal: {}, |
23 | focaModalService: {}, | 24 | focaModalService: {}, |
24 | focaBotoneraLateralService: {}, | 25 | focaBotoneraLateralService: {}, |
25 | $timeout: function() { return; } | 26 | $timeout: function() { return; } |
26 | }); | 27 | }); |
27 | 28 | ||
28 | //assert | 29 | //assert |
29 | expect(typeof controlador).toEqual('object'); | 30 | expect(typeof controlador).toEqual('object'); |
30 | }); | 31 | }); |
31 | 32 | ||
32 | it('$scope.solicitarConfirmacion levanta modal de confirmacion', function() { | 33 | it('$scope.solicitarConfirmacion levanta modal de confirmacion', function() { |
33 | //arrange | 34 | //arrange |
34 | var fakeParam = ''; | 35 | var fakeParam = ''; |
35 | var scope = {}; | 36 | var scope = {}; |
36 | var focaModalService = { | 37 | var focaModalService = { |
37 | confirm: function() { } | 38 | confirm: function() { } |
38 | }; | 39 | }; |
39 | var controlador = $controller('focaAbmChoferesController', { | 40 | var controlador = $controller('focaAbmChoferesController', { |
40 | $scope: scope, | 41 | $scope: scope, |
41 | focaAbmChoferService: { | 42 | focaAbmChoferService: { |
42 | transportistaSeleccionado: function() { return; } | 43 | transportistaSeleccionado: function() { return; } |
43 | }, | 44 | }, |
44 | $location: {}, | 45 | $location: {}, |
46 | $localStorage: {}, | ||
45 | $uibModal: {}, | 47 | $uibModal: {}, |
46 | focaModalService: focaModalService, | 48 | focaModalService: focaModalService, |
47 | focaBotoneraLateralService: {}, | 49 | focaBotoneraLateralService: {}, |
48 | $timeout: function() { return; } | 50 | $timeout: function() { return; } |
49 | }); | 51 | }); |
50 | console.info(controlador); | 52 | console.info(controlador); |
51 | 53 | ||
52 | //act | 54 | //act |
53 | spyOn(focaModalService, 'confirm').and.returnValue({ then: function() { }}); | 55 | spyOn(focaModalService, 'confirm').and.returnValue({ then: function() { }}); |
54 | scope.solicitarConfirmacion(fakeParam); | 56 | scope.solicitarConfirmacion(fakeParam); |
55 | 57 | ||
56 | //assert | 58 | //assert |
57 | expect(focaModalService.confirm).toHaveBeenCalled(); | 59 | expect(focaModalService.confirm).toHaveBeenCalled(); |
58 | }); | 60 | }); |
59 | 61 | ||
60 | it('$scope.solicitarConfirmacion elimina al confirmar', function(done) { | 62 | it('$scope.solicitarConfirmacion elimina al confirmar', function(done) { |
61 | //arrange | 63 | //arrange |
62 | var scope = {}; | 64 | var scope = {}; |
63 | var focaModalService = { | 65 | var focaModalService = { |
64 | confirm: function() { | 66 | confirm: function() { |
65 | return { | 67 | return { |
66 | then: function() { } | 68 | then: function() { } |
67 | }; | 69 | }; |
68 | } | 70 | } |
69 | }; | 71 | }; |
70 | var focaAbmChoferService = { | 72 | var focaAbmChoferService = { |
71 | transportistaSeleccionado: function() { return; }, | 73 | transportistaSeleccionado: function() { return; }, |
72 | deleteChofer: function() { } | 74 | deleteChofer: function() { } |
73 | }; | 75 | }; |
74 | var controlador = $controller('focaAbmChoferesController', { | 76 | var controlador = $controller('focaAbmChoferesController', { |
75 | $scope: scope, | 77 | $scope: scope, |
76 | focaAbmChoferService: focaAbmChoferService, | 78 | focaAbmChoferService: focaAbmChoferService, |
77 | $location: {}, | 79 | $location: {}, |
80 | $localStorage: {}, | ||
78 | $uibModal: {}, | 81 | $uibModal: {}, |
79 | focaModalService: focaModalService, | 82 | focaModalService: focaModalService, |
80 | focaBotoneraLateralService: {}, | 83 | focaBotoneraLateralService: {}, |
81 | $timeout: function() { return; } | 84 | $timeout: function() { return; } |
82 | }); | 85 | }); |
83 | console.info(controlador); | 86 | console.info(controlador); |
84 | var fakeParam = ''; | 87 | var fakeParam = ''; |
85 | var promesa = Promise.resolve(true); | 88 | var promesa = Promise.resolve(true); |
86 | 89 | ||
87 | //act | 90 | //act |
88 | spyOn(focaModalService, 'confirm').and.returnValue(promesa); | 91 | spyOn(focaModalService, 'confirm').and.returnValue(promesa); |
89 | spyOn(focaAbmChoferService, 'deleteChofer'); | 92 | spyOn(focaAbmChoferService, 'deleteChofer'); |
90 | scope.solicitarConfirmacion(fakeParam); | 93 | scope.solicitarConfirmacion(fakeParam); |
91 | 94 | ||
92 | //assert | 95 | //assert |
93 | promesa.then(function() { | 96 | promesa.then(function() { |
94 | expect(focaAbmChoferService.deleteChofer).toHaveBeenCalled(); | 97 | expect(focaAbmChoferService.deleteChofer).toHaveBeenCalled(); |
95 | done(); | 98 | done(); |
96 | }); | 99 | }); |
97 | }); | 100 | }); |
98 | 101 | ||
99 | it('$scope.seleccionarTransportista levanta modal', function() { | 102 | it('$scope.seleccionarTransportista levanta modal', function() { |
100 | //arrange | 103 | //arrange |
101 | var scope = {}; | 104 | var scope = {}; |
102 | var focaModalService = { | 105 | var focaModalService = { |
103 | modal: function() { } | 106 | modal: function() { } |
104 | }; | 107 | }; |
105 | var controlador = $controller('focaAbmChoferesController', { | 108 | var controlador = $controller('focaAbmChoferesController', { |
106 | $scope: scope, | 109 | $scope: scope, |
107 | focaAbmChoferService: { | 110 | focaAbmChoferService: { |
108 | transportistaSeleccionado: function() { } | 111 | transportistaSeleccionado: function() { } |
109 | }, | 112 | }, |
110 | $location: {}, | 113 | $location: {}, |
114 | $localStorage: {}, | ||
111 | $uibModal: {}, | 115 | $uibModal: {}, |
112 | focaModalService: focaModalService, | 116 | focaModalService: focaModalService, |
113 | focaBotoneraLateralService: {}, | 117 | focaBotoneraLateralService: {}, |
114 | $timeout: function() { return; } | 118 | $timeout: function() { return; } |
115 | }); | 119 | }); |
116 | console.info(controlador); | 120 | console.info(controlador); |
117 | 121 | ||
118 | //act | 122 | //act |
119 | spyOn(focaModalService, 'modal').and.returnValue({ then: function() { }}); | 123 | spyOn(focaModalService, 'modal').and.returnValue({ then: function() { }}); |
120 | scope.seleccionarTransportista(); | 124 | scope.seleccionarTransportista(); |
121 | 125 | ||
122 | //assert | 126 | //assert |
123 | expect(focaModalService.modal).toHaveBeenCalled(); | 127 | expect(focaModalService.modal).toHaveBeenCalled(); |
124 | }); | 128 | }); |
125 | }); | 129 | }); |
126 | 130 | ||
127 | describe('Controlador focaAbmChoferController', function() { | 131 | describe('Controlador focaAbmChoferController', function() { |
128 | 132 | ||
129 | it('Existe el controlador focaAbmChoferController', function() { | 133 | it('Existe el controlador focaAbmChoferController', function() { |
130 | //arrange | 134 | //arrange |
131 | var controlador = $controller('focaAbmChoferController', { | 135 | var controlador = $controller('focaAbmChoferController', { |
132 | $scope: {}, | 136 | $scope: { |
137 | $watch: function() {} | ||
138 | }, | ||
133 | focaAbmChoferService: { | 139 | focaAbmChoferService: { |
134 | getTiposDocumento: function() { | 140 | getTiposDocumento: function() { |
135 | return { | 141 | return { |
136 | then: function() { } | 142 | then: function() { } |
137 | }; | 143 | }; |
138 | }, | 144 | }, |
139 | getChofer: function() { | 145 | getChofer: function() { |
140 | return { | 146 | return { |
141 | then: function() { } | 147 | then: function() { } |
142 | }; | 148 | }; |
143 | }, | 149 | }, |
144 | getTransportistas: function() { | 150 | getTransportistas: function() { |
145 | return { | 151 | return { |
146 | then: function() { } | 152 | then: function() { } |
147 | }; | 153 | }; |
148 | } | 154 | } |
149 | }, | 155 | }, |
150 | $routeParams: {}, | 156 | $routeParams: {}, |
151 | $location: {}, | 157 | $location: {}, |
158 | $localStorage: {}, | ||
152 | focaBotoneraLateralService: {}, | 159 | focaBotoneraLateralService: {}, |
153 | $timeout: function() { return; }, | 160 | $timeout: function() { return; }, |
154 | focaModalService: {} | 161 | focaModalService: {} |
155 | }); | 162 | }); |
156 | 163 | ||
157 | //assert | 164 | //assert |
158 | expect(typeof controlador).toEqual('object'); | 165 | expect(typeof controlador).toEqual('object'); |
159 | }); | 166 | }); |
160 | 167 | ||
161 | it('$scope.cancelar lleva a la ruta correcta', function() { | 168 | it('$scope.cancelar lleva a la ruta correcta', function() { |
162 | inject(function($location) { | 169 | inject(function($location) { |
163 | //arrange | 170 | //arrange |
164 | var scope = {}; | 171 | var scope = { |
172 | $watch: function() {} | ||
173 | }; | ||
165 | var controlador = $controller('focaAbmChoferController', { | 174 | var controlador = $controller('focaAbmChoferController', { |
166 | $scope: scope, | 175 | $scope: scope, |
167 | focaAbmChoferService: { | 176 | focaAbmChoferService: { |
168 | getTiposDocumento: function() { | 177 | getTiposDocumento: function() { |
169 | return { | 178 | return { |
170 | then: function() { } | 179 | then: function() { } |
171 | }; | 180 | }; |
172 | }, | 181 | }, |
173 | getChofer: function() { | 182 | getChofer: function() { |
174 | return { | 183 | return { |
175 | then: function() { } | 184 | then: function() { } |
176 | }; | 185 | }; |
177 | }, | 186 | }, |
178 | getTransportistas: function() { | 187 | getTransportistas: function() { |
179 | return { | 188 | return { |
180 | then: function() { } | 189 | then: function() { } |
181 | }; | 190 | }; |
182 | } | 191 | } |
183 | }, | 192 | }, |
184 | $routeParams: {}, | 193 | $routeParams: {}, |
185 | $location: $location, | 194 | $location: $location, |
195 | $localStorage: {}, | ||
186 | focaBotoneraLateralService: {}, | 196 | focaBotoneraLateralService: {}, |
187 | $timeout: function() { return; }, | 197 | $timeout: function() { return; }, |
188 | focaModalService: {} | 198 | focaModalService: {} |
189 | }); | 199 | }); |
190 | console.info(controlador); | 200 | console.info(controlador); |
191 | 201 | ||
192 | //act | 202 | //act |
193 | scope.cancelar(); | 203 | scope.cancelar(); |
194 | 204 | ||
195 | //assert | 205 | //assert |
196 | expect($location.url()).toEqual('/chofer'); | 206 | expect($location.url()).toEqual('/chofer'); |
197 | }); | 207 | }); |
198 | }); | 208 | }); |
199 | 209 | ||
200 | it('$scope.guardar guarda chofer al validarDNI() da ok', function(done) { | 210 | it('$scope.guardar guarda chofer al validarDNI() da ok', function(done) { |
201 | 211 | ||
202 | //arrange | 212 | //arrange |
203 | var scope = {}; | 213 | var scope = { |
214 | $watch: function(){}, | ||
215 | chofer: {} | ||
216 | }; | ||
204 | var focaAbmChoferService = { | 217 | var focaAbmChoferService = { |
205 | getTiposDocumento: function() { | 218 | getTiposDocumento: function() { |
206 | return { | 219 | return { |
207 | then: function() { } | 220 | then: function() { } |
208 | }; | 221 | }; |
209 | }, | 222 | }, |
210 | getChofer: function() { | 223 | getChofer: function() { |
211 | return { | 224 | return { |
212 | then: function() { } | 225 | then: function() { } |
213 | }; | 226 | }; |
214 | }, | 227 | }, |
215 | getTransportistas: function() { | 228 | getTransportistas: function() { |
216 | return { | 229 | return { |
217 | then: function() { } | 230 | then: function() { } |
218 | }; | 231 | }; |
219 | }, | 232 | }, |
220 | guardarChofer: function() { }, | 233 | guardarChofer: function() { }, |
221 | getChoferPorDni: function() { } | 234 | getChoferPorDni: function() { } |
222 | }; | 235 | }; |
223 | var controlador = $controller('focaAbmChoferController', { | 236 | var controlador = $controller('focaAbmChoferController', { |
224 | $scope: scope, | 237 | $scope: scope, |
225 | focaAbmChoferService: focaAbmChoferService, | 238 | focaAbmChoferService: focaAbmChoferService, |
226 | $routeParams: {}, | 239 | $routeParams: {}, |
227 | $location: {}, | 240 | $location: {}, |
241 | $localStorage: {}, | ||
228 | focaBotoneraLateralService: {}, | 242 | focaBotoneraLateralService: {}, |
229 | $timeout: function() { return; }, | 243 | $timeout: function() { return; }, |
230 | focaModalService: {} | 244 | focaModalService: { |
245 | alert: function() {} | ||
246 | } | ||
231 | }); | 247 | }); |
232 | console.info(controlador); | 248 | console.info(controlador); |
233 | var resolveFake = { data: false }; | 249 | var resolveFake = { data: false }; |
234 | var promesaChoferPorDni = Promise.resolve(resolveFake); | 250 | var promesaChoferPorDni = Promise.resolve(resolveFake); |
235 | 251 | scope.chofer.nombre = true; | |
252 | scope.chofer.idTipoDocumento = true; | ||
253 | scope.chofer.dni = true; | ||
236 | //act | 254 | //act |
237 | spyOn(focaAbmChoferService, 'guardarChofer').and.returnValue({ then: function() { }}); | 255 | spyOn(focaAbmChoferService, 'guardarChofer').and.returnValue({ then: function() { }}); |
238 | spyOn(focaAbmChoferService, 'getChoferPorDni').and.returnValue(promesaChoferPorDni); | 256 | spyOn(focaAbmChoferService, 'getChoferPorDni').and.returnValue(promesaChoferPorDni); |
239 | scope.guardar(13); | 257 | scope.guardar(13); |
240 | 258 | ||
241 | //assert | 259 | //assert |
242 | promesaChoferPorDni.then(function() { | 260 | promesaChoferPorDni.then(function() { |
243 | setTimeout(function() { | 261 | setTimeout(function() { |
244 | expect(focaAbmChoferService.guardarChofer).toHaveBeenCalled(); | 262 | expect(focaAbmChoferService.guardarChofer).toHaveBeenCalled(); |
245 | done(); | 263 | done(); |
246 | }); | 264 | }); |
247 | }); | 265 | }); |
248 | }); | 266 | }); |
249 | 267 | ||
250 | it('$scope.guardar da alerta chofer al validarDNI() da reject', function(done) { | 268 | it('$scope.guardar da alerta chofer al validarDNI() da reject', function(done) { |
251 | 269 | ||
252 | //arrange | 270 | //arrange |
253 | var scope = {}; | 271 | var scope = { |
272 | $watch: function() {} | ||
273 | }; | ||
254 | var focaModalService = { | 274 | var focaModalService = { |
255 | alert: function() { } | 275 | alert: function() { } |
256 | }; | 276 | }; |
257 | var focaAbmChoferService = { | 277 | var focaAbmChoferService = { |
258 | getTiposDocumento: function() { | 278 | getTiposDocumento: function() { |
259 | return { | 279 | return { |
260 | then: function() { } | 280 | then: function() { } |
261 | }; | 281 | }; |
262 | }, | 282 | }, |
263 | getChofer: function() { | 283 | getChofer: function() { |
264 | return { | 284 | return { |
265 | then: function() { } | 285 | then: function() { } |
266 | }; | 286 | }; |
267 | }, | 287 | }, |
268 | getTransportistas: function() { | 288 | getTransportistas: function() { |
269 | return { | 289 | return { |
270 | then: function() { } | 290 | then: function() { } |
271 | }; | 291 | }; |
272 | }, | 292 | }, |
273 | getChoferPorDni: function() { } | 293 | getChoferPorDni: function() { } |
274 | }; | 294 | }; |
275 | var controlador = $controller('focaAbmChoferController', { | 295 | var controlador = $controller('focaAbmChoferController', { |
276 | $scope: scope, | 296 | $scope: scope, |
277 | focaAbmChoferService: focaAbmChoferService, | 297 | focaAbmChoferService: focaAbmChoferService, |
278 | $routeParams: {}, | 298 | $routeParams: {}, |
279 | $location: {}, | 299 | $location: {}, |
300 | $localStorage: {}, | ||
280 | focaBotoneraLateralService: {}, | 301 | focaBotoneraLateralService: {}, |
281 | $timeout: function() { return; }, | 302 | $timeout: function() { return; }, |
282 | focaModalService: focaModalService | 303 | focaModalService: focaModalService |
283 | }); | 304 | }); |
284 | console.info(controlador); | 305 | console.info(controlador); |
285 | var resolveFake = { data: { id: true } }; | 306 | var resolveFake = { data: { id: true } }; |
286 | var promesaChoferPorDni = Promise.resolve(resolveFake); | 307 | var promesaChoferPorDni = Promise.resolve(resolveFake); |
287 | 308 | ||
288 | //act | 309 | //act |
289 | spyOn(focaAbmChoferService, 'getChoferPorDni').and.returnValue(promesaChoferPorDni); | 310 | spyOn(focaAbmChoferService, 'getChoferPorDni').and.returnValue(promesaChoferPorDni); |
290 | spyOn(focaModalService, 'alert'); | 311 | spyOn(focaModalService, 'alert'); |
291 | scope.chofer.id = 'dato prueba'; | 312 | scope.chofer.id = 'dato prueba'; |
292 | scope.guardar(13); | 313 | scope.guardar(13); |
293 | 314 | ||
294 | //assert | 315 | //assert |
295 | promesaChoferPorDni.then(function() { | 316 | promesaChoferPorDni.then(function() { |
296 | //await sleep(100); | 317 | //await sleep(100); |
297 | setTimeout(function() { | 318 | setTimeout(function() { |
298 | expect(focaModalService.alert).toHaveBeenCalled(); | 319 | expect(focaModalService.alert).toHaveBeenCalled(); |
299 | done(); | 320 | done(); |
300 | }); | 321 | }); |
301 | }); | 322 | }); |
302 | }); | 323 | }); |
303 | }); | 324 | }); |
304 | }); | 325 | }); |
305 | 326 |
src/js/controller.js
1 | angular.module('focaAbmChofer') | 1 | angular.module('focaAbmChofer') |
2 | .controller('focaAbmChoferesController', [ | 2 | .controller('focaAbmChoferesController', [ |
3 | '$scope', 'focaAbmChoferService', '$location', '$uibModal', | 3 | '$scope', 'focaAbmChoferService', '$location', '$uibModal', |
4 | 'focaModalService', 'focaBotoneraLateralService', '$timeout', '$localStorage', | 4 | 'focaModalService', 'focaBotoneraLateralService', '$timeout', '$localStorage', |
5 | function($scope, focaAbmChoferService, $location, $uibModal, focaModalService, | 5 | function($scope, focaAbmChoferService, $location, $uibModal, focaModalService, |
6 | focaBotoneraLateralService, $timeout, $localStorage) { | 6 | focaBotoneraLateralService, $timeout, $localStorage) { |
7 | 7 | ||
8 | $scope.now = new Date(); | 8 | $scope.now = new Date(); |
9 | $scope.filters = ''; | 9 | $scope.filters = ''; |
10 | $scope.choferes = []; | 10 | $scope.choferes = []; |
11 | $scope.botonera = [{ | 11 | $scope.botonera = [{ |
12 | label: 'Transportista', | 12 | label: 'Transportista', |
13 | image: 'cliente.png' | 13 | image: 'cliente.png' |
14 | }]; | 14 | }]; |
15 | 15 | ||
16 | //SETEO BOTONERA LATERAL | 16 | //SETEO BOTONERA LATERAL |
17 | $timeout(function() { | 17 | $timeout(function() { |
18 | focaBotoneraLateralService.showSalir(false); | 18 | focaBotoneraLateralService.showSalir(false); |
19 | focaBotoneraLateralService.showPausar(false); | 19 | focaBotoneraLateralService.showPausar(false); |
20 | focaBotoneraLateralService.showCancelar(false); | 20 | focaBotoneraLateralService.showCancelar(false); |
21 | focaBotoneraLateralService.showGuardar(false); | 21 | focaBotoneraLateralService.showGuardar(false); |
22 | focaBotoneraLateralService.addCustomButton('Salir', salir); | 22 | focaBotoneraLateralService.addCustomButton('Salir', salir); |
23 | }); | 23 | }); |
24 | 24 | ||
25 | if (focaAbmChoferService.transportistaSeleccionado.COD) { | 25 | if (focaAbmChoferService.transportistaSeleccionado.COD) { |
26 | elegirTransportista(focaAbmChoferService.transportistaSeleccionado); | 26 | elegirTransportista(focaAbmChoferService.transportistaSeleccionado); |
27 | } | 27 | } |
28 | 28 | ||
29 | $scope.editar = function(id) { | 29 | $scope.editar = function(id) { |
30 | $location.path('/chofer/' + id + '/' + $scope.idTransportista); | 30 | $location.path('/chofer/' + id + '/' + $scope.idTransportista); |
31 | }; | 31 | }; |
32 | 32 | ||
33 | $scope.solicitarConfirmacion = function(chofer) { | 33 | $scope.solicitarConfirmacion = function(chofer) { |
34 | focaModalService.confirm('¿Está seguro que desea borrar el chofer ' + | 34 | focaModalService.confirm('¿Está seguro que desea borrar el chofer ' + |
35 | chofer.nombre + ' ?').then(function(confirmed) { | 35 | chofer.nombre + ' ?').then(function(confirmed) { |
36 | if (confirmed) { | 36 | if (confirmed) { |
37 | focaAbmChoferService.deleteChofer(chofer.id); | 37 | focaAbmChoferService.deleteChofer(chofer.id); |
38 | $scope.choferes.splice($scope.choferes.indexOf(chofer), 1); | 38 | $scope.choferes.splice($scope.choferes.indexOf(chofer), 1); |
39 | } | 39 | } |
40 | }); | 40 | }); |
41 | }; | 41 | }; |
42 | 42 | ||
43 | $scope.seleccionarTransportista = function() { | 43 | $scope.seleccionarTransportista = function() { |
44 | var parametrosModal = { | 44 | var parametrosModal = { |
45 | titulo: 'Búsqueda de Transportista', | 45 | titulo: 'Búsqueda de Transportista', |
46 | query: '/transportista', | 46 | query: '/transportista', |
47 | columnas: [ | 47 | columnas: [ |
48 | { | 48 | { |
49 | nombre: 'Código', | 49 | nombre: 'Código', |
50 | propiedad: 'COD' | 50 | propiedad: 'COD' |
51 | }, | 51 | }, |
52 | { | 52 | { |
53 | nombre: 'Nombre', | 53 | nombre: 'Nombre', |
54 | propiedad: 'NOM' | 54 | propiedad: 'NOM' |
55 | }, | 55 | }, |
56 | { | 56 | { |
57 | nombre: 'CUIT', | 57 | nombre: 'CUIT', |
58 | propiedad: 'CUIT' | 58 | propiedad: 'CUIT' |
59 | } | 59 | } |
60 | ] | 60 | ] |
61 | }; | 61 | }; |
62 | focaModalService.modal(parametrosModal).then( | 62 | focaModalService.modal(parametrosModal).then( |
63 | function(transportista) { | 63 | function(transportista) { |
64 | elegirTransportista(transportista); | 64 | elegirTransportista(transportista); |
65 | focaAbmChoferService.transportistaSeleccionado = transportista; | 65 | focaAbmChoferService.transportistaSeleccionado = transportista; |
66 | }, function() {} | 66 | }, function() {} |
67 | ); | 67 | ); |
68 | }; | 68 | }; |
69 | 69 | ||
70 | function elegirTransportista(transportista) { | 70 | function elegirTransportista(transportista) { |
71 | buscar(transportista.COD); | 71 | buscar(transportista.COD); |
72 | var codigo = ('00000' + transportista.COD).slice(-5); | 72 | var codigo = ('00000' + transportista.COD).slice(-5); |
73 | $scope.idTransportista = transportista.COD; | 73 | $scope.idTransportista = transportista.COD; |
74 | $timeout(function() { | 74 | $timeout(function() { |
75 | $scope.$broadcast('addCabecera', { | 75 | $scope.$broadcast('addCabecera', { |
76 | label: 'Transportista:', | 76 | label: 'Transportista:', |
77 | valor: codigo + ' - ' + transportista.NOM | 77 | valor: codigo + ' - ' + transportista.NOM |
78 | }); | 78 | }); |
79 | }); | 79 | }); |
80 | } | 80 | } |
81 | 81 | ||
82 | function buscar(id) { | 82 | function buscar(id) { |
83 | focaAbmChoferService.getChoferPorTransportista(id).then(function(res) { | 83 | focaAbmChoferService.getChoferPorTransportista(id).then(function(res) { |
84 | $scope.choferes = res.data; | 84 | $scope.choferes = res.data; |
85 | }); | 85 | }); |
86 | } | 86 | } |
87 | 87 | ||
88 | function salir() { | 88 | function salir() { |
89 | focaAbmChoferService.transportistaSeleccionado = {}; | 89 | focaAbmChoferService.transportistaSeleccionado = {}; |
90 | $location.path('/'); | 90 | $location.path('/'); |
91 | } | 91 | } |
92 | 92 | ||
93 | if ($localStorage.chofer) { | 93 | if ($localStorage.chofer) { |
94 | var chofer = JSON.parse($localStorage.chofer); | 94 | var chofer = JSON.parse($localStorage.chofer); |
95 | if (!chofer.id) { chofer.id = 0; } | 95 | if (!chofer.id) { chofer.id = 0; } |
96 | $location.path('/chofer/' + chofer.id + '/' + chofer.idTransportista); | 96 | $location.path('/chofer/' + chofer.id + '/' + chofer.idTransportista); |
97 | } | 97 | } |
98 | } | 98 | } |
99 | ]) | 99 | ]) |
100 | .controller('focaAbmChoferController', [ | 100 | .controller('focaAbmChoferController', [ |
101 | '$scope', 'focaAbmChoferService', '$routeParams', '$localStorage', '$filter', | 101 | '$scope', 'focaAbmChoferService', '$routeParams', '$localStorage', '$filter', |
102 | '$location', 'focaBotoneraLateralService', '$timeout', 'focaModalService', '$window', | 102 | '$location', 'focaBotoneraLateralService', '$timeout', 'focaModalService', '$window', |
103 | function($scope, focaAbmChoferService, $routeParams, $localStorage, $filter, | 103 | function($scope, focaAbmChoferService, $routeParams, $localStorage, $filter, |
104 | $location, focaBotoneraLateralService, $timeout, focaModalService){ | 104 | $location, focaBotoneraLateralService, $timeout, focaModalService){ |
105 | 105 | ||
106 | $scope.focused = 1; | 106 | $scope.focused = 1; |
107 | $scope.nuevo = $routeParams.id === '0'; | 107 | $scope.nuevo = $routeParams.id === '0'; |
108 | $scope.chofer = {}; | 108 | $scope.chofer = {}; |
109 | $scope.transportistas = []; | 109 | $scope.transportistas = []; |
110 | $scope.now = new Date(); | 110 | $scope.now = new Date(); |
111 | $scope.next = function(key) { | 111 | $scope.next = function(key) { |
112 | if (key === 13) $scope.focused++; | 112 | if (key === 13) $scope.focused++; |
113 | }; | 113 | }; |
114 | 114 | ||
115 | focaAbmChoferService.getTiposDocumento().then(function(res) { | 115 | focaAbmChoferService.getTiposDocumento().then(function(res) { |
116 | $scope.tiposDocumento = res.data; | 116 | $scope.tiposDocumento = res.data; |
117 | }); | 117 | }); |
118 | 118 | ||
119 | //SETEO BOTONERA LATERAL | 119 | //SETEO BOTONERA LATERAL |
120 | $timeout(function() { | 120 | $timeout(function() { |
121 | focaBotoneraLateralService.showSalir(false); | 121 | focaBotoneraLateralService.showSalir(false); |
122 | focaBotoneraLateralService.showPausar(true); | 122 | focaBotoneraLateralService.showPausar(true); |
123 | focaBotoneraLateralService.showCancelar(false); | 123 | focaBotoneraLateralService.showCancelar(false); |
124 | focaBotoneraLateralService.showGuardar(true, $scope.guardar); | 124 | focaBotoneraLateralService.showGuardar(true, $scope.guardar); |
125 | focaBotoneraLateralService.addCustomButton('Salir', salir); | 125 | focaBotoneraLateralService.addCustomButton('Salir', salir); |
126 | 126 | ||
127 | }); | 127 | }); |
128 | 128 | ||
129 | $timeout(function() {getLSChofer();}); | 129 | $timeout(function() {getLSChofer();}); |
130 | 130 | ||
131 | if ($scope.nuevo) { | 131 | if ($scope.nuevo) { |
132 | focaAbmChoferService | 132 | focaAbmChoferService |
133 | .getTransportistaPorId($routeParams.idTransportista) | 133 | .getTransportistaPorId($routeParams.idTransportista) |
134 | .then(function(res) { | 134 | .then(function(res) { |
135 | var codigo = ('00000' + res.data.COD).slice(-5); | 135 | var codigo = ('00000' + res.data.COD).slice(-5); |
136 | $scope.chofer.idTransportista = res.data.COD; | 136 | $scope.chofer.idTransportista = res.data.COD; |
137 | $scope.chofer.transportista = res.data; | 137 | $scope.chofer.transportista = res.data; |
138 | $scope.$broadcast('addCabecera', { | 138 | $scope.$broadcast('addCabecera', { |
139 | label: 'Transportista:', | 139 | label: 'Transportista:', |
140 | valor: codigo + ' - ' + res.data.NOM | 140 | valor: codigo + ' - ' + res.data.NOM |
141 | }); | 141 | }); |
142 | }); | 142 | }); |
143 | } | 143 | } |
144 | 144 | ||
145 | focaAbmChoferService.getChofer($routeParams.id).then(function(res) { | 145 | focaAbmChoferService.getChofer($routeParams.id).then(function(res) { |
146 | if (res.data) { | 146 | if (res.data) { |
147 | var codigo = ('00000' + res.data.transportista.COD).slice(-5); | 147 | var codigo = ('00000' + res.data.transportista.COD).slice(-5); |
148 | $scope.chofer = res.data; | 148 | $scope.chofer = res.data; |
149 | $scope.$broadcast('addCabecera', { | 149 | $scope.$broadcast('addCabecera', { |
150 | label: 'Transportista:', | 150 | label: 'Transportista:', |
151 | valor: codigo + ' - ' + res.data.transportista.NOM | 151 | valor: codigo + ' - ' + res.data.transportista.NOM |
152 | }); | 152 | }); |
153 | } | 153 | } |
154 | }); | 154 | }); |
155 | 155 | ||
156 | focaAbmChoferService.getTransportistas().then(function(res) { | 156 | focaAbmChoferService.getTransportistas().then(function(res) { |
157 | $scope.transportistas = res.data; | 157 | $scope.transportistas = res.data; |
158 | }); | 158 | }); |
159 | 159 | ||
160 | function setearChofer(chofer) { | 160 | function setearChofer(chofer) { |
161 | $scope.chofer = chofer; | 161 | $scope.chofer = chofer; |
162 | $scope.$broadcast('addCabecera', { | 162 | $scope.$broadcast('addCabecera', { |
163 | label: 'Transportista:', | 163 | label: 'Transportista:', |
164 | valor: $filter('rellenarDigitos')(chofer.idTransportista.chofer, 2) + ' - ' | 164 | valor: $filter('rellenarDigitos')(chofer.idTransportista.chofer, 2) + ' - ' |
165 | }); | 165 | }); |
166 | } | 166 | } |
167 | function getLSChofer() { | 167 | function getLSChofer() { |
168 | var chofer = JSON.parse($localStorage.chofer || null); | 168 | var chofer = JSON.parse($localStorage.chofer || null); |
169 | 169 | ||
170 | if (chofer) { | 170 | if (chofer) { |
171 | setearChofer(chofer); | 171 | setearChofer(chofer); |
172 | delete $localStorage.chofer; | 172 | delete $localStorage.chofer; |
173 | } | 173 | } |
174 | } | 174 | } |
175 | 175 | ||
176 | $scope.cancelar = function() { | 176 | $scope.cancelar = function() { |
177 | $location.path('/chofer'); | 177 | $location.path('/chofer'); |
178 | }; | 178 | }; |
179 | 179 | ||
180 | $scope.guardar = function(key) { | 180 | $scope.guardar = function(key) { |
181 | 181 | ||
182 | if (!$scope.chofer.nombre) { | ||
183 | focaModalService.alert('Ingrese nombre'); | ||
184 | return; | ||
185 | } else if (!$scope.chofer.idTipoDocumento) { | ||
186 | focaModalService.alert('Seleccione tipo de documento'); | ||
187 | return; | ||
188 | } else if (!$scope.chofer.dni) { | ||
189 | focaModalService.alert('Ingrese DNI'); | ||
190 | return; | ||
191 | } | ||
192 | |||
193 | key = (typeof key === 'undefined') ? 13 : key; | 182 | key = (typeof key === 'undefined') ? 13 : key; |
194 | if (key === 13) { | 183 | if (key === 13) { |
184 | console.log('Datos: ', $scope.chofer); | ||
185 | if (!$scope.chofer.nombre) { | ||
186 | focaModalService.alert('Ingrese nombre'); | ||
187 | return; | ||
188 | } else if (!$scope.chofer.idTipoDocumento) { | ||
189 | focaModalService.alert('Seleccione tipo de documento'); | ||
190 | return; | ||
191 | } else if (!$scope.chofer.dni) { | ||
192 | focaModalService.alert('Ingrese DNI'); | ||
193 | return; | ||
194 | } else if (!$scope.chofer.telefono) { | ||
195 | focaModalService.alert('Ingrese número de teléfono'); | ||
196 | return; | ||
197 | } | ||
198 | |||
195 | validaDni().then(function() { | 199 | validaDni().then(function() { |
196 | $scope.chofer.idTransportista = $routeParams.idTransportista; | 200 | $scope.chofer.idTransportista = $routeParams.idTransportista; |
197 | delete $scope.chofer.transportista; | 201 | delete $scope.chofer.transportista; |
198 | focaAbmChoferService.guardarChofer($scope.chofer).then(function() { | 202 | focaAbmChoferService.guardarChofer($scope.chofer).then(function() { |
199 | $location.path('/chofer'); | 203 | $location.path('/chofer'); |
200 | }); | 204 | }); |
201 | }, function() { | 205 | }, function() { |
202 | focaModalService.alert('Dni existente'); | 206 | focaModalService.alert('Dni existente'); |
203 | }); | 207 | }); |
204 | } | 208 | } |
205 | }; | 209 | }; |
206 | 210 | ||
207 | $scope.$watch('chofer', function(newValue) { | 211 | $scope.$watch('chofer', function(newValue) { |
208 | focaBotoneraLateralService.setPausarData({ | 212 | focaBotoneraLateralService.setPausarData({ |
209 | label: 'chofer', | 213 | label: 'chofer', |
210 | val: { | 214 | val: { |
211 | dni: newValue.dni, | 215 | dni: newValue.dni, |
212 | idTransportista: newValue.idTransportista, | 216 | idTransportista: newValue.idTransportista, |
213 | nombre: newValue.nombre, | 217 | nombre: newValue.nombre, |
214 | telefono: newValue.telefono, | 218 | telefono: newValue.telefono, |
215 | idTipoDocumento: newValue.idTipoDocumento, | 219 | idTipoDocumento: newValue.idTipoDocumento, |
216 | id: newValue.id | 220 | id: newValue.id |
217 | } | 221 | } |
218 | }); | 222 | }); |
219 | }, true); | 223 | }, true); |
220 | 224 | ||
221 | function salir() { | 225 | function salir() { |
222 | if ($scope.formChofer.$pristine == false) { | 226 | if ($scope.formChofer.$pristine == false) { |
223 | focaModalService.confirm( | 227 | focaModalService.confirm( |
224 | '¿Está seguro de que desea salir? Se perderán todos los datos cargados.' | 228 | '¿Está seguro de que desea salir? Se perderán todos los datos cargados.' |
225 | ).then(function(data) { | 229 | ).then(function(data) { |
226 | if (data) { | 230 | if (data) { |
227 | $location.path('/chofer'); | 231 | $location.path('/chofer'); |
228 | } | 232 | } |
229 | }); | 233 | }); |
230 | } else { | 234 | } else { |
231 | $location.path('/chofer'); | 235 | $location.path('/chofer'); |
232 | } | 236 | } |
233 | } | 237 | } |
234 | 238 | ||
235 | function validaDni() { | 239 | function validaDni() { |
236 | return new Promise(function(resolve, reject) { | 240 | return new Promise(function(resolve, reject) { |
237 | focaAbmChoferService | 241 | focaAbmChoferService |
238 | .getChoferPorDni($scope.chofer.dni) | 242 | .getChoferPorDni($scope.chofer.dni) |
239 | .then(function(res) { | 243 | .then(function(res) { |
240 | if (res.data.id && | 244 | if (res.data.id && |
src/views/foca-abm-choferes-item.html
1 | <div class="row"> | 1 | <div class="row"> |
2 | <foca-cabecera-facturador | 2 | <foca-cabecera-facturador |
3 | titulo="'Chofer'" | 3 | titulo="'Chofer'" |
4 | fecha="now" | 4 | fecha="now" |
5 | class="mb-0 col-lg-12" | 5 | class="mb-0 col-lg-12" |
6 | ></foca-cabecera-facturador> | 6 | ></foca-cabecera-facturador> |
7 | </div> | 7 | </div> |
8 | <div class="row"> | 8 | <div class="row"> |
9 | <form name="formChofer" class="col-md-12"> | 9 | <form name="formChofer" class="col-md-12"> |
10 | <input type="hidden" name="id" ng-model="chofer.id" /> | 10 | <input type="hidden" name="id" ng-model="chofer.id" /> |
11 | <div class="form-group row"> | 11 | <div class="form-group row"> |
12 | <label class="offset-sm-1 col-sm-2 col-form-label">Nombre</label> | 12 | <label class="offset-sm-1 col-sm-2 col-form-label">Nombre</label> |
13 | <div class="col-sm-4"> | 13 | <div class="col-sm-4"> |
14 | <input | 14 | <input |
15 | class="form-control" | 15 | class="form-control" |
16 | type="text" | 16 | type="text" |
17 | teclado-virtual | 17 | teclado-virtual |
18 | ng-model="chofer.nombre" | 18 | ng-model="chofer.nombre" |
19 | ng-required="true" | 19 | ng-required="true" |
20 | ng-keypress="next($event.keyCode)" | 20 | ng-keypress="next($event.keyCode)" |
21 | foca-focus="focused == 1" | 21 | foca-focus="focused == 1" |
22 | ng-focus="focused = 1" | 22 | ng-focus="focused = 1" |
23 | /> | 23 | /> |
24 | </div> | 24 | </div> |
25 | </div> | 25 | </div> |
26 | <div class="form-group row"> | 26 | <div class="form-group row"> |
27 | <label class="offset-sm-1 col-sm-2 col-form-label">Tipo documento</label> | 27 | <label class="offset-sm-1 col-sm-2 col-form-label">Tipo documento</label> |
28 | <div class="col-sm-4"> | 28 | <div class="col-sm-4"> |
29 | <select | 29 | <select |
30 | class="form-control" | 30 | class="form-control" |
31 | ng-options="tipoDocumento.id as tipoDocumento.descripcion for tipoDocumento in tiposDocumento track by tipoDocumento.id" | 31 | ng-options="tipoDocumento.id as tipoDocumento.descripcion for tipoDocumento in tiposDocumento track by tipoDocumento.id" |
32 | ng-model="chofer.idTipoDocumento"> | 32 | ng-model="chofer.idTipoDocumento"> |
33 | </select> | 33 | </select> |
34 | </div> | 34 | </div> |
35 | </div> | 35 | </div> |
36 | <div class="form-group row"> | 36 | <div class="form-group row"> |
37 | <label class="offset-sm-1 col-sm-2 col-form-label">DNI</label> | 37 | <label class="offset-sm-1 col-sm-2 col-form-label">DNI</label> |
38 | <div class="col-sm-4"> | 38 | <div class="col-sm-4"> |
39 | <input | 39 | <input |
40 | class="form-control" | 40 | class="form-control" |
41 | type="text" | 41 | foca-tipo-input |
42 | teclado-virtual | 42 | teclado-virtual |
43 | solo-positivos | ||
44 | limite-numeros-max="15" | ||
43 | ng-model="chofer.dni" | 45 | ng-model="chofer.dni" |
44 | ng-required="true" | 46 | ng-required="true" |
45 | ng-keypress="next($event.keyCode)" | 47 | ng-keypress="next($event.keyCode)" |
46 | foca-focus="focused == 2" | 48 | foca-focus="focused == 2" |
47 | ng-focus="focused = 2" | 49 | ng-focus="focused = 2" |
48 | ng-disabled="!nuevo" | 50 | ng-disabled="!nuevo" |
51 | string-toNumber | ||
49 | /> | 52 | /> |
50 | </div> | 53 | </div> |
51 | </div> | 54 | </div> |
52 | <div class="form-group row"> | 55 | <div class="form-group row"> |
53 | <label class="offset-sm-1 col-sm-2 col-form-label">Teléfono</label> | 56 | <label class="offset-sm-1 col-sm-2 col-form-label">Teléfono</label> |
54 | <div class="col-sm-4"> | 57 | <div class="col-sm-4"> |
55 | <input | 58 | <input |
56 | class="form-control" | 59 | class="form-control" |
57 | type="text" | 60 | foca-tipo-input |
58 | teclado-virtual | 61 | teclado-virtual |
62 | solo-positivos | ||
63 | limite-numeros-max="15" | ||
59 | ng-model="chofer.telefono" | 64 | ng-model="chofer.telefono" |
60 | ng-required="true" | 65 | ng-required="true" |
61 | ng-keypress="guardar($event.keyCode)" | 66 | ng-keypress="guardar($event.keyCode)" |
62 | foca-focus="focused == 3" | 67 | foca-focus="focused == 3" |
63 | ng-focus="focused = 3" | 68 | ng-focus="focused = 3" |
69 | string-toNumber | ||
64 | /> | 70 | /> |
65 | </div> | 71 | </div> |
66 | </div> | 72 | </div> |
67 | </form> | 73 | </form> |
68 | </div> | 74 | </div> |
69 | 75 |