2021-01-22 14:59:35 +00:00
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.Usuario ;
using AyABL.APL ;
using AyABL.Tran ;
using AyABL.TRA ;
using BASEBL ;
using System.IO ;
using FirmaDigitalAv ;
using System.Text ;
using System.Globalization ;
using AyABL.AUT.Encripta ;
using System.Security.Cryptography ;
using Ionic.Zip ;
public partial class Forms_TRA_frwRequisitos : General
{
#region Inicializar Formulario ( R0 )
override protected void OnInit ( EventArgs e ) //M0
{
try
{
//Response.Cache.SetCacheability(HttpCacheability.NoCache);
base . OnInit ( e ) ;
InicializarFormulario ( ) ;
}
catch ( Exception ex )
{
MensajeError ( "Error en R0M0" , ex ) ;
}
}
private void InicializarFormulario ( ) //M1
{
try
{
Response . Cache . SetCacheability ( HttpCacheability . NoCache ) ;
construirGridView ( ) ;
Javascript . CheckAllGridViewItems ( Page ) ;
cuwBusquedaList . Buscar + = new _controlesusuario_Estandar_cuwBusquedaList . SearchEvent ( Buscar ) ;
}
catch ( Exception ex )
{
MensajeError ( "Error en R0M1" , ex ) ;
}
}
#endregion
#region Variables ( R1 )
GridView grvListaDatosCantonalesTemp ;
requisitoBL objRequisitoBL ;
RequisitostmpBL objRequisitostmpBL ;
documentoBL objdocumentoBL ;
solicitudBL objSolicitudBL = new solicitudBL ( ) ;
int nTipoPropietario = 0 ;
int nTipoDisponibilidad = 0 ;
bool bPoseedor = false ;
bool bSegregacion = false ;
bool bDerechos = false ;
bool bAPCR = false ;
bool bAutorizadoLegal = false ;
bool bPropietarioRegistral = false ;
bool bConcesionario = false ;
string strNaturalezaInmueble = string . Empty ;
public string strPKReutiliza = "0" ;
int intPKREQUISITO = 0 ;
string strNumSolicitudTMP = "0" ;
#region variables del estandar
string strPagina = string . Empty ;
string strScript = string . Empty ;
string strNombreCliente = string . Empty ;
string strRutaDocAdjuntosRespuesta = string . Empty ;
#endregion
/// <summary>
/// Código del sistema cliente del servicio de firma digital. Cada sistema cliente debe usar un código diferente.
/// </summary>
private const string CodigoSistema = "SIGPC" ;
/// <summary>
/// Identificador del usuario definido para el sistema cliente
/// </summary>
private long IdUsuarioSistemaCliente
{
get
{
return long . Parse ( ConfigurationManager . AppSettings [ "IdUsuarioSistemaCliente" ] ) ;
}
}
ArrayList arlCondicionesFiltroBusqueda = new ArrayList ( ) ;
#endregion
#region Eventos Formulario ( R2 )
protected void Page_Load ( object sender , EventArgs e ) //M0
{
try
{
//GlobalBL.InstanciaGlobalBL().strValorLlave = String.Empty;
//GlobalBL.InstanciaGlobalBL().sCantidadRegistros = String.Empty;
ScriptManager . GetCurrent ( Page ) . RegisterPostBackControl ( grvLista ) ;
Page . Form . Attributes . Add ( "enctype" , "multipart/form-data" ) ;
if ( Session [ "SOLICITUD" ] ! = null )
{
strNumSolicitudTMP = Session [ "PKSOLICITUD" ] . ToString ( ) ;
pksolicitud . Value = Session [ "PKSOLICITUD" ] . ToString ( ) ;
ViewState [ "FKSOLICITUD" ] = strNumSolicitudTMP ;
lblNumSolicitud . Text = Session [ "SOLICITUD" ] . ToString ( ) ;
if ( Session [ "FKREUTILIZA" ] . ToString ( ) ! = string . Empty )
strPKReutiliza = Session [ "FKREUTILIZA" ] . ToString ( ) ;
if ( Request [ "d" ] ! = null )
{
if ( Request [ "d" ] . ToString ( ) = = "prorroga" | | Request [ "d" ] . ToString ( ) = = "revision" )
{
btnImcompleto . Enabled = true ;
btnGuardar . Enabled = true ;
btnSubirarchivo . Enabled = true ;
}
}
if ( Session [ "ESTADO" ] ! = null )
{
if ( Session [ "ESTADO" ] . ToString ( ) = = "Finalizada" )
{
btnImcompleto . Enabled = false ;
btnGuardar . Enabled = false ;
btnSubirarchivo . Enabled = false ;
//grvLista.Enabled = false;
grvListaDatosRequisitos . Enabled = false ;
}
}
identificaClientePropietarioSolicitud ( ) ;
if ( ( ! IsPostBack ) & & ( Session . Count > 0 ) )
{
Session [ "Pagina" ] = "" ;
mostrarFilaTabla ( 1 ) ;
llenarRequisitos ( ) ;
ComandosxMenu ( ) ;
//verifica si estan todos los documentos y si se genero el documento completo
//bool bDocumentosCheckeados = true;
//foreach (GridViewRow row in grvListaDatosRequisitos.Rows)
//{
// HtmlInputCheckBox chkTemp = (HtmlInputCheckBox)row.Controls[0].Controls[1];
// if (chkTemp.Checked == false)
// bDocumentosCheckeados = false;
//}
//if (bDocumentosCheckeados == true)
//{
// bool bDocumentoCompletoGenerado = false;
// foreach (GridViewRow row in grvLista.Rows)
// {
// if (row.Cells[1].Text.Contains("RequisitosCompleto"))
// {
// bDocumentoCompletoGenerado = true;
// btnImcompleto.Visible = false;
// }
// }
// if (bDocumentoCompletoGenerado == false)
// EjecutarScript("MensajeInformativoPersonalizado('Esta pendiente la generación del documento de requisitos completo por favor proceda a presionar el boton completo, para poder generar el documento y poder utilizar las opciones de firma y notificaón al usuario.');EscoderBoton();");
// else
// EjecutarScript("EscoderBoton();");//PERMITE QUE SOLO SE MUESTRE UN BOTON EN LA PÁGINA
//}
//{
// foreach (GridViewRow row in grvLista.Rows)
// {
// if (row.Cells[1].Text.Contains("RequisitosCompleto"))
// {
// btnImcompleto.Visible = false;
// }
// }
//}
}
else
{
if ( Session [ "Pagina" ] = = null )
{
//Response.Redirect("../wfrLogin.aspx?sesion=expiro", false);
{ ClientScript . RegisterStartupScript ( this . GetType ( ) , "Error" , "<script>javascript:parent.closeIFrameRequisitos();</script>" ) ; }
}
}
}
else
{
if ( Session [ "Pagina" ] = = null )
{
//Response.Redirect("../wfrLogin.aspx?sesion=expiro", false);
{ ClientScript . RegisterStartupScript ( this . GetType ( ) , "Error" , "<script>javascript:parent.closeIFrameRequisitos();</script>" ) ; }
}
}
if ( ViewState [ "MODO" ] ! = null )
{
if ( ViewState [ "MODO" ] . ToString ( ) = = "Firmador" )
{
obtenerDocumentoFirmado ( ) ;
}
}
}
catch ( Exception ex )
{
MensajeError ( "Error en R2M0" , ex ) ;
}
}
#endregion
#region Eventos Controles Web ( R3 )
/// <summary>
/// Metodo que se utiliza para extraer información del registro de la base de datos y ser mostrado en el acordeon de Controles
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grvListaDatosRequisitos_RowCommand ( object sender , GridViewCommandEventArgs e ) //M0
{
try
{
if ( e . CommandName = = "editar" )
{
int i = Convert . ToInt32 ( e . CommandArgument ) ;
GridViewRow selectedRow = grvListaDatosRequisitos . Rows [ i ] ;
int intPkRequisito = Convert . ToInt32 ( selectedRow . Cells [ 2 ] . Text ) ;
ViewState [ "intPkRequisito" ] = intPkRequisito ;
ViewState [ "MODO" ] = "Modifica" ;
mostrarFilaTabla ( 2 ) ;
mostrarDatos ( intPkRequisito ) ;
}
}
catch ( Exception ex )
{
MensajeError ( "Error en R3M0" , ex ) ;
}
}
/// <summary>
/// Metodo que se utiliza para la paginación del Grid en caso de que el usuario desee ver mas registros
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grvListaDatosRequisitos_PageIndexChanging ( object sender , GridViewPageEventArgs e ) //M3
{
try
{
grvListaDatosRequisitos . PageIndex = e . NewPageIndex ;
llenarGridView ( true ) ;
}
catch ( Exception ex )
{
MensajeError ( "Error en R3M3" , ex ) ;
}
}
///<summary>
///Activar el botón de Refrescar
///</summary>
///<param name="sender"></param>
///<param name="e"></param>
protected void btnRefrescar_Click ( object sender , System . Web . UI . ImageClickEventArgs e ) //M4
{
try
{
llenarGridView ( true ) ;
}
catch ( Exception ex )
{
MensajeError ( "Error en R3M4" + MensajesAplicacion . RefrescarFallido . ToString ( ) , ex ) ;
}
}
/// <summary>
/// Activa el evento del botón Buscar (binoculares)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
/// <summary>
protected void btnBuscar_Click ( object sender , EventArgs e ) //M5
{
try
{
//RequisitostmpBL objRequisitostmpBL = new RequisitostmpBL();
//objRequisitostmpBL.objRequisitostmpEL.FKSOLICITUD = int.Parse(strNumSolicitudTMP);
buscarGridView ( null ) ;
}
catch ( Exception ex )
{
MensajeError ( "Error en R3M5" + MensajesAplicacion . BusquedaFallido . ToString ( ) , ex ) ;
}
}
/// <summary>
/// Activa el evento del boton guardar.1
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnGuardar_Click ( object sender , EventArgs e ) //M14
{
try
{
string strRequisito = string . Empty ;
bool blIncompleto = false ;
objRequisitostmpBL = new RequisitostmpBL ( ) ;
foreach ( GridViewRow row in grvListaDatosRequisitos . Rows )
{
HtmlInputCheckBox chkTemp = ( HtmlInputCheckBox ) row . Controls [ 0 ] . Controls [ 1 ] ;
if ( chkTemp ! = null )
{
//Si el registro esta marcado guarde
if ( chkTemp . Checked )
{
int intPKREQUISITO = Convert . ToInt32 ( row . Cells [ 2 ] . Text ) ;
//GuardarRequisitosIncompleto(intPKREQUISITO);
int nResultado = GuardarDatos ( intPKREQUISITO , strRequisito ) ;
if ( nResultado = = 0 & & intPKREQUISITO ! = 20 )
{
blIncompleto = true ;
strRequisito + = row . Cells [ 3 ] . Text + "</br>" ;
}
}
//if (chkTemp.Checked == false)
// blIncompleto = true;
}
}
//if (blIncompleto)
//{
// //accion incompleto
// //MensajeAlerta("Falta agregar documento adjunto:" + strRequisito);
// EjecutarScript("MensajeInformativoCompleto('Falta agregar el (los) archivo (s) adjunto (s):</br>" + strRequisito + "');EscoderBoton();");
// llenarGridView(true);
//}
//else
2021-02-03 04:56:17 +00:00
//{
2021-01-22 14:59:35 +00:00
EnvioCorreo ( "cumplido" ) ;
GuardarDatosActividad ( "aprueba" ) ;
EjecutarScript ( "MensajeInformativoPersonalizado('Se completó el ingreso de requisitos por lo que se puede continuar con la programación de las actividades.');EscoderBoton();" ) ;
// EjecutarScript("window.parent.location.href = '../tra/frwProgramacionTrabajo.aspx?l=H/TvTKzD0EejKTW94E5Rjg==&u=J/U7O2rxqMtOqD6/hFMtDw==';");
GuardarEventoBitacora (
Session [ "LOGIN" ] . ToString ( ) ,
AccionBitacora . INSERT . ToString ( ) ,
MensajesBitacora . IngresarRegistro + ": Se completó el ingreso de requisitos por lo que se puede continuar con la programación de las actividades para la solicitud " + lblNumSolicitud . Text + "." ,
"frwRequisitosSolicitud.aspx" ,
Convert . ToInt32 ( ConfigurationManager . AppSettings [ "pkApp" ] )
) ;
//EncriptaBL objEncripta = new EncriptaBL();
//Response.Redirect("~/forms/tra/frwProgramacionTrabajo.aspx?" + "l=" + objEncripta.Encryptar(Session["LOGIN"].ToString()) + "&u=" + objEncripta.Encryptar(Session["PKUSUARIO"].ToString()) );
//EncriptaBL objEncripta = new EncriptaBL();
//Response.Redirect("~/forms/tra/frwBusquedaSolicitud.aspx?" + "l=" + objEncripta.Encryptar(Session["LOGIN"].ToString()) + "&u=" + objEncripta.Encryptar(Session["PKUSUARIO"].ToString()) );
2021-02-03 04:56:17 +00:00
//}
2021-01-22 14:59:35 +00:00
}
catch ( Exception ex )
{
MensajeError ( "Error en R3M15" , ex ) ;
}
finally
{
EjecutarScript ( "EscoderBoton();" ) ;
}
}
/// <summary>
/// Activa el evento del boton guardar Incompleto
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnImcompleto_Click ( object sender , EventArgs e ) //M15
{
try
{
bool blIncompleto = false ;
objRequisitostmpBL = new RequisitostmpBL ( ) ;
// recorre el grip
objRequisitostmpBL . objRequisitostmpEL . FKSOLICITUD = int . Parse ( strNumSolicitudTMP ) ;
objRequisitostmpBL . objRequisitostmpEL . FKREQUISITO = 0 ;
objRequisitostmpBL . eliminarRequisitos ( ) ;
foreach ( GridViewRow row in grvListaDatosRequisitos . Rows )
{
HtmlInputCheckBox chkTemp = ( HtmlInputCheckBox ) row . Controls [ 0 ] . Controls [ 1 ] ;
if ( chkTemp ! = null )
{
//Si el registro esta marcado guarde
if ( chkTemp . Checked )
{
int intPKREQUISITO = Convert . ToInt32 ( row . Cells [ 2 ] . Text ) ;
GuardarRequisitosIncompleto ( intPKREQUISITO ) ;
EjecutarScript ( "EscoderBoton();MensajeInformativo();" ) ; //PERMITE QUE SOLO SE MUESTRE UN BOTON EN LA PÁGINA
// MensajeInformativo(AyABL.BASESDEDATOS.ADS + "Interfaz: " + MensajesAplicacion.GuardadoExitoso.ToString());
}
if ( chkTemp . Checked = = false )
blIncompleto = true ;
}
}
if ( blIncompleto )
{
//accion incompleto
EnvioCorreo ( "incumplido" ) ;
#region Envio de correo
//int nValorRetornado = 0;
//string strPiePagina = "</BR> </BR></BR>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.”";
//AyABL.TRA.correoBL objcorreoBL = new AyABL.TRA.correoBL();
//objcorreoBL.objcorreoEL.FKNUMSOLICITUD = int.Parse(Session["PKSOLICITUD"].ToString());
////objcorreoBL.objcorreoEL.CORREO = dsActividad.Tables[0].Rows[0]["LOGINUSUARIO"].ToString() + "@aya.go.cr";
//objcorreoBL.objcorreoEL.ASUNTO = "Requisitos incompletos - SIGPC";
//objcorreoBL.objcorreoEL.CONTENIDO = " Sr(a)(ita) : " + Session["SOLICITUD"].ToString() + " </BR></BR> Fecha: " + DateTime.Now.ToString() + " </BR> </BR> Según lo establecido en el artículo 18-19 del Reglamento para la Prestación de los Servicios de AyA para solicitar una disponibilidad de servicios de agua potable y alcantarillado sanitario, donde se estipula que el propietario del inmueble deberá cumplir con presentar los siguientes requisitos." + Session["SOLICITUD"].ToString() +
//"</BR></BR> Se deben dejar en blanco los requisitos para que sean marcados luego de impresos. Debido a lo expuesto anteriormente y en apego de la normativa, se le conceden diez días hábiles para completar los requisitos. Luego de transcurrido este plazo se procederá a archivar el trámite, según el artículo 264 de la Ley General para la Administración Pública." + strPiePagina;
//objcorreoBL.objcorreoEL.FKUSUARIO = Convert.ToInt32(Session["PKUSUARIOXDEPENDENCIA"].ToString());
//objcorreoBL.objcorreoEL.Fecha = DateTime.Now;
//nValorRetornado = objcorreoBL.insertarCorreo();
#endregion
EjecutarScript ( "EscoderBoton();" ) ;
}
}
catch ( Exception ex )
{
MensajeError ( "Error en R3M15" , ex ) ;
}
}
protected void btnSubirarchivo_Click ( object sender , EventArgs e )
{
try
{
bool blIncompleto = false ;
string strRequisito = string . Empty ;
//if(txtdescripcion.Text != string.Empty)
//{
bool bSubirDocs = SubirDocumentos ( " " ) ;
if ( bSubirDocs )
{
llenarRequisitos ( ) ;
foreach ( GridViewRow row in grvListaDatosRequisitos . Rows )
{
HtmlInputCheckBox chkTemp = ( HtmlInputCheckBox ) row . Controls [ 0 ] . Controls [ 1 ] ;
int intPKREQUISITO = Convert . ToInt32 ( row . Cells [ 2 ] . Text ) ;
//GuardarRequisitosIncompleto(intPKREQUISITO);
int nResultado = GuardarDatos ( intPKREQUISITO , strRequisito ) ;
if ( nResultado = = 0 )
{
blIncompleto = true ;
strRequisito + = row . Cells [ 3 ] . Text + "</br>" ;
//eliminar t_dis_documento para que no aparezca en el grid
}
else
{
chkTemp . Checked = true ;
//EnvioCorreo("cumplido");
EjecutarScript ( "EscoderBoton();MensajeInformativo();" ) ; //PERMITE QUE SOLO SE MUESTRE UN BOTON EN LA PÁGINA
GuardarEventoBitacora (
Session [ "LOGIN" ] . ToString ( ) ,
AccionBitacora . INSERT . ToString ( ) ,
MensajesBitacora . IngresarRegistro + ": Se ha registrado el requisito " + nResultado . ToString ( ) + " de la solicitud " + Session [ "SOLICITUD" ] . ToString ( ) ,
Path . GetFileNameWithoutExtension ( Page . AppRelativeVirtualPath ) ,
Convert . ToInt32 ( ConfigurationManager . AppSettings [ "pkApp" ] )
) ;
}
}
llenarGridView ( true ) ;
EjecutarScript ( "EscoderBoton();MensajeInformativo();" ) ;
}
else
{
MensajeAlerta ( "Se produjo un error al subir los documentos a Vision 2020. Presione el boton Adjuntar hasta que se finalice el proceso correctamente." ) ;
}
//}
//else
//{
// MensajeAlerta("Debe agregar la descripción del requisito...");
//}
}
catch ( Exception ex )
{
MensajeError ( "Se produjo un error en la operación" , ex ) ;
}
}
#endregion
#region Metodos Personalizados ( R4 )
public void EnvioCorreo ( string p_strAccion )
{
try
{
//se carga un dataset con los datos que se pondran en el machote
objSolicitudBL = new solicitudBL ( ) ;
objSolicitudBL . objSolicitudEL . PK = int . Parse ( strNumSolicitudTMP ) ;
DataSet ds = objSolicitudBL . dsListaSolicitud ( null ) ;
if ( ds . Tables [ 0 ] . Rows . Count > 0 )
{
if ( ( DateTime . Parse ( DateTime . Now . ToShortDateString ( ) ) < DateTime . Parse ( ds . Tables [ 0 ] . Rows [ 0 ] [ "FECHAINSERTASOLICITUD" ] . ToString ( ) ) . AddDays ( 14 ) & & int . Parse ( ds . Tables [ 0 ] . Rows [ 0 ] [ "FKTIPODISPONIBILIDAD" ] . ToString ( ) ) ! = 2 )
| | ( DateTime . Parse ( DateTime . Now . ToShortDateString ( ) ) < DateTime . Parse ( ds . Tables [ 0 ] . Rows [ 0 ] [ "FECHAMODIFICASOLICITUD" ] . ToString ( ) ) . AddDays ( 14 ) & & int . Parse ( ds . Tables [ 0 ] . Rows [ 0 ] [ "FKTIPODISPONIBILIDAD" ] . ToString ( ) ) = = 2 )
)
{
#region generar documento cumplio pdf
if ( p_strAccion = = "incumplido" )
{
CrearDocumentoPDFIncompleto ( ds ) ;
}
if ( p_strAccion = = "cumplido" )
{
CrearDocumentoPDFCompleto ( ds ) ;
}
#endregion
llenarRequisitos ( ) ;
}
else
{
if ( DateTime . Now > DateTime . Parse ( ds . Tables [ 0 ] . Rows [ 0 ] [ "FECHAINSERTASOLICITUD" ] . ToString ( ) ) . AddDays ( 10 ) )
{
if ( ds . Tables [ 0 ] . Rows [ 0 ] [ "DESCRIPCIONESTADOPROGRAMACION" ] . ToString ( ) = = "Bloqueada" )
{
CrearDocumentoPDFIncompleto ( ds ) ;
{
string strNombreAdjunto = "RequisitosIncompleto_" + DateTime . Now . ToShortDateString ( ) . Replace ( "/" , "_" ) + "_" + Session [ "SOLICITUD" ] . ToString ( ) ;
string strPdf = ConfigurationManager . AppSettings [ "DocumentosPDF" ] . ToString ( ) + @"\" + lblNumSolicitud . Text + @"\DocumentosREQ\" + strNombreAdjunto ;
strRutaDocAdjuntosRespuesta = ConfigurationManager . AppSettings [ "RutaPdfAdjuntosSql" ] . ToString ( ) + @"\" + lblNumSolicitud . Text + @"\" + strNombreAdjunto ;
string strRutaCopiarPdf = ConfigurationManager . AppSettings [ "RutaPdfAdjuntosSql" ] . ToString ( ) + @"\" + lblNumSolicitud . Text + @"\DocumentosREQ\" ;
//System.IO.File.Copy(strPdf, strRutaDocAdjuntosRespuesta, true);
if ( System . IO . File . Exists ( strPdf ) )
{
System . IO . File . Copy ( strPdf , strRutaDocAdjuntosRespuesta , true ) ;
}
else
{
Documento oDoc = new Documento ( ) ;
//consulta la ruta en la que se encuentra ubicado la copia del archivo a consultar
strRutaCopiarPdf = oDoc . Visor_Documento ( lblNumSolicitud . Text . Trim ( ) + "|Requisito" , lblNumSolicitud . Text . Trim ( ) , strRutaDocAdjuntosRespuesta , strNombreAdjunto + ".pdf" ) ;
}
if ( strRutaCopiarPdf ! = string . Empty & & strRutaCopiarPdf ! = "No existe" )
{
int nNumSolicitudTMP = int . Parse ( Session [ "PKSOLICITUD" ] . ToString ( ) ) ;
string strRutaDocumentos = ConfigurationManager . AppSettings [ "RutaPdfAdjuntosSql" ] . ToString ( ) + @"\" + lblNumSolicitud . Text ;
int nNumeroSolicitudCFIA = 0 ;
//crear documento zip con los archivos adjuntos
ZipFile zip = new ZipFile ( ) ;
zip . AddFile ( strRutaDocAdjuntosRespuesta , "" ) ;
string strRutaDocZip = strRutaDocumentos + @"\" + lblNumSolicitud . Text + ".zip" ;
if ( ! Directory . Exists ( strRutaDocumentos ) )
Directory . CreateDirectory ( strRutaDocumentos ) ;
zip . Save ( strRutaDocZip ) ;
//enviar notificacion a CFIA con el servicio de respuesta
if ( File . Exists ( strRutaDocZip ) & & ds . Tables [ 0 ] . Rows [ 0 ] [ "DESCRIPCIONDESCRIPCIONCFIA" ] . ToString ( ) ! = "N/A" & & ds . Tables [ 0 ] . Rows [ 0 ] [ "DESCRIPCIONDESCRIPCIONCFIA" ] . ToString ( ) ! = string . Empty )
{
nNumeroSolicitudCFIA = int . Parse ( ds . Tables [ 0 ] . Rows [ 0 ] [ "DESCRIPCIONDESCRIPCIONCFIA" ] . ToString ( ) ) ;
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 , "Presentación de requisitos incompleta" , 2 , Session [ "LOGIN" ] . ToString ( ) , bRespuestaZip , 3 , ConfigurationManager . AppSettings [ "LLAVEAPCR" ] . ToString ( ) ) ;
if ( respuestaAPCR . Respuesta = = true )
{
EjecutarScript ( "MensajeInformativoPersonalizado('Se ha enviado la notificación a APCR para que ellos notifiquen al cliente registrado.');" ) ;
GuardarEventoBitacora (
Session [ "LOGIN" ] . ToString ( ) ,
AccionBitacora . INSERT . ToString ( ) ,
MensajesBitacora . IngresarRegistro + ": Se ha enviado la notificación a APCR para que ellos notifiquen al cliente registrado, referente a la solcitud " + lblNumSolicitud . Text ,
"frwRequisitosSolicitud.aspx" ,
Convert . ToInt32 ( ConfigurationManager . AppSettings [ "pkApp" ] )
) ;
}
else
{
MensajeAlerta ( "Se presento el siguiente problema a la hora de notificar al CFIA: " + respuestaAPCR . DescripcionError ) ;
GuardarEventoBitacora (
Session [ "LOGIN" ] . ToString ( ) ,
AccionBitacora . INSERT . ToString ( ) ,
MensajesBitacora . IngresarRegistro + ": Se presento el siguiente problema a la hora de notificar al CFIA: " + respuestaAPCR . DescripcionError + ", de la solicitud " + lblNumSolicitud . Text ,
"frwRequisitosSolicitud.aspx" ,
Convert . ToInt32 ( ConfigurationManager . AppSettings [ "pkApp" ] )
) ;
}
}
else
{
if ( strRutaCopiarPdf ! = string . Empty )
{
string strAsunto = "Presentación de requisitos incompleta" ;
string strAccion = "incumplido" ;
string strCorreo = obtenerCorreo ( ) ;
if ( strCorreo ! = string . Empty )
{
#region Envio de correo externo
System . Drawing . Image img = System . Drawing . Image . FromFile ( ConfigurationManager . AppSettings [ "Imagenes" ] . ToString ( ) ) ;
string imgStr = imageToByteArray ( img ) ;
string p_strDocHtml = "<img alt='' src='cid:logoAyA.png' style='width: 100px; height: 82px;' />" ;
string strImage64Bits = "data:image/jpg;base64," + imgStr ;
p_strDocHtml = p_strDocHtml . Replace ( "/logoAyA.png" , strImage64Bits ) ;
string strCuerpo = p_strDocHtml + "<div style='text-align:justify'></BR>Estimado " + strNombreCliente + "</BR></BR>El Instituto Costarricense de Acueductos y Alcantarillados le comunica que su trámite de Disponibilidad de Servicios ha " + strAccion + " con los requisitos solicitados en los Art 18-19 del Reglamento de Prestación de Servicios de AyA.</BR>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.</BR></BR>" + "</BR></BR>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 239 y siguientes de la Ley General de la Administración Pública.</div>" ;
string strPiePagina = "</BR> </BR></BR>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.”" ;
AyABL . TRA . correoExternoBL objcorreoExternoBL = new AyABL . TRA . correoExternoBL ( ) ;
objcorreoExternoBL . objcorreoExternoEL . p_recipients = strCorreo ;
objcorreoExternoBL . objcorreoExternoEL . p_copy = Session [ "LOGIN" ] . ToString ( ) + "@aya.go.cr" ;
objcorreoExternoBL . objcorreoExternoEL . p_subject = strAsunto ;
objcorreoExternoBL . objcorreoExternoEL . p_body = strCuerpo + strPiePagina ;
objcorreoExternoBL . objcorreoExternoEL . P_PRIORIDAD = "High" ;
objcorreoExternoBL . objcorreoExternoEL . p_format = "html" ;
//#region adjuntar constancias
if ( strRutaDocAdjuntosRespuesta ! = string . Empty )
objcorreoExternoBL . objcorreoExternoEL . p_file_attachments = strRutaDocAdjuntosRespuesta + ";" + ConfigurationManager . AppSettings [ "RutaPdfAdjuntosSql" ] . ToString ( ) + @"\logoAyA.png;" ;
else
objcorreoExternoBL . objcorreoExternoEL . p_file_attachments = string . Empty ;
int nValorRetornado = objcorreoExternoBL . EnviarCorreoExterno ( ) ;
GuardarEventoBitacora (
Session [ "LOGIN" ] . ToString ( ) ,
AccionBitacora . INSERT . ToString ( ) ,
MensajesBitacora . IngresarRegistro + ": Se envió el correo de notificación de requisitos incompletos al correo " + strCorreo + ", referente a la solcitud " + lblNumSolicitud . Text ,
"frwRequisitosSolicitud.aspx" ,
Convert . ToInt32 ( ConfigurationManager . AppSettings [ "pkApp" ] )
) ;
//MensajeInformativo("Se ha enviado la notificación al cliente.");
#endregion
}
EjecutarScript ( "MensajeInformativoPersonalizado('Se ha enviado la notificación al cliente registrado.');EscoderBoton();" ) ;
}
else
{
MensajeAlerta ( "No se pudo encontrar el archivo solicitado en Vision 2020" ) ;
}
}
}
}
//MensajeAlerta("El plazo para adjuntar requisitos se venció. Debe generar una nueva solicitud.");
deBajaBL objDeBajaSolicitudBL = new deBajaBL ( ) ;
objDeBajaSolicitudBL . objdeBajaEL . FKSOLICITUD = int . Parse ( Session [ "PKSOLICITUD" ] . ToString ( ) ) ;
objDeBajaSolicitudBL . objdeBajaEL . FECHA = DateTime . Now ;
objDeBajaSolicitudBL . objdeBajaEL . USUARIO = Session [ "LOGIN" ] . ToString ( ) ;
objDeBajaSolicitudBL . objdeBajaEL . MOTIVO = "El plazo para adjuntar requisitos se venció. Debe generar una nueva solicitud." ;
int nValorRetornadoDebaja = objDeBajaSolicitudBL . insertarDeBajaSolicitud ( ) ;
GuardarEventoBitacora (
Session [ "LOGIN" ] . ToString ( ) ,
AccionBitacora . INSERT . ToString ( ) ,
MensajesBitacora . IngresarRegistro + ": Se ha cancelado la solicitud " + lblNumSolicitud . Text + ". El plazo para adjuntar requisitos se venció. Debe generar una nueva solicitud." ,
"frwRequisitosSolicitud.aspx" ,
Convert . ToInt32 ( ConfigurationManager . AppSettings [ "pkApp" ] )
) ;
//modifica el estado de la solicitud
programacionsolicitudBL objprogramacionsolicitudBL = new programacionsolicitudBL ( ) ;
objprogramacionsolicitudBL . objprogramacionsolicitudEL . FKESTADOPROGRAMACION = 5 ; //cancelada
objprogramacionsolicitudBL . objprogramacionsolicitudEL . FKSOLICITUD = int . Parse ( Session [ "PKSOLICITUD" ] . ToString ( ) ) ;
objprogramacionsolicitudBL . objprogramacionsolicitudEL . PK = int . Parse ( Session [ "PKPROGRAMACION" ] . ToString ( ) ) ;
int nPKProgramacionSolicitud = objprogramacionsolicitudBL . modificarprogramacionsolicitud ( ) ;
}
else
{
EjecutarScript ( "EscoderBoton();MensajeVencio();" ) ; }
}
}
}
}
catch ( Exception ex )
{
throw ex ;
}
}
private int CrearDocumentoPDFCompleto ( DataSet ds )
{
int nResult = 0 ;
/ *
* SE DEBE DAR PERMISOS DE ESCRITURA EN LA CARPETA PDF DEL WCFPDF AL USUARIO DE RED CON EL QUE ESTA LOGGEADA LA APLICACION EN EL APPPOOL
* /
try
{
int nFkTipoDisponibilidad = int . Parse ( ds . Tables [ 0 ] . Rows [ 0 ] [ "FKTIPODISPONIBILIDAD" ] . ToString ( ) ) ;
//string strListaRequisitos = verificarRequisitos();
//if (strListaRequisitos == string.Empty)
{
int counter = 0 ;
string line ;
string p_strDocHtml = "" ;
// Read the file and display it line by line.
string ruta = Server . MapPath ( @"~/ASPPDF/notificacionrequisito/notificacionRequisitoCompleta.asp" ) ;
System . IO . StreamReader file =
new System . IO . StreamReader ( ruta ) ;
while ( ( line = file . ReadLine ( ) ) ! = null )
{
p_strDocHtml + = line ;
counter + + ;
}
file . Close ( ) ;
string strRegion = ds . Tables [ 0 ] . Rows [ 0 ] [ "DESCRIPCIONREGION" ] . ToString ( ) ;
string strApartado = ds . Tables [ 0 ] . Rows [ 0 ] [ "APARTADODEPENDENCIASIGDD" ] . ToString ( ) ;
string strTelefonoOficina = "800-REPORTE(800-7376783)" ; // ds.Tables[0].Rows[0]["TELEFONODEPENDENCIASIGDD"].ToString();
//string strFaxOficina = ds.Tables[0].Rows[0]["FAXDEPENDENCIASIGDD"].ToString();
string strFecha = DateTime . Now . ToShortDateString ( ) ;
2021-03-09 14:54:50 +00:00
//Requerimiento 3
2021-02-03 04:56:17 +00:00
string strSolicitante = "" ;
//string strSolicitante = ds.Tables[0].Rows[0]["NOMBRECOMPLETOSOLICITANTE"].ToString().ToLower();
//strSolicitante = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(strSolicitante);
string [ ] subs = ds . Tables [ 0 ] . Rows [ 0 ] [ "NOMBRECLIENTESOLICITUD" ] . ToString ( ) . Split ( ',' ) ;
foreach ( var item in subs )
{
strSolicitante + = item + "<br>" ;
}
2021-03-09 14:54:50 +00:00
//Requerimiento 3
2021-01-22 14:59:35 +00:00
//Session["NOMBREEMPLEADO"]
string strResponsable = Session [ "NOMBREEMPLEADO" ] . ToString ( ) . ToLower ( ) ;
strResponsable = CultureInfo . CurrentCulture . TextInfo . ToTitleCase ( strResponsable ) ;
string strFechaIngreso = ds . Tables [ 0 ] . Rows [ 0 ] [ "FECHAINSERTASOLICITUD" ] . ToString ( ) ;
string strTipoSolicitud = string . Empty ;
if ( ds . Tables [ 0 ] . Rows [ 0 ] [ "DESCRIPCIONTIPOINSPECCION" ] . ToString ( ) = = "Agua potable" )
strTipoSolicitud = "agua potable" ;
if ( ds . Tables [ 0 ] . Rows [ 0 ] [ "DESCRIPCIONTIPOINSPECCION" ] . ToString ( ) = = "Alcantarillado sanitario" )
strTipoSolicitud = "alcantarillado sanitario" ;
if ( ds . Tables [ 0 ] . Rows [ 0 ] [ "DESCRIPCIONTIPOINSPECCION" ] . ToString ( ) = = "Ambos" )
strTipoSolicitud = "agua potable y alcantarillado sanitario" ;
string strNumeroFolio = ds . Tables [ 0 ] . Rows [ 0 ] [ "NUMEROFOLIO" ] . ToString ( ) ;
string strNumeroPlanoCatastro = ds . Tables [ 0 ] . Rows [ 0 ] [ "NUMEROTERRENO" ] . ToString ( ) ;
string strDependencia = ds . Tables [ 0 ] . Rows [ 0 ] [ "DESCRIPCIONDEPENDENCIASIGDD" ] . ToString ( ) ;
string strHora = DateTime . Now . TimeOfDay . ToString ( ) ;
//se remplazan los datos del machote
p_strDocHtml = p_strDocHtml . Replace ( "strDependencia" , strDependencia ) ;
//se remplazan los datos del machote
p_strDocHtml = p_strDocHtml . Replace ( "strRegion" , strRegion ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strApartado" , strApartado ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strTelefonoOficina" , strTelefonoOficina ) ;
//p_strDocHtml = p_strDocHtml.Replace("strFaxOficina", strFaxOficina);
p_strDocHtml = p_strDocHtml . Replace ( "strFecha" , strFecha ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strHora" , strHora ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strCliente" , strSolicitante ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strNumSolicitud" , Session [ "SOLICITUD" ] . ToString ( ) ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strNombreResponsable" , strResponsable ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strFecRecibido" , strFechaIngreso ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strTipoSolicitud" , strTipoSolicitud ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strNumeroFolio" , strNumeroFolio ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strNumeroPlanoCatastro" , strNumeroPlanoCatastro ) ;
ASPDF . Service1Client clsGenerarDocumento = new ASPDF . Service1Client ( ) ;
string strResult = clsGenerarDocumento . Generar_Documento_PDF ( p_strDocHtml , "RequisitosCompleto_" + DateTime . Now . ToShortDateString ( ) . Replace ( "/" , "_" ) + "_" + Session [ "SOLICITUD" ] . ToString ( ) ) ;
string sourcePath = strResult ;
string strNombreArchivo = System . IO . Path . GetFileName ( strResult ) ;
// string pdfPath = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + strNumSolicitudTMP + @"\" + strNombreArchivo;
String pdfPath = ConfigurationManager . AppSettings [ "DocumentosPDF" ] . ToString ( ) + @"\" + lblNumSolicitud . Text . Trim ( ) + @"\DocumentosREQ\" ;
if ( System . IO . File . Exists ( strResult ) )
{
if ( ! System . IO . Directory . Exists ( ConfigurationManager . AppSettings [ "DocumentosPDF" ] . ToString ( ) + @"\" + lblNumSolicitud . Text . Trim ( ) + @"\DocumentosREQ" ) )
System . IO . Directory . CreateDirectory ( ConfigurationManager . AppSettings [ "DocumentosPDF" ] . ToString ( ) + @"\" + lblNumSolicitud . Text . Trim ( ) + @"\DocumentosREQ" ) ;
System . IO . File . Copy ( strResult , pdfPath + @"\" + strNombreArchivo , true ) ;
System . IO . File . Copy ( strResult , ConfigurationManager . AppSettings [ "RutaPdfAdjuntosSql" ] . ToString ( ) + @"\" + strNombreArchivo , true ) ;
2021-02-09 04:44:03 +00:00
//Documento oDoc = new Documento();
////se transaforma el archivo a un arreglo de bytes
//byte[] bDoc = System.IO.File.ReadAllBytes(pdfPath + @"\" + strNombreArchivo.Replace(" ", "_"));
//string nombreAdjunto = pdfPath + @"\" + strNombreArchivo.Replace(".pdf", "");
2021-01-22 14:59:35 +00:00
2021-02-09 04:44:03 +00:00
////se carga el archivo y el registro a vision 2020
//string strResultado = oDoc.Archivar_Documento(lblNumSolicitud.Text.Trim() + "|" + "Requisito", strNombreArchivo.Replace(" ", "_"), bDoc);
2021-01-22 14:59:35 +00:00
2021-02-09 04:44:03 +00:00
//if (strResultado == string.Empty)
//{
2021-01-22 14:59:35 +00:00
2021-02-09 04:44:03 +00:00
// File.Delete(nombreAdjunto + ".pdf");
2021-01-22 14:59:35 +00:00
2021-02-09 04:44:03 +00:00
//}
2021-01-22 14:59:35 +00:00
AyABL . TRA . documentoBL objdocumentoBL = new AyABL . TRA . documentoBL ( ) ;
objdocumentoBL . objdocumentoEL . Descripcion = "Respuesta al cliente de documentos incompletos" ;
objdocumentoBL . objdocumentoEL . NOMBRE = strNombreArchivo ;
objdocumentoBL . objdocumentoEL . FKREQUISITO = 20 ; //e) Completar y acatar los requerimientos indicados en la fórmula vigente.
objdocumentoBL . objdocumentoEL . FKSOLICITUD = int . Parse ( Session [ "PKSOLICITUD" ] . ToString ( ) ) ;
int nPKDocumento = objdocumentoBL . insertarDocumento ( ) ;
//modifica el estado de la solicitud
programacionsolicitudBL objprogramacionsolicitudBL = new programacionsolicitudBL ( ) ;
objprogramacionsolicitudBL . objprogramacionsolicitudEL . FKESTADOPROGRAMACION = 1 ; //asignada
objprogramacionsolicitudBL . objprogramacionsolicitudEL . FKSOLICITUD = int . Parse ( Session [ "PKSOLICITUD" ] . ToString ( ) ) ;
objprogramacionsolicitudBL . objprogramacionsolicitudEL . PK = int . Parse ( Session [ "PKPROGRAMACION" ] . ToString ( ) ) ;
int nPKProgramacionSolicitud = objprogramacionsolicitudBL . modificarprogramacionsolicitud ( ) ;
strRutaDocAdjuntosRespuesta = ConfigurationManager . AppSettings [ "RutaPdfAdjuntosSql" ] . ToString ( ) + @"\" + strNombreArchivo ;
}
nResult = 1 ;
}
//else
//{
// MensajeAlerta("Falta adjuntar los siguientes requisitos: " + strListaRequisitos);
//}
}
catch ( Exception ex )
{
nResult = 0 ;
throw ex ;
}
return nResult ;
}
private int CrearDocumentoPDFIncompleto ( DataSet ds )
{
int nResult = 0 ;
/ *
* SE DEBE DAR PERMISOS DE ESCRITURA EN LA CARPETA PDF DEL WCFPDF AL USUARIO DE RED CON EL QUE ESTA LOGGEADA LA APLICACION EN EL APPPOOL
* /
try
{
int counter = 0 ;
string line ;
string p_strDocHtml = "" ;
// Read the file and display it line by line.
string ruta = Server . MapPath ( @"~/ASPPDF/notificacionrequisito/notificacionRequisitoIncompleta.asp" ) ;
System . IO . StreamReader file =
new System . IO . StreamReader ( ruta ) ;
while ( ( line = file . ReadLine ( ) ) ! = null )
{
p_strDocHtml + = line ;
counter + + ;
}
file . Close ( ) ;
//se carga un dataset con los datos que se pondran en el machote
string strRegion = ds . Tables [ 0 ] . Rows [ 0 ] [ "DESCRIPCIONREGION" ] . ToString ( ) ;
string strApartado = ds . Tables [ 0 ] . Rows [ 0 ] [ "APARTADODEPENDENCIASIGDD" ] . ToString ( ) ;
string strTelefonoOficina = "800-REPORTE(800-7376783)" ; // ds.Tables[0].Rows[0]["TELEFONODEPENDENCIASIGDD"].ToString();
//string strFaxOficina = ds.Tables[0].Rows[0]["FAXDEPENDENCIASIGDD"].ToString();
string strFecha = DateTime . Now . ToShortDateString ( ) ;
2021-03-09 14:54:50 +00:00
//Requerimiento 3
string strSolicitante = "" ;
//string strSolicitante = ds.Tables[0].Rows[0]["NOMBRECOMPLETOSOLICITANTE"].ToString().ToLower();
//strSolicitante = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(strSolicitante);
string [ ] subs = ds . Tables [ 0 ] . Rows [ 0 ] [ "NOMBRECLIENTESOLICITUD" ] . ToString ( ) . Split ( ',' ) ;
foreach ( var item in subs )
{
strSolicitante + = item + "<br>" ;
}
//Requerimiento 3
2021-01-22 14:59:35 +00:00
//Session["NOMBREEMPLEADO"]
string strResponsable = Session [ "NOMBREEMPLEADO" ] . ToString ( ) . ToLower ( ) ;
strResponsable = CultureInfo . CurrentCulture . TextInfo . ToTitleCase ( strResponsable ) ;
string strFechaIngreso = ds . Tables [ 0 ] . Rows [ 0 ] [ "FECHAINSERTASOLICITUD" ] . ToString ( ) ;
string strTipoSolicitud = string . Empty ;
if ( ds . Tables [ 0 ] . Rows [ 0 ] [ "DESCRIPCIONTIPOINSPECCION" ] . ToString ( ) = = "Agua potable" )
strTipoSolicitud = "agua potable" ;
if ( ds . Tables [ 0 ] . Rows [ 0 ] [ "DESCRIPCIONTIPOINSPECCION" ] . ToString ( ) = = "Alcantarillado sanitario" )
strTipoSolicitud = "alcantarillado sanitario" ;
if ( ds . Tables [ 0 ] . Rows [ 0 ] [ "DESCRIPCIONTIPOINSPECCION" ] . ToString ( ) = = "Ambos" )
strTipoSolicitud = "agua potable y alcantarillado sanitario" ;
string strNumeroFolio = ds . Tables [ 0 ] . Rows [ 0 ] [ "NUMEROFOLIO" ] . ToString ( ) ;
string strNumeroPlanoCatastro = ds . Tables [ 0 ] . Rows [ 0 ] [ "NUMEROTERRENO" ] . ToString ( ) ;
string strHora = DateTime . Now . TimeOfDay . ToString ( ) ;
string strDependencia = ds . Tables [ 0 ] . Rows [ 0 ] [ "DESCRIPCIONDEPENDENCIASIGDD" ] . ToString ( ) ;
//se remplazan los datos del machote
p_strDocHtml = p_strDocHtml . Replace ( "strDependencia" , strDependencia ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strRegion" , strRegion ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strApartado" , strApartado ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strTelefonoOficina" , strTelefonoOficina ) ;
//p_strDocHtml = p_strDocHtml.Replace("strFaxOficina", strFaxOficina);
p_strDocHtml = p_strDocHtml . Replace ( "strFecha" , strFecha ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strHora" , strHora ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strCliente" , strSolicitante ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strNumSolicitud" , Session [ "SOLICITUD" ] . ToString ( ) ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strNombreResponsable" , strResponsable ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strFechaRecibido" , strFechaIngreso ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strTipoSolicitud" , strTipoSolicitud ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strNumeroFolio" , strNumeroFolio ) ;
p_strDocHtml = p_strDocHtml . Replace ( "strNumeroPlanoCatastro" , strNumeroPlanoCatastro ) ;
string strListaRequisitos = verificarRequisitos ( ) ;
2021-02-03 23:17:11 +00:00
foreach ( GridViewRow row in grvListaDatosRequisitos . Rows )
{
HtmlInputCheckBox chkTemp = ( HtmlInputCheckBox ) row . Controls [ 0 ] . Controls [ 1 ] ;
if ( chkTemp ! = null )
{
if ( chkTemp . Checked = = false )
strListaRequisitos + = "<tr><td> " + row . Cells [ 3 ] . Text + "<tr><td> " ;
}
}
2021-01-22 14:59:35 +00:00
p_strDocHtml = p_strDocHtml . Replace ( "strListaRequisitos" , strListaRequisitos ) ;
ASPDF . Service1Client clsGenerarDocumento = new ASPDF . Service1Client ( ) ;
2021-02-03 23:17:11 +00:00
string strResult = clsGenerarDocumento . Generar_Documento_PDF ( p_strDocHtml , "RequisitosIncompleto_" + DateTime . Now . ToShortDateString ( ) . Replace ( "/" , "_" ) + "_" + Session [ "SOLICITUD" ] . ToString ( ) ) ;
2021-01-22 14:59:35 +00:00
string sourcePath = strResult ;
string strNombreArchivo = System . IO . Path . GetFileName ( strResult ) ;
//string pdfPath = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + strNumSolicitudTMP + @"\" + strNombreArchivo;
String pdfPath = ConfigurationManager . AppSettings [ "DocumentosPDF" ] . ToString ( ) + @"\" + lblNumSolicitud . Text . Trim ( ) + @"\DocumentosREQ\" ;
if ( System . IO . File . Exists ( strResult ) )
{
if ( ! System . IO . Directory . Exists ( ConfigurationManager . AppSettings [ "DocumentosPDF" ] . ToString ( ) + @"\" + lblNumSolicitud . Text . Trim ( ) + @"\DocumentosREQ" ) )
System . IO . Directory . CreateDirectory ( ConfigurationManager . AppSettings [ "DocumentosPDF" ] . ToString ( ) + @"\" + lblNumSolicitud . Text . Trim ( ) + @"\DocumentosREQ" ) ;
System . IO . File . Copy ( strResult , pdfPath + @"\" + strNombreArchivo , true ) ;
System . IO . File . Copy ( strResult , ConfigurationManager . AppSettings [ "RutaPdfAdjuntosSql" ] . ToString ( ) + @"\" + strNombreArchivo , true ) ;
2021-02-03 23:17:11 +00:00
2021-01-22 14:59:35 +00:00
Documento oDoc = new Documento ( ) ;
//se transaforma el archivo a un arreglo de bytes
byte [ ] bDoc = System . IO . File . ReadAllBytes ( pdfPath + @"\" + strNombreArchivo . Replace ( " " , "_" ) ) ;
string nombreAdjunto = pdfPath + @"\" + strNombreArchivo . Replace ( ".pdf" , "" ) ;
//se carga el archivo y el registro a vision 2020
2021-02-03 23:17:11 +00:00
string strResultado = oDoc . Archivar_Documento ( lblNumSolicitud . Text . Trim ( ) + "|" + "Requisito" , strNombreArchivo . Replace ( " " , "_" ) , bDoc ) ;
2021-01-22 14:59:35 +00:00
if ( strResultado = = string . Empty )
{
File . Delete ( nombreAdjunto + ".pdf" ) ;
2021-02-03 23:17:11 +00:00
}
2021-01-22 14:59:35 +00:00
AyABL . TRA . documentoBL objdocumentoBL = new AyABL . TRA . documentoBL ( ) ;
objdocumentoBL . objdocumentoEL . Descripcion = "Respuesta al cliente de documentos incompletos" ;
objdocumentoBL . objdocumentoEL . NOMBRE = strNombreArchivo ;
objdocumentoBL . objdocumentoEL . FKREQUISITO = 20 ; //e) Completar y acatar los requerimientos indicados en la fórmula vigente.
objdocumentoBL . objdocumentoEL . FKSOLICITUD = int . Parse ( Session [ "PKSOLICITUD" ] . ToString ( ) ) ;
int nPKDocumento = objdocumentoBL . insertarDocumento ( ) ;
//programacionsolicitudBL objprogramacionsolicitudBL = new programacionsolicitudBL();
//objprogramacionsolicitudBL.objprogramacionsolicitudEL.FKESTADOPROGRAMACION = 6;//bloqueada
//objprogramacionsolicitudBL.objprogramacionsolicitudEL.FKSOLICITUD = int.Parse(Session["PKSOLICITUD"].ToString());
//objprogramacionsolicitudBL.objprogramacionsolicitudEL.PK = int.Parse(Session["PKPROGRAMACION"].ToString());
//int nPKProgramacionSolicitud = objprogramacionsolicitudBL.modificarprogramacionsolicitud();
strRutaDocAdjuntosRespuesta = ConfigurationManager . AppSettings [ "RutaPdfAdjuntosSql" ] . ToString ( ) + @"\" + strNombreArchivo ;
}
nResult = 1 ;
}
catch ( Exception ex )
{
nResult = 0 ;
throw ex ;
}
return nResult ;
}
public string verificarRequisitos ( )
{
string strListaRequisitos = string . Empty ;
try
{
foreach ( GridViewRow row in grvListaDatosRequisitos . Rows )
{
HtmlInputCheckBox chkTemp = ( HtmlInputCheckBox ) row . Controls [ 0 ] . Controls [ 1 ] ;
//if (int.Parse(row.Cells[2].Text) != 20)
{
//objRequisitostmpBL = new RequisitostmpBL();
//objRequisitostmpBL.objRequisitostmpEL.FKSOLICITUD = int.Parse(strNumSolicitudTMP);
//objRequisitostmpBL.objRequisitostmpEL.FKREQUISITO = int.Parse(row.Cells[2].Text);
//DataSet ds = objRequisitostmpBL.dsListaAdjuntos();
//if (ds.Tables[0].Rows.Count == 0)
if ( chkTemp . Checked = = true )
{
strListaRequisitos + = "<tr><td> " + row . Cells [ 3 ] . Text + "<tr><td> " ;
}
}
}
}
catch ( Exception ex )
{
throw ex ;
}
return strListaRequisitos ;
}
public string obtenerCorreo ( )
{
string strCorreo = string . Empty ;
try
{
solicitudBL objSolicitudBL = new solicitudBL ( ) ;
objSolicitudBL . objSolicitudEL . PK = int . Parse ( strNumSolicitudTMP ) ;
DataSet dsSolicitud = objSolicitudBL . dsExisteSolicitud ( null ) ;
if ( dsSolicitud . Tables [ 0 ] . Rows . Count > 0 )
{
//nConsecutivoTmp = objSolicitudBL.objSolicitudEL.NUMSOLICITUD;
strCorreo = dsSolicitud . Tables [ 0 ] . Rows [ 0 ] [ "CORREOELECTRONICOSOLICITUD" ] . ToString ( ) + ";" + dsSolicitud . Tables [ 0 ] . Rows [ 0 ] [ "CORREOELECTRONICO2SOLICITUD" ] . ToString ( ) ;
strNombreCliente = dsSolicitud . Tables [ 0 ] . Rows [ 0 ] [ "NOMBRECOMPLETOSOLICITANTE" ] . ToString ( ) ;
}
}
catch ( Exception ex )
{
throw ex ;
}
return strCorreo ;
}
public string imageToByteArray ( System . Drawing . Image imageIn )
{
System . IO . MemoryStream ms = new System . IO . MemoryStream ( ) ;
imageIn . Save ( ms , System . Drawing . Imaging . ImageFormat . Png ) ;
byte [ ] imgByte = ms . ToArray ( ) ;
// Convert the binary input into Base64 UUEncoded output.
string base64String ;
base64String = System . Convert . ToBase64String ( imgByte , 0 , imgByte . Length ) ;
return base64String ;
}
/// <summary>
/// Oculta las filas que lo requieran
/// </summary>
/// <param name="p_intFila"></param>
private void mostrarFilaTabla ( int p_intFila ) //M0
{
try
{
divDatosSuperiores . Visible = false ;
divDatosMedios . Visible = false ;
switch ( p_intFila )
{
case 1 :
llenarGridView ( true ) ;
divDatosSuperiores . Visible = true ;
break ;
case 2 :
llenarGridView ( true ) ;
divDatosMedios . Visible = true ;
break ;
case 3 :
llenarGridView ( true ) ;
break ;
}
}
catch ( Exception ex )
{
throw ex ;
}
}
/// <summary>
/// Metodo que se utiliza para contruir el Grid al inicio de la pantalla
/// </summary>
private void construirGridView ( ) //M1
{
try
{
grvListaDatosCantonalesTemp = ( GridView ) tdLista . FindControl ( "grvListaDatosRequisitos" ) ;
GridViewBoundField bdfPkRequisito = new GridViewBoundField ( "PKREQUISITO" , "PK" , false , false , true ) ;
GridViewBoundField bdfDescripcion = new GridViewBoundField ( "DESCRIPCIONREQUISITO" , "Requisito" , false , false , true ) ;
GridViewBoundField bdfDocSoporte = new GridViewBoundField ( "DOCSOPORTEREQUISITO" , "Doc Soporte" , false , false , false ) ;
GridViewBoundField bdfFecha = new GridViewBoundField ( "FECHACREAREQUISITO" , "Fecha" , false , false , false ) ;
GridViewBoundField bdfUsuario = new GridViewBoundField ( "USUARIOCREAREQUISITO" , "Usuario" , false , false , false ) ;
grvListaDatosCantonalesTemp . Columns . Add ( bdfPkRequisito ) ;
grvListaDatosCantonalesTemp . Columns . Add ( bdfDescripcion ) ;
grvListaDatosCantonalesTemp . Columns . Add ( bdfDocSoporte ) ;
grvListaDatosCantonalesTemp . Columns . Add ( bdfFecha ) ;
grvListaDatosCantonalesTemp . Columns . Add ( bdfUsuario ) ;
//grvListaDatosCantonalesTemp.Columns.Add(bdfActivo);
grvListaDatosCantonalesTemp . Columns [ 0 ] . ItemStyle . Width = 10 ;
grvListaDatosCantonalesTemp . Columns [ 1 ] . ItemStyle . Width = 30 ;
grvListaDatosCantonalesTemp . Columns [ 2 ] . ItemStyle . Width = 30 ;
grvListaDatosCantonalesTemp . Columns [ 3 ] . ItemStyle . Width = 500 ;
grvListaDatosCantonalesTemp . Columns [ 4 ] . ItemStyle . Width = 425 ;
cuwBusquedaList . LlenarCHKLBusqueda ( grvListaDatosCantonalesTemp ) ;
}
catch ( Exception ex )
{
throw ex ;
}
}
/// <summary>
/// Metodo que se encarga de agregar el filtro de busqueda seleccionado por el usuario
/// </summary>
/// <returns></returns>
private void condicionesBusqueda ( ) //M2
{
AyABL . AyABL objBL = new AyABL . AyABL ( ) ;
CondicionDAL condicion ;
DateTime dteFechaInicio = new DateTime ( ) ;
DateTime dteFechaFin = new DateTime ( ) ;
ListItem li = new ListItem ( ) ;
string p_parametros ;
p_parametros = this . cuwBusquedaList . getValorBusqueda ( ) ;
try
{
if ( p_parametros ! = "" )
{
//aqui se construye el listItem con los datos que vienen del control en formato {valor : texto , valor : texto}
char [ ] separadorTuplas = { ',' } ;
char [ ] separadorValores = { ':' } ;
string [ ] arrayTupla = p_parametros . Split ( separadorTuplas ) ;
for ( int i = 0 ; i < = ( arrayTupla . Length - 1 ) ; i + + )
{
if ( arrayTupla [ i ] . ToString ( ) ! = "" )
{
string [ ] arrayValores = arrayTupla [ i ] . ToString ( ) . Split ( separadorValores ) ;
li = new ListItem ( arrayValores [ 1 ] , arrayValores [ 0 ] ) ;
if ( li . Value . Contains ( "FECHA" ) & & li . Text ! = string . Empty )
{
if ( li . Value . Contains ( "INICIO" ) )
{
dteFechaInicio = Convert . ToDateTime ( li . Text . ToString ( ) ) ;
dteFechaFin = DateTime . Now ;
}
if ( li . Value . Contains ( "FIN" ) )
{
dteFechaFin = Convert . ToDateTime ( li . Text . ToString ( ) ) ;
if ( dteFechaFin ! = null | | dteFechaInicio ! = null )
if ( dteFechaInicio < dteFechaFin | | dteFechaFin = = dteFechaInicio )
{
objBL = new AyABL . AyABL ( ) ;
arlCondicionesFiltroBusqueda = objBL . buscarPorFechas ( Tablas . BITACORA , dteFechaInicio , dteFechaFin , operadorLogico . AND , arlCondicionesFiltroBusqueda ) ;
}
else
MensajeInformativo ( AyABL . BASESDEDATOS . ADS + "Interfaz: " + "Verifique que la Fecha de Inicio sea menor que la Fecha Final" + "M2" ) ;
else
MensajeInformativo ( AyABL . BASESDEDATOS . ADS + "Interfaz: " + "Verifique que los campos de las fechas no estén vacíos" + "M2" ) ;
}
else
{
objBL = new AyABL . AyABL ( ) ;
arlCondicionesFiltroBusqueda = objBL . buscarPorFechas ( Tablas . BITACORA , dteFechaInicio , dteFechaFin , operadorLogico . AND , arlCondicionesFiltroBusqueda ) ;
}
}
else
{
if ( li . Value . Contains ( "booleano" ) & & li . Text ! = "2" )
{
condicion = new CondicionDAL ( ) ;
char [ ] separadorColumna = { '|' } ;
string [ ] strColumna = li . Value . Split ( separadorColumna ) ;
condicion . valorIzquierdo = strColumna [ 1 ] . ToString ( ) ;
condicion . operadorGeneral = operadorGeneral . EQUAL ;
condicion . operadorLogico = operadorLogico . AND ;
condicion . valorDerecho = li . Text . Trim ( ) ;
arlCondicionesFiltroBusqueda . Add ( condicion ) ;
}
else
{
if ( li . Text ! = string . Empty & & ! li . Value . Contains ( "booleano" ) )
{
condicion = new CondicionDAL ( ) ;
condicion . valorIzquierdo = li . Value ;
condicion . operadorGeneral = operadorGeneral . LIKEALL ;
condicion . operadorLogico = operadorLogico . AND ;
condicion . valorDerecho = "%" + li . Text . Trim ( ) + "%" ;
arlCondicionesFiltroBusqueda . Add ( condicion ) ;
}
}
}
}
}
}
}
catch ( Exception ex )
{
throw ex ;
}
}
/// <summary>
/// Metodo que se utiliza con el buscador de la parte superior de la pantalla, y hace que se despliegue la información de acuerdo
/// a lo solicitado
/// </summary>|
private void Buscar ( ) //M4
{
try
{
llenarGridView ( true ) ;
}
catch ( Exception ex )
{
throw ex ;
}
}
/// <summary>
/// Metodo que se utiliza para el despliegue de los botones
/// </summary>
private void ComandosxMenu ( ) //M6
{
try
{
DataSet dsComandos = getComandos ( ) ;
if ( dsComandos ! = null )
{
foreach ( DataRow drTemp in dsComandos . Tables [ 0 ] . Rows )
{
switch ( drTemp [ "NOMBRECOMANDO" ] . ToString ( ) . ToUpper ( ) )
{
case "NUEVO" :
//btnNuevo.Visible = true;
btnGuardar . Visible = true ;
btnImcompleto . Visible = true ;
break ;
//case "MODIFICA":
// ////Inicio de variable tipo VIEWSTATE
// //ViewState["PUEDEMODIFICAR"] = true;
// //btnGuardar.Visible = true;
// //break;
}
}
}
}
catch ( Exception ex )
{
throw ex ;
}
}
#endregion
#region Metodos Controles a Datos ( R5 )
/// <summary>
/// guarda y modifica registros en la tabla.
/// </summary>
/// <returns></returns>
private int GuardarDatos ( int p_intPKREQUISITO , string strRequisito ) //M0
{
int nValorRetornado = 0 ;
try
{
objRequisitostmpBL = new RequisitostmpBL ( ) ;
if ( nTipoDisponibilidad = = 2 )
objRequisitostmpBL . objRequisitostmpEL . PRORROGA = true ;
if ( nTipoDisponibilidad = = 3 )
objRequisitostmpBL . objRequisitostmpEL . REVISION = true ;
objRequisitostmpBL . objRequisitostmpEL . FKREQUISITO = p_intPKREQUISITO ;
objRequisitostmpBL . objRequisitostmpEL . FKREQUISITODOCUMENTO = p_intPKREQUISITO ; //lo usa como fkrequisitosolicitud en eliminar
objRequisitostmpBL . objRequisitostmpEL . FKSOLICITUD = int . Parse ( strNumSolicitudTMP ) ;
objRequisitostmpBL . objRequisitostmpEL . Fecha = DateTime . Now ;
objRequisitostmpBL . objRequisitostmpEL . FKUSUARIOXDEPENDENCIA = int . Parse ( Session [ "PKUSUARIOXDEPENDENCIA" ] . ToString ( ) ) ;
char [ ] separadorColumna = { ',' } ;
string [ ] strColumna = strNaturalezaInmueble . Split ( separadorColumna ) ;
objRequisitostmpBL . objRequisitostmpEL . FKNATURALEZAINMUEBLE = int . Parse ( strColumna [ strColumna . Length - 1 ] ) ;
DataSet dsRequisitos = objRequisitostmpBL . Requisitos ( ) ;
RequisitostmpBL objRequisitostmpBLVerifica = new RequisitostmpBL ( ) ;
objRequisitostmpBLVerifica . objRequisitostmpEL . FKSOLICITUD = int . Parse ( strNumSolicitudTMP ) ;
objRequisitostmpBLVerifica . objRequisitostmpEL . FKREQUISITO = p_intPKREQUISITO ;
DataSet dsResult = objRequisitostmpBLVerifica . dsListaAdjuntos ( ) ;
if ( dsResult . Tables [ 0 ] . Rows . Count > 0 )
{
if ( dsRequisitos . Tables [ 0 ] . Rows . Count ! = 0 )
{
objRequisitostmpBL . objRequisitostmpEL . PK = int . Parse ( dsRequisitos . Tables [ 0 ] . Rows [ 0 ] [ 0 ] . ToString ( ) ) ;
objRequisitostmpBL . eliminarRequisitos ( ) ;
}
nValorRetornado = objRequisitostmpBL . insertarRequisitostmp ( ) ;
}
//else
//{
// MensajeAlerta("Falta agregar el documento adjunto:" + strRequisito);
//}
}
catch ( Exception ex )
{
throw ex ;
}
return nValorRetornado ;
}
/// <summary>
/// guarda y modifica registros en la tabla.
/// </summary>
/// <returns></returns>
///
private int GuardarRequisitosIncompleto ( int p_intPKREQUISITO )
{
int nValorRetornado = 0 ;
try
{
objRequisitostmpBL = new RequisitostmpBL ( ) ;
if ( nTipoDisponibilidad = = 2 )
objRequisitostmpBL . objRequisitostmpEL . PRORROGA = true ;
if ( nTipoDisponibilidad = = 3 )
objRequisitostmpBL . objRequisitostmpEL . REVISION = true ;
objRequisitostmpBL . objRequisitostmpEL . FKREQUISITO = p_intPKREQUISITO ;
objRequisitostmpBL . objRequisitostmpEL . FKSOLICITUD = int . Parse ( strNumSolicitudTMP ) ;
objRequisitostmpBL . objRequisitostmpEL . Fecha = DateTime . Now ;
objRequisitostmpBL . objRequisitostmpEL . FKUSUARIOXDEPENDENCIA = int . Parse ( Session [ "PKUSUARIOXDEPENDENCIA" ] . ToString ( ) ) ;
//objRequisitostmpBL.objRequisitostmpEL.POSEEDOR = bPoseedor;
//objRequisitostmpBL.objRequisitostmpEL.SEGREGACION = bSegregacion;
//objRequisitostmpBL.objRequisitostmpEL.DERECHOS = bDerechos;
//objRequisitostmpBL.objRequisitostmpEL.AUTORIZADOLEGAL = bAutorizadoLegal;
//objRequisitostmpBL.objRequisitostmpEL.FKNATURALEZAINMUEBLE = int.Parse(strNaturalezaInmueble);
DataSet dsRequisitos = objRequisitostmpBL . Requisitos ( ) ;
if ( dsRequisitos . Tables [ 0 ] . Rows . Count ! = 0 )
{
objRequisitostmpBL . eliminarRequisitos ( ) ;
}
nValorRetornado = objRequisitostmpBL . insertarRequisitostmp ( ) ;
GuardarEventoBitacora (
Session [ "LOGIN" ] . ToString ( ) ,
AccionBitacora . INSERT . ToString ( ) ,
MensajesBitacora . IngresarRegistro + ": Se ha ingresado la informacion" , "frwRequisitosSolicitud.aspx" ,
Convert . ToInt32 ( ConfigurationManager . AppSettings [ "pkApp" ] )
) ;
}
catch ( Exception ex )
{
throw ex ;
}
return nValorRetornado ;
}
private bool SubirDocumentos ( string strAccion )
{
bool bRespuesta = true ;
//FileUpload lista;
string rutaAdjuntos = string . Empty ;
try
{
//Boolean fileOK = false;
String path = ConfigurationManager . AppSettings [ "DocumentosPDF" ] . ToString ( ) + @"\" + lblNumSolicitud . Text . Trim ( ) + @"\DocumentosREQ\" ;
//if (!Directory.Exists(path))
// Directory.CreateDirectory(path);
DirectoryInfo di = new DirectoryInfo ( path ) ;
foreach ( var fi in di . GetFiles ( ) )
{
string ext = Path . GetExtension ( fi . Name ) ;
if ( ext = = ".pdf" | | ext = = ".PDF" )
{
//string strDocumento = file.FileName;
//saving code here
//string targetPath = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + objFormularioEL.CEDULASOLICITANTEFORMULARIO + @"\";
// string targetUrl = "'../../../DocumentosPDF/" + lblNumSolicitud.Text.Trim() + @"/";
string fname = Path . GetFileName ( fi . Name ) ;
//file.SaveAs(Server.MapPath(Path.Combine(targetUrl, fname)));
//{ ClientScript.RegisterStartupScript(this.GetType(), "Error", "<script>javascript: abrirOdt('" + targetUrl + "');</script>"); }
//subir documentos a vision 2020
Documento oDoc = new Documento ( ) ;
//se transaforma el archivo a un arreglo de bytes
byte [ ] bDoc = System . IO . File . ReadAllBytes ( path + fi . Name . Replace ( " " , "_" ) ) ;
string nombreAdjunto = fi . Name . Replace ( ".pdf" , "" ) ;
//se carga el archivo y el registro a vision 2020
string strResultado = oDoc . Archivar_Documento ( lblNumSolicitud . Text . Trim ( ) + "|" + "Requisito" , fi . Name . Replace ( " " , "_" ) , bDoc ) ;
if ( strResultado ! = string . Empty )
{
bRespuesta = false ;
}
else
{
bRespuesta = true ;
File . Delete ( path + fi . Name . Replace ( " " , "_" ) ) ;
EjecutarScript ( "EscoderBoton();MensajeInformativo();" ) ; //PERMITE QUE SOLO SE MUESTRE UN BOTON EN LA PÁGINA
GuardarEventoBitacora (
Session [ "LOGIN" ] . ToString ( ) ,
AccionBitacora . INSERT . ToString ( ) ,
MensajesBitacora . IngresarRegistro + ": Se ha subido el documento de requisito " + fi . Name . Replace ( " " , "_" ) + " de la solicitud " + Session [ "SOLICITUD" ] . ToString ( ) ,
Path . GetFileNameWithoutExtension ( Page . AppRelativeVirtualPath ) ,
Convert . ToInt32 ( ConfigurationManager . AppSettings [ "pkApp" ] )
) ;
}
}
}
llenarGridView ( true ) ;
}
catch ( Exception ex )
{
bRespuesta = false ;
MensajeError ( "Se dio un error al subir los documentos...." , ex ) ;
}
return bRespuesta ;
}
#endregion
#region Metodos Datos a Controles ( R6 )
/// <summary>
/// Carga el grid principal
/// </summary>
/// <param name="p_Llenar"></param>
private void llenarGridView ( bool p_Llenar ) //M0
{
try
{
if ( ! IsPostBack | | p_Llenar )
{
condicionesBusqueda ( ) ;
objRequisitoBL = new requisitoBL ( ) ;
objRequisitoBL . objrequisitoEL . Activo = true ;
objRequisitoBL . objrequisitoEL . PKSOLICITUD = int . Parse ( strNumSolicitudTMP ) ;
if ( nTipoPropietario = = 1 | | nTipoPropietario = = 3 | | nTipoPropietario = = 4 ) //cliente fisico si hace distincion
objRequisitoBL . objrequisitoEL . FKTIPOPROPIETARIO = 1 ;
if ( nTipoDisponibilidad = = 2 )
objRequisitoBL . objrequisitoEL . PRORROGA = true ;
if ( nTipoDisponibilidad = = 3 )
objRequisitoBL . objrequisitoEL . REVISION = true ;
objRequisitoBL . objrequisitoEL . APCR = bAPCR ;
objRequisitoBL . objrequisitoEL . POSEEDOR = bPoseedor ;
objRequisitoBL . objrequisitoEL . SEGREGACION = bSegregacion ;
objRequisitoBL . objrequisitoEL . DERECHOS = bDerechos ;
objRequisitoBL . objrequisitoEL . AUTORIZADOLEGAL = bAutorizadoLegal ;
objRequisitoBL . objrequisitoEL . PROPIETARIOREGISTRAL = bPropietarioRegistral ;
objRequisitoBL . objrequisitoEL . CONCESIONARIO = bConcesionario ;
objRequisitoBL . objrequisitoEL . NATURALEZAINMUEBLE = strNaturalezaInmueble ;
DataSet dsRequisitos = objRequisitoBL . dsListaRequisitoxTipoProyecto ( arlCondicionesFiltroBusqueda ) ;
General . detalleGridView ( dsRequisitos , grvListaDatosCantonalesTemp , lblTotalDatos ) ;
if ( Session [ "SOLICITUD" ] . ToString ( ) ! = null )
{
RequisitostmpBL objRequisitostmpBL = new RequisitostmpBL ( ) ;
objRequisitostmpBL . objRequisitostmpEL . FKSOLICITUD = int . Parse ( strNumSolicitudTMP ) ;
if ( nTipoDisponibilidad = = 2 )
objRequisitostmpBL . objRequisitostmpEL . PRORROGA = true ;
if ( nTipoDisponibilidad = = 3 ) //revision
objRequisitostmpBL . objRequisitostmpEL . REVISION = true ;
//char[] separadorColumna = { '-' };
//string[] arrSolicitud = Session["SOLICITUD"].ToString().Split(separadorColumna);
//objRequisitostmpBL.objRequisitostmpEL.NUMEROSOLICITUD = arrSolicitud[1].ToString();
buscarGridView ( objRequisitostmpBL ) ;
}
ddlRequisito . Items . Clear ( ) ;
ddlRequisito . DataSource = dsRequisitos ;
ddlRequisito . DataTextField = dsRequisitos . Tables [ 0 ] . Columns [ "DESCRIPCIONREQUISITO" ] . ColumnName ;
ddlRequisito . DataValueField = dsRequisitos . Tables [ 0 ] . Columns [ "PKREQUISITO" ] . ColumnName ;
ddlRequisito . DataBind ( ) ;
}
}
catch ( Exception ex )
{
throw ex ;
}
}
private void llenarRequisitos ( )
{
try
{
grvLista . DataSource = null ;
grvLista . DataBind ( ) ;
DataSet ds = obtenerAdjuntos ( ) ;
if ( ds . Tables [ 0 ] . Rows . Count > 0 )
{
//if (ds.Tables[0].Rows[0]["DESCRIPCIONDOCUMENTO"].ToString() != string.Empty)
{
grvLista . DataSource = ds ;
grvLista . DataBind ( ) ;
General . detalleGridView ( ds , grvLista , null ) ;
mostrarFilaTabla ( 1 ) ;
divDatosSuperiores . Visible = true ;
tdBotoneraSuperior . Visible = true ;
dvAdjuntos . Visible = true ;
// llenarRequisitos();
}
}
if ( Session [ "ESTADO" ] . ToString ( ) ! = "Bloqueada" & & Session [ "ESTADO" ] . ToString ( ) ! = "Asignada" )
{
divDatosSuperiores . Visible = false ;
tdBotoneraSuperior . Visible = false ;
dvAdjuntos . Visible = false ;
//carga el gridview con los requisitos que se solicitaron al ingresar la solicitud
DataSet dsRequisitos = null ;
grvListaDatosCantonalesTemp . DataSource = dsRequisitos ;
grvListaDatosCantonalesTemp . DataBind ( ) ;
ddlRequisito . Items . Clear ( ) ;
ddlRequisito . DataSource = dsRequisitos ;
ddlRequisito . DataTextField = dsRequisitos . Tables [ 0 ] . Columns [ "DESCRIPCIONREQUISITO" ] . ColumnName ;
ddlRequisito . DataValueField = dsRequisitos . Tables [ 0 ] . Columns [ "PKREQUISITO" ] . ColumnName ;
ddlRequisito . DataBind ( ) ;
}
if ( ds . Tables [ 0 ] . Rows . Count ! = 0 )
{
foreach ( DataRow drfila in ds . Tables [ 0 ] . Rows )
{
foreach ( GridViewRow row in grvListaDatosRequisitos . Rows )
{
if ( drfila [ "FKREQUISITO" ] . ToString ( ) = = row . Cells [ 2 ] . Text ) // || row.Cells[2].Text == "20")
{
HtmlInputCheckBox chkTemp = ( HtmlInputCheckBox ) row . Controls [ 0 ] . Controls [ 1 ] ;
chkTemp . Checked = true ;
}
}
}
}
}
catch ( Exception ex )
{
throw ex ;
}
}
/// <summary>
/// Muestra los datos del registro
/// </summary>
/// <param name="p_intPkConsultar"></param>
private void mostrarDatos ( int p_intPkConsultar ) //M1
{
try
{
objRequisitoBL = new requisitoBL ( ) ;
objRequisitoBL . objrequisitoEL . PK = p_intPkConsultar ;
DataSet dsRequisito = objRequisitoBL . dsListaRequisito ( null ) ;
if ( dsRequisito . Tables [ 0 ] . Rows . Count > 0 )
{
//Información de la cantonal
//txtDescripcion.Text = dsRequisito.Tables[0].Rows[0]["DESCRIPCIONREQUISITO"].ToString();
//txtDocSoporte.Text = dsRequisito.Tables[0].Rows[0]["DOCSOPORTEREQUISITO"].ToString();
}
else
{
}
}
catch ( Exception ex )
{
throw ex ;
}
}
/// <summary>
/// Carga el grid principal
/// </summary>
/// <param name="p_Llenar"></param>
///
private void buscarGridView ( RequisitostmpBL objRequisitostmpBL ) //M2
{
try
{
{
DataSet dsSolicitud = objRequisitostmpBL . dsListaRequisitos ( ) ;
if ( dsSolicitud . Tables [ 0 ] . Rows . Count ! = 0 )
{
foreach ( DataRow drfila in dsSolicitud . Tables [ 0 ] . Rows )
{
foreach ( GridViewRow row in grvListaDatosRequisitos . Rows )
{
if ( drfila [ "FKREQUISITO" ] . ToString ( ) = = row . Cells [ 2 ] . Text ) // || row.Cells[2].Text == "20")
{
HtmlInputCheckBox chkTemp = ( HtmlInputCheckBox ) row . Controls [ 0 ] . Controls [ 1 ] ;
chkTemp . Checked = true ;
}
}
}
}
}
}
catch ( Exception ex )
{
throw ex ;
}
}
/// <summary>
/// guarda y modifica registros en la tabla.
/// </summary>
/// <returns></returns>
///
private int GuardarDatosActividad ( string p_accion )
{
int nValorRetornado = 0 ;
try
{
// string strModo = ViewState["MODO"].ToString();
int nPkSolicitud = 0 ;
int nResultadoActualizar = 0 ;
string strMensajeContenido = "" ;
string strAsuntoCorreo = "" ;
string strPiePagina = "</BR> </BR></BR>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.FKUSUARIOXDEPENDENCIA = int.Parse(Session["PKUSUARIOXDEPENDENCIA"].ToString());
objSolicitudBL . objSolicitudEL . ORDEN = 1 ;
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)
if ( 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 actualiza el formulario " + 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 ;
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 = = "aprueba" )
{
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 ingreso y asignación de expedientes de la solicitud N° " + Session [ "SOLICITUD" ] . ToString ( ) + " ha sido concluida para ver los detalles, ingrese al sistema <a href=http://" + HttpContext . Current . Request . Url . Authority + "/Forms/wfrLogin.> SIGDD</a>" + 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 = 2 ;
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
objSolicitud . objresponsableActividadEL . FECHARECIBIDO = DateTime . Now ;
nResultadoActualizar = objSolicitud . actualizarActividadSolicitudSiguiente ( ) ;
objcorreoBL . objcorreoEL . ASUNTO = strAsuntoCorreo ;
objcorreoBL . objcorreoEL . CONTENIDO = strMensajeContenido ;
objcorreoBL . objcorreoEL . FKUSUARIO = Convert . ToInt32 ( row6 [ "FKUSUARIOXDEPENDENCIA" ] . ToString ( ) ) ;
objcorreoBL . objcorreoEL . Fecha = DateTime . Now ;
nValorRetornado = objcorreoBL . insertarCorreo ( ) ;
}
//cancelar notificacion
notificacionBL objNotificacionBL = new notificacionBL ( ) ;
objNotificacionBL . objnotificacionEL . ID_DOCUMENTO = Session [ "SOLICITUD" ] . ToString ( ) + " - Ingreso y asignación de expedientes" ;
objNotificacionBL . objnotificacionEL . status = "00" ;
objNotificacionBL . objnotificacionEL . message = "OK" ;
nValorRetornado = objNotificacionBL . cancelarNotificacion ( objNotificacionBL . objnotificacionEL ) ;
#endregion
GuardarEventoBitacora (
Session [ "LOGIN" ] . ToString ( ) ,
AccionBitacora . INSERT . ToString ( ) ,
MensajesBitacora . IngresarRegistro + ": La actividad ingreso y asignación de expedientes 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 = = "pendiente" )
{
//Poner la actividad 2 programacion en pendiente(3)
objSolicitudBL = new solicitudBL ( ) ;
objSolicitudBL . objSolicitudEL . PK = int . Parse ( Session [ "PKPROGRAMACION" ] . ToString ( ) ) ;
objSolicitudBL . objSolicitudEL . ORDEN = 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 ;
}
#endregion
protected void grvLista_RowCommand ( object sender , GridViewCommandEventArgs e )
{
try
{
int i = Convert . ToInt32 ( e . CommandArgument ) ;
GridViewRow selectedRow = grvLista . Rows [ i ] ;
int nPk = int . Parse ( selectedRow . Cells [ 0 ] . Text ) ;
int nFKRequisito = int . Parse ( selectedRow . Cells [ 4 ] . Text ) ;
string strNombreAdjunto = HttpUtility . HtmlDecode ( selectedRow . Cells [ 1 ] . Text ) . Replace ( " " , "_" ) ;
if ( e . CommandName = = "eliminar" )
{
if ( eliminarAdjunto ( nPk ) )
{
string Serverpath = ConfigurationManager . AppSettings [ "DocumentosPDF" ] . ToString ( ) + @"\" + selectedRow . Cells [ 10 ] . Text + @"\DocumentosREQ\" ;
//Serverpath += "\\" + lblNumSolicitud.Text.Trim() + "\\DocumentosREQ";
string file = selectedRow . Cells [ 1 ] . Text ;
string fileDirectory = Serverpath + "\\" + file . Replace ( " " , "_" ) ; ;
File . Delete ( fileDirectory ) ;
llenarRequisitos ( ) ;
RequisitostmpBL objRequisitostmpBLVerifica = new RequisitostmpBL ( ) ;
objRequisitostmpBLVerifica . objRequisitostmpEL . FKSOLICITUD = int . Parse ( strNumSolicitudTMP ) ;
objRequisitostmpBLVerifica . objRequisitostmpEL . FKREQUISITO = nFKRequisito ;
DataSet dsResult = objRequisitostmpBLVerifica . dsListaAdjuntos ( ) ;
if ( dsResult . Tables [ 0 ] . Rows . Count = = 0 )
{
objRequisitostmpBL = new RequisitostmpBL ( ) ;
objRequisitostmpBL . objRequisitostmpEL . FKREQUISITODOCUMENTO = nFKRequisito ;
objRequisitostmpBL . objRequisitostmpEL . FKSOLICITUD = int . Parse ( strNumSolicitudTMP ) ;
objRequisitostmpBL . eliminarRequisitos ( ) ;
}
llenarGridView ( true ) ;
llenarRequisitos ( ) ;
GuardarEventoBitacora (
Session [ "LOGIN" ] . ToString ( ) ,
AccionBitacora . INSERT . ToString ( ) ,
MensajesBitacora . EliminarRegistro + ": Se ha eliminado el adjunto " + strNombreAdjunto + " de la solicitud " + lblNumSolicitud . Text ,
Path . GetFileNameWithoutExtension ( Page . AppRelativeVirtualPath ) ,
Convert . ToInt32 ( ConfigurationManager . AppSettings [ "pkApp" ] )
) ;
}
}
if ( e . CommandName = = "ver" )
{
string pdfPath = ConfigurationManager . AppSettings [ "DocumentosPDF" ] . ToString ( ) + @"\" + selectedRow . Cells [ 10 ] . Text + @"\DocumentosREQ\" + strNombreAdjunto ;
string targetURL = "'../../DocumentosPDF/" + selectedRow . Cells [ 10 ] . 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 [ 10 ] . Text . Trim ( ) + "|Requisito" , selectedRow . Cells [ 10 ] . Text . Trim ( ) , strNombreAdjunto ) ;
//string[] listaAdjuntos = strResultado.Split(new char[] { '|' });
//if (Directory.Exists(targetURL))
// System.IO.Directory.Delete(targetURL, true);
//strResultado = string.Empty;
int nTop = 400 ;
//foreach (string val in listaAdjuntos)
//{
// nTop += +50;
// if (val != "" && val != "No existe")
// strResultado += "JavaScript: window.open('" + strResultado + "','','width=500,height=245,left=350,top=" + (nTop.ToString()) + "');";
// //Response.Redirect(val,false);
//}
if ( strResultado ! = "" & & strResultado ! = "No existe" )
{
EjecutarScript ( "window.open('" + strResultado + "','','width=500,height=245,left=350,top=" + ( nTop . ToString ( ) ) + "');" ) ;
GuardarEventoBitacora (
Session [ "LOGIN" ] . ToString ( ) ,
AccionBitacora . CONSULTA . ToString ( ) ,
MensajesBitacora . IngresarRegistro + ": El usuario " + Session [ "NOMBREEMPLEADO" ] . ToString ( ) + " descargó el documento " + strNombreAdjunto + " para lectura. Requisito de la solicitud " + lblNumSolicitud . Text ,
Path . GetFileNameWithoutExtension ( Page . AppRelativeVirtualPath ) ,
Convert . ToInt32 ( ConfigurationManager . AppSettings [ "pkApp" ] )
) ;
}
else
{
EjecutarScript ( "MensajeInformativoCompleto('No se encontró el documento." + strNombreAdjunto + "');" ) ;
}
//ClientScript.RegisterStartupScript(this.GetType(), "Error", "<script>javascript: MensajeInformativoCompleto('No se ha generado el documento PDF." + pdfPath + "');</script>");
}
}
if ( e . CommandName = = "firmar" )
{
//limpiarCampos();
firmarDocumento ( strNombreAdjunto ) ;
}
if ( e . CommandName = = "notificar" )
{
string strPdf = ConfigurationManager . AppSettings [ "DocumentosPDF" ] . ToString ( ) + @"\" + selectedRow . Cells [ 10 ] . Text + @"\DocumentosREQ\" + strNombreAdjunto ;
strRutaDocAdjuntosRespuesta = ConfigurationManager . AppSettings [ "RutaPdfAdjuntosSql" ] . ToString ( ) + @"\" + selectedRow . Cells [ 10 ] . Text + @"\" + strNombreAdjunto ;
string strRutaCopiarPdf = ConfigurationManager . AppSettings [ "RutaPdfAdjuntosSql" ] . ToString ( ) + @"\" + selectedRow . Cells [ 10 ] . Text + @"\DocumentosREQ\" ;
//System.IO.File.Copy(strPdf, strRutaDocAdjuntosRespuesta, true);
if ( System . IO . File . Exists ( strPdf ) )
{
System . IO . File . Copy ( strPdf , strRutaDocAdjuntosRespuesta , true ) ;
}
else
{
Documento oDoc = new Documento ( ) ;
//consulta la ruta en la que se encuentra ubicado la copia del archivo a consultar
strRutaCopiarPdf = oDoc . Visor_Documento ( selectedRow . Cells [ 10 ] . Text . Trim ( ) + "|Requisito" , selectedRow . Cells [ 10 ] . Text . Trim ( ) , strRutaDocAdjuntosRespuesta , strNombreAdjunto ) ;
}
if ( strRutaCopiarPdf ! = string . Empty & & strRutaCopiarPdf ! = "No existe" )
{
int nNumSolicitudTMP = int . Parse ( Session [ "PKSOLICITUD" ] . ToString ( ) ) ;
string strRutaDocumentos = ConfigurationManager . AppSettings [ "RutaPdfAdjuntosSql" ] . ToString ( ) + @"\" + lblNumSolicitud . Text ;
int nNumeroSolicitudCFIA = - 1 ;
//crear documento zip con los archivos adjuntos
ZipFile zip = new ZipFile ( ) ;
zip . AddFile ( strRutaDocAdjuntosRespuesta , "" ) ;
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 ( strNumSolicitudTMP ) ;
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 ( ) = = "N/A" ? "-1" : dsSolicitud . Tables [ 0 ] . Rows [ 0 ] [ "DESCRIPCIONDESCRIPCIONCFIA" ] . ToString ( ) ) ;
}
//enviar notificacion a CFIA con el servicio de respuesta
if ( File . Exists ( strRutaDocZip ) & & nNumeroSolicitudCFIA ! = - 1 )
{
if ( strNombreAdjunto . Contains ( "RequisitosIncompleto" ) )
{
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 , "Presentación de requisitos incompleta" , 2 , Session [ "LOGIN" ] . ToString ( ) , bRespuestaZip , 3 , ConfigurationManager . AppSettings [ "LLAVEAPCR" ] . ToString ( ) ) ;
if ( respuestaAPCR . Respuesta = = true )
{
EjecutarScript ( "MensajeInformativoPersonalizado('Se ha enviado la notificación a APCR para que ellos notifiquen al cliente registrado.');" ) ;
2021-01-26 21:31:13 +00:00
GuardarEventoBitacora (
2021-01-22 14:59:35 +00:00
2021-01-26 21:31:13 +00:00
Session [ "LOGIN" ] . ToString ( ) ,
2021-01-22 14:59:35 +00:00
2021-01-26 21:31:13 +00:00
AccionBitacora . INSERT . ToString ( ) ,
2021-01-22 14:59:35 +00:00
2021-01-26 21:31:13 +00:00
MensajesBitacora . IngresarRegistro + ": Se envió el correo de notificación de requisitos incompletos a APCR, referente a la solcitud " + lblNumSolicitud . Text ,
2021-01-22 14:59:35 +00:00
2021-01-26 21:31:13 +00:00
"frwRequisitosSolicitud.aspx" ,
2021-01-22 14:59:35 +00:00
2021-01-26 21:31:13 +00:00
Convert . ToInt32 ( ConfigurationManager . AppSettings [ "pkApp" ] )
2021-01-22 14:59:35 +00:00
) ;
}
else
{
EjecutarScript ( "MensajeError('Se presento el siguiente problema a la hora de notificar al CFIA: " + respuestaAPCR . DescripcionError + "');" ) ;
2021-01-26 21:31:13 +00:00
GuardarEventoBitacora (
2021-01-22 14:59:35 +00:00
2021-01-26 21:31:13 +00:00
Session [ "LOGIN" ] . ToString ( ) ,
2021-01-22 14:59:35 +00:00
2021-01-26 21:31:13 +00:00
AccionBitacora . INSERT . ToString ( ) ,
2021-01-22 14:59:35 +00:00
2021-01-26 21:31:13 +00:00
MensajesBitacora . IngresarRegistro + ": Se presentó el siguiente problema a la hora de notificar al CFIA" + respuestaAPCR . DescripcionError ,
2021-01-22 14:59:35 +00:00
2021-01-26 21:31:13 +00:00
"frwRequisitosSolicitud.aspx" ,
2021-01-22 14:59:35 +00:00
2021-01-26 21:31:13 +00:00
Convert . ToInt32 ( ConfigurationManager . AppSettings [ "pkApp" ] )
2021-01-22 14:59:35 +00:00
) ;
}
}
}
else
{
if ( strRutaCopiarPdf ! = string . Empty )
{
string strAsunto = "Presentación de requisitos incompleta" ;
string strAccion = "incumplido" ;
if ( strNombreAdjunto . Contains ( "RequisitosCompleto" ) )
{
strAsunto = "Presentación de requisitos completa" ;
strAccion = "cumplido" ;
}
string strCorreo = obtenerCorreo ( ) ;
if ( strCorreo ! = string . Empty )
{
#region Envio de correo externo
System . Drawing . Image img = System . Drawing . Image . FromFile ( ConfigurationManager . AppSettings [ "Imagenes" ] . ToString ( ) ) ;
string imgStr = imageToByteArray ( img ) ;
string p_strDocHtml = "<img alt='' src='cid:logoAyA.png' style='width: 100px; height: 82px;' />" ;
string strImage64Bits = "data:image/jpg;base64," + imgStr ;
p_strDocHtml = p_strDocHtml . Replace ( "/logoAyA.png" , strImage64Bits ) ;
string strCuerpo = p_strDocHtml + "<div style='text-align:justify'></BR>Estimado " + strNombreCliente + "</BR></BR>El Instituto Costarricense de Acueductos y Alcantarillados le comunica que su trámite de Disponibilidad de Servicios ha " + strAccion + " con los requisitos solicitados en los Art 18-19 del Reglamento de Prestación de Servicios de AyA.</BR>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.</BR></BR>" + "</BR></BR>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 239 y siguientes de la Ley General de la Administración Pública.</div>" ;
string strPiePagina = "</BR> </BR></BR>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.”" ;
AyABL . TRA . correoExternoBL objcorreoExternoBL = new AyABL . TRA . correoExternoBL ( ) ;
objcorreoExternoBL . objcorreoExternoEL . p_recipients = strCorreo ;
objcorreoExternoBL . objcorreoExternoEL . p_copy = Session [ "LOGIN" ] . ToString ( ) + "@aya.go.cr" ;
objcorreoExternoBL . objcorreoExternoEL . p_subject = strAsunto ;
objcorreoExternoBL . objcorreoExternoEL . p_body = strCuerpo + strPiePagina ;
objcorreoExternoBL . objcorreoExternoEL . P_PRIORIDAD = "High" ;
objcorreoExternoBL . objcorreoExternoEL . p_format = "html" ;
//#region adjuntar constancias
if ( strRutaDocAdjuntosRespuesta ! = string . Empty )
objcorreoExternoBL . objcorreoExternoEL . p_file_attachments = strRutaDocAdjuntosRespuesta + ";" + ConfigurationManager . AppSettings [ "RutaPdfAdjuntosSql" ] . ToString ( ) + @"\logoAyA.png;" ;
else
objcorreoExternoBL . objcorreoExternoEL . p_file_attachments = string . Empty ;
int nValorRetornado = objcorreoExternoBL . EnviarCorreoExterno ( ) ;
GuardarEventoBitacora (
Session [ "LOGIN" ] . ToString ( ) ,
AccionBitacora . INSERT . ToString ( ) ,
MensajesBitacora . IngresarRegistro + ": Se envió el correo de notificación de requisitos incompletos al correo " + strCorreo + ", referente a la solcitud " + lblNumSolicitud . Text ,
"frwRequisitosSolicitud.aspx" ,
Convert . ToInt32 ( ConfigurationManager . AppSettings [ "pkApp" ] )
) ;
//MensajeInformativo("Se ha enviado la notificación al cliente.");
#endregion
}
EjecutarScript ( "MensajeInformativoPersonalizado('Se ha enviado la notificación al cliente registrado.');window.parent.location.href = '../tra/" + Session [ "PaginaBack" ] . ToString ( ) + "?l=H/TvTKzD0EejKTW94E5Rjg==&u=J/U7O2rxqMtOqD6/hFMtDw==';" ) ;
EncriptaBL objEncripta = new EncriptaBL ( ) ;
}
else
{
MensajeAlerta ( "No se pudo encontrar el archivo solicitado en Vision 2020" ) ;
}
}
}
}
}
catch ( Exception ex )
{
MensajeError ( "Error en R3M15" , ex ) ;
}
}
protected void grvLista_PageIndexChanging ( object sender , GridViewPageEventArgs e )
{
try
{
grvLista . PageIndex = e . NewPageIndex ;
llenarRequisitos ( ) ;
}
catch ( Exception ex )
{
MensajeError ( "Error en R3M3" , ex ) ;
}
}
private bool eliminarAdjunto ( int nPkDocumento )
{
bool bResult = false ;
try
{
objRequisitostmpBL = new RequisitostmpBL ( ) ;
objRequisitostmpBL . objRequisitostmpEL . PKDOCUMENTO = nPkDocumento ;
objRequisitostmpBL . eliminarAdjuntos ( ) ;
bResult = true ;
}
catch ( Exception ex )
{
throw ex ;
}
return bResult ;
}
private DataSet obtenerAdjuntos ( )
{
DataSet dsResult = new DataSet ( ) ;
try
{
objRequisitostmpBL = new RequisitostmpBL ( ) ;
objRequisitostmpBL . objRequisitostmpEL . FKSOLICITUD = int . Parse ( strNumSolicitudTMP ) ;
objRequisitostmpBL . objRequisitostmpEL . FKREUTILIZA = int . Parse ( strPKReutiliza ) ;
char [ ] separadorColumna = { '-' } ;
string [ ] arrSolicitud = Session [ "SOLICITUD" ] . ToString ( ) . Split ( separadorColumna ) ;
objRequisitostmpBL . objRequisitostmpEL . NUMEROSOLICITUD = arrSolicitud [ 1 ] . ToString ( ) ;
dsResult = objRequisitostmpBL . dsListaAdjuntos ( ) ;
}
catch ( Exception ex )
{
throw ex ;
}
return dsResult ;
}
/// <summary>
/// LLena el listado de clientes
/// </summary>
private void identificaClientePropietarioSolicitud ( ) //M4
{
try
{
//Instancia el objeto
clienteSolicitudBL objClienteSolicitudBL = new clienteSolicitudBL ( ) ;
//Asigna un valor al atributo de referencia del objeto
objClienteSolicitudBL . objclientesolicitudEL . FKSOLICITUD = int . Parse ( Session [ "PKSOLICITUD" ] . ToString ( ) ) ;
//objClienteSolicitudBL.objclientesolicitudEL.FKTIPOPROPIETARIO = 2;//pregunta si es de tipo cedula juridica primero para verificar que no hay ninguno entre los mismos
//PKTITULARINMUEBLE DESCRIPCIONTITULARINMUEBLE
//1 Propietario registral
//2 Representante legal
//3 Albacea
//4 Curador
//5 Tutor
//6 Autorizado legal
//7 Concesionario
//8 Poseedor
//Carga en un dataset la información
DataSet ds = objClienteSolicitudBL . dsListaClienteSolicitud ( ) ;
nTipoPropietario = 1 ;
foreach ( DataRow row in ds . Tables [ 0 ] . Rows )
{
if ( int . Parse ( row [ "FKTIPOPROPIETARIO" ] . ToString ( ) ) = = 2 )
{
nTipoPropietario = 2 ;
}
//definir autorizado legal como un tercero
//titlar de inmueble concesionario y folio por concesion son lo mismo?
//definir filtros inclusivos y exclusivos
if ( int . Parse ( row [ "FKTITULARINMUEBLE" ] . ToString ( ) ) = = 1 )
{
bPropietarioRegistral = true ;
}
if ( int . Parse ( row [ "FKTITULARINMUEBLE" ] . ToString ( ) ) = = 2 )
{
bAutorizadoLegal = true ;
}
if ( int . Parse ( row [ "FKTITULARINMUEBLE" ] . ToString ( ) ) = = 3 )
{
bAutorizadoLegal = true ;
}
if ( int . Parse ( row [ "FKTITULARINMUEBLE" ] . ToString ( ) ) = = 4 )
{
bAutorizadoLegal = true ;
}
if ( int . Parse ( row [ "FKTITULARINMUEBLE" ] . ToString ( ) ) = = 5 )
{
bAutorizadoLegal = true ;
}
if ( int . Parse ( row [ "FKTITULARINMUEBLE" ] . ToString ( ) ) = = 6 )
{
bAutorizadoLegal = true ;
}
if ( int . Parse ( row [ "FKTITULARINMUEBLE" ] . ToString ( ) ) = = 7 )
{
bConcesionario = true ;
}
if ( int . Parse ( row [ "FKTITULARINMUEBLE" ] . ToString ( ) ) = = 8 )
{
bPoseedor = true ;
}
if ( bool . Parse ( row [ "SOLICITACFIASOLICITUD" ] . ToString ( ) ) = = true )
{
bAPCR = true ;
}
if ( row [ "SEGREGACION" ] . ToString ( ) = = "1" )
{
bSegregacion = true ;
}
nTipoDisponibilidad = int . Parse ( ds . Tables [ 0 ] . Rows [ 0 ] [ "FKTIPODISPONIBILIDAD" ] . ToString ( ) ) ;
strNaturalezaInmueble = ds . Tables [ 0 ] . Rows [ 0 ] [ "NATURALEZAINMUEBLE" ] . ToString ( ) ;
char [ ] separadorValores = { ',' } ;
char [ ] separadorDetalleFolio = { '-' } ;
string [ ] strFolios = ds . Tables [ 0 ] . Rows [ 0 ] [ "FOLIOS" ] . ToString ( ) . Split ( separadorValores ) ;
for ( int i = 0 ; i < = ( strFolios . Length - 1 ) ; i + + )
{
string [ ] strDetalleFolio = strFolios [ i ] . Split ( separadorDetalleFolio ) ;
if ( int . Parse ( strDetalleFolio [ strDetalleFolio . Length - 1 ] ) > 0 )
bDerechos = true ;
}
}
}
catch ( Exception ex )
{
throw ex ;
}
}
protected void grvLista_RowDataBound ( object sender , GridViewRowEventArgs e )
{
try
{
e . Row . Cells [ 3 ] . Visible = false ;
e . Row . Cells [ 4 ] . Visible = false ;
e . Row . Cells [ 5 ] . Visible = false ;
GridViewRow selectedRow = e . Row ;
string strNombreAdjunto = selectedRow . Cells [ 1 ] . Text . Replace ( " " , "_" ) ;
if ( e . Row . RowType = = DataControlRowType . DataRow )
{
// e.Row.Cells[6].Visible = false;//eliminar
e . Row . Cells [ 6 ] . Enabled = false ;
e . Row . Cells [ 6 ] . Style . Add ( "opacity" , "0.5" ) ;
e . Row . Cells [ 8 ] . Enabled = false ;
e . Row . Cells [ 8 ] . Style . Add ( "opacity" , "0.5" ) ;
e . Row . Cells [ 9 ] . Enabled = false ;
e . Row . Cells [ 9 ] . Style . Add ( "opacity" , "0.5" ) ;
e . Row . Cells [ 10 ] . Visible = false ; //num solicitud
e . Row . Cells [ 7 ] . ToolTip = "Ver adjunto" ;
e . Row . Cells [ 8 ] . ToolTip = "Firmar adjunto" ;
e . Row . Cells [ 9 ] . ToolTip = "Notificar al cliente" ;
if ( int . Parse ( strNumSolicitudTMP ) = = int . Parse ( e . Row . Cells [ 4 ] . Text ) )
{
e . Row . Cells [ 6 ] . ToolTip = "Eliminar adjunto" ;
if ( Session [ "ESTADO" ] . ToString ( ) = = "Bloqueada" )
{ //e.Row.Cells[6].Visible = true;
e . Row . Cells [ 6 ] . Enabled = true ;
e . Row . Cells [ 6 ] . Style . Add ( "opacity" , "1" ) ;
e . Row . Cells [ 8 ] . Enabled = true ;
e . Row . Cells [ 8 ] . Style . Add ( "opacity" , "1" ) ;
}
}
else
{
selectedRow . BackColor = System . Drawing . Color . LightGray ;
e . Row . Cells [ 9 ] . Enabled = false ;
e . Row . Cells [ 9 ] . Style . Add ( "opacity" , "0.5" ) ;
}
if ( strNombreAdjunto . Contains ( "RequisitosCompleto" ) & & Session [ "ESTADO" ] . ToString ( ) ! = "Finalizada" & & int . Parse ( strNumSolicitudTMP ) = = int . Parse ( e . Row . Cells [ 4 ] . Text ) )
{
e . Row . Cells [ 9 ] . Enabled = true ;
e . Row . Cells [ 9 ] . Style . Add ( "opacity" , "1" ) ;
e . Row . Cells [ 2 ] . Text = "Documento de entrega al cliente cuando se completan los requisitos." ;
}
if ( strNombreAdjunto . Contains ( "RequisitosIncompleto" ) & & Session [ "ESTADO" ] . ToString ( ) ! = "Finalizada" & & int . Parse ( strNumSolicitudTMP ) = = int . Parse ( e . Row . Cells [ 4 ] . Text ) )
{
e . Row . Cells [ 9 ] . Enabled = true ;
e . Row . Cells [ 9 ] . Style . Add ( "opacity" , "1" ) ;
e . Row . Cells [ 2 ] . Text = "Documento de entrega al cliente cuando no se completan los requisitos." ;
}
}
}
catch ( Exception )
{ }
}
protected void btnGuardarPDF_Click ( object sender , EventArgs e )
{
try
{
FirmadorWeb . FirmadorWebSvcClient cliente = new FirmadorWeb . FirmadorWebSvcClient ( ) ;
bool bSubirDocs = SubirDocumentos ( " " ) ;
//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() + @"\DocumentosREQ\" + @"\" + ViewState["Documento"].ToString(), contenido);
// ViewState.Remove("DocumentoID");
// //var uri = new System.Uri(ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + Session["SOLICITUD"].ToString() + @"\DocumentosREQ\" + @"\" + ViewState["Documento"].ToString(), UriKind.Absolute);
// string targetURL = "'../../DocumentosPDF/" + Session["SOLICITUD"].ToString() + "/DocumentosREQ/" + ViewState["Documento"].ToString() + "'";
// EjecutarScript("abrirPDF(" + targetURL + ");");
// //System.Diagnostics.Process proc = new System.Diagnostics.Process();
// //proc.StartInfo.FileName = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + Session["SOLICITUD"].ToString() + @"\DocumentosREQ\" + @"\" + ViewState["Documento"].ToString();
// //proc.Start();
// //proc.Close();
//}
//else
//{
// MensajeAlerta("El documento no se firmó correctamente por favor vuelava a intentarlo.");
//}
ViewState [ "MODO" ] = string . Empty ;
ViewState [ "Documento" ] = string . Empty ;
}
catch ( Exception ex )
{
MensajeError ( "Se produjo un error al firmar el documento pdf." , ex ) ;
}
ViewState [ "MODO" ] = string . Empty ;
ViewState [ "Documento" ] = string . Empty ;
}
private void firmarDocumento ( string pstrDocumento )
{
try
{
string pdfPath = ConfigurationManager . AppSettings [ "DocumentosPDF" ] . ToString ( ) + @"\" + Session [ "SOLICITUD" ] . ToString ( ) + @"\DocumentosREQ\" + pstrDocumento ;
string targetPath = "'../../DocumentosPDF/" + Session [ "SOLICITUD" ] . ToString ( ) + "/DocumentosREQ/" + pstrDocumento + "'" ;
List < string > signatarios = new List < string > ( ) ;
List < string > emails = new List < string > ( ) ;
if ( ! string . IsNullOrEmpty ( ConfigurationManager . AppSettings [ "CedulaFirmaSIGPC" ] . ToString ( ) ) )
{
signatarios . Add ( ConfigurationManager . AppSettings [ "CedulaFirmaSIGPC" ] . ToString ( ) ) ;
// emails.Add("jmonged@aya.go.cr");
}
if ( ! File . Exists ( pdfPath ) )
{
string ruta = ConfigurationManager . AppSettings [ "DocumentosPDF" ] . ToString ( ) + @"\" + Session [ "SOLICITUD" ] . ToString ( ) + @"\DocumentosREQ" ;
//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 ( lblNumSolicitud . Text . Trim ( ) + "|" + "Requisito" , lblNumSolicitud . Text . Trim ( ) , pdfPath , pstrDocumento ) ;
}
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 ,
"Firma de documentos" ,
bytes ,
IdUsuarioSistemaCliente ,
signatarios . ToArray ( ) ,
emails . ToArray ( ) ,
CodigoSistema ,
"01" ) ;
// cliente.PonerOpcionesDocumento(idDocumentoFirmado, CodigoSistema, false, false, false);
documento . DocumentoID = idDocumentoFirmado ;
//documento.Nombre = pstrDocumento;
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 ( ) + " firmó el requisito " + pstrDocumento ;
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ó el documento de requisito " + pstrDocumento + ".pdf de la solicitud " + lblNumSolicitud . Text + " para realizar la firma." , // Se firmó el requisito " + pstrDocumento + " de la solicitud " + lblNumSolicitud.Text,
Path . GetFileNameWithoutExtension ( Page . AppRelativeVirtualPath ) ,
Convert . ToInt32 ( ConfigurationManager . AppSettings [ "pkApp" ] )
) ;
cliente . Close ( ) ;
}
}
else
{
{ ClientScript . RegisterStartupScript ( this . GetType ( ) , "Error" , "<script>javascript: MensajeInformativo('No se ha generado el documento PDF." + pdfPath + "');</script>" ) ; }
}
}
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 ( ) + @"\DocumentosREQ" + @"\" + ViewState [ "Documento" ] ;
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 ( lblNumSolicitud . Text . ToString ( ) . Trim ( ) + "|" + "Requisito" , ViewState [ "Documento" ] . ToString ( ) , bDoc ) ;
if ( strResultado = = string . Empty )
{
File . Delete ( pdfPath ) ;
}
#endregion
}
else
{
{ ClientScript . RegisterStartupScript ( this . GetType ( ) , "Error" , "<script>javascript: MensajeInformativo('No se pudo descargar el documento firmado por favor intente firmarlo de nuevo." + pdfPath + "');</script>" ) ; }
}
}
catch ( Exception ex )
{
throw ex ;
}
}
#region Métodos para generar token de seguridad del firmador web
/// <summary>
/// Identificador único definido por el sistema cliente para el documento incluído en el firmador web
/// </summary>
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 ;
}
}
/// <summary>
/// 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
/// </summary>
/// <param name="idDocumento">Documento que se va a abrir en el firmador web</param>
/// <param name="cedula">Cédula del usuario actual</param>
/// <returns></returns>
private string GenerarUrlFirmadorWeb ( long idDocumento , string cedula )
{
return string . Format (
ConfigurationManager . AppSettings [ "UrlFirmadorWeb" ] ,
idDocumento ,
cedula ,
Server . UrlEncode (
Cipher (
string . Format ( "{0},{1}" , idDocumento , cedula )
)
)
) ;
}
/// <summary>
/// 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
/// </summary>
/// <param name="value">Valor que se va a encriptar</param>
/// <returns>Valor encriptado</returns>
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
}