TFS_ANTIGUO/SIGPC/ProyectoSIGPC/Forms/TRA/frwDeBajaSolicitud.aspx.cs
kledezma 7fdadc4709 KLB
git-tfs-id: [http://192.168.1.10:8080/tfs/AyA]$/SINORT;C519
2021-01-22 15:05:35 +00:00

615 lines
No EOL
26 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*===========================================================================================================================
* 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
}