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;
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);
Javascript.CheckAllGridViewItems(Page);
}
catch (Exception ex)
{
MensajeError("Error en R0M1", ex);
}
}
#endregion
#region Variables (R1)
adjuntoBL objAdjuntoBL;
solicitudBL objSolicitudBL = new solicitudBL();
public string strPKReutiliza = "0";
string strNumSolicitudTMP = "0";
#region variables del estandar
#endregion
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;
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")
{
btnSubirarchivo.Enabled = true;
}
}
if (Session["ESTADO"] != null)
{
if (Session["ESTADO"].ToString() == "Finalizada" || Session["ESTADO"].ToString() == "Cancelada")
{
btnSubirarchivo.Enabled = false;
}
}
if ((!IsPostBack) && (Session.Count > 0))
{
Session["Pagina"] = "";
EjecutarScript("");//PERMITE QUE SOLO SE MUESTRE UN BOTON EN LA PÁGINA
mostrarFilaTabla(1);
llenarAdjuntos();
ComandosxMenu();
}
else
{
if (Session["Pagina"] == null)
{
//Response.Redirect("../wfrLogin.aspx?sesion=expiro", false);
{ ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); }
}
}
}
else
{
if (Session["Pagina"] == null)
{
//Response.Redirect("../wfrLogin.aspx?sesion=expiro", false);
{ ClientScript.RegisterStartupScript(this.GetType(), "Error", ""); }
}
}
}
catch (Exception ex)
{
MensajeError("Error en R2M0", ex);
}
}
#endregion
#region Eventos Controles Web (R3)
protected void btnSubirarchivo_Click(object sender, EventArgs e)
{
try
{
string strRequisito = string.Empty;
//if(txtdescripcion.Text != string.Empty)
//{
bool bSubirDocs = SubirDocumentos(" ");
if (bSubirDocs)
{
llenarAdjuntos();
EjecutarScript("MensajeInformativo();");
}
//}
//else
//{
// MensajeAlerta("Debe agregar la descripción del requisito...");
//}
}
catch (Exception ex)
{
MensajeError("Se produjo un error en la operación", ex);
}
}
#endregion
#region Metodos Personalizados (R4)
///
/// Oculta las filas que lo requieran
///
///
private void mostrarFilaTabla(int p_intFila) //M0
{
try
{
divDatosSuperiores.Visible = false;
divDatosMedios.Visible = false;
switch (p_intFila)
{
case 1:
divDatosSuperiores.Visible = true;
break;
case 2:
divDatosMedios.Visible = true;
break;
case 3:
break;
}
}
catch (Exception ex)
{
throw ex;
}
}
///
/// Metodo que se encarga de agregar el filtro de busqueda seleccionado por el usuario
///
///
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;
}
}
///
/// Metodo que se utiliza para el despliegue de los botones
///
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;
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)
private bool SubirDocumentos(string strAccion)
{
bool bRespuesta = true;
string rutaAdjuntos = string.Empty;
try
{
String path = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + lblNumSolicitud.Text.Trim() + @"\DocumentosREQ\";
DirectoryInfo di = new DirectoryInfo(path);
foreach (var fi in di.GetFiles())
{
string ext = Path.GetExtension(fi.Name);
// if (ext == ".pdf" || ext == ".PDF")
{
//string targetUrl = "'../../../DocumentosPDF/" + lblNumSolicitud.Text.Trim() + @"/";
string fname = Path.GetFileName(fi.Name);
//subir documentos a vision 2020
Documento oDoc = new Documento();
string fileDirectory = path + fi.Name.Replace(" ", "_");
//se transaforma el archivo a un arreglo de bytes
byte[] bDoc = System.IO.File.ReadAllBytes(fileDirectory);
string nombreAdjunto = fi.Name.Replace(".pdf", "");
//se carga el archivo y el registro a vision 2020
string strResultado = oDoc.Archivar_Documento(lblNumSolicitud.Text.Trim() + "|" + "Otros", fi.Name.Replace(" ", "_"), bDoc);
if (strResultado != string.Empty)
bRespuesta = false;
else
{
bRespuesta = true;
File.Delete(fileDirectory);
}
}
}
}
catch (Exception ex)
{
bRespuesta = false;
MensajeError("Se dio un error al subir los documentos....", ex);
}
return bRespuesta;
}
#endregion
#region Metodos Datos a Controles (R6)
private void llenarAdjuntos()
{
try
{
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);
// llenarRequisitos();
}
}
}
catch(Exception ex)
{
throw ex;
}
}
///
/// Muestra los datos del registro
///
///
private void mostrarDatos(int p_intPkConsultar) //M1
{
try
{
objAdjuntoBL = new adjuntoBL();
objAdjuntoBL.objadjuntoEL.PK = p_intPkConsultar;
DataSet dsRequisito = objAdjuntoBL.listarAdjuntos(null,false);
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;
}
}
#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 nFKAdjunto = 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[8].Text + @"\DocumentosREQ\";
//Serverpath += "\\" + lblNumSolicitud.Text.Trim() + "\\DocumentosREQ";
string file = selectedRow.Cells[1].Text;
string fileDirectory = Serverpath + "\\" + file.Replace(" ", "_"); ;
File.Delete(fileDirectory);
llenarAdjuntos();
RequisitostmpBL objRequisitostmpBLVerifica = new RequisitostmpBL();
objRequisitostmpBLVerifica.objRequisitostmpEL.FKSOLICITUD = int.Parse(strNumSolicitudTMP);
objRequisitostmpBLVerifica.objRequisitostmpEL.FKREQUISITO = nFKAdjunto;
DataSet dsResult = objRequisitostmpBLVerifica.dsListaAdjuntos();
if (dsResult.Tables[0].Rows.Count == 0)
{
objAdjuntoBL = new adjuntoBL();
objAdjuntoBL.objadjuntoEL.FK = nFKAdjunto;
objAdjuntoBL.objadjuntoEL.FKSOLICITUD = int.Parse(strNumSolicitudTMP);
objAdjuntoBL.eliminarAdjunto();
}
GuardarEventoBitacora(
Session["LOGIN"].ToString(),
AccionBitacora.INSERT.ToString(),
MensajesBitacora.EliminarRegistro + ": Se ha eliminado el adjunto " + strNombreAdjunto + " de la solicitud " + lblNumSolicitud.Text,
"frwAdjuntosSolicitud.aspx",
Convert.ToInt32(ConfigurationManager.AppSettings["pkApp"])
);
}
}
if (e.CommandName == "ver")
{
string pdfPath = ConfigurationManager.AppSettings["DocumentosPDF"].ToString() + @"\" + selectedRow.Cells[7].Text + @"\DocumentosREQ\" + strNombreAdjunto;
string targetURL = "'../../DocumentosPDF/" + selectedRow.Cells[7].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[7].Text.Trim() + "|Otros", selectedRow.Cells[7].Text.Trim(), strNombreAdjunto);
int nTop = 400;
if (strResultado != "" && strResultado != "No existe")
{
EjecutarScript("window.open('" + strResultado + "','','width=500,height=245,left=350,top=" + (nTop.ToString()) + "');");
}
else
{
EjecutarScript("MensajeInformativoCompleto('No se encontró el documento." + strNombreAdjunto + "');");
}
}
}
}
catch (Exception ex)
{
MensajeError("Error en R3M15", ex);
}
}
protected void grvLista_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
try
{
grvLista.PageIndex = e.NewPageIndex;
llenarAdjuntos();
}
catch (Exception ex)
{
MensajeError("Error en R3M3", ex);
}
}
private bool eliminarAdjunto(int nPk)
{
bool bResult = false;
try
{
objAdjuntoBL = new adjuntoBL();
objAdjuntoBL.objadjuntoEL.PK = nPk;
objAdjuntoBL.eliminarAdjunto();
bResult = true;
}
catch(Exception ex)
{
throw ex;
}
return bResult;
}
private DataSet obtenerAdjuntos()
{
DataSet dsResult = new DataSet();
try
{
objAdjuntoBL = new adjuntoBL();
objAdjuntoBL.objadjuntoEL.FKSOLICITUD = int.Parse(strNumSolicitudTMP);
objAdjuntoBL.objadjuntoEL.FKREUTILIZA = int.Parse(strPKReutiliza);
char[] separadorColumna = { '-' };
string[] arrSolicitud = Session["SOLICITUD"].ToString().Split(separadorColumna);
objAdjuntoBL.objadjuntoEL.NUMEROSOLICITUD = arrSolicitud[1].ToString();
dsResult = objAdjuntoBL.listarAdjuntos(null,false);
}
catch(Exception ex)
{
throw ex;
}
return dsResult;
}
protected void grvLista_RowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
e.Row.Cells[4].Visible = false;
e.Row.Cells[5].Visible = false;
e.Row.Cells[7].Visible = false;
GridViewRow selectedRow = e.Row;
if ( e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[5].Visible = false;
e.Row.Cells[8].Visible = false;
e.Row.Cells[6].ToolTip = "Ver adjunto";
if (int.Parse(strNumSolicitudTMP) == int.Parse(e.Row.Cells[4].Text) )
{
e.Row.Cells[5].ToolTip = "Eliminar adjunto";
if (Session["ESTADO"].ToString() == "Bloqueada")
e.Row.Cells[5].Visible = true;
}
}
}
catch (Exception)
{ }
}
}