From 3b710e85b10c1988f1f58528ec5a869cf282ca15 Mon Sep 17 00:00:00 2001 From: Jose Pinto Date: Thu, 28 Feb 2019 12:12:20 -0300 Subject: [PATCH] boton pausar funcionando --- src/js/controller.js | 298 +++++++++++++++++++++++++++----------------------- src/js/service.js | 3 +- src/views/remito.html | 18 +-- 3 files changed, 174 insertions(+), 145 deletions(-) diff --git a/src/js/controller.js b/src/js/controller.js index 1d719ea..95edca9 100644 --- a/src/js/controller.js +++ b/src/js/controller.js @@ -2,9 +2,10 @@ angular.module('focaCrearRemito') .controller('remitoController', [ '$scope', '$uibModal', '$location', '$filter', 'crearRemitoService', '$timeout', 'focaModalService', 'remitoBusinessService', '$rootScope', 'focaBotoneraLateralService', + '$localStorage', function( $scope, $uibModal, $location, $filter, crearRemitoService, $timeout, focaModalService, - remitoBusinessService, $rootScope, focaBotoneraLateralService) + remitoBusinessService, $rootScope, focaBotoneraLateralService, $localStorage) { config(); @@ -27,11 +28,10 @@ angular.module('focaCrearRemito') .controller('remitoController', crearRemitoService.getCotizacionByIdMoneda(1).then(function(res) { monedaPorDefecto = res.data[0]; - $scope.remito.moneda = monedaPorDefecto; - $scope.inicial.remito.moneda = $scope.remito.moneda; - - $scope.remito.cotizacion = monedaPorDefecto.cotizaciones[0]; - $scope.inicial.remito.cotizacion = $scope.remito.cotizacion; + $scope.remito.cotizacion = Object.assign( + {moneda: monedaPorDefecto}, monedaPorDefecto.cotizaciones[0] + ); + $scope.inicial.cotizacion = $scope.remito.cotizacion; }); //SETEO BOTONERA LATERAL @@ -43,6 +43,7 @@ angular.module('focaCrearRemito') .controller('remitoController', }); init(); + $timeout(function() {getLSRemito();}); } function init() { @@ -56,14 +57,15 @@ angular.module('focaCrearRemito') .controller('remitoController', proveedor: {}, domicilio: {dom: ''}, moneda: {}, - cotizacion: {} + cotizacion: {}, + articulosRemito: [] }; $scope.notaPedido = { id: 0 }; - $scope.articulosTabla = []; + $scope.remito.articulosRemito = []; $scope.idLista = undefined; crearRemitoService.getNumeroRemito().then( @@ -77,14 +79,16 @@ angular.module('focaCrearRemito') .controller('remitoController', } ); - $scope.inicial = { - remito: angular.copy($scope.remito), - notaPedido: angular.copy($scope.notaPedido), - articulosTabla: angular.copy($scope.articulosTabla), - idLista: angular.copy($scope.idLista) - }; + $scope.inicial = angular.copy($scope.remito); } + $scope.$watch('remito', function(newValue, oldValue) { + focaBotoneraLateralService.setPausarData({ + label: 'remito', + val: newValue + }); + }, true); + $scope.seleccionarNotaPedido = function() { if(varlidarRemitoFacturado()) { var modalInstance = $uibModal.open( @@ -177,12 +181,17 @@ angular.module('focaCrearRemito') .controller('remitoController', cabeceras.push(cabeceraBomba); } + delete notaPedido.id; + $scope.remito = notaPedido; + $scope.remito.id = 0; + $scope.remito.remitoPlazo = notaPedido.notaPedidoPlazo; + for(var i = notaPedido.articulosNotaPedido.length - 1; i >= 0; i--) { notaPedido.articulosNotaPedido[i].id = 0; } - $scope.articulosTabla = notaPedido.articulosNotaPedido; - remitoBusinessService.calcularArticulos($scope.articulosTabla, + $scope.remito.articulosRemito = notaPedido.articulosNotaPedido; + remitoBusinessService.calcularArticulos($scope.remito.articulosRemito, notaPedido.cotizacion.VENDEDOR); if(notaPedido.idPrecioCondicion > 0) { @@ -191,11 +200,7 @@ angular.module('focaCrearRemito') .controller('remitoController', $scope.idLista = -1; } - delete notaPedido.id; - $scope.remito = notaPedido; - $scope.remito.id = 0; - $scope.remito.moneda = notaPedido.cotizacion.moneda; - $scope.plazosPagos = notaPedido.notaPedidoPlazo; + enableObservaciones(notaPedido.observaciones ? true : false); addArrayCabecera(cabeceras); @@ -217,93 +222,7 @@ angular.module('focaCrearRemito') .controller('remitoController', } ); modalInstance.result.then( - function(remito) { - //añado cabeceras - $scope.$broadcast('removeCabecera', 'Moneda:'); - $scope.$broadcast('removeCabecera', 'Fecha cotizacion:'); - $scope.$broadcast('removeCabecera', 'Cotizacion:'); - var cabeceras = [ - { - label: 'Moneda:', - valor: remito.cotizacion.moneda.DETALLE - }, - { - label: 'Fecha cotizacion:', - valor: $filter('date')(remito.cotizacion.FECHA, - 'dd/MM/yyyy') - }, - { - label: 'Cotizacion:', - valor: $filter('number')(remito.cotizacion.VENDEDOR, - '2') - }, - { - label: 'Cliente:', - valor: $filter('rellenarDigitos')(remito.cliente.COD, 3) + ' - ' + - remito.cliente.NOM - }, - { - label: 'Domicilio:', - valor: remito.domicilioStamp - }, - { - label: 'Vendedor:', - valor: $filter('rellenarDigitos')(remito.vendedor.NUM, 3) + - ' - ' + remito.vendedor.NOM - }, - { - label: 'Proveedor:', - valor: $filter('rellenarDigitos')(remito.proveedor.COD, 5) + - ' - ' + remito.proveedor.NOM - }, - { - label: 'Flete:', - valor: remito.fob === 1 ? 'FOB' : ( - remito.flete === 1 ? 'Si' : 'No') - }, - { - label: 'Precio condicion:', - valor: valorPrecioCondicion() + ' ' + - remitoBusinessService.plazoToString(remito.remitoPlazo) - } - ]; - function valorPrecioCondicion() { - if(remito.idPrecioCondicion > 0) { - return remito.precioCondicion.nombre; - }else { - return 'Ingreso Manual'; - } - } - - if(remito.flete === 1) { - var cabeceraBomba = { - label: 'Bomba', - valor: remito.bomba === 1 ? 'Si' : 'No' - }; - if(remito.kilometros) { - var cabeceraKilometros = { - label: 'Kilometros', - valor: remito.kilometros - }; - cabeceras.push(cabeceraKilometros); - } - cabeceras.push(cabeceraBomba); - } - $scope.articulosTabla = remito.articulosRemito; - remitoBusinessService.calcularArticulos($scope.articulosTabla, - remito.cotizacion.VENDEDOR); - if(remito.idPrecioCondicion > 0) { - $scope.idLista = remito.precioCondicion.idListaPrecio; - }else { - $scope.idLista = -1; - } - $scope.puntoVenta = rellenar(remito.sucursal, 4); - $scope.comprobante = rellenar(remito.numeroRemito, 8); - $scope.remito = remito; - $scope.remito.moneda = remito.cotizacion.moneda; - $scope.plazosPagos = remito.remitoPlazo; - addArrayCabecera(cabeceras); - }, function() { + setearRemito, function() { // funcion ejecutada cuando se cancela el modal } ); @@ -320,7 +239,7 @@ angular.module('focaCrearRemito') .controller('remitoController', }else if(!$scope.remito.proveedor) { focaModalService.alert('Ingrese Proveedor'); return; - }else if(!$scope.remito.moneda.id && !$scope.remito.moneda.ID) { + }else if(!$scope.remito.cotizacion.moneda.id && !$scope.remito.cotizacion.moneda.ID) { focaModalService.alert('Ingrese Moneda'); return; }else if(!$scope.remito.cotizacion.ID) { @@ -331,7 +250,7 @@ angular.module('focaCrearRemito') .controller('remitoController', { focaModalService.alert('Ingrese Flete'); return; - }else if($scope.articulosTabla.length === 0) { + }else if($scope.remito.articulosRemito.length === 0) { focaModalService.alert('Debe cargar al menos un articulo'); return; } @@ -386,7 +305,7 @@ angular.module('focaCrearRemito') .controller('remitoController', crearRemitoService.crearRemito(save).then( function(data) { - remitoBusinessService.addArticulos($scope.articulosTabla, + remitoBusinessService.addArticulos($scope.remito.articulosRemito, data.data.id, $scope.remito.cotizacion.COTIZACION); focaBotoneraLateralService.endGuardar(true); @@ -394,8 +313,7 @@ angular.module('focaCrearRemito') .controller('remitoController', //TODO: updatear plazos if($scope.remito.id === 0) { - $scope.remito.id = data.data.id; - var plazos = $scope.plazosPagos; + var plazos = $scope.remito.remitoPlazo; for(var j = 0; j < plazos.length; j++) { var json = { @@ -442,7 +360,7 @@ angular.module('focaCrearRemito') .controller('remitoController', parametroProducto: { idLista: $scope.idLista, cotizacion: $scope.remito.cotizacion.COTIZACION, - simbolo: $scope.remito.moneda.simbolo + simbolo: $scope.remito.cotizacion.moneda.simbolo } }, size: 'lg' @@ -457,7 +375,7 @@ angular.module('focaCrearRemito') .controller('remitoController', sector: producto.sector, sectorCodigo: producto.sector + '-' + producto.codigo, descripcion: producto.descripcion, - item: $scope.articulosTabla.length + 1, + item: $scope.remito.articulosRemito.length + 1, nombre: producto.descripcion, precio: parseFloat(producto.precio.toFixed(4)), costoUnitario: producto.costo, @@ -496,7 +414,7 @@ angular.module('focaCrearRemito') .controller('remitoController', filters: { idDomicilio: $scope.remito.domicilio.id, idCliente: $scope.remito.cliente.COD, - articulos: $scope.articulosTabla, + articulos: $scope.remito.articulosRemito, puntosDescarga: $scope.remito.domicilio.puntosDescarga } } @@ -553,7 +471,7 @@ angular.module('focaCrearRemito') .controller('remitoController', vendedor.NOM }); $scope.remito.idVendedor = vendedor.id; - $scope.vendedor = vendedor; + $scope.remito.vendedor = vendedor; }, function() { } @@ -589,7 +507,9 @@ angular.module('focaCrearRemito') .controller('remitoController', }; focaModalService.modal(parametrosModal).then( function(proveedor) { + $scope.remito.proveedor = proveedor; $scope.remito.idProveedor = proveedor.COD; + $scope.$broadcast('addCabecera',{ label: 'Proveedor:', valor: $filter('rellenarDigitos')(proveedor.COD, 5) + ' - ' + @@ -603,7 +523,7 @@ angular.module('focaCrearRemito') .controller('remitoController', }; $scope.seleccionarCliente = function() { - if(!$scope.vendedor) { + if(!$scope.remito.vendedor) { focaModalService.alert('Primero seleccione un vendedor'); return; } @@ -615,7 +535,7 @@ angular.module('focaCrearRemito') .controller('remitoController', templateUrl: 'foca-busqueda-cliente-modal.html', controller: 'focaBusquedaClienteModalController', resolve: { - vendedor: function() { return $scope.vendedor; } + vendedor: function() { return $scope.remito.vendedor; } }, size: 'lg' } @@ -699,7 +619,7 @@ angular.module('focaCrearRemito') .controller('remitoController', $scope.getTotal = function() { var total = 0; - var arrayTempArticulos = $scope.articulosTabla; + var arrayTempArticulos = $scope.remito.articulosRemito; for(var i = 0; i < arrayTempArticulos.length; i++) { total += arrayTempArticulos[i].precio * arrayTempArticulos[i].cantidad; } @@ -728,7 +648,7 @@ angular.module('focaCrearRemito') .controller('remitoController', var plazosConcat = ''; if(!Array.isArray(precioCondicion)) { $scope.remito.idPrecioCondicion = precioCondicion.id; - $scope.plazosPagos = precioCondicion.plazoPago; + $scope.remito.remitoPlazo = precioCondicion.plazoPago; $scope.idLista = precioCondicion.idListaPrecio; for(var i = 0; i < precioCondicion.plazoPago.length; i++) { plazosConcat += precioCondicion.plazoPago[i].dias + ' '; @@ -739,17 +659,19 @@ angular.module('focaCrearRemito') .controller('remitoController', $scope.remito.idPrecioCondicion = 0; //-1, el modal productos busca todos los productos $scope.idLista = -1; - $scope.plazosPagos = precioCondicion; + $scope.remito.remitoPlazo = precioCondicion; for(var j = 0; j < precioCondicion.length; j++) { plazosConcat += precioCondicion[j].dias + ' '; } cabecera = 'Ingreso manual ' + plazosConcat.trim(); } - $scope.articulosTabla = []; + $scope.remito.articulosRemito = []; $scope.$broadcast('addCabecera',{ label: 'Precios y condiciones:', valor: cabecera }); + + $scope.remito.precioCondicion = precioCondicion; }, function() { } @@ -861,15 +783,15 @@ angular.module('focaCrearRemito') .controller('remitoController', ); modalInstance.result.then( function(cotizacion) { - var articulosTablaTemp = $scope.articulosTabla; + var articulosTablaTemp = $scope.remito.articulosRemito; for(var i = 0; i < articulosTablaTemp.length; i++) { articulosTablaTemp[i].precio = articulosTablaTemp[i].precio * $scope.remito.cotizacion.COTIZACION; articulosTablaTemp[i].precio = articulosTablaTemp[i].precio / cotizacion.COTIZACION; } - $scope.articulosTabla = articulosTablaTemp; - $scope.remito.moneda = moneda; + $scope.remito.articulosRemito = articulosTablaTemp; + $scope.remito.cotizacion.moneda = moneda; $scope.remito.cotizacion = cotizacion; if(moneda.DETALLE === 'PESOS ARGENTINOS') { $scope.$broadcast('removeCabecera', 'Moneda:'); @@ -904,13 +826,13 @@ angular.module('focaCrearRemito') .controller('remitoController', return; } delete $scope.articuloACargar.sectorCodigo; - $scope.articulosTabla.push($scope.articuloACargar); + $scope.remito.articulosRemito.push($scope.articuloACargar); $scope.cargando = true; } }; $scope.quitarArticulo = function(key) { - $scope.articulosTabla.splice(key, 1); + $scope.remito.articulosRemito.splice(key, 1); }; $scope.editarArticulo = function(key, articulo) { @@ -948,7 +870,7 @@ angular.module('focaCrearRemito') .controller('remitoController', $scope.remito.flete = '0'; $scope.remito.bomba = '0'; $scope.remito.precioCondicion = ''; - $scope.articulosTabla = []; + $scope.remito.articulosRemito = []; $scope.remito.vendedor.nombre = ''; $scope.remito.cliente = {nombre: ''}; $scope.remito.domicilio = {dom: ''}; @@ -1006,11 +928,9 @@ angular.module('focaCrearRemito') .controller('remitoController', function salir() { var confirmacion = false; - angular.forEach($scope.inicial, function(valor, key) { - if (!angular.equals($scope[key], $scope.inicial[key])) { - confirmacion = true; - } - }); + if (!angular.equals($scope.remito, $scope.inicial)) { + confirmacion = true; + } if (confirmacion) { focaModalService.confirm( @@ -1031,6 +951,114 @@ angular.module('focaCrearRemito') .controller('remitoController', }); boton[0].disable = !val; - } + } + + function setearRemito(remito) { + //añado cabeceras + $scope.$broadcast('removeCabecera', 'Moneda:'); + $scope.$broadcast('removeCabecera', 'Fecha cotizacion:'); + $scope.$broadcast('removeCabecera', 'Cotizacion:'); + + var cabeceras = []; + + if (remito.cotizacion) { + cabeceras.push({ + label: 'Moneda:', + valor: remito.cotizacion.moneda.DETALLE + }); + cabeceras.push({ + label: 'Fecha cotizacion:', + valor: $filter('date')(remito.cotizacion.FECHA, + 'dd/MM/yyyy') + }); + cabeceras.push({ + label: 'Cotizacion:', + valor: $filter('number')(remito.cotizacion.VENDEDOR, + '2') + }); + } + if (remito.cliente.COD){ + cabeceras.push({ + label: 'Cliente:', + valor: $filter('rellenarDigitos')(remito.cliente.COD, 3) + ' - ' + + remito.cliente.NOM + }); + cabeceras.push({ + label: 'Domicilio:', + valor: remito.domicilioStamp + }); + } + if (remito.vendedor.NUM) { + cabeceras.push({ + label: 'Vendedor:', + valor: $filter('rellenarDigitos')(remito.vendedor.NUM, 3) + + ' - ' + remito.vendedor.NOM + }); + } + if (remito.proveedor.COD) { + cabeceras.push({ + label: 'Proveedor:', + valor: $filter('rellenarDigitos')(remito.proveedor.COD, 5) + + ' - ' + remito.proveedor.NOM + }); + } + if (remito.flete !== undefined) { + cabeceras.push({ + label: 'Flete:', + valor: remito.fob === 1 ? 'FOB' : ( + remito.flete === 1 ? 'Si' : 'No') + }); + } + if (remito.remitoPlazo) { + cabeceras.push({ + label: 'Precio condicion:', + valor: valorPrecioCondicion() + ' ' + + remitoBusinessService.plazoToString(remito.remitoPlazo) + }); + } + + function valorPrecioCondicion() { + if (remito.idPrecioCondicion > 0) { + return remito.precioCondicion.nombre; + } else { + return 'Ingreso Manual'; + } + } + + if (remito.flete === 1) { + var cabeceraBomba = { + label: 'Bomba', + valor: remito.bomba === 1 ? 'Si' : 'No' + }; + if (remito.kilometros) { + var cabeceraKilometros = { + label: 'Kilometros', + valor: remito.kilometros + }; + cabeceras.push(cabeceraKilometros); + } + cabeceras.push(cabeceraBomba); + } + $scope.remito.articulosRemito = remito.articulosRemito; + remitoBusinessService.calcularArticulos($scope.remito.articulosRemito, + remito.cotizacion.VENDEDOR); + if (remito.idPrecioCondicion > 0) { + $scope.idLista = remito.precioCondicion.idListaPrecio; + } else { + $scope.idLista = -1; + } + $scope.puntoVenta = rellenar(remito.sucursal, 4); + $scope.comprobante = rellenar(remito.numeroRemito, 8); + $scope.remito = remito; + addArrayCabecera(cabeceras); + } + + function getLSRemito() { + var remito = JSON.parse($localStorage.remito || null); + if (remito) { + setearRemito(remito); + delete $localStorage.remito; + } + } } ]); diff --git a/src/js/service.js b/src/js/service.js index 3ecbe43..e173696 100644 --- a/src/js/service.js +++ b/src/js/service.js @@ -1,5 +1,6 @@ angular.module('focaCrearRemito') - .service('crearRemitoService', ['$http', 'API_ENDPOINT', function($http, API_ENDPOINT) { + .service('crearRemitoService', ['$http', 'API_ENDPOINT', + function($http, API_ENDPOINT) { var route = API_ENDPOINT.URL; return { crearRemito: function(remito) { diff --git a/src/views/remito.html b/src/views/remito.html index 9f45d51..65ac809 100644 --- a/src/views/remito.html +++ b/src/views/remito.html @@ -47,8 +47,8 @@ @@ -117,7 +117,7 @@ Items: - +

Total:

@@ -227,8 +227,8 @@
@@ -296,7 +296,7 @@
@@ -347,7 +347,7 @@