diff --git a/src/js/businessService.js b/src/js/businessService.js index a4f1bab..6dc529f 100644 --- a/src/js/businessService.js +++ b/src/js/businessService.js @@ -1,25 +1,27 @@ angular.module('focaCrearRemito') - .factory('remitoBusinessService', [ - 'crearRemitoService', - function(crearRemitoService) { + .factory('remitoBusinessService', ['crearRemitoService', 'focaModalService', + function(crearRemitoService, focaModalService) { return { - addArticulos: function(articulosRemito, idRemito, cotizacion) { + quitarCotizacion: function(articulosRemito, cotizacion) { + for(var i = 0; i < articulosRemito.length; i++) { + delete articulosRemito[i].editCantidad; delete articulosRemito[i].editPrecio; - articulosRemito[i].idRemito = articulosRemito[i].idRemito !== -1 ? - idRemito : articulosRemito[i].idRemito; - articulosRemito[i].precio = articulosRemito[i].precio * cotizacion; delete articulosRemito[i].idNotaPedido; - crearRemitoService.crearArticulosParaRemito(articulosRemito[i]); + + articulosRemito[i].precio = articulosRemito[i].precio * cotizacion; } + + return articulosRemito; + }, addEstado: function(idRemito, idVendedor) { var date = new Date(); var estado = { idRemito: idRemito, fecha: new Date(date.getTime() - (date.getTimezoneOffset() * 60000)) - .toISOString().slice(0, 19).replace('T', ' '), + .toISOString().slice(0, 19).replace('T', ' '), estado: 0, idVendedor: idVendedor }; @@ -37,18 +39,45 @@ angular.module('focaCrearRemito') } return result.trim(); }, - addPuntosDescarga: function(idRemito, puntosDescarga) { + addPuntosDescarga: function(puntosDescarga) { var puntos = []; puntosDescarga.forEach(function(punto) { puntos.push({ idPuntoDescarga: punto.puntoDescarga.id, - idRemito: idRemito, }); }); - return crearRemitoService.crearPuntosDescarga(puntos); + return puntos; + }, + validarRemito: function (remito, articulos) { + + if (!remito.vendedor.NUM) { + focaModalService.alert('Ingrese Vendedor'); + return false; + } else if (!remito.cliente.COD) { + focaModalService.alert('Ingrese Cliente'); + return false; + } else if (!remito.proveedor.COD) { + focaModalService.alert('Ingrese Proveedor'); + return false; + } else if (!remito.cotizacion.moneda.id && + !remito.cotizacion.moneda.ID) { + focaModalService.alert('Ingrese Moneda'); + return false; + } else if (!remito.cotizacion.ID) { + focaModalService.alert('Ingrese Cotización'); + return false; + } else if (remito.flete === undefined || remito.flete === null) { + focaModalService.alert('Ingrese Flete'); + return false; + } else if (articulos.length === 0) { + focaModalService.alert('Debe cargar al menos un articulo'); + return false; + } + + return true; } }; }]); diff --git a/src/js/controller.js b/src/js/controller.js index b7c55ca..931a9c7 100644 --- a/src/js/controller.js +++ b/src/js/controller.js @@ -285,27 +285,9 @@ angular.module('focaCrearRemito').controller('remitoController', }; //validacion por domicilio y por plazo pago $scope.crearRemito = function () { - if (!$scope.remito.vendedor.NUM) { - focaModalService.alert('Ingrese Vendedor'); - return; - } else if (!$scope.remito.cliente.COD) { - focaModalService.alert('Ingrese Cliente'); - return; - } else if (!$scope.remito.proveedor.COD) { - focaModalService.alert('Ingrese Proveedor'); - return; - } else if (!$scope.remito.cotizacion.moneda.id && - !$scope.remito.cotizacion.moneda.ID) { - focaModalService.alert('Ingrese Moneda'); - return; - } else if (!$scope.remito.cotizacion.ID) { - focaModalService.alert('Ingrese Cotización'); - return; - } else if ($scope.remito.flete === undefined || $scope.remito.flete === null) { - focaModalService.alert('Ingrese Flete'); - return; - } else if ($scope.articulosFiltro().length === 0) { - focaModalService.alert('Debe cargar al menos un articulo'); + + if (!remitoBusinessService.validarRemito($scope.remito, $scope.articulosFiltro())) + { return; } @@ -358,7 +340,12 @@ angular.module('focaCrearRemito').controller('remitoController', destinoVenta: 0,//TODO operacionTipo: 0, //TODO }, - notaPedido: $scope.notaPedido + notaPedido: $scope.notaPedido, + articulos: remitoBusinessService.quitarCotizacion($scope.articulosFiltro(), + $scope.remito.cotizacion.VENDEDOR), + puntosDescarga: remitoBusinessService.addPuntosDescarga( + $scope.remito.remitoPuntoDescarga), + plazos: $scope.remito.remitoPlazo }; crearRemitoService.crearRemito(save).then( function (data) { @@ -366,39 +353,16 @@ angular.module('focaCrearRemito').controller('remitoController', focaBotoneraLateralService.endGuardar(true); $scope.saveLoading = false; - $scope.remito.numeroRemito = data.data.numero; - - if ($scope.remito.remitoPuntoDescarga.length > 0) { - remitoBusinessService.addPuntosDescarga(data.data.id, - $scope.remito.remitoPuntoDescarga); - } - if (data.status === 500) { focaModalService.alert(data.data); return; } - // TODO: updatear plazos - if ($scope.remito.id === 0) { - - remitoBusinessService.addArticulos($scope.remito.articulosRemito, - data.data.id, $scope.remito.cotizacion.VENDEDOR); - - var plazos = $scope.remito.remitoPlazo; - - for (var j = 0; j < plazos.length; j++) { - var json = { - idRemito: data.data.id, - dias: plazos[j].dias - }; - crearRemitoService.crearPlazosParaRemito(json); - } - } abrirModalMail(data.data.id, $scope.remito.cliente, $filter('comprobante')([ $scope.puntoVenta, - $scope.remito.numeroRemito + data.data.numero ]) ); @@ -675,15 +639,6 @@ angular.module('focaCrearRemito').controller('remitoController', if (domicilio.verPuntos) { delete $scope.remito.domicilio.verPuntos; $scope.seleccionarPuntosDeDescarga(); - } else { - crearRemitoService - .getPuntosDescargaByClienDom(domicilio.id, - $scope.remito.cliente.COD) - .then(function (res) { - if (res.data.length) { - $scope.seleccionarPuntosDeDescarga(); - } - }); } $filter('filter')($scope.botonera,