Commit d22e971b7328cb2351a210c788060a3b914b565c

Authored by Jose Pinto
Exists in master and in 2 other branches develop, lab

boton pausar funcionando

1 const templateCache = require('gulp-angular-templatecache'); 1 const templateCache = require('gulp-angular-templatecache');
2 const clean = require('gulp-clean'); 2 const clean = require('gulp-clean');
3 const concat = require('gulp-concat'); 3 const concat = require('gulp-concat');
4 const htmlmin = require('gulp-htmlmin'); 4 const htmlmin = require('gulp-htmlmin');
5 const rename = require('gulp-rename'); 5 const rename = require('gulp-rename');
6 const uglify = require('gulp-uglify'); 6 const uglify = require('gulp-uglify');
7 const gulp = require('gulp'); 7 const gulp = require('gulp');
8 const pump = require('pump'); 8 const pump = require('pump');
9 const jshint = require('gulp-jshint'); 9 const jshint = require('gulp-jshint');
10 const replace = require('gulp-replace'); 10 const replace = require('gulp-replace');
11 const connect = require('gulp-connect'); 11 const connect = require('gulp-connect');
12 const header = require('gulp-header');
13 const footer = require('gulp-footer');
12 14
13 var paths = { 15 var paths = {
14 srcJS: 'src/js/*.js', 16 srcJS: 'src/js/*.js',
15 srcViews: 'src/views/*.html', 17 srcViews: 'src/views/*.html',
18 specs: 'spec/*.js',
16 tmp: 'tmp', 19 tmp: 'tmp',
17 dist: 'dist/' 20 dist: 'dist/'
18 }; 21 };
19 22
20 gulp.task('templates', ['clean'], function() { 23 gulp.task('templates', ['clean'], function() {
21 return pump( 24 return pump(
22 [ 25 [
23 gulp.src(paths.srcViews), 26 gulp.src(paths.srcViews),
24 htmlmin(), 27 htmlmin(),
25 templateCache('views.js', { 28 templateCache('views.js', {
26 module: 'focaCrearHojaRuta', 29 module: 'focaCrearHojaRuta',
27 root: '' 30 root: ''
28 }), 31 }),
29 gulp.dest(paths.tmp) 32 gulp.dest(paths.tmp)
30 ] 33 ]
31 ); 34 );
32 }); 35 });
33 36
34 gulp.task('uglify', ['templates'], function() { 37 gulp.task('uglify', ['templates', 'uglify-spec'], function() {
35 return pump( 38 return pump(
36 [ 39 [
37 gulp.src([ 40 gulp.src([
38 paths.srcJS, 41 paths.srcJS,
39 'tmp/views.js' 42 'tmp/views.js'
40 ]), 43 ]),
41 concat('foca-crear-hoja-ruta.js'), 44 concat('foca-crear-hoja-ruta.js'),
42 replace('src/views/', ''), 45 replace('src/views/', ''),
43 gulp.dest(paths.tmp), 46 gulp.dest(paths.tmp),
44 rename('foca-crear-hoja-ruta.min.js'), 47 rename('foca-crear-hoja-ruta.min.js'),
45 uglify(), 48 uglify(),
46 gulp.dest(paths.dist) 49 gulp.dest(paths.dist)
47 ] 50 ]
48 ); 51 );
49 }); 52 });
50 53
54 gulp.task('uglify-spec', function() {
55 return pump([
56 gulp.src(paths.specs),
57 concat('foca-crear-hoja-ruta.spec.js'),
58 replace("src/views/", ''),
59 header("describe('Módulo foca-crear-hoja-ruta', function() { \n"),
60 footer("});"),
61 gulp.dest(paths.dist)
62 ]);
63 });
64
51 gulp.task('clean', function() { 65 gulp.task('clean', function() {
52 return gulp.src(['tmp', 'dist'], {read: false}) 66 return gulp.src(['tmp', 'dist'], {read: false})
53 .pipe(clean()); 67 .pipe(clean());
54 }); 68 });
55 69
56 gulp.task('pre-commit', function() { 70 gulp.task('pre-commit', function() {
57 return pump( 71 return pump(
58 [ 72 [
59 gulp.src(paths.srcJS), 73 gulp.src([paths.srcJS, paths.specs]),
60 jshint('.jshintrc'), 74 jshint('.jshintrc'),
61 jshint.reporter('default'), 75 jshint.reporter('default'),
62 jshint.reporter('fail') 76 jshint.reporter('fail')
63 ] 77 ]
64 ); 78 );
65 79
66 gulp.start('uglify'); 80 gulp.start('uglify');
67 }); 81 });
68 82
69 gulp.task('webserver', function() { 83 gulp.task('webserver', function() {
70 pump [ 84 pump [
71 connect.server({port: 3300, host: '0.0.0.0'}) 85 connect.server({port: 3300, host: '0.0.0.0'})
72 ] 86 ]
73 }); 87 });
74 88
75 gulp.task('clean-post-install', function() { 89 gulp.task('clean-post-install', function() {
76 return gulp.src(['src', 'tmp', '.jshintrc','readme.md', '.gitignore', 'gulpfile.js', 90 return gulp.src(['src', 'tmp', '.jshintrc','readme.md', '.gitignore', 'gulpfile.js',
77 'index.html'], {read: false}) 91 'index.html', 'test.html', 'spec'], {read: false})
78 .pipe(clean()); 92 .pipe(clean());
79 }); 93 });
80 94
81 gulp.task('default', ['webserver']); 95 gulp.task('default', ['webserver']);
82 96
83 gulp.task('watch', function() { 97 gulp.task('watch', function() {
84 gulp.watch([paths.srcJS, paths.srcViews], ['uglify']); 98 gulp.watch([paths.srcJS, paths.srcViews], ['uglify']);
85 }); 99 });
86 100
1 { 1 {
2 "name": "foca-crear-hoja-ruta", 2 "name": "foca-crear-hoja-ruta",
3 "version": "0.0.1", 3 "version": "0.0.1",
4 "description": "foca-crear-hoja-ruta", 4 "description": "foca-crear-hoja-ruta",
5 "main": "index.js", 5 "main": "index.js",
6 "scripts": { 6 "scripts": {
7 "test": "echo \"Error: no test specified\" && exit 1", 7 "test": "test.html",
8 "compile": "gulp uglify", 8 "compile": "gulp uglify",
9 "gulp-pre-commit": "gulp pre-commit", 9 "gulp-pre-commit": "gulp pre-commit",
10 "postinstall": "npm run compile && gulp clean-post-install", 10 "postinstall": "npm run compile && gulp clean-post-install",
11 "install-dev": "npm install -D jasmine-core pre-commit angular angular-ladda ladda@1.0.6 angular-route bootstrap ui-bootstrap4 font-awesome gulp gulp-angular-templatecache gulp-connect gulp-clean gulp-htmlmin gulp-jshint gulp-rename gulp-replace gulp-sequence gulp-uglify-es gulp-uglify jquery jshint pump git+http://git.focasoftware.com/npm/foca-botonera-facturador.git git+http://git.focasoftware.com/npm/foca-directivas.git git+http://git.focasoftware.com/npm/foca-modal-remito.git" 11 "install-dev": "npm install -D jasmine-core pre-commit angular angular-ladda ladda@1.0.6 angular-route bootstrap ui-bootstrap4 font-awesome gulp gulp-angular-templatecache gulp-connect gulp-clean gulp-htmlmin gulp-jshint gulp-rename gulp-replace gulp-sequence gulp-uglify-es gulp-uglify jquery jshint pump git+http://git.focasoftware.com/npm/foca-botonera-facturador.git git+http://git.focasoftware.com/npm/foca-directivas.git git+http://git.focasoftware.com/npm/foca-modal-remito.git"
12 }, 12 },
13 "pre-commit": [ 13 "pre-commit": [
14 "gulp-pre-commit" 14 "gulp-pre-commit"
15 ], 15 ],
16 "repository": { 16 "repository": {
17 "type": "git", 17 "type": "git",
18 "url": "https://debo.suite.repo/modulos-npm/foca-crear-hoja-ruta.git" 18 "url": "https://debo.suite.repo/modulos-npm/foca-crear-hoja-ruta.git"
19 }, 19 },
20 "author": "Foca Software", 20 "author": "Foca Software",
21 "license": "ISC", 21 "license": "ISC",
22 "devDependencies": { 22 "devDependencies": {
23 "angular": "^1.7.5", 23 "angular": "^1.7.5",
24 "angular-ladda": "^0.4.3", 24 "angular-ladda": "^0.4.3",
25 "angular-mocks": "^1.7.7",
25 "angular-route": "^1.7.5", 26 "angular-route": "^1.7.5",
26 "bootstrap": "^4.1.3", 27 "bootstrap": "^4.1.3",
27 "foca-botonera-facturador": "git+http://git.focasoftware.com/npm/foca-botonera-facturador.git", 28 "foca-botonera-facturador": "git+http://git.focasoftware.com/npm/foca-botonera-facturador.git",
28 "foca-directivas": "git+http://git.focasoftware.com/npm/foca-directivas.git", 29 "foca-directivas": "git+http://git.focasoftware.com/npm/foca-directivas.git",
29 "foca-modal-remito": "git+http://git.focasoftware.com/npm/foca-modal-remito.git", 30 "foca-modal-remito": "git+http://git.focasoftware.com/npm/foca-modal-remito.git",
30 "font-awesome": "^4.7.0", 31 "font-awesome": "^4.7.0",
31 "gulp": "^3.9.1", 32 "gulp": "^3.9.1",
32 "gulp-angular-templatecache": "^2.2.5", 33 "gulp-angular-templatecache": "^2.2.5",
33 "gulp-clean": "^0.4.0", 34 "gulp-clean": "^0.4.0",
34 "gulp-concat": "^2.6.1", 35 "gulp-concat": "^2.6.1",
35 "gulp-connect": "^5.6.1", 36 "gulp-connect": "^5.6.1",
36 "gulp-htmlmin": "^5.0.1", 37 "gulp-htmlmin": "^5.0.1",
37 "gulp-jshint": "^2.1.0", 38 "gulp-jshint": "^2.1.0",
38 "gulp-rename": "^1.4.0", 39 "gulp-rename": "^1.4.0",
39 "gulp-replace": "^1.0.0", 40 "gulp-replace": "^1.0.0",
40 "gulp-sequence": "^1.0.0", 41 "gulp-sequence": "^1.0.0",
41 "gulp-uglify": "^3.0.1", 42 "gulp-uglify": "^3.0.1",
42 "jasmine-core": "^3.3.0", 43 "jasmine-core": "^3.3.0",
43 "jquery": "^3.3.1", 44 "jquery": "^3.3.1",
44 "jshint": "^2.9.6", 45 "jshint": "^2.9.6",
45 "ladda": "1.0.6", 46 "ladda": "1.0.6",
46 "pre-commit": "^1.2.2", 47 "pre-commit": "^1.2.2",
47 "pump": "^3.0.0", 48 "pump": "^3.0.0",
48 "ui-bootstrap4": "^3.0.5" 49 "ui-bootstrap4": "^3.0.5"
49 } 50 }
50 } 51 }
51 52
spec/controllerSpec.js
File was created 1 describe('Controladores módulo crear hoja de ruta', function() {
2
3 var $controller;
4
5 beforeEach(function() {
6
7 module('focaCrearHojaRuta');
8 inject(function(_$controller_) {
9 $controller = _$controller_;
10 });
11 });
12
13 describe('controlador focaModalDatosHojaRutaCtrl', function() {
14
15 it('Existe el controlador focaModalDatosHojaRutaCtrl', function() {
16
17 //act
18 var controlador = $controller('focaModalDatosHojaRutaCtrl', {
19 $filter: {},
20 $scope: {},
21 $uibModalInstance: {},
22 focaModalService: {},
23 parametrosDatos: {}
24 });
25
26 //assert
27 expect(typeof controlador).toEqual('object');
28 });
29
30 it('función $scope.aceptar muestra alerta cuando el formulario es inválido', function() {
31
32 //arrange
33 var scope = {};
34 var focaModalService = {
35 alert: function() { }
36 };
37
38 $controller('focaModalDatosHojaRutaCtrl', {
39 $filter: {},
40 $scope: scope,
41 $uibModalInstance: {},
42 focaModalService: focaModalService,
43 parametrosDatos: {}
44 });
45
46 //act
47 scope.formDatosHojaRuta = {
48 $valid: false
49 };
50 spyOn(focaModalService, 'alert');
51 scope.aceptar(13);
52
53 //assert
54 expect(focaModalService.alert).toHaveBeenCalledWith('Formulario inválido');
55 });
56
57 it('función $scope.aceptar llama a uibModalInstance.close', function() {
58
59 //arrange
60 var scope = {};
61 var uibModalInstance = {
62 close: function() { }
63 };
64
65 $controller('focaModalDatosHojaRutaCtrl', {
66 $filter: {},
67 $scope: scope,
68 $uibModalInstance: uibModalInstance,
69 focaModalService: {},
70 parametrosDatos: {}
71 });
72
73 //act
74 scope.formDatosHojaRuta = {
75 $valid: true
76 };
77 spyOn(uibModalInstance, 'close');
78 scope.aceptar(13);
79
80 //assert
81 expect(uibModalInstance.close).toHaveBeenCalled();
82 });
83
84 it('función $scope.next suma uno a focused', function() {
85
86 //arrange
87 var scope = {};
88
89 $controller('focaModalDatosHojaRutaCtrl', {
90 $filter: {},
91 $scope: scope,
92 $uibModalInstance: {},
93 focaModalService: {},
94 parametrosDatos: {}
95 });
96 scope.focused = 1;
97
98 //act
99 var esperado = scope.focused + 1;
100 scope.next(13);
101
102 //assert
103 expect(scope.focused).toEqual(esperado);
104 });
105
106 it('función $scope.cancel llama a dismiss', function() {
107
108 //arrange
109 var scope = {};
110 var uibModalInstance = {
111 dismiss: function() { }
112 };
113
114 $controller('focaModalDatosHojaRutaCtrl', {
115 $filter: {},
116 $scope: scope,
117 $uibModalInstance: uibModalInstance,
118 focaModalService: {},
119 parametrosDatos: {}
120 });
121
122 //act
123 spyOn(uibModalInstance, 'dismiss');
124 scope.cancel();
125
126 //assert
127 expect(uibModalInstance.dismiss).toHaveBeenCalledWith('cancel');
128 });
129 });
130
131 describe('controlador hojaRutaCtrl', function() {
132
133 var $filter = function() {
134 return function() { };
135 };
136
137 var $timeout = function() { };
138
139 it('existe el controlador hojaRutaCtrl', function() {
140
141 //act
142 var controlador = $controller('hojaRutaCtrl', {
143 $scope: {
144 $broadcast: function() { }
145 },
146 $uibModal: {},
147 $location: {},
148 $filter: $filter,
149 $timeout: $timeout,
150 focaCrearHojaRutaService: {
151 getBotonera: function() { },
152 getNumeroHojaRuta: function() {
153 return {
154 then: function() { }
155 };
156 }
157 },
158 focaModalService: {},
159 focaBotoneraLateralService: {},
160 focaLoginService: {},
161 });
162
163 //assert
164 expect(typeof controlador).toEqual('object');
165 });
166
167 it('guardar hoja ruta valida que tenga al menos un remito', function() {
168
169 //arrange
170 var scope = {
171 $broadcast: function() { }
172 };
173 var focaModalService = {
174 alert: function() { }
175 };
176
177 $controller('hojaRutaCtrl', {
178 $scope: scope,
179 $uibModal: {},
180 $location: {},
181 $filter: $filter,
182 $timeout: $timeout,
183 focaCrearHojaRutaService: {
184 getBotonera: function() { },
185 getNumeroHojaRuta: function() {
186 return {
187 then: function() { }
188 };
189 }
190 },
191 focaModalService: focaModalService,
192 focaBotoneraLateralService: {},
193 focaLoginService: {},
194 });
195 scope.remitosTabla = [];
196
197 //act
198 spyOn(focaModalService, 'alert');
199
200 scope.crearHojaRuta();
201
202 //assert
203 expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Remitos');
204 });
205
206 it('guardar hoja ruta valida que tenga chofer', function() {
207
208 //arrange
209 var scope = {
210 $broadcast: function() { }
211 };
212 var focaModalService = {
213 alert: function() { }
214 };
215
216 $controller('hojaRutaCtrl', {
217 $scope: scope,
218 $uibModal: {},
219 $location: {},
220 $filter: $filter,
221 $timeout: $timeout,
222 focaCrearHojaRutaService: {
223 getBotonera: function() { },
224 getNumeroHojaRuta: function() {
225 return {
226 then: function() { }
227 };
228 }
229 },
230 focaModalService: focaModalService,
231 focaBotoneraLateralService: {},
232 focaLoginService: {},
233 });
234 scope.remitosTabla = [1];
235 scope.hojaRuta = {
236 chofer: { }
237 };
238
239 //act
240 spyOn(focaModalService, 'alert');
241
242 scope.crearHojaRuta();
243
244 //assert
245 expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Chofer');
246 });
247
248 it('guardar hoja ruta valida que tenga vehiculo', function() {
249
250 //arrange
251 var scope = {
252 $broadcast: function() { }
253 };
254 var focaModalService = {
255 alert: function() { }
256 };
257
258 $controller('hojaRutaCtrl', {
259 $scope: scope,
260 $uibModal: {},
261 $location: {},
262 $filter: $filter,
263 $timeout: $timeout,
264 focaCrearHojaRutaService: {
265 getBotonera: function() { },
266 getNumeroHojaRuta: function() {
267 return {
268 then: function() { }
269 };
270 }
271 },
272 focaModalService: focaModalService,
273 focaBotoneraLateralService: {},
274 focaLoginService: {},
275 });
276 scope.remitosTabla = [1];
277 scope.hojaRuta = {
278 chofer: { id: true },
279 vehiculo: { }
280 };
281
282 //act
283 spyOn(focaModalService, 'alert');
284
285 scope.crearHojaRuta();
286
287 //assert
288 expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Vehiculo');
289 });
290
291 it('guardar hoja ruta valida que tenga transportista', function() {
292
293 //arrange
294 var scope = {
295 $broadcast: function() { }
296 };
297 var focaModalService = {
298 alert: function() { }
299 };
300
301 $controller('hojaRutaCtrl', {
302 $scope: scope,
303 $uibModal: {},
304 $location: {},
305 $filter: $filter,
306 $timeout: $timeout,
307 focaCrearHojaRutaService: {
308 getBotonera: function() { },
309 getNumeroHojaRuta: function() {
310 return {
311 then: function() { }
312 };
313 }
314 },
315 focaModalService: focaModalService,
316 focaBotoneraLateralService: {},
317 focaLoginService: {},
318 });
319 scope.remitosTabla = [1];
320 scope.hojaRuta = {
321 chofer: { id: true },
322 vehiculo: { id: true },
323 transportista: { }
324 };
325
326 //act
327 spyOn(focaModalService, 'alert');
328
329 scope.crearHojaRuta();
330
331 //assert
332 expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Transportista');
333 });
334
335 it('guardar hoja ruta valida que tenga tarifario', function() {
336
337 //arrange
338 var scope = {
339 $broadcast: function() { }
340 };
341 var focaModalService = {
342 alert: function() { }
343 };
344
345 $controller('hojaRutaCtrl', {
346 $scope: scope,
347 $uibModal: {},
348 $location: {},
349 $filter: $filter,
350 $timeout: $timeout,
351 focaCrearHojaRutaService: {
352 getBotonera: function() { },
353 getNumeroHojaRuta: function() {
354 return {
355 then: function() { }
356 };
357 }
358 },
359 focaModalService: focaModalService,
360 focaBotoneraLateralService: {},
361 focaLoginService: {},
362 });
363 scope.remitosTabla = [1];
364 scope.hojaRuta = {
365 chofer: { id: true },
366 vehiculo: { id: true },
367 transportista: { COD: true },
368 tarifario: { }
369 };
370
371 //act
372 spyOn(focaModalService, 'alert');
373
374 scope.crearHojaRuta();
375
376 //assert
377 expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Tarifario');
378 });
379
380 it('guardar hoja ruta valida que tenga datosExtra', function() {
381
382 //arrange
383 var scope = {
384 $broadcast: function() { }
385 };
386 var focaModalService = {
387 alert: function() { }
388 };
389
390 $controller('hojaRutaCtrl', {
391 $scope: scope,
392 $uibModal: {},
393 $location: {},
394 $filter: $filter,
395 $timeout: $timeout,
396 focaCrearHojaRutaService: {
397 getBotonera: function() { },
398 getNumeroHojaRuta: function() {
399 return {
400 then: function() { }
401 };
402 }
403 },
404 focaModalService: focaModalService,
405 focaBotoneraLateralService: {},
406 focaLoginService: {},
407 });
408 scope.remitosTabla = [1];
409 scope.hojaRuta = {
410 chofer: { id: true },
411 vehiculo: { id: true },
412 transportista: { COD: true },
413 tarifario: { costo: true }
414 };
415
416 //act
417 spyOn(focaModalService, 'alert');
418
419 scope.crearHojaRuta();
420
421 //assert
422 expect(focaModalService.alert).toHaveBeenCalledWith('Ingrese Datos extra');
423 });
424
425 it('guardar hoja ruta llama focaCrearHojaRutaService.crearHojaRuta', function() {
426
427 //arrange
428 var scope = {
429 $broadcast: function() { }
430 };
431 var focaCrearHojaRutaService = {
432 getBotonera: function() { },
433 getNumeroHojaRuta: function() {
434 return {
435 then: function() { }
436 };
437 },
438 crearHojaRuta: function() { }
439 };
440
441 $controller('hojaRutaCtrl', {
442 $scope: scope,
443 $uibModal: {},
444 $location: {},
445 $filter: $filter,
446 $timeout: $timeout,
447 focaCrearHojaRutaService: focaCrearHojaRutaService,
448 focaModalService: {},
449 focaBotoneraLateralService: {},
450 focaLoginService: {},
451 });
452 scope.remitosTabla = [1];
453 scope.hojaRuta = {
454 chofer: { id: true },
455 vehiculo: { id: true },
456 transportista: { COD: true },
457 tarifario: { costo: true },
458 datosExtra: { }
459 };
460 scope.fechaReparto = new Date();
461
462 var respuesta = { then: function() { } };
463
464 //act
465 spyOn(focaCrearHojaRutaService, 'crearHojaRuta').and.returnValue(respuesta);
466
467 scope.crearHojaRuta();
468
469 //assert
470 expect(focaCrearHojaRutaService.crearHojaRuta).toHaveBeenCalled();
471 });
472
473 it('seleccionarTransportista levanta modal y setea datos', function(done) {
474
475 //arrange
476 var scope = {
477 $broadcast: function() { }
478 };
479 var focaModalService = {
480 modal: function() { }
481 };
482
483 $controller('hojaRutaCtrl', {
484 $scope: scope,
485 $uibModal: {},
486 $location: {},
487 $filter: $filter,
488 $timeout: $timeout,
489 focaCrearHojaRutaService: {
490 getBotonera: function() { },
491 getNumeroHojaRuta: function() {
492 return {
493 then: function() { }
494 };
495 }
496 },
497 focaModalService: focaModalService,
498 focaBotoneraLateralService: {},
499 focaLoginService: {},
500 });
501
502 var respuesta = 1;
503 var promesa = Promise.resolve(respuesta);
504
505 //act
506 spyOn(focaModalService, 'modal').and.returnValue(promesa);
507 spyOn(scope, '$broadcast');
508
509 scope.seleccionarTransportista();
510
511 //assert
512 promesa.then(function() {
513 expect(focaModalService.modal).toHaveBeenCalled();
514 expect(scope.$broadcast).toHaveBeenCalled();
515 expect(scope.hojaRuta.transportista).toEqual(respuesta);
516 done();
517 });
518
519 });
520
521 it('seleccionarChofer levanta modal y setea datos', function(done) {
522
523 //arrange
524 var scope = {
525 $broadcast: function() { }
526 };
527 var focaModalService = {
528 modal: function() { }
529 };
530
531 $controller('hojaRutaCtrl', {
532 $scope: scope,
533 $uibModal: {},
534 $location: {},
535 $filter: $filter,
536 $timeout: $timeout,
537 focaCrearHojaRutaService: {
538 getBotonera: function() { },
539 getNumeroHojaRuta: function() {
540 return {
541 then: function() { }
542 };
543 }
544 },
545 focaModalService: focaModalService,
546 focaBotoneraLateralService: {},
547 focaLoginService: {},
548 });
549
550 var respuesta = 1;
551 var promesa = Promise.resolve(respuesta);
552
553 //act
554 spyOn(focaModalService, 'modal').and.returnValue(promesa);
555 spyOn(scope, '$broadcast');
556
557 scope.seleccionarChofer();
558
559 //assert
560 promesa.then(function() {
561 expect(focaModalService.modal).toHaveBeenCalled();
562 expect(scope.$broadcast).toHaveBeenCalled();
563 expect(scope.hojaRuta.chofer).toEqual(respuesta);
564 done();
565 });
566
567 });
568
569 it('seleccionarTarifario levanta modal y setea datos', function(done) {
570
571 //arrange
572 var scope = {
573 $broadcast: function() { }
574 };
575 var uibModal = {
576 open: function() { }
577 };
578
579 $controller('hojaRutaCtrl', {
580 $scope: scope,
581 $uibModal: uibModal,
582 $location: {},
583 $filter: $filter,
584 $timeout: $timeout,
585 focaCrearHojaRutaService: {
586 getBotonera: function() { },
587 getNumeroHojaRuta: function() {
588 return {
589 then: function() { }
590 };
591 }
592 },
593 focaModalService: {},
594 focaBotoneraLateralService: {},
595 focaLoginService: {},
596 });
597
598 var respuesta = 1;
599 var promesa = { result: Promise.resolve(respuesta) };
600
601 //act
602 spyOn(uibModal, 'open').and.returnValue(promesa);
603 spyOn(scope, '$broadcast');
604
605 scope.seleccionarTarifario();
606
607 //assert
608 promesa.result.then(function() {
609 expect(uibModal.open).toHaveBeenCalled();
610 expect(scope.$broadcast).toHaveBeenCalled();
611 expect(scope.hojaRuta.tarifario).toEqual(respuesta);
612 done();
613 });
614
615 });
616
617 it('seleccionarRemitos levanta modal y setea datos', function(done) {
618
619 //arrange
620 var scope = {
621 $broadcast: function() { }
622 };
623 var uibModal = {
624 open: function() { }
625 };
626
627 $controller('hojaRutaCtrl', {
628 $scope: scope,
629 $uibModal: uibModal,
630 $location: {},
631 $filter: $filter,
632 $timeout: $timeout,
633 focaCrearHojaRutaService: {
634 getBotonera: function() { },
635 getNumeroHojaRuta: function() {
636 return {
637 then: function() { }
638 };
639 }
640 },
641 focaModalService: {},
642 focaBotoneraLateralService: {},
643 focaLoginService: {},
644 });
645 scope.eligioPreConfirmado = false;
646 scope.fechaReparto = true;
647 scope.hojaRuta = {
648 vehiculo: {
649 id: true
650 }
651 };
652
653 var respuesta = 1;
654 var promesa = { result: Promise.resolve(respuesta) };
655
656 //act
657 spyOn(uibModal, 'open').and.returnValue(promesa);
658
659 scope.seleccionarRemitos();
660
661 //assert
662 promesa.result.then(function() {
663 expect(uibModal.open).toHaveBeenCalled();
664 done();
665 });
666
667 });
668
669 it('seleccionarVehiculosPrecargados levanta modal y setea datos', function(done) {
670
671 //arrange
672 var scope = {
673 $broadcast: function() { }
674 };
675 var focaModalService = {
676 modal: function() { }
677 };
678 var focaCrearHojaRutaService = {
679 getBotonera: function() { },
680 getNumeroHojaRuta: function() {
681 return {
682 then: function() { }
683 };
684 },
685 getRemitosByIdVehiculo: function() {
686 return {
687 then: function() { }
688 };
689 }
690 };
691
692 $controller('hojaRutaCtrl', {
693 $scope: scope,
694 $uibModal: {},
695 $location: {},
696 $filter: $filter,
697 $timeout: $timeout,
698 focaCrearHojaRutaService: focaCrearHojaRutaService,
699 focaModalService: focaModalService,
700 focaBotoneraLateralService: {},
701 focaLoginService: {},
702 });
703 scope.eligioPreConfirmado = false;
704 scope.fechaReparto = new Date();
705
706 var respuesta = { transportista: { } };
707 var promesa = Promise.resolve(respuesta);
708
709 //act
710 spyOn(focaModalService, 'modal')
711 .and.returnValue(promesa);
712 spyOn(focaCrearHojaRutaService, 'getRemitosByIdVehiculo')
713 .and.returnValue( { then: function() { } } );
714 spyOn(scope, '$broadcast');
715
716 scope.seleccionarVehiculosPrecargados();
717
718 //assert
719 promesa.then(function() {
720 expect(focaModalService.modal).toHaveBeenCalled();
721 expect(focaCrearHojaRutaService.getRemitosByIdVehiculo).toHaveBeenCalled();
722 expect(scope.$broadcast).toHaveBeenCalled();
723 done();
724 });
725
726 });
727
728 it('cargarCisterna levanta modal y devuelve promesa', function(done) {
729
730 //arrange
731 var scope = {
732 $broadcast: function() { }
733 };
734 var uibModal = {
735 open: function() { }
736 };
737
738 $controller('hojaRutaCtrl', {
739 $scope: scope,
740 $uibModal: uibModal,
741 $location: {},
742 $filter: $filter,
743 $timeout: $timeout,
744 focaCrearHojaRutaService: {
745 getBotonera: function() { },
746 getNumeroHojaRuta: function() {
747 return {
748 then: function() { }
749 };
750 }
751 },
752 focaModalService: {},
753 focaBotoneraLateralService: {},
754 focaLoginService: {},
755 });
756 scope.eligioPreConfirmado = false;
757 scope.fechaReparto = true;
758 scope.hojaRuta = {
759 vehiculo: {
760 id: true
761 }
762 };
763
764 var respuesta = 1;
765 var promesa = { result: Promise.resolve(respuesta) };
766
767 //act
768 spyOn(uibModal, 'open').and.returnValue(promesa);
769
770 var resultado = scope.cargarCisterna();
771
772 //assert
773 promesa.result.then(function() {
774 expect(uibModal.open).toHaveBeenCalled();
775 expect(typeof resultado).toEqual('object');
776 done();
777 });
778
779 });
780
781 it('seleccionarFechaEntrega levanta modal', function(done) {
782
783 //arrange
784 var scope = {
785 $broadcast: function() { }
786 };
787 var focaModalService = {
788 modalFecha: function() { }
789 };
790
791 $controller('hojaRutaCtrl', {
792 $scope: scope,
793 $uibModal: {},
794 $location: {},
795 $filter: $filter,
796 $timeout: $timeout,
797 focaCrearHojaRutaService: {
798 getBotonera: function() { },
799 getNumeroHojaRuta: function() {
800 return {
801 then: function() { }
802 };
803 }
804 },
805 focaModalService: focaModalService,
806 focaBotoneraLateralService: {},
807 focaLoginService: {},
808 });
809
810 var respuesta = new Date();
811 var promesa = Promise.resolve(respuesta);
812
813 //act
814 spyOn(focaModalService, 'modalFecha').and.returnValue(promesa);
815 spyOn(scope, '$broadcast');
816
817 scope.seleccionarFechaEntrega();
818
819 //assert
820 promesa.then(function() {
821 expect(focaModalService.modalFecha).toHaveBeenCalled();
822 expect(scope.$broadcast).toHaveBeenCalled();
823 done();
824 });
825
826 });
827
828 });
829
830 });
831
File was created 1 describe('Rutas de módulo crear hoja de ruta', function() {
2
3 var route;
4
5 beforeEach(function() {
6 module('focaCrearHojaRuta');
7 inject(function($route) {
8 route = $route;
9 });
10 });
11
12 it('La ruta /venta-hoja-ruta/crear dirige correctamente', function() {
13
14 //assert
15 expect(route.routes['/venta-hoja-ruta/crear'].controller)
16 .toBe('hojaRutaCtrl');
17 expect(route.routes['/venta-hoja-ruta/crear'].templateUrl)
18 .toBe('src/views/hoja-ruta.html');
19 });
20 });
21
File was created 1 describe('Servicios modulo crear hoja de ruta', function() {
2
3 beforeEach(function() {
4 module('focaCrearHojaRuta');
5 inject(module(function($provide) {
6 $provide.value('API_ENDPOINT', {
7 URL: 'localhost'
8 });
9 }));
10 });
11
12 describe('Servicio focaCrearHojaRutaService', function() {
13
14 var servicio;
15 var httpBackend;
16
17 beforeEach(function() {
18 inject(function($httpBackend, _focaCrearHojaRutaService_) {
19 httpBackend = $httpBackend;
20 servicio = _focaCrearHojaRutaService_;
21 });
22 });
23
24 it('Existe el servicio focaCrearHojaRutaService', function() {
25
26 //assert
27 expect(typeof servicio).toEqual('object');
28 });
29
30 it('función crearHojaRuta llama ruta correcta', function() {
31
32 //arrange
33 var responseFake = 'responseFake';
34 var result;
35 var paramFake = 'test';
36
37 httpBackend.expectPOST('localhost/hoja-ruta', paramFake).respond(responseFake);
38
39 //act
40 servicio.crearHojaRuta(paramFake).then(function(data) {
41 result = data.data;
42 });
43 httpBackend.flush();
44
45 //assert
46 expect(result).toEqual(responseFake);
47 });
48
49 it('función obtenerHojaRuta llama ruta correcta', function() {
50
51 //arrange
52 var responseFake = 'responseFake';
53 var result;
54
55 httpBackend.expectGET('localhost/hoja-ruta').respond(responseFake);
56
57 //act
58 servicio.obtenerHojaRuta().then(function(data) {
59 result = data.data;
60 });
61 httpBackend.flush();
62
63 //assert
64 expect(result).toEqual(responseFake);
65 });
66
67 it('función setHojaRuta llama ruta correcta', function() {
68
69 //arrange
70 var paramFake = 'paramFake';
71
72 //act
73 servicio.setHojaRuta(paramFake);
74
75 //assert
76 expect(servicio.hojaRuta).toEqual(paramFake);
77 });
78
79 it('función clearHojaRuta llama ruta correcta', function() {
80
81 //act
82 servicio.clearHojaRuta();
83
84 //assert
85 expect(servicio.hojaRuta).toEqual(undefined);
86 });
87
88 it('función getHojaRuta llama ruta correcta', function() {
89
90 //arrange
91 var esperado = 'unit test';
92 servicio.hojaRuta = esperado;
93
94 //act
95 var resultado = servicio.getHojaRuta();
96
97 //assert
98 expect(resultado).toEqual(esperado);
99 });
100
101 it('función getArticulosByIdHojaRuta llama ruta correcta', function() {
102
103 //arrange
104 var responseFake = 'responseFake';
105 var paramFake = 'param fake';
106 var result;
107
108 httpBackend.expectGET('localhost/articulos/hoja-ruta/' + paramFake)
109 .respond(responseFake);
110
111 //act
112 servicio.getArticulosByIdHojaRuta(paramFake).then(function(data) {
113 result = data.data;
114 });
115 httpBackend.flush();
116
117 //assert
118 expect(result).toEqual(responseFake);
119 });
120
121 it('función crearArticulosParaHojaRuta llama ruta correcta', function() {
122
123 //arrange
124 var responseFake = 'responseFake';
125 var paramFake = 'param fake';
126 var result;
127
128 httpBackend.expectPOST('localhost/articulos/hoja-ruta',
129 { articuloHojaRuta: paramFake }).respond(responseFake);
130
131 //act
132 servicio.crearArticulosParaHojaRuta(paramFake).then(function(data) {
133 result = data.data;
134 });
135 httpBackend.flush();
136
137 //assert
138 expect(result).toEqual(responseFake);
139 });
140
141 it('función getDomiciliosByIdHojaRuta llama ruta correcta', function() {
142
143 //arrange
144 var responseFake = 'responseFake';
145 var paramFake = 'param-fake';
146 var result;
147
148 httpBackend.expectGET('localhost/hoja-ruta/' + paramFake + '/domicilios')
149 .respond(responseFake);
150
151 //act
152 servicio.getDomiciliosByIdHojaRuta(paramFake).then(function(data) {
153 result = data.data;
154 });
155 httpBackend.flush();
156
157 //assert
158 expect(result).toEqual(responseFake);
159 });
160
161 it('función getDomiciliosByIdCliente llama ruta correcta', function() {
162
163 //arrange
164 var responseFake = 'responseFake';
165 var paramFake = 'param-fake';
166 var result;
167
168 httpBackend.expectGET('localhost/domicilio/tipo/2/cliente/' + paramFake )
169 .respond(responseFake);
170
171 //act
172 servicio.getDomiciliosByIdCliente(paramFake).then(function(data) {
173 result = data.data;
174 });
175 httpBackend.flush();
176
177 //assert
178 expect(result).toEqual(responseFake);
179 });
180
181 it('función getPrecioCondicion llama ruta correcta', function() {
182
183 //arrange
184 var responseFake = 'responseFake';
185 var result;
186
187 httpBackend.expectGET('localhost/precio-condicion')
188 .respond(responseFake);
189
190 //act
191 servicio.getPrecioCondicion().then(function(data) {
192 result = data.data;
193 });
194 httpBackend.flush();
195
196 //assert
197 expect(result).toEqual(responseFake);
198 });
199
200 it('función getPrecioCondicionById llama ruta correcta', function() {
201
202 //arrange
203 var responseFake = 'responseFake';
204 var paramFake = 'param-fake';
205 var result;
206
207 httpBackend.expectGET('localhost/precio-condicion/' + paramFake)
208 .respond(responseFake);
209
210 //act
211 servicio.getPrecioCondicionById(paramFake).then(function(data) {
212 result = data.data;
213 });
214 httpBackend.flush();
215
216 //assert
217 expect(result).toEqual(responseFake);
218 });
219
220 it('función getPlazoPagoByPrecioCondicion llama ruta correcta', function() {
221
222 //arrange
223 var responseFake = 'responseFake';
224 var paramFake = 'param-fake';
225 var result;
226
227 httpBackend.expectGET('localhost/plazo-pago/precio-condicion/' + paramFake)
228 .respond(responseFake);
229
230 //act
231 servicio.getPlazoPagoByPrecioCondicion(paramFake).then(function(data) {
232 result = data.data;
233 });
234 httpBackend.flush();
235
236 //assert
237 expect(result).toEqual(responseFake);
238 });
239
240 it('función crearFlete llama ruta correcta', function() {
241
242 //arrange
243 var responseFake = 'responseFake';
244 var paramFake = 'param-fake';
245 var result;
246
247 httpBackend.expectPOST('localhost/flete', { flete: paramFake })
248 .respond(responseFake);
249
250 //act
251 servicio.crearFlete(paramFake).then(function(data) {
252 result = data.data;
253 });
254 httpBackend.flush();
255
256 //assert
257 expect(result).toEqual(responseFake);
258 });
259
260 it('función crearPlazosParaHojaRuta llama ruta correcta', function() {
261
262 //arrange
263 var responseFake = 'responseFake';
264 var paramFake = 'param-fake';
265 var result;
266
267 httpBackend.expectPOST('localhost/plazo-pago/hoja-ruta', paramFake)
268 .respond(responseFake);
269
270 //act
271 servicio.crearPlazosParaHojaRuta(paramFake).then(function(data) {
272 result = data.data;
273 });
274 httpBackend.flush();
275
276 //assert
277 expect(result).toEqual(responseFake);
278 });
279
280 it('función getCotizacionByIdMoneda llama ruta correcta', function() {
281
282 //arrange
283 var responseFake = 'responseFake';
284 var paramFake = 'param-fake';
285 var result;
286
287 httpBackend.expectGET('localhost/moneda/' + paramFake)
288 .respond(responseFake);
289
290 //act
291 servicio.getCotizacionByIdMoneda(paramFake).then(function(data) {
292 result = data.data;
293 });
294 httpBackend.flush();
295
296 //assert
297 expect(result).toEqual(responseFake);
298 });
299
300 it('función crearEstadoParaHojaRuta llama ruta correcta', function() {
301
302 //arrange
303 var responseFake = 'responseFake';
304 var paramFake = 'param-fake';
305 var result;
306
307 httpBackend.expectPOST('localhost/estado', { estado: paramFake})
308 .respond(responseFake);
309
310 //act
311 servicio.crearEstadoParaHojaRuta(paramFake).then(function(data) {
312 result = data.data;
313 });
314 httpBackend.flush();
315
316 //assert
317 expect(result).toEqual(responseFake);
318 });
319
320 it('función getNumeroHojaRuta llama ruta correcta', function() {
321
322 //arrange
323 var responseFake = 'responseFake';
324 var result;
325
326 httpBackend.expectGET('localhost/hoja-ruta/numero-siguiente')
327 .respond(responseFake);
328
329 //act
330 servicio.getNumeroHojaRuta().then(function(data) {
331 result = data.data;
332 });
333 httpBackend.flush();
334
335 //assert
336 expect(result).toEqual(responseFake);
337 });
338
339 it('función getRemitosByIdVehiculo llama ruta correcta', function() {
340
341 //arrange
342 var responseFake = 'responseFake';
343 var paramFake = 'param fake';
344 var dateFake = new Date();
345 var result;
346
347 httpBackend.expectGET('localhost/vehiculo/obtener/remitos/' + paramFake + '/' +
348 dateFake.toISOString().substring(0, 10))
349 .respond(responseFake);
350
351 //act
352 servicio.getRemitosByIdVehiculo(paramFake, dateFake).then(function(data) {
353 result = data.data;
354 });
355 httpBackend.flush();
356
357 //assert
358 expect(result).toEqual(responseFake);
359 });
360
361 it('función desasociarRemitos llama ruta correcta', function() {
362
363 //arrange
364 var responseFake = 'responseFake';
365 var paramFake = 'param fake';
366 var paramFake2 = 'param fake 2';
367 var paramFake3 = 'param fake 3';
368 var result;
369
370 httpBackend.expectPOST('localhost/vehiculo/desasociar-remitos',
371 {
372 idsRemitos: paramFake,
373 idVehiculo: paramFake2,
374 vehiculoSinRemitos: paramFake3
375 }).respond(responseFake);
376
377 //act
378 servicio.desasociarRemitos(paramFake, paramFake2, paramFake3).then(function(data) {
379 result = data.data;
380 });
381 httpBackend.flush();
382
383 //assert
384 expect(result).toEqual(responseFake);
385 });
386 });
387 });
388
1 angular.module('focaCrearHojaRuta', []); 1 angular.module('focaCrearHojaRuta', ['ngRoute']);
2 2
src/js/controller.js
1 angular.module('focaCrearHojaRuta') .controller('hojaRutaCtrl', 1 angular.module('focaCrearHojaRuta') .controller('hojaRutaCtrl',
2 [ 2 [
3 '$scope', 3 '$scope',
4 '$uibModal', 4 '$uibModal',
5 '$location', 5 '$location',
6 '$filter', 6 '$filter',
7 '$timeout', 7 '$timeout',
8 'focaCrearHojaRutaService', 8 'focaCrearHojaRutaService',
9 'focaModalService', 9 'focaModalService',
10 'focaBotoneraLateralService', 10 'focaBotoneraLateralService',
11 'focaLoginService', 11 'focaLoginService',
12 '$localStorage', 12 '$localStorage',
13 function($scope, $uibModal, $location, $filter, $timeout, 13 function($scope, $uibModal, $location, $filter, $timeout,
14 focaCrearHojaRutaService, focaModalService, focaBotoneraLateralService, 14 focaCrearHojaRutaService, focaModalService, focaBotoneraLateralService,
15 focaLoginSrv, $localStorage) 15 focaLoginSrv, $localStorage)
16 { 16 {
17 config(); 17 config();
18 18
19 function config() { 19 function config() {
20 $scope.botonera = focaCrearHojaRutaService.getBotonera(); 20 $scope.botonera = focaCrearHojaRutaService.getBotonera();
21 $scope.datepickerAbierto = false; 21 $scope.datepickerAbierto = false;
22 $scope.show = false; 22 $scope.show = false;
23 $scope.cargando = true; 23 $scope.cargando = true;
24 $scope.now = new Date(); 24 $scope.now = new Date();
25 $scope.puntoVenta = $filter('rellenarDigitos')(0, 4); 25 $scope.puntoVenta = $filter('rellenarDigitos')(0, 4);
26 $scope.comprobante = $filter('rellenarDigitos')(0, 8); 26 $scope.comprobante = $filter('rellenarDigitos')(0, 8);
27 27
28 //SETEO BOTONERA LATERAL 28 //SETEO BOTONERA LATERAL
29 $timeout(function() { 29 $timeout(function() {
30 focaBotoneraLateralService.showSalir(false); 30 focaBotoneraLateralService.showSalir(false);
31 focaBotoneraLateralService.showPausar(true); 31 focaBotoneraLateralService.showPausar(true);
32 focaBotoneraLateralService.showGuardar(true, $scope.crearHojaRuta); 32 focaBotoneraLateralService.showGuardar(true, $scope.crearHojaRuta);
33 focaBotoneraLateralService.addCustomButton('Salir', salir); 33 focaBotoneraLateralService.addCustomButton('Salir', salir);
34 }); 34 });
35 35
36 init(); 36 init();
37 $timeout(function() {getLSHojaRuta();}); 37 $timeout(function() {getLSHojaRuta();});
38 } 38 }
39 39
40 function init() { 40 function init() {
41 $scope.$broadcast('cleanCabecera'); 41 $scope.$broadcast('cleanCabecera');
42 42
43 $scope.hojaRuta = { 43 $scope.hojaRuta = {
44 fecha: new Date(), 44 fecha: new Date(),
45 litros: 0, 45 litros: 0,
46 chofer: {}, 46 chofer: {},
47 vehiculo: { 47 vehiculo: {
48 capacidad: 0 48 capacidad: 0
49 }, 49 },
50 transportista: {}, 50 transportista: {},
51 tarifario: { 51 tarifario: {
52 costo: null 52 costo: null
53 }, 53 },
54 remitosTabla: [] 54 remitosTabla: []
55 }; 55 };
56 56
57 $scope.idLista = undefined; 57 $scope.idLista = undefined;
58 58
59 focaCrearHojaRutaService.getNumeroHojaRuta().then( 59 focaCrearHojaRutaService.getNumeroHojaRuta().then(
60 function(res) { 60 function(res) {
61 $scope.puntoVenta = $filter('rellenarDigitos')(res.data.sucursal, 4); 61 $scope.puntoVenta = $filter('rellenarDigitos')(res.data.sucursal, 4);
62 $scope.comprobante = $filter('rellenarDigitos')(res.data.numeroHojaRuta, 8); 62 $scope.comprobante = $filter('rellenarDigitos')(res.data.numeroHojaRuta, 8);
63 }, 63 },
64 function(err) { 64 function(err) {
65 focaModalService.alert('La terminal no esta configurada correctamente'); 65 focaModalService.alert('La terminal no esta configurada correctamente');
66 console.info(err); 66 console.info(err);
67 } 67 }
68 ); 68 );
69 69
70 $scope.inicial = angular.copy($scope.hojaRuta); 70 $scope.inicial = angular.copy($scope.hojaRuta);
71 } 71 }
72 72
73 $scope.$watch('hojaRuta', function(newValue, oldValue) { 73 $scope.$watch('hojaRuta', function(newValue, oldValue) {
74 focaBotoneraLateralService.setPausarData({ 74 focaBotoneraLateralService.setPausarData({
75 label: 'hojaRuta', 75 label: 'hojaRuta',
76 val: newValue 76 val: newValue
77 }); 77 });
78 }, true); 78 }, true);
79 79
80 $scope.crearHojaRuta = function() { 80 $scope.crearHojaRuta = function() {
81 if(!$scope.hojaRuta.remitosTabla.length) { 81 if(!$scope.hojaRuta.remitosTabla.length) {
82 focaModalService.alert('Ingrese Remitos'); 82 focaModalService.alert('Ingrese Remitos');
83 return; 83 return;
84 } 84 }
85 if(!$scope.hojaRuta.chofer.id) { 85 if(!$scope.hojaRuta.chofer.id) {
86 focaModalService.alert('Ingrese Chofer'); 86 focaModalService.alert('Ingrese Chofer');
87 return; 87 return;
88 } 88 }
89 if(!$scope.hojaRuta.vehiculo.id) { 89 if(!$scope.hojaRuta.vehiculo.id) {
90 focaModalService.alert('Ingrese Vehiculo'); 90 focaModalService.alert('Ingrese Vehiculo');
91 return; 91 return;
92 } 92 }
93 if(!$scope.hojaRuta.transportista.COD) { 93 if(!$scope.hojaRuta.transportista.COD) {
94 focaModalService.alert('Ingrese Transportista'); 94 focaModalService.alert('Ingrese Transportista');
95 return; 95 return;
96 } 96 }
97 if(!$scope.hojaRuta.tarifario.costo) { 97 if(!$scope.hojaRuta.tarifario.costo) {
98 focaModalService.alert('Ingrese Tarifario'); 98 focaModalService.alert('Ingrese Tarifario');
99 return; 99 return;
100 } 100 }
101 if(!$scope.hojaRuta.datosExtra) { 101 if(!$scope.hojaRuta.datosExtra) {
102 focaModalService.alert('Ingrese Datos extra'); 102 focaModalService.alert('Ingrese Datos extra');
103 return; 103 return;
104 } 104 }
105 var date = new Date(); 105 var date = new Date();
106 var save = { 106 var save = {
107 hojaRuta: { 107 hojaRuta: {
108 id: 0, 108 id: 0,
109 fechaCreacion: new Date(date.getTime()).toISOString().slice(0, 19) 109 fechaCreacion: new Date(date.getTime()).toISOString().slice(0, 19)
110 .replace('T', ' '), 110 .replace('T', ' '),
111 idTransportista: $scope.hojaRuta.transportista.COD, 111 idTransportista: $scope.hojaRuta.transportista.COD,
112 idChofer: $scope.hojaRuta.chofer.id, 112 idChofer: $scope.hojaRuta.chofer.id,
113 idVehiculo: $scope.hojaRuta.vehiculo.id, 113 idVehiculo: $scope.hojaRuta.vehiculo.id,
114 tarifaFlete: $scope.hojaRuta.tarifario.costo, 114 tarifaFlete: $scope.hojaRuta.tarifario.costo,
115 fechaReparto: new Date($scope.hojaRuta.fechaReparto).toISOString().substring(0, 10), 115 fechaReparto: new Date($scope.hojaRuta.fechaReparto).toISOString().substring(0, 10),
116 estado: 0 116 estado: 0
117 }, 117 },
118 remitos: $scope.hojaRuta.remitosTabla 118 remitos: $scope.hojaRuta.remitosTabla
119 }; 119 };
120 save.hojaRuta = angular.extend({}, save.hojaRuta, $scope.hojaRuta.datosExtra); 120 save.hojaRuta = angular.extend({}, save.hojaRuta, $scope.hojaRuta.datosExtra);
121 focaCrearHojaRutaService.crearHojaRuta(save).then( 121 focaCrearHojaRutaService.crearHojaRuta(save).then(
122 function(data) { 122 function(data) {
123 focaModalService.alert( 123 focaModalService.alert(
124 'Hoja ruta creada Nº: ' + 124 'Hoja ruta creada Nº: ' +
125 $filter('rellenarDigitos')(data.data.sucursal, 4) + '-' + 125 $filter('rellenarDigitos')(data.data.sucursal, 4) + '-' +
126 $filter('rellenarDigitos')(data.data.numeroHojaRuta, 8) 126 $filter('rellenarDigitos')(data.data.numeroHojaRuta, 8)
127 ); 127 );
128 128
129 init(); 129 init();
130 }, 130 },
131 function(error) { 131 function(error) {
132 focaModalService.alert('Hubo un error al crear la hoja de ruta'); 132 focaModalService.alert('Hubo un error al crear la hoja de ruta');
133 console.info(error); 133 console.info(error);
134 } 134 }
135 ); 135 );
136 }; 136 };
137 137
138 $scope.seleccionarTransportista = function() { 138 $scope.seleccionarTransportista = function() {
139 if(eligioPreConfirmado()) return; 139 if(eligioPreConfirmado()) return;
140 var parametrosModal = { 140 var parametrosModal = {
141 titulo: 'Búsqueda de transportista', 141 titulo: 'Búsqueda de transportista',
142 query: '/transportista', 142 query: '/transportista',
143 columnas: [ 143 columnas: [
144 { 144 {
145 nombre: 'Código', 145 nombre: 'Código',
146 propiedad: 'COD' 146 propiedad: 'COD'
147 }, 147 },
148 { 148 {
149 nombre: 'Nombre', 149 nombre: 'Nombre',
150 propiedad: 'NOM' 150 propiedad: 'NOM'
151 }, 151 },
152 { 152 {
153 nombre: 'CUIT', 153 nombre: 'CUIT',
154 propiedad: 'CUIT' 154 propiedad: 'CUIT'
155 } 155 }
156 ] 156 ]
157 }; 157 };
158 focaModalService.modal(parametrosModal).then( 158 focaModalService.modal(parametrosModal).then(
159 function(proveedor) { 159 function(proveedor) {
160 $scope.hojaRuta.transportista = proveedor; 160 $scope.hojaRuta.transportista = proveedor;
161 $scope.$broadcast('addCabecera', { 161 $scope.$broadcast('addCabecera', {
162 label: 'Transportista:', 162 label: 'Transportista:',
163 valor: $filter('rellenarDigitos')(proveedor.COD, 5) + ' - ' + 163 valor: $filter('rellenarDigitos')(proveedor.COD, 5) + ' - ' +
164 proveedor.NOM 164 proveedor.NOM
165 }); 165 });
166 }, function() { 166 }, function() {
167 167
168 } 168 }
169 ); 169 );
170 }; 170 };
171 171
172 $scope.seleccionarChofer = function() { 172 $scope.seleccionarChofer = function() {
173 var parametrosModal = { 173 var parametrosModal = {
174 titulo: 'Búsqueda de Chofer', 174 titulo: 'Búsqueda de Chofer',
175 query: '/chofer', 175 query: '/chofer',
176 columnas: [ 176 columnas: [
177 { 177 {
178 propiedad: 'id', 178 propiedad: 'id',
179 nombre: 'Código', 179 nombre: 'Código',
180 filtro: { 180 filtro: {
181 nombre: 'rellenarDigitos', 181 nombre: 'rellenarDigitos',
182 parametro: 3 182 parametro: 3
183 } 183 }
184 }, 184 },
185 { 185 {
186 propiedad: 'nombre', 186 propiedad: 'nombre',
187 nombre: 'Nombre' 187 nombre: 'Nombre'
188 }, 188 },
189 { 189 {
190 propiedad: 'dni', 190 propiedad: 'dni',
191 nombre: 'DNI' 191 nombre: 'DNI'
192 }, 192 },
193 { 193 {
194 propiedad: 'telefono', 194 propiedad: 'telefono',
195 nombre: 'Teléfono' 195 nombre: 'Teléfono'
196 } 196 }
197 ] 197 ]
198 }; 198 };
199 focaModalService.modal(parametrosModal).then( 199 focaModalService.modal(parametrosModal).then(
200 function(chofer) { 200 function(chofer) {
201 $scope.hojaRuta.chofer = chofer; 201 $scope.hojaRuta.chofer = chofer;
202 $scope.$broadcast('addCabecera', { 202 $scope.$broadcast('addCabecera', {
203 label: 'Chofer:', 203 label: 'Chofer:',
204 valor: $filter('rellenarDigitos')(chofer.id, 3) + ' - ' +chofer.nombre 204 valor: $filter('rellenarDigitos')(chofer.id, 3) + ' - ' +chofer.nombre
205 }); 205 });
206 }, function() { 206 }, function() {
207 // funcion ejecutada cuando se cancela el modal 207 // funcion ejecutada cuando se cancela el modal
208 } 208 }
209 ); 209 );
210 }; 210 };
211 211
212 $scope.seleccionarVehiculo = function() { 212 $scope.seleccionarVehiculo = function() {
213 if(!eligioFecha() || eligioPreConfirmado()) return; 213 if(!eligioFecha() || eligioPreConfirmado()) return;
214 modalVehiculos(); 214 modalVehiculos();
215 }; 215 };
216 216
217 $scope.seleccionarTarifario = function() { 217 $scope.seleccionarTarifario = function() {
218 var modalInstance = $uibModal.open( 218 var modalInstance = $uibModal.open(
219 { 219 {
220 ariaLabelledBy: 'Busqueda de Tarifario', 220 ariaLabelledBy: 'Busqueda de Tarifario',
221 templateUrl: 'modal-tarifa-flete.html', 221 templateUrl: 'modal-tarifa-flete.html',
222 controller: 'focaModalTarifaFleteController', 222 controller: 'focaModalTarifaFleteController',
223 size: 'lg', 223 size: 'lg',
224 resolve: { 224 resolve: {
225 parametrosTarifaFlete: function() { 225 parametrosTarifaFlete: function() {
226 return $scope.hojaRuta.tarifario.costo; 226 return $scope.hojaRuta.tarifario.costo;
227 } 227 }
228 } 228 }
229 } 229 }
230 ); 230 );
231 231
232 modalInstance.result.then( 232 modalInstance.result.then(
233 function(tarifario) { 233 function(tarifario) {
234 $scope.hojaRuta.tarifario = tarifario; 234 $scope.hojaRuta.tarifario = tarifario;
235 $scope.$broadcast('addCabecera', { 235 $scope.$broadcast('addCabecera', {
236 label: 'Tarifario:', 236 label: 'Tarifario:',
237 valor: tarifario.costo 237 valor: tarifario.costo
238 }); 238 });
239 }, function() { 239 }, function() {
240 // funcion ejecutada cuando se cancela el modal 240 // funcion ejecutada cuando se cancela el modal
241 } 241 }
242 ); 242 );
243 }; 243 };
244 244
245 $scope.seleccionarRemitos = function() { 245 $scope.seleccionarRemitos = function() {
246 if(eligioPreConfirmado() || !eligioFecha() || !eligioVehiculo()) return; 246 if(eligioPreConfirmado() || !eligioFecha() || !eligioVehiculo()) return;
247 var modalInstance = $uibModal.open( 247 var modalInstance = $uibModal.open(
248 { 248 {
249 ariaLabelledBy: 'Busqueda de Remito', 249 ariaLabelledBy: 'Busqueda de Remito',
250 templateUrl: 'foca-modal-remito.html', 250 templateUrl: 'foca-modal-remito.html',
251 controller: 'focaModalRemitoController', 251 controller: 'focaModalRemitoController',
252 size: 'lg', 252 size: 'lg',
253 resolve: {usadoPor: function() {return 'hojaRuta';}} 253 resolve: {usadoPor: function() {return 'hojaRuta';}}
254 } 254 }
255 ); 255 );
256 modalInstance.result.then( 256 modalInstance.result.then(
257 function(remito) { 257 function(remito) {
258 // TODO: borrar cuando no se use definitivamente 258 // TODO: borrar cuando no se use definitivamente
259 // for (var i = $scope.hojaRuta.remitosTabla.length - 1; i >= 0; i--) { 259 // for (var i = $scope.hojaRuta.remitosTabla.length - 1; i >= 0; i--) {
260 // if ($scope.hojaRuta.remitosTabla[i].id === remito.id) { 260 // if ($scope.hojaRuta.remitosTabla[i].id === remito.id) {
261 // focaModalService.alert('Remito ya incluido'); 261 // focaModalService.alert('Remito ya incluido');
262 // return; 262 // return;
263 // } 263 // }
264 // } 264 // }
265 265
266 // var litros = 0; 266 // var litros = 0;
267 // for (var j = remito.articulosRemito.length - 1; j >= 0; j--) { 267 // for (var j = remito.articulosRemito.length - 1; j >= 0; j--) {
268 // litros = litros + parseFloat(remito.articulosRemito[j].cantidad); 268 // litros = litros + parseFloat(remito.articulosRemito[j].cantidad);
269 // } 269 // }
270 270
271 // if ($scope.hojaRuta.litros >= $scope.hojaRuta.vehiculo.capacidad) { 271 // if ($scope.hojaRuta.litros >= $scope.hojaRuta.vehiculo.capacidad) {
272 // focaModalService.alert( 272 // focaModalService.alert(
273 // 'Debe ingresar toda la información para el transporte' 273 // 'Debe ingresar toda la información para el transporte'
274 // ); 274 // );
275 // return; 275 // return;
276 // } 276 // }
277 277
278 //if($scope.hojaRuta.litros + litros >= $scope.hojaRuta.vehiculo.capacidad) 278 //if($scope.hojaRuta.litros + litros >= $scope.hojaRuta.vehiculo.capacidad)
279 // { 279 // {
280 // var litrostotales = litros; 280 // var litrostotales = litros;
281 // litros = $scope.hojaRuta.vehiculo.capacidad - $scope.hojaRuta.litros; 281 // litros = $scope.hojaRuta.vehiculo.capacidad - $scope.hojaRuta.litros;
282 // focaModalService.alert( 282 // focaModalService.alert(
283 // 'La carga excede la capacidad disponible del vehiculo. ' + 283 // 'La carga excede la capacidad disponible del vehiculo. ' +
284 // 'Excedente no cargado: ' + (litrostotales - litros) + ' litros' 284 // 'Excedente no cargado: ' + (litrostotales - litros) + ' litros'
285 // ); 285 // );
286 // } 286 // }
287 287
288 // remito.litros = litros; 288 // remito.litros = litros;
289 // $scope.hojaRuta.litros = $scope.hojaRuta.litros + litros; 289 // $scope.hojaRuta.litros = $scope.hojaRuta.litros + litros;
290 $scope.cargarCisterna(remito.id).then(function() { 290 $scope.cargarCisterna(remito.id).then(function() {
291 $scope.hojaRuta.remitosTabla.push(remito); 291 $scope.hojaRuta.remitosTabla.push(remito);
292 $scope.seleccionarRemitos(); 292 $scope.seleccionarRemitos();
293 }, function() { 293 }, function() {
294 $scope.seleccionarRemitos(); 294 $scope.seleccionarRemitos();
295 }); 295 });
296 }, function() { 296 }, function() {
297 // funcion ejecutada cuando se cancela el modal 297 // funcion ejecutada cuando se cancela el modal
298 } 298 }
299 ); 299 );
300 }; 300 };
301 301
302 $scope.seleccionarVehiculosPrecargados = function() { 302 $scope.seleccionarVehiculosPrecargados = function() {
303 if(!eligioFecha()) return; 303 if(!eligioFecha()) return;
304 modalVehiculos(true); 304 modalVehiculos(true);
305 }; 305 };
306 306
307 $scope.cargarCisterna = function(idRemito) { 307 $scope.cargarCisterna = function(idRemito) {
308 if(!eligioFecha() || !$scope.hojaRuta.vehiculo.id) return; 308 if(!eligioFecha() || !$scope.hojaRuta.vehiculo.id) return;
309 var modalInstance = $uibModal.open( 309 var modalInstance = $uibModal.open(
310 { 310 {
311 ariaLabelledBy: 'Busqueda de Vehiculo', 311 ariaLabelledBy: 'Busqueda de Vehiculo',
312 templateUrl: 'foca-detalle-vehiculo.html', 312 templateUrl: 'foca-detalle-vehiculo.html',
313 controller: 'focaDetalleVehiculo', 313 controller: 'focaDetalleVehiculo',
314 size: 'lg', 314 size: 'lg',
315 resolve: { 315 resolve: {
316 idVehiculo: function() {return $scope.hojaRuta.vehiculo.id;}, 316 idVehiculo: function() {return $scope.hojaRuta.vehiculo.id;},
317 idRemito: function() {return idRemito;}, 317 idRemito: function() {return idRemito;},
318 fechaReparto: function() {return $scope.hojaRuta.fechaReparto;} 318 fechaReparto: function() {return $scope.hojaRuta.fechaReparto;}
319 } 319 }
320 } 320 }
321 ); 321 );
322 return modalInstance.result; 322 return modalInstance.result;
323 }; 323 };
324 324
325 $scope.seleccionarFechaEntrega = function() { 325 $scope.seleccionarFechaEntrega = function() {
326 if(!$scope.hojaRuta.fechaReparto) { 326 if(!$scope.hojaRuta.fechaReparto) {
327 elegirFecha(); 327 elegirFecha();
328 return; 328 return;
329 } 329 }
330 focaModalService 330 focaModalService
331 .confirm('Si cambia la fecha se perderán los datos actuales') 331 .confirm('Si cambia la fecha se perderán los datos actuales')
332 .then(function() { 332 .then(function() {
333 elegirFecha(); 333 elegirFecha();
334 }, function() { 334 }, function() {
335 return ; 335 return ;
336 }); 336 });
337 }; 337 };
338 338
339 $scope.seleccionarDatosExtra = function() { 339 $scope.seleccionarDatosExtra = function() {
340 var datosHojaRuta = $scope.hojaRuta.datosExtra; 340 var datosHojaRuta = $scope.hojaRuta.datosExtra;
341 var modalInstance = $uibModal.open( 341 var modalInstance = $uibModal.open(
342 { 342 {
343 templateUrl: 'foca-modal-datos-hoja-ruta.html', 343 templateUrl: 'foca-modal-datos-hoja-ruta.html',
344 controller: 'focaModalDatosHojaRutaCtrl', 344 controller: 'focaModalDatosHojaRutaCtrl',
345 size: 'lg', 345 size: 'lg',
346 resolve: { 346 resolve: {
347 parametrosDatos: function() { 347 parametrosDatos: function() {
348 return { 348 return {
349 datosHojaRuta: datosHojaRuta 349 datosHojaRuta: datosHojaRuta
350 }; 350 };
351 } 351 }
352 } 352 }
353 } 353 }
354 ); 354 );
355 return modalInstance.result.then(function(datosExtra) { 355 return modalInstance.result.then(function(datosExtra) {
356 $scope.hojaRuta.datosExtra = datosExtra; 356 $scope.hojaRuta.datosExtra = datosExtra;
357 }, function() { 357 }, function() {
358 //se ejecuta cuando se cancela el modal 358 //se ejecuta cuando se cancela el modal
359 }); 359 });
360 }; 360 };
361 361
362 $scope.desasociarRemito = function(key, idRemito) { 362 $scope.desasociarRemito = function(key, idRemito) {
363 var idsRemito = [idRemito]; 363 var idsRemito = [idRemito];
364 focaModalService.confirm('¿Está seguro que desea desasociar este remito del' + 364 focaModalService.confirm('¿Está seguro que desea desasociar este remito del' +
365 ' vehículo?').then(function() { 365 ' vehículo?').then(function() {
366 focaCrearHojaRutaService.desasociarRemitos(idsRemito, 366 focaCrearHojaRutaService.desasociarRemitos(idsRemito,
367 $scope.hojaRuta.vehiculo.id, $scope.hojaRuta.remitosTabla.length <= 1).then( 367 $scope.hojaRuta.vehiculo.id, $scope.hojaRuta.remitosTabla.length <= 1).then(
368 function() { 368 function() {
369 $scope.hojaRuta.remitosTabla.splice(key, 1); 369 $scope.hojaRuta.remitosTabla.splice(key, 1);
370 focaModalService.alert('Remito desasociado con éxito'); 370 focaModalService.alert('Remito desasociado con éxito');
371 } 371 }
372 ); 372 );
373 }); 373 });
374 }; 374 };
375 375
376 function elegirFecha() { 376 function elegirFecha() {
377 focaModalService.modalFecha('Fecha de entrega').then(function(fecha) { 377 focaModalService.modalFecha('Fecha de entrega').then(function(fecha) {
378 $scope.$broadcast('addCabecera', { 378 $scope.$broadcast('addCabecera', {
379 label: 'Fecha de entrega:', 379 label: 'Fecha de entrega:',
380 valor: fecha.toLocaleDateString() 380 valor: fecha.toLocaleDateString()
381 }); 381 });
382 $scope.hojaRuta.fechaReparto = fecha; 382 $scope.hojaRuta.fechaReparto = fecha;
383 }); 383 });
384 } 384 }
385 385
386 function eligioPreConfirmado() { 386 function eligioPreConfirmado() {
387 if($scope.eligioPreConfirmado) { 387 if($scope.eligioPreConfirmado) {
388 focaModalService.alert('No puede elegir si eligió un vehiculo pre cargado'); 388 focaModalService.alert('No puede elegir si eligió un vehiculo pre cargado');
389 return true; 389 return true;
390 } 390 }
391 return false; 391 return false;
392 } 392 }
393 393
394 function eligioFecha() { 394 function eligioFecha() {
395 if(!$scope.hojaRuta.fechaReparto) { 395 if(!$scope.hojaRuta.fechaReparto) {
396 focaModalService.alert('Primero seleccione fecha de reparto'); 396 focaModalService.alert('Primero seleccione fecha de reparto');
397 return false; 397 return false;
398 } 398 }
399 return true; 399 return true;
400 } 400 }
401 401
402 function eligioVehiculo() { 402 function eligioVehiculo() {
403 if(!$scope.hojaRuta.vehiculo.id) { 403 if(!$scope.hojaRuta.vehiculo.id) {
404 focaModalService.alert('Primero seleccione vehiculo'); 404 focaModalService.alert('Primero seleccione vehiculo');
405 return false; 405 return false;
406 } 406 }
407 return true; 407 return true;
408 } 408 }
409 409
410 function modalVehiculos(preCargados) { 410 function modalVehiculos(preCargados) {
411 var parametrosModal = {}; 411 var parametrosModal = {};
412 if(preCargados) { 412 if(preCargados) {
413 parametrosModal.query = '/vehiculo/obtener/pre-confirmados/' + 413 parametrosModal.query = '/vehiculo/obtener/pre-confirmados/' +
414 new Date($scope.hojaRuta.fechaReparto).toISOString().substring(0, 10); 414 new Date($scope.hojaRuta.fechaReparto).toISOString().substring(0, 10);
415 parametrosModal.titulo = 'Búsqueda de vehiculos pre confirmados'; 415 parametrosModal.titulo = 'Búsqueda de vehiculos pre confirmados';
416 }else { 416 }else {
417 parametrosModal.query = '/vehiculo'; 417 parametrosModal.query = '/vehiculo';
418 parametrosModal.titulo = 'Búsqueda de vehículos'; 418 parametrosModal.titulo = 'Búsqueda de vehículos';
419 } 419 }
420 parametrosModal.columnas = [ 420 parametrosModal.columnas = [
421 { 421 {
422 propiedad: 'codigo', 422 propiedad: 'codigo',
423 nombre: 'Código' 423 nombre: 'Código'
424 }, 424 },
425 { 425 {
426 propiedad: 'tractor', 426 propiedad: 'tractor',
427 nombre: 'tractor' 427 nombre: 'tractor'
428 }, 428 },
429 { 429 {
430 propiedad: 'semi', 430 propiedad: 'semi',
431 nombre: 'Semi' 431 nombre: 'Semi'
432 } 432 }
433 ]; 433 ];
434 focaModalService.modal(parametrosModal).then(function(vehiculo) { 434 focaModalService.modal(parametrosModal).then(function(vehiculo) {
435 if(!preCargados && vehiculoEnUso(vehiculo)) return; 435 if(!preCargados && vehiculoEnUso(vehiculo)) return;
436 $scope.hojaRuta.vehiculo = vehiculo; 436 $scope.hojaRuta.vehiculo = vehiculo;
437 $scope.hojaRuta.transportista = vehiculo.transportista; 437 $scope.hojaRuta.transportista = vehiculo.transportista;
438 if(preCargados) { 438 if(preCargados) {
439 $scope.eligioPreConfirmado = true; 439 $scope.eligioPreConfirmado = true;
440 $scope.hojaRuta.vehiculo = vehiculo; 440 $scope.hojaRuta.vehiculo = vehiculo;
441 $scope.$broadcast('addCabecera', { 441 $scope.$broadcast('addCabecera', {
442 label: 'Transportista:', 442 label: 'Transportista:',
443 valor: $filter('rellenarDigitos')(vehiculo.transportista.COD, 5) + 443 valor: $filter('rellenarDigitos')(vehiculo.transportista.COD, 5) +
444 ' - ' + vehiculo.transportista.NOM 444 ' - ' + vehiculo.transportista.NOM
445 }); 445 });
446 focaCrearHojaRutaService 446 focaCrearHojaRutaService
447 .getRemitosByIdVehiculo(vehiculo.id, $scope.hojaRuta.fechaReparto) 447 .getRemitosByIdVehiculo(vehiculo.id, $scope.hojaRuta.fechaReparto)
448 .then(function(res) { 448 .then(function(res) {
449 $scope.hojaRuta.remitosTabla = res.data; 449 $scope.hojaRuta.remitosTabla = res.data;
450 }); 450 });
451 }else { 451 }else {
452 focaCrearHojaRutaService 452 focaCrearHojaRutaService
453 .getRemitosByIdVehiculo(vehiculo.id, $scope.hojaRuta.fechaReparto, true) 453 .getRemitosByIdVehiculo(vehiculo.id, $scope.hojaRuta.fechaReparto, true)
454 .then(function(res) { 454 .then(function(res) {
455 $scope.hojaRuta.remitosTabla = res.data; 455 $scope.hojaRuta.remitosTabla = res.data;
456 }); 456 });
457 } 457 }
458 $scope.$broadcast('addCabecera', { 458 $scope.$broadcast('addCabecera', {
459 label: 'Tractor:', 459 label: 'Tractor:',
460 valor: vehiculo.tractor 460 valor: vehiculo.tractor
461 }); 461 });
462 $scope.$broadcast('addCabecera', { 462 $scope.$broadcast('addCabecera', {
463 label: 'Semi:', 463 label: 'Semi:',
464 valor: vehiculo.semi 464 valor: vehiculo.semi
465 }); 465 });
466 $scope.$broadcast('addCabecera', { 466 $scope.$broadcast('addCabecera', {
467 label: 'Capacidad:', 467 label: 'Capacidad:',
468 valor: vehiculo.capacidad 468 valor: vehiculo.capacidad
469 }); 469 });
470 }); 470 });
471 } 471 }
472 472
473 function vehiculoEnUso(vehiculo) { 473 function vehiculoEnUso(vehiculo) {
474 var idUsuario = focaLoginSrv.getLoginData().vendedorCobrador; 474 var idUsuario = focaLoginSrv.getLoginData().vendedorCobrador;
475 for(var i = 0; i < vehiculo.cisternas.length; i++) { 475 for(var i = 0; i < vehiculo.cisternas.length; i++) {
476 for(var j = 0; j < vehiculo.cisternas[i].cisternasCarga.length; j++) { 476 for(var j = 0; j < vehiculo.cisternas[i].cisternasCarga.length; j++) {
477 var cisternaCarga = vehiculo.cisternas[i].cisternasCarga[j]; 477 var cisternaCarga = vehiculo.cisternas[i].cisternasCarga[j];
478 if(cisternaCarga.fechaReparto.substring(0, 10) === 478 if(cisternaCarga.fechaReparto.substring(0, 10) ===
479 new Date($scope.hojaRuta.fechaReparto).toISOString().substring(0, 10) && 479 new Date($scope.hojaRuta.fechaReparto).toISOString().substring(0, 10) &&
480 cisternaCarga.idUsuarioProceso && 480 cisternaCarga.idUsuarioProceso &&
481 cisternaCarga.idUsuarioProceso !== idUsuario) 481 cisternaCarga.idUsuarioProceso !== idUsuario)
482 { 482 {
483 focaModalService.alert('El vehículo está siendo usado por otro' + 483 focaModalService.alert('El vehículo está siendo usado por otro' +
484 ' usuario'); 484 ' usuario');
485 return true; 485 return true;
486 } 486 }
487 } 487 }
488 } 488 }
489 return false; 489 return false;
490 } 490 }
491 491
492 function salir() { 492 function salir() {
493 var confirmacion = false; 493 var confirmacion = false;
494 494
495 if (!angular.equals($scope.hojaRuta, $scope.inicial)) { 495 if (!angular.equals($scope.hojaRuta, $scope.inicial)) {
496 confirmacion = true; 496 confirmacion = true;
497 } 497 }
498 498
499 if (confirmacion) { 499 if (confirmacion) {
500 focaModalService.confirm( 500 focaModalService.confirm(
501 '¿Está seguro de que desea salir? Se perderán todos los datos cargados.' 501 '¿Está seguro de que desea salir? Se perderán todos los datos cargados.'
502 ).then(function(data) { 502 ).then(function(data) {
503 if (data) { 503 if (data) {
504 $location.path('/'); 504 $location.path('/');
505 } 505 }
506 }); 506 });
507 } else { 507 } else {
508 $location.path('/'); 508 $location.path('/');
509 } 509 }
510 } 510 }
511 511
512 function setearHojaRuta(hojaRuta) { 512 function setearHojaRuta(hojaRuta) {
513 $scope.$broadcast('cleanCabecera'); 513 $scope.$broadcast('cleanCabecera');
514 514
515 var cabeceras = []; 515 var cabeceras = [];
516 if (hojaRuta.fechaReparto) { 516 if (hojaRuta.fechaReparto) {
517 cabeceras.push({ 517 cabeceras.push({
518 label: 'Fecha de entrega:', 518 label: 'Fecha de entrega:',
519 valor: $filter('date')(hojaRuta.fechaReparto, 'dd/MM/yyyy') 519 valor: $filter('date')(hojaRuta.fechaReparto, 'dd/MM/yyyy')
520 }); 520 });
521 } 521 }
522 if (hojaRuta.transportista.COD) { 522 if (hojaRuta.transportista.COD) {
523 cabeceras.push({ 523 cabeceras.push({
524 label: 'Transportista:', 524 label: 'Transportista:',
525 valor: $filter('rellenarDigitos')(hojaRuta.transportista.COD, 5) + ' - ' + 525 valor: $filter('rellenarDigitos')(hojaRuta.transportista.COD, 5) + ' - ' +
526 hojaRuta.transportista.NOM 526 hojaRuta.transportista.NOM
527 }); 527 });
528 } 528 }
529 if (hojaRuta.chofer.id) { 529 if (hojaRuta.chofer.id) {
530 cabeceras.push({ 530 cabeceras.push({
531 label: 'Chofer:', 531 label: 'Chofer:',
532 valor: $filter('rellenarDigitos')(hojaRuta.chofer.id, 3) + 532 valor: $filter('rellenarDigitos')(hojaRuta.chofer.id, 3) +
533 ' - ' + hojaRuta.chofer.nombre 533 ' - ' + hojaRuta.chofer.nombre
534 }); 534 });
535 } 535 }
536 if (hojaRuta.vehiculo.id) { 536 if (hojaRuta.vehiculo.id) {
537 cabeceras.push({ 537 cabeceras.push({
538 label: 'Tractor:', 538 label: 'Tractor:',
539 valor: hojaRuta.vehiculo.tractor 539 valor: hojaRuta.vehiculo.tractor
540 }); 540 });
541 cabeceras.push({ 541 cabeceras.push({
542 label: 'Semi:', 542 label: 'Semi:',
543 valor: hojaRuta.vehiculo.semi 543 valor: hojaRuta.vehiculo.semi
544 }); 544 });
545 cabeceras.push({ 545 cabeceras.push({
546 label: 'Capacidad:', 546 label: 'Capacidad:',
547 valor: hojaRuta.vehiculo.capacidad 547 valor: hojaRuta.vehiculo.capacidad
548 }); 548 });
549 } 549 }
550 if (hojaRuta.tarifario.costo) { 550 if (hojaRuta.tarifario.costo) {
551 cabeceras.push({ 551 cabeceras.push({
552 label: 'Tarifario:', 552 label: 'Tarifario:',
553 valor: hojaRuta.tarifario.costo 553 valor: hojaRuta.tarifario.costo
554 }); 554 });
555 } 555 }
556 556
557 addArrayCabecera(cabeceras); 557 addArrayCabecera(cabeceras);
558 $scope.hojaRuta = hojaRuta; 558 $scope.hojaRuta = hojaRuta;
559 } 559 }
560 560
561 function getLSHojaRuta() { 561 function getLSHojaRuta() {
562 var hojaRuta = JSON.parse($localStorage.hojaRuta || null); 562 var hojaRuta = JSON.parse($localStorage.hojaRuta || null);
563 if (hojaRuta) { 563 if (hojaRuta) {
564 setearHojaRuta(hojaRuta); 564 setearHojaRuta(hojaRuta);
565 delete $localStorage.hojaRuta; 565 delete $localStorage.hojaRuta;
566 } 566 }
567 } 567 }
568 function addArrayCabecera(array) { 568 function addArrayCabecera(array) {
569 for(var i = 0; i < array.length; i++) { 569 for(var i = 0; i < array.length; i++) {
570 $scope.$broadcast('addCabecera', { 570 $scope.$broadcast('addCabecera', {
571 label: array[i].label, 571 label: array[i].label,
572 valor: array[i].valor 572 valor: array[i].valor
573 }); 573 });
574 } 574 }
575 } 575 }
576 } 576 }
577 ]); 577 ]);
578 578
src/js/controllerDatosHojaRuta.js
1 angular.module('focaCrearHojaRuta') 1 angular.module('focaCrearHojaRuta')
2 .controller('focaModalDatosHojaRutaCtrl', 2 .controller('focaModalDatosHojaRutaCtrl',
3 [ 3 [
4 '$filter', 4 '$filter',
5 '$scope', 5 '$scope',
6 '$uibModalInstance', 6 '$uibModalInstance',
7 'focaModalService', 7 'focaModalService',
8 'parametrosDatos', 8 'parametrosDatos',
9 function($filter, $scope, $uibModalInstance, focaModalService, parametrosDatos) { 9 function($filter, $scope, $uibModalInstance, focaModalService, parametrosDatos) {
10 $scope.datosHojaRuta = parametrosDatos.datosHojaRuta; 10 $scope.datosHojaRuta = parametrosDatos.datosHojaRuta;
11 $scope.focused = 0; 11 $scope.focused = 0;
12 12
13 $scope.aceptar = function(key) { 13 $scope.aceptar = function(key) {
14 if(key === 13) { 14 if(key === 13) {
15 if(!$scope.formDatosHojaRuta.$valid) { 15 if(!$scope.formDatosHojaRuta.$valid) {
16 focaModalService.alert('Formulario inválido'); 16 focaModalService.alert('Formulario inválido');
17 return; 17 return;
18 } 18 }
19 $uibModalInstance.close($scope.datosHojaRuta); 19 $uibModalInstance.close($scope.datosHojaRuta);
20 } 20 }
21 }; 21 };
22 22
23 $scope.next = function(key) { 23 $scope.next = function(key) {
24 if(key === 13) $scope.focused++; 24 if(key === 13) $scope.focused++;
25 }; 25 };
26 26
27 $scope.cancel = function() { 27 $scope.cancel = function() {
28 $uibModalInstance.dismiss('cancel'); 28 $uibModalInstance.dismiss('cancel');
29 }; 29 };
30 } 30 }
31 ] 31 ]
32 ); 32 );
33 33
File was created 1 <html>
2 <head>
3 <link rel="stylesheet" type="text/css" href="node_modules/jasmine-core/lib/jasmine-core/jasmine.css">
4 <meta charset="UTF-8" />
5 </head>
6 <body>
7 <script type="text/javascript" src="node_modules/jasmine-core/lib/jasmine-core/jasmine.js"></script>
8 <script type="text/javascript" src="node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js"></script>
9 <script type="text/javascript" src="node_modules/jasmine-core/lib/jasmine-core/boot.js"></script>
10 <script type="text/javascript" src="node_modules/angular/angular.min.js"></script>
11 <script type="text/javascript" src="node_modules/angular-route/angular-route.min.js"></script>
12 <script type="text/javascript" src="node_modules/angular-mocks/angular-mocks.js"></script>
13 <script type="text/javascript" src="src/js/app.js"></script>
14 <script type="text/javascript" src="src/js/controller.js"></script>
15 <script type="text/javascript" src="src/js/controllerDatosHojaRuta.js"></script>
16 <script type="text/javascript" src="src/js/service.js"></script>
17 <script type="text/javascript" src="src/js/route.js"></script>
18 <script type="text/javascript" src="spec/controllerSpec.js"></script>
19 <script type="text/javascript" src="spec/serviceSpec.js"></script>
20 <script type="text/javascript" src="spec/routeSpec.js"></script>
21 </body>
22 </html>
23