568 lines
33 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|