/*=========================================================================================================================== * 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.Text; using System.Security.Cryptography; using System.IO; using AyABL.TRA; using iTextSharp.text; using iTextSharp.text.pdf; using Ionic.Zip; public partial class Forms_Trans_frwCartaSolicitud : 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); grvListaCartaSolicitud.Columns[1].ItemStyle.Width = 150; //cuwVentanaEmergenteDevolucion.AbrirVentanaEmergenteDevolucion += new ControlUsuario_cuwVentanaEmergenteDevolucion.SearchEvent(AbrirVentanaEmergenteDevolucion); } catch (Exception ex) { MensajeError("Error en R0M1", ex); } } #endregion #region Variables (R1) estadoCartaBL objEstadoCargaBL; tipoCartaBL objTipoCartaBL; //solicitudBL objSolicitudBL; usuarioBL objUsuarioBL; UsuarioBL objUsuarioAyABL ; cartaBL objCartaBL; DropDownList ddlTemporal, ddlTemporal2; string strNumSolicitudTMP = string.Empty; int nNumeroSolicitudCFIA = 0; #region variable firma digital int nNumSolicitudTMP = 0; int nPKReutilizaTMP = 0; /// /// Código del sistema cliente del servicio de firma digital. Cada sistema cliente debe usar un código diferente. /// private const string CodigoSistema = "SIGPC"; /// /// Identificador del usuario definido para el sistema cliente /// private long IdUsuarioSistemaCliente { get { return long.Parse(ConfigurationManager.AppSettings["IdUsuarioSistemaCliente"]); } } #endregion #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 { strPKSolicitudTMP = Session["PKSOLICITUD"].ToString(); ScriptManager.GetCurrent(Page).RegisterPostBackControl(btnNuevoCarta); ScriptManager.GetCurrent(Page).RegisterPostBackControl(grvListaCartaSolicitud); if (Session["SOLICITUD"] != null && !Session["SOLICITUD"].ToString().Contains("-TMP")) { nNumSolicitudTMP = int.Parse(Session["PKSOLICITUD"].ToString()); nPKReutilizaTMP = int.Parse(Session["FKREUTILIZA"].ToString()); lblNumSolicitud.Text = Session["SOLICITUD"].ToString(); strNumSolicitudTMP = Session["SOLICITUD"].ToString(); if (Request["d"] != null) { if (Request["d"].ToString() == "deshabilitar" || Request["d"].ToString() == "finalizado" )// || Request["d"].ToString() == "constancia") probar esto { mostrarFilaTabla(1); ddlJefatura1.Enabled = false; ddlJefatura2.Enabled = false; btnGuardar.Enabled = false; btnNuevoCarta.Enabled = false; //cuwVentanaEmergenteDevolucion.Visible = false; } if (Request["d"].ToString() == "finalizado") { btnFinalizar.Enabled = false; } if (Request["d"].ToString() == "firmar") chkFirmado.Visible = true; chkNotificacion.Visible = true; } if ((!IsPostBack) && (Session.Count > 0)) { Session["Pagina"] = ""; mostrarFilaTabla(2); //solicitudBL objSolicitudBL = new solicitudBL(); //objSolicitudBL.objSolicitudEL.PK = int.Parse(Session["PKPROGRAMACION"].ToString()); ////objSolicitudBL.objSolicitudEL.FKUSUARIOXDEPENDENCIA = int.Parse(Session["PKUSUARIOXDEPENDENCIA"].ToString()); //DataSet ds = objSolicitudBL.dsListaActividadesEncargado(null); //if (ds.Tables[0].Rows[0]["CLASIFICACIONSOLICITUD"].ToString() == "Crecimiento vegetativo") //{ // ddlJefatura2.Enabled = false; //} verificarCartaSolicitud(nNumSolicitudTMP, "", nPKReutilizaTMP); llenarDDLtipoformulario(); ddlTemporal = (DropDownList)tdLista.FindControl("ddlJefatura1"); llenarDDLjefatura(ddlTemporal); ddlTemporal2 = (DropDownList)tdLista.FindControl("ddlJefatura2"); llenarDDLjefatura(ddlTemporal2); } } else { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } if (ViewState["MODO"] != null) { if (ViewState["MODO"].ToString() == "Firmador") { obtenerDocumentoFirmado(); } } } catch (Exception ex) { MensajeError("Error en R2M0", ex); } } protected void btnSalirNotificacionCliente_Click(object sender, EventArgs e) { try { //string pdfPathDocumentos = ConfigurationManager.AppSettings["RutaPdfAdjuntosSql"].ToString() + @"\" + Session["SOLICITUD"].ToString().Trim(); //if (Directory.Exists(pdfPathDocumentos)) // Directory.Delete(pdfPathDocumentos, true); EjecutarScript("VentanaCerrarNotificacionCliente();VentanaAbrirActividades();"); //CargarImagenesSeguimientoActividades(int.Parse(Session["PKPROGRAMACION"].ToString())); } catch (Exception ex) { EjecutarScript("window.parent.VentanaCerrarNotificacionClienteSesion();"); } } public void limpiarCampos() //M2 { txtDestinatario.Text = string.Empty; txtObservaciones.Text = string.Empty; } protected void ddlTipoRevision_SelectedIndexChanged(object sender, EventArgs e) //M3 { try { limpiarCampos(); if (ddlTipoRevision.SelectedValue == "3") dvExaminar.Visible = true; else dvExaminar.Visible = false; } catch (Exception ex) { MensajeError("Error en R3M3", ex); } } private bool SubirDocumentos(string strAccion) { bool bRespuesta = true; string rutaAdjuntos = string.Empty; try { String path = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + lblNumSolicitud.Text.Trim() + @"\DocumentosREQ\"; DirectoryInfo di = new DirectoryInfo(path); foreach (var fi in di.GetFiles()) { string ext = Path.GetExtension(fi.Name); if (ext == ".pdf" || ext == ".PDF") { //string targetUrl = "'../../../DocumentosPDF/" + lblNumSolicitud.Text.Trim() + @"/"; string fname = Path.GetFileName(fi.Name); //subir documentos a vision 2020 Documento oDoc = new Documento(); string fileDirectory = path + fi.Name.Replace(" ", "_"); //se transaforma el archivo a un arreglo de bytes byte[] bDoc = System.IO.File.ReadAllBytes(fileDirectory); string nombreAdjunto = fi.Name.Replace(".pdf", ""); //se carga el archivo y el registro a vision 2020 string strResultado = oDoc.Archivar_Documento(lblNumSolicitud.Text.Trim() + "|" + "Otros", fi.Name.Replace(" ", "_"), bDoc); if (strResultado != string.Empty) bRespuesta = false; else { bRespuesta = true; File.Delete(fileDirectory); } } } } catch (Exception ex) { bRespuesta = false; MensajeError("Se dio un error al subir los documentos....", ex); } return bRespuesta; } string strPKSolicitudTMP = "0"; private DataSet obtenerAdjuntos() { DataSet dsResult = new DataSet(); try { adjuntoBL objAdjuntoBL = new adjuntoBL(); objAdjuntoBL.objadjuntoEL.FKSOLICITUD = int.Parse(strPKSolicitudTMP); //objAdjuntoBL.objadjuntoEL.FKREUTILIZA = int.Parse(strPKReutiliza); char[] separadorColumna = { '-' }; string[] arrSolicitud = Session["SOLICITUD"].ToString().Split(separadorColumna); objAdjuntoBL.objadjuntoEL.NUMEROSOLICITUD = arrSolicitud[1].ToString(); dsResult = objAdjuntoBL.listarAdjuntos(null, false); } catch (Exception ex) { throw ex; } return dsResult; } private void llenarAdjuntos() { try { DataSet ds = obtenerAdjuntos(); if (ds.Tables[0].Rows.Count > 0) { //if (ds.Tables[0].Rows[0]["DESCRIPCIONDOCUMENTO"].ToString() != string.Empty) { grvListaAdjuntos.DataSource = ds; grvListaAdjuntos.DataBind(); General.detalleGridView(ds, grvListaAdjuntos, null); //mostrarFilaTabla(1); // llenarRequisitos(); } } } catch (Exception ex) { throw ex; } } protected void grvListaAdjuntos_PageIndexChanging(object sender, GridViewPageEventArgs e) { try { grvListaAdjuntos.PageIndex = e.NewPageIndex; llenarAdjuntos(); } catch (Exception ex) { MensajeError("Error en R3M3", ex); } } protected void grvListaAdjuntos_RowCommand(object sender, GridViewCommandEventArgs e) { try { int i = Convert.ToInt32(e.CommandArgument); GridViewRow selectedRow = grvListaAdjuntos.Rows[i]; int nPk = int.Parse(selectedRow.Cells[1].Text); //int nFKAdjunto = int.Parse(selectedRow.Cells[4].Text); string strNombreAdjunto = selectedRow.Cells[2].Text.Replace(" ", "_"); if (e.CommandName == "ver") { string pdfPath = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + selectedRow.Cells[5].Text + @"\DocumentosREQ\" + strNombreAdjunto; string targetURL = "'../../DocumentosPDF/" + selectedRow.Cells[5].Text.Trim() + "/DocumentosREQ/" + strNombreAdjunto + "'"; if (System.IO.File.Exists(pdfPath)) { EjecutarScript("abrirPDF(" + targetURL + ");"); } else { string strResultado = ""; Documento oDoc = new Documento(); //consulta la ruta en la que se encuentra ubicado la copia del archivo a consultar strResultado = oDoc.Consultar_Documento(selectedRow.Cells[5].Text.Trim() + "|Otros", selectedRow.Cells[5].Text.Trim(), strNombreAdjunto); int nTop = 400; if (strResultado != "" && strResultado != "No existe") { EjecutarScript("window.open('" + strResultado + "','','width=500,height=245,left=350,top=" + (nTop.ToString()) + "');"); } else { EjecutarScript("MensajeInformativoCompleto('No se encontró el documento." + strNombreAdjunto + "');"); } } } } catch (Exception ex) { MensajeError("Error en R3M15", ex); } } protected void grvListaAdjuntos_RowDataBound(object sender, GridViewRowEventArgs e) { try { e.Row.Cells[5].Visible = false;//OCULTAR NUMERO DE SOLICITUD if (e.Row.RowType == DataControlRowType.DataRow) { bool bEnvioCorreo = false; if (e.Row.Cells[6].Text != " ") bEnvioCorreo = bool.Parse(e.Row.Cells[6].Text); HtmlInputCheckBox chkTemp = (HtmlInputCheckBox)e.Row.Controls[0].Controls[1]; chkTemp.Checked = bEnvioCorreo; } e.Row.Cells[6].Visible = false;//OCULTAR ENVIOCORREO } catch (Exception) { } } protected void btnSubirarchivo_Click(object sender, EventArgs e) { try { string strRequisito = string.Empty; //if(txtdescripcion.Text != string.Empty) //{ bool bSubirDocs = SubirDocumentos(" "); if (bSubirDocs) { llenarAdjuntos(); EjecutarScript("MensajeInformativo();"); } //} //else //{ // MensajeAlerta("Debe agregar la descripción del requisito..."); //} } catch (Exception ex) { MensajeError("Se produjo un error en la operación", ex); } } #endregion #region Eventos Controles Web (R3) protected void btnEnviarRevision_Click(object sender, EventArgs e) //M0 { try { //if (ddlTipoRevision.SelectedValue != "3" || (ddlTipoRevision.SelectedValue == "3" && File.Exists(ConfigurationManager.AppSettings["RutaPdfAdjuntosSql"].ToString() + @"\" + lblNumSolicitud.Text.Trim() + @"\DocumentosREQ\" + lblNumSolicitud.Text.Trim() + "_DF" + ".pdf"))) //{ string strRutaArchivosAdjuntos = string.Empty; int nNumSolicitudTMP = int.Parse(Session["PKSOLICITUD"].ToString()); strRutaArchivosAdjuntos = obtenerCartaSolicitud(nNumSolicitudTMP); //MensajeInformativo("llego7"); if (validarTamañoArchivos(strRutaArchivosAdjuntos)) { if (txtDestinatario.Text != string.Empty) { notificacionClienteBL objNotificacionCliente = new notificacionClienteBL(); objNotificacionCliente.objnotificacionClienteEL.DESTINATARIO = txtDestinatario.Text; objNotificacionCliente.objnotificacionClienteEL.OBSERVACIONES = txtObservaciones.Text; objNotificacionCliente.objnotificacionClienteEL.FECHAENVIO = DateTime.Now; objNotificacionCliente.objnotificacionClienteEL.FKTIPONOTIFICACION = int.Parse(ddlTipoRevision.SelectedValue.ToString()); objNotificacionCliente.objnotificacionClienteEL.FKUSUARIOXDEPENDENCIA = int.Parse(Session["PKUSUARIOXDEPENDENCIA"].ToString()); objNotificacionCliente.objnotificacionClienteEL.FKSOLICITUD = int.Parse(Session["PKSOLICITUD"].ToString()); objNotificacionCliente.objnotificacionClienteEL.ASTATE = true; int nPKNotificacion = objNotificacionCliente.insertarNotificacionCliente(); if (nPKNotificacion > 0) { GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se ha registrado la notificacion al cliente en la solicitud " + strNumSolicitudTMP, "frwNotificacionCliente.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); if (ddlTipoRevision.SelectedValue == "1" || ddlTipoRevision.SelectedValue == "3") { #region Envio de correo externo //System.Drawing.Image img = System.Drawing.Image.FromFile(ConfigurationManager.AppSettings["Imagenes"].ToString()); //string imgStr = imageToByteArray(img); string p_strDocHtml = ""; //string strImage64Bits = "data:image/jpg;base64," + imgStr; //p_strDocHtml = p_strDocHtml.Replace("/logoAyA.png", strImage64Bits); string strCuerpo = "El Instituto Costarricense de Acueductos y Alcantarillados  le comunica que  su trámite de Disponibilidad de Servicios  ha sido concluido el " + DateTime.Now.ToLongDateString() + ".
Estamos para servirle, en nuestro horario de atención de 7:00 AM a 3:00 PM en las oficinas de AyA, si tiene alguna duda por favor contáctenos al teléfono " + Session["TELEFONODEPENDENCIA"].ToString() + " o al 800-737-6783.

" + p_strDocHtml + "

Este es un mensaje generado de forma automática a la dirección de correo electrónico que usted ha suministrado por la cual NO DEBE SER RESPONDIDO. Base legal para esta alerta: Artículo Artículo 239 y siguientes de la Ley General de la Administración Pública."; string strPiePagina = "


AVISO DE CONFIDENCIALIDAD: este mensaje y la información incluida en él es confidencial y está dirigida únicamente al destinatario. Puede contener información privilegiada, confidencial, amparada por el secreto profesional o que no debe ser revelada. Si usted ha recibido este correo por error, por favor comunicarlo inmediatamente vía correo y tener la amabilidad de eliminarlo de su sistema. Queda notificado que no deberá copiar este mensaje, ni utilizar, divulgar, publicar o distribuir su contenido de modo alguno. Todo mensaje enviado a esta dirección de correo electrónico puede ser sujeto a inspección por alguien distinto de su receptor originario. La transmisión de correos no garantiza que el correo electrónico sea seguro o libre de error. Por consiguiente, se advierte que esta información pueda estar incompleta o ser poco precisa ya que toda información está sujeta a alterarse sin previo aviso.”"; string strAsunto = "Resolución de Trámite de Disponibilidad de Servicios"; AyABL.TRA.correoExternoBL objcorreoExternoBL = new AyABL.TRA.correoExternoBL(); objcorreoExternoBL.objcorreoExternoEL.p_recipients = txtDestinatario.Text; objcorreoExternoBL.objcorreoExternoEL.p_copy = ""; objcorreoExternoBL.objcorreoExternoEL.p_subject = strAsunto; objcorreoExternoBL.objcorreoExternoEL.p_body = strCuerpo + strPiePagina; objcorreoExternoBL.objcorreoExternoEL.P_PRIORIDAD = "High"; objcorreoExternoBL.objcorreoExternoEL.p_format = "html"; #region adjuntar constancias objcorreoExternoBL.objcorreoExternoEL.p_file_attachments = strRutaArchivosAdjuntos;//obtenerCartaSolicitud(nNumSolicitudTMP); #endregion int nValorRetornado = objcorreoExternoBL.EnviarCorreoExterno(); objcorreoExternoBL.objcorreoExternoEL.p_recipients = Session["LOGIN"].ToString() + "@aya.go.cr"; nValorRetornado = objcorreoExternoBL.EnviarCorreoExterno(); GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se envió el correo de notificación a la dirección " + txtDestinatario.Text, "frwNotificacionCliente.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); #endregion } //llenarGridNotificacionClientes(); limpiarCampos(); btnFinalizar.Enabled = true; chkNotificacion.Enabled = false; MensajeInformativo("Se ha enviado la notificación al cliente."); } } else { MensajeAlerta("Debe digitar el teléfono o correo del destinatario."); } //} //else //{ // MensajeAlerta("Debe adjuntar el documento fisico de respuesta al cliente."); //} } } catch (Exception ex) { //Trace.Write(ex.Message.ToString()); MensajeError("Error en R3M0 Error al registrar la notificación al cliente", ex); } } private string obtenerCartaSolicitud(int nNumSolicitud) //M2 { string strResultado = string.Empty; string pdfPathConstancia = string.Empty; string pdfPathCriterioAP = string.Empty; string pdfPathCriterioAS = string.Empty; string pdfPathAdjuntos = string.Empty; string strNombreCarta = string.Empty; string targetURL = string.Empty; string ruta = string.Empty; try { #region constancias //Instancia el objeto cartaBL objCartaBL = new cartaBL(); //Trace.Write("Paso 0"); //Asigna un valor al atributo de referencia del objeto objCartaBL.objCartaEL.FKNUMSOLICITUD = nNumSolicitud; objCartaBL.objCartaEL.NOMBREDOCUMENTO = string.Empty; //objCartaBL.objCartaEL.FKREUTILIZA = nPKReutiliza; //Carga en un dataset la información DataSet ds = objCartaBL.listarCartas(); if (ds.Tables[0].Rows.Count > 0) { string pdfPath = ""; //ViewState["MODO"] = "Modificar"; foreach (DataRow row in ds.Tables[0].Rows) { try { if (row["DESCRIPCIONESTADOCARTA"].ToString() == "Activo") { char delimitador = '-'; string[] arrayNombre = row["NOMBREDOCUMENTOCARTA"].ToString().Split(delimitador); pdfPath = ConfigurationManager.AppSettings["RutaPdfAdjuntosSql"].ToString() + @"\" + arrayNombre[1].ToString() + "-" + arrayNombre[2].ToString() + "-" + arrayNombre[3].ToString() + @"\" + row["NOMBREDOCUMENTOCARTA"].ToString() + ".pdf"; ruta = ConfigurationManager.AppSettings["RutaPdfAdjuntosSql"].ToString() + @"\" + arrayNombre[1].ToString() + "-" + arrayNombre[2].ToString() + "-" + arrayNombre[3].ToString(); if (!File.Exists(pdfPath)) { //MensajeInformativo("llego5");no entro //obtener la constancia y ponerla en la carpeta compartida para el envio de correo //se el registro de vision 2020 Documento oDoc = new Documento(); string strAlmacenado = oDoc.Visor_Documento(strNumSolicitudTMP.ToString().Trim() + "|" + "Constancia", strNumSolicitudTMP.ToString().Trim(), pdfPath, row["NOMBREDOCUMENTOCARTA"].ToString() + ".pdf"); if (strAlmacenado != string.Empty && strAlmacenado != "No existe") strResultado += pdfPath + ";"; } else { strResultado += pdfPath + ";"; } } } catch (Exception exp) { MensajeError(exp.ToString(), exp); } } strResultado += ConfigurationManager.AppSettings["RutaPdfAdjuntosSql"].ToString() + @"\logoAyA.png;"; } #endregion //Trace.Write("Paso 1"); #region formulario agua potable //limpiarCampos(); strNombreCarta = strNumSolicitudTMP; pdfPathCriterioAP = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + strNumSolicitudTMP + @"\" + strNombreCarta + "-AP.pdf"; ruta = ConfigurationManager.AppSettings["RutaPdfAdjuntosSql"].ToString() + @"\" + strNumSolicitudTMP; if (!File.Exists(pdfPathCriterioAP)) { //se carga el archivo y el registro a vision 2020 Documento oDoc = new Documento(); string strAlmacenado = oDoc.Visor_Documento(strNumSolicitudTMP.ToString().Trim() + "|" + "Criterio técnico AP", strNumSolicitudTMP.ToString().Trim(), pdfPathCriterioAP, strNombreCarta + "-AP.pdf"); if (strAlmacenado != string.Empty && strAlmacenado != "No existe") strResultado += pdfPathCriterioAP + ";"; ; } else { //EjecutarScript("alert('" + pdfPathCriterioAP + "-" + ruta + @"\" + strNombreCarta + "-AP.pdf" + "');"); // File.Copy(pdfPathCriterioAP, ruta + @"\" + strNombreCarta + "-AP.pdf", true); strResultado += (ruta + @"\" + strNombreCarta + "-AP.pdf" + ";"); } #endregion //Trace.Write("Paso 2"); #region formulario alcantarillado sanitario //limpiarCampos(); strNombreCarta = strNumSolicitudTMP; pdfPathCriterioAS = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + strNumSolicitudTMP + @"\" + strNombreCarta + "-AS.pdf"; ruta = ConfigurationManager.AppSettings["RutaPdfAdjuntosSql"].ToString() + @"\" + strNumSolicitudTMP; targetURL = "'../../DocumentosPDF/" + strNumSolicitudTMP + "/" + strNombreCarta + "-AS.pdf'"; if (!File.Exists(pdfPathCriterioAS)) { //se carga el archivo y el registro a vision 2020 Documento oDoc = new Documento(); string strAlmacenado = oDoc.Visor_Documento(strNumSolicitudTMP.ToString().Trim() + "|" + "Criterio técnico AS", strNumSolicitudTMP.ToString().Trim(), pdfPathCriterioAS, strNombreCarta + "-AS.pdf"); if (strAlmacenado != string.Empty && strAlmacenado != "No existe") strResultado += pdfPathCriterioAS + ";"; ; } else { //File.Copy(pdfPathCriterioAS, ruta + @"\" + strNombreCarta + "-AS.pdf", true); strResultado += (ruta + @"\" + strNombreCarta + "-AS.pdf" + ";"); } #endregion //Trace.Write("Paso 3"); #region adjuntos // recorro el grid foreach (GridViewRow row in grvListaAdjuntos.Rows) { HtmlInputCheckBox chkTemp = (HtmlInputCheckBox)row.Controls[0].Controls[1]; if (chkTemp != null) { // si el registro esta marcado if (chkTemp.Checked) { string strNombreDocumento = row.Cells[2].Text; ruta = ConfigurationManager.AppSettings["RutaPdfAdjuntosSql"].ToString() + @"\" + lblNumSolicitud.Text.Trim() + @"\DocumentosREQ\"; pdfPathAdjuntos = ConfigurationManager.AppSettings["RutaPdfAdjuntosSql"].ToString() + @"\" + lblNumSolicitud.Text.Trim() + @"\DocumentosREQ\" + strNombreDocumento; if (!File.Exists(pdfPathAdjuntos)) { //obtener la constancia y ponerla en la carpeta compartida para el envio de correo //se el registro de vision 2020 Documento oDoc = new Documento(); string strAlmacenado = oDoc.Visor_Documento(strNumSolicitudTMP.ToString().Trim() + "|" + "Otros", strNumSolicitudTMP.ToString().Trim(), pdfPathAdjuntos, strNombreDocumento); if (strAlmacenado != string.Empty && strAlmacenado != "No existe")//si el documento es adjuntado al correo desde vision 2020 { strResultado += pdfPathAdjuntos + ";"; ; AyABL.Tran.adjuntoBL objdocumentoBL = new AyABL.Tran.adjuntoBL(); objdocumentoBL.objadjuntoEL.PK = int.Parse(row.Cells[1].Text); int nPKDocumento = objdocumentoBL.modificarEnvioCorreoAdjunto();//pone el adjunto como enviado en el correo } } else { if (File.Exists(pdfPathAdjuntos))//si el documento es adjuntado al correo desde la ruta fisica { strResultado += pdfPathAdjuntos + ";"; ; AyABL.Tran.adjuntoBL objdocumentoBL = new AyABL.Tran.adjuntoBL(); objdocumentoBL.objadjuntoEL.PK = int.Parse(row.Cells[1].Text); int nPKDocumento = objdocumentoBL.modificarEnvioCorreoAdjunto();//pone el adjunto como enviado en el correo } } } } } //Trace.Write("Paso 4"); #endregion } catch (Exception ex) { //EjecutarScript("alert('" + ex.Message.ToString() + "');"); throw ex; } return strResultado; } public bool validarTamañoArchivos(string strRutaArchivos) { bool bResultado = false; int nMaximoTamañoCorreo = int.Parse(ConfigurationManager.AppSettings["TamañoArchivosBytes"].ToString()); long nSumTamañoAdjuntos = 0; string strInfoArchivos = string.Empty; try { char[] separadorAdjuntos = { ';' }; string[] strArrayAdjuntos = strRutaArchivos.Split(separadorAdjuntos); for (int i = 0; i <= (strArrayAdjuntos.Length - 1); i++) { if (strArrayAdjuntos[i] != string.Empty) { if (File.Exists(strArrayAdjuntos[i].ToString())) { FileInfo file = new FileInfo(strArrayAdjuntos[i].ToString()); nSumTamañoAdjuntos += file.Length; if (nSumTamañoAdjuntos < nMaximoTamañoCorreo) bResultado = true; else bResultado = false; decimal dResultado = decimal.Divide(decimal.Parse(file.Length.ToString()), decimal.Parse("1048576")); strInfoArchivos += file.Name + " - " + dResultado.ToString("N2") + " MB
"; } } } if (bResultado == false) { MensajeAlerta("El tamaño de los archivos excede el limite permitido " + (int.Parse(ConfigurationManager.AppSettings["TamañoArchivosBytes"].ToString()) / 1048576).ToString() + " MB.
" + strInfoArchivos);//conversion a megabytes } } catch (Exception ex) { throw ex; } return bResultado; } protected void chkNotificacion_CheckedChanged(object sender, EventArgs e) { try { if (chkNotificacion.Checked) { divNotificacion.Visible = true; btnFinalizar.Enabled = false; } else { divNotificacion.Visible = false; txtDestinatario.Text = ""; txtObservaciones.Text = ""; chkCFIA.Checked = false; btnFinalizar.Enabled = true; } } catch (Exception ex) { MensajeError("Se dio un error.", ex); } finally { EjecutarScript("inicializaTab('formulario');"); } } protected void btnNuevaCarta_Click(object sender, EventArgs e) //M1 { try { //limpiarCampos(); ViewState["MODO"] = "Nuevo"; mostrarFilaTabla(3); //Limpia el grid de Active Directory ddlTipoFormulario.Focus(); } catch (Exception ex) { MensajeError("Error en R3M6", ex); } } /// /// Metodo que se utiliza para borrar clientes /// /// /// protected void grvListaCartaSolicitud_RowCommand(object sender, GridViewCommandEventArgs e) //M2 { PdfReader reader = null; FileStream fs = null; PdfStamper stamp = null; Document document = null; try { int i = Convert.ToInt32(e.CommandArgument); GridViewRow selectedRow = grvListaCartaSolicitud.Rows[i]; int nPk = int.Parse(selectedRow.Cells[0].Text); Char delimiter = '-'; string[] arrayDoc = selectedRow.Cells[1].Text.Split(delimiter);//SIGDD - AÑO - CONTADOR - CONTADOR DOCUMENTO - CONTADOR VERSION string strNombreCarta = arrayDoc[0].ToString() + "-" + arrayDoc[1].ToString() + "-" + arrayDoc[2].ToString() + "-" + arrayDoc[3].ToString() + "-" + arrayDoc[4].ToString() + "-" + arrayDoc[5].ToString(); if (e.CommandName == "eliminar") { if (eliminarCartaSolicitud(nPk)) obtenerCartaSolicitud(nNumSolicitudTMP, "", nPKReutilizaTMP); GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.EliminarRegistro + ": Se ha eliminado la carta " + strNombreCarta + " de la solicitud " + selectedRow.Cells[1].Text, "frwCartaSolicitud.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } if (e.CommandName == "renovar") { if (RenovarDocumento(nNumSolicitudTMP, selectedRow.Cells[1].Text, nPk)) obtenerCartaSolicitud(nNumSolicitudTMP, "", nPKReutilizaTMP); GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se ha renovado el documento " + selectedRow.Cells[1].Text + " para la solicitud " + Session["SOLICITUD"].ToString().Trim(), "frwCartaSolicitud.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } if (e.CommandName == "reconsiderar") { //Instancia el objeto objCartaBL = new cartaBL(); //Asigna un valor al atributo de referencia del objeto objCartaBL.objCartaEL.FKNUMSOLICITUD = nNumSolicitudTMP; objCartaBL.objCartaEL.NOMBREDOCUMENTO = selectedRow.Cells[1].Text; //Carga en un dataset la información DataSet ds = objCartaBL.listarCartas(); if (int.Parse(ds.Tables[0].Rows[0]["FKESTADO"].ToString()) == 1) { //limpiarCampos(); eliminarCartaSolicitud(nPk); ViewState["MODO"] = "Reconsiderar"; ViewState["RECONSIDERAR"] = selectedRow.Cells[1].Text; mostrarFilaTabla(3); //Limpia el grid de Active Directory ddlTipoFormulario.Focus(); llenarDDLtipoformulario(); ddlTemporal = (DropDownList)tdLista.FindControl("ddlJefatura1"); llenarDDLjefatura(ddlTemporal); ddlTemporal2 = (DropDownList)tdLista.FindControl("ddlJefatura2"); llenarDDLjefatura(ddlTemporal2); } else { { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } } } if (e.CommandName == "editar") { //limpiarCampos(); editarDocumento(strNombreCarta); } if (e.CommandName == "firmar") { //limpiarCampos(); firmarDocumento(strNombreCarta); } if (e.CommandName == "ver") { //limpiarCampos(); char delimitador = '-'; string[] arrayNombre = strNombreCarta.Split(delimitador); string strResultado = string.Empty; string pdfPath = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + arrayNombre[1].ToString() + "-" + arrayNombre[2].ToString() + "-" + arrayNombre[3].ToString() + @"\" + strNombreCarta + ".pdf"; string targetURL = "'../../DocumentosPDF/" + arrayNombre[1].ToString() + "-" + arrayNombre[2].ToString() + "-" + arrayNombre[3].ToString() + "/" + strNombreCarta + ".pdf'"; string ruta = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + arrayNombre[1].ToString() + "-" + arrayNombre[2].ToString() + "-" + arrayNombre[3].ToString(); if (System.IO.File.Exists(pdfPath)) { #region constancias Documento oDoc = new Documento(); byte[] bDoc = System.IO.File.ReadAllBytes(pdfPath); //se carga el archivo y el registro a vision 2020 strResultado = oDoc.Archivar_Documento(strNumSolicitudTMP.ToString().Trim() + "|" + "Constancia", strNombreCarta + ".pdf", bDoc); if (strResultado == string.Empty ) { //File.Delete(pdfPath); } #endregion } //if (!File.Exists(pdfPath)) { //obtener la constancia y ponerla en la carpeta compartida para el envio de correo //se el registro de vision 2020 Documento oDoc = new Documento(); strResultado = oDoc.Consultar_Documento(arrayNombre[1].ToString() + "-" + arrayNombre[2].ToString() + "-" + arrayNombre[3].ToString() + "|Constancia", strNombreCarta, strNombreCarta + ".pdf"); solicitudBL objSolicitudBL = new solicitudBL(); objSolicitudBL.objSolicitudEL.PK = int.Parse(Session["PKPROGRAMACION"].ToString()); objSolicitudBL.objSolicitudEL.ORDEN = 6;//se valida la tarea 6 Validación y firma se encuentre finalizada objSolicitudBL.objSolicitudEL.FKESTADO = 5; objSolicitudBL.objSolicitudEL.FKESTADO2 = 8; DataSet dsEncargadosActividades = objSolicitudBL.dsListaActividadesEncargado(null); if (dsEncargadosActividades.Tables[0].Rows.Count > 0) { int nTipoInspeccion = int.Parse(dsEncargadosActividades.Tables[0].Rows[0]["FKTIPOINSPECCION"].ToString()); if (strResultado != string.Empty && strResultado != "No existe") { EjecutarScript("abrirPDF('" + strResultado + "');"); } } else { if (strResultado != string.Empty && strResultado != "No existe") { reader = new PdfReader(strResultado); fs = null; document = null; if (!Directory.Exists(ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\DocumentosVisor\")) Directory.CreateDirectory(ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\DocumentosVisor\"); if (File.Exists(ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\DocumentosVisor\" + strNombreCarta + ".pdf")) File.Delete(ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\DocumentosVisor\" + strNombreCarta + ".pdf"); document = new Document(); string outputPdf = String.Format(ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\DocumentosVisor\" + strNombreCarta + ".pdf", Guid.NewGuid().ToString()); fs = new FileStream(outputPdf, FileMode.CreateNew, FileAccess.Write); //crear estampador stamp = null; stamp = new PdfStamper(reader, fs); byte[] USER = Encoding.ASCII.GetBytes(Session["LOGIN"].ToString()); byte[] OWNER = Encoding.ASCII.GetBytes(Session["LOGIN"].ToString()); //stamp.SetEncryption(USER, OWNER, PdfWriter.ALLOW_SCREENREADERS, PdfWriter.ENCRYPTION_AES_128); BaseFont bf = BaseFont.CreateFont(@"c:\windows\fonts\arial.ttf", BaseFont.CP1252, true); PdfGState gs = new PdfGState(); gs.FillOpacity = 0.35F; gs.StrokeOpacity = 0.35F; //escribir texto en las paginas for (int nPag = 1; nPag <= reader.NumberOfPages; nPag++) { Rectangle tamPagina = reader.GetPageSizeWithRotation(nPag); PdfContentByte over = stamp.GetOverContent(nPag); over.BeginText(); WriteTextToDocument(bf, tamPagina, over, gs, "COPIA INVALIDA"); over.EndText(); } stamp.Close(); reader.Close(); //if (stamp != null) stamp.Close(); if (fs != null) fs.Close(); if (document != null) document.Close(); //System.Diagnostics.Process proc = new System.Diagnostics.Process(); //proc.StartInfo.FileName = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\DocumentosVisor\" + strNombreCarta + ".pdf"; //proc.Start(); //proc.Close(); if (System.IO.File.Exists(ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\DocumentosVisor\" + strNombreCarta + ".pdf")) { #region constancias Documento oDoc2 = new Documento(); byte[] bDoc = System.IO.File.ReadAllBytes(ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\DocumentosVisor\" + strNombreCarta + ".pdf"); //se carga el archivo y el registro a vision 2020 strResultado = oDoc2.Archivar_Documento(strNumSolicitudTMP.ToString().Trim() + "|" + "Constancia", strNombreCarta + "Copia.pdf", bDoc); if (strResultado == string.Empty) { //File.Delete(pdfPath); } oDoc2 = new Documento(); strResultado = oDoc2.Consultar_Documento(arrayNombre[1].ToString() + "-" + arrayNombre[2].ToString() + "-" + arrayNombre[3].ToString() + "|Constancia", strNombreCarta, strNombreCarta + "Copia.pdf"); if (strResultado != string.Empty && strResultado != "No existe") { EjecutarScript("abrirPDF('" + strResultado + "');"); } else { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } #endregion } //strResultado += pdfPath + ";"; ; //EjecutarScript("abrirPDF('" + ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\DocumentosVisor\" + strNombreCarta + ".pdf" + "');"); } else { if (strResultado == string.Empty || strResultado == "No existe") ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } } } //EjecutarScript("abrirPDF(" + targetURL + ");"); // //System.Diagnostics.Process proc = new System.Diagnostics.Process(); // //proc.StartInfo.FileName = pdfPath; // //proc.Start(); // //proc.Close(); // //EjecutarScript("JavaScript: window.open('" + targetURL + "','','width=500,height=245,left=350,top=50');"); } } catch (Exception ex) { MensajeError("Error en R3M15", ex); } finally { if(reader!= null) reader.Close(); //if (stamp != null) stamp.Close(); if (fs != null) fs.Close(); if (document != null) document.Close(); } } protected void grvListaCartaSolicitud_PageIndexChanging(object sender, GridViewPageEventArgs e) //M3 { try { grvListaCartaSolicitud.PageIndex = e.NewPageIndex; obtenerCartaSolicitud(nNumSolicitudTMP, "",nPKReutilizaTMP); } catch (Exception ex) { MensajeError("Error en R3M3", ex); } } /// ///Activa el metodo del boton Anterior, regresa a la primera fila de la tabla /// /// /// protected void btnAnterior_Click(object sender, EventArgs e) //M3 { try { obtenerCartaSolicitud(nNumSolicitudTMP, "", nPKReutilizaTMP); divDatosSuperiores.Visible = true; divDatosInferiores.Visible = false; } catch (Exception ex) { MensajeError("Error en R3M3", ex); } } /// /// Activa el evento del boton Nuevo /// /// /// protected void btnNuevo_Click(object sender, EventArgs e) //M8 { try { //limpiarCampos(); ViewState["MODO"] = "Nuevo"; mostrarFilaTabla(3); //Limpia el grid de Active Directory ddlTipoFormulario.Focus(); llenarDDLtipoformulario(); ddlTemporal = (DropDownList)tdLista.FindControl("ddlJefatura1"); llenarDDLjefatura(ddlTemporal); ddlTemporal2 = (DropDownList)tdLista.FindControl("ddlJefatura2"); llenarDDLjefatura(ddlTemporal2); } catch (Exception ex) { MensajeError("Error en R3M8" + MensajesAplicacion.GuardadoFallido.ToString(), ex); } } /// /// Activa el evento de guardar /// /// /// protected void btnGuardar_Click(object sender, EventArgs e) //M9 { try { { string strModo = ViewState["MODO"].ToString(); string strDocumento = string.Empty; //if (ddlTipoFormulario.SelectedValue == "-1") //{ // MensajeAlerta("Debe seleccionar el tipo de formulario."); // ddlTipoFormulario.Focus(); //} //else { if (ddlJefatura1.SelectedValue == "-1") { MensajeAlerta("Debe seleccionar la jefatura 1."); ddlJefatura1.Focus(); } if (ddlJefatura1.SelectedValue == ddlJefatura2.SelectedValue) { MensajeAlerta("No se puede seleccionar la misma jefatura para ambas jefaturas."); ddlJefatura1.Focus(); } else { inspeccionasBL objInspeccionasBL = new inspeccionasBL(); objInspeccionasBL.objinspeccionasEL.FKSOLICITUD = int.Parse(Session["PKSOLICITUD"].ToString()); objInspeccionasBL.objinspeccionasEL.DESCRIPCIONESTADOINSPECCION = "Asignada"; DataSet dsInspeccionASBL = objInspeccionasBL.listarInspeccionesAS(null); inspeccionapBL objInspeccionapBL = new inspeccionapBL(); objInspeccionapBL.objinspeccionapEL.FKSOLICITUD = int.Parse(Session["PKSOLICITUD"].ToString()); objInspeccionapBL.objinspeccionapEL.DESCRIPCIONESTADOINSPECCION = "Asignada"; DataSet dsInspeccionPABL = objInspeccionapBL.listarInspecciones(null); int nFKTipoConstancia = 0; int nTipoInspeccion =0 ; if (dsInspeccionASBL.Tables[0].Rows.Count > 0) nTipoInspeccion= int.Parse(dsInspeccionASBL.Tables[0].Rows[0]["FKTIPOINSPECCION"].ToString()); if (dsInspeccionPABL.Tables[0].Rows.Count > 0) nTipoInspeccion = int.Parse(dsInspeccionPABL.Tables[0].Rows[0]["FKTIPOINSPECCION"].ToString()); #region Ambos if (nTipoInspeccion == 3) { if (dsInspeccionPABL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAP"].ToString().ToLower() == "true" && dsInspeccionASBL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAS"].ToString().ToLower() == "true") { nFKTipoConstancia = 1; //Formulario N°1 SI SI strDocumento = GuardarDatos(nFKTipoConstancia); generarDocumento(strDocumento, nFKTipoConstancia.ToString()); } if (dsInspeccionPABL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAP"].ToString().ToLower() == "false" && dsInspeccionASBL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAS"].ToString().ToLower() == "false") { nFKTipoConstancia = 2; //Formulario N°2 NO NO strDocumento = GuardarDatos(nFKTipoConstancia); generarDocumento(strDocumento, nFKTipoConstancia.ToString()); if (dsInspeccionASBL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAS"].ToString().ToLower() == "false" && dsInspeccionASBL.Tables[0].Rows[0]["CRITECNICONOEXISTEDISPONIBILIDAD"].ToString().ToLower() == "true") { nFKTipoConstancia = 6 ; //Formulario N°6 SI-NO CCR strDocumento = GuardarDatos(nFKTipoConstancia); generarDocumento(strDocumento, nFKTipoConstancia.ToString()); } if (dsInspeccionPABL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAP"].ToString().ToLower() == "false" && dsInspeccionPABL.Tables[0].Rows[0]["EXISTECAPACIDADHIDRICAEXISTEDISPONIBILIDADAP"].ToString().ToLower() == "true") { nFKTipoConstancia = 5; //Formulario N°5 NO-SI CCH strDocumento = GuardarDatos(nFKTipoConstancia); generarDocumento(strDocumento, nFKTipoConstancia.ToString()); } } if (dsInspeccionPABL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAP"].ToString().ToLower() == "true" && dsInspeccionASBL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAS"].ToString().ToLower() == "false") { nFKTipoConstancia = 4; //Formulario N°4 SI NO strDocumento = GuardarDatos(nFKTipoConstancia); generarDocumento(strDocumento, nFKTipoConstancia.ToString()); if (dsInspeccionASBL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAS"].ToString().ToLower() == "false" && dsInspeccionASBL.Tables[0].Rows[0]["CRITECNICONOEXISTEDISPONIBILIDAD"].ToString().ToLower() == "true") { nFKTipoConstancia = 6; //Formulario N°6 SI-NO CCR strDocumento = GuardarDatos(nFKTipoConstancia); generarDocumento(strDocumento, nFKTipoConstancia.ToString()); } } if (dsInspeccionPABL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAP"].ToString().ToLower() == "false" && dsInspeccionASBL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAS"].ToString().ToLower() == "true") { nFKTipoConstancia = 3; //Formulario N°4 NO SI strDocumento = GuardarDatos(nFKTipoConstancia); generarDocumento(strDocumento, nFKTipoConstancia.ToString()); if (dsInspeccionPABL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAP"].ToString().ToLower() == "false" && dsInspeccionPABL.Tables[0].Rows[0]["EXISTECAPACIDADHIDRICAEXISTEDISPONIBILIDADAP"].ToString().ToLower() == "true") { nFKTipoConstancia = 5; //Formulario N°5 NO-SI CCH strDocumento = GuardarDatos(nFKTipoConstancia); generarDocumento(strDocumento, nFKTipoConstancia.ToString()); } } } #endregion #region Agua potable if (nTipoInspeccion == 1 ) { nFKTipoConstancia = 0; if (dsInspeccionPABL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAP"].ToString().ToLower() == "true" ) { nFKTipoConstancia = 4; //Formulario N°4 SI NO strDocumento = GuardarDatos(nFKTipoConstancia); generarDocumento(strDocumento, nFKTipoConstancia.ToString()); } if (dsInspeccionPABL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAP"].ToString().ToLower() == "false") { nFKTipoConstancia = 2; //Formulario N°2 NO NO strDocumento = GuardarDatos(nFKTipoConstancia); generarDocumento(strDocumento, nFKTipoConstancia.ToString()); } if (dsInspeccionPABL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAP"].ToString().ToLower() == "false" && dsInspeccionPABL.Tables[0].Rows[0]["EXISTECAPACIDADHIDRICAEXISTEDISPONIBILIDADAP"].ToString().ToLower() == "true") { nFKTipoConstancia = 5; //Formulario N°5 NO-NO CCH strDocumento = GuardarDatos(nFKTipoConstancia); generarDocumento(strDocumento, nFKTipoConstancia.ToString()); } dsInspeccionPABL = null; } #endregion #region alcantarillado sanitario if (nTipoInspeccion == 2 ) { nFKTipoConstancia = 0; if (dsInspeccionASBL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAS"].ToString().ToLower() == "true" ) { nFKTipoConstancia = 3; //Formulario N°3 NO-SI strDocumento = GuardarDatos(nFKTipoConstancia); generarDocumento(strDocumento, nFKTipoConstancia.ToString()); } if (dsInspeccionASBL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAS"].ToString().ToLower() == "false") { nFKTipoConstancia = 2; //Formulario N°2 NO NO strDocumento = GuardarDatos(nFKTipoConstancia); generarDocumento(strDocumento, nFKTipoConstancia.ToString()); } if (dsInspeccionASBL.Tables[0].Rows[0]["EXISTEDISPONIBILIDADINSPECCIONAS"].ToString().ToLower() == "false" && dsInspeccionASBL.Tables[0].Rows[0]["CRITECNICONOEXISTEDISPONIBILIDAD"].ToString().ToLower() == "true") { nFKTipoConstancia = 6; //Formulario N°6 NO-NO CCR strDocumento = GuardarDatos(nFKTipoConstancia); generarDocumento(strDocumento, nFKTipoConstancia.ToString()); } dsInspeccionASBL = null; } #endregion obtenerCartaSolicitud(nNumSolicitudTMP, "", nPKReutilizaTMP); MensajeInformativo(AyABL.BASESDEDATOS.ADS + "Interfaz: " + MensajesAplicacion.GuardadoExitoso.ToString()); } } } } catch (Exception ex) { MensajeError("Error en R3M8" + MensajesAplicacion.GuardadoFallido.ToString(), ex); } } protected void btnGuardarPDF_Click(object sender, EventArgs e) { try { //FirmadorWeb.FirmadorWebSvcClient cliente = new FirmadorWeb.FirmadorWebSvcClient(); if (documento != null && documento.Firmas.Count() > 0) { //byte[] contenido = cliente.ObtenerContenidoDocumento( // long.Parse(ViewState["DocumentoID"].ToString()), // CodigoSistema); //System.IO.File.WriteAllBytes(ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + Session["SOLICITUD"].ToString() + @"\" + ViewState["Documento"].ToString() + ".pdf", contenido); //ViewState.Remove("DocumentoID"); ////var uri = new System.Uri(ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + Session["SOLICITUD"].ToString() + @"\" + ViewState["Documento"].ToString() + ".pdf", UriKind.Absolute); //string targetURL = "'../../DocumentosPDF/" + Session["SOLICITUD"].ToString() + "/" + ViewState["Documento"].ToString() + ".pdf'"; //EjecutarScript("abrirPDF(" + targetURL + ");"); //System.Diagnostics.Process proc = new System.Diagnostics.Process(); //proc.StartInfo.FileName = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + Session["SOLICITUD"].ToString() + @"\" + ViewState["Documento"].ToString() + ".pdf'"; //proc.Start(); //proc.Close(); } else { MensajeAlerta("El documento no se firmó correctamente por favor vuelava a intentarlo."); } } catch (Exception ex) { MensajeError("Se produjo un error al firmar el documento pdf.", ex); } ViewState["MODO"] = string.Empty; ViewState["Documento"] = string.Empty; } #endregion #region Metodos Personalizados (R4) /// /// Oculta las filas que lo requieran /// /// private void mostrarFilaTabla(int p_intFila) //M0 { try { divDatosSuperiores.Visible = false; divDatosInferiores.Visible = false; switch (p_intFila) { case 1: divDatosSuperiores.Visible = true; break; case 3: divDatosInferiores.Visible = true; break; } } catch (Exception ex) { throw ex; } } /// /// Metodo que se utiliza para remover el role asignado al usuario /// /// private bool eliminarCartaSolicitud(int p_nPk) //M1 { bool blnValorRetornado = false; try { objCartaBL = new cartaBL(); objCartaBL.objCartaEL.PK = p_nPk; objCartaBL.objCartaEL.FKESTADOCARTA = 3;//eliminado objCartaBL.activarInactivarCarta(); blnValorRetornado = true; } catch (Exception ex) { throw ex; } return blnValorRetornado; } #endregion #region Metodos Controles a Datos (R5) /// /// guarda y modifica registros en la tabla. /// /// private string GuardarDatos(int p_fkTipoFormulario) //M0 { string strValorRetornado = ""; int nValorRetornado = 0; try { string strModo = ViewState["MODO"].ToString(); DataSet ds = obtenerDocumento(nNumSolicitudTMP, ""); int Contador = ds.Tables[0].Rows.Count + 1; objCartaBL = new cartaBL(); objCartaBL.objCartaEL.FKNUMSOLICITUD = int.Parse(Session["PKSOLICITUD"].ToString()); objCartaBL.objCartaEL.NOMBREDOCUMENTO = ConfigurationManager.AppSettings["SIGLAS"].ToString() + "-" + Session["SOLICITUD"].ToString().Trim() + "-" + Contador.ToString() +"-1"; //SDAA - AÑO - CONTADOR - CONTADOR DOCUMENTO - CONTADOR VERSION objCartaBL.objCartaEL.FECHAEMITIDO = DateTime.Now; objCartaBL.objCartaEL.FECHAVENCE = DateTime.Now.AddYears(1); objCartaBL.objCartaEL.RENOVACION = 0; objCartaBL.objCartaEL.ANOMBRE = int.Parse(rdlAnombre.SelectedValue.ToString()); objCartaBL.objCartaEL.FKJEFATURA1 = ddlJefatura1.SelectedValue; objCartaBL.objCartaEL.NOMBREJEFATURA1 = ddlJefatura1.SelectedItem.Text; objCartaBL.objCartaEL.FKJEFATURA2 = ddlJefatura2.SelectedValue; objCartaBL.objCartaEL.NOMBREJEFATURA2 = ddlJefatura2.SelectedItem.Text; objCartaBL.objCartaEL.FKTIPOFORMULARIO = p_fkTipoFormulario; objCartaBL.objCartaEL.FKESTADOCARTA = 1;//ASTATE objCartaBL.objCartaEL.CODIGOCARTA = Session["SOLICITUD"].ToString().Trim(); if (strModo == "Nuevo") { nValorRetornado = objCartaBL.insertarCarta(); strValorRetornado = objCartaBL.objCartaEL.NOMBREDOCUMENTO.ToString(); strValorRetornado = ConfigurationManager.AppSettings["SIGLAS"].ToString() + "-" + Session["SOLICITUD"].ToString().Trim() + "-" + Contador.ToString() + "-1_"; GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se ha generado la carta " + objCartaBL.objCartaEL.NOMBREDOCUMENTO + " para la solicitud N° " + Session["SOLICITUD"].ToString().Trim(), "frwCartaSolicitud.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } if (strModo == "Reconsiderar") { //aumentar el consecutivo del documento Char delimiter = '-'; string[] arrayDoc = ViewState["RECONSIDERAR"].ToString().Split(delimiter);//SIGDD - AÑO - CONTADOR - CONTADOR DOCUMENTO - CONTADOR VERSION objCartaBL.objCartaEL.NOMBREDOCUMENTO = arrayDoc[0].ToString() + "-" + arrayDoc[1].ToString() + "-" + arrayDoc[2].ToString() + "-" + arrayDoc[3].ToString() + "-" + (int.Parse(arrayDoc[4].ToString()) + 1).ToString() + "_"; //objCartaBL.objCartaEL.NOMBREDOCUMENTO = arrayDoc[0].ToString() + "-" + arrayDoc[1].ToString() + "-" + arrayDoc[2].ToString() + "-" + (int.Parse(arrayDoc[3].ToString()) + 1).ToString(); nValorRetornado = objCartaBL.insertarCarta(); strValorRetornado = objCartaBL.objCartaEL.NOMBREDOCUMENTO.ToString(); strValorRetornado = arrayDoc[0].ToString() + "-" + arrayDoc[1].ToString() + "-" + arrayDoc[2].ToString() + "-" + (int.Parse(arrayDoc[3].ToString()) + 1).ToString(); GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se ha generado la carta " + strValorRetornado + " al reconsiderar, para la solicitud " + Session["SOLICITUD"].ToString().Trim(), "frwCartaSolicitud.aspx", Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } obtenerCartaSolicitud(nNumSolicitudTMP, "", nPKReutilizaTMP); } catch (Exception ex) { throw ex; } return strValorRetornado; } private void generarDocumento(string pstrDocumento, string strFKTipoConstancia) { try { string sourcePath = ConfigurationManager.AppSettings["DocumentosMachote"].ToString() + @"\Formulario_N°" + strFKTipoConstancia + ".odt"; string targetPath = ConfigurationManager.AppSettings["DocumentosODT"].ToString() + @"\" + pstrDocumento + ".odt"; if (System.IO.File.Exists(sourcePath)) { System.IO.File.Copy(sourcePath, targetPath, true); //string targetUrl = "../../../DocumentosODT/" + pstrDocumento + ".odt"; string targetUrl = "'../../../DocumentosODT/" + pstrDocumento + ".odt'"; if (System.IO.File.Exists(targetPath)) { // EjecutarScript("abrirOdt(" + targetUrl + ");"); //{ ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } } } else { { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } } //// To copy a file to another location and //// overwrite the destination file if it already exists. // System.IO.File.Copy(sourcePath, targetPath, true); // System.Diagnostics.Process proc = new System.Diagnostics.Process(); // proc.StartInfo.FileName = targetPath; // proc.Start(); // proc.Close(); } catch(Exception ex) { throw ex; } } private void editarDocumento(string pstrDocumento) { try { string strResultado = string.Empty; string targetPath = ConfigurationManager.AppSettings["DocumentosODT"].ToString() + @"\" + pstrDocumento + ".odt"; string targetUrl = "'../../DocumentosODT/" + pstrDocumento + ".odt'"; if (!System.IO.File.Exists(targetPath)) { targetPath = ConfigurationManager.AppSettings["DocumentosODT"].ToString() + @"\" + pstrDocumento + "_.odt"; if (!System.IO.File.Exists(targetPath)) { targetPath = string.Empty; // ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } } if (System.IO.File.Exists(targetPath)) { #region constancias Documento oDoc = new Documento(); byte[] bDoc = System.IO.File.ReadAllBytes(targetPath); //se carga el archivo y el registro a vision 2020 strResultado = oDoc.Archivar_Documento(strNumSolicitudTMP.ToString().Trim() + "|" + "Constancia", pstrDocumento + "_.odt", bDoc); if (strResultado == string.Empty) { // File.Delete(targetPath); } #endregion } //if (!File.Exists(targetPath)) { //obtener la constancia y ponerla en la carpeta compartida para el envio de correo //se el registro de vision 2020 Documento oDoc = new Documento(); strResultado = oDoc.Consultar_Documento(strNumSolicitudTMP.ToString().Trim() + "|Constancia", pstrDocumento, pstrDocumento + "_.odt"); if (strResultado != string.Empty && strResultado != "No existe") { //strResultado += pdfPath + ";"; ; GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.CONSULTA.ToString(), MensajesBitacora.IngresarRegistro + ": Se ha descargado la constancia " + pstrDocumento.ToString() + " para edición, de la solicitud " + Session["SOLICITUD"].ToString(), Path.GetFileNameWithoutExtension(Page.AppRelativeVirtualPath), Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); EjecutarScript("abrirPDF('" + strResultado + "');"); } else { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } } } catch (Exception ex) { throw ex; } } private void firmarDocumento(string pstrDocumento) { try { string sourcePath = ConfigurationManager.AppSettings["DocumentosMachote"].ToString() + @"\SIGPC_firma_electronica .odt"; string targetPath = ConfigurationManager.AppSettings["DocumentosODT"].ToString() + @"\" + pstrDocumento + "_" + Session["SOLICITUD"].ToString() + "_.odt"; string pdfPath = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + Session["SOLICITUD"].ToString() + @"\" + pstrDocumento + ".pdf"; List signatarios = new List(); List emails = new List(); if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings["CedulaFirmaSIGPC"].ToString())) { signatarios.Add(ConfigurationManager.AppSettings["CedulaFirmaSIGPC"].ToString()); // emails.Add("jmonged@aya.go.cr"); } #region constancias if (!File.Exists(pdfPath)) { //obtener la constancia y ponerla en la carpeta compartida para el envio de correo //strResultado = oDoc.Consultar_Documento(arrayNombre[1].ToString() + "-" + arrayNombre[2].ToString() + "-" + arrayNombre[3].ToString() + "|Constancia", row["NOMBREDOCUMENTOCARTA"].ToString(), row["NOMBREDOCUMENTOCARTA"].ToString() + ".pdf"); Documento oDoc = new Documento(); string strResultado = oDoc.Visor_Documento(lblNumSolicitud.Text + "|" + "Constancia", lblNumSolicitud.Text.Trim(), pdfPath, pstrDocumento + ".pdf"); if (strResultado == string.Empty || strResultado == "No existe") { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } } #endregion if (System.IO.File.Exists(pdfPath)) { byte[] bytes = System.IO.File.ReadAllBytes(pdfPath); //verificar si el documento ya se habia firmado using(FirmadorWeb.FirmadorWebSvcClient cliente = new FirmadorWeb.FirmadorWebSvcClient()) { long idDocumentoFirmado = cliente.CrearDocumento( pstrDocumento + ".pdf", "Firma de documentos", bytes, IdUsuarioSistemaCliente, signatarios.ToArray(), emails.ToArray(), CodigoSistema, "01"); // cliente.PonerOpcionesDocumento(idDocumentoFirmado, CodigoSistema, false, false, false); documento.DocumentoID = idDocumentoFirmado; ViewState["DocumentoID"] = idDocumentoFirmado; Session["Cedula"] = ConfigurationManager.AppSettings["CedulaFirmaSIGPC"].ToString(); _UrlFirmadorWeb = null; EjecutarScript("AbrirFirmadorWeb();"); ViewState["MODO"] = "Firmador"; ViewState["Documento"] = pstrDocumento; ObservacionesBL objObservacionesBL = new ObservacionesBL(); //objObservacionesBL.objobservacionesEL.FKNUMSOLICITUD = strNumSolicitudTMP; objObservacionesBL.objobservacionesEL.OBSERVACIONES = "El usuario " + Session["NOMBREEMPLEADO"].ToString() + " descargó la constancia " + pstrDocumento + ".pdf, para realizar la firma."; objObservacionesBL.objobservacionesEL.Fecha = DateTime.Now; objObservacionesBL.objobservacionesEL.FKSOLICITUD = int.Parse(Session["PKSOLICITUD"].ToString()); objObservacionesBL.objobservacionesEL.USUARIO = Session["LOGIN"].ToString(); int nValorRetornado = objObservacionesBL.insertarObservaciones(); GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.FIRMAR.ToString(), MensajesBitacora.IngresarRegistro + ": El usuario " + Session["NOMBREEMPLEADO"].ToString() + " descargó la constancia " + pstrDocumento + ".pdf, para realizar la firma.", Path.GetFileNameWithoutExtension(Page.AppRelativeVirtualPath), Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); //FirmadorWeb.Documento documentoFirmado = cliente.ObtenerDocumento( // idDocumentoFirmado, // CodigoSistema); //if (documentoFirmado.Firmas.Count() == 0) //{ // documento.DocumentoID = idDocumentoFirmado; // ViewState["DocumentoID"] = idDocumentoFirmado; // Session["Cedula"] = ConfigurationManager.AppSettings["CedulaFirmaSIGPC"].ToString(); // EjecutarScript("AbrirFirmadorWeb();"); //} //else //{ // MensajeInformativo("El documento ya fue firmado."); //} } // System.IO.File.Copy(sourcePath, targetPath, true); // string targetUrl = "'../../../DocumentosODT/" + pstrDocumento + "_" + Session["SOLICITUD"].ToString() + "_.odt'"; //// string targetUrl = "'../../../../DocumentosODT/" + pstrDocumento + ".odt'"; // if (System.IO.File.Exists(targetPath)) // { // EjecutarScript("abrirOdt(" + targetUrl + ");"); // } } else { { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } } } catch (Exception ex) { throw ex; } } private void obtenerDocumentoFirmado() { try { //string sourcePath = ConfigurationManager.AppSettings["DocumentosMachote"].ToString() + @"\SIGPC_firma_electronica .odt"; //string targetPath = ConfigurationManager.AppSettings["DocumentosODT"].ToString() + @"\" + pstrDocumento + "_" + Session["SOLICITUD"].ToString() + "_.odt"; string pdfPath = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + Session["SOLICITUD"].ToString() + @"\" + ViewState["Documento"] + ".pdf"; if (System.IO.File.Exists(pdfPath)) { byte[] bytes = System.IO.File.ReadAllBytes(pdfPath); //verificar si el documento ya se habia firmado using (FirmadorWeb.FirmadorWebSvcClient cliente = new FirmadorWeb.FirmadorWebSvcClient()) { byte[] contenido = cliente.ObtenerContenidoDocumento(long.Parse(ViewState["DocumentoID"].ToString()), CodigoSistema); File.WriteAllBytes(pdfPath, contenido); } #region constancias Documento oDoc = new Documento(); byte[] bDoc = System.IO.File.ReadAllBytes(pdfPath); //se carga el archivo y el registro a vision 2020 string strResultado = oDoc.Archivar_Documento(strNumSolicitudTMP.ToString().Trim() + "|" + "Constancia", ViewState["Documento"] + ".pdf", bDoc); if (strResultado == string.Empty) { //File.Delete(pdfPath); } #endregion } else { { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } } } catch (Exception ex) { throw ex; } } /// /// guarda y modifica registros en la tabla. /// /// /// private int GuardarDatosActividad(string p_accion, int p_nOrden) { int nValorRetornado = 0; try { int nPkSolicitud = 0; int nResultadoActualizar = 0; string strMensajeContenido = ""; string strAsuntoCorreo = ""; string strPiePagina = "


AVISO DE CONFIDENCIALIDAD: este mensaje y la información incluida en él es confidencial y está dirigida únicamente al destinatario. Puede contener información privilegiada, confidencial, amparada por el secreto profesional o que no debe ser revelada. Si usted ha recibido este correo por error, por favor comunicarlo inmediatamente vía correo y tener la amabilidad de eliminarlo de su sistema. Queda notificado que no deberá copiar este mensaje, ni utilizar, divulgar, publicar o distribuir su contenido de modo alguno. Todo mensaje enviado a esta dirección de correo electrónico puede ser sujeto a inspección por alguien distinto de su receptor originario. La transmisión de correos no garantiza que el correo electrónico sea seguro o libre de error. Por consiguiente, se advierte que esta información pueda estar incompleta o ser poco precisa ya que toda información está sujeta a alterarse sin previo aviso.”"; string strDescripcionActividad = string.Empty; if (p_nOrden == 5) strDescripcionActividad = "confección de la constancia"; if (p_nOrden == 6) strDescripcionActividad = "validación y firma de la constancia"; solicitudBL objSolicitudBL = new solicitudBL(); objSolicitudBL.objSolicitudEL.PK = int.Parse(Session["PKPROGRAMACION"].ToString()); objSolicitudBL.objSolicitudEL.FKUSUARIOXDEPENDENCIA = int.Parse(Session["PKUSUARIOXDEPENDENCIA"].ToString()); objSolicitudBL.objSolicitudEL.ORDEN = p_nOrden;//5:Confeccion de constancias 6:Validacion y firma DataSet dsEncargadosActividades = objSolicitudBL.dsListaActividadesEncargado(null); if (dsEncargadosActividades.Tables[0].Rows.Count > 0) { if (int.Parse(dsEncargadosActividades.Tables[0].Rows[0]["PKUSUARIOXDEPENDENCIA"].ToString()) == int.Parse(Session["PKUSUARIOXDEPENDENCIA"].ToString()) && int.Parse(dsEncargadosActividades.Tables[0].Rows[0]["FKESTADO"].ToString()) != 5 && int.Parse(dsEncargadosActividades.Tables[0].Rows[0]["FKESTADO"].ToString()) != 8) { string strEncargadoActividad = dsEncargadosActividades.Tables[0].Rows[0]["PKRESPONSABLEACTIVIDAD"].ToString(); ObservacionesActividadesBL objObservacionesBL = new ObservacionesActividadesBL(); objObservacionesBL.objobservacionesEL.DESCRIPCION = "\n" + DateTime.Now.ToString()+ " - " + Session["NOMBREEMPLEADO"].ToString() + " - Se " + p_accion + " la actividad " + strDescripcionActividad + " de la solicitud N° " + Session["SOLICITUD"].ToString() + " por parte del usuario " + Session["NOMBREEMPLEADO"].ToString(); //objObservacionesBL.objobservacionesEL.FKUSUARIOXDEPENDENCIA = int.Parse(Session["PKUSUARIOXDEPENDENCIA"].ToString()); objObservacionesBL.objobservacionesEL.PKRESPONSABLEACTIVIDAD = int.Parse(strEncargadoActividad); objObservacionesBL.objobservacionesEL.Fecha = DateTime.Now; objObservacionesBL.objobservacionesEL.TIPO = 1;//1:observaciones 2:devolucion nValorRetornado = objObservacionesBL.insertarObservacionActividad(); if (nValorRetornado != 0) { solicitudBL objSolicitud = new solicitudBL(); objSolicitud.objresponsableActividadEL.FECHADEVOLUCION = DateTime.Now; foreach (DataRow row in dsEncargadosActividades.Tables[0].Rows) { objSolicitud.objresponsableActividadEL.PK = int.Parse(row["PKRESPONSABLEACTIVIDAD"].ToString()); if (p_accion == "finalizó") { decimal nTiempoActividad = 0; if (row["CLASIFICACIONSOLICITUD"].ToString() == "Crecimiento vegetativo") nTiempoActividad = decimal.Parse(row["TIEMPOCVACTIVIDAD"].ToString()); if (row["CLASIFICACIONSOLICITUD"].ToString() == "Desarrollo urbanistico") nTiempoActividad = decimal.Parse(row["TIEMPODUACTIVIDAD"].ToString()); objSolicitudBL.objSolicitudEL.ORDEN = p_nOrden;//5:Confeccion de constancias 6:Validacion y firma char[] separadorColumna = { '.' }; string[] strArrayTiempo = nTiempoActividad.ToString().Replace(",", ".").Split(separadorColumna); DateTime dtFechaRecibido = DateTime.Parse(row["FECHAASIGNACIONRESPONSABLEACTIVIDAD"].ToString()).AddDays(double.Parse(strArrayTiempo[0].ToString())); if (double.Parse(strArrayTiempo[1].ToString()) > 0) dtFechaRecibido = dtFechaRecibido.AddHours(4); if (dtFechaRecibido > DateTime.Now) objSolicitud.objresponsableActividadEL.FKESTADO = 5;//finalizada a tiempo t_sgm_estadoactividad else objSolicitud.objresponsableActividadEL.FKESTADO = 8;//finalizada fuera de tiempo t_sgm_estadoactividad strMensajeContenido = "La actividad " + strDescripcionActividad + " de la solicitud N° " + Session["SOLICITUD"].ToString() + " ha sido concluida para ver los detalles, ingrese al sistema SIGDD" + strPiePagina; strAsuntoCorreo = "Conclusión de actividad - SIGDD"; nResultadoActualizar = objSolicitud.actualizarActividadSolicitud(); if (nResultadoActualizar > 0) { #region Envio de correo AyABL.TRA.correoBL objcorreoBL = new AyABL.TRA.correoBL(); nPkSolicitud = Convert.ToInt32(row[1].ToString());//AQUI INSERTAMOS LA PK DE LA SOLICITUD objcorreoBL.objcorreoEL.FKNUMSOLICITUD = nPkSolicitud; // objcorreoBL.objcorreoEL.CORREO = dsActividad.Tables[0].Rows[0]["LOGINUSUARIO"].ToString() + "@aya.go.cr"; objcorreoBL.objcorreoEL.ASUNTO = strAsuntoCorreo; objcorreoBL.objcorreoEL.CONTENIDO = strMensajeContenido; objcorreoBL.objcorreoEL.FKUSUARIO = Convert.ToInt32(row["FKUSUARIOXDEPENDENCIA"].ToString()); objcorreoBL.objcorreoEL.Fecha = DateTime.Now; nValorRetornado = objcorreoBL.insertarCorreo(); //poner la siguiente actividad en pendiente objSolicitudBL = new solicitudBL(); objSolicitudBL.objSolicitudEL.PK = int.Parse(Session["PKPROGRAMACION"].ToString()); objSolicitudBL.objSolicitudEL.ORDEN = p_nOrden + 1; DataSet dsEncargadosActividadesSiguiente = objSolicitudBL.dsListaActividadesEncargado(null); foreach (DataRow row6 in dsEncargadosActividadesSiguiente.Tables[0].Rows) { objSolicitud.objresponsableActividadEL.PK = int.Parse(row6["PKRESPONSABLEACTIVIDAD"].ToString()); ; objSolicitud.objresponsableActividadEL.FKESTADO = 3;//pendiente t_sgm_estadoactividad nResultadoActualizar = objSolicitud.actualizarActividadSolicitud(); objcorreoBL.objcorreoEL.ASUNTO = strAsuntoCorreo; objcorreoBL.objcorreoEL.CONTENIDO = strMensajeContenido; objcorreoBL.objcorreoEL.FKUSUARIO = Convert.ToInt32(row6["FKUSUARIOXDEPENDENCIA"].ToString()); objcorreoBL.objcorreoEL.Fecha = DateTime.Now; nValorRetornado = objcorreoBL.insertarCorreo(); } #endregion GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": La actividad " + strDescripcionActividad + " de la solicitud N° " + Session["SOLICITUD"].ToString() + " ha sido finalizada por parte del encargado de la actividad: " + Session["NOMBREEMPLEADO"].ToString().Trim(), Path.GetFileNameWithoutExtension(Page.AppRelativeVirtualPath), Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } } } //if (p_accion == "edita") //{ // //Poner la actividad 6 programacion en pendiente(3) // objSolicitudBL = new solicitudBL(); // objSolicitudBL.objSolicitudEL.PK = int.Parse(Session["PKPROGRAMACION"].ToString()); // objSolicitudBL.objSolicitudEL.ORDEN = p_nOrden + 1; // dsEncargadosActividades = objSolicitudBL.dsListaActividadesEncargado(null); // foreach (DataRow row in dsEncargadosActividades.Tables[0].Rows) // { // objSolicitud.objresponsableActividadEL.PK = int.Parse(row["PKRESPONSABLEACTIVIDAD"].ToString()); ; // objSolicitud.objresponsableActividadEL.FKESTADO = 3;//pendiente t_sgm_estadoactividad // nResultadoActualizar = objSolicitud.actualizarActividadSolicitud(); // } //} } } } } catch (Exception ex) { throw ex; } return nValorRetornado; } private static void WriteTextToDocument(BaseFont bf, Rectangle tamPagina, PdfContentByte over, PdfGState gs, string texto) { try { over.SetGState(gs); over.SetRGBColorFill(220, 220, 220); over.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_STROKE); over.SetFontAndSize(bf, 46); Single anchoDiag = (Single)Math.Sqrt(Math.Pow((tamPagina.Height - 120), 2) + Math.Pow((tamPagina.Width - 60), 2)); Single porc = (Single)100 * (anchoDiag / bf.GetWidthPoint(texto, 46)); over.SetHorizontalScaling(porc); double angPage = (-1) * Math.Atan((tamPagina.Height - 60) / (tamPagina.Width - 60)); over.SetTextMatrix((float)Math.Cos(angPage), (float)Math.Sin(angPage), (float)((-1F) * Math.Sin(angPage)), (float)Math.Cos(angPage), 30F, (float)tamPagina.Height - 60); over.ShowText(texto); } catch (Exception ex) { throw ex; } } #endregion #region Métodos para generar token de seguridad del firmador web /// /// Identificador único definido por el sistema cliente para el documento incluído en el firmador web /// private string IdCorrelacionFirmadorWeb { get { return "01"; } } private FirmadorWeb.Documento _documento; protected FirmadorWeb.Documento documento { get { if (_documento == null) { using (FirmadorWeb.FirmadorWebSvcClient cliente = new FirmadorWeb.FirmadorWebSvcClient()) { // recuperar el documento usando el identificador de correlación _documento = cliente.ObtenerDocumentoXIdCorrelacion( IdCorrelacionFirmadorWeb, CodigoSistema); } } return _documento; } } private string _UrlFirmadorWeb; protected string UrlFirmadorWeb { get { if (string.IsNullOrEmpty(_UrlFirmadorWeb)) { try { if (IsPostBack) _UrlFirmadorWeb = GenerarUrlFirmadorWeb(documento.DocumentoID, (string)Session["Cedula"]); } catch (Exception ex) { MensajeError("Se presentó un error con el servicio de firma digital.", ex); } } return _UrlFirmadorWeb; } } /// /// Genera un url para la página del documento en el firmador web /// Incluye en el url un token de seguridad para el firmador web /// /// Documento que se va a abrir en el firmador web /// Cédula del usuario actual /// private string GenerarUrlFirmadorWeb(long idDocumento, string cedula) { return string.Format( ConfigurationManager.AppSettings["UrlFirmadorWeb"], idDocumento, cedula, Server.UrlEncode( Cipher( string.Format("{0},{1}", idDocumento, cedula) ) ) ); } /// /// Encripta un valor usando la llave de encripción especificada en el parámetro LlaveEncripcionFW /// Debe ser la misma llave que está configurada en el servicio /// /// Valor que se va a encriptar /// Valor encriptado private static string Cipher(string value) { string llaveEncripcionFW = ConfigurationManager.AppSettings["LlaveEncripcionFW"]; Random rnd = new Random(DateTime.Now.Millisecond); for (int i = 0; i < 8; i++) value = "1234567890"[rnd.Next(10)] + value; value = "XYZ" + value; UTF7Encoding enc = new System.Text.UTF7Encoding(); byte[] keyBytes = enc.GetBytes(GetHash(llaveEncripcionFW)); TripleDES tdes = TripleDES.Create(); byte[] desKey = new byte[tdes.KeySize / 8]; for (int i = 0; i < desKey.Length; i++) desKey[i] = keyBytes[i]; tdes.Mode = CipherMode.CBC; tdes.Padding = PaddingMode.Zeros; byte[] plain = enc.GetBytes(value); int cipheredSize = plain.Length / tdes.BlockSize; if (plain.Length % tdes.BlockSize > 0) cipheredSize++; cipheredSize *= tdes.BlockSize; byte[] ciphered = new byte[cipheredSize]; ICryptoTransform cry = tdes.CreateEncryptor(desKey, desKey); byte[] input = new byte[tdes.BlockSize]; byte[] output = new byte[tdes.BlockSize]; int iPlain = 0; int iCiphered = 0; while (iPlain < plain.Length) { int iInput = 0; for (; iPlain < plain.Length && iInput < input.Length; iPlain++) input[iInput++] = plain[iPlain]; for (; iInput < input.Length; iInput++) input[iInput] = 0; cry.TransformBlock(input, 0, input.Length, output, 0); foreach (Byte outputByte in output) ciphered[iCiphered++] = outputByte; } return Convert.ToBase64String(ciphered); } public static string GetHash(string value) { UTF7Encoding enc = new UTF7Encoding(); byte[] bytes = enc.GetBytes(value); return GetHash(bytes); } public static string GetHash(byte[] value) { using (SHA1Managed sha1 = new SHA1Managed()) { sha1.Initialize(); byte[] hash = sha1.ComputeHash(value); return BitConverter.ToString(hash).ToLower().Replace("-", ""); } } #endregion #region Metodos Datos a Controles (R6) /// /// LLena el listado de roles de usuario /// private void obtenerCartaSolicitud(int nNumSolicitud,string strNombreCarta, int nPKReutiliza) //M3 { try { //Instancia el objeto objCartaBL = new cartaBL(); //Asigna un valor al atributo de referencia del objeto objCartaBL.objCartaEL.FKNUMSOLICITUD = nNumSolicitud; objCartaBL.objCartaEL.NOMBREDOCUMENTO = strNombreCarta; objCartaBL.objCartaEL.FKREUTILIZA = nPKReutiliza; if (nPKReutiliza != 0) { char[] separadorColumna = { '-' }; string[] arrSolicitud = Session["SOLICITUD"].ToString().Split(separadorColumna); objCartaBL.objCartaEL.NUMEROSOLICITUD = arrSolicitud[1].ToString(); } //Carga en un dataset la información DataSet ds = objCartaBL.listarCartas(); if (ds.Tables[0].Rows.Count > 0) { //ViewState["MODO"] = "Modificar"; grvListaCartaSolicitud.DataSource = ds; grvListaCartaSolicitud.DataBind(); //General.detalleGridView(ds, grvListaCartaSolicitud, null); mostrarFilaTabla(1); } else { ViewState["MODO"] = "Nuevo"; mostrarFilaTabla(3); } } catch (Exception ex) { throw ex; } } /// /// LLena el listado de roles de usuario /// private void verificarCartaSolicitud(int nNumSolicitud, string strNombreCarta, int nPKReutiliza) //M3 { try { //Instancia el objeto objCartaBL = new cartaBL(); //Asigna un valor al atributo de referencia del objeto objCartaBL.objCartaEL.FKNUMSOLICITUD = nNumSolicitud; objCartaBL.objCartaEL.NOMBREDOCUMENTO = strNombreCarta; //objCartaBL.objCartaEL.FKREUTILIZA = nPKReutiliza; objCartaBL.objCartaEL.FKESTADOCARTA = 1; objCartaBL.objCartaEL.FKESTADOCARTA2 = 4; //Carga en un dataset la información DataSet ds = objCartaBL.listarCartas(); if (ds.Tables[0].Rows.Count > 0) { obtenerCartaSolicitud(nNumSolicitud, strNombreCarta, nPKReutiliza); } else { ViewState["MODO"] = "Nuevo"; mostrarFilaTabla(3); } } catch (Exception ex) { throw ex; } } /// /// Carga la informacion de un documento en especifico /// public DataSet obtenerDocumento(int nNumSolicitud, string strNombreCarta) //M3 { try { //Instancia el objeto objCartaBL = new cartaBL(); //Asigna un valor al atributo de referencia del objeto objCartaBL.objCartaEL.FKNUMSOLICITUD = nNumSolicitud; objCartaBL.objCartaEL.NOMBREDOCUMENTO = strNombreCarta; //Carga en un dataset la información DataSet ds = objCartaBL.listarCartas(); if (ds.Tables[0].Rows.Count > 0) { //ViewState["MODO"] = "Modificar"; mostrarFilaTabla(3); ddlTipoFormulario.Focus(); ddlTipoFormulario.SelectedValue = ds.Tables[0].Rows[0]["FKTIPOFORMULARIO"].ToString(); // ddlJefatura1.SelectedValue = ds.Tables[0].Rows[0]["FKJEFATURA1"].ToString(); //ddlJefatura2.SelectedValue = ds.Tables[0].Rows[0]["FKJEFATURA2"].ToString(); rdlAnombre.SelectedValue = ds.Tables[0].Rows[0]["ANOMBRECARTA"].ToString(); } return ds; } catch (Exception ex) { throw ex; } } /// /// Renovar agrega 12 meses a la fecha de vencimiento /// private bool RenovarDocumento(int nNumSolicitud, string strNombreCarta, int p_nPk) //M3 { try { bool blnValorRetornado = false; int nValorRetornado = 0; //Instancia el objeto objCartaBL = new cartaBL(); //Asigna un valor al atributo de referencia del objeto objCartaBL.objCartaEL.FKNUMSOLICITUD = nNumSolicitud; objCartaBL.objCartaEL.PK = p_nPk; objCartaBL.objCartaEL.NOMBREDOCUMENTO = strNombreCarta; objCartaBL.objCartaEL.CODIGOCARTA = Session["SOLICITUD"].ToString().Trim(); //Carga en un dataset la información DataSet ds = objCartaBL.listarCartas(); //aumentar el consecutivo del documento Char delimiter = '-'; string[] arrayDoc = strNombreCarta.Split(delimiter);//SIGDD - AÑO - CONTADOR - CONTADOR DOCUMENTO - CONTADOR VERSION strNombreCarta = arrayDoc[0].ToString() + "-" + arrayDoc[1].ToString() + "-" + arrayDoc[2].ToString() + "-" + arrayDoc[3].ToString() + "-" + (int.Parse(arrayDoc[4].ToString()) + 1).ToString() + "-" + arrayDoc[5].ToString(); //strNombreCarta = arrayDoc[0].ToString() + "-" + arrayDoc[1].ToString() + "-" + arrayDoc[2].ToString() + "-" + (int.Parse(arrayDoc[3].ToString()) + 1).ToString(); int nNumDocumento = int.Parse(ds.Tables[0].Rows[0]["RENOVACIONCARTA"].ToString()) + 1;// int.Parse(arrayDoc[4].ToString()) + 1; if (nNumDocumento <= 2 && (int.Parse(ds.Tables[0].Rows[0]["FKESTADO"].ToString()) == 1)) //se valida que no tenga mas de dos renovaciones y que este activo { objCartaBL.objCartaEL.NOMBREDOCUMENTO = strNombreCarta; objCartaBL.objCartaEL.FECHAEMITIDO = DateTime.Parse(ds.Tables[0].Rows[0]["FECHAEMITIDOCARTA"].ToString()); DateTime dtFechaVence = DateTime.Parse(ds.Tables[0].Rows[0]["FECHAVENCECARTA"].ToString()); objCartaBL.objCartaEL.FECHAVENCE = dtFechaVence.AddYears(1); objCartaBL.objCartaEL.RENOVACION = int.Parse(ds.Tables[0].Rows[0]["RENOVACIONCARTA"].ToString()) + 1; objCartaBL.objCartaEL.ANOMBRE = int.Parse(ds.Tables[0].Rows[0]["ANOMBRECARTA"].ToString()); objCartaBL.objCartaEL.FKJEFATURA1 = ds.Tables[0].Rows[0]["FKJEFATURA1"].ToString(); objCartaBL.objCartaEL.FKJEFATURA2 = ds.Tables[0].Rows[0]["FKJEFATURA2"].ToString(); objCartaBL.objCartaEL.NOMBREJEFATURA1 = ds.Tables[0].Rows[0]["NOMBREJEFATURA1CARTA"].ToString(); objCartaBL.objCartaEL.NOMBREJEFATURA2 = ds.Tables[0].Rows[0]["NOMBREJEFATURA2CARTA"].ToString(); objCartaBL.objCartaEL.FKTIPOFORMULARIO = int.Parse(ds.Tables[0].Rows[0]["FKTIPOFORMULARIO"].ToString()); objCartaBL.objCartaEL.FKESTADOCARTA = int.Parse(ds.Tables[0].Rows[0]["FKESTADO"].ToString()); //se ingresa el nuevo registro con el contador aumentado nValorRetornado = objCartaBL.insertarCarta(); //se crea el nuevo documento generarDocumento(strNombreCarta, ds.Tables[0].Rows[0]["FKTIPOFORMULARIO"].ToString()); //Se cambia el estado a renovacion if (nValorRetornado > 0) { objCartaBL = new cartaBL(); objCartaBL.objCartaEL.PK = p_nPk; objCartaBL.objCartaEL.FKESTADOCARTA = 4;//renovacion objCartaBL.activarInactivarCarta(); } } else { if (nNumDocumento > 2) { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } if (int.Parse(ds.Tables[0].Rows[0]["FKESTADO"].ToString()) != 1) { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } } if (nValorRetornado > 0) blnValorRetornado = true; return blnValorRetornado; } catch (Exception ex) { throw ex; } } /// /// Llena el dropdownlist de tipo de formulario /// private void llenarDDLtipoformulario() //M6 { try { //Limpia el control ddlTipoFormulario.Items.Clear(); //Instancia el bjeto objTipoCartaBL = new tipoCartaBL(); //Asigna datos al atributo //Carga la información en un dataset DataSet dsTipoFormualrio = objTipoCartaBL.dsListaTipoCarta(null); if (dsTipoFormualrio.Tables[0].Rows.Count != 0) { ddlTipoFormulario.DataSource = dsTipoFormualrio; ddlTipoFormulario.DataTextField = dsTipoFormualrio.Tables[0].Columns["NOMBREMACHOTETIPOCARTA"].ColumnName; ddlTipoFormulario.DataValueField = dsTipoFormualrio.Tables[0].Columns["PKTIPOCARTA"].ColumnName; ddlTipoFormulario.DataBind(); ddlTipoFormulario.Items.Insert(0, new System.Web.UI.WebControls.ListItem("Seleccione", "-1")); } else ddlTipoFormulario.Items.Insert(0, new System.Web.UI.WebControls.ListItem("----- No existen opciones -----", "-1")); } catch (Exception ex) { throw ex; } } /// /// Llena el dropdownlist de tipo de jefatura /// /// /// Llena el dropdownlist de Cantonales según la aplicación /// private void llenarDDLjefatura(DropDownList ddlTMP) //M3 { try { //Limpia el control ddlTMP.Items.Clear(); //Instancia el bjeto objUsuarioBL = new usuarioBL(); //Carga la información en un dataset DataSet dsRegion = objUsuarioBL.dsListaUsuariosJefatura(null); objUsuarioAyABL = new UsuarioBL(); DataSet ds2 = objUsuarioAyABL.dsListaUsuarios(null); DataTable dtJefes = new DataTable(); dtJefes.Columns.Add("USUARIOUSUARIOXDEPENDENCIA"); dtJefes.Columns.Add("NOMBRECOMPLETO"); if (dsRegion.Tables[0].Rows.Count != 0) { foreach (DataRow row in dsRegion.Tables[0].Rows) { foreach (DataRow rowUsuario in ds2.Tables[0].Rows) { if (row[1].ToString() == rowUsuario[1].ToString()) { DataRow rowFinal = dtJefes.NewRow(); rowFinal["USUARIOUSUARIOXDEPENDENCIA"] = row[1].ToString(); rowFinal["NOMBRECOMPLETO"] = rowUsuario[12].ToString(); dtJefes.Rows.Add(rowFinal); } } } } if (dtJefes.Rows.Count != 0) { ddlTMP.DataSource = dtJefes; ddlTMP.DataTextField = dtJefes.Columns["NOMBRECOMPLETO"].ColumnName; ddlTMP.DataValueField = dtJefes.Columns["USUARIOUSUARIOXDEPENDENCIA"].ColumnName; ddlTMP.DataBind(); ddlTMP.Items.Insert(0, new System.Web.UI.WebControls.ListItem("Seleccione", "-1")); } else ddlTMP.Items.Insert(0, new System.Web.UI.WebControls.ListItem("----- Vacio -----", "-1")); } catch (Exception ex) { throw ex; } } #endregion protected void grvListaCartaSolicitud_RowDataBound(object sender, GridViewRowEventArgs e) { try { GridViewRow selectedRow = e.Row; //if (e.Row.RowType == DataControlRowType.Header) //{ // e.Row.Cells[13].Visible = false; // e.Row.Cells[11].Visible = false; //} if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.Cells[8].Visible = false; grvListaCartaSolicitud.Columns[8].Visible = false; e.Row.Cells[8].ToolTip = "Inactivar documento"; e.Row.Cells[9].ToolTip = "Renovar documento"; //e.Row.Cells[9].ToolTip = "Reconsiderar documento"; e.Row.Cells[10].ToolTip = "Editar documento"; e.Row.Cells[11].ToolTip = "Firmar documento"; e.Row.Cells[12].ToolTip = "Ver documento"; e.Row.Cells[11].Visible = false; grvListaCartaSolicitud.Columns[11].Visible = true; grvListaCartaSolicitud.Columns[10].Visible = true; //e.Row.Cells[11].Style.Add("Opacity", "0.5"); if (nPKReutilizaTMP != int.Parse(e.Row.Cells[7].Text)) { string targetPath = ConfigurationManager.AppSettings["DocumentosODT"].ToString() + @"\" + selectedRow.Cells[1].Text + ".odt"; string targetUrl = "~/../../../DocumentosODT/" + selectedRow.Cells[1].Text + ".odt"; string targetUrlFirmar = "../../DocumentosPDF/" + Session["SOLICITUD"].ToString().Trim() + "/" + selectedRow.Cells[1].Text + ".pdf"; //LinkButton lnk = (LinkButton)e.Row.FindControl("lnk_Editar"); //LinkButton lnkFirmar = (LinkButton)e.Row.FindControl("lnk_Firmar"); //if (System.IO.File.Exists(targetPath)) //{ // lnk.Attributes.Add("href", targetUrl); // lnkFirmar.Attributes.Add("onClick", "JavaScript: window.open('" + targetUrlFirmar + "','','_blank','width=500,height=245,left=350,top=400')"); //} } //else //{ // { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } //} //Request["d"].ToString() = "constancia" viene de gestion de trabajo if (nPKReutilizaTMP == int.Parse(e.Row.Cells[7].Text) || e.Row.Cells[6].Text == "Inactivo" || Request["d"].ToString() == "deshabilitar" || e.Row.Cells[13].Text.Trim() != strNumSolicitudTMP.Trim()) { e.Row.Cells[8].Visible = false; grvListaCartaSolicitud.Columns[8].Visible = false; e.Row.Cells[9].Visible = false; grvListaCartaSolicitud.Columns[9].Visible = false; e.Row.Cells[10].Visible = false; //grvListaCartaSolicitud.Columns[10].Visible = false; //e.Row.Cells[11].Visible = false; //grvListaCartaSolicitud.Columns[11].Visible = false; //e.Row.Cells[11].Enabled = false; //e.Row.Cells[8].Style.Add("Opacity", "0.5"); //e.Row.Cells[9].Style.Add("Opacity", "0.5"); //e.Row.Cells[10].Style.Add("Opacity", "0.5"); //e.Row.Cells[11].Style.Add("Opacity", "0.5"); } if (e.Row.Cells[13].Text.Trim() == strNumSolicitudTMP.Trim() && Request["d"].ToString() == "firmar" && e.Row.Cells[6].Text == "Activo") { e.Row.Cells[8].Visible = false; grvListaCartaSolicitud.Columns[8].Visible = false; //e.Row.Cells[9].Visible = false; e.Row.Cells[10].Visible = false; //grvListaCartaSolicitud.Columns[10].Visible = false; e.Row.Cells[11].Visible = true; //grvListaCartaSolicitud.Columns[11].Visible = true; } if (Request["d"].ToString() == "deshabilitar" || Request["d"].ToString() == "finalizado") { e.Row.Cells[8].Visible = false; grvListaCartaSolicitud.Columns[8].Visible = false; e.Row.Cells[9].Visible = false; grvListaCartaSolicitud.Columns[9].Visible = false; e.Row.Cells[10].Visible = true; grvListaCartaSolicitud.Columns[10].Visible = false; e.Row.Cells[11].Visible = false; //grvListaCartaSolicitud.Columns[11].Visible = false; } if (e.Row.Cells[13].Text.Trim() == strNumSolicitudTMP.Trim() && Request["d"].ToString() == "constancia" && e.Row.Cells[6].Text == "Activo") { e.Row.Cells[10].Visible = true; } e.Row.Cells[13].Visible = false; // grvListaCartaSolicitud.Columns[13].Visible = false; if (Request["d"].ToString() == "firmar") { grvListaCartaSolicitud.Columns[11].Visible = true; grvListaCartaSolicitud.Columns[10].Visible = false; } else { grvListaCartaSolicitud.Columns[11].Visible = false; } if (Request["d"].ToString() == "constancia") { grvListaCartaSolicitud.Columns[10].Visible = true; grvListaCartaSolicitud.Columns[11].Visible = false; } //else //{ // grvListaCartaSolicitud.Columns[10].Visible = false; //} } } catch (Exception) { } finally { } } protected void btnFinalizar_Click(object sender, EventArgs e) { try { int nActividad = 5;//confeccion de constancia if (Request["d"] != null) { if (Request["d"].ToString() == "firmar") nActividad = 6;//validacion y firma de documentos } if (VerificarConstancias(nActividad)) { #region constancias Documento oDoc = new Documento(); bool bDocumentosAlmacenados = false; char delimitador = '-'; //Asigna un valor al atributo de referencia del objeto objCartaBL.objCartaEL.FKNUMSOLICITUD = int.Parse(Session["PKSOLICITUD"].ToString()); ; objCartaBL.objCartaEL.NOMBREDOCUMENTO = string.Empty; //objCartaBL.objCartaEL.FKREUTILIZA = nPKReutiliza; //Carga en un dataset la información DataSet ds = objCartaBL.listarCartas(); if (ds.Tables[0].Rows.Count > 0) { //ViewState["MODO"] = "Modificar"; foreach (DataRow row in ds.Tables[0].Rows) { if (row["DESCRIPCIONESTADOCARTA"].ToString() == "Activo") { string[] arrayNombre = row["NOMBREDOCUMENTOCARTA"].ToString().Split(delimitador); string pdfPathConstancia = ConfigurationManager.AppSettings["RutaPdfAdjuntosSql"].ToString() + @"\" + arrayNombre[1].ToString() + "-" + arrayNombre[2].ToString() + "-" + arrayNombre[3].ToString() + @"\" + row["NOMBREDOCUMENTOCARTA"].ToString() + ".pdf"; byte[] bDoc = System.IO.File.ReadAllBytes(pdfPathConstancia); //se carga el archivo y el registro a vision 2020 oDoc = new Documento(); string strResultado = ""; if (strResultado == string.Empty) { oDoc = new Documento(); strResultado = "s"; if (strResultado != string.Empty && strResultado != "No existe") { //strResultado += pdfPath + ";"; ; //File.Delete(pdfPathConstancia); bDocumentosAlmacenados = true; } else { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); bDocumentosAlmacenados = false; return; } } //else // bResultado = false; } } if (bDocumentosAlmacenados) { GuardarDatosActividad("finalizó", nActividad); if (nActividad == 5) { MensajeInformativo("Finalizó con éxito la actividad 5 Administración de constancias."); //cancelar notificacion notificacionBL objNotificacionBL = new notificacionBL(); objNotificacionBL.objnotificacionEL.ID_DOCUMENTO = Session["SOLICITUD"].ToString() + " - Confección de constancias"; objNotificacionBL.objnotificacionEL.status = "00"; objNotificacionBL.objnotificacionEL.message = "OK"; int nValorRetornado = objNotificacionBL.cancelarNotificacion(objNotificacionBL.objnotificacionEL); } if (nActividad == 6) { MensajeInformativo("Finalizó con éxito la actividad 6 Validación y firma."); //cancelar notificacion notificacionBL objNotificacionBL = new notificacionBL(); objNotificacionBL.objnotificacionEL.ID_DOCUMENTO = Session["SOLICITUD"].ToString() + " - Validación y firma"; objNotificacionBL.objnotificacionEL.status = "00"; objNotificacionBL.objnotificacionEL.message = "OK"; int nValorRetornado = objNotificacionBL.cancelarNotificacion(objNotificacionBL.objnotificacionEL); } #region Notificacion if (chkNotificacion.Checked) { if (VerificarNotificacion()) { int nNumSolicitudTMP = int.Parse(Session["PKSOLICITUD"].ToString()); if (File.Exists(ConfigurationManager.AppSettings["RutaPdfAdjuntosSql"].ToString() + @"\" + lblNumSolicitud.Text)) Directory.Delete(ConfigurationManager.AppSettings["RutaPdfAdjuntosSql"].ToString() + @"\" + lblNumSolicitud.Text,true); //GuardarDocumentoVision2020(nNumSolicitudTMP); programacionsolicitudBL objprogramacionsolicitudBL = new programacionsolicitudBL(); objprogramacionsolicitudBL.objprogramacionsolicitudEL.FKESTADOPROGRAMACION = 3; objprogramacionsolicitudBL.objprogramacionsolicitudEL.FKSOLICITUD = int.Parse(Session["PKSOLICITUD"].ToString()); objprogramacionsolicitudBL.objprogramacionsolicitudEL.PK = int.Parse(Session["PKPROGRAMACION"].ToString()); int nPKProgramacionSolicitud = objprogramacionsolicitudBL.modificarprogramacionsolicitud(); if (nPKProgramacionSolicitud == objprogramacionsolicitudBL.objprogramacionsolicitudEL.FKSOLICITUD) { GuardarDatosActividad("finalizó"); MensajeInformativo("Finalizó con éxito la actividad 7 Notificación al usuario."); //cancelar notificacion notificacionBL objNotificacionBL = new notificacionBL(); objNotificacionBL.objnotificacionEL.ID_DOCUMENTO = Session["SOLICITUD"].ToString() + " - Notificación al usuario"; objNotificacionBL.objnotificacionEL.status = "00"; objNotificacionBL.objnotificacionEL.message = "OK"; int nValorRetornado = objNotificacionBL.cancelarNotificacion(objNotificacionBL.objnotificacionEL); } else { MensajeAlerta("Se presento un problema al finalizar la actividad por favor intente de nuevo."); } } else MensajeAlerta("Falta finalizar la notificación al usuario."); } #endregion //ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); } } #endregion } else MensajeAlerta("Falta finalizar la generación de constancias."); } catch (Exception ex) { MensajeError("Se presentó un error al finalizar la actividad.", ex); } } public bool VerificarConstancias(int p_nOrden) { bool bValorRetornado = false; try { //Instancia el objeto objCartaBL = new cartaBL(); //Asigna un valor al atributo de referencia del objeto objCartaBL.objCartaEL.FKNUMSOLICITUD = nNumSolicitudTMP; objCartaBL.objCartaEL.NOMBREDOCUMENTO = string.Empty; //objCartaBL.objCartaEL.FKREUTILIZA = nPKReutilizaTMP; objCartaBL.objCartaEL.FKESTADOCARTA = 1; objCartaBL.objCartaEL.FKESTADOCARTA2 = 4; //Carga en un dataset la información DataSet ds = objCartaBL.listarCartas(); //se el registro de vision 2020 Documento oDoc = new Documento(); string strResultado = string.Empty; if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow row in ds.Tables[0].Rows) { string pdfPath = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + Session["SOLICITUD"].ToString() + @"\" + row["NOMBREDOCUMENTOCARTA"].ToString() + ".pdf"; #region constancias if (!File.Exists(pdfPath)) { //obtener la constancia y ponerla en la carpeta compartida para el envio de correo char delimitador = '-'; string[] arrayNombre = row["NOMBREDOCUMENTOCARTA"].ToString().Split(delimitador); strResultado = oDoc.Consultar_Documento(arrayNombre[1].ToString() + "-" + arrayNombre[2].ToString() + "-" + arrayNombre[3].ToString() + "|Constancia", row["NOMBREDOCUMENTOCARTA"].ToString(), row["NOMBREDOCUMENTOCARTA"].ToString() + ".pdf"); string Archivo = row["NOMBREDOCUMENTOCARTA"].ToString() + ".pdf"; if (File.Exists(pdfPath)) { strResultado = "EXISTE"; } strResultado = "."; if (strResultado == string.Empty || strResultado == "No existe") { ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); bValorRetornado = false; return bValorRetornado; } } #endregion if (System.IO.File.Exists(pdfPath)) { bValorRetornado = true; if (p_nOrden == 6 && chkFirmado.Checked == true)//revisar firma { oDoc = new Documento(); //se transaforma el archivo a un arreglo de bytes byte[] bDoc = System.IO.File.ReadAllBytes(pdfPath); string nombreAdjunto = row["NOMBREDOCUMENTOCARTA"].ToString(); //nombreAdjunto = nombreAdjunto.Replace(" ", "_"); //se verifica que el archivo a subir este firmado using (FirmadorWeb.FirmadorWebSvcClient cliente = new FirmadorWeb.FirmadorWebSvcClient()) { FirmadorWeb.FirmaDigital1[] signatures = null; //Trace.Write("Paso 1"); //try //{ //throw new Exception("Excepcion volutaria"); signatures = cliente.ValidarDocumento( row["NOMBREDOCUMENTOCARTA"].ToString() + ".pdf", bDoc ); if (signatures.Count() > 0) { if (signatures[0].Estado.ToString() == "Invalido") { MensajeAlerta("La firma digital en el documento " + row["NOMBREDOCUMENTOCARTA"].ToString() + " no es válida." ); return false; } } if (signatures.Count() == 0 ) { MensajeAlerta("El documento " + row["NOMBREDOCUMENTOCARTA"].ToString() + " no ha sido firmado por favor realice el proceso de firma digital."); return false; } } } } else { bValorRetornado = false; return bValorRetornado; } } } if (p_nOrden == 6)//6:validacion y firma de documentos { //modificar el estado de la firma solicitudBL objSolicitudBL = new solicitudBL(); objSolicitudBL.objSolicitudEL.PK = int.Parse(Session["PKPROGRAMACION"].ToString()); objSolicitudBL.objSolicitudEL.FKUSUARIOXDEPENDENCIA = int.Parse(Session["PKUSUARIOXDEPENDENCIA"].ToString()); objSolicitudBL.objSolicitudEL.ORDEN = p_nOrden;//6:validacion y firma de documentos objSolicitudBL.objSolicitudEL.VALIDACIONFIRMARESPONSABLEACTIVIDAD = false; DataSet dsEncargadoSolicitudFirma = objSolicitudBL.dsListaActividadesEncargadoFirma(null); foreach (DataRow row in dsEncargadoSolicitudFirma.Tables[0].Rows) { objSolicitudBL.objresponsableActividadEL.VALIDACIONFIRMA = true; objSolicitudBL.objresponsableActividadEL.PK = int.Parse(row["PKRESPONSABLEACTIVIDAD"].ToString()); int nResultActualizarFirma = objSolicitudBL.actualizarFirmaActividadSolicitud(); } //verificar que no faltan firmas objSolicitudBL = new solicitudBL(); objSolicitudBL.objSolicitudEL.PK = int.Parse(Session["PKPROGRAMACION"].ToString()); //objSolicitudBL.objSolicitudEL.FKUSUARIOXDEPENDENCIA = int.Parse(Session["PKUSUARIOXDEPENDENCIA"].ToString()); objSolicitudBL.objSolicitudEL.ORDEN = p_nOrden;//6:validacion y firma de documentos objSolicitudBL.objSolicitudEL.VALIDACIONFIRMARESPONSABLEACTIVIDAD = false; DataSet dsEncargadosActividades = objSolicitudBL.dsListaActividadesEncargadoFirma(null); if (dsEncargadosActividades.Tables[0].Rows.Count > 0 && chkFirmado.Checked == true)//revisar firma { bValorRetornado = false; foreach (DataRow row in dsEncargadosActividades.Tables[0].Rows) { string strPiePagina = "


AVISO DE CONFIDENCIALIDAD: este mensaje y la información incluida en él es confidencial y está dirigida únicamente al destinatario. Puede contener información privilegiada, confidencial, amparada por el secreto profesional o que no debe ser revelada. Si usted ha recibido este correo por error, por favor comunicarlo inmediatamente vía correo y tener la amabilidad de eliminarlo de su sistema. Queda notificado que no deberá copiar este mensaje, ni utilizar, divulgar, publicar o distribuir su contenido de modo alguno. Todo mensaje enviado a esta dirección de correo electrónico puede ser sujeto a inspección por alguien distinto de su receptor originario. La transmisión de correos no garantiza que el correo electrónico sea seguro o libre de error. Por consiguiente, se advierte que esta información pueda estar incompleta o ser poco precisa ya que toda información está sujeta a alterarse sin previo aviso.”"; string strAsuntoCorreo = "Conclusión de actividad - SIGDD"; string strMensajeContenido = "La actividad validación y firma de la solicitud N° " + Session["SOLICITUD"].ToString() + " no puede ser concluida hasta que se firmen las constancias, ingrese al sistema SIGDD" + strPiePagina; AyABL.TRA.correoBL objcorreoBL = new AyABL.TRA.correoBL(); int nPkSolicitud = Convert.ToInt32(row[1].ToString());//AQUI INSERTAMOS LA PK DE LA SOLICITUD objcorreoBL.objcorreoEL.FKNUMSOLICITUD = nPkSolicitud; // objcorreoBL.objcorreoEL.CORREO = dsActividad.Tables[0].Rows[0]["LOGINUSUARIO"].ToString() + "@aya.go.cr"; objcorreoBL.objcorreoEL.ASUNTO = strAsuntoCorreo; objcorreoBL.objcorreoEL.CONTENIDO = strMensajeContenido; objcorreoBL.objcorreoEL.FKUSUARIO = Convert.ToInt32(row["FKUSUARIOXDEPENDENCIA"].ToString()); objcorreoBL.objcorreoEL.Fecha = DateTime.Now; int nValorRetornado = objcorreoBL.insertarCorreo(); MensajeAlerta("Falta finalizar la firma de documentos por parte del usuario " + CultureInfo.CurrentCulture.TextInfo.ToTitleCase(row["NOMBRECOMPLETO"].ToString().ToLower())); } } //verificar que los documentos se encuentran firmados } } catch (Exception ex) { throw ex; } return bValorRetornado; } private bool VerificarNotificacion() { bool bValor = false; try { if (chkCFIA.Checked == false) { notificacionClienteBL objNotificacionClienteBL = new notificacionClienteBL(); objNotificacionClienteBL.objnotificacionClienteEL.FKSOLICITUD = int.Parse(Session["PKSOLICITUD"].ToString()); DataSet ds = objNotificacionClienteBL.listarNotificacionCliente(); if (ds.Tables[0].Rows.Count != 0) { bValor = true; } } else { string strRutaArchivosAdjuntos = string.Empty; int nNumSolicitudTMP = int.Parse(Session["PKSOLICITUD"].ToString()); strRutaArchivosAdjuntos = obtenerCartaSolicitud(nNumSolicitudTMP); //crear documento zip con los archivos adjuntos string strRutaDocumentos = ConfigurationManager.AppSettings["RutaPdfAdjuntosSql"].ToString() + @"\" + lblNumSolicitud.Text; DirectoryInfo diCarpeta = new DirectoryInfo(strRutaDocumentos); ZipFile zip = new ZipFile(); foreach (FileInfo fi in diCarpeta.GetFiles()) { if (fi.Extension == ".pdf") zip.AddFile(strRutaDocumentos + @"\" + fi.Name, ""); } string strRutaDocZip = strRutaDocumentos + @"\" + lblNumSolicitud.Text + ".zip"; zip.Save(strRutaDocZip); //ser verifica el resultado de la solicitud solicitudBL objSolicitudBL = new solicitudBL(); objSolicitudBL.objSolicitudEL.PK = int.Parse(strPKSolicitudTMP); DataSet dsSolicitud = objSolicitudBL.dsExisteSolicitud(null); if (dsSolicitud.Tables[0].Rows.Count > 0 && 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(strRutaDocZip) && nNumeroSolicitudCFIA != 0) { APCR_WCF_Respuesta.ServicioClient wcfCfia = new APCR_WCF_Respuesta.ServicioClient(); APCR_WCF_Respuesta.Respuestas respuestaAPCR; byte[] bRespuestaZip = System.IO.File.ReadAllBytes(strRutaDocZip); respuestaAPCR = wcfCfia.RespuestaSolicitud(nNumeroSolicitudCFIA, txtObservaciones.Text, 3, Session["LOGIN"].ToString(), bRespuestaZip, 3, ConfigurationManager.AppSettings["LLAVEAPCR"].ToString()); if (respuestaAPCR.Respuesta == true) { bValor = true; } else { bValor = false; MensajeAlerta("Se presento el siguiente problema a la hora de notificar al CFIA: " + respuestaAPCR.DescripcionError); } } } } catch (Exception ex) { throw ex; } return bValor; } private int GuardarDatosActividad(string p_accion) //M0 { int nValorRetornado = 0; try { AyABL.TRA.correoBL objcorreoBL = new AyABL.TRA.correoBL(); //string strModo = ViewState["MODO"].ToString(); int nPkSolicitud = 0; int nResultadoActualizar = 0; string strMensajeContenido = ""; string strAsuntoCorreo = ""; string strPiePagina = "


AVISO DE CONFIDENCIALIDAD: este mensaje y la información incluida en él es confidencial y está dirigida únicamente al destinatario. Puede contener información privilegiada, confidencial, amparada por el secreto profesional o que no debe ser revelada. Si usted ha recibido este correo por error, por favor comunicarlo inmediatamente vía correo y tener la amabilidad de eliminarlo de su sistema. Queda notificado que no deberá copiar este mensaje, ni utilizar, divulgar, publicar o distribuir su contenido de modo alguno. Todo mensaje enviado a esta dirección de correo electrónico puede ser sujeto a inspección por alguien distinto de su receptor originario. La transmisión de correos no garantiza que el correo electrónico sea seguro o libre de error. Por consiguiente, se advierte que esta información pueda estar incompleta o ser poco precisa ya que toda información está sujeta a alterarse sin previo aviso.”"; solicitudBL objSolicitudBL = new solicitudBL(); objSolicitudBL.objSolicitudEL.PK = int.Parse(Session["PKPROGRAMACION"].ToString()); objSolicitudBL.objSolicitudEL.ORDEN = int.Parse(Session["NACTIVIDAD"].ToString()); DataSet dsEncargadosActividades = objSolicitudBL.dsListaActividadesEncargado(null); if (dsEncargadosActividades.Tables[0].Rows.Count > 0) { string strEncargadoActividad = dsEncargadosActividades.Tables[0].Rows[0]["PKRESPONSABLEACTIVIDAD"].ToString(); ObservacionesActividadesBL objObservacionesBL = new ObservacionesActividadesBL(); //objObservacionesBL.objobservacionesEL.FKNUMSOLICITUD = strNumSolicitudTMP; objObservacionesBL.objobservacionesEL.DESCRIPCION = "\n" + DateTime.Now.ToString() + " - " + Session["NOMBREEMPLEADO"].ToString() + " - Se " + p_accion + " la notificación al usuario por parte del encargado : " + Session["NOMBREEMPLEADO"].ToString(); objObservacionesBL.objobservacionesEL.FKUSUARIOXDEPENDENCIA = int.Parse(Session["PKUSUARIOXDEPENDENCIA"].ToString()); objObservacionesBL.objobservacionesEL.PKRESPONSABLEACTIVIDAD = int.Parse(strEncargadoActividad); objObservacionesBL.objobservacionesEL.Fecha = DateTime.Now; objObservacionesBL.objobservacionesEL.TIPO = 1; //objObservacionesBL.objobservacionesEL.FKSOLICITUD = nPKSolicitud; //objObservacionesBL.objobservacionesEL.USUARIO = Session["LOGIN"].ToString(); nValorRetornado = objObservacionesBL.insertarObservacionActividad(); if (nValorRetornado != 0) { solicitudBL objSolicitud = new solicitudBL(); //objSolicitud.objresponsableActividadEL.PK = int.Parse(Session["PKRESPONSABLEACTIVIDAD"].ToString()); //poner la actividad actual en estado correspondiente objSolicitud.objresponsableActividadEL.FECHADEVOLUCION = DateTime.Now; foreach (DataRow row in dsEncargadosActividades.Tables[0].Rows) { objSolicitud.objresponsableActividadEL.PK = int.Parse(row["PKRESPONSABLEACTIVIDAD"].ToString()); if (p_accion == "finalizó") { decimal nTiempoActividad = 0; if (row["CLASIFICACIONSOLICITUD"].ToString() == "Crecimiento vegetativo") nTiempoActividad = decimal.Parse(row["TIEMPOCVACTIVIDAD"].ToString()); if (row["CLASIFICACIONSOLICITUD"].ToString() == "Desarrollo urbanistico") nTiempoActividad = decimal.Parse(row["TIEMPODUACTIVIDAD"].ToString()); char[] separadorColumna = { '.' }; string[] strArrayTiempo = nTiempoActividad.ToString().Replace(",", ".").Split(separadorColumna); DateTime dtFechaRecibido = DateTime.Parse(row["FECHAASIGNACIONRESPONSABLEACTIVIDAD"].ToString()).AddDays(double.Parse(strArrayTiempo[0].ToString())); if (double.Parse(strArrayTiempo[1].ToString()) > 0) dtFechaRecibido = dtFechaRecibido.AddHours(4); if (dtFechaRecibido > DateTime.Now) objSolicitud.objresponsableActividadEL.FKESTADO = 5;//finalizada a tiempo t_sgm_estadoactividad else objSolicitud.objresponsableActividadEL.FKESTADO = 8;//finalizada fuera de tiempo t_sgm_estadoactividad strMensajeContenido = "La actividad " + Session["DESCRIPCIONACTIVIDAD"].ToString() + " de la solicitud N° " + Session["SOLICITUD"].ToString() + " ha sido concluida para ver los detalles, ingrese al sistema SIGDD" + strPiePagina; strAsuntoCorreo = "Conclusión de actividad - SIGDD"; //cancelar notificacion notificacionBL objNotificacionBL = new notificacionBL(); objNotificacionBL.objnotificacionEL.ID_DOCUMENTO = Session["SOLICITUD"].ToString() + " - Notificación al usuario"; objNotificacionBL.objnotificacionEL.status = "00"; objNotificacionBL.objnotificacionEL.message = "OK"; nValorRetornado = objNotificacionBL.cancelarNotificacion(objNotificacionBL.objnotificacionEL); } nResultadoActualizar = objSolicitud.actualizarActividadSolicitud(); } #region Envio de correo int nActividad = int.Parse(Session["NACTIVIDAD"].ToString()); //if (nActividad > 2) // nActividad = 2;//SE ENVIA PARA REPROGRAMAR11 //else // nActividad = 1; //se envia correo a los encargados de la actividad 3 objSolicitudBL.objSolicitudEL.PK = int.Parse(Session["PKPROGRAMACION"].ToString()); objSolicitudBL.objSolicitudEL.ORDEN = nActividad; dsEncargadosActividades = objSolicitudBL.dsListaActividadesEncargado(null); if (dsEncargadosActividades.Tables[0].Rows.Count > 0) { foreach (DataRow row in dsEncargadosActividades.Tables[0].Rows) { nPkSolicitud = Convert.ToInt32(row[1].ToString());//AQUI INSERTAMOS LA PK DE LA SOLICITUD objcorreoBL.objcorreoEL.FKNUMSOLICITUD = nPkSolicitud; // objcorreoBL.objcorreoEL.CORREO = dsActividad.Tables[0].Rows[0]["LOGINUSUARIO"].ToString() + "@aya.go.cr"; objcorreoBL.objcorreoEL.ASUNTO = strAsuntoCorreo; objcorreoBL.objcorreoEL.CONTENIDO = strMensajeContenido; objcorreoBL.objcorreoEL.FKUSUARIO = Convert.ToInt32(row["FKUSUARIOXDEPENDENCIA"].ToString()); objcorreoBL.objcorreoEL.Fecha = DateTime.Now; nValorRetornado = objcorreoBL.insertarCorreo(); } } #endregion GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + "Se finaliza la notificación al usuario por parte del encargado: " + Session["NOMBREEMPLEADO"].ToString().Trim() + " para la solicitud N° " + Session["SOLICITUD"].ToString(), Path.GetFileNameWithoutExtension(Page.AppRelativeVirtualPath), Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } } GuardarEventoBitacora( Session["LOGIN"].ToString(), AccionBitacora.INSERT.ToString(), MensajesBitacora.IngresarRegistro + ": Se ingreso una nueva observacion: Se finaliza la notificación al usuario por parte del encargado: " + Session["NOMBREEMPLEADO"].ToString().Trim(), Path.GetFileNameWithoutExtension(Page.AppRelativeVirtualPath), Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"]) ); } catch (Exception ex) { throw ex; } return nValorRetornado; } private void AbrirVentanaEmergenteDevolucion() { { EjecutarScript("VentanaEmergenteAbrirDevolucion('frwDevolucionActividadesSolicitud.aspx');"); ViewState["POPUP"] = "VentanaEmergente"; //Instancia el objeto objCartaBL = new cartaBL(); //Asigna un valor al atributo de referencia del objeto objCartaBL.objCartaEL.FKNUMSOLICITUD = nNumSolicitudTMP; objCartaBL.objCartaEL.NOMBREDOCUMENTO = string.Empty; //objCartaBL.objCartaEL.FKREUTILIZA = nPKReutilizaTMP; //Carga en un dataset la información DataSet ds = objCartaBL.listarCartas(); if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow row in ds.Tables[0].Rows) { int nPK = int.Parse(row["PKCARTA"].ToString()); eliminarCartaSolicitud(nPK); } obtenerCartaSolicitud(nNumSolicitudTMP, "", nPKReutilizaTMP); } } } }