Commit 5b2034ac429af2a8d1b4340a0cfd7f1ba9027c00

Authored by Luigi
1 parent 8b7191751b
Exists in master

Limitacion de numeros en DNI - Telefono

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