public bool AutorizarConvenioModificatorio(int IdConvenioModificatorio, string CadOrignal, string Sello, string QR, int IdUsuario, ref string fechaRegistro)
        {
            bool respuesta = false;

            try
            {
                using (ArrendamientoInmuebleEntities aInmueble = new ArrendamientoInmuebleEntities())
                {
                    Convenio_Modificatorio cModificatorio = aInmueble.Convenio_Modificatorio.Where(x => x.IdConvenioModif == IdConvenioModificatorio).FirstOrDefault();

                    if (cModificatorio != null)
                    {
                        using (TransactionScope transaccion = new TransactionScope())
                        {
                            SelloDigital sello = new SelloDigital
                            {
                                Fk_IdCatTabla            = 4,
                                Fk_IdRegistroTablaOrigen = IdConvenioModificatorio,
                                CadenaOriginal           = CadOrignal,
                                SelloDigital1            = Sello,
                                GUID                 = Guid.NewGuid().ToString(),
                                EstatusRegistro      = true,
                                FechaRegistro        = DateTime.Now,
                                Fk_IdUsuarioRegistro = IdUsuario,
                                QR = QR
                            };

                            aInmueble.SelloDigital.Add(sello);
                            aInmueble.SaveChanges();

                            fechaRegistro = sello.FechaRegistro.ToString("d");

                            transaccion.Complete();
                            respuesta = true;
                        }
                    }
                }
            }

            catch (Exception ex)
            {
                throw new Exception(string.Format("GenerarConvenioModificatorio:{0}", ex.Message));
            }

            return(respuesta);
        }
        public bool GenerarConvenioModificatorio(Convenio Convenio, int IdUsuario, JustripreciacionContrato JustripreciacionContrato, ref string msjError, ref string fechaRegistro)
        {
            bool respuesta  = false;
            int  IdConvenio = 0;

            try
            {
                using (ArrendamientoInmuebleEntities aInmuebles = new ArrendamientoInmuebleEntities())
                {
                    Datos.ContratoArrto Contrato = aInmuebles.ContratoArrto.Where(x => x.FolioContratoArrto == Convenio.FolioContrato && x.EstatusRegistro == true).FirstOrDefault();

                    if (Contrato == null)
                    {
                        msjError = "No se encuentra el registro del contrato. Favor de contactar a tu administrador";
                        return(false);
                    }

                    if (Convenio.TieneNvoMonto == 1 && Convenio.ImporteRenta > Constantes.MONTO_MINIMO_SECUENCIAL)
                    {
                        JustipreciacionArrto justipreciacion = aInmuebles.JustipreciacionArrto.Where(x => x.Fk_IdContratoArrto == Contrato.IdContratoArrto && x.EstatusRegistro == true).FirstOrDefault();

                        if (justipreciacion != null)
                        {
                            if (Convenio.Secuencial == justipreciacion.Secuencial)
                            {
                                msjError = "El secuencial no puede ser igual al secuencial del contrato. Favor de validar tus datos";
                                return(false);
                            }

                            List <Convenio_Modificatorio> Lconvenio = aInmuebles.Convenio_Modificatorio.Where(x => x.Fk_IdJustipreciacion == Convenio.Secuencial).ToList();

                            if (Lconvenio != null)
                            {
                                if (Lconvenio.Count > 0)
                                {
                                    msjError = "El secuencial ingresado se encuentra relacionado a otro convenio modificatorio. Favor de validar tus datos";
                                    return(false);
                                }
                            }
                        }
                    }

                    IdConvenio = aInmuebles.Convenio_Modificatorio.Where(x => x.Fk_IdContratoArrto == Contrato.IdContratoArrto).Count();
                    IdConvenio = IdConvenio + 1;

                    using (TransactionScope transaccion = new TransactionScope())
                    {
                        Convenio_Modificatorio convenio = new Convenio_Modificatorio();
                        convenio.Fk_IdContratoArrto = Contrato.IdContratoArrto;
                        convenio.IdConvenio         = (short)IdConvenio;
                        convenio.FechaConvenio      = Convert.ToDateTime(Convenio.descFechaConvenio);
                        convenio.Nombre             = Convenio.NombreOIC;
                        convenio.Primer_Apellido    = Convenio.PApellidoOIC;
                        convenio.Segundo_Apellido   = Convenio.SApellidoOIC;
                        convenio.Nombre_Cargo       = Convenio.CargoOIC;
                        convenio.Email             = Convenio.CorreoOIC;
                        convenio.FechaEfecConvenio = Convert.ToDateTime(Convenio.DescFechaEfectoConvenio);

                        if (Convenio.TieneProrroga == 1)
                        {
                            convenio.FechaTerminacion = Convert.ToDateTime(Convenio.descFechaTermino);
                        }

                        if (Convenio.TieneNvaSuperfice == 1)
                        {
                            convenio.Nueva_Superficie = Convenio.SupM2;
                        }

                        if (Convenio.TieneNvoMonto == 1)
                        {
                            convenio.Importe_Renta = Convenio.ImporteRenta;
                        }



                        if (Convenio.TieneNvoMonto == 1 && Convenio.ImporteRenta > Constantes.MONTO_MINIMO_SECUENCIAL)
                        {
                            convenio.Fk_IdJustipreciacion = Convenio.Secuencial;
                        }

                        convenio.FechaRegistro = DateTime.Now;
                        convenio.Institución_justipreciacion = 1;

                        aInmuebles.Convenio_Modificatorio.Add(convenio);
                        aInmuebles.SaveChanges();
                        fechaRegistro          = convenio.FechaRegistro.ToString("d");
                        Convenio.FechaRegistro = convenio.FechaRegistro;

                        Convenio.IdConvenio          = convenio.IdConvenioModif;
                        Convenio.ConsecutivoConvenio = convenio.IdConvenio;

                        if (Convenio.TieneNvoMonto == 1 && Convenio.ImporteRenta > Constantes.MONTO_MINIMO_SECUENCIAL)
                        {
                            convenio.Fk_IdJustipreciacion = Convenio.Secuencial;
                        }

                        aInmuebles.SaveChanges();

                        transaccion.Complete();
                        respuesta = true;
                    }

                    Convenio.ConsecutivoConvenio = IdConvenio;
                    Convenio.FolioConvenio       = Convenio.FolioContrato + "-" + IdConvenio.ToString().PadLeft(2, '0');
                }
            }

            catch (Exception ex)
            {
                throw new Exception(string.Format("GenerarConvenioModificatorio:{0}", ex.Message));
            }

            return(respuesta);
        }