Commit 432f6c3b043bbff760b2144b019ac80eb59edfcc
Exists in
master
Merge branch 'develop' into 'master'
Develop See merge request !41
Showing
6 changed files
Show diff stats
.jshintrc
| ... | ... | @@ -47,10 +47,10 @@ |
| 47 | 47 | "strict": false, |
| 48 | 48 | |
| 49 | 49 | // Prohibit use of explicitly undeclared variables. |
| 50 | - "undef": true, | |
| 50 | + "undef": false, | |
| 51 | 51 | |
| 52 | 52 | // Warn when variables are defined but never used. |
| 53 | - "unused": true, | |
| 53 | + "unused": false, | |
| 54 | 54 | |
| 55 | 55 | // Para que funcione en angular |
| 56 | 56 | "predef": ["angular", "alert", "spyOn", "expect", "it", "inject", "beforeEach", "describe"], |
package.json
spec/controllerSpec.js
| ... | ... | @@ -29,6 +29,7 @@ describe('Controladores abm vehículo', function() { |
| 29 | 29 | showGuardar: function() { return; }, |
| 30 | 30 | addCustomButton: function() { return; } |
| 31 | 31 | }, |
| 32 | + $localStorage: {}, | |
| 32 | 33 | $timeout: {} |
| 33 | 34 | }); |
| 34 | 35 | |
| ... | ... | @@ -38,7 +39,9 @@ describe('Controladores abm vehículo', function() { |
| 38 | 39 | |
| 39 | 40 | it('Crea fecha nueva', function() { |
| 40 | 41 | //arrange |
| 41 | - var scope = {}; | |
| 42 | + var scope = { | |
| 43 | + $watch: function() {} | |
| 44 | + }; | |
| 42 | 45 | var controller = $controller('focaAbmVehiculosController', { |
| 43 | 46 | $scope: scope, |
| 44 | 47 | focaAbmVehiculoService: { |
| ... | ... | @@ -55,6 +58,7 @@ describe('Controladores abm vehículo', function() { |
| 55 | 58 | showGuardar: function() { return; }, |
| 56 | 59 | addCustomButton: function() { return; } |
| 57 | 60 | }, |
| 61 | + $localStorage: {}, | |
| 58 | 62 | $timeout: {} |
| 59 | 63 | }); |
| 60 | 64 | |
| ... | ... | @@ -67,7 +71,9 @@ describe('Controladores abm vehículo', function() { |
| 67 | 71 | |
| 68 | 72 | it('$scope setea botonera lateral', function() { |
| 69 | 73 | //arrange |
| 70 | - var scope = {}; | |
| 74 | + var scope = { | |
| 75 | + $watch: function() {} | |
| 76 | + }; | |
| 71 | 77 | var controller = $controller('focaAbmVehiculosController', { |
| 72 | 78 | $scope: scope, |
| 73 | 79 | focaAbmVehiculoService: { |
| ... | ... | @@ -84,7 +90,8 @@ describe('Controladores abm vehículo', function() { |
| 84 | 90 | showGuardar: function() { return; }, |
| 85 | 91 | addCustomButton: function() { return; } |
| 86 | 92 | }, |
| 87 | - $timeout: {} | |
| 93 | + $timeout: {}, | |
| 94 | + $localStorage: {} | |
| 88 | 95 | }); |
| 89 | 96 | |
| 90 | 97 | //act |
| ... | ... | @@ -97,7 +104,9 @@ describe('Controladores abm vehículo', function() { |
| 97 | 104 | it('$scope.editar lleva a la ruta correcta', function() { |
| 98 | 105 | inject(function($location) { |
| 99 | 106 | //arrange |
| 100 | - var scope = {}; | |
| 107 | + var scope = { | |
| 108 | + $watch: function() {} | |
| 109 | + }; | |
| 101 | 110 | var controller = $controller('focaAbmVehiculosController', { |
| 102 | 111 | $scope: scope, |
| 103 | 112 | focaAbmVehiculoService: { |
| ... | ... | @@ -114,7 +123,8 @@ describe('Controladores abm vehículo', function() { |
| 114 | 123 | showGuardar: function() { return; }, |
| 115 | 124 | addCustomButton: function() { return; } |
| 116 | 125 | }, |
| 117 | - $timeout: {} | |
| 126 | + $timeout: {}, | |
| 127 | + $localStorage: {} | |
| 118 | 128 | }); |
| 119 | 129 | |
| 120 | 130 | //act |
| ... | ... | @@ -128,7 +138,9 @@ describe('Controladores abm vehículo', function() { |
| 128 | 138 | |
| 129 | 139 | it('Solicita confirmacion', function() { |
| 130 | 140 | //arrange |
| 131 | - var scope = {}; | |
| 141 | + var scope = { | |
| 142 | + $watch: function() {} | |
| 143 | + }; | |
| 132 | 144 | var focaModalService = { |
| 133 | 145 | confirm: function() {} |
| 134 | 146 | }; |
| ... | ... | @@ -148,7 +160,8 @@ describe('Controladores abm vehículo', function() { |
| 148 | 160 | showGuardar: function() { return; }, |
| 149 | 161 | addCustomButton: function() { return; } |
| 150 | 162 | }, |
| 151 | - $timeout: {} | |
| 163 | + $timeout: {}, | |
| 164 | + $localStorage: {} | |
| 152 | 165 | }); |
| 153 | 166 | |
| 154 | 167 | //act |
| ... | ... | @@ -186,7 +199,8 @@ describe('Controladores abm vehículo', function() { |
| 186 | 199 | showGuardar: function() { return; }, |
| 187 | 200 | addCustomButton: function() { return; } |
| 188 | 201 | }, |
| 189 | - $timeout: {} | |
| 202 | + $timeout: {}, | |
| 203 | + $localStorage: {} | |
| 190 | 204 | }); |
| 191 | 205 | var promesa = Promise.resolve(true); |
| 192 | 206 | |
| ... | ... | @@ -206,7 +220,9 @@ describe('Controladores abm vehículo', function() { |
| 206 | 220 | |
| 207 | 221 | it('Se selecciona transportista', function() { |
| 208 | 222 | //arrange |
| 209 | - var scope = {}; | |
| 223 | + var scope = { | |
| 224 | + $watch: function() {} | |
| 225 | + }; | |
| 210 | 226 | var focaModalService = { |
| 211 | 227 | modal: function() {} |
| 212 | 228 | }; |
| ... | ... | @@ -226,7 +242,8 @@ describe('Controladores abm vehículo', function() { |
| 226 | 242 | showGuardar: function() { return; }, |
| 227 | 243 | addCustomButton: function() { return; } |
| 228 | 244 | }, |
| 229 | - $timeout: {} | |
| 245 | + $timeout: {}, | |
| 246 | + $localStorage: {} | |
| 230 | 247 | }); |
| 231 | 248 | |
| 232 | 249 | //act |
| ... | ... | @@ -241,7 +258,9 @@ describe('Controladores abm vehículo', function() { |
| 241 | 258 | inject(function($timeout) { |
| 242 | 259 | |
| 243 | 260 | //arrange |
| 244 | - var scope = {}; | |
| 261 | + var scope = { | |
| 262 | + $watch: function() {} | |
| 263 | + }; | |
| 245 | 264 | var focaModalService = { |
| 246 | 265 | modal: function() { return; } |
| 247 | 266 | }; |
| ... | ... | @@ -268,6 +287,7 @@ describe('Controladores abm vehículo', function() { |
| 268 | 287 | showGuardar: function() { return; }, |
| 269 | 288 | addCustomButton: function() { return; } |
| 270 | 289 | }, |
| 290 | + $localStorage: {}, | |
| 271 | 291 | $timeout: $timeout |
| 272 | 292 | }); |
| 273 | 293 | var promesa = Promise.resolve({COD: '', NOM: ''}); |
| ... | ... | @@ -301,7 +321,9 @@ describe('Controladores abm vehículo', function() { |
| 301 | 321 | |
| 302 | 322 | //arrange |
| 303 | 323 | var controller = $controller('focaAbmVehiculoController', { |
| 304 | - $scope: {}, | |
| 324 | + $scope: { | |
| 325 | + $watch: function() {} | |
| 326 | + }, | |
| 305 | 327 | focaAbmVehiculoService: { |
| 306 | 328 | getVehiculo: function() { |
| 307 | 329 | return { |
| ... | ... | @@ -321,6 +343,7 @@ describe('Controladores abm vehículo', function() { |
| 321 | 343 | showGuardar: function() { return; }, |
| 322 | 344 | addCustomButton: function() { return; } |
| 323 | 345 | }, |
| 346 | + $localStorage: {}, | |
| 324 | 347 | $window: {} |
| 325 | 348 | }); |
| 326 | 349 | |
| ... | ... | @@ -332,7 +355,9 @@ describe('Controladores abm vehículo', function() { |
| 332 | 355 | it('Se busca el transportista cuando es nuevo', function() { |
| 333 | 356 | |
| 334 | 357 | //arrange |
| 335 | - var scope = {}; | |
| 358 | + var scope = { | |
| 359 | + $watch: function() {} | |
| 360 | + }; | |
| 336 | 361 | var focaAbmVehiculoService = { |
| 337 | 362 | getVehiculo: function() { |
| 338 | 363 | return { |
| ... | ... | @@ -363,6 +388,7 @@ describe('Controladores abm vehículo', function() { |
| 363 | 388 | showGuardar: function() { return; }, |
| 364 | 389 | addCustomButton: function() { return; } |
| 365 | 390 | }, |
| 391 | + $localStorage: {}, | |
| 366 | 392 | $window: {} |
| 367 | 393 | }); |
| 368 | 394 | |
| ... | ... | @@ -373,7 +399,9 @@ describe('Controladores abm vehículo', function() { |
| 373 | 399 | it('No se busca el transportista cuando es nuevo', function() { |
| 374 | 400 | |
| 375 | 401 | //arrange |
| 376 | - var scope = {}; | |
| 402 | + var scope = { | |
| 403 | + $watch: function() {} | |
| 404 | + }; | |
| 377 | 405 | var focaAbmVehiculoService = { |
| 378 | 406 | getVehiculo: function() { |
| 379 | 407 | return { |
| ... | ... | @@ -402,6 +430,7 @@ describe('Controladores abm vehículo', function() { |
| 402 | 430 | showGuardar: function() { return; }, |
| 403 | 431 | addCustomButton: function() { return; } |
| 404 | 432 | }, |
| 433 | + $localStorage: {}, | |
| 405 | 434 | $window: {} |
| 406 | 435 | }); |
| 407 | 436 | |
| ... | ... | @@ -413,7 +442,13 @@ describe('Controladores abm vehículo', function() { |
| 413 | 442 | |
| 414 | 443 | inject(function($location) { |
| 415 | 444 | //arrange |
| 416 | - var scope = {}; | |
| 445 | + var scope = { | |
| 446 | + $watch: function() {}, | |
| 447 | + cancelar: function() {}, | |
| 448 | + formVehiculo: { | |
| 449 | + $pristine: true | |
| 450 | + } | |
| 451 | + }; | |
| 417 | 452 | var controller = $controller('focaAbmVehiculoController', { |
| 418 | 453 | $scope: scope, |
| 419 | 454 | focaAbmVehiculoService: { |
| ... | ... | @@ -435,11 +470,13 @@ describe('Controladores abm vehículo', function() { |
| 435 | 470 | showGuardar: function() { return; }, |
| 436 | 471 | addCustomButton: function() { return; } |
| 437 | 472 | }, |
| 438 | - $window: {} | |
| 473 | + $localStorage: {}, | |
| 474 | + $window: {}, | |
| 475 | + | |
| 439 | 476 | }); |
| 440 | 477 | |
| 441 | 478 | //act |
| 442 | - scope.cancelar(); | |
| 479 | + scope.salir(); | |
| 443 | 480 | |
| 444 | 481 | //assert |
| 445 | 482 | expect($location.url()).toEqual('/vehiculo'); |
| ... | ... | @@ -450,7 +487,9 @@ describe('Controladores abm vehículo', function() { |
| 450 | 487 | |
| 451 | 488 | inject(function($location) { |
| 452 | 489 | //arrange |
| 453 | - var scope = {}; | |
| 490 | + var scope = { | |
| 491 | + $watch: function() {} | |
| 492 | + }; | |
| 454 | 493 | var controller = $controller('focaAbmVehiculoController', { |
| 455 | 494 | $scope: scope, |
| 456 | 495 | focaAbmVehiculoService: { |
| ... | ... | @@ -474,6 +513,7 @@ describe('Controladores abm vehículo', function() { |
| 474 | 513 | showGuardar: function() { return; }, |
| 475 | 514 | addCustomButton: function() { return; } |
| 476 | 515 | }, |
| 516 | + $localStorage: {}, | |
| 477 | 517 | $window: {} |
| 478 | 518 | }); |
| 479 | 519 | |
| ... | ... | @@ -490,7 +530,9 @@ describe('Controladores abm vehículo', function() { |
| 490 | 530 | |
| 491 | 531 | inject(function($location) { |
| 492 | 532 | //arrange |
| 493 | - var scope = {}; | |
| 533 | + var scope = { | |
| 534 | + $watch: function() {} | |
| 535 | + }; | |
| 494 | 536 | var controller = $controller('focaAbmVehiculoController', { |
| 495 | 537 | $scope: scope, |
| 496 | 538 | focaAbmVehiculoService: { |
| ... | ... | @@ -514,6 +556,7 @@ describe('Controladores abm vehículo', function() { |
| 514 | 556 | showGuardar: function() { return; }, |
| 515 | 557 | addCustomButton: function() { return; } |
| 516 | 558 | }, |
| 559 | + $localStorage: {}, | |
| 517 | 560 | $window: {} |
| 518 | 561 | }); |
| 519 | 562 | |
| ... | ... | @@ -532,7 +575,9 @@ describe('Controladores abm vehículo', function() { |
| 532 | 575 | var focaModalService = { |
| 533 | 576 | confirm: function() {} |
| 534 | 577 | }; |
| 535 | - var scope = {}; | |
| 578 | + var scope = { | |
| 579 | + $watch: function() {} | |
| 580 | + }; | |
| 536 | 581 | var controller = $controller('focaAbmVehiculoController', { |
| 537 | 582 | $scope: scope, |
| 538 | 583 | focaAbmVehiculoService: { |
| ... | ... | @@ -556,6 +601,7 @@ describe('Controladores abm vehículo', function() { |
| 556 | 601 | showGuardar: function() { return; }, |
| 557 | 602 | addCustomButton: function() { return; } |
| 558 | 603 | }, |
| 604 | + $localStorage: {}, | |
| 559 | 605 | $window: {} |
| 560 | 606 | }); |
| 561 | 607 | |
| ... | ... | @@ -570,7 +616,9 @@ describe('Controladores abm vehículo', function() { |
| 570 | 616 | it('Elimina y obtiene cisternas al dar confirmar', function(done) { |
| 571 | 617 | |
| 572 | 618 | //arrange |
| 573 | - var scope = {}; | |
| 619 | + var scope = { | |
| 620 | + $watch: function() {} | |
| 621 | + }; | |
| 574 | 622 | var focaModalService = { |
| 575 | 623 | confirm: function() {} |
| 576 | 624 | }; |
| ... | ... | @@ -598,6 +646,7 @@ describe('Controladores abm vehículo', function() { |
| 598 | 646 | showGuardar: function() { return; }, |
| 599 | 647 | addCustomButton: function() { return; } |
| 600 | 648 | }, |
| 649 | + $localStorage: {}, | |
| 601 | 650 | $window: {} |
| 602 | 651 | }); |
| 603 | 652 | var promesa = Promise.resolve(true); |
src/js/controller.js
| 1 | 1 | angular.module('focaAbmVehiculo') |
| 2 | 2 | .controller('focaAbmVehiculosController', [ |
| 3 | 3 | '$scope', 'focaAbmVehiculoService', '$location', 'focaModalService', |
| 4 | - '$uibModal', 'focaBotoneraLateralService', '$timeout', | |
| 4 | + '$uibModal', 'focaBotoneraLateralService', '$timeout', '$localStorage', | |
| 5 | 5 | function($scope, focaAbmVehiculoService, $location, focaModalService, |
| 6 | - $uibModal, focaBotoneraLateralService, $timeout) { | |
| 6 | + $uibModal, focaBotoneraLateralService, $timeout, $localStorage) { | |
| 7 | 7 | |
| 8 | 8 | $scope.now = new Date(); |
| 9 | 9 | $scope.botonera = [{ |
| ... | ... | @@ -20,7 +20,7 @@ angular.module('focaAbmVehiculo') |
| 20 | 20 | focaBotoneraLateralService.showGuardar(false); |
| 21 | 21 | focaBotoneraLateralService.addCustomButton('Salir', salir); |
| 22 | 22 | |
| 23 | - if(focaAbmVehiculoService.transportistaSeleccionado.COD) { | |
| 23 | + if (focaAbmVehiculoService.transportistaSeleccionado.COD) { | |
| 24 | 24 | elegirTransportista(focaAbmVehiculoService.transportistaSeleccionado); |
| 25 | 25 | } |
| 26 | 26 | $scope.editar = function(id) { |
| ... | ... | @@ -28,9 +28,9 @@ angular.module('focaAbmVehiculo') |
| 28 | 28 | }; |
| 29 | 29 | $scope.solicitarConfirmacion = function(vehiculo) { |
| 30 | 30 | focaModalService.confirm('¿Está seguro que desea borrar el vehiculo ' + |
| 31 | - vehiculo.id + ' ' + vehiculo.tractor + ' ?').then( | |
| 31 | + vehiculo.id + ' ' + vehiculo.tractor + ' ?').then( | |
| 32 | 32 | function(data) { |
| 33 | - if(data) { | |
| 33 | + if (data) { | |
| 34 | 34 | focaAbmVehiculoService.deleteVehiculo(vehiculo.id); |
| 35 | 35 | $scope.vehiculos.splice($scope.vehiculos.indexOf(vehiculo), 1); |
| 36 | 36 | } |
| ... | ... | @@ -77,7 +77,7 @@ angular.module('focaAbmVehiculo') |
| 77 | 77 | }); |
| 78 | 78 | buscar(transportista.COD); |
| 79 | 79 | } |
| 80 | - | |
| 80 | + | |
| 81 | 81 | function buscar(idTransportista) { |
| 82 | 82 | focaAbmVehiculoService |
| 83 | 83 | .getVehiculosPorTransportista(idTransportista) |
| ... | ... | @@ -93,9 +93,9 @@ angular.module('focaAbmVehiculo') |
| 93 | 93 | ]) |
| 94 | 94 | .controller('focaAbmVehiculoController', [ |
| 95 | 95 | '$scope', 'focaAbmVehiculoService', '$routeParams', '$location', '$uibModal', |
| 96 | - 'focaModalService', '$timeout', 'focaBotoneraLateralService', '$window', | |
| 96 | + 'focaModalService', '$timeout', 'focaBotoneraLateralService', '$localStorage', '$filter', | |
| 97 | 97 | function($scope, focaAbmVehiculoService, $routeParams, $location, $uibModal, |
| 98 | - focaModalService, $timeout, focaBotoneraLateralService, $window) { | |
| 98 | + focaModalService, $timeout, focaBotoneraLateralService, $localStorage, $filter) { | |
| 99 | 99 | $scope.nuevo = $routeParams.idVehiculo === '0' ? true : false; |
| 100 | 100 | $scope.now = new Date(); |
| 101 | 101 | $scope.focused = 1; |
| ... | ... | @@ -104,13 +104,15 @@ angular.module('focaAbmVehiculo') |
| 104 | 104 | |
| 105 | 105 | $timeout(function() { |
| 106 | 106 | focaBotoneraLateralService.showSalir(false); |
| 107 | - focaBotoneraLateralService.showPausar(false); | |
| 107 | + focaBotoneraLateralService.showPausar(true); | |
| 108 | 108 | focaBotoneraLateralService.showCancelar(false); |
| 109 | 109 | focaBotoneraLateralService.showGuardar(true, $scope.guardar); |
| 110 | - focaBotoneraLateralService.addCustomButton('Salir', $scope.cancelar); | |
| 110 | + focaBotoneraLateralService.addCustomButton('Salir', $scope.salir); | |
| 111 | 111 | }); |
| 112 | + | |
| 113 | + $timeout(function() {getLSVehiculo();}); | |
| 112 | 114 | |
| 113 | - if($scope.nuevo) { | |
| 115 | + if ($scope.nuevo) { | |
| 114 | 116 | focaAbmVehiculoService |
| 115 | 117 | .getTransportistaPorId($routeParams.idTransportista) |
| 116 | 118 | .then(function(res) { |
| ... | ... | @@ -125,7 +127,7 @@ angular.module('focaAbmVehiculo') |
| 125 | 127 | } |
| 126 | 128 | $scope.vehiculo = {}; |
| 127 | 129 | focaAbmVehiculoService.getVehiculo($routeParams.idVehiculo).then(function(res) { |
| 128 | - if(res.data) { | |
| 130 | + if (res.data) { | |
| 129 | 131 | $scope.transportistaStamp = ('00000' + res.data.transportista.COD).slice(-5); |
| 130 | 132 | $scope.transportistaStamp += ' - ' + res.data.transportista.NOM; |
| 131 | 133 | |
| ... | ... | @@ -150,9 +152,21 @@ angular.module('focaAbmVehiculo') |
| 150 | 152 | $scope.next = function(key) { |
| 151 | 153 | if (key === 13) $scope.focused++; |
| 152 | 154 | }; |
| 153 | - $scope.cancelar = function() { | |
| 154 | - $location.path('/vehiculo'); | |
| 155 | - }; | |
| 155 | + | |
| 156 | + $scope.salir = function() { | |
| 157 | + if (!$scope.formVehiculo.$pristine && focaAbmVehiculoService.cisternasPristine) { | |
| 158 | + focaModalService.confirm( | |
| 159 | + '¿Está seguro de que desea salir? Se perderán todos los datos cargados.' | |
| 160 | + ).then(function(data) { | |
| 161 | + if (data) { | |
| 162 | + $location.path('/vehiculo'); | |
| 163 | + } | |
| 164 | + }); | |
| 165 | + } else { | |
| 166 | + $location.path('/vehiculo'); | |
| 167 | + } | |
| 168 | + } | |
| 169 | + | |
| 156 | 170 | $scope.editar = function(key) { |
| 157 | 171 | if (key) { |
| 158 | 172 | $location.path('/vehiculo/' + $routeParams.idVehiculo + |
| ... | ... | @@ -163,25 +177,30 @@ angular.module('focaAbmVehiculo') |
| 163 | 177 | }; |
| 164 | 178 | $scope.guardar = function(key) { |
| 165 | 179 | |
| 166 | - if (!$scope.vehiculo.codigo) { | |
| 167 | - focaModalService.alert('Ingrese unidad'); | |
| 168 | - return; | |
| 169 | - } else if (!$scope.vehiculo.tractor) { | |
| 170 | - focaModalService.alert('Ingrese dominio tractor'); | |
| 171 | - return; | |
| 172 | - } else if (!$scope.vehiculo.semi) { | |
| 173 | - focaModalService.alert('Ingrese dominio semi'); | |
| 174 | - return; | |
| 175 | - } else if (!$scope.vehiculo.capacidad) { | |
| 176 | - focaModalService.alert('Ingrse capacidad total'); | |
| 177 | - return; | |
| 178 | - } | |
| 179 | - | |
| 180 | - | |
| 181 | 180 | key = (typeof key === 'undefined') ? 13 : key; |
| 181 | + | |
| 182 | 182 | if (key === 13) { |
| 183 | + | |
| 184 | + if ($scope.formVehiculo.$pristine && focaAbmVehiculoService.cisternasPristine) { | |
| 185 | + $scope.salir(); | |
| 186 | + return; | |
| 187 | + } | |
| 188 | + | |
| 189 | + if (!$scope.vehiculo.codigo) { | |
| 190 | + focaModalService.alert('Ingrese unidad'); | |
| 191 | + return; | |
| 192 | + } else if (!$scope.vehiculo.tractor) { | |
| 193 | + focaModalService.alert('Ingrese dominio tractor'); | |
| 194 | + return; | |
| 195 | + } else if (!$scope.vehiculo.semi) { | |
| 196 | + focaModalService.alert('Ingrese dominio semi'); | |
| 197 | + return; | |
| 198 | + } else if (!$scope.vehiculo.capacidad) { | |
| 199 | + focaModalService.alert('Ingrese capacidad total'); | |
| 200 | + return; | |
| 201 | + } | |
| 183 | 202 | //Valida si existe numero de unidad |
| 184 | - if(!validaTotalCargas() && !$scope.nuevo) { | |
| 203 | + if (!validaTotalCargas() && !$scope.nuevo) { | |
| 185 | 204 | focaModalService.alert('La suma de las capacidades de las cisternas' + |
| 186 | 205 | ' debe ser igual a la capacidad total del vehículo'); |
| 187 | 206 | return; |
| ... | ... | @@ -206,11 +225,42 @@ angular.module('focaAbmVehiculo') |
| 206 | 225 | } |
| 207 | 226 | |
| 208 | 227 | }; |
| 228 | + | |
| 229 | + $scope.$watch('vehiculo', function(newValue) { | |
| 230 | + focaBotoneraLateralService.setPausarData({ | |
| 231 | + label:'vehiculo', | |
| 232 | + val: { | |
| 233 | + codigo: newValue.codigo, | |
| 234 | + tractor: newValue.tractor, | |
| 235 | + semi: newValue.semi, | |
| 236 | + capacidad: newValue.capacidad, | |
| 237 | + idVehiculo: newValue.idVehiculo, | |
| 238 | + idTransportista: newValue.idTransportista | |
| 239 | + } | |
| 240 | + }); | |
| 241 | + }, true); | |
| 242 | + | |
| 243 | + function getLSVehiculo() { | |
| 244 | + var vehiculo = JSON.parse($localStorage.vehiculo|| null); | |
| 245 | + if (vehiculo) { | |
| 246 | + setearVehiculo(vehiculo); | |
| 247 | + delete $localStorage.vehiculo; | |
| 248 | + } | |
| 249 | + } | |
| 250 | + | |
| 251 | + function setearVehiculo(vehiculo) { | |
| 252 | + $scope.vehiculo = vehiculo; | |
| 253 | + $scope.$broadcast('addCabecera', { | |
| 254 | + label: 'Vehiculo:', | |
| 255 | + valor: $filter('rellenarDigitos')(vehiculo.codigo) + ' - ' | |
| 256 | + }); | |
| 257 | + } | |
| 258 | + | |
| 209 | 259 | $scope.solicitarConfirmacionCisterna = function(cisterna, idx) { |
| 210 | 260 | focaModalService.confirm('¿Está seguro que desea borrar la cisterna ' + |
| 211 | - cisterna.id + ' ' + cisterna.codigo + ' ?').then( | |
| 261 | + cisterna.id + ' ' + cisterna.codigo + ' ?').then( | |
| 212 | 262 | function(data) { |
| 213 | - if(data) { | |
| 263 | + if (data) { | |
| 214 | 264 | focaAbmVehiculoService.deleteCisterna(idx); |
| 215 | 265 | focaAbmVehiculoService |
| 216 | 266 | .getCisternas($routeParams.idVehiculo) |
| ... | ... | @@ -233,9 +283,9 @@ angular.module('focaAbmVehiculo') |
| 233 | 283 | vehiculo.id !== $scope.vehiculo.id; |
| 234 | 284 | }); |
| 235 | 285 | |
| 236 | - if(existe.length) { | |
| 286 | + if (existe.length) { | |
| 237 | 287 | reject(existe); |
| 238 | - }else { | |
| 288 | + } else { | |
| 239 | 289 | resolve(); |
| 240 | 290 | } |
| 241 | 291 | }); |
| ... | ... | @@ -245,7 +295,7 @@ angular.module('focaAbmVehiculo') |
| 245 | 295 | function validaTotalCargas() { |
| 246 | 296 | var total = 0; |
| 247 | 297 | $scope.cisternas.forEach(function(cisterna) { |
| 248 | - if(!cisterna.desactivado) { | |
| 298 | + if (!cisterna.desactivado) { | |
| 249 | 299 | total += parseInt(cisterna.capacidad); |
| 250 | 300 | } |
| 251 | 301 | }); |
| ... | ... | @@ -266,5 +316,6 @@ angular.module('focaAbmVehiculo') |
| 266 | 316 | |
| 267 | 317 | return focaAbmVehiculoService.guardarCisternas(cisternas); |
| 268 | 318 | } |
| 319 | + | |
| 269 | 320 | } |
| 270 | 321 | ]); |
src/js/controllerCisterna.js
| ... | ... | @@ -23,13 +23,13 @@ angular.module('focaAbmVehiculo') |
| 23 | 23 | //SETEO BOTONERA LATERAL |
| 24 | 24 | $timeout(function() { |
| 25 | 25 | focaBotoneraLateralService.showSalir(false); |
| 26 | - focaBotoneraLateralService.showPausar(false); | |
| 27 | - focaBotoneraLateralService.showCancelar(true); | |
| 26 | + focaBotoneraLateralService.showPausar(true); | |
| 27 | + focaBotoneraLateralService.showCancelar(false); | |
| 28 | 28 | focaBotoneraLateralService.showGuardar(true, $scope.guardar); |
| 29 | + focaBotoneraLateralService.addCustomButton('Salir', $scope.salir); | |
| 29 | 30 | }); |
| 30 | 31 | |
| 31 | - if ($routeParams.idx != -1) { | |
| 32 | - | |
| 32 | + if ($routeParams.idx !== -1) { | |
| 33 | 33 | $scope.cisterna = [$routeParams.idx]; |
| 34 | 34 | focaAbmVehiculoService |
| 35 | 35 | .getCisternas($routeParams.idVehiculo) |
| ... | ... | @@ -55,12 +55,30 @@ angular.module('focaAbmVehiculo') |
| 55 | 55 | valor: res.data.capacidad |
| 56 | 56 | }); |
| 57 | 57 | }); |
| 58 | - $scope.cancelar = function() { | |
| 59 | - $location.path('/vehiculo/' + $routeParams.idVehiculo); | |
| 58 | + | |
| 59 | + $scope.salir = function() { | |
| 60 | + | |
| 61 | + if (!$scope.formCisterna.$pristine) { | |
| 62 | + focaModalService.confirm( | |
| 63 | + '¿Está seguro de que desea salir? Se perderán todos los datos cargados.' | |
| 64 | + ).then(function(data) { | |
| 65 | + if (data) { | |
| 66 | + $location.path('/vehiculo/' + $routeParams.idVehiculo + '/' + | |
| 67 | + $scope.transportista); | |
| 68 | + } | |
| 69 | + }); | |
| 70 | + } else { | |
| 71 | + $location.path('/vehiculo/' + $routeParams.idVehiculo + '/' + | |
| 72 | + $scope.transportista); | |
| 73 | + } | |
| 60 | 74 | }; |
| 61 | - $scope.guardar = function() { | |
| 62 | 75 | |
| 63 | - if (!$scope.cisterna.codigo) { | |
| 76 | + $scope.guardar = function() { | |
| 77 | + | |
| 78 | + if ($scope.formCisterna.$pristine) { | |
| 79 | + $scope.salir(); | |
| 80 | + return; | |
| 81 | + } else if (!$scope.cisterna.codigo) { | |
| 64 | 82 | focaModalService.alert('Ingrese codigo de cisterna'); |
| 65 | 83 | return; |
| 66 | 84 | } else if (!$scope.cisterna.capacidad) { |
| ... | ... | @@ -78,7 +96,7 @@ angular.module('focaAbmVehiculo') |
| 78 | 96 | |
| 79 | 97 | focaAbmVehiculoService |
| 80 | 98 | .guardarCisterna($scope.cisterna, $routeParams.idx); |
| 81 | - | |
| 99 | + | |
| 82 | 100 | $timeout(function() { |
| 83 | 101 | $location.path('/vehiculo/' + $routeParams.idVehiculo + |
| 84 | 102 | '/' + $scope.transportista); |
| ... | ... | @@ -113,12 +131,12 @@ angular.module('focaAbmVehiculo') |
| 113 | 131 | var totalCargado = 0; |
| 114 | 132 | cisternas.forEach(function(cisterna, idx) { |
| 115 | 133 | //SI EL CODIGO YA EXISTE |
| 116 | - if(cisterna.codigo === $scope.cisterna.codigo && | |
| 134 | + if (cisterna.codigo === $scope.cisterna.codigo && | |
| 117 | 135 | idx != $routeParams.idx && |
| 118 | 136 | !cisterna.desactivado) { |
| 119 | 137 | reject('Código de cisterna existente'); |
| 120 | 138 | } |
| 121 | - if(idx != $routeParams.idx && | |
| 139 | + if (idx !== $routeParams.idx && | |
| 122 | 140 | !cisterna.desactivado) { |
| 123 | 141 | totalCargado += cisterna.capacidad; |
| 124 | 142 | } |
src/js/service.js
| 1 | 1 | angular.module('focaAbmVehiculo') |
| 2 | 2 | .factory('focaAbmVehiculoService', ['$http', 'API_ENDPOINT', function($http, API_ENDPOINT) { |
| 3 | 3 | var cisternas = []; |
| 4 | + var cisternasPristine = true; | |
| 4 | 5 | return { |
| 5 | 6 | getVehiculos: function() { |
| 6 | 7 | return $http.get(API_ENDPOINT.URL + '/vehiculo'); |
| ... | ... | @@ -18,9 +19,11 @@ angular.module('focaAbmVehiculo') |
| 18 | 19 | return $http.delete(API_ENDPOINT.URL + '/vehiculo/' + id); |
| 19 | 20 | }, |
| 20 | 21 | getCisternas: function(idVehiculo) { |
| 21 | - if(cisternas.length) { | |
| 22 | + if (cisternas.length) { | |
| 23 | + cisternasPristine = true; | |
| 22 | 24 | return Promise.resolve(angular.copy(cisternas)); |
| 23 | - }else { | |
| 25 | + } else { | |
| 26 | + cisternasPristine = true; | |
| 24 | 27 | return new Promise(function(resolve) { |
| 25 | 28 | $http.get(API_ENDPOINT.URL + '/cisterna/listar/' + idVehiculo) |
| 26 | 29 | .then(function(res) { |
| ... | ... | @@ -31,12 +34,14 @@ angular.module('focaAbmVehiculo') |
| 31 | 34 | } |
| 32 | 35 | }, |
| 33 | 36 | guardarCisterna: function(cisterna, idx) { |
| 34 | - if(idx !== '-1') { | |
| 37 | + if (idx !== '-1') { | |
| 35 | 38 | //update |
| 36 | 39 | cisternas[idx] = cisterna; |
| 37 | - }else { | |
| 40 | + cisternasPristine = false; | |
| 41 | + } else { | |
| 38 | 42 | //insert |
| 39 | 43 | cisternas.push(cisterna); |
| 44 | + cisternasPristine = false; | |
| 40 | 45 | } |
| 41 | 46 | }, |
| 42 | 47 | guardarCisternas: function(cisternas) { |
| ... | ... | @@ -44,6 +49,7 @@ angular.module('focaAbmVehiculo') |
| 44 | 49 | }, |
| 45 | 50 | deleteCisterna: function(idx) { |
| 46 | 51 | cisternas[idx].desactivado = true; |
| 52 | + cisternasPristine = false; | |
| 47 | 53 | }, |
| 48 | 54 | cleanCisternas: function() { |
| 49 | 55 | cisternas = []; |