Commit 7aa10285419a727a58ce3b9f61c508ea0733d0a8

Authored by Eric Fernandez
Exists in master and in 2 other branches develop, lab

Merge branch 'master' into 'develop'

Master(mpuebla)

See merge request !25
src/js/controller.js
1 angular.module('focaHojaRuta') 1 angular.module('focaHojaRuta')
2 .controller('listaHojaRutaCtrl', 2 .controller('listaHojaRutaCtrl',
3 [ 3 [
4 '$scope', '$location', '$filter', '$uibModal', 'hojaRutaService', 4 '$scope', '$location', '$filter', '$uibModal', 'hojaRutaService',
5 'focaLoginService', 'focaModalService', '$rootScope', '$localStorage', 5 'focaLoginService', 'focaModalService', '$rootScope', '$localStorage',
6 function ($scope, $location, $filter, $uibModal, hojaRutaService, 6 function ($scope, $location, $filter, $uibModal, hojaRutaService,
7 focaLoginService, focaModalService, $rootScope, $localStorage) { 7 focaLoginService, focaModalService, $rootScope, $localStorage) {
8 8
9 var loginData = focaLoginService.getLoginData(); 9 var loginData = focaLoginService.getLoginData();
10 config(); 10 config();
11 init(); 11 init();
12 function config() { 12 function config() {
13 $scope.cabecera = []; 13 $scope.cabecera = [];
14 $scope.showCabecera = true; 14 $scope.showCabecera = true;
15 $scope.now = new Date(); 15 $scope.now = new Date();
16 $scope.puntoVenta = '0000'; 16 $scope.puntoVenta = '0000';
17 $scope.comprobante = '00000000'; 17 $scope.comprobante = '00000000';
18 } 18 }
19 function init() { 19 function init() {
20 hojaRutaService.getHojaRuta(loginData.chofer) 20 hojaRutaService.getHojaRuta(loginData.chofer)
21 .then(function (res) { 21 .then(function (res) {
22 console.log(res.data);
23 abrilModalHojasDeRuta(res.data); 22 abrilModalHojasDeRuta(res.data);
24 }); 23 });
25 } 24 }
26 function abrilModalHojasDeRuta(hojasDeRuta) { 25 function abrilModalHojasDeRuta(hojasDeRuta) {
27 hojasDeRuta.forEach(function (hojaRuta) { 26 hojasDeRuta.forEach(function (hojaRuta) {
28 hojaRuta.comprobante = (hojaRuta.abierta ? 'RA ' : '') + 27 hojaRuta.comprobante = (hojaRuta.abierta ? 'RA ' : '') +
29 $filter('comprobante') 28 $filter('comprobante')
30 ([hojaRuta.sucursal, hojaRuta.numeroHojaRuta]); 29 ([hojaRuta.sucursal, hojaRuta.numeroHojaRuta]);
31 }); 30 });
32 focaModalService.modal(parametrosModalHojasDeRuta(hojasDeRuta)) 31 focaModalService.modal(parametrosModalHojasDeRuta(hojasDeRuta))
33 .then(function (hojaRuta) { 32 .then(function (hojaRuta) {
34 if (hojaRuta) { 33 if (hojaRuta) {
35 $scope.hojaRuta = hojaRuta; 34 $scope.hojaRuta = hojaRuta;
36 $scope.puntoVenta = hojaRuta.sucursal; 35 $scope.puntoVenta = hojaRuta.sucursal;
37 $scope.comprobante = hojaRuta.numeroHojaRuta; 36 $scope.comprobante = hojaRuta.numeroHojaRuta;
38 addCabecera('Transportista:', hojaRuta.transportista.NOM); 37 addCabecera('Transportista:', hojaRuta.transportista.NOM);
39 addCabecera('Chofer:', hojaRuta.chofer.nombre); 38 addCabecera('Chofer:', hojaRuta.chofer.nombre);
40 addCabecera('Vehículo:', hojaRuta.vehiculo.tractor); 39 addCabecera('Vehículo:', hojaRuta.vehiculo.tractor);
41 $localStorage.hojaRuta = JSON.stringify($scope.hojaRuta); 40 $localStorage.hojaRuta = JSON.stringify($scope.hojaRuta);
42 } else { 41 } else {
43 focaModalService.alert('Sin hoja de ruta asignada'); 42 focaModalService.alert('Sin hoja de ruta asignada');
44 $location.path('/'); 43 $location.path('/');
45 } 44 }
46 // if (!$scope.estadoRed) { 45 // if (!$scope.estadoRed) {
47 // getLSHojaRuta(); 46 // getLSHojaRuta();
48 // } 47 // }
49 }) 48 })
50 .catch(function (e) { 49 .catch(function (e) {
51 console.info(e); 50 console.info(e);
52 $location.path('/'); 51 $location.path('/');
53 }); 52 });
54 } 53 }
55 $scope.$watch('hojaRuta', function (nuevoValor) { 54 $scope.$watch('hojaRuta', function (nuevoValor) {
56 $localStorage.hojaRuta = JSON.stringify(nuevoValor); 55 $localStorage.hojaRuta = JSON.stringify(nuevoValor);
57 }, true); 56 }, true);
58 $scope.verDetalle = function (remito) { 57 $scope.verDetalle = function (remito) {
59 var modalInstance = $uibModal.open( 58 var modalInstance = $uibModal.open(
60 { 59 {
61 ariaLabelledBy: 'Detalle hoja ruta', 60 ariaLabelledBy: 'Detalle hoja ruta',
62 templateUrl: 'modal-detalle-hoja-ruta.html', 61 templateUrl: 'modal-detalle-hoja-ruta.html',
63 controller: 'focaModalDetalleHojaRutaController', 62 controller: 'focaModalDetalleHojaRutaController',
64 resolve: { 63 resolve: {
65 parametros: { 64 parametros: {
66 remito: remito, 65 remito: remito,
67 } 66 }
68 }, 67 },
69 size: 'lg' 68 size: 'lg'
70 } 69 }
71 ); 70 );
72 modalInstance.result 71 modalInstance.result
73 .then(function (data) { console.log(data); }) 72 .then(function () {
73 // console.log(data);
74 })
74 .catch(function (e) { console.info(e); }); 75 .catch(function (e) { console.info(e); });
75 }; 76 };
76 $scope.salir = function () { 77 $scope.salir = function () {
77 $location.path('/'); 78 $location.path('/');
78 }; 79 };
79 $scope.terminarHojaRuta = function () { 80 $scope.terminarHojaRuta = function () {
80 focaModalService 81 focaModalService
81 .confirm('¿Desea terminar la hoja de ruta? No podra realizar ninguna ' + 82 .confirm('¿Desea terminar la hoja de ruta? No podra realizar ninguna ' +
82 'otra descarga ni modificación') 83 'otra descarga ni modificación')
83 .then(function () { $scope.datosExtraCierre(terminar); }) 84 .then(function () { $scope.datosExtraCierre(terminar); })
84 .catch(function (e) { console.info('Modal ', e); }); 85 .catch(function (e) { console.info('Modal ', e); });
85 function terminar(datosExtraCierre) { 86 function terminar(datosExtraCierre) {
86 $scope.hojaRuta = angular.extend({}, $scope.hojaRuta, datosExtraCierre); 87 $scope.hojaRuta = angular.extend({}, $scope.hojaRuta, datosExtraCierre);
87 //limpio objeto para guardar 88 //limpio objeto para guardar
88 delete $scope.hojaRuta.chofer; 89 delete $scope.hojaRuta.chofer;
89 delete $scope.hojaRuta.remitos; 90 delete $scope.hojaRuta.remitos;
90 delete $scope.hojaRuta.transportista; 91 delete $scope.hojaRuta.transportista;
91 delete $scope.hojaRuta.vehiculo; 92 delete $scope.hojaRuta.vehiculo;
92 93
93 $scope.hojaRuta.fechaCreacion = 94 $scope.hojaRuta.fechaCreacion =
94 $scope.hojaRuta.fechaCreacion.slice(0, 19).replace('T', ' '); 95 $scope.hojaRuta.fechaCreacion.slice(0, 19).replace('T', ' ');
95 $scope.hojaRuta.fechaReparto = 96 $scope.hojaRuta.fechaReparto =
96 $scope.hojaRuta.fechaReparto.slice(0, 19).replace('T', ' '); 97 $scope.hojaRuta.fechaReparto.slice(0, 19).replace('T', ' ');
97 $scope.hojaRuta.estado = 2; 98 $scope.hojaRuta.estado = 2;
98 hojaRutaService.terminarHojaRuta($scope.hojaRuta).then( 99 hojaRutaService.terminarHojaRuta($scope.hojaRuta).then(
99 function () { 100 function () {
100 focaModalService.alert( 101 focaModalService.alert(
101 'Hoja de ruta ' + 102 'Hoja de ruta ' +
102 $filter('comprobante')([$scope.puntoVenta, 103 $filter('comprobante')([$scope.puntoVenta,
103 $scope.comprobante]) + ' cerrada con éxito'); 104 $scope.comprobante]) + ' cerrada con éxito');
104 $location.path('/'); 105 $location.path('/');
105 } 106 }
106 ); 107 );
107 } 108 }
108 }; 109 };
109 $scope.datosExtraCierre = function (terminar) { 110 $scope.datosExtraCierre = function (terminar) {
110 var modalInstance = $uibModal.open( 111 var modalInstance = $uibModal.open(
111 { 112 {
112 templateUrl: 'focaDatosExtra.html', 113 templateUrl: 'focaDatosExtra.html',
113 controller: 'focaModalDatosExtraCierre', 114 controller: 'focaModalDatosExtraCierre',
114 } 115 }
115 ); 116 );
116 modalInstance.result.then(terminar); 117 modalInstance.result.then(terminar);
117 }; 118 };
118 $scope.modalDescargas = function () { 119 $scope.modalDescargas = function () {
119 delete $scope.hojaRuta.remitos[0].cliente; 120 delete $scope.hojaRuta.remitos[0].cliente;
120 var remito = $scope.hojaRuta.remitos[0]; 121 var remito = $scope.hojaRuta.remitos[0];
121 var msg = ''; 122 var msg = '';
122 var mostrarMensaje = true; 123 var mostrarMensaje = true;
123 for (var i = 0; i < remito.cisternas.length; i++) { 124 for (var i = 0; i < remito.cisternas.length; i++) {
124 if (remito.cisternas[i].cisternaCarga.cantidad <= 0) 125 if (remito.cisternas[i].cisternaCarga.cantidad <= 0)
125 msg += 'Cisterna ' + remito.cisternas[i].cisternaCarga.articulo.DetArt + 126 msg += 'Cisterna ' + remito.cisternas[i].cisternaCarga.articulo.DetArt +
126 ' esta vacía.\n'; 127 ' esta vacía.\n';
127 else 128 else
128 mostrarMensaje = false; 129 mostrarMensaje = false;
129 } 130 }
130 if (mostrarMensaje === true) { 131 if (mostrarMensaje === true) {
131 focaModalService.alert(msg); 132 focaModalService.alert(msg);
132 return; 133 return;
133 } 134 }
134 var modalInstance = $uibModal.open( 135 var modalInstance = $uibModal.open(
135 { 136 {
136 templateUrl: 'foca-modal-descarga.html', 137 templateUrl: 'foca-modal-descarga.html',
137 controller: 'focaModalDescargaCtrl', 138 controller: 'focaModalDescargaCtrl',
138 resolve: { 139 resolve: {
139 remito: function () { return remito; } 140 remito: function () { return remito; }
140 }, 141 },
141 } 142 }
142 ); 143 );
143 modalInstance.result.then(function (data) { 144 modalInstance.result.then(function () {
144 console.log(data); 145 // console.log(data);
145 }); 146 });
146 }; 147 };
147 $scope.articulosDescargados = function (articulosRemito) { 148 $scope.articulosDescargados = function (articulosRemito) {
148 for (var i = 0; i < articulosRemito.length; i++) { 149 for (var i = 0; i < articulosRemito.length; i++) {
149 if (articulosRemito[i].cantidadDescargada > 0) continue; 150 if (articulosRemito[i].cantidadDescargada > 0) continue;
150 else return false; 151 else return false;
151 } 152 }
152 return true; 153 return true;
153 }; 154 };
154 $scope.estaPendiente = function () { 155 $scope.estaPendiente = function () {
155 if ($scope.hojaRuta.abierta) { 156 if ($scope.hojaRuta.abierta) {
156 $scope.terminarHojaRuta(); 157 $scope.terminarHojaRuta();
157 return; 158 return;
158 } 159 }
159 var pendiente = false; 160 var pendiente = false;
160 $scope.hojaRuta.remitos.forEach(function (remito) { 161 $scope.hojaRuta.remitos.forEach(function (remito) {
161 if (pendiente === false) { 162 if (pendiente === false) {
162 var aDescargado = false; 163 var aDescargado = false;
163 for (var i = 0; i < remito.articulosRemito.length; i++) { 164 for (var i = 0; i < remito.articulosRemito.length; i++) {
164 if (remito.articulosRemito[i].cantidadDescargada > 0) 165 if (remito.articulosRemito[i].cantidadDescargada > 0)
165 aDescargado = true; 166 aDescargado = true;
166 } 167 }
167 pendiente = (!aDescargado && remito.rechazado == null) ? true : false; 168 pendiente = (!aDescargado && remito.rechazado == null) ? true : false;
168 } 169 }
169 }); 170 });
170 if (pendiente) { 171 if (pendiente) {
171 focaModalService.alert('Todavia hay remitos pendientes'); 172 focaModalService.alert('Todavia hay remitos pendientes');
172 return; 173 return;
173 } 174 }
174 $scope.terminarHojaRuta(); 175 $scope.terminarHojaRuta();
175 }; 176 };
176 $rootScope.$on('estadoRed', function (event, value) { 177 $rootScope.$on('estadoRed', function (event, value) {
177 $scope.estadoRed = value; 178 $scope.estadoRed = value;
178 }); 179 });
179 function addCabecera(label, valor) { 180 function addCabecera(label, valor) {
180 var propiedad = $filter('filter')($scope.cabecera, { label: label }, true); 181 var propiedad = $filter('filter')($scope.cabecera, { label: label }, true);
181 if (propiedad.length === 1) propiedad[0].valor = valor; 182 if (propiedad.length === 1) propiedad[0].valor = valor;
182 else $scope.cabecera.push({ label: label, valor: valor }); 183 else $scope.cabecera.push({ label: label, valor: valor });
183 } 184 }
184 // function getLSHojaRuta() { 185 // function getLSHojaRuta() {
185 // var hojaRuta = JSON.parse($localStorage.hojaRuta || null); 186 // var hojaRuta = JSON.parse($localStorage.hojaRuta || null);
186 // if (hojaRuta) { 187 // if (hojaRuta) {
187 // $scope.hojaRuta = hojaRuta; 188 // $scope.hojaRuta = hojaRuta;
188 // delete $localStorage.hojaRuta; 189 // delete $localStorage.hojaRuta;
189 // } 190 // }
190 // } 191 // }
191 function parametrosModalHojasDeRuta(datos) { 192 function parametrosModalHojasDeRuta(datos) {
192 var parametrosModal = { 193 var parametrosModal = {
193 data: datos, 194 data: datos,
194 columnas: [ 195 columnas: [
195 { 196 {
196 propiedad: 'comprobante', 197 propiedad: 'comprobante',
197 nombre: 'Número' 198 nombre: 'Número'
198 }, 199 },
199 { 200 {
200 propiedad: 'fechaReparto', 201 propiedad: 'fechaReparto',
201 nombre: 'Fecha', 202 nombre: 'Fecha',
202 filtro: { 203 filtro: {
203 nombre: 'date', 204 nombre: 'date',
204 parametro: 'yyyy-MM-dd' 205 parametro: 'yyyy-MM-dd'
205 } 206 }
206 } 207 }
207 ], 208 ],
208 titulo: 'Selecciona hoja de ruta', 209 titulo: 'Selecciona hoja de ruta',
209 size: 'md' 210 size: 'md'
210 }; 211 };
211 return parametrosModal; 212 return parametrosModal;
212 } 213 }
213 } 214 }
214 ] 215 ]
215 ); 216 );