businessService.js 2.68 KB
angular.module('focaCrearNotaPedido')
    .factory('notaPedidoBusinessService', [
        'crearNotaPedidoService',
        function(crearNotaPedidoService) {
        return {
            addArticulos: function(articulosNotaPedido, idNotaPedido, cotizacion) {
                for(var i = 0; i < articulosNotaPedido.length; i++) {
                    delete articulosNotaPedido[i].editCantidad;
                    delete articulosNotaPedido[i].editPrecio;
                    articulosNotaPedido[i].idNotaPedido = idNotaPedido;
                    articulosNotaPedido[i].precio = articulosNotaPedido[i].precio * cotizacion;
                    crearNotaPedidoService.crearArticulosParaNotaPedido(articulosNotaPedido[i]);
                }
            },
            addEstado: function(idNotaPedido, idVendedor) {
                var date = new Date();
                var estado = {
                    idNotaPedido: idNotaPedido,
                    fecha: new Date(date.getTime() - (date.getTimezoneOffset() * 60000))
                                        .toISOString().slice(0, 19).replace('T', ' '),
                    estado: 0,
                    idVendedor: idVendedor
                };
                crearNotaPedidoService.crearEstadoParaNotaPedido(estado);
            },
            addPuntosDescarga: function(idNotaPedido, puntosDescarga) {
                var puntos = [];

                if (puntosDescarga && puntosDescarga.length > 0) {
                    puntosDescarga.forEach(function(punto) {
                        if (puntos.articulosAgregados && puntos.articulosAgregados.length > 0) {
                            punto.articulosAgregados.forEach(function(articulo) {
                                puntos.push({
                                    idPuntoDescarga: punto.id,
                                    idNotaPedido: idNotaPedido,
                                    idProducto: articulo.id,
                                    cantidad: articulo.cantidad
                                });
                            });
                        }
                    });
                }

                return crearNotaPedidoService.crearPuntosDescarga(puntos);
            },
            calcularArticulos: function(articulos, cotizacion) {
                for(var i = 0; i < articulos.length; i++) {
                    articulos[i].precio = articulos[i].precio / cotizacion;
                }
            },
            plazoToString: function(plazos) {
                var result = '';
                for(var i = 0; i < plazos.length; i++) {
                    result += plazos[i].dias + ' ';
                }
                return result.trim();
            }
        };
    }]);