TFS_ANTIGUO/SIGPC/ProyectoSIGPC/Forms/TRA/frwDeBajaSolicitud.aspx.cs

615 lines
26 KiB
C#
Raw Normal View History

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