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 OOB.ResultadoAuto Venta_AgregarDocumento(OOB.LibVenta.Venta.Generar.Agregar ficha) { var result = new OOB.ResultadoAuto(); var f = ficha; var fichaDTO = new DtoLibVenta.Venta.Agregar() { AutoCliente = f.AutoCliente, AutoCobrador = f.AutoCobrador, AutoUsuario = f.AutoUsuario, AutoVendedor = f.AutoVendedor, AutoTransporte = f.AutoTransporte, ClienteCiRif = f.ClienteCiRif, ClienteCodigo = f.ClienteCodigo, ClienteDenominacionFiscal = f.ClienteDenominacionFiscal, ClienteDirFiscal = f.ClienteDirFiscal, ClienteNombre = f.ClienteNombre, ClienteTarifa = f.ClienteTarifa, ClienteTelefono = f.ClienteTelefono, CobradorCodigo = f.CobradorCodigo, CobradorNombre = f.CobradorNombre, CodigoSucursal = f.CodigoSucursal, Estacion = f.Estacion, FactorCambio = f.FactorCambio, MontoRecibido = f.MontoRecibido, Renglones = f.Renglones, UsuarioCodigo = f.UsuarioCodigo, UsuarioNombre = f.UsuarioNombre, VendedorCodigo = f.VendedorCodigo, VendedorNombre = f.VendedorNombre, TransporteCodigo = f.TransporteCodigo, TransporteNombre = f.TransporteNombre, CondicionPago = (DtoLibVenta.Venta.Enumerados.enumCondicionPago)f.CondicionPago, DiasCredito = f.DiasCredito, Notas = f.Notas, SerialFiscal = f.SerialFiscal, CambioDar = f.CambioDar, CondicionPagoDescripcion = f.CondicionPagoDescripcion, DocumentoCodigo = f.DocumentoCodigo, DocumentoSituacion = f.DocumentoSituacion, DocumentoTipo = f.DocumentoTipo, DocumentoNombre = f.DocumentoNombre, DocumentoSigno = f.DocumentoSigno, MesRelacion = f.MesRelacion, AnoRelacion = f.AnoRelacion, }; var e = ficha.AgregarEncabezado; var encabezado = new DtoLibVenta.Venta.AgregarEncabezado() { AutoRemision = e.AutoRemision, DepachadoPor = e.DepachadoPor, DireccionDespacho = e.DireccionDespacho, DocumentoRemision = e.DocumentoRemision, FechaPedido = e.FechaPedido, OrdenCompra = e.OrdenCompra, Pedido = e.Pedido, Serie = e.Serie, TipoRemision = e.TipoRemision, }; fichaDTO.AgregarEncabezado = encabezado; var t = ficha.AgregarTotales; var totales = new DtoLibVenta.Venta.AgregarTotal() { VentaNeta = t.VentaNeta, CostoVenta = t.CostoVenta, Utilidad = t.Utilidad, UtilidadPorc = t.UtilidadPorc, SubTotalNeto = t.SubTotalNeto, DescuentoMonto_1 = t.DescuentoMonto_1, DescuentoMonto_2 = t.DescuentoMonto_2, DescuentoPorct_1 = t.DescuentoPorct_1, DescuentoPorct_2 = t.DescuentoPorct_2, CargoMonto = t.CargoMonto, CargoPorct = t.CargoPorct, SubTotal = t.SubTotal, SubTotalImpuesto = t.SubTotalImpuesto, MontoTotal = t.MontoTotal, MontoBase = t.MontoBase, MontoImpuesto = t.MontoImpuesto, MontoExento = t.MontoExento, MontoBase1 = t.MontoBase1, MontoBase2 = t.MontoBase2, MontoBase3 = t.MontoBase3, MontoImp1 = t.MontoImp1, MontoImp2 = t.MontoImp2, MontoImp3 = t.MontoImp3, Tasa1 = t.Tasa1, Tasa2 = t.Tasa2, Tasa3 = t.Tasa3, MontoDivisa = t.MontoDivisa, SaldoPendiente = t.SaldoPendiente, }; fichaDTO.AgregarTotales = totales; var cx = ficha.AgregarCxc; var cxc = new DtoLibVenta.Venta.AgregarCxc() { AutoCliente = cx.AutoCliente, AutoVendedor = cx.AutoVendedor, ClienteCiRif = cx.ClienteCiRif, ClienteCodigo = cx.ClienteCodigo, ClienteNombre = cx.ClienteNombre, DocumentoVentaSerie = cx.DocumentoVentaSerie, DocumentoVentaTipo = cx.DocumentoVentaTipo, IsCancelado = cx.IsCancelado, MontoAcumulado = cx.MontoAcumulado, MontoImporteNeto = cx.MontoImporteNeto, MontoImporteTotal = cx.MontoImporteTotal, MontoResta = cx.MontoResta, Notas = cx.Notas, Signo = cx.Signo, }; fichaDTO.AgregarCxc = cxc; if (ficha.AgregarCuerpo != null && ficha.AgregarCuerpo.Count > 0) { var lc = ficha.AgregarCuerpo.Select(c => { return(new DtoLibVenta.Venta.AgregarCuerpo() { AutoDepartamento = c.AutoDepartamento, AutoGrupo = c.AutoGrupo, AutoProducto = c.AutoProducto, AutoSubGrupo = c.AutoSubGrupo, AutoTasaImpuesto = c.AutoTasaImpuesto, AutoCliente = c.AutoCliente, AutoDeposito = c.AutoDeposito, AutoVendedor = c.AutoVendedor, Cantidad = c.Cantidad, CantidadUnd = c.CantidadUnd, Categoria = c.Categoria, CodigoPrd = c.CodigoPrd, CostoPromedioCompra = c.CostoCompraPromedio, CostoPromedioUnd = c.CostoPromedioUnd, CostoUnd = c.CostoUnd, CostoVenta = c.CostoVenta, Decimales = c.Decimales, DepositoCodigo = c.DepositoCodigo, DepositoDescripcion = c.DepositoDescripcion, DescuentoMonto_1 = c.DescuentoMonto_1, DescuentoMonto_2 = c.DescuentoMonto_2, DescuentoMonto_3 = c.DescuentoMonto_3, DescuentoPorc_1 = c.DescuentoPorc_1, DescuentoPorc_2 = c.DescuentoPorc_2, DescuentoPorc_3 = c.DescuentoPorc_3, DiasGarantia = c.DiasGarantia, Empaque = c.Empaque, EmpaqueContenido = c.EmpaqueContenido, IsGarantia = c.IsGarantia, IsSerial = c.IsSerial, MontoDescuento = c.MontoDescuento, MontoImpuesto = c.MontoImpuesto, MontoTotal = c.MontoTotal, NombrePrd = c.NombrePrd, Notas = c.Notas, PrecioFinal = c.PrecioFinal, PrecioItem = c.PrecioItem, PrecioNeto = c.PrecioNeto, PrecioUnd = c.PrecioUnd, Signo = c.Signo, TarifaPrecio = c.TarifaPrecio, TasaIva = c.TasaIva, Tipo = c.Tipo, TotalItem = c.TotalItem, TotalNeto = c.TotalNeto, UtilidadMonto = c.UtilidadMonto, UtilidadPorc = c.UtilidadPorc, VendedorCodigo = c.VendedorCodigo, }); }).ToList(); fichaDTO.AgregarCuerpo = lc; } if (ficha.AgregarMovKardex != null && ficha.AgregarMovKardex.Count > 0) { var lmk = ficha.AgregarMovKardex.Select(mk => { return(new DtoLibVenta.Venta.AgregarKardex() { AutoConcepto = mk.AutoConcepto, AutoDeposito = mk.AutoDeposito, AutoProducto = mk.AutoProducto, Cantidad = mk.Cantidad, CantidadUnd = mk.CantidadUnd, Codigo = mk.Codigo, CostoPromedioUnd = mk.CostoUndPromedio, Entidad = mk.Entidad, Modulo = mk.Modulo, Notas = mk.Notas, PrecioUnd = mk.PrecioUnd, Siglas = mk.Siglas, Signo = mk.Signo, TotalCostoVenta = mk.TotalCostoVenta, }); }).ToList(); fichaDTO.AgregarKardex = lmk; } if (ficha.AgregarActProductoDeposito != null && ficha.AgregarActProductoDeposito.Count > 0) { var lmd = ficha.AgregarActProductoDeposito.Select(md => { return(new DtoLibVenta.Venta.AgregarActProductoDeposito() { AutoDeposito = md.AutoDeposito, AutoProducto = md.AutoProducto, TotalUnd = md.TotalUnd, }); }).ToList(); fichaDTO.AgregarActProductoDeposito = lmd; } var r01 = MyData.VentaAgregar(fichaDTO); if (r01.Result == DtoLib.Enumerados.EnumResult.isError) { result.Mensaje = r01.Mensaje; result.Result = OOB.Enumerados.EnumResult.isError; return(result); } return(result); }