continuación de documentos
This commit is contained in:
@@ -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 <br /> ");
|
||||
body.Append($"Documento: {TxtDescripcion.Text},<br/> ");
|
||||
body.Append($"Categoria: {DdlCategoria.SelectedItem.Text},<br/> ");
|
||||
body.Append($"Subcategoria: {DdlSubCategoria.SelectedItem.Text},<br/> ");
|
||||
body.Append($"<a href={URL}>Detalles del Documento</a>");
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user