From 8f055fb560bd3fc2db2b8bf108b28f25150515b0 Mon Sep 17 00:00:00 2001 From: efernandez Date: Mon, 21 Jan 2019 12:48:41 -0300 Subject: [PATCH] =?UTF-8?q?L=C3=B3gica=20guardado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/js/controller.js | 147 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 109 insertions(+), 38 deletions(-) diff --git a/src/js/controller.js b/src/js/controller.js index a4caec9..d1e9ed5 100644 --- a/src/js/controller.js +++ b/src/js/controller.js @@ -4,62 +4,133 @@ angular.module('focaModalDetalleHojaRuta') '$filter', '$scope', '$uibModalInstance', - 'remito', + 'idRemito', 'focaModalDetalleHojaRutaService', - function($filter, $scope, $uibModalInstance, remito, focaModalDetalleHojaRutaService) { - $scope.remito = remito; + 'focaModalService', + 'focaSeguimientoService', + function($filter, $scope, $uibModalInstance, idRemito, focaModalDetalleHojaRutaService, + focaModalService, focaSeguimientoService) + { + //Seteo variables + $scope.remito = {}; $scope.cisternas = []; $scope.articuloSeleccionado = {}; + $scope.aDescargar = []; + $scope.cargando = true; + + //Datos + var promesaRemito = focaModalDetalleHojaRutaService + .getRemitoById(idRemito); + var promesaCisternas = focaModalDetalleHojaRutaService + .getCisternasByIdRemito(idRemito); + + Promise.all([promesaRemito, promesaCisternas]).then(function(res) { + $scope.cargando = false; + $scope.remito = res[0].data; + $scope.cisternas = res[1].data; + $scope.cambio($scope.remito.articulosRemito[0]); + $scope.$digest(); + }, function() { + focaModalService.alert('El servicio no responde intente más tarde'); + $uibModalInstance.dismiss(); + }); $scope.cambio = function(articulo) { + $scope.aDescargar = []; $scope.articuloSeleccionado = articulo; }; - focaModalDetalleHojaRutaService.getCisternasByIdRemito($scope.remito.id) - .then(function(res) { - $scope.cisternas = res.data; - }); - - $scope.aceptar = function() { - var articulos = articulosDescargados(); - var cisternaMovimientos = []; + $scope.descargar = function(key) { var hojaRutaMovimientos = []; - for(var i = 0; i < articulos.length; i++) { - var cisternaMovimiento = { - idRemito: $scope.remito.id, - cantidad: articulos[i].aCargar, - metodo: 'descarga' - }; - var hojaRutaMovimiento = { - idRemito: $scope.remito.id, - reciboDescarga: articulos[i].numeroRecibo + var cisternaMovimientos = []; + var cisternaCargas = []; + var totalADescargar = 0; + for (var i = 0; i < $scope.aDescargar.length; i++) { + totalADescargar += $scope.aDescargar[i] || 0; + } + if(key === 13) { + focaModalService + .confirm('¿Desea descargar ' + totalADescargar + ' litros de ' + + $scope.articuloSeleccionado.descripcion + '?') + .then(descargar); + } + function descargar() { + for (var i = 0; i < $scope.cisternas.length; i++) { + var descarga = $scope.aDescargar[i]; + if(!descarga) continue; + var cisternaCarga = $scope.cisternas[i].cisternaCarga; + cisternaCarga.cantidad -= descarga; + + //Guardar + var now = new Date(); + var cisternaMovimiento = { + fecha: now.toISOString().slice(0, 19).replace('T', ' '), + cantidad: descarga, + metodo: 'descarga', + idCisternaCarga: cisternaCarga.id, + idRemito: $scope.remito.id + }; + var hojaRutaMovimiento = { + reciboDescarga: $scope.numeroRecibo, + idRemito: $scope.remito.id + }; + delete cisternaCarga.articulo; + cisternaCargas.push(cisternaCarga); + cisternaMovimientos.push(cisternaMovimiento); + hojaRutaMovimientos.push(hojaRutaMovimiento); + } + var save = { + cisternaCargas: cisternaCargas, + cisternaMovimientos: cisternaMovimientos, + hojaRutaMovimientos: hojaRutaMovimientos }; - cisternaMovimientos.push(cisternaMovimiento); - hojaRutaMovimientos.push(hojaRutaMovimiento); + focaModalDetalleHojaRutaService + .postMovimientoHojaRuta(save) + .then(guardarSeguimiento) + .catch(error); + function guardarSeguimiento(res) { + focaSeguimientoService + .guardarPosicion( + 'Entrega de producto', + res.data[0].id, + $scope.remito.observaciones); + $scope.aDescargar = []; + $scope.remito.observaciones = ''; + success(); + } } - var result = { - cisternaMovimientos: cisternaMovimientos, - hojaRutaMovimientos: hojaRutaMovimientos, - idRemito: $scope.remito.id, - observaciones: $scope.remito.observaciones - }; - $uibModalInstance.close(result); }; $scope.cancel = function() { $uibModalInstance.dismiss('cancel'); }; - $scope.validar = function() { - return !articulosDescargados().length; + $scope.distribucionDisponible = function() { + return $scope.articuloSeleccionado.cantidadDescargada === + $scope.articuloSeleccionado.cantidad; + }; + + $scope.actualizarArticulo = function() { + $scope.articuloSeleccionado.cantidadDescargada = 0; + for(var i = 0; i < $scope.aDescargar.length; i++) { + $scope.articuloSeleccionado.cantidadDescargada += + parseFloat($scope.aDescargar[i]) || 0; + } }; - function articulosDescargados() { - var articulosDescargados = $scope.remito.articulosRemito.filter( - function(articulo) { - if(articulo.aCargar && articulo.numeroRecibo) { - return articulo; - } + $scope.rechazar = function() { + focaModalService + .prompt('Aclare el motivo de rechazo') + .then(function() { + focaModalService.alert('desarrollo'); + $uibModalInstance.dismiss(); }); - return articulosDescargados; + }; + + //funciones + function error(error) { + focaModalService.alert('Hubo un error ' + error); + } + function success() { + focaModalService.alert('Operación realizada con éxito'); } } ] -- 1.9.1