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 _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 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 lst_INTERNO_Email_Modelo = new List(); //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 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 _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 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 lst_INTERNO_Email_Modelo = new List(); //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 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 _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 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 lst_INTERNO_Email_Modelo = new List(); //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 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 lst_INTERNO_Email_Modelo = new List(); 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 Obtener_Listado_ParaVerificacionFichajes(long _lng_CodigoCliente, long _lng_idInformeTipo, KRS_Empleados _mdl_KRS_Empleados) { List lst_Emails_ConEmail; List lst_Emails_ConParametros; List lst_Emails = new List(); 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; } } }