Beispiel #1
0
 public IActionResult Guardar([FromBody] EncabFacturaVenta factura, string Emp)
 {
     factura.CoUsIn = "999";
     factura.FeUsIn = DateTime.Now;
     resultado      = metodo.Guardar(factura, Emp);
     if (resultado.Status == "OK")
     {
         return(Ok(resultado));
     }
     else
     {
         return(BadRequest(resultado));
     }
 }
Beispiel #2
0
        public IActionResult Guardar([FromBody] EncabFacturaVenta factura, string Emp)
        {
            factura.CoUsIn = string.IsNullOrEmpty(factura.CoUsIn) ? "999" : factura.CoUsIn;
            factura.FeUsIn = DateTime.Now;
            factura.CoUsMo = string.Empty;
            factura.FeUsMo = Convert.ToDateTime("01/01/1900");
            factura.CoUsEl = string.Empty;
            factura.FeUsEl = Convert.ToDateTime("01/01/1900");

            resultado = metodo.Save(factura, Emp);
            if (resultado.Status == "OK")
            {
                return(Ok(resultado));
            }
            else
            {
                return(BadRequest(resultado));
            }
        }
Beispiel #3
0
        private void ValidarDatos(EncabFacturaVenta obj, string empresaDB)
        {
            #region Verificar sucursal
            SaSucursal sucu = new SucursalesRepositorio().Find(obj.CoSucuIn, empresaDB);
            if (sucu == null)
            {
                throw new ArgumentException($"La sucursal {obj.CoSucuIn} no existe.");
            }
            #endregion

            #region Verificar cliente
            SaCliente cliente = new ClientesRepositorio().Find(obj.CoCli, empresaDB);
            if (cliente == null)
            {
                throw new ArgumentException($"El cliente {obj.CoCli} no existe.");
            }
            #endregion

            #region Verificar transporte
            SaTransporte transporte = new TransportesRepositorio().Find(obj.CoTran, empresaDB);
            if (transporte == null)
            {
                throw new ArgumentException($"El transporte {obj.CoTran} no existe.");
            }
            #endregion

            #region Verificar forma de pago
            SaCondicionPago condicion = new CondicionesPagosRepositorio().Find(obj.CoCond, empresaDB);
            if (condicion == null)
            {
                throw new ArgumentException($"La forma de pago {obj.CoCond} no existe.");
            }
            #endregion

            #region Verificar moneda
            utilitarios.GetMoneda(obj.CoMone, empresaDB);
            #endregion

            #region Verificar datos en renglones
            foreach (var iRengFac in obj.DetaFacturaVenta)
            {
                #region Verificar articulo
                SaArticulo articulo = new ArticulosRepositorio().Find(iRengFac.CoArt, empresaDB);
                if (articulo == null)
                {
                    throw new ArgumentException($"El artículo {iRengFac.CoArt.Trim()} suministrado en el renglón {iRengFac.RengNum} no existe.");
                }
                #endregion

                #region Verificar almacen
                SaAlmacen almacen = new AlmacenesRepositorio().Find(iRengFac.CoAlma, empresaDB);
                if (almacen == null)
                {
                    throw new ArgumentException($"El almacén {iRengFac.CoAlma.Trim()} suministrado en el renglón {iRengFac.RengNum} no existe.");
                }
                else
                {
                    if (almacen.CoSucur.Trim() != iRengFac.CoSucuIn.Trim())
                    {
                        throw new ArgumentException($"El almacén {iRengFac.CoAlma.Trim()} suministrado en el renglón {iRengFac.RengNum} no está permitido utilizarlo en la sucursal suministrada {obj.CoSucuIn.Trim()}.");
                    }
                    if (almacen.Noventa)
                    {
                        throw new ArgumentException($"El almacén {iRengFac.CoAlma.Trim()} suministrado en el renglón {iRengFac.RengNum} no está permitido utilizarlo en el módulo de facturas.");
                    }
                }
                #endregion

                #region Verificar unidad primaria
                utilitarios.GetUnidadPrimaria(iRengFac.CoUni.Trim(), empresaDB);
                #endregion
            }
            #endregion
        }
Beispiel #4
0
        public Response Guardar(EncabFacturaVenta factura, string empresaDB)
        {
            try
            {
                using var db = new ProfitAdmin2K12(conn.GetDbContextOptions(empresaDB));

                int resultEncab = -1, resultDeta = -1, resultDoc = -1;

                #region Validar datos
                ValidarDatos(factura, empresaDB);
                #endregion

                #region Consecutivo numero de factura
                /*Consecutivo de Numero de Factura.*/
                string codigoConsecutivoFactura = "DOC_VEN_FACT";
                string numeroFactura            = utilitarios.GetProximoNumero(codigoConsecutivoFactura, factura.CoSucuIn, empresaDB);
                #endregion

                #region Consecutivo numero de control
                /*Consecutivo de Nro Control*/
                string codigoConsecutivoControl = "FACT_VTA_N_CON";
                string numeroControl            = utilitarios.GetProximoNumero(codigoConsecutivoControl, factura.CoSucuIn, empresaDB);
                #endregion

                #region Insertar factura de venta.
                FormattableString FactVenta = $@"EXEC pInsertarFacturaVenta 
                     @sN_Control={numeroControl}
                    ,@sDoc_Num={numeroFactura}
                    ,@sDescrip={factura.Descrip}
                    ,@sCo_Cli={factura.CoCli}
                    ,@sCo_Tran={factura.CoTran}
                    ,@sCo_Cond={factura.CoCond}
                    ,@sCo_Ven={factura.CoVen}
                    ,@sCo_Cta_Ingr_Egr={factura.CoCtaIngrEgr}
                    ,@sCo_Mone={factura.CoMone}
                    ,@bAnulado={factura.Anulado}
                    ,@sdFec_Emis={factura.FecEmis}
                    ,@sdFec_Reg={factura.FecReg}
                    ,@sdFec_Venc={factura.FecVenc}
                    ,@sStatus={factura.Status}
                    ,@deTasa={factura.Tasa}
                    ,@sPorc_Desc_Glob={factura.PorcDescGlob}
                    ,@deMonto_Desc_Glob={factura.MontoDescGlob}
                    ,@sPorc_Reca={factura.PorcReca}
                    ,@deMonto_Reca={factura.MontoReca}
                    ,@deSaldo={factura.Saldo}
                    ,@deTotal_Bruto={factura.TotalBruto}
                    ,@deMonto_Imp={factura.MontoImp}
                    ,@deMonto_Imp3={factura.MontoImp3}
                    ,@deOtros1={factura.Otros1}
                    ,@deOtros2={factura.Otros2}
                    ,@deOtros3={factura.Otros3}
                    ,@deMonto_Imp2={factura.MontoImp2}
                    ,@deTotal_Neto={factura.TotalNeto}
                    ,@sComentario={factura.Comentario}
                    ,@sDir_Ent={factura.DirEnt}
                    ,@bContrib={factura.Contrib}
                    ,@bImpresa={factura.Impresa}
                    ,@sSalestax={factura.Salestax}
                    ,@sImpfis={factura.Impfis}
                    ,@sImpfisfac={factura.Impfisfac}
                    ,@bVen_Ter={factura.VenTer}
                    ,@sDis_Cen={factura.DisCen}
                    ,@sCampo1={factura.Campo1}
                    ,@sCampo2={factura.Campo2}
                    ,@sCampo3={factura.Campo3}
                    ,@sCampo4={factura.Campo4}
                    ,@sCampo5={factura.Campo5}
                    ,@sCampo6={factura.Campo6}
                    ,@sCampo7={factura.Campo7}
                    ,@sCampo8={factura.Campo8}
                    ,@sRevisado={factura.Revisado}
                    ,@sTrasnfe={factura.Trasnfe}
                    ,@sco_sucu_in={factura.CoSucuIn}
                    ,@sco_us_in={factura.CoUsIn}
                    ,@sMaquina={factura.Maquina}";

                resultEncab = db.Database.ExecuteSqlInterpolated(FactVenta);
                #endregion

                #region Insertar renglones de factura de venta.

                /* resultEncab es el resultado devuelto por el stored procedure de insertar factura de venta
                 * (-1 no registró la transacción en sql) */

                foreach (var i in factura.DetaFacturaVenta)
                {
                    FormattableString RengFactVenta = $@"EXEC pInsertarRenglonesFacturaVenta
                        @iReng_Num={i.RengNum}
                        ,@sDoc_Num={numeroFactura}
                        ,@sCo_Art={i.CoArt}
                        ,@sDes_Art={i.DesArt}
                        ,@sCo_Uni={i.CoUni}
                        ,@sSco_Uni={i.ScoUni}
                        ,@sCo_Alma={i.CoAlma}
                        ,@sCo_Precio={i.CoPrecio}
                        ,@sTipo_Imp={i.TipoImp}
                        ,@sTipo_Imp2={i.TipoImp2}
                        ,@sTipo_Imp3={i.TipoImp3}
                        ,@deTotal_Art={i.TotalArt}
                        ,@deSTotal_Art={i.StotalArt}
                        ,@dePrec_Vta={i.PrecVta}
                        ,@sPorc_Desc={i.PorcDesc}
                        ,@deMonto_Desc={i.MontoDesc}
                        ,@deReng_Neto={i.RengNeto}
                        ,@dePendiente={i.Pendiente}
                        ,@dePendiente2={i.Pendiente2}
                        ,@deMonto_Desc_Glob={i.MontoDescGlob}
                        ,@deMonto_reca_Glob={i.MontoRecaGlob}
                        ,@deOtros1_glob={i.Otros1Glob}
                        ,@deOtros2_glob={i.Otros2Glob}
                        ,@deOtros3_glob={i.Otros3Glob}
                        ,@deMonto_imp_afec_glob={i.MontoImpAfecGlob}
                        ,@deMonto_imp2_afec_glob={i.MontoImp2AfecGlob}
                        ,@deMonto_imp3_afec_glob={i.MontoImp3AfecGlob}
                        ,@sTipo_Doc={i.TipoDoc}
                        ,@gRowguid_Doc={i.RowguidDoc}
                        ,@sNum_Doc={i.NumDoc}
                        ,@dePorc_Imp={i.PorcImp}
                        ,@dePorc_Imp2={i.PorcImp2}
                        ,@dePorc_Imp3={i.PorcImp3}
                        ,@deMonto_Imp={i.MontoImp}
                        ,@deMonto_Imp2={i.MontoImp2}
                        ,@deMonto_Imp3={i.MontoImp3}
                        ,@deOtros={i.Otros}
                        ,@deTotal_Dev={i.TotalDev}
                        ,@deMonto_Dev={i.MontoDev}
                        ,@sComentario={i.Comentario}
                        ,@sDis_Cen={i.DisCen}
                        ,@sCo_Sucu_In={i.CoSucuIn}
                        ,@sCo_Us_In={i.CoUsIn}
                        ,@sREVISADO={i.Revisado}
                        ,@sTRASNFE={i.Trasnfe}
                        ,@sMaquina={i.Maquina}";

                    resultDeta = db.Database.ExecuteSqlInterpolated(RengFactVenta);
                }
                #endregion

                #region Insertar documento de venta

                /*resultDeta devuelve el resultado del stored procedure insertar renglones de factura de venta
                 * (-1 no registró la transacción en sql). */
                //' de Cliente ' {factura.CoCli}
                FormattableString DocumentoVenta = $@"EXEC pInsertarDocumentoVenta 
                        @sNro_Doc = {numeroFactura}
                        ,@sCo_Tipo_Doc = 'FACT'
                        ,@sDoc_Orig = 'FACT'
                        ,@sCo_Cli = {factura.CoCli}
                        ,@sCo_Mone = {factura.CoMone}
                        ,@sdFec_Reg = {factura.FecReg}
                        ,@sdFec_Emis = {factura.FecEmis}
                        ,@bAnulado = {factura.Anulado}
                        ,@deAdicional = 0
                        ,@sMov_Ban = NULL
                        ,@bAut = 1
                        ,@bContrib = {factura.Contrib}
                        ,@sObserva = {factura.Descrip}
                        ,@sNro_Orig = {numeroFactura}
                        ,@sNro_Che = NULL
                        ,@sCo_Ven = {factura.CoVen}
                        ,@sCo_Cta_Ingr_Egr = {factura.CoCtaIngrEgr}
                        ,@deTasa = {factura.Tasa}
                        ,@sTipo_Imp = NULL
                        ,@deTotal_Bruto = {factura.TotalBruto}
                        ,@deTotal_Neto = {factura.TotalNeto}
                        ,@deMonto_Reca = {factura.MontoReca}
                        ,@deMonto_Imp = {factura.MontoImp}
                        ,@deMonto_Imp2 = {factura.MontoImp2}
                        ,@deMonto_Imp3 = {factura.MontoImp3}
                        ,@deSaldo = {factura.Saldo}
                        ,@sN_Control = {numeroControl}
                        ,@sNum_Comprobante = NULL
                        ,@sDis_Cen = NULL
                        ,@deComis1 = 0,@deComis2 = 0,@deComis3 = 0,@deComis4 = 0
                        ,@deOtros1 = {factura.Otros1}
                        ,@deOtros2 = {factura.Otros2}
                        ,@deOtros3 = {factura.Otros3}
                        ,@sPorc_Desc_Glob = {factura.PorcDescGlob}
                        ,@deMonto_Desc_Glob = {factura.MontoDescGlob}
                        ,@sPorc_Reca = {factura.PorcReca}
                        ,@dePorc_Imp = 0,@dePorc_Imp2 = 0,@dePorc_Imp3 = 0
                        ,@sSalestax = {factura.Salestax}
                        ,@bVen_Ter = {factura.VenTer}
                        ,@sdFec_Venc = {factura.FecVenc}
                        ,@deComis5 = 0,@deComis6 = 0
                        ,@sImpFis = {factura.Impfis}
                        ,@sImpFisFac = {factura.Impfisfac}
                        ,@sImp_Nro_Z = {factura.ImpNroZ}
                        ,@iTipo_Origen = 0
                        ,@sCampo1 = {factura.Campo1},@sCampo2 = {factura.Campo2},@sCampo3 = {factura.Campo3},@sCampo4 = {factura.Campo4},@sCampo5 = {factura.Campo5},@sCampo6 = {factura.Campo6},@sCampo7 = {factura.Campo7},@sCampo8 = {factura.Campo8}
                        ,@sRevisado = {factura.Revisado}
                        ,@sTrasnfe = {factura.Trasnfe}
                        ,@sco_sucu_in = {factura.CoSucuIn}
                        ,@sco_us_in = {factura.CoUsIn}
                        ,@sMaquina = {factura.Maquina}";

                resultDoc = db.Database.ExecuteSqlInterpolated(DocumentoVenta);
                #endregion

                return(new Response {
                    Status = "OK", Message = "Transacción realizada con éxito.", FacturaID = numeroFactura, ControlID = numeroControl
                });
            }
            catch (Exception ex)
            {
                return(new Response {
                    Status = "ERROR", Message = (ex.InnerException != null) ? ex.InnerException.Message : ex.Message
                });
            }
        }
        private void ValidarDevolucion(EncabDevolucionVenta obj, string empresaDB)
        {
            using var db = new ProfitAdmin2K8(conn.GetDbContextOptions(empresaDB));
            Utilitarios utilitarios = new Utilitarios();

            #region Verificar caja ppal para el cobro
            caja = db.Cajas.FirstOrDefault(c => c.Cajapri == true);
            if (caja == null)
            {
                throw new ArgumentException("No existe una caja principal para la cancelación del cobro. Llame a su consultor profit.");
            }
            #endregion

            #region Verificar cliente
            cliente = new ClientesRepositorio().GetCliente(obj.CoCli, empresaDB);
            if (cliente == null)
            {
                throw new ArgumentException($"El cliente {obj.CoCli.Trim()} indicado para la devolución no existe.");
            }
            else
            {
                if (cliente.Inactivo)
                {
                    throw new ArgumentException($"El cliente {obj.CoCli.Trim()} indicado para la devolución se encuentra inactivo.");
                }
            }
            #endregion

            #region Verificar vendedor
            Vendedor vendor = new VendedoresRepositorio().Find(obj.CoVen, empresaDB);
            if (vendor != null)
            {
                if (!vendor.FunVen)
                {
                    throw new ArgumentException($"Vendedor {obj.CoVen} indicado no tiene función de 'vendedor'.");
                }
                if (!vendor.FunCob)
                {
                    throw new ArgumentException($"Vendedor {obj.CoVen} indicado no tiene función de 'cobrador'.");
                }
            }
            else
            {
                throw new ArgumentException($"El vendedor {obj.CoVen} suministrado no existe.");
            }
            #endregion

            #region Verificar transporte
            Transpor transporte = db.Transpor.FirstOrDefault(t => t.CoTran == obj.CoTran);
            if (transporte == null)
            {
                throw new ArgumentException($"El transporte {obj.CoTran} suministrado no existe.");
            }
            #endregion

            #region Verificar condicion de pago
            Condicio condicion = db.Condicio.FirstOrDefault(c => c.CoCond == obj.FormaPag);
            if (condicion == null)
            {
                throw new ArgumentException($"La condición de pago {obj.FormaPag} suministrado no existe.");
            }
            #endregion

            #region Verificar moneda
            utilitarios.GetMoneda(obj.Moneda, empresaDB);
            #endregion

            #region Verificar sucursal
            utilitarios.GetSucursal(obj.CoSucu, empresaDB);
            #endregion

            #region Verificar datos en renglones de factura
            foreach (var iRengFac in obj.DetaDevolucionVenta)
            {
                #region Verificar factura
                factura = new FacturasVentasRepositorio().Find(iRengFac.NumDoc, empresaDB);
                if (factura == null)
                {
                    throw new ArgumentException($"La factura {iRengFac.NumDoc} indicada en el renglón {iRengFac.RengNum} en la devolución de cliente no existe.");
                }
                if (factura.Anulada)
                {
                    throw new ArgumentException($"La factura {iRengFac.NumDoc} indicada en el renglón {iRengFac.RengNum} en la devolución de cliente se encuentra anulada.");
                }
                if (factura.Saldo == 0)
                {
                    throw new ArgumentException($"La factura {iRengFac.NumDoc} indicada en el renglón {iRengFac.RengNum} se encuentra procesada [Saldo=0.00].");
                }
                if (factura.Saldo < iRengFac.RengNeto)
                {
                    throw new ArgumentException($"La factura {iRengFac.NumDoc} tiene un saldo menor al monto indicado en el renglón {iRengFac.RengNum}.");
                }
                if (factura.DetaFacturaVenta.FirstOrDefault(ra => ra.CoArt.Trim() == iRengFac.CoArt.Trim()) == null)
                {
                    throw new ArgumentException($"El artículo {iRengFac.CoArt.Trim()} indicado en el renglón {iRengFac.RengNum} no se encontró en la factura.");
                }
                #endregion

                #region Verificar articulo
                Art articulo = new ArticulosRepositorio().Find(iRengFac.CoArt, empresaDB);
                if (articulo == null)
                {
                    throw new ArgumentException($"El artículo {iRengFac.CoArt.Trim()} suministrado en el renglón {iRengFac.RengNum} no existe.");
                }
                #endregion

                #region Verificar almacen
                SubAlma almacen = db.SubAlma.FirstOrDefault(a => a.CoSub == iRengFac.CoAlma);
                if (almacen == null)
                {
                    throw new ArgumentException($"El almacén {iRengFac.CoAlma.Trim()} suministrado en el renglón {iRengFac.RengNum} no existe.");
                }
                else
                {
                    if (almacen.CoAlma.Trim() != obj.CoSucu.Trim())
                    {
                        throw new ArgumentException($"El almacén {iRengFac.CoAlma.Trim()} suministrado en el renglón {iRengFac.RengNum} no está permitido utilizarlo en la sucursal suministrada {obj.CoSucu.Trim()}.");
                    }
                    if (almacen.Noventa)
                    {
                        throw new ArgumentException($"El almacén {iRengFac.CoAlma.Trim()} suministrado en el renglón {iRengFac.RengNum} no está permitido utilizarlo en el módulo de facturas.");
                    }
                }
                #endregion

                #region Verificar unidad primaria
                Unidades unidad = db.Unidades.FirstOrDefault(u => u.CoUni == iRengFac.UniVenta);
                if (unidad == null)
                {
                    throw new ArgumentException($"La unidad de venta {iRengFac.UniVenta.Trim()} suministrada en el renglón {iRengFac.RengNum} no existe.");
                }
                #endregion
            }
            #endregion
        }
Beispiel #6
0
        private Response CrearCobro(EncabFacturaVenta factura)
        {
            try
            {
                /*Crear anticipo por la factura q se esta creando*/

                #region Documento venta tipo adelanto
                string         nroAnticipo;
                DocumentoVenta documento = new DocumentoVenta
                {
                    CoTipoDoc  = "ADEL",
                    CoCli      = factura.CoCli.Trim(),
                    CoVen      = factura.CoVen.Trim(),
                    CoMone     = factura.CoMone,
                    Tasa       = factura.Tasa,
                    FecReg     = factura.FecReg,
                    FecEmis    = factura.FecEmis,
                    FecVenc    = factura.FecVenc,
                    Aut        = true,
                    Contrib    = factura.Contrib,
                    DocOrig    = "COBRO",
                    NroOrig    = null,
                    Saldo      = factura.Saldo,
                    TotalBruto = factura.Saldo,
                    TotalNeto  = factura.Saldo,
                    TipoImp    = "7",
                    CoUsIn     = factura.CoUsIn,
                    FeUsIn     = DateTime.Now,
                    CoUsMo     = string.Empty,
                    FeUsMo     = Convert.ToDateTime("01/01/1900"),
                    CoSucuIn   = factura.CoSucuIn,
                    CoSucuMo   = factura.CoSucuMo
                };
                string AnticipoString = JsonConvert.SerializeObject(documento);
                httpCliente.Headers.Add(HttpRequestHeader.ContentType, "application/json");
                response    = httpCliente.UploadString($"http://localhost:{puertoApi}/api/DocumentoVentaProfit/Guardar?Emp={db}", "POST", AnticipoString);
                resp        = JsonConvert.DeserializeObject <Response>(response);
                nroAnticipo = resp.FacturaID;
                #endregion

                #region Renglones cobro
                List <DetaCobroDocReng> RengCob = new List <DetaCobroDocReng>
                {
                    new DetaCobroDocReng
                    {
                        RengNum   = 1,
                        CoTipoDoc = "ADEL",
                        NroDoc    = nroAnticipo, /*;-)*/
                        CoSucuIn  = factura.CoSucuIn,
                        CoUsIn    = factura.CoUsIn,
                        FeUsIn    = DateTime.Now,
                        CoUsMo    = factura.CoUsMo,
                        CoSucuMo  = factura.CoSucuMo,
                        FeUsMo    = factura.FeUsMo
                    }
                };
                #endregion

                #region Forma de pago
                List <TipoCobroTpreng> RengTip = new List <TipoCobroTpreng>
                {
                    new TipoCobroTpreng
                    {
                        RengNum  = 1,
                        FormaPag = "EF",
                        CodCaja  = _caja.CodCaja.Trim(), // ;-)
                        MontDoc  = factura.Saldo,
                        FechaChe = factura.FecEmis,
                        CoSucuIn = factura.CoSucuIn,
                        CoUsIn   = factura.CoUsIn,
                        FeUsIn   = factura.FeUsIn,
                        CoSucuMo = factura.CoSucuMo,
                        CoUsMo   = factura.CoUsMo,
                        FeUsMo   = factura.FeUsMo,
                    }
                };
                #endregion

                #region Encabezado cobro y guardar
                EncabCobro cobro = new EncabCobro
                {
                    Descrip          = $"Anticipo automático proyecto {factura.Campo2.Trim()} presupuesto {factura.Campo1.Trim()}.",
                    CoCli            = factura.CoCli.Trim(),
                    CoVen            = factura.CoVen,
                    CoMone           = factura.CoMone,
                    Tasa             = factura.Tasa,
                    Fecha            = factura.FecEmis,
                    Campo1           = factura.Campo1.Trim(),
                    Campo2           = factura.Campo2.Trim(),
                    CoUsIn           = "999",
                    FeUsIn           = DateTime.Now,
                    CoSucuIn         = factura.CoSucuIn,
                    CoUsMo           = string.Empty,
                    FeUsMo           = Convert.ToDateTime("01/01/1900"),
                    DetaCobroDocReng = RengCob,
                    TipoCobroTpreng  = RengTip
                };
                string CobroString = JsonConvert.SerializeObject(cobro);
                httpCliente.Headers.Add(HttpRequestHeader.ContentType, "application/json");
                response = httpCliente.UploadString($"http://localhost:{puertoApi}/api/CobroProfit/Guardar?Emp={db}&isAdelanto={true}", "POST", CobroString);
                resp     = JsonConvert.DeserializeObject <Response>(response);
                nroCobro = resp.FacturaID.Trim();
                #endregion

                #region Actualizando el anticipo
                response = httpCliente.DownloadString($"http://localhost:{puertoApi}/api/DocumentoVentaProfit/GetDocumento?NumDocumento={nroAnticipo.Trim()}&CodTipoDocumento=ADEL&Emp={db}");
                DocumentoVenta anticipo = JsonConvert.DeserializeObject <DocumentoVenta>(response);

                anticipo.Observa = $"COBRO N° {nroCobro}";
                anticipo.NroOrig = nroCobro;

                string EditAnticipoString = JsonConvert.SerializeObject(anticipo);
                httpCliente.Headers.Add(HttpRequestHeader.ContentType, "application/json");
                response = httpCliente.UploadString($"http://localhost:{puertoApi}/api/DocumentoVentaProfit/Actualizar?Emp={db}", "PUT", EditAnticipoString);
                return(resp = JsonConvert.DeserializeObject <Response>(response));

                #endregion
            }
            catch (WebException ex)
            {
                CloseLoading();

                using (var reader = new System.IO.StreamReader(ex.Response.GetResponseStream()))
                {
                    response = reader.ReadToEnd();
                    return(resp = JsonConvert.DeserializeObject <Response>(response));
                }
            }
        }