/*=========================================================================================================================== * Instituto Costarricense de Acueductos y Alcantarillados. - 2015 * Administración de la Seguridad * Nombre de la Pantalla: frwBusquedaSolicitud.aspx * * Explicación de los contenidos del archivo *=========================================================================================================================== * HISTORIAL * * PERSONA DIA – MES - AÑO DESCRIPCIÓN * Esteban Gutierrez Rapso 20 – 04 - 2015 Se inicia con el diseño de la pagina * ………………………………………………………… * ………………………………………………………… *=========================================================================================================================== * Derechos Reservados (C) 2015 AyA. * ESTE CÓDIGO ES PROVEÍDO “TAL CUAL ES” SIN GARANTÍA ALGUNA * DE NINGÚN TIPO, SEA IMPLICITA O EXPLICITA. * NO SE PERMITE SU REPRODUCCIÓN PARCIAL O TOTAL, NI SU COMERCIALIZACIÓN *=========================================================================================================================== */ using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using AyABL; using AyABL.AUT.Autenticacion; using AyABL.APL; using AyADAL; using System.Configuration; using AyABL.RCS; using AyABL.Tran; using AyABL.Usuario; using System.Globalization; using System.IO; using AyABL.TRA; public partial class Forms_Trans_frwDeBajaSolicitud : General { #region Inicializar Formulario (R0) override protected void OnInit(EventArgs e) //M0 { try { base.OnInit(e); InicializarFormulario(); } catch (Exception ex) { MensajeError("Error en R0M0", ex); } } private void InicializarFormulario() //M1 { try { Response.Cache.SetCacheability(HttpCacheability.NoCache); Javascript.CheckAllGridViewItems(Page); } catch (Exception ex) { MensajeError("Error en R0M1", ex); } } #endregion #region Variables (R1) deBajaBL objDeBajaSolicitudBL; solicitudBL objSolicitudBL; UsuarioBL objUsuarioBL; GridView grvListaDeBajaTemp; string strNumSolicitudTMP = "0"; int nPKSolicitud = 0; #region variables del estandar string strPagina = string.Empty; string strScript = string.Empty; #endregion #endregion #region Eventos Formulario (R2) protected void Page_Load(object sender, EventArgs e) //M0 { try { ScriptManager.GetCurrent(Page).RegisterPostBackControl(btnGuardar); //ScriptManager.GetCurrent(Page).RegisterPostBackControl(btnImprimirDeBaja); if (Session["SOLICITUD"] != null && !Session["SOLICITUD"].ToString().Contains("-TMP")) { strNumSolicitudTMP = Session["SOLICITUD"].ToString(); nPKSolicitud = int.Parse(Session["PKSOLICITUD"].ToString()); lblNumSolicitud.Text = strNumSolicitudTMP; if (Request["d"] != null) { if (Request["d"].ToString() == "deshabilitar") { btnGuardar.Enabled = false; } } if ((!IsPostBack) && (Session.Count > 0)) { Session["Pagina"] = ""; mostrarFilaTabla(1); obtenerDeBajaSolicitud(strNumSolicitudTMP); } else { if (Session["Pagina"] == null) { //Response.Redirect("../wfrLogin.aspx?sesion=expiro", false); { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } } } } else { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } } catch (Exception ex) { MensajeError("Error en R2M0", ex); } } #endregion #region Eventos Controles Web (R3) protected void btnGuardarDeBaja_Click(object sender, EventArgs e) //M1 { try { int pkRegistro = 0; if (txtJustificacion.Text != string.Empty) pkRegistro = GuardarDatosDeBaja(); else { MensajeInformativo("Debe digitar la justificación"); } mostrarFilaTabla(1); if(pkRegistro !=0) MensajeInformativo(AyABL.BASESDEDATOS.ADS + "Interfaz: " + MensajesAplicacion.GuardadoExitoso.ToString()); } catch (Exception ex) { MensajeError("Error en R3M6", ex); } } protected void btnImprimirDeBaja_Click(object sender, EventArgs e)//M6 { /* * SE DEBE DAR PERMISOS DE ESCRITURA EN LA CARPETA PDF DEL WCFPDF AL USUARIO DE RED CON EL QUE ESTA LOGGEADA LA APLICACION EN EL APPPOOL */ try { string strResultado = ""; string strNombreArchivo = "deBaja" + Session["LOGIN"].ToString() + ".pdf"; Documento oDoc = new Documento(); //consulta la ruta en la que se encuentra ubicado la copia del archivo a consultar strResultado = oDoc.Consultar_Documento(lblNumSolicitud.Text + "|Otros", lblNumSolicitud.Text.Trim(), strNombreArchivo); int nTop = 400; if (strResultado != "" && strResultado != "No existe") { EjecutarScript("window.open('" + strResultado + "','','width=500,height=245,left=350,top=" + (nTop.ToString()) + "');"); } else { MensajeInformativo("El documento no se ha encontrado, vuelva a cancelar la solicitud."); } } catch (Exception ex) { MensajeError("Error en R3M6", ex); } } #endregion #region Metodos Personalizados (R4) /// /// Oculta las filas que lo requieran /// /// private void mostrarFilaTabla(int p_intFila) //M0 { try { divDatosSuperiores.Visible = true; } catch (Exception ex) { throw ex; } } /// /// Metodo que se utiliza para remover el role asignado al usuario /// /// private bool removerVisitaSolicitud(int p_nPk) //M3 { bool blnValorRetornado = false; try { objDeBajaSolicitudBL = new deBajaBL(); objDeBajaSolicitudBL.objdeBajaEL.PK = p_nPk; objDeBajaSolicitudBL.eliminarDeBajaSolicitud(); blnValorRetornado = true; } catch (Exception ex) { throw ex; } return blnValorRetornado; } #endregion #region Metodos Controles a Datos (R5) /// /// guarda y modifica registros en la tabla. /// /// private int GuardarDatosDeBaja() //M0 { int nValorRetornado = 0; string strRutaArchivosAdjuntos = string.Empty; int nNumSolicitudTMP = int.Parse(Session["PKSOLICITUD"].ToString()); int nNumeroSolicitudCFIA = 0; try { string strModo = ViewState["MODO"].ToString(); objDeBajaSolicitudBL = new deBajaBL(); objDeBajaSolicitudBL.objdeBajaEL.FKSOLICITUD = nPKSolicitud; objDeBajaSolicitudBL.objdeBajaEL.FECHA = DateTime.Now; objDeBajaSolicitudBL.objdeBajaEL.USUARIO = Session["LOGIN"].ToString(); objDeBajaSolicitudBL.objdeBajaEL.MOTIVO = txtJustificacion.Text; if (strModo == "Nuevo") { int nGeneraDoc = 0; nGeneraDoc = CrearDocumentoPDF(); if (nGeneraDoc == 1) { strRutaArchivosAdjuntos = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + strNumSolicitudTMP + @"\" + "deBaja" + Session["LOGIN"].ToString() + ".pdf"; //ser verifica el resultado de la solicitud solicitudBL objSolicitudBL = new solicitudBL(); objSolicitudBL.objSolicitudEL.PK = nNumSolicitudTMP; DataSet dsSolicitud = objSolicitudBL.dsExisteSolicitud(null); if (dsSolicitud.Tables[0].Rows.Count > 0) { if (dsSolicitud.Tables[0].Rows[0]["DESCRIPCIONDESCRIPCIONCFIA"].ToString() != "N/A" && dsSolicitud.Tables[0].Rows[0]["DESCRIPCIONDESCRIPCIONCFIA"].ToString() != string.Empty) nNumeroSolicitudCFIA = int.Parse(dsSolicitud.Tables[0].Rows[0]["DESCRIPCIONDESCRIPCIONCFIA"].ToString()); } //enviar notificacion a CFIA con el servicio de respuesta if (File.Exists(strRutaArchivosAdjuntos) && nNumeroSolicitudCFIA != 0) { APCR_WCF_Respuesta.ServicioClient wcfCfia = new APCR_WCF_Respuesta.ServicioClient(); APCR_WCF_Respuesta.Respuestas respuestaAPCR; byte[] bRespuestaPDF = System.IO.File.ReadAllBytes(strRutaArchivosAdjuntos); respuestaAPCR = wcfCfia.RespuestaSolicitud(nNumeroSolicitudCFIA, txtJustificacion.Text, 2, Session["LOGIN"].ToString(), bRespuestaPDF, 1, ConfigurationManager.AppSettings["LLAVEAPCR"].ToString()); File.Delete(strRutaArchivosAdjuntos); if (respuestaAPCR.Respuesta == true) { nValorRetornado = objDeBajaSolicitudBL.insertarDeBajaSolicitud(); //cambiar estado a la solicitud objSolicitudBL = new solicitudBL(); objSolicitudBL.objSolicitudEL.PK = nPKSolicitud; objSolicitudBL.objSolicitudEL.ASTATE = false; objSolicitudBL.darDeAlBaja(); programacionsolicitudBL objprogramacionsolicitudBL = new programacionsolicitudBL(); objprogramacionsolicitudBL.objprogramacionsolicitudEL.FKESTADOPROGRAMACION = 5;//Cancelada objprogramacionsolicitudBL.objprogramacionsolicitudEL.FKSOLICITUD = int.Parse(Session["PKSOLICITUD"].ToString()); objprogramacionsolicitudBL.objprogramacionsolicitudEL.PK = int.Parse(Session["PKPROGRAMACION"].ToString()); int nPKProgramacionSolicitud = objprogramacionsolicitudBL.modificarprogramacionsolicitud(); GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se ha cancelado la solicitud " + strNumSolicitudTMP.Trim(), "frwDeBajaSolicitud.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } else { MensajeAlerta("Se presento el siguiente problema a la hora de notificar al CFIA: " + respuestaAPCR.DescripcionError); } } if (nNumeroSolicitudCFIA == 0) { nValorRetornado = objDeBajaSolicitudBL.insertarDeBajaSolicitud(); //cambiar estado a la solicitud objSolicitudBL = new solicitudBL(); objSolicitudBL.objSolicitudEL.PK = nPKSolicitud; objSolicitudBL.objSolicitudEL.ASTATE = false; objSolicitudBL.darDeAlBaja(); programacionsolicitudBL objprogramacionsolicitudBL = new programacionsolicitudBL(); objprogramacionsolicitudBL.objprogramacionsolicitudEL.FKESTADOPROGRAMACION = 5;//Cancelada objprogramacionsolicitudBL.objprogramacionsolicitudEL.FKSOLICITUD = int.Parse(Session["PKSOLICITUD"].ToString()); objprogramacionsolicitudBL.objprogramacionsolicitudEL.PK = int.Parse(Session["PKPROGRAMACION"].ToString()); int nPKProgramacionSolicitud = objprogramacionsolicitudBL.modificarprogramacionsolicitud(); GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se ha cancelado la solicitud " + strNumSolicitudTMP.Trim(), "frwDeBajaSolicitud.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } } else MensajeInformativo("No se pudo generar el documento vuelva a intentar"); } else { APCR_WCF_Respuesta.ServicioClient wcfCfia = new APCR_WCF_Respuesta.ServicioClient(); APCR_WCF_Respuesta.Respuestas respuestaAPCR; byte[] bRespuestaPDF = null; respuestaAPCR = wcfCfia.RespuestaSolicitud(nNumeroSolicitudCFIA, txtJustificacion.Text, 2, Session["LOGIN"].ToString(), bRespuestaPDF, 1, ConfigurationManager.AppSettings["LLAVEAPCR"].ToString()); if (respuestaAPCR.Respuesta == true) { objDeBajaSolicitudBL.eliminarDeBajaSolicitud(); //cambiar estado a la solicitud objSolicitudBL = new solicitudBL(); objSolicitudBL.objSolicitudEL.PK = nPKSolicitud; objSolicitudBL.objSolicitudEL.ASTATE = true; objSolicitudBL.darDeAlBaja(); programacionsolicitudBL objprogramacionsolicitudBL = new programacionsolicitudBL(); objprogramacionsolicitudBL.objprogramacionsolicitudEL.FKESTADOPROGRAMACION = 6;//Bloqueada objprogramacionsolicitudBL.objprogramacionsolicitudEL.FKSOLICITUD = int.Parse(Session["PKSOLICITUD"].ToString()); objprogramacionsolicitudBL.objprogramacionsolicitudEL.PK = int.Parse(Session["PKPROGRAMACION"].ToString()); int nPKProgramacionSolicitud = objprogramacionsolicitudBL.modificarprogramacionsolicitud(); GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se ha activado la solicitud " + strNumSolicitudTMP.Trim(), "frwDeBajaSolicitud.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } else { MensajeAlerta("Se presento el siguiente problema a la hora de notificar al CFIA: " + respuestaAPCR.DescripcionError); } } obtenerDeBajaSolicitud(strNumSolicitudTMP); } catch (Exception ex) { objDeBajaSolicitudBL.eliminarDeBajaSolicitud(); throw ex; } return nValorRetornado; } private int CrearDocumentoPDF() { int nResult = 0; /* * SE DEBE DAR PERMISOS DE ESCRITURA EN LA CARPETA PDF DEL WCFPDF AL USUARIO DE RED CON EL QUE ESTA LOGGEADA LA APLICACION EN EL APPPOOL */ try { int counter = 0; string line; string p_strDocHtml = ""; // Read the file and display it line by line. string ruta = Server.MapPath(@"~/ASPPDF/deBaja/deBaja.asp"); System.IO.StreamReader file = new System.IO.StreamReader(ruta); while ((line = file.ReadLine()) != null) { p_strDocHtml += line; counter++; } file.Close(); //se carga un dataset con los datos que se pondran en el machote objSolicitudBL = new solicitudBL(); objSolicitudBL.objSolicitudEL.NUMEROSOLICITUD = strNumSolicitudTMP; DataSet dsUsuarios = objSolicitudBL.dsListaSolicitud(null); string strRegion = dsUsuarios.Tables[0].Rows[0]["DESCRIPCIONREGION"].ToString(); string strApartado = dsUsuarios.Tables[0].Rows[0]["APARTADODEPENDENCIASIGDD"].ToString(); string strTelefonoOficina = dsUsuarios.Tables[0].Rows[0]["TELEFONODEPENDENCIASIGDD"].ToString(); string strFaxOficina = dsUsuarios.Tables[0].Rows[0]["FAXDEPENDENCIASIGDD"].ToString(); string strFecha = DateTime.Now.ToShortDateString(); string strSolicitante = dsUsuarios.Tables[0].Rows[0]["NOMBRECOMPLETOSOLICITANTE"].ToString().ToLower(); strSolicitante = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(strSolicitante); string strTelefonoSolicitante = dsUsuarios.Tables[0].Rows[0]["TELEFONOSOLICITUD"].ToString(); string strFaxSolicitante = dsUsuarios.Tables[0].Rows[0]["FAXSOLICITUD"].ToString(); string strNombreCompletoPropietario = dsUsuarios.Tables[0].Rows[0]["NOMBRECLIENTESOLICITUD"].ToString(); string strProposito = dsUsuarios.Tables[0].Rows[0]["DESCRIPCIONPROYECTO"].ToString(); string strTipoTramite = dsUsuarios.Tables[0].Rows[0]["DESCRIPCIONTIPODISPONIBILIDAD"].ToString(); //Session["NOMBREEMPLEADO"] string strResponsable = Session["NOMBREEMPLEADO"].ToString().ToLower(); strResponsable = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(strResponsable); //se remplazan los datos del machote p_strDocHtml = p_strDocHtml.Replace("strRegion", strRegion); p_strDocHtml = p_strDocHtml.Replace("strApartado", strApartado); p_strDocHtml = p_strDocHtml.Replace("strTelefonoOficina", strTelefonoOficina); p_strDocHtml = p_strDocHtml.Replace("strFaxOficina", strFaxOficina); p_strDocHtml = p_strDocHtml.Replace("strFecha", strFecha); p_strDocHtml = p_strDocHtml.Replace("strCliente", strSolicitante); p_strDocHtml = p_strDocHtml.Replace("strTelefonoCliente", strTelefonoSolicitante); p_strDocHtml = p_strDocHtml.Replace("strFaxCliente", strFaxSolicitante); p_strDocHtml = p_strDocHtml.Replace("strNumSolicitud ", strNumSolicitudTMP); p_strDocHtml = p_strDocHtml.Replace("strNombreResponsable", strResponsable); p_strDocHtml = p_strDocHtml.Replace("strNombreCompletoPropietario", strNombreCompletoPropietario); p_strDocHtml = p_strDocHtml.Replace("strProposito", strProposito); p_strDocHtml = p_strDocHtml.Replace("strTipoTramite", strTipoTramite); p_strDocHtml = p_strDocHtml.Replace("strObservacion", txtJustificacion.Text); ASPDF.Service1Client clsGenerarDocumento = new ASPDF.Service1Client(); string strResult = clsGenerarDocumento.Generar_Documento_PDF(p_strDocHtml, "deBaja" + Session["LOGIN"].ToString()); string sourcePath = strResult; string strNombreArchivo = System.IO.Path.GetFileName(strResult); string pdfPath = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + strNumSolicitudTMP + @"\" + strNombreArchivo; if (System.IO.File.Exists(strResult)) { if (!System.IO.Directory.Exists(ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + strNumSolicitudTMP)) System.IO.Directory.CreateDirectory(ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + strNumSolicitudTMP); System.IO.File.Copy(strResult, pdfPath, true); System.IO.File.Copy(strResult, ConfigurationManager.AppSettings["RutaPdfAdjuntosSql"].ToString() + @"\" + strNombreArchivo, true); Documento oDoc = new Documento(); //se transaforma el archivo a un arreglo de bytes byte[] bDoc = System.IO.File.ReadAllBytes(pdfPath ); string nombreAdjunto = pdfPath + @"\" + strNombreArchivo.Replace(".pdf", ""); //se carga el archivo y el registro a vision 2020 string strResultado = oDoc.Archivar_Documento(lblNumSolicitud.Text.Trim() + "|" + "Otros", strNombreArchivo.Replace(" ", "_"), bDoc); //if (strResultado == string.Empty) //{ //} } nResult = 1; } catch (Exception ex) { nResult = 0; throw ex; } return nResult; } #endregion #region Metodos Datos a Controles (R6) /// /// LLena el listado de roles de usuario /// private void obtenerDeBajaSolicitud(string strNumSolicitud) //M3 { try { //Instancia el objeto objDeBajaSolicitudBL = new deBajaBL(); objUsuarioBL = new UsuarioBL(); //Asigna un valor al atributo de referencia del objeto objDeBajaSolicitudBL.objdeBajaEL.FKSOLICITUD = nPKSolicitud; //Carga en un dataset la información DataSet ds = objDeBajaSolicitudBL.listarDeBajaSolicitud(); if (ds.Tables[0].Rows.Count > 0) { ViewState["MODO"] = "Modificar"; btnGuardar.Text = "Activar"; lblFechaDeBaja.Text = ds.Tables[0].Rows[0]["FECHACANCELARSOLICITUD"].ToString(); lblResponsable.Text = ds.Tables[0].Rows[0]["USUARIOCANCELARSOLICITUD"].ToString(); txtJustificacion.Text = ds.Tables[0].Rows[0]["MOTIVOCANCELARSOLICITUD"].ToString(); objUsuarioBL.objUsuarioEL.Login = ds.Tables[0].Rows[0]["USUARIOCANCELARSOLICITUD"].ToString(); DataSet dsUsuario = objUsuarioBL.dsLogueo(objUsuarioBL.objUsuarioEL); if (dsUsuario.Tables[0].Rows.Count != 0) { //lblResponsable.Text = dsUsuario.Tables[0].Rows[0]["NOMBRECOMPLETO"].ToString(); string strSolicitante = dsUsuario.Tables[0].Rows[0]["NOMBRECOMPLETO"].ToString().ToLower(); lblResponsable.Text = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(strSolicitante); } btnImprimir.Visible = true; } else { ViewState["MODO"] = "Nuevo"; btnGuardar.Text = "Procesar"; lblFechaDeBaja.Text = DateTime.Now.ToShortDateString(); lblResponsable.Text = Session["NOMBREEMPLEADO"].ToString(); txtJustificacion.Text = ""; objUsuarioBL.objUsuarioEL.Login = Session["LOGIN"].ToString(); DataSet dsUsuario = objUsuarioBL.dsLogueo(objUsuarioBL.objUsuarioEL); if (dsUsuario.Tables[0].Rows.Count != 0) { //lblResponsable.Text = dsUsuario.Tables[0].Rows[0]["NOMBRECOMPLETO"].ToString(); string strSolicitante = dsUsuario.Tables[0].Rows[0]["NOMBRECOMPLETO"].ToString().ToLower(); lblResponsable.Text = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(strSolicitante); } btnImprimir.Visible = false; } } catch (Exception ex) { throw ex; } } #endregion }