Commit ee52eb146f4c4a6f86074b3d670272132adbd4ec

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

Merge branch 'master' into 'develop'

Master

See merge request !33
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 68
69 $scope.inicial = angular.copy($scope.hojaRuta); 69 $scope.inicial = angular.copy($scope.hojaRuta);
70 } 70 }
71 71
72 $scope.$watch('hojaRuta', function(newValue, oldValue) { 72 $scope.$watch('hojaRuta', function(newValue, oldValue) {
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: new Date($scope.hojaRuta.fechaReparto).toISOString().substring(0, 10),
115 estado: 0 115 estado: 0
116 }, 116 },
117 remitos: $scope.hojaRuta.remitosTabla 117 remitos: $scope.hojaRuta.remitosTabla
118 }; 118 };
119 save.hojaRuta = angular.extend({}, save.hojaRuta, $scope.hojaRuta.datosExtra); 119 save.hojaRuta = angular.extend({}, save.hojaRuta, $scope.hojaRuta.datosExtra);
120 focaCrearHojaRutaService.crearHojaRuta(save).then( 120 focaCrearHojaRutaService.crearHojaRuta(save).then(
121 function(data) { 121 function(data) {
122 focaModalService.alert( 122 focaModalService.alert(
123 'Hoja ruta creada Nº: ' + 123 'Hoja ruta creada Nº: ' +
124 $filter('rellenarDigitos')(data.data.sucursal, 4) + '-' + 124 $filter('rellenarDigitos')(data.data.sucursal, 4) + '-' +
125 $filter('rellenarDigitos')(data.data.numeroHojaRuta, 8) 125 $filter('rellenarDigitos')(data.data.numeroHojaRuta, 8)
126 ); 126 );
127 127
128 init(); 128 init();
129 }, 129 },
130 function(error) { 130 function(error) {
131 focaModalService.alert('Hubo un error al crear la hoja de ruta'); 131 focaModalService.alert('Hubo un error al crear la hoja de ruta');
132 console.info(error); 132 console.info(error);
133 } 133 }
134 ); 134 );
135 }; 135 };
136 136
137 $scope.seleccionarTransportista = function() { 137 $scope.seleccionarTransportista = function() {
138 if(eligioPreConfirmado()) return; 138 if (eligioPreConfirmado()) return;
139 var parametrosModal = { 139 var parametrosModal = {
140 titulo: 'Búsqueda de transportista', 140 titulo: 'Búsqueda de transportista',
141 query: '/transportista', 141 query: '/transportista',
142 columnas: [ 142 columnas: [
143 { 143 {
144 nombre: 'Código', 144 nombre: 'Código',
145 propiedad: 'COD' 145 propiedad: 'COD'
146 }, 146 },
147 { 147 {
148 nombre: 'Nombre', 148 nombre: 'Nombre',
149 propiedad: 'NOM' 149 propiedad: 'NOM'
150 }, 150 },
151 { 151 {
152 nombre: 'CUIT', 152 nombre: 'CUIT',
153 propiedad: 'CUIT' 153 propiedad: 'CUIT'
154 } 154 }
155 ] 155 ]
156 }; 156 };
157 focaModalService.modal(parametrosModal).then( 157 focaModalService.modal(parametrosModal).then(
158 function(proveedor) { 158 function(proveedor) {
159 $scope.hojaRuta.transportista = proveedor; 159 $scope.hojaRuta.transportista = proveedor;
160 $scope.$broadcast('addCabecera', { 160 $scope.$broadcast('addCabecera', {
161 label: 'Transportista:', 161 label: 'Transportista:',
162 valor: $filter('rellenarDigitos')(proveedor.COD, 5) + ' - ' + 162 valor: $filter('rellenarDigitos')(proveedor.COD, 5) + ' - ' +
163 proveedor.NOM 163 proveedor.NOM
164 }); 164 });
165 }, function() { 165 }, function() {
166 166
167 } 167 }
168 ); 168 );
169 }; 169 };
170 170
171 $scope.seleccionarChofer = function() { 171 $scope.seleccionarChofer = function() {
172 var parametrosModal = { 172 var parametrosModal = {
173 titulo: 'Búsqueda de Chofer', 173 titulo: 'Búsqueda de Chofer',
174 query: '/chofer', 174 query: '/chofer',
175 columnas: [ 175 columnas: [
176 { 176 {
177 propiedad: 'id', 177 propiedad: 'id',
178 nombre: 'Código', 178 nombre: 'Código',
179 filtro: { 179 filtro: {
180 nombre: 'rellenarDigitos', 180 nombre: 'rellenarDigitos',
181 parametro: 3 181 parametro: 3
182 } 182 }
183 }, 183 },
184 { 184 {
185 propiedad: 'nombre', 185 propiedad: 'nombre',
186 nombre: 'Nombre' 186 nombre: 'Nombre'
187 }, 187 },
188 { 188 {
189 propiedad: 'dni', 189 propiedad: 'dni',
190 nombre: 'DNI' 190 nombre: 'DNI'
191 }, 191 },
192 { 192 {
193 propiedad: 'telefono', 193 propiedad: 'telefono',
194 nombre: 'Teléfono' 194 nombre: 'Teléfono'
195 } 195 }
196 ] 196 ]
197 }; 197 };
198 focaModalService.modal(parametrosModal).then( 198 focaModalService.modal(parametrosModal).then(
199 function(chofer) { 199 function(chofer) {
200 $scope.hojaRuta.chofer = chofer; 200 $scope.hojaRuta.chofer = chofer;
201 $scope.$broadcast('addCabecera', { 201 $scope.$broadcast('addCabecera', {
202 label: 'Chofer:', 202 label: 'Chofer:',
203 valor: $filter('rellenarDigitos')(chofer.id, 3) + ' - ' +chofer.nombre 203 valor: $filter('rellenarDigitos')(chofer.id, 3) + ' - ' +chofer.nombre
204 }); 204 });
205 }, function() { 205 }, function() {
206 // funcion ejecutada cuando se cancela el modal 206 // funcion ejecutada cuando se cancela el modal
207 } 207 }
208 ); 208 );
209 }; 209 };
210 210
211 $scope.seleccionarVehiculo = function() { 211 $scope.seleccionarVehiculo = function() {
212 if(!eligioFecha() || eligioPreConfirmado()) return; 212 if (!eligioFecha() || eligioPreConfirmado()) return;
213 modalVehiculos(); 213 modalVehiculos();
214 }; 214 };
215 215
216 $scope.seleccionarTarifario = function() { 216 $scope.seleccionarTarifario = function() {
217 focaModalService 217 focaModalService
218 .prompt({ 218 .prompt({
219 titulo: 'Tarifa flete', 219 titulo: 'Tarifa flete',
220 value: $scope.hojaRuta.tarifario.costo 220 value: $scope.hojaRuta.tarifario.costo
221 }) 221 })
222 .then(function(costo) { 222 .then(function(costo) {
223 if (isNaN(costo)) { 223 if (isNaN(costo)) {
224 focaModalService 224 focaModalService
225 .alert('Ingrese un valor válido') 225 .alert('Ingrese un valor válido')
226 .then(function() { 226 .then(function() {
227 $scope.seleccionarTarifario(); 227 $scope.seleccionarTarifario();
228 }); 228 });
229 229
230 return; 230 return;
231 } 231 }
232 232
233 $scope.hojaRuta.tarifario.costo = costo; 233 $scope.hojaRuta.tarifario.costo = costo;
234 $scope.$broadcast('addCabecera', { 234 $scope.$broadcast('addCabecera', {
235 label: 'Tarifario:', 235 label: 'Tarifario:',
236 valor: costo 236 valor: costo
237 }); 237 });
238 }); 238 });
239 }; 239 };
240 240
241 $scope.seleccionarRemitos = function() { 241 $scope.seleccionarRemitos = function() {
242 if(eligioPreConfirmado() || !eligioFecha() || !eligioVehiculo()) return; 242 if (eligioPreConfirmado() || !eligioFecha() || !eligioVehiculo()) return;
243 var modalInstance = $uibModal.open( 243 var modalInstance = $uibModal.open(
244 { 244 {
245 ariaLabelledBy: 'Busqueda de Remito', 245 ariaLabelledBy: 'Busqueda de Remito',
246 templateUrl: 'foca-modal-remito.html', 246 templateUrl: 'foca-modal-remito.html',
247 controller: 'focaModalRemitoController', 247 controller: 'focaModalRemitoController',
248 size: 'lg', 248 size: 'lg',
249 resolve: {usadoPor: function() {return 'hojaRuta';}} 249 resolve: {usadoPor: function() {return 'hojaRuta';}}
250 } 250 }
251 ); 251 );
252 modalInstance.result.then( 252 modalInstance.result.then(
253 function(remito) { 253 function(remito) {
254 // TODO: borrar cuando no se use definitivamente 254 // TODO: borrar cuando no se use definitivamente
255 // for (var i = $scope.hojaRuta.remitosTabla.length - 1; i >= 0; i--) { 255 // for (var i = $scope.hojaRuta.remitosTabla.length - 1; i >= 0; i--) {
256 // if ($scope.hojaRuta.remitosTabla[i].id === remito.id) { 256 // if ($scope.hojaRuta.remitosTabla[i].id === remito.id) {
257 // focaModalService.alert('Remito ya incluido'); 257 // focaModalService.alert('Remito ya incluido');
258 // return; 258 // return;
259 // } 259 // }
260 // } 260 // }
261 261
262 // var litros = 0; 262 // var litros = 0;
263 // for (var j = remito.articulosRemito.length - 1; j >= 0; j--) { 263 // for (var j = remito.articulosRemito.length - 1; j >= 0; j--) {
264 // litros = litros + parseFloat(remito.articulosRemito[j].cantidad); 264 // litros = litros + parseFloat(remito.articulosRemito[j].cantidad);
265 // } 265 // }
266 266
267 // if ($scope.hojaRuta.litros >= $scope.hojaRuta.vehiculo.capacidad) { 267 // if ($scope.hojaRuta.litros >= $scope.hojaRuta.vehiculo.capacidad) {
268 // focaModalService.alert( 268 // focaModalService.alert(
269 // 'Debe ingresar toda la información para el transporte' 269 // 'Debe ingresar toda la información para el transporte'
270 // ); 270 // );
271 // return; 271 // return;
272 // } 272 // }
273 273
274 //if($scope.hojaRuta.litros + litros >= $scope.hojaRuta.vehiculo.capacidad) 274 //if($scope.hojaRuta.litros + litros >= $scope.hojaRuta.vehiculo.capacidad)
275 // { 275 // {
276 // var litrostotales = litros; 276 // var litrostotales = litros;
277 // litros = $scope.hojaRuta.vehiculo.capacidad - $scope.hojaRuta.litros; 277 // litros = $scope.hojaRuta.vehiculo.capacidad - $scope.hojaRuta.litros;
278 // focaModalService.alert( 278 // focaModalService.alert(
279 // 'La carga excede la capacidad disponible del vehiculo. ' + 279 // 'La carga excede la capacidad disponible del vehiculo. ' +
280 // 'Excedente no cargado: ' + (litrostotales - litros) + ' litros' 280 // 'Excedente no cargado: ' + (litrostotales - litros) + ' litros'
281 // ); 281 // );
282 // } 282 // }
283 283
284 // remito.litros = litros; 284 // remito.litros = litros;
285 // $scope.hojaRuta.litros = $scope.hojaRuta.litros + litros; 285 // $scope.hojaRuta.litros = $scope.hojaRuta.litros + litros;
286 $scope.cargarCisterna(remito.id).then(function(response) { 286 $scope.cargarCisterna(remito.id).then(function(response) {
287 $scope.hojaRuta.remitosTabla.push(remito); 287 $scope.hojaRuta.remitosTabla.push(remito);
288 if (!response) $scope.seleccionarRemitos(); 288 if (!response) $scope.seleccionarRemitos();
289 }, function() { 289 }, function() {
290 $scope.seleccionarRemitos(); 290 $scope.seleccionarRemitos();
291 }); 291 });
292 }, function() { 292 }, function() {
293 // funcion ejecutada cuando se cancela el modal 293 // funcion ejecutada cuando se cancela el modal
294 } 294 }
295 ); 295 );
296 }; 296 };
297 297
298 $scope.seleccionarVehiculosPrecargados = function() { 298 $scope.seleccionarVehiculosPrecargados = function() {
299 if(!eligioFecha()) return; 299 if (!eligioFecha()) return;
300 modalVehiculos(true); 300 modalVehiculos(true);
301 }; 301 };
302 302
303 $scope.cargarCisterna = function(idRemito) { 303 $scope.cargarCisterna = function(idRemito) {
304 if(!eligioFecha() || !$scope.hojaRuta.vehiculo.id) return; 304 if (!eligioFecha() || !$scope.hojaRuta.vehiculo.id) return;
305 var modalInstance = $uibModal.open( 305 var modalInstance = $uibModal.open(
306 { 306 {
307 ariaLabelledBy: 'Busqueda de Vehiculo', 307 ariaLabelledBy: 'Busqueda de Vehiculo',
308 templateUrl: 'foca-detalle-vehiculo.html', 308 templateUrl: 'foca-detalle-vehiculo.html',
309 controller: 'focaDetalleVehiculo', 309 controller: 'focaDetalleVehiculo',
310 size: 'lg', 310 size: 'lg',
311 resolve: { 311 resolve: {
312 idVehiculo: function() {return $scope.hojaRuta.vehiculo.id;}, 312 idVehiculo: function() {return $scope.hojaRuta.vehiculo.id;},
313 idRemito: function() {return idRemito;}, 313 idRemito: function() {return idRemito;},
314 fechaReparto: function() {return $scope.hojaRuta.fechaReparto;} 314 fechaReparto: function() {return $scope.hojaRuta.fechaReparto;}
315 } 315 }
316 } 316 }
317 ); 317 );
318 return modalInstance.result; 318 return modalInstance.result;
319 }; 319 };
320 320
321 $scope.seleccionarFechaEntrega = function() { 321 $scope.seleccionarFechaEntrega = function() {
322 if (!$scope.hojaRuta.fechaReparto) { 322 if (!$scope.hojaRuta.fechaReparto) {
323 elegirFecha(); 323 elegirFecha();
324 return; 324 return;
325 } 325 }
326 focaModalService 326 focaModalService
327 .confirm('Si cambia la fecha se perderán los datos actuales') 327 .confirm('Si cambia la fecha se perderán los datos actuales')
328 .then(function() { 328 .then(function() {
329 elegirFecha(); 329 elegirFecha();
330 }, function() { 330 }, function() {
331 return ; 331 return ;
332 }); 332 });
333 }; 333 };
334 334
335 $scope.seleccionarDatosExtra = function() { 335 $scope.seleccionarDatosExtra = function() {
336 var datosHojaRuta = $scope.hojaRuta.datosExtra; 336 var datosHojaRuta = $scope.hojaRuta.datosExtra;
337 var modalInstance = $uibModal.open( 337 var modalInstance = $uibModal.open(
338 { 338 {
339 templateUrl: 'foca-modal-datos-hoja-ruta.html', 339 templateUrl: 'foca-modal-datos-hoja-ruta.html',
340 controller: 'focaModalDatosHojaRutaCtrl', 340 controller: 'focaModalDatosHojaRutaCtrl',
341 size: 'lg', 341 size: 'lg',
342 resolve: { 342 resolve: {
343 parametrosDatos: function() { 343 parametrosDatos: function() {
344 return { 344 return {
345 datosHojaRuta: datosHojaRuta 345 datosHojaRuta: datosHojaRuta
346 }; 346 };
347 } 347 }
348 } 348 }
349 } 349 }
350 ); 350 );
351 return modalInstance.result.then(function(datosExtra) { 351 return modalInstance.result.then(function(datosExtra) {
352 $scope.hojaRuta.datosExtra = datosExtra; 352 $scope.hojaRuta.datosExtra = datosExtra;
353 }, function() { 353 }, function() {
354 //se ejecuta cuando se cancela el modal 354 //se ejecuta cuando se cancela el modal
355 }); 355 });
356 }; 356 };
357 357
358 $scope.desasociarRemito = function(key, idRemito) { 358 $scope.desasociarRemito = function(key, idRemito) {
359 var idsRemito = [idRemito]; 359 var idsRemito = [idRemito];
360 focaModalService.confirm('¿Está seguro que desea desasociar este remito del' + 360 focaModalService.confirm('¿Está seguro que desea desasociar este remito del' +
361 ' vehículo?').then(function() { 361 ' vehículo?').then(function() {
362 focaCrearHojaRutaService.desasociarRemitos(idsRemito, 362 focaCrearHojaRutaService.desasociarRemitos(idsRemito,
363 $scope.hojaRuta.vehiculo.id, $scope.hojaRuta.remitosTabla.length <= 1).then( 363 $scope.hojaRuta.vehiculo.id, $scope.hojaRuta.remitosTabla.length <= 1).then(
364 function() { 364 function() {
365 $scope.hojaRuta.remitosTabla.splice(key, 1); 365 $scope.hojaRuta.remitosTabla.splice(key, 1);
366 focaModalService.alert('Remito desasociado con éxito'); 366 focaModalService.alert('Remito desasociado con éxito');
367 } 367 }
368 ); 368 );
369 }); 369 });
370 }; 370 };
371 371
372 function elegirFecha() { 372 function elegirFecha() {
373 focaModalService.modalFecha('Fecha de entrega').then(function(fecha) { 373 var fechaEntrega = {
374 $scope.$broadcast('addCabecera', { 374 titulo: 'Fecha de entrega',
375 label: 'Fecha de entrega:', 375 minDate: new Date()
376 valor: fecha.toLocaleDateString() 376 };
377 focaModalService.modalFecha(fechaEntrega).then(function(fecha) {
378 $scope.$broadcast('addCabecera', {
379 label: 'Fecha de entrega: ',
380 valor: fecha.toLocaleDateString()
377 }); 381 });
378 $scope.hojaRuta.fechaReparto = fecha; 382 $scope.hojaRuta.fechaReparto = fecha;
379 }); 383 });
380 } 384 }
381 385
382 function eligioPreConfirmado() { 386 function eligioPreConfirmado() {
383 if($scope.eligioPreConfirmado) { 387 if ($scope.eligioPreConfirmado) {
384 focaModalService.alert('No puede elegir si eligió un vehiculo pre cargado'); 388 focaModalService.alert('No puede elegir si eligió un vehiculo pre cargado');
385 return true; 389 return true;
386 } 390 }
387 return false; 391 return false;
388 } 392 }
389 393
390 function eligioFecha() { 394 function eligioFecha() {
391 if(!$scope.hojaRuta.fechaReparto) { 395 if (!$scope.hojaRuta.fechaReparto) {
392 focaModalService.alert('Primero seleccione fecha de reparto'); 396 focaModalService.alert('Primero seleccione fecha de reparto');
393 return false; 397 return false;
394 } 398 }
395 return true; 399 return true;
396 } 400 }
397 401
398 function eligioVehiculo() { 402 function eligioVehiculo() {
399 if(!$scope.hojaRuta.vehiculo.id) { 403 if (!$scope.hojaRuta.vehiculo.id) {
400 focaModalService.alert('Primero seleccione vehiculo'); 404 focaModalService.alert('Primero seleccione vehiculo');
401 return false; 405 return false;
402 } 406 }
403 return true; 407 return true;
404 } 408 }
405 409
406 function modalVehiculos(preCargados) { 410 function modalVehiculos(preCargados) {
407 var parametrosModal = {}; 411 var parametrosModal = {};
408 if(preCargados) { 412 if (preCargados) {
409 parametrosModal.query = '/vehiculo/obtener/pre-confirmados/' + 413 parametrosModal.query = '/vehiculo/obtener/pre-confirmados/' +
410 new Date($scope.hojaRuta.fechaReparto).toISOString().substring(0, 10); 414 new Date($scope.hojaRuta.fechaReparto).toISOString().substring(0, 10);
411 parametrosModal.titulo = 'Búsqueda de vehiculos pre confirmados'; 415 parametrosModal.titulo = 'Búsqueda de vehiculos pre confirmados';
412 }else { 416 } else {
413 parametrosModal.query = '/vehiculo'; 417 parametrosModal.query = '/vehiculo';
414 parametrosModal.titulo = 'Búsqueda de vehículos'; 418 parametrosModal.titulo = 'Búsqueda de vehículos';
415 } 419 }
416 parametrosModal.columnas = [ 420 parametrosModal.columnas = [
417 { 421 {
418 propiedad: 'codigo', 422 propiedad: 'codigo',
419 nombre: 'Código' 423 nombre: 'Código'
420 }, 424 },
421 { 425 {
422 propiedad: 'tractor', 426 propiedad: 'tractor',
423 nombre: 'tractor' 427 nombre: 'tractor'
424 }, 428 },
425 { 429 {
426 propiedad: 'semi', 430 propiedad: 'semi',
427 nombre: 'Semi' 431 nombre: 'Semi'
428 } 432 }
429 ]; 433 ];
430 focaModalService.modal(parametrosModal).then(function(vehiculo) { 434 focaModalService.modal(parametrosModal).then(function(vehiculo) {
431 if(!preCargados && vehiculoEnUso(vehiculo)) return; 435 if (!preCargados && vehiculoEnUso(vehiculo)) return;
432 $scope.hojaRuta.vehiculo = vehiculo; 436 $scope.hojaRuta.vehiculo = vehiculo;
433 $scope.hojaRuta.transportista = vehiculo.transportista; 437 $scope.hojaRuta.transportista = vehiculo.transportista;
434 if(preCargados) { 438 if (preCargados) {
435 $scope.eligioPreConfirmado = true; 439 $scope.eligioPreConfirmado = true;
436 $scope.hojaRuta.vehiculo = vehiculo; 440 $scope.hojaRuta.vehiculo = vehiculo;
437 $scope.$broadcast('addCabecera', { 441 $scope.$broadcast('addCabecera', {
438 label: 'Transportista:', 442 label: 'Transportista:',
439 valor: $filter('rellenarDigitos')(vehiculo.transportista.COD, 5) + 443 valor: $filter('rellenarDigitos')(vehiculo.transportista.COD, 5) +
440 ' - ' + vehiculo.transportista.NOM 444 ' - ' + vehiculo.transportista.NOM
441 }); 445 });
442 focaCrearHojaRutaService 446 focaCrearHojaRutaService
443 .getRemitosByIdVehiculo(vehiculo.id, $scope.hojaRuta.fechaReparto) 447 .getRemitosByIdVehiculo(vehiculo.id, $scope.hojaRuta.fechaReparto)
444 .then(function(res) { 448 .then(function(res) {
445 $scope.hojaRuta.remitosTabla = res.data; 449 $scope.hojaRuta.remitosTabla = res.data;
446 }); 450 });
447 }else { 451 } else {
448 focaCrearHojaRutaService 452 focaCrearHojaRutaService
449 .getRemitosByIdVehiculo(vehiculo.id, $scope.hojaRuta.fechaReparto, true) 453 .getRemitosByIdVehiculo(vehiculo.id, $scope.hojaRuta.fechaReparto, true)
450 .then(function(res) { 454 .then(function(res) {
451 $scope.hojaRuta.remitosTabla = res.data; 455 $scope.hojaRuta.remitosTabla = res.data;
452 }); 456 });
453 } 457 }
454 $scope.$broadcast('addCabecera', { 458 $scope.$broadcast('addCabecera', {
455 label: 'Tractor:', 459 label: 'Tractor:',
456 valor: vehiculo.tractor 460 valor: vehiculo.tractor
457 }); 461 });
458 $scope.$broadcast('addCabecera', { 462 $scope.$broadcast('addCabecera', {
459 label: 'Semi:', 463 label: 'Semi:',
460 valor: vehiculo.semi 464 valor: vehiculo.semi
461 }); 465 });
462 $scope.$broadcast('addCabecera', { 466 $scope.$broadcast('addCabecera', {
463 label: 'Capacidad:', 467 label: 'Capacidad:',
464 valor: vehiculo.capacidad 468 valor: vehiculo.capacidad
465 }); 469 });
466 }); 470 });
467 } 471 }
468 472
469 function vehiculoEnUso(vehiculo) { 473 function vehiculoEnUso(vehiculo) {
470 var idUsuario = focaLoginSrv.getLoginData().vendedorCobrador; 474 var idUsuario = focaLoginSrv.getLoginData().vendedorCobrador;
471 for (var i = 0; i < vehiculo.cisternas.length; i++) { 475 for (var i = 0; i < vehiculo.cisternas.length; i++) {
472 for (var j = 0; j < vehiculo.cisternas[i].cisternasCarga.length; j++) { 476 for (var j = 0; j < vehiculo.cisternas[i].cisternasCarga.length; j++) {
473 var cisternaCarga = vehiculo.cisternas[i].cisternasCarga[j]; 477 var cisternaCarga = vehiculo.cisternas[i].cisternasCarga[j];
474 if (cisternaCarga.fechaReparto.substring(0, 10) === 478 if (cisternaCarga.fechaReparto.substring(0, 10) ===
475 new Date($scope.hojaRuta.fechaReparto).toISOString().substring(0, 10) && 479 new Date($scope.hojaRuta.fechaReparto).toISOString().substring(0, 10) &&
476 cisternaCarga.idUsuarioProceso && 480 cisternaCarga.idUsuarioProceso &&
477 cisternaCarga.idUsuarioProceso !== idUsuario) 481 cisternaCarga.idUsuarioProceso !== idUsuario)
478 { 482 {
479 focaModalService.alert('El vehículo está siendo usado por otro' + 483 focaModalService.alert('El vehículo está siendo usado por otro' +
480 ' usuario'); 484 ' usuario');
481 return true; 485 return true;
482 } 486 }
483 } 487 }
484 } 488 }
485 return false; 489 return false;
486 } 490 }
487 491
488 function salir() { 492 function salir() {
489 var confirmacion = false; 493 var confirmacion = false;
490 494
491 if (!angular.equals($scope.hojaRuta, $scope.inicial)) { 495 if (!angular.equals($scope.hojaRuta, $scope.inicial)) {
492 confirmacion = true; 496 confirmacion = true;
493 } 497 }
494 498
495 if (confirmacion) { 499 if (confirmacion) {
496 focaModalService.confirm( 500 focaModalService.confirm(
497 '¿Está seguro de que desea salir? Se perderán todos los datos cargados.' 501 '¿Está seguro de que desea salir? Se perderán todos los datos cargados.'
498 ).then(function(data) { 502 ).then(function(data) {
499 if (data) { 503 if (data) {
500 $location.path('/'); 504 $location.path('/');
501 } 505 }
502 }); 506 });
503 } else { 507 } else {
504 $location.path('/'); 508 $location.path('/');
505 } 509 }
506 } 510 }
507 511
508 function setearHojaRuta(hojaRuta) { 512 function setearHojaRuta(hojaRuta) {
509 $scope.$broadcast('cleanCabecera'); 513 $scope.$broadcast('cleanCabecera');
510 514
511 var cabeceras = []; 515 var cabeceras = [];
512 if (hojaRuta.fechaReparto) { 516 if (hojaRuta.fechaReparto) {
513 cabeceras.push({ 517 cabeceras.push({
514 label: 'Fecha de entrega:', 518 label: 'Fecha de entrega:',
515 valor: $filter('date')(hojaRuta.fechaReparto, 'dd/MM/yyyy') 519 valor: $filter('date')(hojaRuta.fechaReparto, 'dd/MM/yyyy')
516 }); 520 });
517 } 521 }
518 if (hojaRuta.transportista.COD) { 522 if (hojaRuta.transportista.COD) {
519 cabeceras.push({ 523 cabeceras.push({
520 label: 'Transportista:', 524 label: 'Transportista:',
521 valor: $filter('rellenarDigitos')(hojaRuta.transportista.COD, 5) + ' - ' + 525 valor: $filter('rellenarDigitos')(hojaRuta.transportista.COD, 5) + ' - ' +
522 hojaRuta.transportista.NOM 526 hojaRuta.transportista.NOM
523 }); 527 });
524 } 528 }
525 if (hojaRuta.chofer.id) { 529 if (hojaRuta.chofer.id) {
526 cabeceras.push({ 530 cabeceras.push({
527 label: 'Chofer:', 531 label: 'Chofer:',
528 valor: $filter('rellenarDigitos')(hojaRuta.chofer.id, 3) + 532 valor: $filter('rellenarDigitos')(hojaRuta.chofer.id, 3) +
529 ' - ' + hojaRuta.chofer.nombre 533 ' - ' + hojaRuta.chofer.nombre
530 }); 534 });
531 } 535 }
532 if (hojaRuta.vehiculo.id) { 536 if (hojaRuta.vehiculo.id) {
533 cabeceras.push({ 537 cabeceras.push({
534 label: 'Tractor:', 538 label: 'Tractor:',
535 valor: hojaRuta.vehiculo.tractor 539 valor: hojaRuta.vehiculo.tractor
536 }); 540 });
537 cabeceras.push({ 541 cabeceras.push({
538 label: 'Semi:', 542 label: 'Semi:',
539 valor: hojaRuta.vehiculo.semi 543 valor: hojaRuta.vehiculo.semi
540 }); 544 });
541 cabeceras.push({ 545 cabeceras.push({
542 label: 'Capacidad:', 546 label: 'Capacidad:',
543 valor: hojaRuta.vehiculo.capacidad 547 valor: hojaRuta.vehiculo.capacidad
544 }); 548 });
545 } 549 }
546 if (hojaRuta.tarifario.costo) { 550 if (hojaRuta.tarifario.costo) {
547 cabeceras.push({ 551 cabeceras.push({
548 label: 'Tarifario:', 552 label: 'Tarifario:',
549 valor: hojaRuta.tarifario.costo 553 valor: hojaRuta.tarifario.costo
550 }); 554 });
551 } 555 }
552 556
553 addArrayCabecera(cabeceras); 557 addArrayCabecera(cabeceras);
554 $scope.hojaRuta = hojaRuta; 558 $scope.hojaRuta = hojaRuta;
555 } 559 }
556 560
557 function getLSHojaRuta() { 561 function getLSHojaRuta() {
558 var hojaRuta = JSON.parse($localStorage.hojaRuta || null); 562 var hojaRuta = JSON.parse($localStorage.hojaRuta || null);
559 if (hojaRuta) { 563 if (hojaRuta) {
560 setearHojaRuta(hojaRuta); 564 setearHojaRuta(hojaRuta);
561 delete $localStorage.hojaRuta; 565 delete $localStorage.hojaRuta;
562 } 566 }
563 } 567 }
564 function addArrayCabecera(array) { 568 function addArrayCabecera(array) {
565 for(var i = 0; i < array.length; i++) { 569 for(var i = 0; i < array.length; i++) {
566 $scope.$broadcast('addCabecera', { 570 $scope.$broadcast('addCabecera', {
567 label: array[i].label, 571 label: array[i].label,
568 valor: array[i].valor 572 valor: array[i].valor
569 }); 573 });
570 } 574 }
571 } 575 }
572 } 576 }
573 ]); 577 ]);
574 578
src/js/controllerDatosHojaRuta.js
1 angular.module('focaCrearHojaRuta') 1 angular.module('focaCrearHojaRuta')
2 .controller('focaModalDatosHojaRutaCtrl', 2 .controller('focaModalDatosHojaRutaCtrl',
3 [ 3 [
4 '$filter', 4 '$filter',
5 '$scope', 5 '$scope',
6 '$uibModalInstance', 6 '$uibModalInstance',
7 'focaModalService', 7 'focaModalService',
8 'parametrosDatos', 8 'parametrosDatos',
9 function($filter, $scope, $uibModalInstance, focaModalService, parametrosDatos) { 9 function($filter, $scope, $uibModalInstance, focaModalService, parametrosDatos) {
10 $scope.datosHojaRuta = parametrosDatos.datosHojaRuta; 10 $scope.datosHojaRuta = parametrosDatos.datosHojaRuta;
11 $scope.focused = 0; 11 $scope.focused = 0;
12 12
13 $scope.aceptar = function(key) { 13 $scope.aceptar = function(key) {
14 if(key === 13) { 14 if (key === 13) {
15 if(!$scope.formDatosHojaRuta.$valid) { 15 if (!$scope.formDatosHojaRuta.$valid) {
16 focaModalService.alert('Formulario inválido'); 16 focaModalService.alert('Formulario inválido');
17 return; 17 return;
18 } 18 }
19 $uibModalInstance.close($scope.datosHojaRuta); 19 $uibModalInstance.close($scope.datosHojaRuta);
20 } 20 }
21 }; 21 };
22 22
23 $scope.next = function(key) { 23 $scope.next = function(key) {
24 if(key === 13) $scope.focused++; 24 if (key === 13) $scope.focused++;
25 }; 25 };
26 26
27 $scope.cancel = function() { 27 $scope.cancel = function() {
28 $uibModalInstance.dismiss('cancel'); 28 $uibModalInstance.dismiss('cancel');
29 }; 29 };
30 } 30 }
31 ] 31 ]
32 ); 32 );
33 33