From 6f0638a17d864ac5f29733d61235db9ef76308b3 Mon Sep 17 00:00:00 2001 From: efernandez Date: Fri, 2 Nov 2018 13:22:10 -0300 Subject: [PATCH] =?UTF-8?q?Precio=20de=20articulos=20se=20calcula=20por=20?= =?UTF-8?q?la=20cotizaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gulpfile.js | 2 +- src/js/controller.js | 116 +++++++++++++++++++++++++++------------------ src/views/nota-pedido.html | 4 +- 3 files changed, 73 insertions(+), 49 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 6790de3..d40c76f 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -46,7 +46,7 @@ gulp.task('uglify', ['templates'], function() { replace('"ngRoute","ui.bootstrap","focaModalVendedores","focaBusquedaProductos",'+ '"focaModalProveedor","focaBusquedaCliente","focaModalPrecioCondicion",'+ '"focaModalFlete","focaDirectivas","focaModal","focaModalDomicilio",'+ - '"angular-ladda"', ''), + '"angular-ladda","focaModalMoneda","focaModalCotizacion"', ''), gulp.dest(paths.dist) ] ); diff --git a/src/js/controller.js b/src/js/controller.js index 9bc5de5..900acd9 100644 --- a/src/js/controller.js +++ b/src/js/controller.js @@ -25,38 +25,32 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', maxDate: new Date(), minDate: new Date(2010, 0, 1) }; - $scope.crearObjetoNotaPedido = function() { - $scope.notaPedido = { - vendedor: {}, - cliente: {}, - proveedor: {}, - domicilio: {dom: ''}, - moneda: {}, - cotizacion: {} - }; - }; - //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]' - $scope.obtenerMonedaPorDefecto = function() { - crearNotaPedidoService.getCotizacionByIdMoneda(1).then(function(res) { - monedaPorDefecto = { - id: res.data[0].ID, - detalle: res.data[0].DETALLE, - simbolo: res.data[0].SIMBOLO, - cotizaciones: res.data[0].cotizaciones - }; - addCabecera('Moneda:', monedaPorDefecto.detalle); - addCabecera('Fecha cotizacion:', - new Date(monedaPorDefecto.cotizaciones[0].FECHA).toLocaleDateString()); - addCabecera('Cotizacion:', monedaPorDefecto.cotizaciones[0].COTIZACION); - $scope.notaPedido.moneda = monedaPorDefecto; - $scope.notaPedido.cotizacion.id = monedaPorDefecto.cotizaciones[0].ID; - }); + $scope.notaPedido = { + vendedor: {}, + cliente: {}, + proveedor: {}, + domicilio: {dom: ''}, + moneda: {}, + cotizacion: {} }; - var monedaPorDefecto; - $scope.crearObjetoNotaPedido(); - $scope.obtenerMonedaPorDefecto(); + //Trabajo con la cotización más reciente, por eso uso siempre la primera '[0]' + crearNotaPedidoService.getCotizacionByIdMoneda(1).then(function(res) { + monedaPorDefecto = { + id: res.data[0].ID, + detalle: res.data[0].DETALLE, + simbolo: res.data[0].SIMBOLO, + cotizaciones: res.data[0].cotizaciones + }; + addCabecera('Moneda:', monedaPorDefecto.detalle); + addCabecera('Fecha cotizacion:', + new Date(monedaPorDefecto.cotizaciones[0].FECHA).toLocaleDateString()); + addCabecera('Cotizacion:', monedaPorDefecto.cotizaciones[0].COTIZACION); + $scope.notaPedido.moneda = monedaPorDefecto; + $scope.notaPedido.cotizacion = monedaPorDefecto.cotizaciones[0]; + }); + $scope.cabecera = []; $scope.showCabecera = true; @@ -127,7 +121,7 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', } else if(!$scope.notaPedido.moneda.id) { focaModalService.alert('Ingrese Moneda'); return; - } else if(!$scope.notaPedido.cotizacion.id) { + } else if(!$scope.notaPedido.cotizacion.ID) { focaModalService.alert('Ingrese Cotización'); return; } else if(!$scope.plazosPagos) { @@ -140,7 +134,7 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', focaModalService.aler('Ingrese Domicilio'); return; } else if($scope.articulosTabla.length === 0) { - focaModalService.alert('Debe cargar almenos un articulo'); + focaModalService.alert('Debe cargar al menos un articulo'); return; } var date = new Date(); @@ -153,9 +147,9 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', idProveedor: $scope.notaPedido.proveedor.codigo, idDomicilio: $scope.notaPedido.domicilio.id, idCotizacion: $scope.notaPedido.cotizacion.id, - flete: parseInt($scope.notaPedido.flete), - fob: parseInt($scope.notaPedido.fob), - bomba: parseInt($scope.notaPedido.bomba), + flete: $scope.notaPedido.flete ? 1 : 0, + fob: $scope.notaPedido.fob ? 1 : 0, + bomba: $scope.notaPedido.bomba ? 1 : 0, kilometros: $scope.notaPedido.kilometros, total: $scope.getTotal() }; @@ -179,9 +173,21 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', crearNotaPedidoService.crearPlazosParaNotaPedido(json); } focaModalService.alert('Nota pedido creada'); - $scope.obtenerMonedaPorDefecto(); - $scope.crearObjetoNotaPedido(); $scope.cabecera = []; + addCabecera('Moneda:', $scope.notaPedido.moneda.detalle); + addCabecera( + 'Fecha cotizacion:', + $filter('date')($scope.notaPedido.cotizacion.FECHA, 'dd/MM/yyyy') + ); + addCabecera('Cotizacion:', $scope.notaPedido.cotizacion.cotizacion); + $scope.notaPedido.vendedor = {}; + $scope.notaPedido.cliente = {}; + $scope.notaPedido.proveedor = {}; + $scope.notaPedido.domicilio = {}; + $scope.notaPedido.flete = null; + $scope.notaPedido.fob = null; + $scope.notaPedido.bomba = null; + $scope.notaPedido.kilometros = null; $scope.articulosTabla = []; } ); @@ -198,7 +204,10 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', ariaLabelledBy: 'Busqueda de Productos', templateUrl: 'modal-busqueda-productos.html', controller: 'modalBusquedaProductosCtrl', - resolve: { idLista: function() { return $scope.idLista; } }, + resolve: { + idLista: function() { return $scope.idLista; }, + cotizacion: $scope.notaPedido.cotizacion.COTIZACION + }, size: 'lg' } ); @@ -393,8 +402,11 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', parametrosFlete: function() { return { - flete: $scope.notaPedido.flete, - bomba: $scope.notaPedido.bomba, + flete: $scope.notaPedido.flete ? '1' : + ($scope.notaPedido.fob ? 'FOB' : + ($scope.notaPedido.flete === undefined ? null : '0')), + bomba: $scope.notaPedido.bomba ? '1' : + ($scope.notaPedido.bomba === undefined ? null : '0'), kilometros: $scope.notaPedido.kilometros }; } @@ -408,13 +420,17 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', $scope.notaPedido.bomba = datos.bomba; $scope.notaPedido.kilometros = datos.kilometros; - addCabecera('Flete:', datos.flete); - if(datos.flete === '1') { - addCabecera('Bomba:', datos.bomba); - addCabecera('Kilometros:', datos.kilometros); + addCabecera('Flete:', datos.flete ? 'Si' : + ($scope.notaPedido.fob ? 'FOB' : 'No')); + if(datos.flete) { + addCabecera('Bomba:', datos.bomba ? 'Si' : 'No'); + addCabecera('Kilometros:', datos.kilometros ? 'Si' : 'No'); } else { removeCabecera('Bomba:'); removeCabecera('Kilometros:'); + $scope.notaPedido.fob = false; + $scope.notaPedido.bomba = false; + $scope.notaPedido.kilometros = null; } }, function() { @@ -433,7 +449,6 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', ); modalInstance.result.then( function(moneda) { - $scope.abrirModalCotizacion(moneda); }, function() { @@ -453,14 +468,23 @@ angular.module('focaCrearNotaPedido') .controller('notaPedidoCtrl', ); modalInstance.result.then( function(cotizacion) { + var articulosTablaTemp = $scope.articulosTabla; + for(var i = 0; i < articulosTablaTemp.length; i++) { + articulosTablaTemp[i].precio = articulosTablaTemp[i].precio * + $scope.notaPedido.cotizacion.COTIZACION; + articulosTablaTemp[i].precio = articulosTablaTemp[i].precio / + cotizacion.COTIZACION; + } + $scope.articulosTabla = articulosTablaTemp; $scope.notaPedido.moneda = { id: moneda.ID, detalle: moneda.DETALLE, simbolo: moneda.SIMBOLO }; $scope.notaPedido.cotizacion = { - id: cotizacion.ID, - cotizacion: cotizacion.COTIZACION + ID: cotizacion.ID, + COTIZACION: cotizacion.COTIZACION, + FECHA: cotizacion.fecha }; addCabecera('Moneda:', moneda.DETALLE); addCabecera( diff --git a/src/views/nota-pedido.html b/src/views/nota-pedido.html index 04f37d9..179e0b5 100644 --- a/src/views/nota-pedido.html +++ b/src/views/nota-pedido.html @@ -162,7 +162,7 @@ class="selectable" ng-click="idLista == -1 && cambioEdit(articulo, 'precio')" ng-hide="articulo.editPrecio" - ng-bind="articulo.precio"> + ng-bind="articulo.precio | currency: '$'"> - Cantidad Items: + Items: -- 1.9.1