public void Procesar(Totalizar totalizar) { var tarifa = ""; switch (Cliente.TarifaPrecio) { case OOB.LibVenta.Cliente.Enumerados.enumTarifaPrecio.Tarifa_1: tarifa = "1"; break; case OOB.LibVenta.Cliente.Enumerados.enumTarifaPrecio.Tarifa_2: tarifa = "2"; break; case OOB.LibVenta.Cliente.Enumerados.enumTarifaPrecio.Tarifa_3: tarifa = "3"; break; case OOB.LibVenta.Cliente.Enumerados.enumTarifaPrecio.Tarifa_4: tarifa = "4"; break; } var ficha = new OOB.LibVenta.Venta.Generar.Agregar() { AutoCliente = Cliente.Auto, AutoCobrador = Cobrador.Auto, AutoUsuario = Usuario.Auto, AutoVendedor = Vendedor.Auto, AutoTransporte = Transporte.Auto, ClienteCiRif = Cliente.CiRif, ClienteCodigo = Cliente.Codigo, ClienteDenominacionFiscal = Cliente.DenominacionFiscalDescripcion, ClienteDirFiscal = Cliente.DireccionFiscal, ClienteNombre = Cliente.Nombre, ClienteTarifa = tarifa, ClienteTelefono = Cliente.Telefono_1, CobradorCodigo = Cobrador.Codigo, CobradorNombre = Cobrador.Nombre, CodigoSucursal = Sucursal.Codigo, Estacion = Environment.MachineName.ToString(), FactorCambio = _factorCambioParaRecibirDivisa, MontoRecibido = 0.0m, Renglones = Renglones, UsuarioCodigo = Usuario.Codigo, UsuarioNombre = Usuario.Descripcion, VendedorCodigo = Vendedor.Codigo, VendedorNombre = Vendedor.Nombre, TransporteCodigo = Transporte.Codigo, TransporteNombre = Transporte.Nombre, CondicionPago = IsContado ? OOB.LibVenta.Venta.Enumerados.enumCondicionPago.Contado : OOB.LibVenta.Venta.Enumerados.enumCondicionPago.Credito, DiasCredito = DiasCredito, Notas = NotasDocumento, SerialFiscal = "", CondicionPagoDescripcion = IsContado ? "CONTADO":"CREDITO", DocumentoCodigo = "01", DocumentoSituacion = "Procesado", DocumentoTipo = "Ventas", DocumentoNombre = "VENTA", DocumentoSigno = 1, MesRelacion = MesRelacion, AnoRelacion = AnoRelacion, CambioDar = 0, }; var encabezado = new OOB.LibVenta.Venta.Generar.AgregarEncabezado() { AutoRemision = "", DepachadoPor = "", DireccionDespacho = DireccionDespacho, DocumentoRemision = "", FechaPedido = FechaPedido, OrdenCompra = OrdenCompraNro, Pedido = PedidoNro, Serie = "", TipoRemision = "", }; ficha.AgregarEncabezado = encabezado; foreach (Detalle dt in Items) { dt.setDescuentoGlobal(totalizar.DsctGlobal); dt.setCargoGlobal(totalizar.CargoGlobal); } var _montoDivisa = 0.0m; if (_factorCambioParaRecibirDivisa > 0) { _montoDivisa = totalizar.Total / _factorCambioParaRecibirDivisa; } var _saldoPendiente = totalizar.Total; if (IsContado) { _saldoPendiente = 0.0m; } var _ventaNeta = Items.Sum(sm => sm.VentaNeta); var _costoVenta = Items.Sum(sm => sm.CostoVenta); var _utilidad = Items.Sum(sm => sm.UtilidadMonto); var _utilidadMargen = Items.Average(sm => sm.UtilidadMargen); var totales = new OOB.LibVenta.Venta.Generar.AgregarTotal() { VentaNeta = _ventaNeta, CostoVenta = _costoVenta, Utilidad = _utilidad, UtilidadPorc = _utilidadMargen, SubTotalNeto = SubTotalNeto, DescuentoMonto_1 = totalizar.MontoDsctGlobal, DescuentoMonto_2 = 0.0m, DescuentoPorct_1 = totalizar.DsctGlobal, DescuentoPorct_2 = 0.0m, CargoMonto = totalizar.MontoCargoGlobal, CargoPorct = totalizar.CargoGlobal, SubTotal = (totalizar.Total - MontoIva), SubTotalImpuesto = MontoIva, MontoTotal = totalizar.Total, MontoBase = MontoBase, MontoImpuesto = MontoIva, MontoExento = MontoExento, MontoBase1 = MontoBaseX("1"), MontoBase2 = MontoBaseX("2"), MontoBase3 = MontoBaseX("3"), MontoImp1 = MontoIvaX("1"), MontoImp2 = MontoIvaX("2"), MontoImp3 = MontoIvaX("3"), Tasa1 = _tasasFiscales.Tasa1, Tasa2 = _tasasFiscales.Tasa2, Tasa3 = _tasasFiscales.Tasa3, MontoDivisa = _montoDivisa, SaldoPendiente = _saldoPendiente, }; ficha.AgregarTotales = totales; var cxc = new OOB.LibVenta.Venta.Generar.AgregarCxc() { AutoCliente = Cliente.Auto, AutoVendedor = Vendedor.Auto, ClienteCiRif = Cliente.CiRif, ClienteCodigo = Cliente.Codigo, ClienteNombre = Cliente.Nombre, DocumentoVentaSerie = "", DocumentoVentaTipo = "FAC", IsCancelado = IsContado?true:false, MontoAcumulado = IsContado?totalizar.Total:0.00m, MontoImporteNeto = (totalizar.Total - MontoIva), MontoImporteTotal = totalizar.Total, MontoResta = IsContado?0.00m:totalizar.Total, Notas = "", Signo = 1, }; ficha.AgregarCxc = cxc; var lmv = new List <OOB.LibVenta.Venta.Generar.AgregarKardex>(); var lapd = new List <OOB.LibVenta.Venta.Generar.AgregarActProductoDeposito>(); var lc = new List <OOB.LibVenta.Venta.Generar.AgregarCuerpo>(); foreach (Detalle dt in Items) { var mv = new OOB.LibVenta.Venta.Generar.AgregarKardex() { AutoProducto = dt.Producto.Auto, AutoConcepto = ConceptoMovInv.Auto, AutoDeposito = Deposito.Auto, Cantidad = dt.Cantidad, CantidadUnd = dt.Cantidad, CostoUndPromedio = dt.Producto.CostoPromedioUnidad, Entidad = ficha.ClienteNombre, PrecioUnd = dt.Precio.PrecioFinal, TotalCostoVenta = dt.CostoVenta, Codigo = "01", Siglas = "FAC", Signo = -1, Notas = "", Modulo = "Ventas", }; lmv.Add(mv); var apd = new OOB.LibVenta.Venta.Generar.AgregarActProductoDeposito() { AutoProducto = dt.Producto.Auto, AutoDeposito = Deposito.Auto, TotalUnd = dt.Cantidad, }; lapd.Add(apd); var reg = new OOB.LibVenta.Venta.Generar.AgregarCuerpo() { AutoDeposito = Deposito.Auto, AutoDepartamento = dt.Producto.AutoDepartamento, AutoGrupo = dt.Producto.AutoGrupo, AutoProducto = dt.Producto.Auto, AutoSubGrupo = dt.Producto.AutoSubGrupo, AutoTasaImpuesto = dt.Producto.AutoTasa, AutoCliente = Cliente.Auto, AutoVendedor = Vendedor.Auto, Cantidad = dt.Cantidad, CantidadUnd = dt.Cantidad, Categoria = dt.Producto.Categoria, CodigoPrd = dt.Producto.CodigoPrd, CostoCompraPromedio = dt.Producto.CostoPromedioUnidad, CostoPromedioUnd = dt.Producto.CostoPromedioUnidad, CostoUnd = dt.Producto.CostoUnidad, CostoVenta = dt.CostoVenta, Decimales = dt.Precio.Decimales, DescuentoMonto_1 = dt.Precio.DescuentoItemMonto, DescuentoMonto_2 = 0.0m, DescuentoMonto_3 = 0.0m, DescuentoPorc_1 = dt.Precio.DescuentoItemPorcentaje, DescuentoPorc_2 = 0.0m, DescuentoPorc_3 = 0.0m, DiasGarantia = dt.Producto.DiasGarantia, DepositoCodigo = Deposito.Codigo, DepositoDescripcion = Deposito.Nombre, Empaque = dt.Precio.DescEmpVenta, EmpaqueContenido = dt.Precio.ContEmpVenta, IsGarantia = dt.Producto.IsGarantia, IsSerial = dt.Producto.IsSerial, MontoDescuento = dt.DescuentoMontoTotal, MontoImpuesto = dt.ItemMontoIva, MontoTotal = dt.Total, NombrePrd = dt.Producto.NombrePrd, Notas = dt.Notas, PrecioFinal = dt.Precio.PrecioFinal, PrecioItem = dt.Precio.PrecioItem, PrecioNeto = dt.Precio.PrecioNeto, PrecioUnd = dt.Precio.PrecioFinal, TarifaPrecio = tarifa, TasaIva = dt.Producto.TasaImpuesto, TotalNeto = dt.Importe, TotalItem = dt.Total, UtilidadMonto = dt.UtilidadMonto, UtilidadPorc = dt.UtilidadMargen, VendedorCodigo = Vendedor.Codigo, Tipo = "01", Signo = 1, }; lc.Add(reg); } ficha.AgregarMovKardex = lmv; ficha.AgregarActProductoDeposito = lapd; ficha.AgregarCuerpo = lc; var r01 = Program.MyData.Venta_AgregarDocumento(ficha); if (r01.Result == OOB.Enumerados.EnumResult.isError) { Helpers.Msg.Error(r01.Mensaje); return; } Helpers.Msg.AgregarOk(); Notificar(); }
public VentaTotalizarFrm() { InitializeComponent(); _permisoDsctoCargoGlobal = new OOB.LibVenta.Permiso.Ficha(); _totalizar = new Totalizar(); }