596 lines
34 KiB
C#
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
|
|
|
|
}
|
|
}
|