public bool GenerarConvenioModificatorio(Convenio Convenio, int IdUsuario, JustripreciacionContrato JustripreciacionContrato, ref string msjError, ref string fechaRegistro) { bool respuesta = false; try { ContratoArrtoDAL cDAL = new ContratoArrtoDAL(); respuesta = cDAL.GenerarConvenioModificatorio(Convenio, IdUsuario, JustripreciacionContrato, ref msjError, ref fechaRegistro); } catch (Exception) { throw; } return(respuesta); }
public static Respuesta ObtenerJustipreciacionSecuencial(string secuencial, int IdPais, int IdEstado, int IdMunicipio, int IdInmueble) { Respuesta Respuesta = new Respuesta(); ControladorBUS cBus = new ControladorBUS(); string SupRentable = null; string MontoDictaminado = null; NG_Inmueble nInm = new NG_Inmueble(); bool valCP = false; try { List <SolicitudAvaluos> LsolAvaluos = cBus.ObtenerJustipreciacionAvaluos(secuencial); ModeloNegocios.InmuebleArrto Inmueble = new NG_InmuebleArrto().ObtenerInmuebleArrto(System.Convert.ToInt32(IdInmueble)); if (Inmueble.IdPais != Constantes.IdMexico) { Respuesta.Mensaje = "El secuencial de justipreciación debe ser para un inmueble nacional. Favor de validar tus datos"; Respuesta.respuesta = false; return(Respuesta); } if (LsolAvaluos == null) { Respuesta.respuesta = false; Respuesta.Mensaje = "No se encontró ningun resultado en la busqueda del secuencial. Favor de validar tus datos"; return(Respuesta); } if (LsolAvaluos.Count == 0) { Respuesta.respuesta = false; Respuesta.Mensaje = "No se encontró ningun resultado en la busqueda del secuencial. Favor de validar tus datos"; return(Respuesta); } SolicitudAvaluos solAvaluos = LsolAvaluos.FirstOrDefault(); if (solAvaluos.Estatus.ToUpper() == "CANCELADO") { Respuesta.respuesta = false; Respuesta.Mensaje = "El estatus de la justipreciación es cancelado"; return(Respuesta); } if (nInm.QuitarAcentosTexto(solAvaluos.EstadoDescripcion.Replace(" ", "").ToUpper()) == nInm.QuitarAcentosTexto(Inmueble.NombreEstado.Replace(" ", "").ToUpper()) && nInm.QuitarAcentosTexto(solAvaluos.MunicipioDescripcion.Replace(" ", "").ToUpper()) == nInm.QuitarAcentosTexto(Inmueble.NombreMunicipio.Replace(" ", "").ToUpper())) { valCP = true; if (!string.IsNullOrEmpty(solAvaluos.CP)) { var res = solAvaluos.CP.Trim().Replace(" ", "").PadLeft(5, '0'); var res1 = Inmueble.CodigoPostal.Trim().Replace(" ", "").PadLeft(5, '0'); if (res != res1) { valCP = false; } } if (!valCP) { Respuesta.respuesta = false; Respuesta.Mensaje = "El secuencial de justipreciación proporcionado no corresponde con el código postal de la dirección del inmueble. Favor de validar tus datos"; return(Respuesta); } } else { Respuesta.respuesta = false; Respuesta.Mensaje = "El secuencial de justipreciación proporcionado no corresponde con la entidad federativa y municipio en la dirección del inmueble. Favor de validar tus datos"; return(Respuesta); } if (solAvaluos.SuperficieRentableDictaminado != null || solAvaluos.SuperficieRentable != null) { if ((solAvaluos.SuperficieRentableDictaminado != null) && (solAvaluos.SuperficieRentableDictaminado > 0)) { SupRentable = solAvaluos.SuperficieRentableDictaminado.Value.ToString("0.00"); } if ((solAvaluos.SuperficieRentable != null) && (solAvaluos.SuperficieRentable > 0)) { SupRentable = solAvaluos.SuperficieRentable.Value.ToString("0.00"); } } if (solAvaluos.MontoDictaminado != null) { MontoDictaminado = solAvaluos.MontoDictaminado.Value.ToString("0.00"); } if ((SupRentable == null && MontoDictaminado == null) || (Convert.ToDecimal(SupRentable) == 0 || Convert.ToDecimal(MontoDictaminado) == 0)) { string msjError = "El secuencial de justipreciación proporcionado con estatus de atención: " + solAvaluos.Estatus.ToUpper() + ", aun no cuenta con: <br/> * Monto dictaminado <br/> * Superficie rentable dictaminado ó capturada por el promovente en la solicitud de avalúo <br/> Es necesario que se cuente con esta información para poder registrarlo al contrato, por favor contacte al Indaabin"; if (solAvaluos.Estatus.ToUpper() != "CONCLUIDO") { msjError = "El secuencial de justipreciación proporcionado con estatus de atención: " + solAvaluos.Estatus.ToUpper() + ", aun no cuenta con: <br/> * Monto dictaminado <br/> * Superficie rentable dictaminado ó capturada por el promovente en la solicitud de avalúo <br/> Es necesario que se cuente con esta información para poder registrarlo al contrato, por favor contacte al Indaabin"; } Respuesta.Mensaje = msjError; Respuesta.respuesta = false; return(Respuesta); } DateTime?fechaDictamen = null; if (string.IsNullOrEmpty(solAvaluos.FechaDictamen.ToString()) == false) { fechaDictamen = Convert.ToDateTime(solAvaluos.FechaDictamen.Substring(0, 10)); } JustripreciacionContrato justipreciacion = new JustripreciacionContrato { MontoDictaminado = Convert.ToDecimal(MontoDictaminado), SuperficieDictaminada = SupRentable, UnidadMedidaSupRentableDictaminada = solAvaluos.UnidadMedidaRentable, EstatusAtencion = solAvaluos.Estatus, NoGenerico = solAvaluos.NoGenerico, FechaDictamen = fechaDictamen, descFechaDictamen = fechaDictamen == null ? "" : fechaDictamen.Value.ToString("d"), Secuencial = secuencial, InstitucionJustipreciacion = solAvaluos.InstitucionDescripcion, }; Respuesta.Justipreciacion = justipreciacion; Respuesta.respuesta = true; Respuesta.Mensaje = string.Empty; } catch (Exception ex) { Respuesta.respuesta = false; Respuesta.Mensaje = "Hubo un problema al realizar la búsqueda del secuencial. 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); }
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); }