Commit 2ad52c8418a9bcbe8ccfe41d1bdc12e2c41a6d3e

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

Merge branch 'master' into 'develop'

Master

See merge request !36
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 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, oldValue) { 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: 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 function setearFecha(fecha) {
336 $timeout(function() {
337 $scope.$broadcast('addCabecera', {
338 label: 'Fecha de entrega: ',
339 valor: fecha.toLocaleDateString()
340 });
341 });
342 }
343
335 $scope.seleccionarDatosExtra = function() { 344 $scope.seleccionarDatosExtra = function() {
336 var datosHojaRuta = $scope.hojaRuta.datosExtra; 345 var datosHojaRuta = $scope.hojaRuta.datosExtra;
337 var modalInstance = $uibModal.open( 346 var modalInstance = $uibModal.open(
338 { 347 {
339 templateUrl: 'foca-modal-datos-hoja-ruta.html', 348 templateUrl: 'foca-modal-datos-hoja-ruta.html',
340 controller: 'focaModalDatosHojaRutaCtrl', 349 controller: 'focaModalDatosHojaRutaCtrl',
341 size: 'lg', 350 size: 'lg',
342 resolve: { 351 resolve: {
343 parametrosDatos: function() { 352 parametrosDatos: function() {
344 return { 353 return {
345 datosHojaRuta: datosHojaRuta 354 datosHojaRuta: datosHojaRuta
346 }; 355 };
347 } 356 }
348 } 357 }
349 } 358 }
350 ); 359 );
351 return modalInstance.result.then(function(datosExtra) { 360 return modalInstance.result.then(function(datosExtra) {
352 $scope.hojaRuta.datosExtra = datosExtra; 361 $scope.hojaRuta.datosExtra = datosExtra;
353 }, function() { 362 }, function() {
354 //se ejecuta cuando se cancela el modal 363 //se ejecuta cuando se cancela el modal
355 }); 364 });
356 }; 365 };
357 366
358 $scope.desasociarRemito = function(key, idRemito) { 367 $scope.desasociarRemito = function(key, idRemito) {
359 var idsRemito = [idRemito]; 368 var idsRemito = [idRemito];
360 focaModalService.confirm('¿Está seguro que desea desasociar este remito del' + 369 focaModalService.confirm('¿Está seguro que desea desasociar este remito del' +
361 ' vehículo?').then(function() { 370 ' vehículo?').then(function() {
362 focaCrearHojaRutaService.desasociarRemitos(idsRemito, 371 focaCrearHojaRutaService.desasociarRemitos(idsRemito,
363 $scope.hojaRuta.vehiculo.id, $scope.hojaRuta.remitosTabla.length <= 1) 372 $scope.hojaRuta.vehiculo.id, $scope.hojaRuta.remitosTabla.length <= 1)
364 .then(function() { 373 .then(function() {
365 $scope.hojaRuta.remitosTabla.splice(key, 1); 374 $scope.hojaRuta.remitosTabla.splice(key, 1);
366 focaModalService.alert('Remito desasociado con éxito'); 375 focaModalService.alert('Remito desasociado con éxito');
367 }); 376 });
368 }); 377 });
369 }; 378 };
370 379
371 $scope.verProductosRemito = function(idRemito) { 380 $scope.verProductosRemito = function(idRemito) {
372 var parametrosModal = { 381 var parametrosModal = {
373 titulo: 'Articulos remito', 382 titulo: 'Articulos remito',
374 query: '/articulos/remito/' + idRemito, 383 query: '/articulos/remito/' + idRemito,
375 soloMostrar: true, 384 soloMostrar: true,
376 columnas: [ 385 columnas: [
377 { 386 {
378 nombre: 'Código', 387 nombre: 'Código',
379 propiedad: 'codigo' 388 propiedad: 'codigo'
380 }, 389 },
381 { 390 {
382 nombre: 'Descripción', 391 nombre: 'Descripción',
383 propiedad: 'descripcion' 392 propiedad: 'descripcion'
384 }, 393 },
385 { 394 {
386 nombre: 'Cantidad', 395 nombre: 'Cantidad',
387 propiedad: 'cantidad' 396 propiedad: 'cantidad'
388 } 397 }
389 ] 398 ]
390 }; 399 };
391 focaModalService.modal(parametrosModal).then(); 400 focaModalService.modal(parametrosModal).then();
392 }; 401 };
393 402
394 function elegirFecha() { 403 function elegirFecha() {
395 var fechaEntrega = { 404 var fechaEntrega = {
396 titulo: 'Fecha de entrega', 405 titulo: 'Fecha de entrega',
397 minDate: new Date() 406 minDate: new Date()
398 }; 407 };
399 focaModalService.modalFecha(fechaEntrega).then(function(fecha) { 408 focaModalService.modalFecha(fechaEntrega).then(function(fecha) {
400 $scope.$broadcast('addCabecera', { 409 $scope.$broadcast('addCabecera', {
401 label: 'Fecha de entrega: ', 410 label: 'Fecha de entrega: ',
402 valor: fecha.toLocaleDateString() 411 valor: fecha.toLocaleDateString()
403 }); 412 });
404 $scope.hojaRuta.fechaReparto = fecha; 413 $scope.hojaRuta.fechaReparto = fecha;
405 }); 414 });
406 } 415 }
407 416
408 function eligioPreConfirmado() { 417 function eligioPreConfirmado() {
409 if ($scope.eligioPreConfirmado) { 418 if ($scope.eligioPreConfirmado) {
410 focaModalService.alert('No puede elegir si eligió un vehiculo pre cargado'); 419 focaModalService.alert('No puede elegir si eligió un vehiculo pre cargado');
411 return true; 420 return true;
412 } 421 }
413 return false; 422 return false;
414 } 423 }
415 424
416 function eligioFecha() { 425 function eligioFecha() {
417 if (!$scope.hojaRuta.fechaReparto) { 426 if (!$scope.hojaRuta.fechaReparto) {
418 focaModalService.alert('Primero seleccione fecha de reparto'); 427 focaModalService.alert('Primero seleccione fecha de reparto');
419 return false; 428 return false;
420 } 429 }
421 return true; 430 return true;
422 } 431 }
423 432
424 function eligioVehiculo() { 433 function eligioVehiculo() {
425 if (!$scope.hojaRuta.vehiculo.id) { 434 if (!$scope.hojaRuta.vehiculo.id) {
426 focaModalService.alert('Primero seleccione vehiculo'); 435 focaModalService.alert('Primero seleccione vehiculo');
427 return false; 436 return false;
428 } 437 }
429 return true; 438 return true;
430 } 439 }
431 440
432 function modalVehiculos(preCargados) { 441 function modalVehiculos(preCargados) {
433 var parametrosModal = {}; 442 var parametrosModal = {};
434 if (preCargados) { 443 if (preCargados) {
435 parametrosModal.query = '/vehiculo/obtener/pre-confirmados/' + 444 parametrosModal.query = '/vehiculo/obtener/pre-confirmados/' +
436 new Date($scope.hojaRuta.fechaReparto).toISOString().substring(0, 10); 445 new Date($scope.hojaRuta.fechaReparto).toISOString().substring(0, 10);
437 parametrosModal.titulo = 'Búsqueda de vehiculos pre confirmados'; 446 parametrosModal.titulo = 'Búsqueda de vehiculos pre confirmados';
438 } else { 447 } else {
439 parametrosModal.query = '/vehiculo'; 448 parametrosModal.query = '/vehiculo';
440 parametrosModal.titulo = 'Búsqueda de vehículos'; 449 parametrosModal.titulo = 'Búsqueda de vehículos';
441 } 450 }
442 parametrosModal.columnas = [ 451 parametrosModal.columnas = [
443 { 452 {
444 propiedad: 'codigo', 453 propiedad: 'codigo',
445 nombre: 'Código' 454 nombre: 'Código'
446 }, 455 },
447 { 456 {
448 propiedad: 'tractor', 457 propiedad: 'tractor',
449 nombre: 'tractor' 458 nombre: 'tractor'
450 }, 459 },
451 { 460 {
452 propiedad: 'semi', 461 propiedad: 'semi',
453 nombre: 'Semi' 462 nombre: 'Semi'
454 } 463 }
455 ]; 464 ];
456 focaModalService.modal(parametrosModal).then(function(vehiculo) { 465 focaModalService.modal(parametrosModal).then(function(vehiculo) {
457 if (!preCargados && vehiculoEnUso(vehiculo)) return; 466 if (!preCargados && vehiculoEnUso(vehiculo)) return;
458 $scope.hojaRuta.vehiculo = vehiculo; 467 $scope.hojaRuta.vehiculo = vehiculo;
459 $scope.hojaRuta.transportista = vehiculo.transportista; 468 $scope.hojaRuta.transportista = vehiculo.transportista;
460 if (preCargados) { 469 if (preCargados) {
461 $scope.eligioPreConfirmado = true; 470 $scope.eligioPreConfirmado = true;
462 $scope.hojaRuta.vehiculo = vehiculo; 471 $scope.hojaRuta.vehiculo = vehiculo;
463 $scope.$broadcast('addCabecera', { 472 $scope.$broadcast('addCabecera', {
464 label: 'Transportista:', 473 label: 'Transportista:',
465 valor: $filter('rellenarDigitos')(vehiculo.transportista.COD, 5) + 474 valor: $filter('rellenarDigitos')(vehiculo.transportista.COD, 5) +
466 ' - ' + vehiculo.transportista.NOM 475 ' - ' + vehiculo.transportista.NOM
467 }); 476 });
468 focaCrearHojaRutaService 477 focaCrearHojaRutaService
469 .getRemitosByIdVehiculo(vehiculo.id, $scope.hojaRuta.fechaReparto) 478 .getRemitosByIdVehiculo(vehiculo.id, $scope.hojaRuta.fechaReparto)
470 .then(function(res) { 479 .then(function(res) {
471 $scope.hojaRuta.remitosTabla = res.data; 480 $scope.hojaRuta.remitosTabla = res.data;
472 }); 481 });
473 } else { 482 } else {
474 focaCrearHojaRutaService 483 focaCrearHojaRutaService
475 .getRemitosByIdVehiculo(vehiculo.id, $scope.hojaRuta.fechaReparto, true) 484 .getRemitosByIdVehiculo(vehiculo.id, $scope.hojaRuta.fechaReparto, true)
476 .then(function(res) { 485 .then(function(res) {
477 $scope.hojaRuta.remitosTabla = res.data; 486 $scope.hojaRuta.remitosTabla = res.data;
478 }); 487 });
479 } 488 }
480 $scope.$broadcast('addCabecera', { 489 $scope.$broadcast('addCabecera', {
481 label: 'Tractor:', 490 label: 'Tractor:',
482 valor: vehiculo.tractor 491 valor: vehiculo.tractor
483 }); 492 });
484 $scope.$broadcast('addCabecera', { 493 $scope.$broadcast('addCabecera', {
485 label: 'Semi:', 494 label: 'Semi:',
486 valor: vehiculo.semi 495 valor: vehiculo.semi
487 }); 496 });
488 $scope.$broadcast('addCabecera', { 497 $scope.$broadcast('addCabecera', {
489 label: 'Capacidad:', 498 label: 'Capacidad:',
490 valor: vehiculo.capacidad 499 valor: vehiculo.capacidad
491 }); 500 });
492 }); 501 });
493 } 502 }
494 503
495 function vehiculoEnUso(vehiculo) { 504 function vehiculoEnUso(vehiculo) {
496 var idUsuario = focaLoginSrv.getLoginData().vendedorCobrador; 505 var idUsuario = focaLoginSrv.getLoginData().vendedorCobrador;
497 for (var i = 0; i < vehiculo.cisternas.length; i++) { 506 for (var i = 0; i < vehiculo.cisternas.length; i++) {
498 for (var j = 0; j < vehiculo.cisternas[i].cisternasCarga.length; j++) { 507 for (var j = 0; j < vehiculo.cisternas[i].cisternasCarga.length; j++) {
499 var cisternaCarga = vehiculo.cisternas[i].cisternasCarga[j]; 508 var cisternaCarga = vehiculo.cisternas[i].cisternasCarga[j];
500 if (cisternaCarga.fechaReparto.substring(0, 10) === 509 if (cisternaCarga.fechaReparto.substring(0, 10) ===
501 new Date($scope.hojaRuta.fechaReparto).toISOString().substring(0, 10) && 510 new Date($scope.hojaRuta.fechaReparto).toISOString().substring(0, 10) &&
502 cisternaCarga.idUsuarioProceso && 511 cisternaCarga.idUsuarioProceso &&
503 cisternaCarga.idUsuarioProceso !== idUsuario) 512 cisternaCarga.idUsuarioProceso !== idUsuario)
504 { 513 {
505 focaModalService.alert('El vehículo está siendo usado por otro' + 514 focaModalService.alert('El vehículo está siendo usado por otro' +
506 ' usuario'); 515 ' usuario');
507 return true; 516 return true;
508 } 517 }
509 } 518 }
510 } 519 }
511 return false; 520 return false;
512 } 521 }
513 522
514 function salir() { 523 function salir() {
515 var confirmacion = false; 524 var confirmacion = false;
516 525
517 if (!angular.equals($scope.hojaRuta, $scope.inicial)) { 526 if (!angular.equals($scope.hojaRuta, $scope.inicial)) {
518 confirmacion = true; 527 confirmacion = true;
519 } 528 }
520 529
521 if (confirmacion) { 530 if (confirmacion) {
522 focaModalService.confirm( 531 focaModalService.confirm(
523 '¿Está seguro de que desea salir? Se perderán todos los datos cargados.' 532 '¿Está seguro de que desea salir? Se perderán todos los datos cargados.'
524 ).then(function(data) { 533 ).then(function(data) {
525 if (data) { 534 if (data) {
526 $location.path('/'); 535 $location.path('/');
527 } 536 }
528 }); 537 });
529 } else { 538 } else {
530 $location.path('/'); 539 $location.path('/');
531 } 540 }
532 } 541 }
533 542
534 function setearHojaRuta(hojaRuta) { 543 function setearHojaRuta(hojaRuta) {
535 $scope.$broadcast('cleanCabecera'); 544 $scope.$broadcast('cleanCabecera');
536 545
537 var cabeceras = []; 546 var cabeceras = [];
538 if (hojaRuta.fechaReparto) { 547 if (hojaRuta.fechaReparto) {
539 cabeceras.push({ 548 cabeceras.push({
540 label: 'Fecha de entrega:', 549 label: 'Fecha de entrega:',
541 valor: $filter('date')(hojaRuta.fechaReparto, 'dd/MM/yyyy') 550 valor: $filter('date')(hojaRuta.fechaReparto, 'dd/MM/yyyy')
542 }); 551 });
543 } 552 }
544 if (hojaRuta.transportista.COD) { 553 if (hojaRuta.transportista.COD) {
545 cabeceras.push({ 554 cabeceras.push({
546 label: 'Transportista:', 555 label: 'Transportista:',
547 valor: $filter('rellenarDigitos')(hojaRuta.transportista.COD, 5) + ' - ' + 556 valor: $filter('rellenarDigitos')(hojaRuta.transportista.COD, 5) + ' - ' +
548 hojaRuta.transportista.NOM 557 hojaRuta.transportista.NOM
549 }); 558 });
550 } 559 }
551 if (hojaRuta.chofer.id) { 560 if (hojaRuta.chofer.id) {
552 cabeceras.push({ 561 cabeceras.push({
553 label: 'Chofer:', 562 label: 'Chofer:',
554 valor: $filter('rellenarDigitos')(hojaRuta.chofer.id, 3) + 563 valor: $filter('rellenarDigitos')(hojaRuta.chofer.id, 3) +
555 ' - ' + hojaRuta.chofer.nombre 564 ' - ' + hojaRuta.chofer.nombre
556 }); 565 });
557 } 566 }
558 if (hojaRuta.vehiculo.id) { 567 if (hojaRuta.vehiculo.id) {
559 cabeceras.push({ 568 cabeceras.push({
560 label: 'Tractor:', 569 label: 'Tractor:',
561 valor: hojaRuta.vehiculo.tractor 570 valor: hojaRuta.vehiculo.tractor
562 }); 571 });
563 cabeceras.push({ 572 cabeceras.push({
564 label: 'Semi:', 573 label: 'Semi:',
565 valor: hojaRuta.vehiculo.semi 574 valor: hojaRuta.vehiculo.semi
566 }); 575 });
567 cabeceras.push({ 576 cabeceras.push({
568 label: 'Capacidad:', 577 label: 'Capacidad:',
569 valor: hojaRuta.vehiculo.capacidad 578 valor: hojaRuta.vehiculo.capacidad
570 }); 579 });
571 } 580 }
572 if (hojaRuta.tarifario.costo) { 581 if (hojaRuta.tarifario.costo) {
573 cabeceras.push({ 582 cabeceras.push({
574 label: 'Tarifario:', 583 label: 'Tarifario:',
575 valor: hojaRuta.tarifario.costo 584 valor: hojaRuta.tarifario.costo
576 }); 585 });
577 } 586 }
578 587
579 addArrayCabecera(cabeceras); 588 addArrayCabecera(cabeceras);
580 $scope.hojaRuta = hojaRuta; 589 $scope.hojaRuta = hojaRuta;
581 } 590 }
582 591
583 function getLSHojaRuta() { 592 function getLSHojaRuta() {
584 var hojaRuta = JSON.parse($localStorage.hojaRuta || null); 593 var hojaRuta = JSON.parse($localStorage.hojaRuta || null);
585 if (hojaRuta) { 594 if (hojaRuta) {
586 setearHojaRuta(hojaRuta); 595 setearHojaRuta(hojaRuta);
587 delete $localStorage.hojaRuta; 596 delete $localStorage.hojaRuta;
588 } 597 }
589 } 598 }
590 function addArrayCabecera(array) { 599 function addArrayCabecera(array) {
591 for(var i = 0; i < array.length; i++) { 600 for(var i = 0; i < array.length; i++) {
592 $scope.$broadcast('addCabecera', { 601 $scope.$broadcast('addCabecera', {
593 label: array[i].label, 602 label: array[i].label,
594 valor: array[i].valor 603 valor: array[i].valor
595 }); 604 });
596 } 605 }
597 } 606 }
598 } 607 }
599 ]); 608 ]);
600 609