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); }
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); }
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)); }
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); }