notificacón por correo agregada

This commit is contained in:
Antonio Gonzalez
2020-07-22 19:47:27 -07:00
parent 6c5f918352
commit 4c74ec5d46
5 changed files with 103 additions and 24 deletions

View File

@@ -7,6 +7,7 @@ using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using System.IO;
using System.Text;
public partial class OI_DocumentoDetalle : ClsPaginas
{
@@ -155,7 +156,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas
#endregion
#region "GENERAR DOCUMENTO"
protected void LblGuardar_Click(object sender, EventArgs e)
{
@@ -166,19 +167,24 @@ public partial class OI_DocumentoDetalle : ClsPaginas
//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) { GuardarUsuariosQueAutorizan(CveDocumento, RutaArchivo, ref ObjOI, ref TieneError); }//asignamos a los usuarios que participaran en aprovar este documento
if (!TieneError) { CorreosNotificacion = GuardarUsuariosQueAutorizan(CveDocumento, RutaArchivo, ref ObjOI, ref TieneError); }//asignamos a los usuarios que participaran en aprovar este documento
if (!TieneError)
{
ArchivoNotifiacion = GenerarArchivoByte(RutaArchivo);
NotificarPorCorreo(CorreosNotificacion, RutaArchivo, ArchivoNotifiacion);
}
//Gestión de errores y resultados
if (!TieneError)
{
ObjOI.Commit();
Alert("Documento guardado correctamente");
//this.CveDocumento = CveDocumento;
Response.Redirect(string.Format("/OI/DocumentoDetalle.aspx?CveDocumento={0}",CveDocumento));
Response.Redirect(string.Format("/OI/DocumentoDetalle.aspx?CveDocumento={0}", CveDocumento));
}
else
{
@@ -215,7 +221,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas
this.ErrorMensaje = "Hubo un error al asignar el archivo";
}
}
else if(RutaArchivo == "Error")
else if (RutaArchivo == "Error")
{
TieneError = true;
this.ErrorMensaje = "Hubo un error al guardar el archivo";
@@ -223,8 +229,9 @@ public partial class OI_DocumentoDetalle : ClsPaginas
return RutaArchivo;
}
private void GuardarUsuariosQueAutorizan(int CveDocumento, string RutaArchivo, ref ClsOIEventos ObjOI, ref bool TieneError)
private string GuardarUsuariosQueAutorizan(int CveDocumento, string RutaArchivo, ref ClsOIEventos ObjOI, ref bool TieneError)
{
StringBuilder CorreosReturn = new StringBuilder("");
GridViewRowCollection GridUsuarios = GvUsuarios.Rows;
foreach (GridViewRow GvRow in GridUsuarios)
{
@@ -237,12 +244,19 @@ public partial class OI_DocumentoDetalle : ClsPaginas
this.ErrorMensaje = "Hubo un error al asignar los usuarios a este documento";
break;
}
else
{
CorreosReturn.AppendFormat("{0},", GvRow.DataKey("Correo"));
}
}
}
return CorreosReturn.ToString();
}
#endregion
#region "ARCHIVO ADJUNTO"
private string GuardarArchivo(int CveDocumento)
{
string RutaArchivo = "-1";
@@ -278,9 +292,7 @@ public partial class OI_DocumentoDetalle : ClsPaginas
return RutaArchivo;
}
protected void LkbDescargarArchivo_Click(object sender,EventArgs e)
protected void LkbDescargarArchivo_Click(object sender, EventArgs e)
{
string Ruta = string.Format("{0}Empresas/{1}/DocumentosRepo/{2}", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa, ArchivoAdjuntoNombre);
byte[] archivoBytes = File.ReadAllBytes(Ruta);
@@ -295,5 +307,57 @@ public partial class OI_DocumentoDetalle : ClsPaginas
}
#endregion
#region "NOTIFICACIONES CORREO"
private void NotificarPorCorreo(string Para, string NombreArchivo, byte[] Adjunto)
{
string Descripcion = TxtDescripcion.Text;
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();
ClsSisMail Mail = new ClsSisMail();
if (Adjunto != null)
{
List<ClsSisMail.ArchivoMail> LSRutasMail = new List<ClsSisMail.ArchivoMail>();
ClsSisMail.ArchivoMail itemMail = new ClsSisMail.ArchivoMail();
{
var withBlock = itemMail;
itemMail.ArchivoBinario = Adjunto;
itemMail.NombreArchivo = NombreArchivo;
}
LSRutasMail.Add(itemMail);
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Descripcion, "", LSRutasMail);
Mail = null/* TODO Change to default(_) if this is not a reference type */;
}
else
{
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Descripcion, "");
Mail = null/* TODO Change to default(_) if this is not a reference type */;
}
}
private byte[] GenerarArchivoByte(string NombreArchivo)
{
string ArchivoEnviar = string.Format(@"{0}DocumentosRepo\{1}", UsuarioActual.Empresa.Ruta, NombreArchivo);
if (File.Exists(ArchivoEnviar))
{
System.IO.FileStream fs = System.IO.File.Open(ArchivoEnviar, System.IO.FileMode.Open, System.IO.FileAccess.Read);
byte[] buff = new byte[fs.Length + 1];
if (fs.Length > 0)
{
fs.Read(buff, 0, (fs.Length.ToString().ToEntero() - 1));
fs.Close();
}
return buff;
}
return new byte[] { };
}
#endregion
}