From a0042a4f2efecf6ef0103967d85d9888de6b1e8f Mon Sep 17 00:00:00 2001 From: efernandez Date: Thu, 27 Dec 2018 18:04:12 -0300 Subject: [PATCH] cargar remitos confeccionar hoja ruta --- .jshintrc | 2 +- src/js/controller.js | 33 ++++++-- src/js/controllerDetalleVehiculo.js | 32 ++++++- src/js/controllerHojaRuta.js | 51 +++++++++++ src/js/service.js | 6 ++ src/views/foca-detalle-vehiculo.html | 136 ++++++++++++++++++------------ src/views/foca-logistica-pedido-ruta.html | 21 ++--- src/views/foca-modal-crear-hoja-ruta.html | 96 +++++++++++++++++++++ 8 files changed, 303 insertions(+), 74 deletions(-) create mode 100644 src/js/controllerHojaRuta.js create mode 100644 src/views/foca-modal-crear-hoja-ruta.html diff --git a/.jshintrc b/.jshintrc index af0b861..f7034ad 100644 --- a/.jshintrc +++ b/.jshintrc @@ -50,7 +50,7 @@ "undef": true, // Warn when variables are defined but never used. - "unused": true, + "unused": false, // Para que funcione en angular "predef": ["angular", "alert", "spyOn", "expect", "it", "inject", "beforeEach", "describe", "L"], diff --git a/src/js/controller.js b/src/js/controller.js index a8b2138..b7969a5 100644 --- a/src/js/controller.js +++ b/src/js/controller.js @@ -15,6 +15,7 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo $scope.idUsuario = 0; $scope.marcadores = []; $scope.vehiculos = []; + var idsRemitos = []; getSeguimiento(); $scope.arrastrando = false; $scope.general = function() { @@ -37,7 +38,7 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo }); }; - $scope.cargar = function(id, punto) { + $scope.cargar = function(idVehiculo, punto) { var idRemito = JSON.parse(punto).notaPedido.remito.id; var modalInstance = $uibModal.open( { @@ -46,12 +47,13 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo controller: 'focaDetalleVehiculo', size: 'lg', resolve: { - idVehiculo: function() {return id;}, + idVehiculo: function() {return idVehiculo;}, idRemito: function() {return idRemito;} } } ); - modalInstance.result.then(function() { + modalInstance.result.then(function(idRemito) { + idsRemitos.push(idRemito); }, function() { }); }; @@ -63,9 +65,24 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo }); }; - $scope.informacionVehiculo = function(vehiculo) { - focaModalService.alert('EN DESARROLLO : \n información del vehículo ' + - JSON.stringify(vehiculo)); + $scope.hacerHojaRuta = function(vehiculo) { + var modalInstance = $uibModal.open( + { + ariaLabelledBy: 'Creación hoja ruta', + templateUrl: 'foca-modal-crear-hoja-ruta.html', + controller: 'focaModalCrearHojaRuta', + size: 'lg', + resolve: { + idVehiculo: function() {return vehiculo.id;}, + idsRemitos: function() {return idsRemitos;} + } + } + ); + modalInstance.result.then(function() { + + }, function() { + //usar cuando se cancela el modal + }); }; $scope.arrastra = function() { @@ -123,6 +140,10 @@ angular.module('focaLogisticaPedidoRuta') .controller('focaLogisticaPedidoRutaCo focaModalService.alert('El vehiculo que intenta cargar ya ha sido cargado'); return; } + if(!vehiculo.cisternas.length) { + focaModalService.alert('El vehiculo no tiene cisternas'); + return; + } $scope.vehiculos.push(vehiculo); }, function() { // funcion ejecutada cuando se cancela el modal diff --git a/src/js/controllerDetalleVehiculo.js b/src/js/controllerDetalleVehiculo.js index a451d54..ef4079d 100644 --- a/src/js/controllerDetalleVehiculo.js +++ b/src/js/controllerDetalleVehiculo.js @@ -10,9 +10,12 @@ angular.module('focaLogisticaPedidoRuta') function($scope, $uibModalInstance, idVehiculo, idRemito, focaModalService, $filter, focaLogisticaPedidoRutaService ) { + //seteo variables $scope.articulos = []; $scope.vehiculo = {}; $scope.remito = {}; + $scope.aCargar = []; + var cisternaMovimientos = []; focaLogisticaPedidoRutaService.obtenerVehiculoById(idVehiculo).then( function(res) { $scope.vehiculo = res.data; @@ -24,9 +27,23 @@ angular.module('focaLogisticaPedidoRuta') $scope.articulos = res.data.articulosRemito; } ); - $scope.aCargar = []; $scope.aceptar = function() { - $uibModalInstance.close(); + $scope.cargando = true; + var cisternaCargas = []; + for (var i = 0; i < $scope.vehiculo.cisternas.length; i++) { + delete $scope.vehiculo.cisternas[i].cisternaCarga.articulo; + cisternaCargas.push($scope.vehiculo.cisternas[i].cisternaCarga); + } + var cisterna = { + cisternaMovimientos: cisternaMovimientos, + cisternaCargas: cisternaCargas + }; + focaLogisticaPedidoRutaService.guardarCisternas(cisterna).then(function() { + focaModalService.alert('Cisternas cargadas con éxito').then(function() { + $scope.cargando = false; + $uibModalInstance.close(idRemito); + }); + }); }; $scope.cancelar = function() { @@ -37,6 +54,7 @@ angular.module('focaLogisticaPedidoRuta') for(var i = 0; i < vehiculo.cisternas.length; i++) { var cisterna = vehiculo.cisternas[i]; var aCargar = parseFloat($scope.aCargar[i]); + //validaciones if(!aCargar) { continue; } @@ -45,6 +63,7 @@ angular.module('focaLogisticaPedidoRuta') 'cisterna ' + cisterna.codigo); return; } + //cargar if(cisterna.cisternaCarga.cantidad) { cisterna.cisternaCarga.cantidad += aCargar; }else { @@ -60,6 +79,15 @@ angular.module('focaLogisticaPedidoRuta') .cargado = true; $scope.calcularPorcentaje(cisterna); + //Guardar + var now = new Date(); + var cisternaMovimiento = { + fecha: now.toISOString().slice(0, 19).replace('T', ' '), + cantidad: aCargar, + metodo: 'carga', + idCisternaCarga: cisterna.cisternaCarga.id + }; + cisternaMovimientos.push(cisternaMovimiento); } var articuloSiguiente = $scope.articulos.filter( function(filter) { diff --git a/src/js/controllerHojaRuta.js b/src/js/controllerHojaRuta.js new file mode 100644 index 0000000..ff36068 --- /dev/null +++ b/src/js/controllerHojaRuta.js @@ -0,0 +1,51 @@ +angular.module('focaLogisticaPedidoRuta') + .controller('focaModalCrearHojaRuta', [ + '$scope', + '$uibModalInstance', + '$uibModal', + 'focaLogisticaPedidoRutaService', + 'idVehiculo', + 'idsRemitos', + function($scope, $uibModalInstance, $uibModal, focaLogisticaPedidoRutaService, + idVehiculo, idsRemitos) { + $scope.vehiculo = {}; + $scope.remitos = []; + focaLogisticaPedidoRutaService.obtenerVehiculoById(idVehiculo).then(function(res) { + $scope.vehiculo = res.data; + }); + for (var i = 0; i < idsRemitos.length; i++) { + focaLogisticaPedidoRutaService.obtenerRemitoById(idsRemitos[i]) + .then(cargarRemito); + } + function cargarRemito(res) { + $scope.remitos.push(res.data); + } + focaLogisticaPedidoRutaService.numeroHojaRuta().then(function(res) { + $scope.sucursal = res.data.sucursal; + $scope.numero = res.data.numeroHojaRuta; + }); + $scope.cancelar = function() { + $uibModalInstance.close(); + }; + $scope.aceptar = function() { + $uibModalInstance.close(); + }; + $scope.seleccionarChofer = function() { + var modalInstance = $uibModal.open( + { + ariaLabelledBy: 'Busqueda de Chofer', + templateUrl: 'modal-chofer.html', + controller: 'focaModalChoferController', + size: 'lg' + } + ); + + modalInstance.result.then( + function(chofer) { + $scope.chofer = chofer; + }, function() { + // funcion ejecutada cuando se cancela el modal + } + ); + }; + }]); \ No newline at end of file diff --git a/src/js/service.js b/src/js/service.js index 4c0196a..cfd3c19 100644 --- a/src/js/service.js +++ b/src/js/service.js @@ -11,6 +11,12 @@ angular.module('focaLogisticaPedidoRuta') }, obtenerRemitoById: function(idRemito) { return $http.get(API_ENDPOINT.URL + '/remito/obtener/' + idRemito); + }, + guardarCisternas: function(cisterna) { + return $http.post(API_ENDPOINT.URL + '/cisterna/guardar/cargar', cisterna); + }, + numeroHojaRuta: function() { + return $http.get(API_ENDPOINT.URL + '/hoja-ruta/numero-siguiente'); } }; }]); diff --git a/src/views/foca-detalle-vehiculo.html b/src/views/foca-detalle-vehiculo.html index f2901f7..f4fc3b4 100644 --- a/src/views/foca-detalle-vehiculo.html +++ b/src/views/foca-detalle-vehiculo.html @@ -1,9 +1,10 @@