public static Respuesta ObtenerAcuseConvenio(string folioConvenio)
        {
            Respuesta        Respuesta     = new Respuesta();
            Convenio         Convenio      = new Convenio();
            NG_ContratoArrto nContrato     = new NG_ContratoArrto();
            string           msjError      = string.Empty;
            AcuseContrato    AcuseContrato = new AcuseContrato();
            NG_Catalogos     nCatalogo     = new NG_Catalogos();
            string           HTML          = string.Empty;

            Utilerias.ExportHTML exportHTML = new Utilerias.ExportHTML();

            try
            {
                Convenio = nContrato.ObtenerConvenioModificatorio(folioConvenio, ref msjError);

                if (Convenio.IdConvenio == 0)
                {
                    if (msjError.Length == 0)
                    {
                        msjError = "Hubo un problema al obtener el convenio modificatorio. Favor de contactar a tu administrador";
                    }

                    Respuesta.respuesta = false;
                    Respuesta.Mensaje   = msjError;
                    return(Respuesta);
                }
                string ruta = ConfigurationManager.AppSettings["RutaDocsAdjuntosEscritura"] + folioConvenio + "\\AcuseConvenio\\";

                ModeloNegocios.InmuebleArrto objInmuebleArrto = new NG_InmuebleArrto().ObtenerInmuebleArrto(Convenio.IdInmueble);

                Parametro parametro = nCatalogo.ObtenerParametroNombre("PlantillaConvenioModificatorio");
                HTML = parametro.ValorParametro;

                Parametro ParametroQR = nCatalogo.ObtenerParametroNombre("LeyendaQR");
                AcuseContrato = nContrato.ObtenerAcuseContrato(Convenio.FolioContrato);

                string cuerpoTabla = string.Empty;

                if (Convenio.FechaTermino != null)
                {
                    cuerpoTabla += "<tr font-family: Montserrat'><td><strong>Prorroga de vigencia:</strong> " + Convenio.descFechaTermino + "</td></tr>";
                }

                if (Convenio.SupM2 != null)
                {
                    Convenio.TieneNvaSuperfice = 1;
                    cuerpoTabla += "<tr font-family: Montserrat'><td><strong>Superficie rentable:</strong> " + Convenio.SupM2 + "</td></tr>";
                }


                if (Convenio.ImporteRenta != null)
                {
                    Convenio.TieneNvoMonto = 1;
                    cuerpoTabla           += "<tr font-family: Montserrat'><td><strong>Monto de pago mensual:</strong> " + Convenio.ImporteRenta + "</td></tr>";
                }

                if (Convenio.TieneNvaSuperfice == 1 && Convenio.TieneNvoMonto == 1 && Convenio.ImporteRenta != null && Convenio.ImporteRenta > Constantes.MONTO_MINIMO_SECUENCIAL)
                {
                    cuerpoTabla += "<tr font-family: Montserrat'><td><strong>Secuencial de justipreciación:</strong> " + Convenio.Secuencial + "</td></tr>";
                }

                HTML = HTML.Replace("##FechaEfecto##", Convenio.DescFechaEfectoConvenio);
                HTML = HTML.Replace("##Folio##", Convenio.FolioConvenio);
                HTML = HTML.Replace("##InstitucionPublica##", AcuseContrato.InstitucionSolicitante);
                HTML = HTML.Replace("##Propietario##", AcuseContrato.ContratoArrto.PropietarioInmueble);
                HTML = HTML.Replace("##FunResponsable##", AcuseContrato.ContratoArrto.FuncionarioResponsable);
                HTML = HTML.Replace("##DireccionInmu##", objInmuebleArrto.DireccionCompleta);
                HTML = HTML.Replace("##valorRIUF##", AcuseContrato.ContratoArrto.RIUF.ToString());

                HTML = HTML.Replace("##CadOriginal##", Convenio.cadOriginal);
                HTML = HTML.Replace("##Sello##", Convenio.Sello);
                HTML = HTML.Replace("##QR##", Convenio.QR);
                HTML = HTML.Replace("##LeyendaQR##", ParametroQR.ValorParametro);
                HTML = HTML.Replace("##HoraReg##", Convenio.FechaRegistro.ToString("hh:mm tt"));

                HTML = HTML.Replace("##dia##", Convenio.descFechaRegistro.Split('/')[0]);
                HTML = HTML.Replace("##mes##", Util.ObtenerDescripcionMes(Convert.ToInt32(Convenio.descFechaRegistro.Split('/')[1])));
                HTML = HTML.Replace("##anio##", Convenio.descFechaRegistro.Split('/')[2]);

                HTML = HTML.Replace("##FechaAutorizacion##", Convenio.descFechaAutorizacion);

                HTML = HTML.Replace("##CuerpoTabla##", cuerpoTabla);

                byte[] bPDF = exportHTML.GeneraPdfFromHtmlStr(HTML);

                if (bPDF != null)
                {
                    if (!Directory.Exists(ruta))
                    {
                        Directory.CreateDirectory(ruta);
                    }

                    if (File.Exists(ruta + "AcuseConvenioModificatorio.pdf"))
                    {
                        File.Delete(ruta + "AcuseConvenioModificatorio.pdf");
                    }

                    File.WriteAllBytes(ruta + "AcuseConvenioModificatorio.pdf", bPDF);

                    Respuesta.Url       = ruta.Replace("\\", "/").Replace(ConfigurationManager.AppSettings["RutaDocsAdjuntosEscritura"], ConfigurationManager.AppSettings["RutaDocsAdjuntosLectura"]) + "AcuseConvenioModificatorio.pdf";
                    Respuesta.respuesta = true;
                    Respuesta.Mensaje   = string.Empty;
                }
            }

            catch (Exception ex)
            {
                Respuesta.respuesta = false;
                Respuesta.Mensaje   = "Hubo un problema al obtener el convenio modificatorio. Favor de contactar a tu administrador";
            }

            return(Respuesta);
        }
        public static Respuesta GenerarRegistroConvenio(int IdUsuario, Convenio Convenio, JustripreciacionContrato JustripreciacionContrato, string Institucion, int IdInmueble)
        {
            Respuesta    Respuesta = new Respuesta();
            string       msjError  = string.Empty;
            NG_Catalogos nCatalogo = new NG_Catalogos();
            string       HTML      = string.Empty;

            Utilerias.ExportHTML exportHTML = new Utilerias.ExportHTML();
            string        fechaRegistro     = string.Empty;
            string        fechaAutorizacion = string.Empty;
            AcuseContrato AcuseContrato     = new AcuseContrato();

            try
            {
                NG_ContratoArrto             nContrato        = new NG_ContratoArrto();
                ModeloNegocios.InmuebleArrto objInmuebleArrto = new Negocio.NG_InmuebleArrto().ObtenerInmuebleArrto(IdInmueble);

                JustripreciacionContrato.FechaDictamen = null;

                if (!string.IsNullOrEmpty(JustripreciacionContrato.descFechaDictamen))
                {
                    JustripreciacionContrato.FechaDictamen = Convert.ToDateTime(JustripreciacionContrato.descFechaDictamen);
                }

                if (!nContrato.GenerarConvenioModificatorio(Convenio, IdUsuario, JustripreciacionContrato, ref msjError, ref fechaRegistro))
                {
                    if (msjError.Length == 0)
                    {
                        msjError = "Hubo un problema al generar el registro del convenio modificatorio. Favor de contactar a tu administrador";
                    }

                    Respuesta.respuesta = false;
                    Respuesta.Mensaje   = msjError;
                    return(Respuesta);
                }

                string Direccion      = objInmuebleArrto.DireccionCompleta;
                string CadenaOriginal = "||Invocante:[" + Institucion + "] || Inmueble:[" + Direccion + "]||Fecha:[" + DateTime.Today.ToLongDateString() + "]||" + Guid.NewGuid().ToString();
                string SelloDigital   = UtilContratosArrto.Encrypt(CadenaOriginal, true, "ConvenioModificatorio");
                string ruta           = ConfigurationManager.AppSettings["RutaDocsAdjuntosEscritura"] + Convenio.FolioConvenio + "\\AcuseConvenio\\";

                Convenio.cadOriginal = CadenaOriginal;
                Convenio.Sello       = SelloDigital;
                Convenio.QR          = UtilContratosArrto.GenerarCodigoQR(string.Empty, 6, string.Empty, ruta.Replace("\\", "/").Replace(ConfigurationManager.AppSettings["RutaDocsAdjuntosEscritura"], ConfigurationManager.AppSettings["RutaDocsAdjuntosLectura"]) + "AcuseConvenioModificatorio.pdf");

                if (!nContrato.AutorizarConvenioModificatorio(Convenio.IdConvenio, CadenaOriginal, SelloDigital, Convenio.QR, IdUsuario, ref fechaAutorizacion))
                {
                    if (msjError.Length == 0)
                    {
                        msjError = "Hubo un problema al generar el registro del convenio modificatorio. Favor de contactar a tu administrador";
                    }

                    Respuesta.respuesta = false;
                    Respuesta.Mensaje   = msjError;
                    return(Respuesta);
                }

                Parametro parametro = nCatalogo.ObtenerParametroNombre("PlantillaConvenioModificatorio");
                HTML = parametro.ValorParametro;

                Parametro ParametroQR = nCatalogo.ObtenerParametroNombre("LeyendaQR");

                AcuseContrato = nContrato.ObtenerAcuseContrato(Convenio.FolioContrato);

                string cuerpoTabla = string.Empty;

                if (Convenio.TieneProrroga == 1)
                {
                    cuerpoTabla += "<tr font-family: Montserrat'><td><strong>Prorroga de vigencia:</strong> " + Convenio.descFechaTermino + "</td></tr>";
                }

                if (Convenio.TieneNvaSuperfice == 1)
                {
                    cuerpoTabla += "<tr font-family: Montserrat'><td><strong>Superficie rentable:</strong> " + Convenio.SupM2 + "</td></tr>";
                }

                if (Convenio.TieneNvoMonto == 1)
                {
                    cuerpoTabla += "<tr font-family: Montserrat'><td><strong>Monto de pago mensual:</strong> " + Convenio.ImporteRenta + "</td></tr>";
                }

                if (Convenio.TieneNvoMonto == 1 && Convenio.ImporteRenta > Constantes.MONTO_MINIMO_SECUENCIAL)
                {
                    cuerpoTabla += "<tr font-family: Montserrat'><td><strong>Secuencial de justipreciación:</strong> " + Convenio.Secuencial + "</td></tr>";
                }

                HTML = HTML.Replace("##FechaEfecto##", Convenio.DescFechaEfectoConvenio);
                HTML = HTML.Replace("##Folio##", Convenio.FolioConvenio);
                HTML = HTML.Replace("##InstitucionPublica##", Institucion);
                HTML = HTML.Replace("##Propietario##", AcuseContrato.ContratoArrto.PropietarioInmueble);
                HTML = HTML.Replace("##FunResponsable##", AcuseContrato.ContratoArrto.FuncionarioResponsable);
                HTML = HTML.Replace("##DireccionInmu##", objInmuebleArrto.DireccionCompleta);
                HTML = HTML.Replace("##valorRIUF##", AcuseContrato.ContratoArrto.RIUF.ToString());

                HTML = HTML.Replace("##CadOriginal##", Convenio.cadOriginal);
                HTML = HTML.Replace("##Sello##", Convenio.Sello);
                HTML = HTML.Replace("##QR##", Convenio.QR);
                HTML = HTML.Replace("##LeyendaQR##", ParametroQR.ValorParametro);
                HTML = HTML.Replace("##HoraReg##", Convenio.FechaRegistro.ToString("hh:mm tt"));

                HTML = HTML.Replace("##dia##", fechaRegistro.Split('/')[0]);
                HTML = HTML.Replace("##mes##", Util.ObtenerDescripcionMes(Convert.ToInt32(fechaRegistro.Split('/')[1])));
                HTML = HTML.Replace("##anio##", fechaRegistro.Split('/')[2]);

                HTML = HTML.Replace("##FechaAutorizacion##", fechaAutorizacion);

                HTML = HTML.Replace("##CuerpoTabla##", cuerpoTabla);

                byte[] bPDF = exportHTML.GeneraPdfFromHtmlStr(HTML);

                if (bPDF != null)
                {
                    if (!Directory.Exists(ruta))
                    {
                        Directory.CreateDirectory(ruta);
                    }

                    if (File.Exists(ruta + "AcuseConvenioModificatorio.pdf"))
                    {
                        File.Delete(ruta + "AcuseConvenioModificatorio.pdf");
                    }

                    File.WriteAllBytes(ruta + "AcuseConvenioModificatorio.pdf", bPDF);

                    Respuesta.Url       = ruta.Replace("\\", "/").Replace(ConfigurationManager.AppSettings["RutaDocsAdjuntosEscritura"], ConfigurationManager.AppSettings["RutaDocsAdjuntosLectura"]) + "AcuseConvenioModificatorio.pdf";
                    Respuesta.respuesta = true;
                    Respuesta.Mensaje   = string.Empty;
                }
            }

            catch (Exception ex)
            {
                Respuesta.respuesta = false;
                Respuesta.Mensaje   = "Hubo un problema al generar el registro del convenio modificatorio. Favor de contactar a tu administrador";
            }

            return(Respuesta);
        }