Commit 8ac771f8c967ccc8640ee21e8b33df3a7a30bda6

Authored by Eric Fernandez
Exists in master

Merge branch 'develop' into 'master'

Develop

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