From de330bd4476fe6e1bd06130abafec44c0b080a3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s?= Date: Fri, 9 Nov 2018 20:25:09 -0300 Subject: [PATCH] falta guardar --- src/js/controller.js | 405 ++++++++++++----------------------------------- src/views/hoja-ruta.html | 15 +- 2 files changed, 107 insertions(+), 313 deletions(-) diff --git a/src/js/controller.js b/src/js/controller.js index c9ee362..608b4be 100644 --- a/src/js/controller.js +++ b/src/js/controller.js @@ -27,12 +27,15 @@ angular.module('focaCrearHojaRuta') .controller('hojaRutaCtrl', $scope.hojaRuta = { fecha: new Date(), - vendedor: {}, - cliente: {}, + litros: 0, + chofer: {}, + vehiculo: { + capacidad: 0 + }, transportista: {}, - domicilio: {dom: ''}, - moneda: {}, - cotizacion: {} + tarifario: { + costo: null + } }; $scope.cabecera = []; @@ -43,7 +46,6 @@ angular.module('focaCrearHojaRuta') .controller('hojaRutaCtrl', $scope.comprobante = '00000000'; $scope.remitosTabla = []; $scope.idLista = undefined; - $ //La pantalla solo se usa para cargar pedidos //var hojaRutaTemp = crearHojaRutaService.getHojaRuta(); @@ -190,70 +192,6 @@ angular.module('focaCrearHojaRuta') .controller('hojaRutaCtrl', ); }; - $scope.seleccionarArticulo = function() { - if ($scope.idLista === undefined) { - focaModalService.alert( - 'Primero seleccione una lista de precio y condicion'); - return; - } - var modalInstance = $uibModal.open( - { - ariaLabelledBy: 'Busqueda de Productos', - templateUrl: 'modal-busqueda-productos.html', - controller: 'modalBusquedaProductosCtrl', - resolve: { - parametroProducto: { - idLista: $scope.idLista, - cotizacion: $scope.hojaRuta.cotizacion.COTIZACION, - simbolo: $scope.hojaRuta.moneda.simbolo - } - }, - size: 'lg' - } - ); - modalInstance.result.then( - function(producto) { - var newArt = - { - id: 0, - codigo: producto.codigo, - sector: producto.sector, - sectorCodigo: producto.sector + '-' + producto.codigo, - descripcion: producto.descripcion, - item: $scope.remitosTabla.length + 1, - nombre: producto.descripcion, - precio: parseFloat(producto.precio.toFixed(4)), - costoUnitario: producto.costo, - editCantidad: false, - editPrecio: false - }; - $scope.articuloACargar = newArt; - $scope.cargando = false; - }, function() { - // funcion ejecutada cuando se cancela el modal - } - ); - }; - - $scope.seleccionarVendedor = function() { - var modalInstance = $uibModal.open( - { - ariaLabelledBy: 'Busqueda de Vendedores', - templateUrl: 'modal-vendedores.html', - controller: 'modalVendedoresCtrl', - size: 'lg' - } - ); - modalInstance.result.then( - function(vendedor) { - addCabecera('Vendedor:', vendedor.NomVen); - $scope.hojaRuta.vendedor.codigo = vendedor.CodVen; - }, function() { - - } - ); - }; - $scope.seleccionarProveedor = function() { var modalInstance = $uibModal.open( { @@ -279,293 +217,136 @@ angular.module('focaCrearHojaRuta') .controller('hojaRutaCtrl', ); }; - $scope.seleccionarCliente = function() { - + $scope.seleccionarChofer = function() { var modalInstance = $uibModal.open( { - ariaLabelledBy: 'Busqueda de Cliente', - templateUrl: 'foca-busqueda-cliente-modal.html', - controller: 'focaBusquedaClienteModalController', + ariaLabelledBy: 'Busqueda de Chofer', + templateUrl: 'modal-chofer.html', + controller: 'focaModalChoferController', size: 'lg' } ); - modalInstance.result.then( - function(cliente) { - $scope.abrirModalDomicilios(cliente); - }, function() { - - } - ); - }; - $scope.seleccionarRemito = function() { - var modalInstance = $uibModal.open( - { - ariaLabelledBy: 'Busqueda de Remito', - templateUrl: 'foca-modal-remito.html', - controller: 'focaModalRemitoController', - size: 'lg' - } - ); modalInstance.result.then( - function(remito) { - var litros = 0; - for (var i = remito.articulosRemito.length - 1; i >= 0; i--) { - litros =+ remito.articulosRemito[i].cantidad; - } - - remito.litros = litros; - $scope.remitosTabla.push(remito); - console.info($scope.remitosTabla); - - - // TODO: Implementar carga remito + function(chofer) { + $scope.hojaRuta.chofer = chofer; + addCabecera('Chofer: ' + chofer.nombre); }, function() { // funcion ejecutada cuando se cancela el modal } ); }; - $scope.abrirModalDomicilios = function(cliente) { - var modalInstanceDomicilio = $uibModal.open( - { - ariaLabelledBy: 'Busqueda de Domicilios', - templateUrl: 'modal-domicilio.html', - controller: 'focaModalDomicilioController', - resolve: { idCliente: function() { return cliente.cod; }}, - size: 'lg', - } - ); - modalInstanceDomicilio.result.then( - function(domicilio) { - $scope.hojaRuta.domicilio.id = domicilio.nivel2; - $scope.hojaRuta.cliente = cliente; - - addCabecera('Cliente:', cliente.nom); - addCabecera('Domicilio:', domicilio.Calle + ' ' + domicilio.Numero); - }, function() { - $scope.seleccionarCliente(); - return; - } - ); - }; - - $scope.mostrarFichaCliente = function() { - $uibModal.open( - { - ariaLabelledBy: 'Datos del Cliente', - templateUrl: 'foca-crear-nota-pedido-ficha-cliente.html', - controller: 'focaCrearHojaRutaFichaClienteController', - size: 'lg' - } - ); - }; - - $scope.getTotal = function() { - var total = 0; - var arrayTempArticulos = $scope.remitosTabla; - for (var i = 0; i < arrayTempArticulos.length; i++) { - total += arrayTempArticulos[i].precio * arrayTempArticulos[i].cantidad; - } - return parseFloat(total.toFixed(2)); - }; - - $scope.getSubTotal = function() { - if($scope.articuloACargar) { - return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad; - } - }; - - $scope.abrirModalListaPrecio = function() { + $scope.seleccionarVehiculo = function() { var modalInstance = $uibModal.open( { - ariaLabelledBy: 'Busqueda de Precio Condición', - templateUrl: 'modal-precio-condicion.html', - controller: 'focaModalPrecioCondicionController', + ariaLabelledBy: 'Busqueda de Vehiculo', + templateUrl: 'modal-vehiculo.html', + controller: 'focaModalVehiculoController', size: 'lg' } ); + modalInstance.result.then( - function(precioCondicion) { - var cabecera = ''; - var plazosConcat = ''; - if(!Array.isArray(precioCondicion)) { - $scope.plazosPagos = precioCondicion.plazoPago; - $scope.idLista = precioCondicion.idListaPrecio; - for(var i = 0; i < precioCondicion.plazoPago.length; i++) { - plazosConcat += precioCondicion.plazoPago[i].dias + ' '; - } - cabecera = precioCondicion.nombre + ' ' + plazosConcat.trim(); - } else { //Cuando se ingresan los plazos manualmente - $scope.idLista = -1; //-1, el modal productos busca todos los productos - $scope.plazosPagos = precioCondicion; - for(var j = 0; j < precioCondicion.length; j++) { - plazosConcat += precioCondicion[j].dias + ' '; - } - cabecera = 'Ingreso manual ' + plazosConcat.trim(); - } - $scope.remitosTabla = []; - addCabecera('Precios y condiciones:', cabecera); + function(vehiculo) { + $scope.hojaRuta.vehiculo = vehiculo; + addCabecera('Tractor: ' + vehiculo.tractor); + addCabecera('Semi: ' + vehiculo.semi); + addCabecera('Capacidad: ' + vehiculo.capacidad); }, function() { - + // funcion ejecutada cuando se cancela el modal } ); }; - $scope.abrirModalFlete = function() { + $scope.seleccionarTarifario = function() { var modalInstance = $uibModal.open( { - ariaLabelledBy: 'Busqueda de Flete', - templateUrl: 'modal-flete.html', - controller: 'focaModalFleteController', + ariaLabelledBy: 'Busqueda de Tarifario', + templateUrl: 'modal-tarifa-flete.html', + controller: 'focaModalTarifaFleteController', size: 'lg', resolve: { - parametrosFlete: - function() { - return { - flete: $scope.hojaRuta.flete ? '1' : - ($scope.hojaRuta.fob ? 'FOB' : - ($scope.hojaRuta.flete === undefined ? null : '0')), - bomba: $scope.hojaRuta.bomba ? '1' : - ($scope.hojaRuta.bomba === undefined ? null : '0'), - kilometros: $scope.hojaRuta.kilometros - }; - } - } - } - ); - modalInstance.result.then( - function(datos) { - $scope.hojaRuta.flete = datos.flete; - $scope.hojaRuta.fob = datos.FOB; - $scope.hojaRuta.bomba = datos.bomba; - $scope.hojaRuta.kilometros = datos.kilometros; - - addCabecera('Flete:', datos.flete ? 'Si' : - ($scope.hojaRuta.fob ? 'FOB' : 'No')); - if(datos.flete) { - addCabecera('Bomba:', datos.bomba ? 'Si' : 'No'); - addCabecera('Kilometros:', datos.kilometros); - } else { - removeCabecera('Bomba:'); - removeCabecera('Kilometros:'); - $scope.hojaRuta.fob = false; - $scope.hojaRuta.bomba = false; - $scope.hojaRuta.kilometros = null; + parametrosTarifaFlete: function() { + return $scope.hojaRuta.tarifario.costo; + } } - }, function() { - } ); - }; - $scope.abrirModalMoneda = function() { - var modalInstance = $uibModal.open( - { - ariaLabelledBy: 'Busqueda de Moneda', - templateUrl: 'modal-moneda.html', - controller: 'focaModalMonedaController', - size: 'lg' - } - ); modalInstance.result.then( - function(moneda) { - $scope.abrirModalCotizacion(moneda); + function(tarifario) { + $scope.hojaRuta.tarifario = tarifario; + addCabecera('Tarifario: ' + tarifario.costo); }, function() { - + // funcion ejecutada cuando se cancela el modal } ); - }; + } - $scope.abrirModalCotizacion = function(moneda) { + $scope.seleccionarRemito = function() { var modalInstance = $uibModal.open( { - ariaLabelledBy: 'Busqueda de Cotización', - templateUrl: 'modal-cotizacion.html', - controller: 'focaModalCotizacionController', - size: 'lg', - resolve: {idMoneda: function() {return moneda.ID;}} + ariaLabelledBy: 'Busqueda de Remito', + templateUrl: 'foca-modal-remito.html', + controller: 'focaModalRemitoController', + size: 'lg' } ); modalInstance.result.then( - function(cotizacion) { - var remitosTablaTemp = $scope.remitosTabla; - for(var i = 0; i < remitosTablaTemp.length; i++) { - remitosTablaTemp[i].precio = remitosTablaTemp[i].precio * - $scope.hojaRuta.cotizacion.COTIZACION; - remitosTablaTemp[i].precio = remitosTablaTemp[i].precio / - cotizacion.COTIZACION; + function(remito) { + for (var i = $scope.remitosTabla.length - 1; i >= 0; i--) { + if ($scope.remitosTabla[i].id == remito.id) { + focaModalService.alert('Remito ya incluido'); + return; + } } - $scope.remitosTabla = remitosTablaTemp; - $scope.hojaRuta.moneda = { - id: moneda.ID, - detalle: moneda.DETALLE, - simbolo: moneda.SIMBOLO - }; - $scope.hojaRuta.cotizacion = { - ID: cotizacion.ID, - COTIZACION: cotizacion.COTIZACION, - FECHA: cotizacion.FECHA - }; - addCabecera('Moneda:', moneda.DETALLE); - addCabecera( - 'Fecha cotizacion:', - $filter('date')(cotizacion.FECHA, 'dd/MM/yyyy') - ); - addCabecera('Cotizacion:', cotizacion.COTIZACION); - }, function() { - } - ); - }; + var litros = 0; + for (var i = remito.articulosRemito.length - 1; i >= 0; i--) { + litros = litros + parseFloat(remito.articulosRemito[i].cantidad); + } - $scope.agregarATabla = function(key) { - if(key === 13) { - if($scope.articuloACargar.cantidad === undefined || - $scope.articuloACargar.cantidad === 0 || - $scope.articuloACargar.cantidad === null ){ - focaModalService.alert('El valor debe ser al menos 1'); + if ($scope.hojaRuta.litros >= $scope.hojaRuta.vehiculo.capacidad) { + focaModalService.alert( + 'No se puede agregar mas recibos porque la ' + + 'capacidad del vehiculo esta llena o no esta definida' + ); return; - } - delete $scope.articuloACargar.sectorCodigo; - console.info($scope.articuloACargar); - $scope.remitosTabla.push($scope.articuloACargar); - $scope.cargando = true; - } - }; + } - $scope.quitarArticulo = function(key) { - $scope.remitosTabla.splice(key, 1); - }; + if ($scope.hojaRuta.litros + litros >= $scope.hojaRuta.vehiculo.capacidad) + { + var litrostotales = litros; + litros = $scope.hojaRuta.vehiculo.capacidad - $scope.hojaRuta.litros; + focaModalService.alert( + 'La carga excede la capacidad disponible del vehiculo. ' + + 'Excedente no cargado: ' + (litrostotales - litros) + ' litros' + ); + } - $scope.editarArticulo = function(key, articulo) { - if(key === 13) { - if(articulo.cantidad === null || articulo.cantidad === 0 || - articulo.cantidad === undefined){ - focaModalService.alert('El valor debe ser al menos 1'); - return; + remito.litros = litros; + $scope.hojaRuta.litros = $scope.hojaRuta.litros + litros; + $scope.remitosTabla.push(remito); + }, function() { + // funcion ejecutada cuando se cancela el modal } - articulo.editCantidad = false; - articulo.editPrecio = false; - } + ); }; - $scope.cambioEdit = function(articulo, propiedad) { - if(propiedad === 'cantidad') { - articulo.editCantidad = true; - } else if(propiedad === 'precio') { - articulo.editPrecio = true; + $scope.getTotal = function() { + var total = 0; + var arrayTempArticulos = $scope.remitosTabla; + for (var i = 0; i < arrayTempArticulos.length; i++) { + total += arrayTempArticulos[i].precio * arrayTempArticulos[i].cantidad; } + return parseFloat(total.toFixed(2)); }; - $scope.limpiarFlete = function() { - $scope.hojaRuta.fleteNombre = ''; - $scope.hojaRuta.chofer = ''; - $scope.hojaRuta.vehiculo = ''; - $scope.hojaRuta.kilometros = ''; - $scope.hojaRuta.costoUnitarioKmFlete = ''; - $scope.choferes = ''; - $scope.vehiculos = ''; + $scope.getSubTotal = function() { + if($scope.articuloACargar) { + return $scope.articuloACargar.precio * $scope.articuloACargar.cantidad; + } }; $scope.limpiarPantalla = function() { @@ -577,13 +358,9 @@ angular.module('focaCrearHojaRuta') .controller('hojaRutaCtrl', $scope.hojaRuta.vendedor.nombre = ''; $scope.hojaRuta.cliente = {nombre: ''}; $scope.hojaRuta.domicilio = {dom: ''}; + $scope.hojaRuta.litros = 0; $scope.domiciliosCliente = []; }; - - $scope.resetFilter = function() { - $scope.articuloACargar = {}; - $scope.cargando = true; - }; //Recibe aviso si el teclado está en uso // $rootScope.$on('usarTeclado', function(event, data) { // if(data) { @@ -618,6 +395,18 @@ angular.module('focaCrearHojaRuta') .controller('hojaRutaCtrl', return relleno; } + $scope.quitarArticulo = function(key) { + $scope.remitosTabla.splice(key, 1); + var litros = 0; + + for (var i = $scope.remitosTabla.length - 1; i >= 0; i--) { + litros += parseFloat($scope.remitosTabla[i].litros); + } + + $scope.hojaRuta.litros = litros; + + }; + function addCabecera(label, valor) { var propiedad = $filter('filter')($scope.cabecera, {label: label}, true); if(propiedad.length === 1) { diff --git a/src/views/hoja-ruta.html b/src/views/hoja-ruta.html index d65d736..60cc87c 100644 --- a/src/views/hoja-ruta.html +++ b/src/views/hoja-ruta.html @@ -91,7 +91,7 @@ Remito Cliente Dirección - Litros + Litros