controllerCisterna.js
5.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
angular.module('focaAbmVehiculo')
.controller('focaAbmVehiculoCisternaController', [
'$scope', 'focaAbmVehiculoService', '$routeParams', '$location', '$uibModal',
'focaModalService', 'focaBotoneraLateralService', '$timeout', '$window',
function($scope, focaAbmVehiculoService, $routeParams, $location, $uibModal,
focaModalService, focaBotoneraLateralService, $timeout, $window) {
$scope.nuevo = ($routeParams.id > 0) ? false : true;
$scope.editar = false;
$scope.now = new Date();
$scope.cisterna = {};
$scope.focused = $scope.nuevo ? 1 : 2;
$scope.next = function(key) {
if (key === 13) $scope.focused++;
};
$scope.capacidadVechiulo = 0;
$scope.transportista = '';
//SETEO BOTONERA LATERAL
$timeout(function() {
focaBotoneraLateralService.showSalir(false);
focaBotoneraLateralService.showPausar(false);
focaBotoneraLateralService.showCancelar(true);
focaBotoneraLateralService.showGuardar(true, $scope.guardar);
});
if($routeParams.idx !== -1) {
$scope.cisterna = [$routeParams.idx];
focaAbmVehiculoService
.getCisternas($routeParams.idVehiculo)
.then(function(res) {
$scope.cisterna = res[$routeParams.idx];
});
}
focaAbmVehiculoService.getVehiculo($routeParams.idVehiculo).then(function(res) {
var codigo = ('00000' + res.data.transportista.COD).slice(-5);
$scope.transportista = res.data.transportista.COD;
$scope.capacidadVechiulo = res.data.capacidad;
$scope.$broadcast('addCabecera', {
label: 'Transportista:',
valor: codigo + ' - ' + res.data.transportista.NOM
});
$scope.$broadcast('addCabecera', {
label: 'Unidad:',
valor: res.data.codigo
});
$scope.$broadcast('addCabecera', {
label: 'Capacidad total vehículo:',
valor: res.data.capacidad
});
});
$scope.cancelar = function() {
$location.path('/vehiculo/' + $routeParams.idVehiculo);
};
$scope.guardar = function() {
if(!$scope.cisterna.unidadMedida) {
focaModalService.alert('Ingrese unidad de medida');
return;
}
validaCodigo()
.then(function() {
$scope.cisterna.idVehiculo = parseInt($routeParams.idVehiculo);
delete $scope.cisterna.vehiculo;
focaAbmVehiculoService
.guardarCisterna($scope.cisterna, $routeParams.idx);
$window.location.assign('/#!/vehiculo/' + $routeParams.idVehiculo +
'/' + $scope.transportista);
}, function(err) {
focaModalService.alert(err);
});
};
$scope.seleccionarUnidadMedida = function() {
var modalInstance = $uibModal.open(
{
ariaLabelledBy: 'Busqueda de Unidades de medida',
templateUrl: 'modal-unidad-medida.html',
controller: 'focaModalUnidadMedidaCtrl',
size: 'lg'
}
);
modalInstance.result.then(function(unidaMedida) {
$scope.cisterna.idUnidadMedida = unidaMedida.ID;
$scope.cisterna.unidadMedida = unidaMedida;
});
};
function validaCodigo() {
return new Promise(function(resolve, reject) {
focaAbmVehiculoService
.getCisternas($routeParams.idVehiculo)
.then(function(res) {
var cisternas = res;
var totalCargado = 0;
cisternas.forEach(function(cisterna, idx) {
//SI EL CODIGO YA EXISTE
if(cisterna.codigo === $scope.cisterna.codigo &&
idx !== $routeParams.idx &&
!cisterna.desactivado) {
reject('Código de cisterna existente');
}
if(idx !== $routeParams.idx &&
!cisterna.desactivado) {
totalCargado += cisterna.capacidad;
}
});
resolve();
});
});
}
}
]);