Exferia/Exferia_KairosPro/Exferia_KairosPRO/Datos_KairosPRO.cs

596 lines
34 KiB
C#

using Exferia_Aplicacion.General;
using Exferia_Aplicacion.Modelos_Listado_Filtros;
using Exferia_Aplicacion.Modelos_Maestros;
using Exferia_EntityFramework;
using Exferia_KairosPRO._1_Modelos;
using Exferia_KairosPRO._2_Datos;
using Exferia_KairosPRO.General;
using Exferia_KairosPRO_EF;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Transactions;
namespace Exferia_KairosPRO
{
public class Datos_KairosPRO
{
#region KRS_ConfiguracionesEmails
private void KRS_ConfiguracionesEmails_Grabar(GEN_ConfiguracionesEmails _mdl_GEN_ConfiguracionesEmails)
{
try
{
//Relleno el modelo
KRS_ConfiguracionesEmails mdl_KRS_ConfiguracionesEmails = new KRS_ConfiguracionesEmails();
mdl_KRS_ConfiguracionesEmails.id = _mdl_GEN_ConfiguracionesEmails.id;
mdl_KRS_ConfiguracionesEmails.codigo = _mdl_GEN_ConfiguracionesEmails.codigo;
mdl_KRS_ConfiguracionesEmails.descripcion = _mdl_GEN_ConfiguracionesEmails.descripcion;
mdl_KRS_ConfiguracionesEmails.nombreAMostrar = _mdl_GEN_ConfiguracionesEmails.nombreAMostrar;
mdl_KRS_ConfiguracionesEmails.email = _mdl_GEN_ConfiguracionesEmails.email;
//SMTP
mdl_KRS_ConfiguracionesEmails.smtp_Servidor = _mdl_GEN_ConfiguracionesEmails.smtp_Servidor != null ? _mdl_GEN_ConfiguracionesEmails.smtp_Servidor : "";
mdl_KRS_ConfiguracionesEmails.smtp_Puerto = _mdl_GEN_ConfiguracionesEmails.smtp_Puerto != null ? _mdl_GEN_ConfiguracionesEmails.smtp_Puerto : "";
//Comprueba si hace falta autenticación
mdl_KRS_ConfiguracionesEmails.smtp_RequiereAutenticacion = _mdl_GEN_ConfiguracionesEmails.smtp_RequiereAutenticacion != null ? _mdl_GEN_ConfiguracionesEmails.smtp_RequiereAutenticacion.Value : false;
if (mdl_KRS_ConfiguracionesEmails.smtp_RequiereAutenticacion.Value)
{
mdl_KRS_ConfiguracionesEmails.smtp_Usuario = _mdl_GEN_ConfiguracionesEmails.smtp_Usuario;
mdl_KRS_ConfiguracionesEmails.smtp_Clave = _mdl_GEN_ConfiguracionesEmails.smtp_Clave;
mdl_KRS_ConfiguracionesEmails.smtp_ConexionSSL = _mdl_GEN_ConfiguracionesEmails.smtp_ConexionSSL != null ? _mdl_GEN_ConfiguracionesEmails.smtp_ConexionSSL.Value : false;
}
//POP3
//Compruebo si pop3 esta relleno
mdl_KRS_ConfiguracionesEmails.pop3 = _mdl_GEN_ConfiguracionesEmails.pop3 != null ? _mdl_GEN_ConfiguracionesEmails.pop3.Value : false;
if (mdl_KRS_ConfiguracionesEmails.pop3.Value)
{
mdl_KRS_ConfiguracionesEmails.pop3_Servidor = _mdl_GEN_ConfiguracionesEmails.pop3_Servidor;
mdl_KRS_ConfiguracionesEmails.pop3_Puerto = _mdl_GEN_ConfiguracionesEmails.pop3_Puerto;
mdl_KRS_ConfiguracionesEmails.pop3_Usuario = _mdl_GEN_ConfiguracionesEmails.pop3_Usuario;
mdl_KRS_ConfiguracionesEmails.pop3_Clave = _mdl_GEN_ConfiguracionesEmails.pop3_Clave;
}
//Clase de negocio necesaria
KRS_ConfiguracionesEmails_Datos obj_KRS_ConfiguracionesEmails_Datos = new KRS_ConfiguracionesEmails_Datos();
obj_KRS_ConfiguracionesEmails_Datos.Grabar(mdl_KRS_ConfiguracionesEmails);
}
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(Datos_KairosPRO) + "/" + nameof(KRS_ConfiguracionesEmails_Grabar));
}
}
private void KRS_ConfiguracionesEmails_Borrar(long _lng_idConfiguracionEmail)
{
try
{
//Clase de negocio necesaria
KRS_ConfiguracionesEmails_Datos obj_KRS_ConfiguracionesEmails_Datos = new KRS_ConfiguracionesEmails_Datos();
obj_KRS_ConfiguracionesEmails_Datos.Borrar(_lng_idConfiguracionEmail);
}
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(Datos_KairosPRO) + "/" + nameof(KRS_ConfiguracionesEmails_Borrar));
}
}
#endregion
#region KRS_Departamentos
private void KRS_Departamentos_InsertarActualizar(CTA_Departamentos _mdl_CTA_Departamentos, List<CTA_DepartamentosEmails> _lst_CTA_DepartamentosEmails)
{
KRS_Departamentos_Datos obj_KRS_Departamentos_Datos = new KRS_Departamentos_Datos();
KRS_DepartamentosEmails_Datos obj_KRS_DepartamentosEmails_Datos = new KRS_DepartamentosEmails_Datos();
INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
mdl_ValorDevuelto_Modelo.TodoCorrecto = true;
using (TransactionScope transaccion_SQL = new TransactionScope(TransactionScopeOption.Required))
{
try
{
if (_mdl_CTA_Departamentos != null)
{
KRS_Departamentos mdl_KRS_Departamentos = new KRS_Departamentos();
mdl_KRS_Departamentos.id = _mdl_CTA_Departamentos.id;
mdl_KRS_Departamentos.codigo = _mdl_CTA_Departamentos.codigo;
mdl_KRS_Departamentos.descripcion = _mdl_CTA_Departamentos.descripcion;
mdl_KRS_Departamentos.fechaBorrado = _mdl_CTA_Departamentos.fechaBorrado;
mdl_ValorDevuelto_Modelo = obj_KRS_Departamentos_Datos.Grabar(mdl_KRS_Departamentos);
//Ahora grabamos los emails relacionados
if (mdl_ValorDevuelto_Modelo.TodoCorrecto)
{
//Borramos todos los emails, relacionados y luego añadimos los nuevos
mdl_ValorDevuelto_Modelo = obj_KRS_DepartamentosEmails_Datos.Borrar((object)mdl_KRS_Departamentos.id);
if (_lst_CTA_DepartamentosEmails != null && _lst_CTA_DepartamentosEmails.Count > 0)
{
foreach (CTA_DepartamentosEmails mdl_CTA_DepartamentoEmails in _lst_CTA_DepartamentosEmails)
{
KRS_DepartamentosEmails mdl_KRS_DepartamentosEmails = new KRS_DepartamentosEmails();
mdl_KRS_DepartamentosEmails.id = mdl_CTA_DepartamentoEmails.id;
mdl_KRS_DepartamentosEmails.email = mdl_CTA_DepartamentoEmails.email;
mdl_KRS_DepartamentosEmails.idDepartamento = mdl_CTA_DepartamentoEmails.idDepartamento;
//Una Vez relleno el modelo, es el turno de grabar
mdl_ValorDevuelto_Modelo = obj_KRS_DepartamentosEmails_Datos.Grabar(mdl_KRS_DepartamentosEmails);
if (!mdl_ValorDevuelto_Modelo.TodoCorrecto)
{
transaccion_SQL.Dispose();
}
}
}
//Termino de transaccion
transaccion_SQL.Complete();
}
}
transaccion_SQL.Dispose();
}
catch (Control_Errores ex)
{
Control_Errores.Errores_Log("", ex, nameof(Datos_KairosPRO) + "/" + nameof(KRS_Departamentos_InsertarActualizar));
transaccion_SQL.Dispose();
}
}
}
private void KRS_Departamentos_Borrar(long _lng_idDepartamento)
{
KRS_Departamentos_Datos obj_KRS_Departamentos_Datos = new KRS_Departamentos_Datos();
try
{
//Borramos el departamento con sus relaciones
obj_KRS_Departamentos_Datos.Borrar(_lng_idDepartamento);
}
catch (Control_Errores ex)
{
Control_Errores.Errores_Log("", ex, nameof(Datos_KairosPRO) + "/" + nameof(KRS_Departamentos_Borrar));
}
}
#endregion
#region KRS_Empleados
private void KRS_Empleados_InsertarActualizar(MAE_Empleados _mdl_MAE_Empleados, bool _bol_Sincronizar, Image _img_FotoEmpleado, bool _bol_EsTecnico)
{
KRS_Empleados mdl_KRS_Empleados = null;
KRS_EmpleadosFotos mdl_KRS_EmpleadosFotos = new KRS_EmpleadosFotos();
//Clases de negocio necesarias
KRS_Empleados_Datos obj_KRS_Empleados_Datos = new KRS_Empleados_Datos();
KRS_EmpleadosFotos_Datos obj_KRS_EmpleadosFotos_Datos = new KRS_EmpleadosFotos_Datos();
try
{
if (_bol_Sincronizar)
{
//Obtenemos el empleado si existe
mdl_KRS_Empleados = obj_KRS_Empleados_Datos.Obtener_Modelo_Por_Id(_mdl_MAE_Empleados.id, Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO, false, false);
if (mdl_KRS_Empleados != null)
{
//Asignamos los valores que se pueden cambiar desde el ERP
mdl_KRS_Empleados.idDepartamento = _mdl_MAE_Empleados.idDepartamento;
mdl_KRS_Empleados.email = _mdl_MAE_Empleados.email != null ? _mdl_MAE_Empleados.email : "";
mdl_KRS_Empleados.nombre = _mdl_MAE_Empleados.nombre;
mdl_KRS_Empleados.tecnico = _bol_EsTecnico;
mdl_KRS_Empleados.idEmpresa = _mdl_MAE_Empleados.idEmpresa;
mdl_KRS_Empleados.fechaBaja = _mdl_MAE_Empleados.fechaBaja;
mdl_KRS_Empleados.fechaBorrado = null;
}
else
{
//Asignamos los valores obtenidos por parametros del ERP
mdl_KRS_Empleados = new KRS_Empleados();
mdl_KRS_Empleados.id = _mdl_MAE_Empleados.id;
mdl_KRS_Empleados.idDepartamento = _mdl_MAE_Empleados.idDepartamento;
mdl_KRS_Empleados.email = _mdl_MAE_Empleados.email != null ? _mdl_MAE_Empleados.email : "";
mdl_KRS_Empleados.nombre = _mdl_MAE_Empleados.nombre;
mdl_KRS_Empleados.fechaBaja = _mdl_MAE_Empleados.fechaBaja;
mdl_KRS_Empleados.idEmpresa = _mdl_MAE_Empleados.idEmpresa;
mdl_KRS_Empleados.codigoValidacion = Funciones_KairosPRO.Quitar_Letras_DNI(_mdl_MAE_Empleados.dni);
mdl_KRS_Empleados.tecnico = _bol_EsTecnico;
mdl_KRS_Empleados.sacarFotoFichaje = false;
mdl_KRS_Empleados.fechaBorrado = null;
//Buscar el Uso Horario del Ordenador por defecto
mdl_KRS_Empleados.usoHorario = TimeZoneInfo.Local.Id;
}
obj_KRS_Empleados_Datos.Grabar(mdl_KRS_Empleados);
//Si la foto no es nula la añadimos y grabamos
if (_img_FotoEmpleado != null)
{
mdl_KRS_EmpleadosFotos.foto = Funciones.Convertir_Image_Arraybytes(_img_FotoEmpleado);
mdl_KRS_EmpleadosFotos.idEmpleado = _mdl_MAE_Empleados.id;
obj_KRS_EmpleadosFotos_Datos.Grabar(mdl_KRS_EmpleadosFotos, _mdl_MAE_Empleados.id);
}
else
{
//Si es nula, miramos si hay que borrarla
obj_KRS_EmpleadosFotos_Datos.Borrar(mdl_KRS_Empleados.id);
}
}
else
{
//Si no esta chequeado comprobamos si existe el empleado, si existe, actualizamos su fecha de baja
obj_KRS_Empleados_Datos.Actualizar_FechaBaja(_mdl_MAE_Empleados.id);
}
}
catch (Control_Errores)
{ }
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(Datos_KairosPRO) + "/" + nameof(KRS_Empleados_InsertarActualizar));
}
}
private void KRS_Empleados_InsertarActualizar_Por_Modelo(INTERNO_MAE_Empleado_AUXILIAR _mdl_INTERNO_MAE_Empleados_AUXILIAR)
{
KRS_Empleados mdl_KRS_Empleados = null;
KRS_EmpleadosFotos mdl_KRS_EmpleadosFotos = new KRS_EmpleadosFotos();
//Clases de negocio necesarias
KRS_Empleados_Datos obj_KRS_Empleados_Datos = new KRS_Empleados_Datos();
KRS_EmpleadosFotos_Datos obj_KRS_EmpleadosFotos_Datos = new KRS_EmpleadosFotos_Datos();
try
{
if (_mdl_INTERNO_MAE_Empleados_AUXILIAR.Sincronizacion != null &&
_mdl_INTERNO_MAE_Empleados_AUXILIAR.Sincronizacion.Value)
{
//Obtenemos el empleado si existe
mdl_KRS_Empleados = obj_KRS_Empleados_Datos.Obtener_Modelo_Por_Id(_mdl_INTERNO_MAE_Empleados_AUXILIAR.id, Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO, false, false);
if (mdl_KRS_Empleados != null)
{
//Asignamos los valores que se pueden cambiar desde el ERP
mdl_KRS_Empleados.idDepartamento = _mdl_INTERNO_MAE_Empleados_AUXILIAR.idDepartamento;
mdl_KRS_Empleados.email = _mdl_INTERNO_MAE_Empleados_AUXILIAR.Email != null ? _mdl_INTERNO_MAE_Empleados_AUXILIAR.Email : "";
mdl_KRS_Empleados.nombre = _mdl_INTERNO_MAE_Empleados_AUXILIAR.Nombre;
mdl_KRS_Empleados.tecnico = _mdl_INTERNO_MAE_Empleados_AUXILIAR.Tecnico;
mdl_KRS_Empleados.idEmpresa = _mdl_INTERNO_MAE_Empleados_AUXILIAR.idEmpresa;
mdl_KRS_Empleados.fechaBaja = _mdl_INTERNO_MAE_Empleados_AUXILIAR.FechaBaja;
mdl_KRS_Empleados.fechaBorrado = null;
}
else
{
//Rellenamos los datos pertinentes y luego actualizamos en base de datos
mdl_KRS_Empleados = new KRS_Empleados();
mdl_KRS_Empleados.id = _mdl_INTERNO_MAE_Empleados_AUXILIAR.id;
mdl_KRS_Empleados.idDepartamento = _mdl_INTERNO_MAE_Empleados_AUXILIAR.idDepartamento;
mdl_KRS_Empleados.email = _mdl_INTERNO_MAE_Empleados_AUXILIAR.Email != null ? _mdl_INTERNO_MAE_Empleados_AUXILIAR.Email : "";
mdl_KRS_Empleados.nombre = _mdl_INTERNO_MAE_Empleados_AUXILIAR.Nombre;
mdl_KRS_Empleados.fechaBaja = _mdl_INTERNO_MAE_Empleados_AUXILIAR.FechaBaja;
mdl_KRS_Empleados.codigoValidacion = _mdl_INTERNO_MAE_Empleados_AUXILIAR.CodigoValidacion;
mdl_KRS_Empleados.idEmpresa = _mdl_INTERNO_MAE_Empleados_AUXILIAR.idEmpresa;
mdl_KRS_Empleados.tecnico = false;
mdl_KRS_Empleados.sacarFotoFichaje = false;
mdl_KRS_Empleados.fechaBorrado = null;
//Buscar el Uso Horario del Ordenador por defecto
mdl_KRS_Empleados.usoHorario = TimeZoneInfo.Local.Id;
}
//Ahora Grabamos el empleado
obj_KRS_Empleados_Datos.Grabar(mdl_KRS_Empleados);
if (_mdl_INTERNO_MAE_Empleados_AUXILIAR.Foto != null)
{
mdl_KRS_EmpleadosFotos.foto = _mdl_INTERNO_MAE_Empleados_AUXILIAR.Foto;
mdl_KRS_EmpleadosFotos.idEmpleado = _mdl_INTERNO_MAE_Empleados_AUXILIAR.id;
//Ahora Grabamos la foto del empleado
obj_KRS_EmpleadosFotos_Datos.Grabar(mdl_KRS_EmpleadosFotos, mdl_KRS_Empleados.id);
}
else
{
//Si es nula, miramos si hay que borrarla
obj_KRS_EmpleadosFotos_Datos.Borrar(mdl_KRS_Empleados.id);
}
}
}
catch (Control_Errores ex)
{
Control_Errores.Errores_Log("", ex, nameof(Datos_KairosPRO) + "/" + nameof(KRS_Empleados_InsertarActualizar_Por_Modelo));
}
}
private void KRS_Empleados_Actualizar_FechaBorrado(long _lng_idEmpleado)
{
KRS_Empleados_Datos obj_KRS_Empleados_Datos = new KRS_Empleados_Datos();
try
{
obj_KRS_Empleados_Datos.Actualizar_FechaBorrado(_lng_idEmpleado);
}
catch (Control_Errores)
{
throw;
}
}
#endregion
#region Otros
private List<INTERNO_Listado_Simple_Modelo> Buscar_Datos_Filtros_Relacionados(string _str_Tabla_Nombre,
string _str_Campo_Id,
string _str_Campo_Codigo,
string _str_Campo_Descripcion,
string _str_Campo_FechaBorrado,
string _str_Where)
{
return Compartidas_Datos_KairosPRO.Buscar_Datos_Filtros_Relacionados(_str_Tabla_Nombre, _str_Campo_Id, _str_Campo_Codigo, _str_Campo_Descripcion, _str_Campo_FechaBorrado, _str_Where);
}
#endregion
#region Externos
private INTERNO_HorasTrabajadasResumen_Modelo Obtener_HorasTrabajadas_Resumen_EXTERNA( DateTime _dtt_FechaInicio,
DateTime _dtt_FechaFin,
long _lng_idEmpleado,
long _lng_CodigoCliente)
{
INTERNO_HorasTrabajadasResumen_Modelo mdl_INTERNO_HorasTrabajadasResumen_Modelo = new INTERNO_HorasTrabajadasResumen_Modelo();
mdl_INTERNO_HorasTrabajadasResumen_Modelo.codigoCliente = _lng_CodigoCliente;
mdl_INTERNO_HorasTrabajadasResumen_Modelo.idEmpleado = _lng_idEmpleado;
try
{
#region Datos de Conexion
Funciones_FicherosXML.CargarDatosXML_ConexionBD();
Funciones_FicherosXML.CargarDatosXML_ConexionBD_KairosPRO();
Funciones_FicherosXML.CargarDatosXML_Licencia();
Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO = _lng_CodigoCliente;
#endregion
//Empleado
List<long> lst_idEmpleados = new List<long>();
lst_idEmpleados.Add(_lng_idEmpleado);
//Fechas y horas
TimeSpan tms_Inicio = TimeSpan.ParseExact("00:00", "hh\\:mm", CultureInfo.InvariantCulture);
TimeSpan tms_Fin = TimeSpan.ParseExact("23:59", "hh\\:mm", CultureInfo.InvariantCulture);
//idEmpresa
KRS_Empleados_Datos obj_KRS_Empleados_Datos = new KRS_Empleados_Datos();
List<long> lst_idEmpresas = obj_KRS_Empleados_Datos.Obtener_Empresas_Segun_CodigoCliente(_lng_CodigoCliente);
long lng_idEmpresa = -1;
if (lst_idEmpresas!=null && lst_idEmpresas.Count>0)
{
lng_idEmpresa=lst_idEmpresas.First();
}
//KRS_AusenciasProgramadas
List<INTERNO_ComboBox_Modelo> lst_INTERNO_ComboBox_Modelo_AUSENCIASPROGRAMADAS = new List<INTERNO_ComboBox_Modelo>();
KRS_AusenciasProgramadasTipos_Datos obj_KRS_AusenciasProgramadasTipos_Datos = new KRS_AusenciasProgramadasTipos_Datos();
List<KRS_AusenciasProgramadasTipos> lst_KRS_AusenciasProgramadasTipos = obj_KRS_AusenciasProgramadasTipos_Datos.Obtener_ModeloListado(false);
if (lst_KRS_AusenciasProgramadasTipos != null && lst_KRS_AusenciasProgramadasTipos.Count > 0)
{
foreach (KRS_AusenciasProgramadasTipos mdl_KRS_AusenciasProgramadasTipos in lst_KRS_AusenciasProgramadasTipos)
{
lst_INTERNO_ComboBox_Modelo_AUSENCIASPROGRAMADAS.Add(new INTERNO_ComboBox_Modelo(mdl_KRS_AusenciasProgramadasTipos.id.ToString(), mdl_KRS_AusenciasProgramadasTipos.descripcion,null));
}
}
//KRS_PresenciasProgramadas
List<INTERNO_ComboBox_Modelo> lst_INTERNO_ComboBox_Modelo_PRESENCIASPROGRAMADAS = new List<INTERNO_ComboBox_Modelo>();
//Jornada
List<INTERNO_ComboBox_Modelo> lst_INTERNO_ComboBox_Modelo_Jornada = ListadosEstaticos.Devolver_ConsultaDetallada_JornadaEmpleado_SINDIASTRABAJADOS();
//Horas Extras
List<INTERNO_ComboBox_Modelo> lst_INTERNO_ComboBox_Modelo_HorasExtras = ListadosEstaticos.Devolver_ConsultaDetallada_HorasExtras();
//Funcion creada para generar el listado que rellena el informe
List<INTERNO_AUX_ConsultaDetalladaJornada_Modelo> lst_INTERNO_AUX_ConsultaDetalladaJornada_Modelo_RESULTADO = Funciones_KairosPRO.CargarDatos_ConsultaDetallada_JornadaEmpleado(_dtt_FechaInicio,
_dtt_FechaFin,
tms_Inicio,
tms_Fin,
lst_idEmpleados,
lng_idEmpresa,
lst_INTERNO_ComboBox_Modelo_PRESENCIASPROGRAMADAS,
lst_INTERNO_ComboBox_Modelo_AUSENCIASPROGRAMADAS,
false,
lst_INTERNO_ComboBox_Modelo_Jornada,
lst_INTERNO_ComboBox_Modelo_HorasExtras);
if (lst_INTERNO_AUX_ConsultaDetalladaJornada_Modelo_RESULTADO != null && lst_INTERNO_AUX_ConsultaDetalladaJornada_Modelo_RESULTADO.Count>0)
{
#region Resto del resumen
foreach (INTERNO_AUX_ConsultaDetalladaJornada_Modelo mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo in lst_INTERNO_AUX_ConsultaDetalladaJornada_Modelo_RESULTADO.Where(m => m.Tipo_Linea!=Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_SOLICITUDESVARIAS.Codigo))
{
//HorasTeoricas
if (Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_HORASTEORICAS.Codigo== mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Tipo_Linea)
{
mdl_INTERNO_HorasTrabajadasResumen_Modelo.HorasTeoricas = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado;
}
//HorasReales
else if (Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_HORASREALES.Codigo == mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Tipo_Linea)
{
mdl_INTERNO_HorasTrabajadasResumen_Modelo.HorasReales = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado;
}
//HorasContabilizables
else if (Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_HORASCONTABILIZABLES.Codigo == mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Tipo_Linea)
{
mdl_INTERNO_HorasTrabajadasResumen_Modelo.HorasContabilizables = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado;
}
//Saldo
else if (Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_SALDO.Codigo == mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Tipo_Linea)
{
mdl_INTERNO_HorasTrabajadasResumen_Modelo.Saldo = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado;
}
//HorasExtrasReales
else if (Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_HORASEXTRAS_REALES.Codigo == mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Tipo_Linea)
{
mdl_INTERNO_HorasTrabajadasResumen_Modelo.HorasExtrasReales = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado;
}
//HorasExtrasReales_PorConvenio
else if (Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_HORASEXTRAS_REALES_CONVENIO.Codigo == mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Tipo_Linea)
{
mdl_INTERNO_HorasTrabajadasResumen_Modelo.HorasExtrasReales_PorConvenio = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado;
}
//HorasExtrasAutorizadas
else if (Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_HORASEXTRAS_AUTORIZADAS.Codigo == mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Tipo_Linea)
{
mdl_INTERNO_HorasTrabajadasResumen_Modelo.HorasExtrasAutorizadas = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado;
}
//HorasExtrasAutorizadas_PorConvenio
else if (Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_HORASEXTRAS_AUTORIZADAS_CONVENIO.Codigo == mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Tipo_Linea)
{
mdl_INTERNO_HorasTrabajadasResumen_Modelo.HorasExtrasAutorizadas_PorConvenio = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado;
}
}
#endregion
#region Ausencias
int int_Ausencias_Dias = 0;
int int_Ausencias_Horas = 0;
int int_Ausencias_Minutos = 0;
foreach (INTERNO_AUX_ConsultaDetalladaJornada_Modelo mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo in lst_INTERNO_AUX_ConsultaDetalladaJornada_Modelo_RESULTADO.Where(m => m.Tipo_Linea== Variables_KairosPRO.G_MDL_CONSULTAEXTERNA_SOLICITUDESVARIAS.Codigo))
{
if (mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado.Trim().Length>0 &&
mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado.Trim() != "0" &&
mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado.Trim() != "00:00")
{
//Tipo Dia
if (mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.SumaDia)
{
int_Ausencias_Dias += int.Parse(mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado.Trim());
}
//Tipo hora
else
{
string[] arr_Horas = mdl_INTERNO_AUX_ConsultaDetalladaJornada_Modelo.Resultado.Trim().Split(':');
if (arr_Horas.Count()>0)
{
//Horas
int_Ausencias_Horas += int.Parse(arr_Horas[0]);
//Minutos
int_Ausencias_Minutos += int.Parse(arr_Horas[1]);
}
}
}
}
//Añadir las ausencias
mdl_INTERNO_HorasTrabajadasResumen_Modelo.TiempoAbsentismo = int_Ausencias_Dias + " día/s || " + (int_Ausencias_Horas + ":" + string.Format("{0:00}", int_Ausencias_Minutos) + " hora/s");
#endregion
}
}
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(Datos_KairosPRO) + "/" + nameof(Obtener_HorasTrabajadas_Resumen_EXTERNA));
}
return mdl_INTERNO_HorasTrabajadasResumen_Modelo;
}
private List<INTERNO_HorasTrabajadas_Modelo> Obtener_HorasTrabajadas_EXTERNA(DateTime _dtt_FechaInicio,
DateTime _dtt_FechaFin,
long _lng_idEmpleado,
long _lng_CodigoCliente)
{
List<INTERNO_HorasTrabajadas_Modelo> lst_INTERNO_HorasTrabajadas_Modelo = new List<INTERNO_HorasTrabajadas_Modelo>();
try
{
#region Datos de Conexion
Funciones_FicherosXML.CargarDatosXML_ConexionBD();
Funciones_FicherosXML.CargarDatosXML_ConexionBD_KairosPRO();
Funciones_FicherosXML.CargarDatosXML_Licencia();
Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO = _lng_CodigoCliente;
#endregion
//Empleado
List<long> lst_idEmpleados = new List<long>();
lst_idEmpleados.Add(_lng_idEmpleado);
//idEmpresa
KRS_Empleados_Datos obj_KRS_Empleados_Datos = new KRS_Empleados_Datos();
List<long> lst_idEmpresas = obj_KRS_Empleados_Datos.Obtener_Empresas_Segun_CodigoCliente(_lng_CodigoCliente);
long lng_idEmpresa = -1;
if (lst_idEmpresas != null && lst_idEmpresas.Count > 0)
{
lng_idEmpresa = lst_idEmpresas.First();
}
//Funcion creada para generar el listado que rellena el informe
List<INTERNO_AUX_ConsultaDetallada_Modelo> lst_INTERNO_AUX_ConsultaDetallada_Modelo_RESULTADO = Funciones_KairosPRO.CargarDatos_ConsultaDetallada(lst_idEmpleados,_dtt_FechaInicio,
_dtt_FechaFin,
lng_idEmpresa);
if (lst_INTERNO_AUX_ConsultaDetallada_Modelo_RESULTADO != null && lst_INTERNO_AUX_ConsultaDetallada_Modelo_RESULTADO.Count > 0)
{
foreach (INTERNO_AUX_ConsultaDetallada_Modelo mdl_INTERNO_AUX_ConsultaDetallada_Modelo in lst_INTERNO_AUX_ConsultaDetallada_Modelo_RESULTADO)
{
INTERNO_HorasTrabajadas_Modelo mdl_INTERNO_HorasTrabajadas_Modelo = new INTERNO_HorasTrabajadas_Modelo();
mdl_INTERNO_HorasTrabajadas_Modelo.codigoCliente = _lng_CodigoCliente;
mdl_INTERNO_HorasTrabajadas_Modelo.idEmpleado = _lng_idEmpleado;
mdl_INTERNO_HorasTrabajadas_Modelo.fecha = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.Fecha.ToString("dd/MM/yyyy");
mdl_INTERNO_HorasTrabajadas_Modelo.HorasTeoricas = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.TiempoARealizar.ToString("hh\\:mm");
mdl_INTERNO_HorasTrabajadas_Modelo.HorasReales = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.TiempoReal.ToString("hh\\:mm");
mdl_INTERNO_HorasTrabajadas_Modelo.HorasContabilizables = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.TiempoRealizado.ToString("hh\\:mm");
//Saldo
string str_signo = "";
if (mdl_INTERNO_AUX_ConsultaDetallada_Modelo.Saldo.TotalSeconds < 0)
{
str_signo = "-";
}
mdl_INTERNO_HorasTrabajadas_Modelo.Saldo = str_signo + mdl_INTERNO_AUX_ConsultaDetallada_Modelo.Saldo.ToString("hh\\:mm");
mdl_INTERNO_HorasTrabajadas_Modelo.HorasExtrasReales = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.HorasExtras_Reales.ToString("hh\\:mm");
mdl_INTERNO_HorasTrabajadas_Modelo.HorasExtrasReales_PorConvenio = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.HorasExtras_Reales_PorConvenio.ToString("hh\\:mm");
mdl_INTERNO_HorasTrabajadas_Modelo.HorasExtrasAutorizadas = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.HorasExtras_Autorizadas.ToString("hh\\:mm");
mdl_INTERNO_HorasTrabajadas_Modelo.HorasExtrasAutorizadas_PorConvenio = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.HorasExtras_Autorizadas_PorConvenio.ToString("hh\\:mm");
mdl_INTERNO_HorasTrabajadas_Modelo.TiempoAbsentismo = mdl_INTERNO_AUX_ConsultaDetallada_Modelo.TiempoAbsentismo;
//Añadir al listado
lst_INTERNO_HorasTrabajadas_Modelo.Add(mdl_INTERNO_HorasTrabajadas_Modelo);
}
}
}
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(Datos_KairosPRO) + "/" + nameof(Obtener_HorasTrabajadas_EXTERNA));
}
return lst_INTERNO_HorasTrabajadas_Modelo;
}
#endregion
}
}