From 0e282bfe516c43316e9e14fe632e9094f64f43e4 Mon Sep 17 00:00:00 2001 From: Antonio Gonzalez Date: Sat, 22 Aug 2020 11:17:35 -0700 Subject: [PATCH] =?UTF-8?q?continuaci=C3=B3n=20de=20documentos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AF/CatCheckList.aspx | 16 ++ AF/CatCheckList.aspx.cs | 14 ++ AF/CatCheckListActividades.aspx | 76 ++++++++ AF/CatCheckListActividades.aspx.cs | 108 ++++++++++++ App_Code/ClsAF.vb | 161 +++++++++++++++++ App_Code/ClsPaginas.vb | 1 + App_Code/DtDatos.xsd | 28 +-- App_Code/DtDatos.xss | 4 +- Empresas/Grales/Formatos/RepIVA.rpt | Bin 131072 -> 131072 bytes .../Grales/Formatos/RepIVAAcreditable.rpt | Bin 131072 -> 131072 bytes OI/CatDocumentoCategoria.aspx | 8 +- OI/CatDocumentoSubCategoria.aspx | 12 +- OI/DocumentoDetalle.aspx | 22 +-- OI/DocumentoDetalle.aspx.cs | 166 ++++++++++++------ OI/Documentos.aspx | 17 +- 15 files changed, 535 insertions(+), 98 deletions(-) create mode 100644 AF/CatCheckList.aspx create mode 100644 AF/CatCheckList.aspx.cs create mode 100644 AF/CatCheckListActividades.aspx create mode 100644 AF/CatCheckListActividades.aspx.cs diff --git a/AF/CatCheckList.aspx b/AF/CatCheckList.aspx new file mode 100644 index 000000000..c7c954225 --- /dev/null +++ b/AF/CatCheckList.aspx @@ -0,0 +1,16 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CatCheckList.aspx.cs" Inherits="AF_CatCheckList" %> + + + + + + + + +
+
+ +
+
+ + diff --git a/AF/CatCheckList.aspx.cs b/AF/CatCheckList.aspx.cs new file mode 100644 index 000000000..4742625b9 --- /dev/null +++ b/AF/CatCheckList.aspx.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +public partial class AF_CatCheckList : System.Web.UI.Page +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} \ No newline at end of file diff --git a/AF/CatCheckListActividades.aspx b/AF/CatCheckListActividades.aspx new file mode 100644 index 000000000..e4179f25a --- /dev/null +++ b/AF/CatCheckListActividades.aspx @@ -0,0 +1,76 @@ +<%@ Page Title="AF - Catálogo de Actividades de CheckList" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="CatCheckListActividades.aspx.cs" Inherits="AF_CatCheckListActividades" %> + +<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> + + + + + + + + Catálogo de Actividades de CheckList + + + + +
  • + +
  • + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AF/CatCheckListActividades.aspx.cs b/AF/CatCheckListActividades.aspx.cs new file mode 100644 index 000000000..f21d58f7a --- /dev/null +++ b/AF/CatCheckListActividades.aspx.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using Extensiones; +using System.Data; + +public partial class AF_CatCheckListActividades : ClsPaginas +{ + private int CveCheckListActividad + { + get + { + return ViewState["CveCheckListActividad"].ToString().ToEntero(); + } + + set + { + ViewState["CveCheckListActividad"] = value; + } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + CargaDatos(); + } + } + + private void CargaDatos() + { + ClsAF ObjAF = new ClsAF(); + if (ObjAF.GetCheckListActividad(-1, -1)) + { + GvDatos.DataSource = ObjAF.DtResultados; + GvDatos.DataBind(); + } + + if (ObjAF.GetCheckListActividadGrupo(-1)) + { + DdlCheckListActividadGrupo.DataSource = ObjAF.DtResultados; + DdlCheckListActividadGrupo.DataBind(); + DdlCheckListActividadGrupo.Items.Insert(0, new ListItem("Seleccione", "-1")); + } + ObjAF.Dispose(); + } + + protected void BtnAgregarActividadCheckListD_Click(object sender, EventArgs e) + { + BtnAgregarActividadCheckList.Text = "Agregar"; + TxtCheckListActividad.Text = ""; + DdlCheckListActividadGrupo.SelectedValueExist(-1); + UpModalTiposD.Update(); + RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarTiposServiciosD")); + } + + protected void LnkEditar_Click(object sender, EventArgs e) + { + BtnAgregarActividadCheckList.Text = "Actualizar"; + GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); + CveCheckListActividad = GvRow.DataKey("CveCheckListActividad").ToEntero(); + TxtCheckListActividad.Text = GvRow.DataKey("CheckListActividad"); + DdlCheckListActividadGrupo.SelectedValueExist(GvRow.DataKey("CveCheckListActividadGrupo")); + UpModalTiposD.Update(); + RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarTiposServiciosD")); + } + + protected void LnkEliminar_Click(object sender, EventArgs e) + { + GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); + CveCheckListActividad = GvRow.DataKey("CveCheckListActividad").ToEntero(); + ClsAF ObjAF = new ClsAF(); + if (ObjAF.DeleteCheckListActividad(CveCheckListActividad)) + { + CargaDatos(); + UpDatos.Update(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarTiposServiciosD")); + Alert("Se eliminó la Actividad de CheckList correctamente"); + } + ObjAF.Dispose(); + } + + protected void BtnAgregarActividadCheckList_Click(object sender, EventArgs e) + { + ClsAF ObjAF = new ClsAF(); + if (BtnAgregarActividadCheckList.Text == "Agregar") + { + if (ObjAF.AddCheckListActividad(TxtCheckListActividad.Text, DdlCheckListActividadGrupo.SelectedValue.ToEntero())) + { + Alert("Se agregó la Actividad de CheckList correctamente"); + } + } + else + { + if (ObjAF.UpdateCheckListActividad(CveCheckListActividad, TxtCheckListActividad.Text, DdlCheckListActividadGrupo.SelectedValue.ToEntero())) + { + Alert("Se actualizó la Actividad de CheckList correctamente"); + } + } + ObjAF.Dispose(); + CargaDatos(); + UpDatos.Update(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarTiposServiciosD")); + } +} \ No newline at end of file diff --git a/App_Code/ClsAF.vb b/App_Code/ClsAF.vb index c8f341270..ebb78452a 100644 --- a/App_Code/ClsAF.vb +++ b/App_Code/ClsAF.vb @@ -3995,6 +3995,167 @@ Public Class ClsAF Return Retorno End Function + Public Function GetCheckListActividad(CveCheckListActividad As Integer, CveCheckListActividadGrupo As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListActividadGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckListActividad", SqlDbType.Int).Value = CveCheckListActividad + .Add("@CveCheckListActividadGrupo", SqlDbType.Int).Value = CveCheckListActividadGrupo + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener las actividades de CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function AddCheckListActividad(CheckListActividad As String, CveCheckListActividadGrupo As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListActividadAdd") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CheckListActividad", SqlDbType.NVarChar).Value = CheckListActividad + .Add("@CveCheckListActividadGrupo", SqlDbType.Int).Value = CveCheckListActividadGrupo + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al agregar las actividades de CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function UpdateCheckListActividad(CveCheckListActividad As Integer, CheckListActividad As String, CveCheckListActividadGrupo As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListActividadUpdate") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckListActividad", SqlDbType.Int).Value = CveCheckListActividad + .Add("@CheckListActividad", SqlDbType.NVarChar).Value = CheckListActividad + .Add("@CveCheckListActividadGrupo", SqlDbType.Int).Value = CveCheckListActividadGrupo + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al actualizar las actividades de CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function DeleteCheckListActividad(CveCheckListActividad As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListActividadDelete") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckListActividad", SqlDbType.Int).Value = CveCheckListActividad + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al eliminar las actividades de CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function GetCheckList(CveCheckList As Integer, CveTipoServicio As Integer, CveCheckListActividad As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckList", SqlDbType.Int).Value = CveCheckList + .Add("@CveTipoServicio", SqlDbType.Int).Value = CveTipoServicio + .Add("@CveCheckListActividad", SqlDbType.Int).Value = CveCheckListActividad + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function AddCheckList(CveTipoServicio As Integer, CveCheckListActividad As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListAdd") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveTipoServicio", SqlDbType.Int).Value = CveTipoServicio + .Add("@CveCheckListActividad", SqlDbType.Int).Value = CveCheckListActividad + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al agregar el CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function UpdateCheckList(CveCheckList As Integer, CveTipoServicio As Integer, CveCheckListActividad As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListUpdate") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckList", SqlDbType.Int).Value = CveCheckList + .Add("@CveTipoServicio", SqlDbType.Int).Value = CveTipoServicio + .Add("@CveCheckListActividad", SqlDbType.Int).Value = CveCheckListActividad + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al actualizar el CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function DeleteCheckList(CveCheckList As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListDelete") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckList", SqlDbType.Int).Value = CveCheckList + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al eliminar el CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + #End Region diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index ddee3fb68..0b5f11d3e 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -3958,6 +3958,7 @@ Public Class ClsPaginas PaginaDict.Add("/AF/CatActividades.aspx".ToUpper(), 768) PaginaDict.Add("/AF/CatCheckListActividadesGrupos.aspx".ToUpper(), 769) PaginaDict.Add("/AF/CatCheckListTipo.aspx".ToUpper(), 770) + PaginaDict.Add("/AF/CatCheckListActividades.aspx".ToUpper(), 771) PaginaDict.Add("/AF/TipoOrdenTrabajo.aspx".ToUpper(), -1) PaginaDict.Add("/AF/OrdenTrabajo.aspx".ToUpper(), -1) diff --git a/App_Code/DtDatos.xsd b/App_Code/DtDatos.xsd index f4839bec3..f64700eb6 100644 --- a/App_Code/DtDatos.xsd +++ b/App_Code/DtDatos.xsd @@ -12,7 +12,7 @@ - + @@ -28,7 +28,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -64,7 +64,7 @@ - + @@ -87,7 +87,7 @@ - + @@ -111,7 +111,7 @@ - + @@ -137,7 +137,7 @@ - + @@ -153,7 +153,7 @@ - + @@ -170,7 +170,7 @@ - + @@ -179,7 +179,7 @@ - + @@ -215,7 +215,7 @@ - + @@ -235,12 +235,12 @@ - + - + @@ -256,7 +256,7 @@ - + diff --git a/App_Code/DtDatos.xss b/App_Code/DtDatos.xss index 3d21fe6c6..e0a664890 100644 --- a/App_Code/DtDatos.xss +++ b/App_Code/DtDatos.xss @@ -4,7 +4,7 @@ Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. --> - + @@ -16,7 +16,7 @@ - + diff --git a/Empresas/Grales/Formatos/RepIVA.rpt b/Empresas/Grales/Formatos/RepIVA.rpt index 9010bd4687d4535bed3da15f6b9728a52993a4fa..d3b3d6240ee26e52583433e6c65c94422af9a48c 100644 GIT binary patch delta 9929 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 DU(6<# delta 9877 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 H5cB~8n71Yp diff --git a/Empresas/Grales/Formatos/RepIVAAcreditable.rpt b/Empresas/Grales/Formatos/RepIVAAcreditable.rpt index eb0fede9e2362e8f42fceb0f7cdee6aed7266715..d29e92534b27050110049160dfad8d6789f43df4 100644 GIT binary patch delta 10830 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 W0{{R302!Bh&;fn{8@KuF0S6O@xY6VQ diff --git a/OI/CatDocumentoCategoria.aspx b/OI/CatDocumentoCategoria.aspx index e935eec64..96ca36b67 100644 --- a/OI/CatDocumentoCategoria.aspx +++ b/OI/CatDocumentoCategoria.aspx @@ -14,7 +14,7 @@
  • - +
  • @@ -25,8 +25,8 @@ - - + + @@ -44,7 +44,7 @@
    diff --git a/OI/DocumentoDetalle.aspx b/OI/DocumentoDetalle.aspx index fd583dbd4..43ef51987 100644 --- a/OI/DocumentoDetalle.aspx +++ b/OI/DocumentoDetalle.aspx @@ -29,8 +29,8 @@
    - - +
    +

    @@ -47,18 +47,9 @@
    -
    +
    -
    -
    -
    - - - - - -
    -
    +
    @@ -83,7 +74,7 @@
    - +
    @@ -104,7 +95,7 @@ @@ -144,6 +135,7 @@ +
    diff --git a/OI/DocumentoDetalle.aspx.cs b/OI/DocumentoDetalle.aspx.cs index a2119cdbb..c832920f0 100644 --- a/OI/DocumentoDetalle.aspx.cs +++ b/OI/DocumentoDetalle.aspx.cs @@ -11,6 +11,7 @@ using System.Text; public partial class OI_DocumentoDetalle : ClsPaginas { + #region "PROPIEDADES" private int CveUsuarioResponsable { get @@ -96,6 +97,8 @@ public partial class OI_DocumentoDetalle : ClsPaginas Cargar(); } } + #endregion + #region "CARGAS" private void CargarCveDocumento() { @@ -107,6 +110,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas else { this.CveDocumento = -1; + this.CveUsuarioResponsable = -1; } } @@ -124,6 +128,9 @@ public partial class OI_DocumentoDetalle : ClsPaginas case "Publicado": Alert("Documento publicado"); break; + case "Rechazado": + Alert("Documento rechazado"); + break; } } @@ -157,8 +164,11 @@ public partial class OI_DocumentoDetalle : ClsPaginas foreach (GridViewRow Usuario in UsuariosEnGrid) { int CveUsuario = Usuario.DataKey("CveUsuario").ToEntero(); - string FechaAprobacion = Usuarios.FiltroPrimeroValor("FechaAprobacion", string.Format("CveUsuario = {0}", CveUsuario)); + string Filtro = string.Format("CveUsuario = {0}", CveUsuario); + string FechaAprobacion = Usuarios.FiltroPrimeroValor("FechaAprobacion", Filtro); Usuario.FCCheckBox("ChkAprobar").Checked = FechaAprobacion != "" || (UsuarioActual.CveUsuario == CveUsuarioResponsable && CveUsuario == UsuarioActual.CveUsuario); + string Adjunto = Usuarios.FiltroPrimeroValor("Adjunto", Filtro); + Usuario.FCLinkButton("LkbDescargarPropuesta").Visible = Adjunto != ""; } } } @@ -207,7 +217,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas DdlCategoria.SelectedValue = Documento["CveCategoria"].ToString(); CargarSubCategoria(); DdlSubCategoria.SelectedValue = Documento["CveSubCategoria"].ToString(); - DdlEstatus.SelectedValue = Documento["CveEstatus"].ToString(); + LblEstatus.Text =$"Estatus: {Documento["Estatus"].ToString()}"; TxtVersion.Text = Documento["Version"].ToString(); TxtResponsable.Text = Documento["Responsable"].ToString(); TxtObs.InnerText = Documento["Observacion"].ToString(); @@ -246,7 +256,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas { LkbGuardar.Visible = false; LkbActualizar.Visible = true; - LkbPublicar.Visible = true; + LkbPublicar.Visible = VerificarAprobaciónParticipantes() && UsuarioActual.CveUsuario == CveUsuarioResponsable; GvUsuarios.Columns[1].Visible = false; GvUsuarios.Columns[2].Visible = true; GvUsuarios.Columns[3].Visible = true; @@ -273,7 +283,6 @@ public partial class OI_DocumentoDetalle : ClsPaginas { TxtDescripcion.Enabled = false; DdlSubCategoria.Enabled = false; - DdlEstatus.Enabled = false; TxtVersion.Enabled = false; TxtResponsable.Enabled = false; TxtObs.Disabled = true; @@ -284,8 +293,11 @@ public partial class OI_DocumentoDetalle : ClsPaginas private void ConfigurarSegunEstatus() { - bool MostrarSegunAprobado = (DdlEstatus.SelectedValue == "2"); - DivBotonesAcciones.Visible = !MostrarSegunAprobado; + bool MostrarSegunAprobado = (LblEstatus.Text == "Estatus: Aprobado"); + bool MostrarSegunRechazado = (LblEstatus.Text == "Estatus: Rechazado"); + bool MostrarSegunEnProceso = (LblEstatus.Text == "Estatus: En Proceso"); + LkbActualizar.Visible = !(MostrarSegunRechazado) && (UsuarioActual.CveUsuario == this.CveUsuarioResponsable); + DivBotonesAcciones.Visible = !(MostrarSegunAprobado || MostrarSegunRechazado); UpAgregar.Visible = MostrarSegunAprobado; } @@ -310,12 +322,9 @@ public partial class OI_DocumentoDetalle : ClsPaginas } } - private void EstatusMostrar(bool Mostrar) + private void MostrarBotonRechazar() { - DivEstatus.Visible = Mostrar; - brEstatus.Visible = Mostrar; - DivEstatusInicial.Visible = !Mostrar; - brEstatusInicial.Visible = !Mostrar; + LkbRechazar.Visible = (LblEstatus.Text == "Estatus: En Proceso" && this.CveUsuarioResponsable == UsuarioActual.CveUsuario); } private void Cargar() @@ -326,7 +335,6 @@ public partial class OI_DocumentoDetalle : ClsPaginas CargarUsuarios(); if (this.CveDocumento > 0) { - EstatusMostrar(true); if (CargarDocumentoYaExistente()) { CargarUsuariosParticipantes(); @@ -335,6 +343,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas ConfigurarGridUsuariosParticipantes(); ConfigurarCamposDetalleSegunUsuario(); CargarMensajeNuevoEditado(); + MostrarBotonRechazar(); } } ConfigurarSegunEstatus(); @@ -344,39 +353,45 @@ public partial class OI_DocumentoDetalle : ClsPaginas #region "GENERAR DOCUMENTO" protected void LblGuardar_Click(object sender, EventArgs e) { - ClsOIEventos ObjOI = new ClsOIEventos(); - ObjOI.IniciaTransacSQL(); - bool TieneError = false; - - //Esta variable es requerida más adelante - int CveDocumento = 0; - string RutaArchivo = "-1"; - string CorreosNotificacion = ""; - byte[] ArchivoNotifiacion = null; - - CveDocumento = GuardarDocumento(ref ObjOI, ref TieneError);//Se crea el Documento - if (!TieneError) { RutaArchivo = AsignarArchivoAlDocumento(CveDocumento, ref ObjOI, ref TieneError); }//Se guarda el archivo fisico y se asigna al Documento generado - if (!TieneError) { CorreosNotificacion = GuardarUsuariosQueAutorizan(CveDocumento, RutaArchivo, ref ObjOI, ref TieneError); }//asignamos a los usuarios que participaran en aprovar este documento - if (!TieneError) + if(TxtDocumentoFile.Text != "[]") { - ArchivoNotifiacion = GenerarArchivoByte(CveDocumento, RutaArchivo); - NotificarPorCorreo(CorreosNotificacion, RutaArchivo, ArchivoNotifiacion); - } + ClsOIEventos ObjOI = new ClsOIEventos(); + ObjOI.IniciaTransacSQL(); + bool TieneError = false; - //Gestión de errores y resultados - if (!TieneError) + //Esta variable es requerida más adelante + int CveDocumento = 0; + string RutaArchivo = "-1"; + string CorreosNotificacion = ""; + byte[] ArchivoNotifiacion = null; + + CveDocumento = GuardarDocumento(ref ObjOI, ref TieneError);//Se crea el Documento + if (!TieneError) { RutaArchivo = AsignarArchivoAlDocumento(CveDocumento, ref ObjOI, ref TieneError); }//Se guarda el archivo fisico y se asigna al Documento generado + if (!TieneError) { CorreosNotificacion = GuardarUsuariosQueAutorizan(CveDocumento, RutaArchivo, ref ObjOI, ref TieneError); }//asignamos a los usuarios que participaran en aprovar este documento + if (!TieneError) + { + ArchivoNotifiacion = GenerarArchivoByte(CveDocumento, RutaArchivo); + NotificarPorCorreo(CorreosNotificacion, RutaArchivo, ArchivoNotifiacion, CveDocumento); + } + + //Gestión de errores y resultados + if (!TieneError) + { + ObjOI.Commit(); + string ParamMensaje = LkbGuardar.Text == "Guardar" ? "Nuevo" : "NuevaVersion";//Esto indica la acción de usuario la cual se mostrará como alert al cargar la página + Response.Redirect(string.Format("/OI/DocumentoDetalle.aspx?CveDocumento={0}&Mensaje={1}", CveDocumento, ParamMensaje)); + } + else + { + ObjOI.RollBack(); + Alert(this.ErrorMensaje, ModExtensiones.TipoMensaje.MsgError); + UpCliente.Update(); + } + ObjOI.Dispose(); + }else { - ObjOI.Commit(); - string ParamMensaje = LkbGuardar.Text == "Guardar" ? "Nuevo" : "NuevaVersion";//Esto indica la acción de usuario la cual se mostrará como alert al cargar la página - Response.Redirect(string.Format("/OI/DocumentoDetalle.aspx?CveDocumento={0}&Mensaje={1}", CveDocumento, ParamMensaje)); + Alert("Es necesario cargar un Documento",ModExtensiones.TipoMensaje.MsgAdvertencia); } - else - { - ObjOI.RollBack(); - Alert(this.ErrorMensaje, ModExtensiones.TipoMensaje.MsgError); - UpCliente.Update(); - } - ObjOI.Dispose(); } private int GuardarDocumento(ref ClsOIEventos ObjOI, ref bool TieneError) @@ -444,6 +459,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas { string Archivo = ActualizarArchivoEnDirectorio(); ActualizarDocumentoYaExistente(Archivo); + TxtDocumentoFile.Text = ""; Cargar(); UpCliente.Update(); Alert("Documento actualizado"); @@ -468,8 +484,8 @@ public partial class OI_DocumentoDetalle : ClsPaginas private void ActualizarDocumentoYaExistente(string ArchivoFisico) { ClsOIEventos ObjOI = new ClsOIEventos(); - if (!ObjOI.UpdateDocumento(this.CveDocumento, DdlSubCategoria.SelectedValue.ToEntero(), TxtDescripcion.Text, TxtObs.InnerText, TxtVersion.Text, DdlEstatus.SelectedValue.ToEntero(), - ArchivoFisico, UsuarioActual.Nombre, ModExtensiones.MinFecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) + if (!ObjOI.UpdateDocumento(this.CveDocumento, DdlSubCategoria.SelectedValue.ToEntero(), TxtDescripcion.Text, TxtObs.InnerText, TxtVersion.Text, 1, ArchivoFisico, + UsuarioActual.Nombre, ModExtensiones.MinFecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) { Alert("Error al actualizar", ModExtensiones.TipoMensaje.MsgError); } @@ -554,9 +570,21 @@ public partial class OI_DocumentoDetalle : ClsPaginas #endregion #region "NOTIFICACIONES CORREO" - private void NotificarPorCorreo(string Para, string NombreArchivo, byte[] Adjunto) + private string GenerarCuerpoCorreo(int CveDocumento) { - string Descripcion = TxtDescripcion.Text; + string URL = string.Format("{0}/OI/DocumentoDetalle.aspx?CveDocumento={1}", HttpContext.Current.Request.Url.Host,CveDocumento); + StringBuilder body = new StringBuilder(); + body.Append("Ha sido invitado a revisar la generación de un documento
    "); + body.Append($"Documento: {TxtDescripcion.Text},
    "); + body.Append($"Categoria: {DdlCategoria.SelectedItem.Text},
    "); + body.Append($"Subcategoria: {DdlSubCategoria.SelectedItem.Text},
    "); + body.Append($"Detalles del Documento"); + return body.ToString(); + } + + private void NotificarPorCorreo(string Para, string NombreArchivo, byte[] Adjunto, int CveDocumento) + { + string Descripcion = GenerarCuerpoCorreo(CveDocumento); string Asunto = "Se le ha agregado como participante en el desarrollo de un Documento"; string a = string.Format("{0} -- {1} --- {2}", Descripcion, Para, ""); a.GuardaLog(); @@ -658,7 +686,16 @@ public partial class OI_DocumentoDetalle : ClsPaginas { string Archivo = SubirPropuestaEnDirectorio(this.CveUsuarioSeleccionado); - ActualizarUsuario(this.CveAsignacion, Archivo); + bool UsuarioActualizado = ActualizarUsuario(this.CveAsignacion, Archivo); + if (UsuarioActualizado) + { + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarPropuesta")); + Alert("La propuesta se realizó correctamente"); + CargarUsuariosParticipantes(); + CargarUsuariosAutorizo(); + ConfigurarGridUsuariosParticipantes(); + UpDatosUsuarios.Update(); + } } private string SubirPropuestaEnDirectorio(int CveUsuario) @@ -671,6 +708,12 @@ public partial class OI_DocumentoDetalle : ClsPaginas { try { + string AdjuntoYaCargado = GetUsuarioParticipante(CveUsuario)["Adjunto"] == null ? "": GetUsuarioParticipante(CveUsuario)["Adjunto"].ToString(); + string RutaBuscar = string.Format(@"{0}DocumentosRepo\{1}\{2}", UsuarioActual.Empresa.Ruta, this.CveDocumento, AdjuntoYaCargado); + if (File.Exists(RutaBuscar)) + { + File.Delete(RutaBuscar); + } string NombreArchivo = fileItem.filenameO; fileNameReturn = string.Format("{0}_{1}", CveUsuario, NombreArchivo); string RutaDestino = string.Format(@"{0}DocumentosRepo\{1}\{2}_{3}", UsuarioActual.Empresa.Ruta, this.CveDocumento, CveUsuario, NombreArchivo); @@ -685,14 +728,16 @@ public partial class OI_DocumentoDetalle : ClsPaginas return fileNameReturn; } - private void ActualizarUsuario(int CveAutorizacion, string Archivo) + private bool ActualizarUsuario(int CveAutorizacion, string Archivo) { ClsOIEventos ObjOI = new ClsOIEventos(); if (!ObjOI.UpdateDocumentoAutorizacion(CveAutorizacion, this.CveDocumento, TxtComentarios.InnerText, Archivo, ModExtensiones.MinFecha)) { Alert("Error al actualizar el archivo subido propuesto por el usuario"); + return false; } ObjOI.Dispose(); + return true; } #endregion @@ -705,6 +750,10 @@ public partial class OI_DocumentoDetalle : ClsPaginas DataRow Usuario = GetUsuarioParticipante(CveUsuario); AprobacionDeUsuario(Usuario, SelectedCheckBox.Checked); + + LkbPublicar.Visible = VerificarAprobaciónParticipantes() && UsuarioActual.CveUsuario == CveUsuarioResponsable; + UpCliente.Update(); + } private void AprobacionDeUsuario(DataRow Usuario, bool Autorizar) @@ -728,7 +777,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas ObjOI.Dispose(); } - protected void LkbPublicar_Click(object sender, EventArgs e) + private bool VerificarAprobaciónParticipantes() { GridViewRowCollection Usuarios = GvUsuarios.Rows; bool Aprobado = true; @@ -740,6 +789,12 @@ public partial class OI_DocumentoDetalle : ClsPaginas break; } } + return Aprobado; + } + + protected void LkbPublicar_Click(object sender, EventArgs e) + { + bool Aprobado = VerificarAprobaciónParticipantes(); if (Aprobado) { @@ -771,8 +826,21 @@ public partial class OI_DocumentoDetalle : ClsPaginas GvUsuarios.Columns[1].Visible = true; GvUsuarios.Columns[2].Visible = false; GvUsuarios.Columns[3].Visible = false; - EstatusMostrar(false); UpCliente.Update(); } #endregion + + #region "Rechazar" + protected void LkbRechazar_Click(object sender, EventArgs e) + { + ClsOIEventos ObjOI = new ClsOIEventos(); + if (ObjOI.UpdateDocumento(this.CveDocumento, DdlSubCategoria.SelectedValue.ToEntero(), TxtDescripcion.Text, TxtObs.InnerText, TxtVersion.Text, 3, "-1", TxtResponsable.Text, + DateTime.Now, -1, -1, UsuarioActual.CveEmpresa)) + { + Alert("Documento cancelado"); + } + ObjOI.Dispose(); + Response.Redirect(string.Format("/OI/DocumentoDetalle.aspx?CveDocumento={0}&Mensaje={1}", this.CveDocumento, "Rechazado")); + } + #endregion } \ No newline at end of file diff --git a/OI/Documentos.aspx b/OI/Documentos.aspx index 5e37a8679..2e54f8905 100644 --- a/OI/Documentos.aspx +++ b/OI/Documentos.aspx @@ -14,13 +14,13 @@
  • - +
  • - Imprimir PDF + PDF
  • - Imprimir Excel + Excel
  • @@ -32,13 +32,14 @@ EmptyDataText="No se encontraron Documentos Registrados" ToolTip="Listado de Documentos" CssClass="table table-striped table-advance table-hover" Style="margin-top: -10px; text-align: center; width: 100%" GridLines="None" OnRowDataBound="GvDatos_RowDataBound"> - + - - - + + + - + +