Exemplo n.º 1
0
        public IActionResult Guardar([FromBody] EncabCobro cobro, bool isAdelanto, string Emp)
        {
            cobro.CoUsIn = "999";
            cobro.FeUsIn = DateTime.Now;

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

            resultado = metodo.Save(cobro, Emp);
            if (resultado.Status == "OK")
            {
                return(Ok(resultado));
            }
            else
            {
                return(BadRequest(resultado));
            }
        }
Exemplo n.º 3
0
        public Response Guardar(EncabCobro cobro, bool isAdelanto, string empresaDB)
        {
            try
            {
                using var db = new ProfitAdmin2K12(conn.GetDbContextOptions(empresaDB));

                /*movi devuelve el resultado de la transaccion sea movCaja o movBanco.*/
                Response movi = new Response();

                #region Consecutivo numero de cobro.
                string codigoConsecutivoCobro = "COBRO";
                string numeroCobro            = utilitarios.GetProximoNumero(codigoConsecutivoCobro, cobro.CoSucuIn, empresaDB);
                string numeroCajaBanco        = null;
                #endregion

                #region Cuenta ingreso/egreso del cliente para movimiento de caja/banco
                var CoCtaIngrEgr = new ClientesRepositorio().Find(cobro.CoCli, empresaDB).CoCtaIngrEgr;
                //db.SaCliente.FirstOrDefault(c => c.CoCli == cobro.CoCli).CoCtaIngrEgr;
                #endregion

                #region Caja/Banco
                var ParamModulo = "COBRO";

                foreach (var i in cobro.TipoCobroTpreng)
                {
                    #region Actualizar saldo (Caja/Banco)
                    decimal resultSaldo = 0;

                    var conn = db.Database.GetDbConnection();
                    conn.Open();
                    var    command = conn.CreateCommand();
                    string query   = $@"EXEC pSaldoActualizar @sCodigo = '{(string.IsNullOrEmpty(i.CodCta) ? i.CodCaja : i.CodCta)}',@sForma_Pag = '{i.FormaPag}',@sTipoSaldo = '{i.FormaPag}',@deMonto = {i.MontDoc.ToString().Replace(',', '.')},@bSumarSaldo = {true},@sModulo = {$"N'{ParamModulo}'"},@bPermiteSaldoNegativo = {false}";
                    command.CommandText = query;
                    var reader = command.ExecuteReader();

                    while (reader.Read())
                    {
                        resultSaldo = reader.GetDecimal(0);
                    }
                    reader.Close();
                    conn.Close();
                    #endregion

                    #region Insertar Movimiento (Banco/Caja)

                    #region Consecutivo de Numero de Caja/Banco
                    string codigoConsecutivoCajaBanco = (string.IsNullOrEmpty(i.CodCta) ? "MOVC_NUM" : "MOVB_NUM");
                    numeroCajaBanco = utilitarios.GetProximoNumero(codigoConsecutivoCajaBanco, cobro.CoSucuIn, empresaDB);
                    #endregion

                    if (string.IsNullOrEmpty(i.CodCta))
                    {
                        #region Movimiento de caja
                        SaMovimientoCaja movCaja = new SaMovimientoCaja
                        {
                            MovNum       = numeroCajaBanco,
                            Fecha        = cobro.Fecha,
                            Descrip      = $"Cobro {numeroCobro}",
                            CodCaja      = i.CodCaja,
                            Tasa         = cobro.Tasa,
                            TipoMov      = "I",
                            FormaPag     = i.FormaPag,
                            NumPago      = null,
                            CoBan        = i.CoBan,
                            CoTar        = i.CoTar,
                            CoVale       = i.CoVale,
                            CoCtaIngrEgr = CoCtaIngrEgr,
                            MontoD       = i.MontDoc,
                            Origen       = "COBRO",
                            DocNum       = numeroCobro,
                            FechaChe     = i.FechaChe,
                            CoSucuIn     = cobro.CoSucuIn,
                            CoUsIn       = cobro.CoUsIn
                        };

                        movi = new MovimientosCajaRepositorio().Save(movCaja, empresaDB);

                        #region Inutilizable
                        //FormattableString MovimientoCaja = $@"EXEC {empresaDB.Trim()}.dbo.pInsertarMovimientoCaja
                        //                            @smov_num = {numeroCajaBanco}
                        //                            ,@sdFecha = {cobro.Fecha}
                        //                            ,@sdescrip = {$"Cobro {numeroCobro}"}
                        //                            ,@scod_caja = {i.CodCaja}
                        //                            ,@detasa = {cobro.Tasa}
                        //                            ,@stipo_mov = 'I'
                        //                            ,@sforma_pag = {i.FormaPag}
                        //                            ,@snum_pago = NULL
                        //                            ,@sco_ban = {i.CoBan}
                        //                            ,@sco_tar = {i.CoTar}
                        //                            ,@sco_vale = {i.CoVale}
                        //                            ,@sco_cta_ingr_egr = {CoCtaIngrEgr}
                        //                            ,@demonto = {i.MontDoc}
                        //                            ,@bsaldo_ini = 0
                        //                            ,@sorigen = 'COBRO'
                        //                            ,@sdoc_num = {numeroCobro}
                        //                            ,@sDep_Num = NULL
                        //                            ,@banulado = 0
                        //                            ,@bDepositado = 0
                        //                            ,@bConciliado = 0
                        //                            ,@btransferido = 0
                        //                            ,@smov_nro = NULL
                        //                            ,@sdfecha_che = {i.FechaChe}
                        //                            ,@sdis_cen = NULL
                        //                            ,@sCampo1 = {cobro.Campo1}
                        //                            ,@sCampo2 = {cobro.Campo2}
                        //                            ,@sCampo3 = {cobro.Campo3}
                        //                            ,@sCampo4 = {cobro.Campo4}
                        //                            ,@sCampo5 = {cobro.Campo5}
                        //                            ,@sCampo6 = {cobro.Campo6}
                        //                            ,@sCampo7 = {cobro.Campo7}
                        //                            ,@sCampo8 = {cobro.Campo8}
                        //                            ,@sRevisado = NULL
                        //                            ,@sTrasnfe = NULL
                        //                            ,@sco_sucu_in = {cobro.CoSucuIn}
                        //                            ,@sco_us_in = {cobro.CoUsIn}
                        //                            ,@sMaquina = {cobro.Maquina}";

                        //int resultMovCaja = db.Database.ExecuteSqlInterpolated(MovimientoCaja);

                        #endregion                        #endregion

                        #endregion
                    }
                    else
                    {
                        #region Movimiento de banco
                        SaMovimientoBanco movBanco = new SaMovimientoBanco
                        {
                            MovNum       = numeroCajaBanco,
                            Descrip      = $"Cobro {numeroCobro}",
                            CodCta       = i.CodCta,
                            Fecha        = cobro.Fecha,
                            Tasa         = cobro.Tasa,
                            TipoOp       = i.FormaPag,
                            DocNum       = i.NumDoc,
                            MontoD       = i.MontDoc,
                            CoCtaIngrEgr = CoCtaIngrEgr,
                            Origen       = "COBRO",
                            CobPag       = numeroCobro,
                            FechaChe     = i.FechaChe,
                            CoSucuIn     = cobro.CoSucuIn,
                            CoUsIn       = cobro.CoUsIn
                        };

                        #region Inutilizable
                        //FormattableString MovimientoBanco = $@"EXEC {empresaDB.Trim()}.dbo.pInsertarMovimientoBanco
                        //                                    @sMov_Num={numeroCajaBanco}
                        //                                    ,@sDescrip={$"Cobro {numeroCobro}"}
                        //                                    ,@sCod_Cta={i.CodCta}
                        //                                    ,@sdFecha={cobro.Fecha}
                        //                                    ,@deTasa={cobro.Tasa}
                        //                                    ,@sTipo_Op={i.FormaPag}
                        //                                    ,@sDoc_Num={i.NumDoc}
                        //                                    ,@deMonto={i.MontDoc}
                        //                                    ,@sco_cta_ingr_egr={CoCtaIngrEgr}
                        //                                    ,@sOrigen='COBRO'
                        //                                    ,@sCob_Pag={numeroCobro}
                        //                                    ,@deIDB=0,@sDep_Num=NULL
                        //                                    ,@bAnulado=0
                        //                                    ,@bConciliado=0
                        //                                    ,@bSaldo_Ini=0
                        //                                    ,@bOri_Dep=0
                        //                                    ,@iDep_Con=0
                        //                                    ,@sdFec_Con=NULL
                        //                                    ,@sCod_IngBen=NULL
                        //                                    ,@sdFecha_Che={i.FechaChe}
                        //                                    ,@sDis_Cen=NULL
                        //                                    ,@iNro_Transf_Nomi=NULL
                        //                                    ,@sCampo1={cobro.Campo1}
                        //                                    ,@sCampo2={cobro.Campo2}
                        //                                    ,@sCampo3={cobro.Campo3}
                        //                                    ,@sCampo4={cobro.Campo4}
                        //                                    ,@sCampo5={cobro.Campo5}
                        //                                    ,@sCampo6={cobro.Campo6}
                        //                                    ,@sCampo7={cobro.Campo7}
                        //                                    ,@sCampo8={cobro.Campo8}
                        //                                    ,@sRevisado=NULL
                        //                                    ,@sTrasnfe=NULL
                        //                                    ,@sco_sucu_in={cobro.CoSucuIn}
                        //                                    ,@sco_us_in={cobro.CoUsIn}
                        //                                    ,@sMaquina={cobro.Maquina}";

                        //int resultMovBanco = db.Database.ExecuteSqlInterpolated(MovimientoBanco);
                        #endregion

                        movi = new MovimientosBancoRepositorio().Save(movBanco, empresaDB);

                        #endregion
                    }
                    #endregion
                }
                #endregion

                #region Actualizar documento de venta o crear anticipo
                if (!isAdelanto) //Saber si el cobro a crear no es anticipio se rebaja el saldo del documento.
                {
                    foreach (var i in cobro.DetaCobroDocReng)
                    {
                        #region Seleccionar documento
                        SaDocumentoVenta documentoVenta = new DocumentosVentasRepositorio().Find(i.NroDoc, i.CoTipoDoc, empresaDB);
                        //db.SaDocumentoVenta.FirstOrDefault(d => d.NroDoc == i.NroDoc && d.CoTipoDoc == i.CoTipoDoc);
                        #endregion

                        #region Actualizar saldo del documento

                        documentoVenta.FeUsMo = DateTime.Now;
                        documentoVenta.Saldo -= i.MontCob;

                        Response res = new DocumentosVentasRepositorio().Update(documentoVenta, empresaDB);

                        #region Inutilizable
                        //FormattableString DocumentoActualizar = $@"EXEC {empresaDB.Trim()}.dbo.pActualizarDocumentoVenta
                        //                            @sNro_Doc = {documentoVenta.NroDoc}
                        //                            ,@sNro_DocOri = {documentoVenta.NroOrig}
                        //                            ,@sCo_Tipo_DocOri = {documentoVenta.CoTipoDoc}
                        //                            ,@sCo_Tipo_Doc = {i.CoTipoDoc}
                        //                            ,@sDoc_Orig = {documentoVenta.DocOrig}
                        //                            ,@sCo_Cli = {cobro.CoCli}
                        //                            ,@sCo_Mone = {cobro.CoMone}
                        //                            ,@sdFec_Reg = {documentoVenta.FecReg}
                        //                            ,@sdFec_Emis = {documentoVenta.FecEmis}
                        //                            ,@bAnulado = {documentoVenta.Anulado}
                        //                            ,@deAdicional = {documentoVenta.Adicional}
                        //                            ,@sMov_Ban = {documentoVenta.MovBan}
                        //                            ,@bAut = {documentoVenta.Aut}
                        //                            ,@bContrib = {documentoVenta.Contrib}
                        //                            ,@sObserva = {documentoVenta.Observa}
                        //                            ,@sNro_Orig = {documentoVenta.NroOrig}
                        //                            ,@sNro_Che = {documentoVenta.NroChe}
                        //                            ,@sCo_Ven = {documentoVenta.CoVen}
                        //                            ,@sCo_Cta_Ingr_Egr = {documentoVenta.CoCtaIngrEgr}
                        //                            ,@deTasa = {documentoVenta.Tasa}
                        //                            ,@sTipo_Imp = {documentoVenta.TipoImp}
                        //                            ,@deTotal_Bruto = {documentoVenta.TotalBruto}
                        //                            ,@deTotal_Neto = {documentoVenta.TotalNeto}
                        //                            ,@deMonto_Reca = {documentoVenta.MontoReca}
                        //                            ,@deMonto_Imp = {documentoVenta.MontoImp}
                        //                            ,@deMonto_Imp2 = {documentoVenta.MontoImp2}
                        //                            ,@deMonto_Imp3 = {documentoVenta.MontoImp3}
                        //                            ,@deSaldo = {documentoVenta.Saldo - i.MontCob}
                        //                            ,@sN_Control = {documentoVenta.NControl}
                        //                            ,@sNum_Comprobante = {documentoVenta.NumComprobante}
                        //                            ,@sDis_Cen = {documentoVenta.DisCen}
                        //                            ,@deComis1 = {documentoVenta.Comis1}
                        //                            ,@deComis2 = {documentoVenta.Comis2}
                        //                            ,@deComis3 = {documentoVenta.Comis3}
                        //                            ,@deComis4 = {documentoVenta.Comis4}
                        //                            ,@deOtros1 = {documentoVenta.Otros1}
                        //                            ,@deOtros2 = {documentoVenta.Otros2}
                        //                            ,@deOtros3 = {documentoVenta.Otros3}
                        //                            ,@sPorc_Desc_Glob = {documentoVenta.PorcDescGlob}
                        //                            ,@deMonto_Desc_Glob = {documentoVenta.MontoDescGlob}
                        //                            ,@sPorc_Reca = {documentoVenta.PorcReca}
                        //                            ,@dePorc_Imp = {documentoVenta.PorcImp}
                        //                            ,@dePorc_Imp2 = {documentoVenta.PorcImp2}
                        //                            ,@dePorc_Imp3 = {documentoVenta.PorcImp3}
                        //                            ,@sSalestax = {documentoVenta.Salestax}
                        //                            ,@bVen_Ter = {documentoVenta.VenTer}
                        //                            ,@sdFec_Venc = {documentoVenta.FecVenc}
                        //                            ,@deComis5 = {documentoVenta.Comis5}
                        //                            ,@deComis6 = {documentoVenta.Comis6}
                        //                            ,@sImpFis = {documentoVenta.Impfis}
                        //                            ,@sImpFisFac = {documentoVenta.Impfisfac}
                        //                            ,@sImp_Nro_Z = {documentoVenta.ImpNroZ}
                        //                            ,@iTipo_Origen = {documentoVenta.TipoOrigen}
                        //                            ,@sCampo1 = {documentoVenta.Campo1}
                        //                            ,@sCampo2 = {documentoVenta.Campo2}
                        //                            ,@sCampo3 = {documentoVenta.Campo3}
                        //                            ,@sCampo4 = {documentoVenta.Campo4}
                        //                            ,@sCampo5 = {documentoVenta.Campo5}
                        //                            ,@sCampo6 = {documentoVenta.Campo6}
                        //                            ,@sCampo7 = {documentoVenta.Campo7}
                        //                            ,@sCampo8 = {documentoVenta.Campo8}
                        //                            ,@sRevisado = {documentoVenta.Revisado}
                        //                            ,@sTrasnfe = {documentoVenta.Trasnfe}
                        //                            ,@tsvalidador = {documentoVenta.Validador}
                        //                            ,@sco_sucu_mo = {documentoVenta.CoSucuMo}
                        //                            ,@sco_us_mo = {documentoVenta.CoUsMo}
                        //                            ,@growguid = {documentoVenta.Rowguid}
                        //                            ,@sMaquina = {cobro.Maquina}
                        //                            ,@sCampos = '[Saldo]={documentoVenta.Saldo} -> {documentoVenta.Saldo - i.MontCob}'";

                        //int resultSaldoDoc = db.Database.ExecuteSqlInterpolated(DocumentoActualizar);
                        #endregion

                        #endregion
                    }
                }
                #endregion

                #region Insertar Cobro
                FormattableString Cobro = $@"EXEC pInsertarCobro 
                                            @sCob_Num = {numeroCobro}
                                            ,@sRecibo = {cobro.Recibo}
                                            ,@sCo_cli = {cobro.CoCli}
                                            ,@sCo_Ven = {cobro.CoVen}
                                            ,@sCo_Mone = {cobro.CoMone}
                                            ,@deTasa = {cobro.Tasa}
                                            ,@sdfecha = {cobro.Fecha}
                                            ,@bAnulado = {cobro.Anulado}
                                            ,@deMonto = {cobro.Monto}
                                            ,@sDis_Cen = {cobro.DisCen}
                                            ,@sDescrip = {cobro.Descrip}
                                            ,@sCampo1 = {cobro.Campo1}
                                            ,@sCampo2 = {cobro.Campo2}
                                            ,@sCampo3 = {cobro.Campo3}
                                            ,@sCampo4 = {cobro.Campo4}
                                            ,@sCampo5 = {cobro.Campo5}
                                            ,@sCampo6 = {cobro.Campo6}
                                            ,@sCampo7 = {cobro.Campo7}
                                            ,@sCampo8 = {cobro.Campo8}
                                            ,@sRevisado = {cobro.Revisado}
                                            ,@sTrasnfe = {cobro.Trasnfe}
                                            ,@sco_sucu_in = {cobro.CoSucuIn}
                                            ,@sco_us_in = {cobro.CoUsIn}
                                            ,@sMaquina = {cobro.Maquina}";

                int resultCobro = db.Database.ExecuteSqlInterpolated(Cobro);
                #endregion

                #region Insertar renglones de cobro
                foreach (var i in cobro.DetaCobroDocReng)
                {
                    FormattableString CobroRenglones = $@"EXEC pInsertarRenglonesDocCobro 
                                                        @sCob_Num = {numeroCobro}
                                                        ,@sCo_Tipo_Doc = {i.CoTipoDoc}
                                                        ,@sNro_Doc = {i.NroDoc}
                                                        ,@deMont_Cob = {i.MontCob}
                                                        ,@iTipo_Origen = {i.TipoOrigen}
                                                        ,@deDpCobro_Porc_Desc = {i.DpcobroPorcDesc}
                                                        ,@deDpCobro_Monto = {i.DpcobroMonto}
                                                        ,@demonto_retencion_iva = {i.MontoRetencionIva}
                                                        ,@demonto_retencion = {i.MontoRetencion}
                                                        ,@sTipo_Doc = {i.TipoDoc}
                                                        ,@sNum_Doc = {i.NumDoc}
                                                        ,@growguid={Guid.NewGuid()}
                                                        ,@growguid_reng_ori = {i.RowguidRengOri}
                                                        ,@iRENG_NUM = {i.RengNum}
                                                        ,@sREVISADO = {i.Revisado}
                                                        ,@sTRASNFE = {i.Trasnfe}
                                                        ,@sco_sucu_in = {i.CoSucuIn}
                                                        ,@sco_us_in = {i.CoUsIn}
                                                        ,@sMaquina = {cobro.Maquina}";

                    int resultCobroReng = db.Database.ExecuteSqlInterpolated(CobroRenglones);
                }
                #endregion

                #region Insertar forma de pago
                foreach (var i in cobro.TipoCobroTpreng)
                {
                    FormattableString FormaPago = $@"EXEC pInsertarRenglonesTPCobro 
                                                    @sCob_Num={numeroCobro}
                                                    ,@sForma_Pag={i.FormaPag}
                                                    ,@sMov_Num_C={(string.IsNullOrEmpty(i.CodCta) ? numeroCajaBanco : null)}
                                                    ,@sMov_Num_B={(!string.IsNullOrEmpty(i.CodCta) ? numeroCajaBanco : null)}
                                                    ,@sNum_Doc={i.NumDoc}
                                                    ,@bDevuelto={i.Devuelto}
                                                    ,@deMont_Doc={i.MontDoc}
                                                    ,@sCod_Cta={i.CodCta}
                                                    ,@sCod_Caja={i.CodCaja}
                                                    ,@sdfecha_che={i.FechaChe}
                                                    ,@sCo_Ban={i.CoBan}
                                                    ,@sCo_Tar={i.CoTar}
                                                    ,@sCo_Vale={i.CoVale}
                                                    ,@iRENG_NUM={i.RengNum}
                                                    ,@sREVISADO={i.Revisado}
                                                    ,@sTRASNFE={i.Trasnfe}
                                                    ,@sco_sucu_in={i.CoSucuIn}
                                                    ,@sco_us_in={cobro.CoUsIn}
                                                    ,@sMaquina={cobro.Maquina}";

                    int resultFormaPago = db.Database.ExecuteSqlInterpolated(FormaPago);
                }
                #endregion

                #region Validar consistencia modula caja
                FormattableString MoviCajaValidaConsistencia = $@"EXEC pValidarSaldoCaja @bCorregir={true},@IdProcess={Guid.NewGuid()}";
                db.Database.ExecuteSqlInterpolated(MoviCajaValidaConsistencia);
                #endregion

                return(new Response {
                    Status = "OK", Message = "Transacción realizada con éxito.", FacturaID = numeroCobro.Trim()
                });
            }
            catch (Exception ex)
            {
                return(new Response {
                    Status = "ERROR", Message = string.Format("{0}", ex.Message)
                });
            }
        }
Exemplo n.º 4
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));
                }
            }
        }