Exemplo n.º 1
0
        public DocumentoVenta DocumentoVentaAnular(DocumentoVenta datosGraba)
        {
            ServiciosProductos servProductos = new ServiciosProductos();
            VentaRepository    repository    = new VentaRepository();
            DocumentoVenta     dato          = this.DocumentoVentaObtener(datosGraba.Id);

            dato.Anulado = datosGraba.Anulado;

            repository.Actualizar(dato);

            dato.Items.ToList <DocumentoVentaItem>()
            .ForEach(delegate(DocumentoVentaItem docItem)
            {
                if (docItem.IdProductoStock > 0 && docItem.IdPedidoItemProducto <= 0)
                {
                    bool?_descuentaStock = null;
                    if (dato.TipoComprobante.Id == (int)TIPOS_COMPROBANTE.NOTA_DE_PEDIDO_)
                    {
                        _descuentaStock = datosGraba.Anulado ? false : true;
                    }

                    else if (dato.TipoComprobante.Id == (int)TIPOS_COMPROBANTE.NOTA_DE_CREDITO_)
                    {
                        _descuentaStock = datosGraba.Anulado ? true : false;
                    }

                    if (_descuentaStock.HasValue)
                    {
                        servProductos.ProductoStockActualizarStock(docItem.IdProductoStock, docItem.Cantidad, _descuentaStock.Value);
                    }
                }
            });

            return(dato);
        }
Exemplo n.º 2
0
        public void DocumentoVentaAplicarRecibo(int idVenta)
        {
            VentaRepository repository = new VentaRepository();
            DocumentoVenta  recibo     = repository.Obtener(idVenta);

            DocumentoVentaList comprobantesPendientes = repository.ListarVentas(-1, -1, null, null, -1, recibo.Cliente.Id, 1);

            comprobantesPendientes.DocumentosVenta.ForEach(delegate(DocumentoVenta docNP)
            {
                if (recibo.Pendiente >= 0)
                {
                    recibo.Pendiente = recibo.Pendiente - docNP.Pendiente;

                    docNP.Pendiente = recibo.Pendiente >= 0 ? 0 : docNP.Pendiente - recibo.Pendiente;
                    repository.Actualizar(docNP);
                }
            });
            repository.Actualizar(recibo);
        }
Exemplo n.º 3
0
        public DocumentoVenta CalcularTotales(DocumentoVenta dato)
        {
            VentaRepository repository = new VentaRepository();

            dato.Gravado = 0;
            dato.Items   = this.Listar <DocumentoVentaItem>("IdVenta", dato.Id).ToList <DocumentoVentaItem>();


            dato.Items.ToList <DocumentoVentaItem>()
            .ForEach(delegate(DocumentoVentaItem item)
            {
                dato.Gravado = dato.Gravado + item.Precio;
            });

            dato.Total     = dato.Gravado - dato.Descuento;
            dato.Pendiente = dato.Total;

            repository.Actualizar(dato);

            return(this.DocumentoVentaObtener(dato.Id));
        }
Exemplo n.º 4
0
        public DocumentoVenta DocumentoVentaGrabar(DocumentoVenta datosGraba)
        {
            VentaRepository repository = new VentaRepository();
            DocumentoVenta  dato;

            int _id = datosGraba.Id;

            if (_id == -1)
            {
                dato = new DocumentoVenta();
                dato.TipoComprobante = datosGraba.TipoComprobante;
                dato.Numero          = repository.ObtenerProximoNumero(datosGraba.TipoComprobante.Id);
            }
            else
            {
                dato = repository.Obtener(_id);
            }

            dato.IdEmpresa                   = datosGraba.IdEmpresa;
            dato.Usuario                     = this.ObtenerObjeto <Cliente>(datosGraba.Usuario.Id);
            dato.Cliente                     = this.ObtenerObjeto <Cliente>(datosGraba.Cliente.Id);
            dato.IdPedido                    = datosGraba.IdPedido;
            dato.NumeroPedido                = datosGraba.NumeroPedido;
            dato.Letra                       = datosGraba.Letra;
            dato.Sucursal                    = datosGraba.Sucursal;
            dato.Fecha                       = datosGraba.Fecha;
            dato.Vencimiento                 = datosGraba.Vencimiento;
            dato.Gravado                     = datosGraba.Gravado;
            dato.Descuento                   = datosGraba.Descuento;
            dato.PorcentajeIVA               = datosGraba.PorcentajeIVA;
            dato.IVA                         = datosGraba.IVA;
            dato.Total                       = datosGraba.Total;
            dato.Pendiente                   = datosGraba.Pendiente;
            dato.Comision                    = datosGraba.Comision;
            dato.Efectivo                    = datosGraba.Efectivo;
            dato.EfectivoCotizaDolar         = datosGraba.EfectivoCotizaDolar;
            dato.Dolares                     = datosGraba.Dolares;
            dato.DolaresCotizaDolar          = datosGraba.DolaresCotizaDolar;
            dato.Euros                       = datosGraba.Euros;
            dato.EurosCotizaDolar            = datosGraba.EurosCotizaDolar;
            dato.Cheques                     = datosGraba.Cheques;
            dato.ChequesCotizaDolar          = datosGraba.ChequesCotizaDolar;
            dato.Tarjeta                     = datosGraba.Tarjeta;
            dato.TarjetaCotizaDolar          = datosGraba.TarjetaCotizaDolar;
            dato.MercadoPago                 = datosGraba.MercadoPago;
            dato.MercadoPagoCotizaDolar      = datosGraba.MercadoPagoCotizaDolar;
            dato.DepositoTransferencia       = datosGraba.DepositoTransferencia;
            dato.DepositoTransferCotizaDolar = datosGraba.DepositoTransferCotizaDolar;
            dato.RetencionIVA                = datosGraba.RetencionIVA;
            dato.RetencionGanancia           = datosGraba.RetencionGanancia;
            dato.RetencionIngBrutos          = datosGraba.RetencionIngBrutos;

            repository.Actualizar(dato);

            if (datosGraba.Observaciones != null)
            {
                datosGraba.Observaciones.IdVenta = dato.Id;
                dato.Observaciones = this.DocumentoVentaObservacionesGrabar(datosGraba.Observaciones);
            }

            if (datosGraba.Items != null && datosGraba.Items.Count > 0)
            {
                if (dato.Items == null)
                {
                    dato.Items = new List <DocumentoVentaItem>();
                }

                datosGraba.Items.ToList <DocumentoVentaItem>()
                .ForEach(delegate(DocumentoVentaItem item)
                {
                    item.IdVenta = dato.Id;
                    DocumentoVentaItem docItem = this.DocumentoVentaItemGrabar(item);

                    dato.Gravado = dato.Gravado + docItem.Precio;
                });

                dato       = this.CalcularTotales(dato);
                dato.Items = this.Listar <DocumentoVentaItem>("IdVenta", dato.Id).ToList <DocumentoVentaItem>();
            }


            return(dato);
        }