Commit c0a5e54576f8d7fa64618a69ede51d2b3568c765

Authored by Eric Fernandez
Exists in master and in 1 other branch develop

Merge branch 'master' into 'develop'

Master(efernandez)

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