Exferia/Exferia_KairosPro/Exferia_KairosPRO/General/Verificacion_Fichajes_Email.cs

568 lines
33 KiB
C#

using Exferia_Aplicacion.General;
using Exferia_Aplicacion.Modelos_Generales;
using Exferia_Aplicacion.Modelos_Informes;
using Exferia_KairosPRO._2_Datos;
using Exferia_KairosPRO_EF;
using Microsoft.Reporting.WinForms;
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Linq;
namespace Exferia_KairosPRO.General
{
public class Verificacion_Fichajes_Email
{
public static bool Enviar_FichajeIncidencia_Jornada(long _lng_codigoCliente,
INTERNO_KairosPRO_FichajeIncidencias_Modelo _mdl_INTERNO_KairosPRO_FichajeIncidencias_Modelo,
List<INTERNO_KairosPRO_FichajeIncidencias_Jornada_Modelo> _lst_INTERNO_KairosPRO_FichajeIncidencias_Jornada_Modelo,
KRS_Empleados _mdl_KRS_Empleados)
{
bool bol_TodoCorrecto = false;
ReportViewer obj_ReportViewer = null;
try
{
//Clases de Negocio necesarias
KRS_ValoresGenerales_Datos obj_KRS_ValoresGenerales_Datos = new KRS_ValoresGenerales_Datos();
KRS_Emails_Datos obj_KRS_Emails_Datos = new KRS_Emails_Datos();
KRS_ValoresGenerales mdl_KRS_ValoresGenerales = obj_KRS_ValoresGenerales_Datos.Obtener_PorCliente(_lng_codigoCliente);
KRS_ConfiguracionesEmails mdl_KRS_ConfiguracionesEmails = null;
if (mdl_KRS_ValoresGenerales != null && mdl_KRS_ValoresGenerales.KRS_ConfiguracionesEmails != null)
{
mdl_KRS_ConfiguracionesEmails = mdl_KRS_ValoresGenerales.KRS_ConfiguracionesEmails;
}
if (mdl_KRS_ConfiguracionesEmails == null)
{
Control_Errores.Errores_Log("No encontro Configuracion para Emails, codigoCliente:" + _lng_codigoCliente, null, nameof(Verificacion_Fichajes_Email) + "/" + nameof(Enviar_FichajeIncidencia_Jornada));
}
else
{
//Obtener los Emails
List<string> lst_KRS_Emails = Obtener_Listado_ParaVerificacionFichajes(_lng_codigoCliente, Variables.G_MDL_INFORMES_KAIROSPRO_INCIDENCIASFICHAJES.Id, _mdl_KRS_Empleados);
if (lst_KRS_Emails != null && lst_KRS_Emails.Count > 0)
{
//Listado para guardar los emails
List<INTERNO_Email_Modelo> lst_INTERNO_Email_Modelo = new List<INTERNO_Email_Modelo>();
//Rellenar el modelo de emails
foreach (string str_Emails in lst_KRS_Emails)
{
INTERNO_Email_Modelo mdl_INTERNO_Email_Modelo = new INTERNO_Email_Modelo();
mdl_INTERNO_Email_Modelo.Email = str_Emails;
mdl_INTERNO_Email_Modelo.Oculto = false;
mdl_INTERNO_Email_Modelo.Copia = false;
lst_INTERNO_Email_Modelo.Add(mdl_INTERNO_Email_Modelo);
}
string str_AsuntoEmail = "Incidencia Fichaje día " + _mdl_INTERNO_KairosPRO_FichajeIncidencias_Modelo.Jornada_Dia.ToString("dd/MM/yyyy") + " " + _mdl_INTERNO_KairosPRO_FichajeIncidencias_Modelo.Empleado_Nombre;
//Cargamos el ensamblado #########################################################################################################################################################################
Assembly m_assembly_1 = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + Variables.G_STR_LIBRERIA_KAIROSPROINFORMES + ".dll");
//Obtenemos el tipo de la clase
Type m_type_1 = m_assembly_1.GetType("" + Variables.G_STR_LIBRERIA_KAIROSPROINFORMES + "." + Variables.G_STR_LIBRERIA_DATOSKAIROSPROINFORMES);
//creamos la instancia
var obj_Clase_1 = Activator.CreateInstance(m_type_1);
//Cargamos el metodo solicitado
MethodInfo obj_MethodInfo_1 = obj_Clase_1.GetType().GetMethod(Variables.G_STR_LIBRERIA_DATOSKAIROSPROINFORMES_PROCEDIMIENTO_CREARINFORMESFICHAJEINCIDENCIAS, BindingFlags.Instance | BindingFlags.NonPublic);
//Obtener valores
object[] arr_Parametros_1 = { _mdl_INTERNO_KairosPRO_FichajeIncidencias_Modelo, _lst_INTERNO_KairosPRO_FichajeIncidencias_Jornada_Modelo };
//Pasamos los parametros al metodo y lo ejecutamos
obj_ReportViewer = (ReportViewer)obj_MethodInfo_1.Invoke(obj_Clase_1, arr_Parametros_1);
//##################################################################################################################################################################################################
if (obj_ReportViewer != null)
{
//Transformar ReportViewer a byte[]
// Variables
Warning[] arr_Advertenias;
string[] arr_streamIds;
string str_mimeType = string.Empty;
string str_encoding = string.Empty;
string str_extension = string.Empty;
//ReportViever
byte[] bytes = obj_ReportViewer.LocalReport.Render("PDF", null, out str_mimeType, out str_encoding, out str_extension, out arr_streamIds, out arr_Advertenias);
INTERNO_EnvioEmail_Modelo mdl_INTERNO_EnvioEmail_Modelo = new INTERNO_EnvioEmail_Modelo();
mdl_INTERNO_EnvioEmail_Modelo.email = mdl_KRS_ConfiguracionesEmails.email;
mdl_INTERNO_EnvioEmail_Modelo.nombreAMostrar = mdl_KRS_ConfiguracionesEmails.nombreAMostrar != null ? mdl_KRS_ConfiguracionesEmails.nombreAMostrar : "";
mdl_INTERNO_EnvioEmail_Modelo.asunto = str_AsuntoEmail;
mdl_INTERNO_EnvioEmail_Modelo.cuerpo = "";
mdl_INTERNO_EnvioEmail_Modelo.smtp_Servidor = mdl_KRS_ConfiguracionesEmails.smtp_Servidor;
mdl_INTERNO_EnvioEmail_Modelo.smtp_Puerto = mdl_KRS_ConfiguracionesEmails.smtp_Puerto;
mdl_INTERNO_EnvioEmail_Modelo.smtp_Usuario = mdl_KRS_ConfiguracionesEmails.smtp_Usuario;
mdl_INTERNO_EnvioEmail_Modelo.smtp_Clave = mdl_KRS_ConfiguracionesEmails.smtp_Clave;
mdl_INTERNO_EnvioEmail_Modelo.smtp_ConexionSSL = mdl_KRS_ConfiguracionesEmails.smtp_ConexionSSL;
mdl_INTERNO_EnvioEmail_Modelo.emails_destino = lst_INTERNO_Email_Modelo;
//Ficheros
mdl_INTERNO_EnvioEmail_Modelo.ficheros = new List<INTERNO_EnvioEmail_Ficheros_Modelo>();
INTERNO_EnvioEmail_Ficheros_Modelo mdl_INTERNO_EnvioEmail_Ficheros_Modelo = new INTERNO_EnvioEmail_Ficheros_Modelo();
mdl_INTERNO_EnvioEmail_Ficheros_Modelo.fichero_PDF = bytes;
mdl_INTERNO_EnvioEmail_Ficheros_Modelo.nombreFichero_A_Enviar = "Incidencias Fichaje.pdf";
mdl_INTERNO_EnvioEmail_Modelo.ficheros.Add(mdl_INTERNO_EnvioEmail_Ficheros_Modelo);
INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
mdl_ValorDevuelto_Modelo.TodoCorrecto = true;
mdl_ValorDevuelto_Modelo = Funciones.Email_Enviar(mdl_INTERNO_EnvioEmail_Modelo);
bol_TodoCorrecto = mdl_ValorDevuelto_Modelo.TodoCorrecto;
}
}
else
{
//Se borrar el registro como que fue enviado, porque significa que no tiene email selecionados, por lo tanto no quieren que se envie
bol_TodoCorrecto = true;
}
}
}
catch (Control_Errores)
{ }
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(Verificacion_Fichajes_Email) + "/" + nameof(Enviar_FichajeIncidencia_Jornada));
}
finally
{
if (obj_ReportViewer != null)
{
obj_ReportViewer.Dispose();
}
}
return bol_TodoCorrecto;
}
public static bool Enviar_DetalleFichaje(long _lng_codigoCliente,
List<INTERNO_KairosPRO_Detalle_Fichaje_Modelo> _lst_INTERNO_KairosPRO_Detalle_Fichaje_Modelo,
DateTime _dtt_Desde,
DateTime _dtt_Hasta)
{
bool bol_TodoCorrecto = false;
ReportViewer obj_ReportViewer = null;
try
{
//Clases de Negocio necesarias
KRS_ValoresGenerales_Datos obj_KRS_ValoresGenerales_Datos = new KRS_ValoresGenerales_Datos();
KRS_Emails_Datos obj_KRS_Emails_Datos = new KRS_Emails_Datos();
KRS_ValoresGenerales mdl_KRS_ValoresGenerales = obj_KRS_ValoresGenerales_Datos.Obtener_PorCliente(_lng_codigoCliente);
KRS_ConfiguracionesEmails mdl_KRS_ConfiguracionesEmails = null;
if (mdl_KRS_ValoresGenerales != null && mdl_KRS_ValoresGenerales.KRS_ConfiguracionesEmails != null)
{
mdl_KRS_ConfiguracionesEmails = mdl_KRS_ValoresGenerales.KRS_ConfiguracionesEmails;
}
if (mdl_KRS_ConfiguracionesEmails == null)
{
Control_Errores.Errores_Log("No encontro Configuracion para Emails, codigoCliente:" + _lng_codigoCliente, null, nameof(Verificacion_Fichajes_Email) + "/" + nameof(Enviar_FichajeIncidencia_Jornada));
}
else
{
//Obtener los Emails
List<string> lst_KRS_Emails = Obtener_Listado_ParaVerificacionFichajes(_lng_codigoCliente, Variables.G_MDL_INFORMES_KAIROSPRO_INCIDENCIASFICHAJES.Id, null);
if (lst_KRS_Emails!=null && lst_KRS_Emails.Count>0)
{
//Listado para guardar los emails
List<INTERNO_Email_Modelo> lst_INTERNO_Email_Modelo = new List<INTERNO_Email_Modelo>();
//Rellenar el modelo de emails
foreach (string str_Emails in lst_KRS_Emails)
{
INTERNO_Email_Modelo mdl_INTERNO_Email_Modelo = new INTERNO_Email_Modelo();
mdl_INTERNO_Email_Modelo.Email = str_Emails;
mdl_INTERNO_Email_Modelo.Oculto = false;
mdl_INTERNO_Email_Modelo.Copia = false;
lst_INTERNO_Email_Modelo.Add(mdl_INTERNO_Email_Modelo);
}
string str_AsuntoEmail = "Detalle Fichaje";
//Cargamos el ensamblado #########################################################################################################################################################################
Assembly m_assembly_1 = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + Variables.G_STR_LIBRERIA_KAIROSPROINFORMES + ".dll");
//Obtenemos el tipo de la clase
Type m_type_1 = m_assembly_1.GetType("" + Variables.G_STR_LIBRERIA_KAIROSPROINFORMES + "." + Variables.G_STR_LIBRERIA_DATOSKAIROSPROINFORMES);
//creamos la instancia
var obj_Clase_1 = Activator.CreateInstance(m_type_1);
//Cargamos el metodo solicitado
MethodInfo obj_MethodInfo_1 = obj_Clase_1.GetType().GetMethod(Variables.G_STR_LIBRERIA_DATOSKAIROSPROINFORMES_PROCEDIMIENTO_CREARINFORMESDETALLEFICHAJEPORFECHAS, BindingFlags.Instance | BindingFlags.NonPublic);
//Obtener valores
object[] arr_Parametros_1 = { _lst_INTERNO_KairosPRO_Detalle_Fichaje_Modelo, _dtt_Desde, _dtt_Hasta };
//Pasamos los parametros al metodo y lo ejecutamos
obj_ReportViewer = (ReportViewer)obj_MethodInfo_1.Invoke(obj_Clase_1, arr_Parametros_1);
//##################################################################################################################################################################################################
if (obj_ReportViewer != null)
{
//Transformar ReportViewer a byte[]
// Variables
Warning[] arr_Advertencias;
string[] arr_streamIds;
string str_mimeType = string.Empty;
string str_encoding = string.Empty;
string str_extension = string.Empty;
//ReportViever
byte[] bytes = obj_ReportViewer.LocalReport.Render("PDF", null, out str_mimeType, out str_encoding, out str_extension, out arr_streamIds, out arr_Advertencias);
INTERNO_EnvioEmail_Modelo mdl_INTERNO_EnvioEmail_Modelo = new INTERNO_EnvioEmail_Modelo();
mdl_INTERNO_EnvioEmail_Modelo.email = mdl_KRS_ConfiguracionesEmails.email;
mdl_INTERNO_EnvioEmail_Modelo.nombreAMostrar = mdl_KRS_ConfiguracionesEmails.nombreAMostrar != null ? mdl_KRS_ConfiguracionesEmails.nombreAMostrar : "";
mdl_INTERNO_EnvioEmail_Modelo.asunto = str_AsuntoEmail;
mdl_INTERNO_EnvioEmail_Modelo.cuerpo = "";
mdl_INTERNO_EnvioEmail_Modelo.smtp_Servidor = mdl_KRS_ConfiguracionesEmails.smtp_Servidor;
mdl_INTERNO_EnvioEmail_Modelo.smtp_Puerto = mdl_KRS_ConfiguracionesEmails.smtp_Puerto;
mdl_INTERNO_EnvioEmail_Modelo.smtp_Usuario = mdl_KRS_ConfiguracionesEmails.smtp_Usuario;
mdl_INTERNO_EnvioEmail_Modelo.smtp_Clave = mdl_KRS_ConfiguracionesEmails.smtp_Clave;
mdl_INTERNO_EnvioEmail_Modelo.smtp_ConexionSSL = mdl_KRS_ConfiguracionesEmails.smtp_ConexionSSL;
mdl_INTERNO_EnvioEmail_Modelo.emails_destino = lst_INTERNO_Email_Modelo;
//Ficheros
mdl_INTERNO_EnvioEmail_Modelo.ficheros = new List<INTERNO_EnvioEmail_Ficheros_Modelo>();
INTERNO_EnvioEmail_Ficheros_Modelo mdl_INTERNO_EnvioEmail_Ficheros_Modelo = new INTERNO_EnvioEmail_Ficheros_Modelo();
mdl_INTERNO_EnvioEmail_Ficheros_Modelo.fichero_PDF = bytes;
mdl_INTERNO_EnvioEmail_Ficheros_Modelo.nombreFichero_A_Enviar = "Detalle_Fichaje.pdf";
mdl_INTERNO_EnvioEmail_Modelo.ficheros.Add(mdl_INTERNO_EnvioEmail_Ficheros_Modelo);
INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
mdl_ValorDevuelto_Modelo.TodoCorrecto = true;
mdl_ValorDevuelto_Modelo = Funciones.Email_Enviar(mdl_INTERNO_EnvioEmail_Modelo);
bol_TodoCorrecto = mdl_ValorDevuelto_Modelo.TodoCorrecto;
}
}
else
{
//Se borrar el registro como que fue enviado, porque significa que no tiene email selecionados, por lo tanto no quieren que se envie
bol_TodoCorrecto = true;
}
}
}
catch (Control_Errores)
{ }
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(Verificacion_Fichajes_Email) + "/" + nameof(Enviar_DetalleFichaje));
}
finally
{
if (obj_ReportViewer != null)
{
obj_ReportViewer.Dispose();
}
}
return bol_TodoCorrecto;
}
public static bool Enviar_Fichaje_TotalDispositivos(long _lng_codigoCliente_Exferia,
List<INTERNO_KairosPRO_Fichaje_PorFechas_TotalDispositivos_Modelo> _lst_KairosPRO_Fichajes_PorFechas_TotalDispositivos,
DateTime _dtt_Desde,
DateTime _dtt_Hasta,
long _lng_CodigoCliente)
{
bool bol_TodoCorrecto = false;
ReportViewer obj_ReportViewer = null;
try
{
//Clases de Negocio necesarias
KRS_ValoresGenerales_Datos obj_KRS_ValoresGenerales_Datos = new KRS_ValoresGenerales_Datos();
KRS_Emails_Datos obj_KRS_Emails_Datos = new KRS_Emails_Datos();
AUX_LCL_Clientes_Datos obj_AUX_LCL_Clientes_Datos = new AUX_LCL_Clientes_Datos();
KRS_ValoresGenerales mdl_KRS_ValoresGenerales = obj_KRS_ValoresGenerales_Datos.Obtener_PorCliente(_lng_codigoCliente_Exferia);
KRS_ConfiguracionesEmails mdl_KRS_ConfiguracionesEmails = null;
if(mdl_KRS_ValoresGenerales != null && mdl_KRS_ValoresGenerales.KRS_ConfiguracionesEmails != null)
{
mdl_KRS_ConfiguracionesEmails = mdl_KRS_ValoresGenerales.KRS_ConfiguracionesEmails;
}
if(mdl_KRS_ConfiguracionesEmails == null)
{
Control_Errores.Errores_Log("No se encontro Configuracion para Emails, codigoCliente:" + _lng_codigoCliente_Exferia, null, nameof(Verificacion_Fichajes_Email) + "/" + nameof(Enviar_Fichaje_TotalDispositivos));
}
else
{
//Obtener el NombreComercial de la Empresa (se obtiene llamando al procedimiento almacenado creado en KairosPRO)
string str_Empresa_NombreComercial = obj_AUX_LCL_Clientes_Datos.Obtener_Empresa_NombreComercial(_lng_CodigoCliente);
//Obtenemos los Emails correspondiente a EXFERIA
List<string> lst_KRS_Emails = Obtener_Listado_ParaVerificacionFichajes(_lng_codigoCliente_Exferia, Variables.G_MDL_INFORMES_KAIROSPRO_FICHAJE_MENSUAL_TOTALDISPOSITIVOS.Id, null);
if (lst_KRS_Emails != null && lst_KRS_Emails.Count > 0)
{
//Listado para guardar los emails
List<INTERNO_Email_Modelo> lst_INTERNO_Email_Modelo = new List<INTERNO_Email_Modelo>();
//Rellenar el modelo de emails
foreach(string str_Emails in lst_KRS_Emails)
{
INTERNO_Email_Modelo mdl_INTERNO_Email_Modelo = new INTERNO_Email_Modelo();
mdl_INTERNO_Email_Modelo.Email = str_Emails;
mdl_INTERNO_Email_Modelo.Oculto = false;
mdl_INTERNO_Email_Modelo.Copia = false;
lst_INTERNO_Email_Modelo.Add(mdl_INTERNO_Email_Modelo);
}
string str_AsuntoEmail = "Total de fichajes por dispositivo mensual Cliente: " + str_Empresa_NombreComercial;
//Cargamos el ensamblado #####################################################################################################################
Assembly m_assembly = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + Variables.G_STR_LIBRERIA_KAIROSPROINFORMES + ".dll");
//Obtenemos el tipo de la clase
Type m_type = m_assembly.GetType("" + Variables.G_STR_LIBRERIA_KAIROSPROINFORMES + "." + Variables.G_STR_LIBRERIA_DATOSKAIROSPROINFORMES);
//Creamos la instancia
var obj_Clase = Activator.CreateInstance(m_type);
//Cargamos el metodo solicitado
MethodInfo obj_MethodInfo = obj_Clase.GetType().GetMethod(Variables.G_STR_LIBRERIA_DATOSKAIROSPROINFORMES_PROCEDIMIENTO_CREARINFORMESFICHAJESPORFECHASTOTALDISPOSITIVOS, BindingFlags.Instance | BindingFlags.NonPublic);
//Obtener valores
object[] arr_Parametros = { _lst_KairosPRO_Fichajes_PorFechas_TotalDispositivos, _dtt_Desde, _dtt_Hasta, _lng_CodigoCliente, str_Empresa_NombreComercial };
//Pasamos los parametros al metodo y lo ejecutamos
obj_ReportViewer = (ReportViewer)obj_MethodInfo.Invoke(obj_Clase, arr_Parametros);
//############################################################################################################################################
if(obj_ReportViewer != null)
{
//Transformar ReportViewer a byte[]
//Variables
Warning[] arr_Advertencias;
string[] arr_streamIds;
string str_mimeType = string.Empty;
string str_Encoding = string.Empty;
string str_Extension = string.Empty;
//ReportViewer
byte[] bytes = obj_ReportViewer.LocalReport.Render("PDF", null, out str_mimeType, out str_Encoding, out str_Extension, out arr_streamIds, out arr_Advertencias);
INTERNO_EnvioEmail_Modelo mdl_INTERNO_EnvioEmail_Modelo = new INTERNO_EnvioEmail_Modelo();
mdl_INTERNO_EnvioEmail_Modelo.nombreAMostrar = mdl_KRS_ConfiguracionesEmails.nombreAMostrar;
mdl_INTERNO_EnvioEmail_Modelo.email = mdl_KRS_ConfiguracionesEmails.email;
mdl_INTERNO_EnvioEmail_Modelo.asunto = str_AsuntoEmail;
mdl_INTERNO_EnvioEmail_Modelo.cuerpo = "";
mdl_INTERNO_EnvioEmail_Modelo.smtp_Servidor = mdl_KRS_ConfiguracionesEmails.smtp_Servidor;
mdl_INTERNO_EnvioEmail_Modelo.smtp_Puerto = mdl_KRS_ConfiguracionesEmails.smtp_Puerto;
mdl_INTERNO_EnvioEmail_Modelo.smtp_Usuario = mdl_KRS_ConfiguracionesEmails.smtp_Usuario;
mdl_INTERNO_EnvioEmail_Modelo.smtp_Clave = mdl_KRS_ConfiguracionesEmails.smtp_Clave;
mdl_INTERNO_EnvioEmail_Modelo.smtp_ConexionSSL = mdl_KRS_ConfiguracionesEmails.smtp_ConexionSSL;
mdl_INTERNO_EnvioEmail_Modelo.emails_destino = lst_INTERNO_Email_Modelo;
//Ficheros
mdl_INTERNO_EnvioEmail_Modelo.ficheros = new List<INTERNO_EnvioEmail_Ficheros_Modelo>();
INTERNO_EnvioEmail_Ficheros_Modelo mdl_INTERNO_EnvioEmail_Ficheros_Modelo = new INTERNO_EnvioEmail_Ficheros_Modelo();
mdl_INTERNO_EnvioEmail_Ficheros_Modelo.fichero_PDF = bytes;
mdl_INTERNO_EnvioEmail_Ficheros_Modelo.nombreFichero_A_Enviar = "TotalFichajes_PorDispositivos_Mensual.pdf";
mdl_INTERNO_EnvioEmail_Modelo.ficheros.Add(mdl_INTERNO_EnvioEmail_Ficheros_Modelo);
INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
mdl_ValorDevuelto_Modelo.TodoCorrecto = true;
mdl_ValorDevuelto_Modelo = Funciones.Email_Enviar(mdl_INTERNO_EnvioEmail_Modelo);
bol_TodoCorrecto = mdl_ValorDevuelto_Modelo.TodoCorrecto;
}
}
else
{
//Se borrar el registro como que fue enviado, porque significa que no tiene email selecionados, por lo tanto no quieren que se envie
bol_TodoCorrecto = true;
}
}
}
catch (Control_Errores)
{ }
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(Verificacion_Fichajes_Email) + "/" + nameof(Enviar_Fichaje_TotalDispositivos));
}
finally
{
if(obj_ReportViewer != null)
{
obj_ReportViewer.Dispose();
}
}
return bol_TodoCorrecto;
}
public static bool Enviar_Fichaje_Recordatorio(long _lng_codigoCliente,
TMP_Emails_RecordatorioFichajes _mdl_TMP_Emails_RecordatorioFichajes,
string _str_Empleado_Email)
{
bool bol_TodoCorrecto = false;
try
{
//Clases de Negocio necesarias
KRS_ValoresGenerales_Datos obj_KRS_ValoresGenerales_Datos = new KRS_ValoresGenerales_Datos();
KRS_ValoresGenerales mdl_KRS_ValoresGenerales = obj_KRS_ValoresGenerales_Datos.Obtener_PorCliente(_lng_codigoCliente);
KRS_ConfiguracionesEmails mdl_KRS_ConfiguracionesEmails = null;
if (mdl_KRS_ValoresGenerales != null && mdl_KRS_ValoresGenerales.KRS_ConfiguracionesEmails != null)
{
mdl_KRS_ConfiguracionesEmails = mdl_KRS_ValoresGenerales.KRS_ConfiguracionesEmails;
}
if (mdl_KRS_ConfiguracionesEmails == null)
{
Control_Errores.Errores_Log("No se encontro Configuracion para Emails, codigoCliente:" + _lng_codigoCliente, null, nameof(Verificacion_Fichajes_Email) + "/" + nameof(Enviar_Fichaje_Recordatorio));
}
else
{
//Si el Empleado posee email
if (_str_Empleado_Email != null && _str_Empleado_Email.Trim().Length > 0)
{
//Listado para guardar los emails
List<INTERNO_Email_Modelo> lst_INTERNO_Email_Modelo = new List<INTERNO_Email_Modelo>();
INTERNO_Email_Modelo mdl_INTERNO_Email_Modelo = new INTERNO_Email_Modelo();
mdl_INTERNO_Email_Modelo.Email = _str_Empleado_Email;
mdl_INTERNO_Email_Modelo.Oculto = false;
mdl_INTERNO_Email_Modelo.Copia = false;
lst_INTERNO_Email_Modelo.Add(mdl_INTERNO_Email_Modelo);
//Asunto del Mensaje
string str_AsuntoEmail = "[Recordatorio] Le recordamos la obligación de fichar.";
//Cuerpo del Mensaje
string str_CuerpoEmail = " Le recordamos la obligación de fichar. " +
Environment.NewLine + Environment.NewLine +
" Mensaje automatizado enviado desde el sistema KairosPro. " +
Environment.NewLine + Environment.NewLine + Environment.NewLine +
" Exferia Soluciones S.L. " +
Environment.NewLine +
" http://www.exferia.es " +
Environment.NewLine +
" comercial@exferia.es " +
Environment.NewLine +
" Tlf: 922084905 ";
INTERNO_EnvioEmail_Modelo mdl_INTERNO_EnvioEmail_Modelo = new INTERNO_EnvioEmail_Modelo();
mdl_INTERNO_EnvioEmail_Modelo.nombreAMostrar = mdl_KRS_ConfiguracionesEmails.nombreAMostrar != null ? mdl_KRS_ConfiguracionesEmails.nombreAMostrar : "";
mdl_INTERNO_EnvioEmail_Modelo.email = mdl_KRS_ConfiguracionesEmails.email;
mdl_INTERNO_EnvioEmail_Modelo.asunto = str_AsuntoEmail;
mdl_INTERNO_EnvioEmail_Modelo.cuerpo = str_CuerpoEmail;
mdl_INTERNO_EnvioEmail_Modelo.smtp_Servidor = mdl_KRS_ConfiguracionesEmails.smtp_Servidor;
mdl_INTERNO_EnvioEmail_Modelo.smtp_Puerto = mdl_KRS_ConfiguracionesEmails.smtp_Puerto;
mdl_INTERNO_EnvioEmail_Modelo.smtp_Usuario = mdl_KRS_ConfiguracionesEmails.smtp_Usuario;
mdl_INTERNO_EnvioEmail_Modelo.smtp_Clave = mdl_KRS_ConfiguracionesEmails.smtp_Clave;
mdl_INTERNO_EnvioEmail_Modelo.smtp_ConexionSSL = mdl_KRS_ConfiguracionesEmails.smtp_ConexionSSL;
mdl_INTERNO_EnvioEmail_Modelo.emails_destino = lst_INTERNO_Email_Modelo;
INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
mdl_ValorDevuelto_Modelo.TodoCorrecto = true;
mdl_ValorDevuelto_Modelo = Funciones.Email_Enviar(mdl_INTERNO_EnvioEmail_Modelo);
bol_TodoCorrecto = mdl_ValorDevuelto_Modelo.TodoCorrecto;
}
}
}
catch (Control_Errores)
{ }
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(Verificacion_Fichajes_Email) + "/" + nameof(Enviar_Fichaje_Recordatorio));
}
return bol_TodoCorrecto;
}
private static List<string> Obtener_Listado_ParaVerificacionFichajes(long _lng_CodigoCliente, long _lng_idInformeTipo, KRS_Empleados _mdl_KRS_Empleados)
{
List<KRS_Emails> lst_Emails_ConEmail;
List<KRS_Emails> lst_Emails_ConParametros;
List<string> lst_Emails = new List<string>();
try
{
KRS_Emails_Datos obj_KRS_Emails_Datos = new KRS_Emails_Datos();
//Listado de Emails, con Emails
lst_Emails_ConEmail = obj_KRS_Emails_Datos.Obtener_ModeloListado_Por_InformeTipo_Email(_lng_CodigoCliente, _lng_idInformeTipo);
//Ahora los recorremos y vamos metiendo los emails en el listado
if (lst_Emails_ConEmail != null && lst_Emails_ConEmail.Count > 0)
{
foreach (KRS_Emails mdl_KRS_Email in lst_Emails_ConEmail)
{
lst_Emails.Add(mdl_KRS_Email.email);
}
}
//Solo Buscaremos los parametros si el empleado no es Nulo
if (_mdl_KRS_Empleados != null)
{
//Listado de Emails, con parametros
lst_Emails_ConParametros = obj_KRS_Emails_Datos.Obtener_ModeloListado_Por_InformeTipo_Parametros(_lng_CodigoCliente, _lng_idInformeTipo);
if (lst_Emails_ConParametros != null)
{
foreach (KRS_Emails mdl_KRS_Email_Parametro in lst_Emails_ConParametros)
{
//Obtenemos todos los parametros
string[] arr_Parametros = mdl_KRS_Email_Parametro.parametrosParaBuscarEmail.Split('|');
foreach (string str_Parametro in arr_Parametros)
{
if (str_Parametro.Equals(Variables.G_MDL_PARAMETRO_EMAIL_DEPARTAMENTO.Codigo))
{
//Vamos a buscar los Emails relacionados con el Departamento
if (_mdl_KRS_Empleados.KRS_Departamentos != null && _mdl_KRS_Empleados.KRS_Departamentos.fechaBorrado == null)
{
if (_mdl_KRS_Empleados.KRS_Departamentos.KRS_DepartamentosEmails != null && _mdl_KRS_Empleados.KRS_Departamentos.KRS_DepartamentosEmails.Count > 0)
{
foreach (KRS_DepartamentosEmails mdl_KRS_DepartamentosEmails in _mdl_KRS_Empleados.KRS_Departamentos.KRS_DepartamentosEmails)
{
lst_Emails.Add(mdl_KRS_DepartamentosEmails.email);
}
}
}
}
}
}
}
lst_Emails = lst_Emails.Distinct().ToList();
}
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(Verificacion_Fichajes_Email) + "/" + nameof(Obtener_Listado_ParaVerificacionFichajes));
}
return lst_Emails;
}
}
}