Exferia/Exferia_KairosPro/Exferia_KairosPRO/2_Datos/KRS_Empleados_Datos.cs

1767 lines
94 KiB
C#

using Exferia_Aplicacion.General;
using Exferia_EntityFramework;
using Exferia_KairosPRO._1_Modelos;
using Exferia_KairosPRO._1_Modelos.Herencia.Capas;
using Exferia_KairosPRO_EF;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading;
using static Exferia_Aplicacion.General.Enumerados;
namespace Exferia_KairosPRO._2_Datos
{
public class KRS_Empleados_Datos : ABS_Datos
{
#region Listado
private List<INTERNO_KRS_Empleados_Listado_Modelo> g_lst_INTERNO_KRS_Empleados_Listado_Modelo = null;
public override List<dynamic> Obtener_Listado(List<string> _lst_CamposConRelacionABuscar, List<INTERNO_Filtro_OpcionPadre_Modelo> _lst_INTERNO_Filtro_OpcionPadre_Modelo, List<INTERNO_Filtro_Modelo> _lst_INTERNO_Filtro_Modelo)
{
KairosProEntities obj_KairosProEntities = null;
List<dynamic> lst_KRS = null;
try
{
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
//Consulta.................................................................
ConsultaRellenar_Listado(obj_KairosProEntities, _lst_CamposConRelacionABuscar, -1, null, _lst_INTERNO_Filtro_OpcionPadre_Modelo, _lst_INTERNO_Filtro_Modelo);
//........................................................................
if ((g_lst_INTERNO_KRS_Empleados_Listado_Modelo != null) && (g_lst_INTERNO_KRS_Empleados_Listado_Modelo.Count() > 0))
{
lst_KRS = g_lst_INTERNO_KRS_Empleados_Listado_Modelo.Cast<dynamic>().ToList();
}
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Obtener_Listado), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
return lst_KRS;
}
public override dynamic Obtener_RegistroListado(List<string> _lst_CamposConRelacionABuscar, List<INTERNO_Filtro_OpcionPadre_Modelo> _lst_INTERNO_Filtro_OpcionPadre_Modelo, List<INTERNO_Filtro_Modelo> _lst_INTERNO_Filtro_Modelo, long _lng_id, List<long> _lst_id)
{
KairosProEntities obj_KairosProEntities = null;
dynamic dnm_KRS = null;
try
{
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
//Consulta ......................................................
ConsultaRellenar_Listado(obj_KairosProEntities, _lst_CamposConRelacionABuscar, _lng_id, _lst_id, _lst_INTERNO_Filtro_OpcionPadre_Modelo, _lst_INTERNO_Filtro_Modelo);
//...............................................................
if ((g_lst_INTERNO_KRS_Empleados_Listado_Modelo != null) && (g_lst_INTERNO_KRS_Empleados_Listado_Modelo.Count() > 0))
{
dnm_KRS = g_lst_INTERNO_KRS_Empleados_Listado_Modelo.Cast<dynamic>().ToList();
}
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Obtener_RegistroListado), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
return dnm_KRS;
}
protected override void ConsultaRellenar_Listado(KairosProEntities _dbcontext, List<string> _lst_CamposConRelacionABuscar, long _lng_id, List<long> _lst_id, List<INTERNO_Filtro_OpcionPadre_Modelo> _lst_INTERNO_Filtro_OpcionPadre_Modelo, List<INTERNO_Filtro_Modelo> _lst_INTERNO_Filtro_Modelo)
{
try
{
string str_SQL =
" SELECT " +
nameof(INTERNO_KRS_Empleados_Listado_Modelo.id) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.id) + "," +
nameof(INTERNO_KRS_Empleados_Listado_Modelo.codigoCliente) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.codigoCliente) + "," +
nameof(INTERNO_KRS_Empleados_Listado_Modelo.nombre) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.nombre) + "," +
nameof(INTERNO_KRS_Empleados_Listado_Modelo.codigoValidacion) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.codigoValidacion) + "," +
nameof(INTERNO_KRS_Empleados_Listado_Modelo.fechaBaja) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.fechaBaja) + "," +
nameof(INTERNO_KRS_Empleados_Listado_Modelo.pin) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.pin) + "," +
nameof(INTERNO_KRS_Empleados_Listado_Modelo.tecnico) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.tecnico) + "," +
nameof(INTERNO_KRS_Empleados_Listado_Modelo.claveAccesoWeb) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.claveAccesoWeb) + "," +
nameof(INTERNO_KRS_Empleados_Listado_Modelo.permiteFichajeWeb) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.permiteFichajeWeb) + "," +
nameof(INTERNO_KRS_Empleados_Listado_Modelo.idEmpresa) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.idEmpresa) +
" FROM " + nameof(KRS_Empleados) +
" WHERE " +
nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.fechaBorrado) + " IS null AND " +
" ( " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.fechaBaja) + " is null OR " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.fechaBaja) + ">=@fechaBaja) and " +
nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.codigoCliente) + "=@codigoCliente AND " +
(_lng_id > -1
? nameof(KRS_Empleados) + "." + (nameof(KRS_Empleados.id) + "=@id ")
: " 1 = 1 "
);
//Parametros
object[] arr_Parametros = new object[]
{
new SqlParameter("@codigoCliente" , Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO),
new SqlParameter("@id" , _lng_id),
new SqlParameter("@fechaBaja" , Variables.G_DTT_FECHA_INICIAL_PORDEFECTO)
};
//Rellenar el Modelo
g_lst_INTERNO_KRS_Empleados_Listado_Modelo = _dbcontext.Database.SqlQuery<INTERNO_KRS_Empleados_Listado_Modelo>(str_SQL, arr_Parametros).ToList();
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(ConsultaRellenar_Listado), true);
}
}
#endregion
#region Listado Secundario
public override List<dynamic> Obtener_Listado_Secundario(List<string> _lst_CamposConRelacionABuscar, List<INTERNO_Filtro_OpcionPadre_Modelo> _lst_INTERNO_Filtro_OpcionPadre_Modelo, List<INTERNO_Filtro_Modelo> _lst_INTERNO_Filtro_Modelo)
{
return null;
}
public override dynamic Obtener_RegistroListado_Secundario(List<string> _lst_CamposConRelacionABuscar, List<INTERNO_Filtro_OpcionPadre_Modelo> _lst_INTERNO_Filtro_OpcionPadre_Modelo, List<INTERNO_Filtro_Modelo> _lst_INTERNO_Filtro_Modelo, long _lng_id, List<long> _lst_id)
{
return null;
}
protected override void ConsultaRellenar_Listado_Secundario(KairosProEntities _dbcontext, List<string> _lst_CamposConRelacionABuscar, long _lng_id, List<long> _lst_id, List<INTERNO_Filtro_OpcionPadre_Modelo> _lst_INTERNO_Filtro_OpcionPadre_Modelo, List<INTERNO_Filtro_Modelo> _lst_INTERNO_Filtro_Modelo)
{
}
#endregion
#region F3
private INTERNO_KRS_Empleados_Listado_Modelo g_mdl_INTERNO_KRS_Empleados_Listado_Modelo_F3 = null;
public override dynamic Obtener_F3(string _str_filtro, string _str_CampoBusqueda, List<INTERNO_Filtro_OpcionPadre_Modelo> _lst_INTERNO_Filtro_OpcionPadre_Modelo, List<INTERNO_Filtro_Modelo> _lst_INTERNO_Filtro_Modelo)
{
KairosProEntities obj_KairosProEntities = null;
dynamic dnm_KRS = null;
try
{
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
//Consulta .....................................................
ConsultaRellenar_F3(obj_KairosProEntities, _str_CampoBusqueda, _str_filtro, -1, _lst_INTERNO_Filtro_OpcionPadre_Modelo, _lst_INTERNO_Filtro_Modelo);
//..............................................................
if (g_mdl_INTERNO_KRS_Empleados_Listado_Modelo_F3 != null)
{
dnm_KRS = g_mdl_INTERNO_KRS_Empleados_Listado_Modelo_F3;
}
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Obtener_F3), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
return dnm_KRS;
}
public override dynamic Obtener_F3_PorId(long _lng_id, List<INTERNO_Filtro_OpcionPadre_Modelo> _lst_INTERNO_Filtro_OpcionPadre_Modelo, List<INTERNO_Filtro_Modelo> _lst_INTERNO_Filtro_Modelo)
{
KairosProEntities obj_KairosProEntities = null;
dynamic dnm_KRS = null;
try
{
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
//Consulta .....................................................
ConsultaRellenar_F3(obj_KairosProEntities, "", "", _lng_id, _lst_INTERNO_Filtro_OpcionPadre_Modelo, _lst_INTERNO_Filtro_Modelo);
//..............................................................
if (g_mdl_INTERNO_KRS_Empleados_Listado_Modelo_F3 != null)
{
dnm_KRS = g_mdl_INTERNO_KRS_Empleados_Listado_Modelo_F3;
}
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Obtener_F3_PorId), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
return dnm_KRS;
}
protected override void ConsultaRellenar_F3(KairosProEntities _dbcontext, string _str_CampoBusqueda, string _str_Filtro, long _lng_id, List<INTERNO_Filtro_OpcionPadre_Modelo> _lst_INTERNO_Filtro_OpcionPadre_Modelo, List<INTERNO_Filtro_Modelo> _lst_INTERNO_Filtro_Modelo)
{
try
{
string str_SQL =
" SELECT " +
nameof(INTERNO_KRS_Empleados_Listado_Modelo.id) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.id) + "," +
nameof(INTERNO_KRS_Empleados_Listado_Modelo.nombre) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.nombre) + "," +
nameof(INTERNO_KRS_Empleados_Listado_Modelo.codigoValidacion) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.codigoValidacion) +
" FROM " + nameof(KRS_Empleados) +
" WHERE " +
nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.fechaBorrado) + " IS null AND " +
nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.codigoCliente) + "=@codigoCliente AND " +
(_lng_id > -1
? nameof(KRS_Empleados) + "." + (nameof(KRS_Empleados.id) + "=@id and ")
: (
//Filtrar por Codigo
(_str_CampoBusqueda.Equals(nameof(KRS_Empleados.codigoValidacion)))
? nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.codigoValidacion) + "=@filtro "
//Filtrar por Descripcion
: nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.nombre) + "=@filtro "
)
);
//Parametros
object[] arr_Parametros = new object[]
{
new SqlParameter("@codigoCliente" , Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO),
new SqlParameter("@id" , _lng_id),
new SqlParameter("@filtro" , _str_Filtro)
};
//Rellenar el Modelo
g_mdl_INTERNO_KRS_Empleados_Listado_Modelo_F3 = _dbcontext.Database.SqlQuery<INTERNO_KRS_Empleados_Listado_Modelo>(str_SQL, arr_Parametros).FirstOrDefault();
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(ConsultaRellenar_F3), true);
}
}
#endregion
#region Obtener
#region Obtener Simple
private dynamic g_dnm_Modelo_Obtener = null;
private static int g_int_TotalHilos_Obtener = 7;
private bool[] g_bol_Hilos_Terminados_Obtener = new bool[g_int_TotalHilos_Obtener];
public override dynamic Obtener(long _lng_id)
{
KairosProEntities obj_KairosProEntities = null;
try
{
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
string str_SQL =
" SELECT " +
nameof(KRS_Empleados.id) + "," +
nameof(KRS_Empleados.codigoCliente) + "," +
nameof(KRS_Empleados.nombre) + "," +
nameof(KRS_Empleados.codigoValidacion) + "," +
nameof(KRS_Empleados.fechaBaja) + "," +
nameof(KRS_Empleados.pin) + "," +
nameof(KRS_Empleados.tecnico) + "," +
nameof(KRS_Empleados.usoHorario) + "," +
nameof(KRS_Empleados.sacarFotoFichaje) + "," +
nameof(KRS_Empleados.fechaActualizacion) + "," +
nameof(KRS_Empleados.fechaBorrado) + "," +
nameof(KRS_Empleados.numeroTarjetaFichaje) + "," +
nameof(KRS_Empleados.idDepartamento) + "," +
nameof(KRS_Empleados.idEmpresa) + "," +
nameof(KRS_Empleados.email) + "," +
nameof(KRS_Empleados.permiteRecordatorio) + "," +
nameof(KRS_Empleados.permiteFichajeAutomatico) + "," +
nameof(KRS_Empleados.idEmpresa_FichajeAutomatico) + "," +
nameof(KRS_Empleados.programaExterno_idEmpleado) + "," +
nameof(KRS_Empleados.programaExterno_descripcion) + "," +
nameof(KRS_Empleados.idHoraExtraCabecera) + "," +
nameof(KRS_Empleados.permiteFichajeWeb) + "," +
nameof(KRS_Empleados.claveAccesoWeb) +
" FROM " + nameof(KRS_Empleados) +
" WHERE " +
nameof(KRS_Empleados.id) + "=@id and " +
nameof(KRS_Empleados.codigoCliente) + "=@codigoCliente ";
//Parametros
object[] arr_Parametros = new object[]
{
new SqlParameter("@id", _lng_id),
new SqlParameter("@codigoCliente", Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO)
};
//Rellenar el Modelo
g_dnm_Modelo_Obtener = obj_KairosProEntities.Database.SqlQuery<KRS_Empleados>(str_SQL, arr_Parametros).FirstOrDefault();
#region Rellenar tablas Relacionadas
if (g_dnm_Modelo_Obtener != null)
{
//reiniciar Valores de los hilos
for (int int_Contador = 0; int_Contador < g_int_TotalHilos_Obtener; int_Contador++)
{
g_bol_Hilos_Terminados_Obtener[int_Contador] = false;
}
//KRS_Ejercicios_PerfilesCabecera ##########################################################################################
ThreadStart obj_ThreadStart_EJERCICIOPERFILESCABECERA = new ThreadStart(Obtener_EjerciciosPerfilesCabecera_Modelo_Obtener);
Thread obj_Thread_EJERCICIOPERFILESCABECERA = new Thread(obj_ThreadStart_EJERCICIOPERFILESCABECERA);
obj_Thread_EJERCICIOPERFILESCABECERA.Start();
//KRS_Empleados_Huellas ##########################################################################################
ThreadStart obj_ThreadStart_HUELLAS = new ThreadStart(Obtener_Huellas_Modelo_Obtener);
Thread obj_Thread_HUELLAS = new Thread(obj_ThreadStart_HUELLAS);
obj_Thread_HUELLAS.Start();
//KRS_Empleados_TraspasoBiometria ##########################################################################################
ThreadStart obj_ThreadStart_EMPLEADOSTRASPASOBIOMETRIA = new ThreadStart(Obtener_TraspasoBiometria_Modelo_Obtener);
Thread obj_Thread_EMPLEADOSTRASPASOBIOMETRIA = new Thread(obj_ThreadStart_EMPLEADOSTRASPASOBIOMETRIA);
obj_Thread_EMPLEADOSTRASPASOBIOMETRIA.Start();
//KRS_Departamentos ##########################################################################################
if (g_dnm_Modelo_Obtener.idDepartamento!=null)
{
ThreadStart obj_ThreadStart_DEPARTAMENTO = new ThreadStart(Obtener_Departamento_Modelo_Obtener);
Thread obj_Thread_DEPARTAMENTO = new Thread(obj_ThreadStart_DEPARTAMENTO);
obj_Thread_DEPARTAMENTO.Start();
}
else
{
g_bol_Hilos_Terminados_Obtener[3] = true;
}
//KRS_HorasExtrasCabecera ##########################################################################################
if (g_dnm_Modelo_Obtener.idHoraExtraCabecera != null)
{
ThreadStart obj_ThreadStart_HORAEXTRACABECERA = new ThreadStart(Obtener_HorasExtrasCabecera_Modelo_Obtener);
Thread obj_Thread_HORAEXTRACABECERA = new Thread(obj_ThreadStart_HORAEXTRACABECERA);
obj_Thread_HORAEXTRACABECERA.Start();
}
else
{
g_bol_Hilos_Terminados_Obtener[4] = true;
}
//KRS_Empleados_ClavesTemporales ##########################################################################################
ThreadStart obj_ThreadStart_EMPLEADOSCLAVESTEMPORALES = new ThreadStart(Obtener_ClavesTemporales_Modelo_Obtener);
Thread obj_Thread_EMPLEADOSCLAVESTEMPORALES = new Thread(obj_ThreadStart_EMPLEADOSCLAVESTEMPORALES);
obj_Thread_EMPLEADOSCLAVESTEMPORALES.Start();
//KRS_Empleados_Contratos ##########################################################################################
ThreadStart obj_ThreadStart_EMPLEADOSCONTRATOS= new ThreadStart(Obtener_EmpleadosContratos_Modelo_Obtener);
Thread obj_Thread_EMPLEADOSCONTRATOS = new Thread(obj_ThreadStart_EMPLEADOSCONTRATOS);
obj_Thread_EMPLEADOSCONTRATOS.Start();
//Esperando a que terminen todos los hilos .........................................
bool bol_Termino = false;
while (bol_Termino == false)
{
bol_Termino = true;
foreach (bool bol_Termino_Hilo in g_bol_Hilos_Terminados_Obtener)
{
if (bol_Termino_Hilo == false)
{
bol_Termino = false;
break;
}
}
Thread.Sleep(10);
}
//.................................................................................
}
#endregion
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Obtener), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
return g_dnm_Modelo_Obtener;
}
#region Tablas Relacionadas
private void Obtener_EjerciciosPerfilesCabecera_Modelo_Obtener()
{
try
{
KRS_Ejercicios_PerfilesCabecera_Datos obj_KRS_Ejercicios_PerfilesCabecera_Datos = new KRS_Ejercicios_PerfilesCabecera_Datos();
g_dnm_Modelo_Obtener.KRS_Ejercicios_PerfilesCabecera = obj_KRS_Ejercicios_PerfilesCabecera_Datos.Obtener_ModeloListado_Por_IdEmpleado(g_dnm_Modelo_Obtener.id,null,true);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Obtener[0] = true;
}
}
private void Obtener_Huellas_Modelo_Obtener()
{
try
{
KRS_Empleados_Huellas_Datos obj_KRS_Empleados_Huellas_Datos = new KRS_Empleados_Huellas_Datos();
g_dnm_Modelo_Obtener.KRS_Empleados_Huellas = obj_KRS_Empleados_Huellas_Datos.Obtener_ModeloListado_Por_IdEmpleado(g_dnm_Modelo_Obtener.id);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Obtener[1] = true;
}
}
private void Obtener_TraspasoBiometria_Modelo_Obtener()
{
try
{
KRS_Empleados_TraspasoBiometria_Datos obj_KRS_Empleados_TraspasoBiometria_Datos = new KRS_Empleados_TraspasoBiometria_Datos();
g_dnm_Modelo_Obtener.KRS_Empleados_TraspasoBiometria = obj_KRS_Empleados_TraspasoBiometria_Datos.Obtener_ModeloListado_Por_IdEmpleado(g_dnm_Modelo_Obtener.id);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Obtener[2] = true;
}
}
private void Obtener_Departamento_Modelo_Obtener()
{
try
{
KRS_Departamentos_Datos obj_KRS_Departamentos_Datos = new KRS_Departamentos_Datos();
g_dnm_Modelo_Obtener.KRS_Departamentos = obj_KRS_Departamentos_Datos.Obtener_Modelo_Por_Id(g_dnm_Modelo_Obtener.idDepartamento, g_dnm_Modelo_Obtener.codigoCliente,true);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Obtener[3] = true;
}
}
private void Obtener_HorasExtrasCabecera_Modelo_Obtener()
{
try
{
KRS_HorasExtrasCabecera_Datos obj_KRS_HorasExtrasCabecera_Datos = new KRS_HorasExtrasCabecera_Datos();
g_dnm_Modelo_Obtener.KRS_HorasExtrasCabecera = obj_KRS_HorasExtrasCabecera_Datos.Obtener_Modelo_Por_Id(g_dnm_Modelo_Obtener.idHoraExtraCabecera, g_dnm_Modelo_Obtener.codigoCliente);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Obtener[4] = true;
}
}
private void Obtener_ClavesTemporales_Modelo_Obtener()
{
try
{
KRS_Empleados_ClavesTemporales_Datos obj_KRS_Empleados_ClavesTemporales_Datos = new KRS_Empleados_ClavesTemporales_Datos();
g_dnm_Modelo_Obtener.KRS_Empleados_ClavesTemporales = obj_KRS_Empleados_ClavesTemporales_Datos.Obtener_ModeloListado_Por_IdEmpleado(g_dnm_Modelo_Obtener.id);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Obtener[5] = true;
}
}
private void Obtener_EmpleadosContratos_Modelo_Obtener()
{
try
{
KRS_Empleados_Contratos_Datos obj_KRS_Empleados_Contratos_Datos = new KRS_Empleados_Contratos_Datos();
g_dnm_Modelo_Obtener.KRS_Empleados_Contratos = obj_KRS_Empleados_Contratos_Datos.Obtener_ModeloListado_Por_Empleado(g_dnm_Modelo_Obtener.id, g_dnm_Modelo_Obtener.codigoCliente);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Obtener[6] = true;
}
}
#endregion
#endregion
public override dynamic Obtener_Registro_PorCampo(string _str_CampoBusqueda, string _str_Filtro)
{
throw new NotImplementedException();
}
#region Para Listado
private List<INTERNO_KRS_Empleados_Modelo> g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO = null;
#region Listado
private GEN_EjerciciosActivos_Empresa g_mdl_GEN_EjerciciosActivos_Empresa_PARALISTADO = null;
private List<KRS_Ejercicios_PerfilesCabecera> g_lst_KRS_Ejercicios_PerfilesCabecera_PARALISTADO = null;
private List<KRS_AusenciasProgramadas> g_lst_KRS_AusenciasProgramadas_PARALISTADO = null;
private List<KRS_PresenciasProgramadas> g_lst_KRS_PresenciasProgramadas_PARALISTADO = null;
private List<KRS_Empleados_Contratos> g_lst_KRS_Empleados_Contratos_PARALISTADO = null;
private static int g_int_TotalHilos_Modelo_PARALISTADO = 4;
private bool[] g_bol_Hilos_Terminados_Modelo_PARALISTADO = new bool[g_int_TotalHilos_Modelo_PARALISTADO];
public List<INTERNO_KRS_Empleados_Modelo> Obtener_Registros_Para_Listado(GEN_EjerciciosActivos_Empresa _mdl_GEN_EjerciciosActivos_Empresa, List<long> _lst_idEmpleado)
{
KairosProEntities obj_KairosProEntities = null;
try
{
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
//Ejecicio
g_mdl_GEN_EjerciciosActivos_Empresa_PARALISTADO = _mdl_GEN_EjerciciosActivos_Empresa;
List<SqlParameter> lst_Parametros = new List<SqlParameter>();
string str_Filtro_Empleados = Funciones.Formar_ContenidoIN_ParaConsultaWhere(_lst_idEmpleado);
string str_SQL = Obtener_Consulta_Para_Listado();
string str_Where = nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.codigoCliente) + " = @codigoCliente AND " +
nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.fechaBorrado) + " is null and " +
((_lst_idEmpleado != null && _lst_idEmpleado.Count>0) ? (nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.id) + " in (" + str_Filtro_Empleados + ")") : " 1=1 ");
str_SQL = str_SQL.Replace("XXXXXXXXXX", str_Where);
//Parametros
lst_Parametros.Add(new SqlParameter("@codigoCliente", Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO));
object[] arr_Parametros = lst_Parametros.ToArray();
//Rellenar listado principal
g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO = obj_KairosProEntities.Database.SqlQuery<INTERNO_KRS_Empleados_Modelo>(str_SQL, arr_Parametros).ToList();
if (g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO != null && g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO.Count>0)
{
//reiniciar Valores de los hilos
for (int int_Contador = 0; int_Contador < g_int_TotalHilos_Modelo_PARALISTADO; int_Contador++)
{
g_bol_Hilos_Terminados_Modelo_PARALISTADO[int_Contador] = false;
}
//KRS_Ejercicios_PerfilesCabecera ##########################################################################################
ThreadStart obj_ThreadStart_PERFILESCABECERA = new ThreadStart(Obtener_ParaListado_PerfilCabecera_Modelo);
Thread obj_Thread_PERFILESCABECERA = new Thread(obj_ThreadStart_PERFILESCABECERA);
obj_Thread_PERFILESCABECERA.Start();
//KRS_AusenciasProgramadas ##########################################################################################
ThreadStart obj_ThreadStart_AUSENCIASPROGRAMADAS = new ThreadStart(Obtener_ParaListado_AusenciasProgramadas_Modelo);
Thread obj_Thread_AUSENCIASPROGRAMADAS = new Thread(obj_ThreadStart_AUSENCIASPROGRAMADAS);
obj_Thread_AUSENCIASPROGRAMADAS.Start();
//KRS_PresenciasProgramadas ##########################################################################################
ThreadStart obj_ThreadStart_PRESENCIASPROGRAMADAS = new ThreadStart(Obtener_ParaListado_PresenciasProgramadas_Modelo);
Thread obj_Thread_PRESENCIASPROGRAMADAS = new Thread(obj_ThreadStart_PRESENCIASPROGRAMADAS);
obj_Thread_PRESENCIASPROGRAMADAS.Start();
//KRS_Empleados_Contratos ##########################################################################################
ThreadStart obj_ThreadStart_EMPLEADOSCONTRATOS = new ThreadStart(Obtener_ParaListado_EmpleadosContratos_Modelo);
Thread obj_Thread_EMPLEADOSCONTRATOS = new Thread(obj_ThreadStart_EMPLEADOSCONTRATOS);
obj_Thread_EMPLEADOSCONTRATOS.Start();
//Esperando a que terminen todos los hilos .........................................
bool bol_Termino = false;
while (bol_Termino == false)
{
bol_Termino = true;
foreach (bool bol_Termino_Hilo in g_bol_Hilos_Terminados_Modelo_PARALISTADO)
{
if (bol_Termino_Hilo == false)
{
bol_Termino = false;
break;
}
}
Thread.Sleep(10);
}
//.................................................................................
//rellenar otras tablas
KRS_Ejercicios_PerfilesCabecera mdl_KRS_Ejercicios_PerfilesCabecera = null;
foreach (INTERNO_KRS_Empleados_Modelo mdl_INTERNO_KRS_Empleados_Modelo in g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO)
{
//KRS_Ejercicios_PerfilesCabecera ##########################################################################################
if (g_lst_KRS_Ejercicios_PerfilesCabecera_PARALISTADO != null && g_lst_KRS_Ejercicios_PerfilesCabecera_PARALISTADO.Count > 0)
{
//Buscar perfilCabecera del Empleado segun ejercicio
mdl_KRS_Ejercicios_PerfilesCabecera= g_lst_KRS_Ejercicios_PerfilesCabecera_PARALISTADO.Where(m => m.idEmpleado.Equals(mdl_INTERNO_KRS_Empleados_Modelo.id)).FirstOrDefault();
if (mdl_KRS_Ejercicios_PerfilesCabecera!=null && mdl_KRS_Ejercicios_PerfilesCabecera.KRS_PerfilesCabecera!=null)
{
mdl_INTERNO_KRS_Empleados_Modelo.PerfilesCabecera = mdl_KRS_Ejercicios_PerfilesCabecera.KRS_PerfilesCabecera;
}
else
{
mdl_INTERNO_KRS_Empleados_Modelo.PerfilesCabecera = null;
}
}
//KRS_AusenciasProgramadas ##########################################################################################
if (g_lst_KRS_AusenciasProgramadas_PARALISTADO != null &&
g_lst_KRS_AusenciasProgramadas_PARALISTADO.Count > 0)
{
mdl_INTERNO_KRS_Empleados_Modelo.KRS_AusenciasProgramadas= g_lst_KRS_AusenciasProgramadas_PARALISTADO.Where(m => m.idEmpleado.Equals(mdl_INTERNO_KRS_Empleados_Modelo.id)).ToList();
}
//KRS_PresenciasProgramadas ##########################################################################################
if (g_lst_KRS_PresenciasProgramadas_PARALISTADO != null &&
g_lst_KRS_PresenciasProgramadas_PARALISTADO.Count > 0)
{
mdl_INTERNO_KRS_Empleados_Modelo.KRS_PresenciasProgramadas = g_lst_KRS_PresenciasProgramadas_PARALISTADO.Where(m => m.idEmpleado.Equals(mdl_INTERNO_KRS_Empleados_Modelo.id)).ToList();
}
//KRS_Empleados_Contratos ##########################################################################################
if (g_lst_KRS_Empleados_Contratos_PARALISTADO != null &&
g_lst_KRS_Empleados_Contratos_PARALISTADO.Count > 0)
{
mdl_INTERNO_KRS_Empleados_Modelo.KRS_Empleados_Contratos = g_lst_KRS_Empleados_Contratos_PARALISTADO.Where(m => m.idEmpleado.Equals(mdl_INTERNO_KRS_Empleados_Modelo.id)).ToList();
}
}
}
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Obtener_Registros_Para_Listado), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
return g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO;
}
#region Tablas Relacionadas
private void Obtener_ParaListado_PerfilCabecera_Modelo()
{
try
{
KRS_Ejercicios_PerfilesCabecera_Datos obj_KRS_Ejercicios_PerfilesCabecera_Datos = new KRS_Ejercicios_PerfilesCabecera_Datos();
g_lst_KRS_Ejercicios_PerfilesCabecera_PARALISTADO = obj_KRS_Ejercicios_PerfilesCabecera_Datos.Obtener_ModeloListado_Por_EjercicioEmpresaEmpleadoCodigoCliente( g_mdl_GEN_EjerciciosActivos_Empresa_PARALISTADO.id,
g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO.Select(m=>m.id).ToList(),
Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO,
g_mdl_GEN_EjerciciosActivos_Empresa_PARALISTADO);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Modelo_PARALISTADO[0] = true;
}
}
private void Obtener_ParaListado_AusenciasProgramadas_Modelo()
{
try
{
KRS_AusenciasProgramadas_Datos obj_KRS_AusenciasProgramadas_Datos = new KRS_AusenciasProgramadas_Datos();
g_lst_KRS_AusenciasProgramadas_PARALISTADO = obj_KRS_AusenciasProgramadas_Datos.Obtener_ModeloListado_Por_IdEmpleadosEjercicio(g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO.Select(m => m.id).ToList(),
Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO,
g_mdl_GEN_EjerciciosActivos_Empresa_PARALISTADO,
true);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Modelo_PARALISTADO[1] = true;
}
}
private void Obtener_ParaListado_PresenciasProgramadas_Modelo()
{
try
{
KRS_PresenciasProgramadas_Datos obj_KRS_PresenciasProgramadas_Datos = new KRS_PresenciasProgramadas_Datos();
g_lst_KRS_PresenciasProgramadas_PARALISTADO = obj_KRS_PresenciasProgramadas_Datos.Obtener_ModeloListado_Por_IdEmpleadosEjercicio(g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO.Select(m => m.id).ToList(),
Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO,
g_mdl_GEN_EjerciciosActivos_Empresa_PARALISTADO,
true,
true);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Modelo_PARALISTADO[2] = true;
}
}
private void Obtener_ParaListado_EmpleadosContratos_Modelo()
{
try
{
KRS_Empleados_Contratos_Datos obj_KRS_Empleados_Contratos_Datos = new KRS_Empleados_Contratos_Datos();
g_lst_KRS_Empleados_Contratos_PARALISTADO = obj_KRS_Empleados_Contratos_Datos.Obtener_ModeloListado_Por_EmpleadoEjercicio(g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO.Select(m => m.id).ToList(),
Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO,
g_mdl_GEN_EjerciciosActivos_Empresa_PARALISTADO,
true);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Modelo_PARALISTADO[3] = true;
}
}
#endregion
#endregion
#region Listado Simple
public List<INTERNO_KRS_Empleados_Modelo> Obtener_Registros_Para_Listado_Simple(bool _bol_Cargar_Departamentos,DateTime _dtt_FechaActual)
{
KairosProEntities obj_KairosProEntities = null;
try
{
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
List<SqlParameter> lst_Parametros = new List<SqlParameter>();
string str_SQL = Obtener_Consulta_Para_Listado();
string str_Where = nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.codigoCliente) + " = @codigoCliente AND " +
" ( " +
nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.fechaBaja) + " is null or " +
nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.fechaBaja) + " > @fechaActual " +
" ) and " +
nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.fechaBorrado) + " is null ";
str_SQL = str_SQL.Replace("XXXXXXXXXX", str_Where);
//Parametros
lst_Parametros.Add(new SqlParameter("@codigoCliente", Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO));
lst_Parametros.Add(new SqlParameter("@fechaActual", _dtt_FechaActual));
object[] arr_Parametros = lst_Parametros.ToArray();
//Rellenar listado principal
g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO = obj_KairosProEntities.Database.SqlQuery<INTERNO_KRS_Empleados_Modelo>(str_SQL, arr_Parametros).ToList();
if (_bol_Cargar_Departamentos)
{
if (g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO != null && g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO.Count > 0)
{
KRS_Departamentos_Datos obj_KRS_Departamentos_Datos = new KRS_Departamentos_Datos();
List<KRS_Departamentos> lst_KRS_Departamentos = obj_KRS_Departamentos_Datos.Obtener_ModeloListado_Por_Ids(g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO.Where(m => m.idDepartamento != null).Select(m => m.idDepartamento.Value).ToList());
//rellenar otras tablas
foreach (INTERNO_KRS_Empleados_Modelo mdl_INTERNO_KRS_Empleados_Modelo in g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO)
{
//KRS_Departamentos ##########################################################################################
if (mdl_INTERNO_KRS_Empleados_Modelo.idDepartamento != null &&
lst_KRS_Departamentos != null &&
lst_KRS_Departamentos.Count > 0)
{
mdl_INTERNO_KRS_Empleados_Modelo.KRS_Departamentos = lst_KRS_Departamentos.Where(m => m.id.Equals(mdl_INTERNO_KRS_Empleados_Modelo.idDepartamento.Value)).FirstOrDefault();
}
}
}
}
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Obtener_Registros_Para_Listado_Simple), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
return g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO;
}
#endregion
private string Obtener_Consulta_Para_Listado()
{
return
" SELECT " +
nameof(INTERNO_KRS_Empleados_Modelo.id) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.id) + " , " +
nameof(INTERNO_KRS_Empleados_Modelo.codigoCliente) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.codigoCliente) + " , " +
nameof(INTERNO_KRS_Empleados_Modelo.idDepartamento) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.idDepartamento) + " , " +
nameof(INTERNO_KRS_Empleados_Modelo.nombre) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.nombre) + " , " +
nameof(INTERNO_KRS_Empleados_Modelo.codigoValidacion) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.codigoValidacion) + " , " +
nameof(INTERNO_KRS_Empleados_Modelo.fechaBaja) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.fechaBaja) + " , " +
nameof(INTERNO_KRS_Empleados_Modelo.pin) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.pin) + " , " +
nameof(INTERNO_KRS_Empleados_Modelo.tecnico) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.tecnico) + " , " +
nameof(INTERNO_KRS_Empleados_Modelo.fechaActualizacion) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.fechaActualizacion) + " , " +
nameof(INTERNO_KRS_Empleados_Modelo.fechaBorrado) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.fechaBorrado) + " , " +
nameof(INTERNO_KRS_Empleados_Modelo.idEmpresa_FichajeAutomatico) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.idEmpresa_FichajeAutomatico) + " , " +
nameof(INTERNO_KRS_Empleados_Modelo.idEmpresa) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.idEmpresa) + " , " +
nameof(INTERNO_KRS_Empleados_Modelo.idHoraExtraCabecera) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.idHoraExtraCabecera) + " , " +
nameof(INTERNO_KRS_Empleados_Modelo.permiteFichajeWeb) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.permiteFichajeWeb) + " , " +
nameof(INTERNO_KRS_Empleados_Modelo.claveAccesoWeb) + " = " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.claveAccesoWeb) +
" FROM " + nameof(KRS_Empleados) +
" WHERE XXXXXXXXXX ";
}
#endregion
public List<long> Obtener_Listado_Por_EjercicioPerfilCabecera(long _lng_idEjercicio, long _lng_idPerfilCabecera)
{
KairosProEntities obj_KairosProEntities = null;
List<long> lst_idEmpleado = new List<long>();
try
{
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
string str_SQL =
" SELECT " +
nameof(KRS_Ejercicios_PerfilesCabecera.idEmpleado) +
" FROM " + nameof(KRS_Ejercicios_PerfilesCabecera) +
" WHERE " +
nameof(KRS_Ejercicios_PerfilesCabecera.idEjercicio) + "=@idEjercicio and " +
nameof(KRS_Ejercicios_PerfilesCabecera.idPerfilCabecera) + "=@idPerfilCabecera and " +
nameof(KRS_Ejercicios_PerfilesCabecera.codigoCliente) + "=@codigoCliente ";
//Parametros
object[] arr_Parametros = new object[]
{
new SqlParameter("@idEjercicio", _lng_idEjercicio),
new SqlParameter("@idPerfilCabecera", _lng_idPerfilCabecera),
new SqlParameter("@codigoCliente", Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO)
};
//Rellenar el Modelo
lst_idEmpleado = obj_KairosProEntities.Database.SqlQuery<long>(str_SQL, arr_Parametros).ToList();
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Obtener_Listado_Por_EjercicioPerfilCabecera), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
return lst_idEmpleado;
}
public INTERNO_ValorDevuelto_Modelo Buscar_CodigoValidacion_Repetido(string _str_Valor,long _lng_idEmpleado)
{
KairosProEntities obj_KairosProEntities = null;
INTERNO_ValorDevuelto_Modelo mdl_INTERNO_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
mdl_INTERNO_ValorDevuelto_Modelo.TodoCorrecto = true;
try
{
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
string str_SQL = " SELECT " + nameof(KRS_Empleados.id) +
" FROM " + nameof(KRS_Empleados) +
" WHERE " + nameof(KRS_Empleados.codigoCliente) + "=" + Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO + " and " +
nameof(KRS_Empleados.codigoValidacion) + " = " + "'" + _str_Valor + "' and " +
nameof(KRS_Empleados.fechaBorrado) + " is null and " +
nameof(KRS_Empleados.fechaBaja) + " is null ";
long? lng_idEmpleado = obj_KairosProEntities.Database.SqlQuery<long>(str_SQL).FirstOrDefault();
//Si devuelve algun valor es que el codigo ya existe
if (lng_idEmpleado != null && lng_idEmpleado.Value > 0)
{
if (!(lng_idEmpleado.Value == _lng_idEmpleado))//Si es igual que el id del empleado actual (esta modificando)
{
mdl_INTERNO_ValorDevuelto_Modelo.TodoCorrecto = false;
mdl_INTERNO_ValorDevuelto_Modelo.Mensaje = Mensajes.G_STR_MENSAJES_GENERAL_ERROR_CODIGOVALIDACIONREPETIDO();
}
}
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Buscar_CodigoValidacion_Repetido), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
return mdl_INTERNO_ValorDevuelto_Modelo;
}
public List<long> Obtener_Empresas_Segun_CodigoCliente(long _lng_CodigoCliente)
{
KairosProEntities obj_KairosProEntities = null;
List<long> lst_idEmpresa= null;
try
{
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
string str_SQL = " SELECT distinct " + nameof(KRS_Empleados.idEmpresa) +
" FROM " + nameof(KRS_Empleados) +
" WHERE (" + nameof(KRS_Empleados.codigoCliente) + "=" + _lng_CodigoCliente + ") and " +
" ( not " + nameof(KRS_Empleados.idEmpresa) + " is null) and " +
" ( " + nameof(KRS_Empleados.fechaBorrado) + " is null) and " +
" ( " + nameof(KRS_Empleados.fechaBaja) + " is null) ";
lst_idEmpresa = obj_KairosProEntities.Database.SqlQuery<long>(str_SQL).ToList();
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Obtener_Empresas_Segun_CodigoCliente), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
return lst_idEmpresa;
}
#endregion
#region MODELOS
#region Modelo Simple
private KRS_Empleados g_mdl_KRS_Empleados = null;
public KRS_Empleados Obtener_Modelo_Por_Id(long _lng_id,
long _lng_CodigoCliente,
bool _bol_Cargar_Departamentos,
bool _bol_Cargar_EmpleadosFotos)
{
try
{
string str_SQL = Obtener_Consulta_Modelo() +
//WHERE
" WHERE " +
nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.id) + "=@id and " +
nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.codigoCliente) + "=@codigoCliente ";
//Parametros
object[] arr_Parametros = new object[]
{
new SqlParameter("@id", _lng_id),
new SqlParameter("@codigoCliente", _lng_CodigoCliente)
};
//Ejecutar y rellenar el modelo
Ejecutar_Consulta_Modelo(str_SQL,
arr_Parametros,
_bol_Cargar_Departamentos,
_bol_Cargar_EmpleadosFotos);
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Obtener_Modelo_Por_Id), true);
}
return g_mdl_KRS_Empleados;
}
#region Ejecutar_Consulta_Modelo
private static int g_int_TotalHilos_Modelo = 2;
private bool[] g_bol_Hilos_Terminados_Modelo = new bool[g_int_TotalHilos_Modelo];
private void Ejecutar_Consulta_Modelo(string _str_SQL,
object[] _arr_Parametros,
bool _bol_Cargar_Departamentos,
bool _bol_Cargar_EmpleadosFotos)
{
KairosProEntities obj_KairosProEntities = null;
try
{
//Conexion
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
//Rellenar el Modelo
g_mdl_KRS_Empleados = obj_KairosProEntities.Database.SqlQuery<KRS_Empleados>(_str_SQL, _arr_Parametros).FirstOrDefault();
#region Rellenar Tablas Relacionadas
if (g_mdl_KRS_Empleados != null)
{
//reiniciar Valores de los hilos
for (int int_Contador = 0; int_Contador < g_int_TotalHilos_Modelo; int_Contador++)
{
g_bol_Hilos_Terminados_Modelo[int_Contador] = false;
}
//KRS_Departamentos ##########################################################################################
if (_bol_Cargar_Departamentos &&
g_mdl_KRS_Empleados.idDepartamento!=null)
{
ThreadStart obj_ThreadStart_DEPARTAMENTOS = new ThreadStart(Obtener_Departamentos_Modelo);
Thread obj_Thread_DEPARTAMENTOS = new Thread(obj_ThreadStart_DEPARTAMENTOS);
obj_Thread_DEPARTAMENTOS.Start();
}
else
{
g_bol_Hilos_Terminados_Modelo[0] = true;
}
//KRS_EmpleadosFotos ##########################################################################################
if (_bol_Cargar_EmpleadosFotos)
{
ThreadStart obj_ThreadStart_EMPLEADOSFOTOS = new ThreadStart(Obtener_EmpleadosFotos_Modelo);
Thread obj_Thread_EMPLEADOSFOTOS = new Thread(obj_ThreadStart_EMPLEADOSFOTOS);
obj_Thread_EMPLEADOSFOTOS.Start();
}
else
{
g_bol_Hilos_Terminados_Modelo[1] = true;
}
//Esperando a que terminen todos los hilos .........................................
bool bol_Termino = false;
while (bol_Termino == false)
{
bol_Termino = true;
foreach (bool bol_Termino_Hilo in g_bol_Hilos_Terminados_Modelo)
{
if (bol_Termino_Hilo == false)
{
bol_Termino = false;
break;
}
}
Thread.Sleep(10);
}
//.................................................................................
}
#endregion
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Ejecutar_Consulta_Modelo), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
}
#region Tablas Relacionadas
private void Obtener_Departamentos_Modelo()
{
try
{
KRS_Departamentos_Datos obj_KRS_Departamentos_Datos = new KRS_Departamentos_Datos();
g_mdl_KRS_Empleados.KRS_Departamentos = obj_KRS_Departamentos_Datos.Obtener_Modelo_Por_Id(g_mdl_KRS_Empleados.idDepartamento.Value, g_mdl_KRS_Empleados.codigoCliente,true);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Modelo[0] = true;
}
}
private void Obtener_EmpleadosFotos_Modelo()
{
try
{
KRS_EmpleadosFotos_Datos obj_KRS_EmpleadosFotos_Datos = new KRS_EmpleadosFotos_Datos();
g_mdl_KRS_Empleados.KRS_EmpleadosFotos = obj_KRS_EmpleadosFotos_Datos.Obtener_ModeloListado_Por_IdEmpleado(g_mdl_KRS_Empleados.id, g_mdl_KRS_Empleados.codigoCliente);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Modelo[1] = true;
}
}
#endregion
#endregion
#endregion
#region Modelo Listado
private List<KRS_Empleados> g_lst_KRS_Empleados = null;
public List<KRS_Empleados> Obtener_ModeloListado(long _lng_CodigoCliente)
{
try
{
//Consulta
string str_SQL = Obtener_Consulta_Modelo() +
//WHERE
" WHERE " +
nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.fechaBorrado) + " is null and " +
nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.codigoCliente) + "=@codigoCliente " +
//ORDER BY
" ORDER BY " + nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.id) + " DESC ";
//Parametros
object[] arr_Parametros = new object[]
{
new SqlParameter("@codigoCliente", _lng_CodigoCliente)
};
//Ejecutar y rellenar el listado
Ejecutar_Consulta_Modelo_Listado(str_SQL,
arr_Parametros);
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Obtener_ModeloListado_Por_Ids), true);
}
return g_lst_KRS_Empleados;
}
public List<KRS_Empleados> Obtener_ModeloListado_Por_Ids(List<long> _lst_Ids)
{
try
{
if (_lst_Ids != null && _lst_Ids.Count > 0)
{
string str_Filtros_IDS = Funciones.Formar_ContenidoIN_ParaConsultaWhere(nameof(KRS_Empleados),
nameof(KRS_Empleados.id),
G_ENUM_FORMARCONTENIDOIN_CONDICIONANTES.NADA,
_lst_Ids);
//Consulta
string str_SQL = Obtener_Consulta_Modelo() +
//WHERE
" WHERE " +
nameof(KRS_Empleados) + "." + nameof(KRS_Empleados.codigoCliente) + "=@codigoCliente and " +
str_Filtros_IDS;
//Parametros
List<SqlParameter> lst_Parametros = new List<SqlParameter>();
lst_Parametros.Add(new SqlParameter("@codigoCliente", Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO));
object[] arr_Parametros = lst_Parametros.ToArray();
//Ejecutar y rellenar el listado
Ejecutar_Consulta_Modelo_Listado(str_SQL,
arr_Parametros);
}
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Obtener_ModeloListado_Por_Ids), true);
}
return g_lst_KRS_Empleados;
}
#region Ejecutar Consulta
private void Ejecutar_Consulta_Modelo_Listado(string _str_SQL,
object[] _arr_Parametros)
{
KairosProEntities obj_KairosProEntities = null;
try
{
//Conexion
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
//Rellenar el modelo
g_lst_KRS_Empleados = obj_KairosProEntities.Database.SqlQuery<KRS_Empleados>(_str_SQL, _arr_Parametros).ToList();
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Ejecutar_Consulta_Modelo_Listado), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
}
#endregion
#endregion
private string Obtener_Consulta_Modelo()
{
return
" SELECT " +
nameof(KRS_Empleados.id) + " , " +
nameof(KRS_Empleados.codigoCliente) + " , " +
nameof(KRS_Empleados.nombre) + " , " +
nameof(KRS_Empleados.codigoValidacion) + " , " +
nameof(KRS_Empleados.fechaBaja) + " , " +
nameof(KRS_Empleados.pin) + " , " +
nameof(KRS_Empleados.tecnico) + " , " +
nameof(KRS_Empleados.usoHorario) + " , " +
nameof(KRS_Empleados.sacarFotoFichaje) + " , " +
nameof(KRS_Empleados.fechaActualizacion) + " , " +
nameof(KRS_Empleados.fechaBorrado) + " , " +
nameof(KRS_Empleados.numeroTarjetaFichaje) + " , " +
nameof(KRS_Empleados.idDepartamento) + " , " +
nameof(KRS_Empleados.idEmpresa) + " , " +
nameof(KRS_Empleados.email) + " , " +
nameof(KRS_Empleados.permiteRecordatorio) + " , " +
nameof(KRS_Empleados.permiteFichajeAutomatico) + " , " +
nameof(KRS_Empleados.idEmpresa_FichajeAutomatico) + " , " +
nameof(KRS_Empleados.programaExterno_idEmpleado) + " , " +
nameof(KRS_Empleados.programaExterno_descripcion) + " , " +
nameof(KRS_Empleados.idHoraExtraCabecera) + " , " +
nameof(KRS_Empleados.claveAccesoWeb) + " , " +
nameof(KRS_Empleados.permiteFichajeWeb) +
" FROM " + nameof(KRS_Empleados);
}
#endregion
#region Grabar
public override INTERNO_ValorDevuelto_Modelo Grabar(object _mdl_obj)
{
KairosProEntities obj_KairosProEntities = null;
INTERNO_ValorDevuelto_Modelo mdl_INTERNO_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
mdl_INTERNO_ValorDevuelto_Modelo.TodoCorrecto = true;
try
{
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
KRS_Empleados mdl_KRS_Empleados_AGrabar = (KRS_Empleados)_mdl_obj;
KRS_Empleados mdl_KRS_Empleados_DatosViejos = new KRS_Empleados();
KRS_Empleados mdl_KRS_Empleados_Final = Obtener_Modelo_Por_Id(mdl_KRS_Empleados_AGrabar.id, Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO,false,false);
if (mdl_KRS_Empleados_Final != null)
{
//Tipo de Accion que se va a realizar
mdl_INTERNO_ValorDevuelto_Modelo.TipoAccion = G_ENUM_TIPOACCION.INT_MODIFICAR;
//Validado el codigo del cliente, se lo asignamos antes de grabar
mdl_KRS_Empleados_AGrabar.codigoCliente = Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO;
//Fecha utilizada para la sincronizar con la tablet, SIEMPRE PONERLA
mdl_KRS_Empleados_AGrabar.fechaActualizacion = DateTime.Now;
//Datos viejos para la trazabilidar
Funciones.CopiarPropiedadesObjetos(mdl_KRS_Empleados_Final, mdl_KRS_Empleados_DatosViejos, false, false);
//Cargar los Datos del modelo
Funciones.CopiarPropiedadesObjetos(mdl_KRS_Empleados_AGrabar, mdl_KRS_Empleados_Final, false, false);
#region Update
string str_SQL_Update = " UPDATE " + nameof(KRS_Empleados) +
" SET " +
nameof(KRS_Empleados.nombre) + "=@nombre," +
nameof(KRS_Empleados.codigoValidacion) + "=@codigoValidacion," +
nameof(KRS_Empleados.fechaBaja) + "=@fechaBaja," +
nameof(KRS_Empleados.pin) + "=@pin," +
nameof(KRS_Empleados.tecnico) + "=@tecnico," +
nameof(KRS_Empleados.usoHorario) + "=@usoHorario," +
nameof(KRS_Empleados.sacarFotoFichaje) + "=@sacarFotoFichaje," +
nameof(KRS_Empleados.fechaActualizacion) + "=@fechaActualizacion," +
nameof(KRS_Empleados.fechaBorrado) + "=@fechaBorrado," +
nameof(KRS_Empleados.numeroTarjetaFichaje) + "=@numeroTarjetaFichaje," +
nameof(KRS_Empleados.idDepartamento) + "=@idDepartamento," +
nameof(KRS_Empleados.idEmpresa) + "=@idEmpresa," +
nameof(KRS_Empleados.email) + "=@email," +
nameof(KRS_Empleados.permiteRecordatorio) + "=@permiteRecordatorio," +
nameof(KRS_Empleados.permiteFichajeAutomatico) + "=@permiteFichajeAutomatico," +
nameof(KRS_Empleados.idEmpresa_FichajeAutomatico) + "=@idEmpresa_FichajeAutomatico," +
nameof(KRS_Empleados.programaExterno_idEmpleado) + "=@programaExterno_idEmpleado," +
nameof(KRS_Empleados.programaExterno_descripcion) + "=@programaExterno_descripcion," +
nameof(KRS_Empleados.idHoraExtraCabecera) + "=@idHoraExtraCabecera," +
nameof(KRS_Empleados.claveAccesoWeb) + "=@claveAccesoWeb," +
nameof(KRS_Empleados.permiteFichajeWeb) + "=@permiteFichajeWeb" +
" WHERE " +
nameof(KRS_Empleados.id) + "=@id and " +
nameof(KRS_Empleados.codigoCliente) + "=@codigoCliente ";
//Parametros
object[] arr_Parametros_Update = new object[]
{
new SqlParameter("@nombre", mdl_KRS_Empleados_Final.nombre),
new SqlParameter("@codigoValidacion", mdl_KRS_Empleados_Final.codigoValidacion),
mdl_KRS_Empleados_Final.fechaBaja != null
? new SqlParameter("@fechaBaja", mdl_KRS_Empleados_Final.fechaBaja.Value)
: new SqlParameter("@fechaBaja", DBNull.Value),
new SqlParameter("@pin", mdl_KRS_Empleados_Final.pin),
mdl_KRS_Empleados_Final.tecnico != null
? new SqlParameter("@tecnico", mdl_KRS_Empleados_Final.tecnico.Value)
: new SqlParameter("@tecnico", DBNull.Value),
new SqlParameter("@usoHorario", mdl_KRS_Empleados_Final.usoHorario),
new SqlParameter("@sacarFotoFichaje", mdl_KRS_Empleados_Final.sacarFotoFichaje),
new SqlParameter("@fechaActualizacion", mdl_KRS_Empleados_Final.fechaActualizacion),
mdl_KRS_Empleados_Final.fechaBorrado != null
? new SqlParameter("@fechaBorrado", mdl_KRS_Empleados_Final.fechaBorrado.Value)
: new SqlParameter("@fechaBorrado", DBNull.Value),
mdl_KRS_Empleados_Final.numeroTarjetaFichaje != null
? new SqlParameter("@numeroTarjetaFichaje", mdl_KRS_Empleados_Final.numeroTarjetaFichaje)
: new SqlParameter("@numeroTarjetaFichaje", DBNull.Value),
mdl_KRS_Empleados_Final.idDepartamento != null
? new SqlParameter("@idDepartamento", mdl_KRS_Empleados_Final.idDepartamento.Value)
: new SqlParameter("@idDepartamento", DBNull.Value),
mdl_KRS_Empleados_Final.idEmpresa != null
? new SqlParameter("@idEmpresa", mdl_KRS_Empleados_Final.idEmpresa.Value)
: new SqlParameter("@idEmpresa", DBNull.Value),
mdl_KRS_Empleados_Final.email != null
? new SqlParameter("@email", mdl_KRS_Empleados_Final.email)
: new SqlParameter("@email", DBNull.Value),
mdl_KRS_Empleados_Final.permiteRecordatorio != null
? new SqlParameter("@permiteRecordatorio", mdl_KRS_Empleados_Final.permiteRecordatorio.Value)
: new SqlParameter("@permiteRecordatorio", DBNull.Value),
mdl_KRS_Empleados_Final.permiteFichajeAutomatico != null
? new SqlParameter("@permiteFichajeAutomatico", mdl_KRS_Empleados_Final.permiteFichajeAutomatico.Value)
: new SqlParameter("@permiteFichajeAutomatico", DBNull.Value),
mdl_KRS_Empleados_Final.idEmpresa_FichajeAutomatico != null
? new SqlParameter("@idEmpresa_FichajeAutomatico", mdl_KRS_Empleados_Final.idEmpresa_FichajeAutomatico.Value)
: new SqlParameter("@idEmpresa_FichajeAutomatico", DBNull.Value),
mdl_KRS_Empleados_Final.programaExterno_idEmpleado != null
? new SqlParameter("@programaExterno_idEmpleado", mdl_KRS_Empleados_Final.programaExterno_idEmpleado)
: new SqlParameter("@programaExterno_idEmpleado", DBNull.Value),
mdl_KRS_Empleados_Final.programaExterno_descripcion != null
? new SqlParameter("@programaExterno_descripcion", mdl_KRS_Empleados_Final.programaExterno_descripcion)
: new SqlParameter("@programaExterno_descripcion", DBNull.Value),
mdl_KRS_Empleados_Final.idHoraExtraCabecera != null
? new SqlParameter("@idHoraExtraCabecera", mdl_KRS_Empleados_Final.idHoraExtraCabecera.Value)
: new SqlParameter("@idHoraExtraCabecera", DBNull.Value),
mdl_KRS_Empleados_Final.claveAccesoWeb != null
? new SqlParameter("@claveAccesoWeb", mdl_KRS_Empleados_Final.claveAccesoWeb)
: new SqlParameter("@claveAccesoWeb", DBNull.Value),
mdl_KRS_Empleados_Final.permiteFichajeWeb != null
? new SqlParameter("@permiteFichajeWeb", mdl_KRS_Empleados_Final.permiteFichajeWeb.Value)
: new SqlParameter("@permiteFichajeWeb", DBNull.Value),
new SqlParameter("@id", mdl_KRS_Empleados_Final.id),
new SqlParameter("@codigoCliente", mdl_KRS_Empleados_Final.codigoCliente)
};
#endregion
//Update
obj_KairosProEntities.Database.ExecuteSqlCommand(str_SQL_Update, arr_Parametros_Update);
//Id de la tabla
mdl_INTERNO_ValorDevuelto_Modelo.Id = mdl_KRS_Empleados_Final.id;
}
else
{
mdl_KRS_Empleados_Final = new KRS_Empleados();
//Tipo de Accion que se va a realizar
mdl_INTERNO_ValorDevuelto_Modelo.TipoAccion = G_ENUM_TIPOACCION.INT_INSERTAR;
//Validado el codigo del cliente, se lo asignamos antes de grabar
mdl_KRS_Empleados_AGrabar.codigoCliente = Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO;
//Fecha utilizada para la sincronizar con la tablet, SIEMPRE PONERLA
mdl_KRS_Empleados_AGrabar.fechaActualizacion = DateTime.Now;
//Cargar los Datos del modelo
Funciones.CopiarPropiedadesObjetos(mdl_KRS_Empleados_AGrabar, mdl_KRS_Empleados_Final, false, false);
#region INSERT
string str_SQL_Insert = " INSERT INTO " + nameof(KRS_Empleados) +
" (" +
nameof(KRS_Empleados.id) + "," +
nameof(KRS_Empleados.codigoCliente) + "," +
nameof(KRS_Empleados.nombre) + "," +
nameof(KRS_Empleados.codigoValidacion) + "," +
nameof(KRS_Empleados.fechaBaja) + "," +
nameof(KRS_Empleados.pin) + "," +
nameof(KRS_Empleados.tecnico) + "," +
nameof(KRS_Empleados.usoHorario) + "," +
nameof(KRS_Empleados.sacarFotoFichaje) + "," +
nameof(KRS_Empleados.fechaActualizacion) + "," +
nameof(KRS_Empleados.fechaBorrado) + "," +
nameof(KRS_Empleados.numeroTarjetaFichaje) + "," +
nameof(KRS_Empleados.idDepartamento) + "," +
nameof(KRS_Empleados.idEmpresa) + "," +
nameof(KRS_Empleados.email) + "," +
nameof(KRS_Empleados.permiteRecordatorio) + "," +
nameof(KRS_Empleados.permiteFichajeAutomatico) + "," +
nameof(KRS_Empleados.idEmpresa_FichajeAutomatico) + "," +
nameof(KRS_Empleados.programaExterno_idEmpleado) + "," +
nameof(KRS_Empleados.programaExterno_descripcion) + "," +
nameof(KRS_Empleados.idHoraExtraCabecera) + "," +
nameof(KRS_Empleados.claveAccesoWeb) + "," +
nameof(KRS_Empleados.permiteFichajeWeb) +
" ) " +
" OUTPUT INSERTED." + nameof(KRS_Empleados.id) +
" VALUES " +
" ( " +
"@id," +
"@codigoCliente," +
"@nombre," +
"@codigoValidacion," +
"@fechaBaja," +
"@pin," +
"@tecnico," +
"@usoHorario," +
"@sacarFotoFichaje," +
"@fechaActualizacion," +
"@fechaBorrado," +
"@numeroTarjetaFichaje," +
"@idDepartamento," +
"@idEmpresa," +
"@email," +
"@permiteRecordatorio," +
"@permiteFichajeAutomatico," +
"@idEmpresa_FichajeAutomatico," +
"@programaExterno_idEmpleado," +
"@programaExterno_descripcion," +
"@idHoraExtraCabecera," +
"@claveAccesoWeb," +
"@permiteFichajeWeb " +
" ) ";
//Parametros
object[] arr_Parametros_Insert = new object[]
{
new SqlParameter("@id", mdl_KRS_Empleados_Final.id),
new SqlParameter("@codigoCliente", mdl_KRS_Empleados_Final.codigoCliente),
new SqlParameter("@nombre", mdl_KRS_Empleados_Final.nombre),
new SqlParameter("@codigoValidacion", mdl_KRS_Empleados_Final.codigoValidacion),
mdl_KRS_Empleados_Final.fechaBaja != null
? new SqlParameter("@fechaBaja", mdl_KRS_Empleados_Final.fechaBaja.Value)
: new SqlParameter("@fechaBaja", DBNull.Value),
new SqlParameter("@pin", mdl_KRS_Empleados_Final.pin),
mdl_KRS_Empleados_Final.tecnico != null
? new SqlParameter("@tecnico", mdl_KRS_Empleados_Final.tecnico.Value)
: new SqlParameter("@tecnico", DBNull.Value),
new SqlParameter("@usoHorario", mdl_KRS_Empleados_Final.usoHorario),
new SqlParameter("@sacarFotoFichaje", mdl_KRS_Empleados_Final.sacarFotoFichaje),
new SqlParameter("@fechaActualizacion", mdl_KRS_Empleados_Final.fechaActualizacion),
mdl_KRS_Empleados_Final.fechaBorrado != null
? new SqlParameter("@fechaBorrado", mdl_KRS_Empleados_Final.fechaBorrado.Value)
: new SqlParameter("@fechaBorrado", DBNull.Value),
mdl_KRS_Empleados_Final.numeroTarjetaFichaje != null
? new SqlParameter("@numeroTarjetaFichaje", mdl_KRS_Empleados_Final.numeroTarjetaFichaje)
: new SqlParameter("@numeroTarjetaFichaje", DBNull.Value),
mdl_KRS_Empleados_Final.idDepartamento != null
? new SqlParameter("@idDepartamento", mdl_KRS_Empleados_Final.idDepartamento.Value)
: new SqlParameter("@idDepartamento", DBNull.Value),
mdl_KRS_Empleados_Final.idEmpresa != null
? new SqlParameter("@idEmpresa", mdl_KRS_Empleados_Final.idEmpresa.Value)
: new SqlParameter("@idEmpresa", DBNull.Value),
mdl_KRS_Empleados_Final.email != null
? new SqlParameter("@email", mdl_KRS_Empleados_Final.email)
: new SqlParameter("@email", DBNull.Value),
mdl_KRS_Empleados_Final.permiteRecordatorio != null
? new SqlParameter("@permiteRecordatorio", mdl_KRS_Empleados_Final.permiteRecordatorio.Value)
: new SqlParameter("@permiteRecordatorio", DBNull.Value),
mdl_KRS_Empleados_Final.permiteFichajeAutomatico != null
? new SqlParameter("@permiteFichajeAutomatico", mdl_KRS_Empleados_Final.permiteFichajeAutomatico.Value)
: new SqlParameter("@permiteFichajeAutomatico", DBNull.Value),
mdl_KRS_Empleados_Final.idEmpresa_FichajeAutomatico != null
? new SqlParameter("@idEmpresa_FichajeAutomatico", mdl_KRS_Empleados_Final.idEmpresa_FichajeAutomatico.Value)
: new SqlParameter("@idEmpresa_FichajeAutomatico", DBNull.Value),
mdl_KRS_Empleados_Final.programaExterno_idEmpleado != null
? new SqlParameter("@programaExterno_idEmpleado", mdl_KRS_Empleados_Final.programaExterno_idEmpleado)
: new SqlParameter("@programaExterno_idEmpleado", DBNull.Value),
mdl_KRS_Empleados_Final.programaExterno_descripcion != null
? new SqlParameter("@programaExterno_descripcion", mdl_KRS_Empleados_Final.programaExterno_descripcion)
: new SqlParameter("@programaExterno_descripcion", DBNull.Value),
mdl_KRS_Empleados_Final.idHoraExtraCabecera != null
? new SqlParameter("@idHoraExtraCabecera", mdl_KRS_Empleados_Final.idHoraExtraCabecera.Value)
: new SqlParameter("@idHoraExtraCabecera", DBNull.Value),
mdl_KRS_Empleados_Final.claveAccesoWeb != null
? new SqlParameter("@claveAccesoWeb", mdl_KRS_Empleados_Final.claveAccesoWeb)
: new SqlParameter("@claveAccesoWeb", DBNull.Value),
mdl_KRS_Empleados_Final.permiteFichajeWeb != null
? new SqlParameter("@permiteFichajeWeb", mdl_KRS_Empleados_Final.permiteFichajeWeb.Value)
: new SqlParameter("@permiteFichajeWeb", DBNull.Value)
};
#endregion
//Id de la tabla
mdl_INTERNO_ValorDevuelto_Modelo.Id = obj_KairosProEntities.Database.SqlQuery<long>(str_SQL_Insert, arr_Parametros_Insert).Single();
}
//Grabar un registro de trazabilidad con los datos de la transaccion realizada
USR_Trazabilidad_Datos.Grabar_Trazabilidad(typeof(KRS_Empleados), mdl_KRS_Empleados_DatosViejos, mdl_KRS_Empleados_Final, mdl_INTERNO_ValorDevuelto_Modelo.TipoAccion, obj_KairosProEntities);
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Grabar), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
return mdl_INTERNO_ValorDevuelto_Modelo;
}
public INTERNO_ValorDevuelto_Modelo Actualizar_FechaBaja(long _lng_id)
{
KairosProEntities obj_KairosProEntities = null;
INTERNO_ValorDevuelto_Modelo mdl_INTERNO_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
mdl_INTERNO_ValorDevuelto_Modelo.TodoCorrecto = true;
try
{
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
string str_SQL_Update = " UPDATE " + nameof(KRS_Empleados) +
" SET " +
nameof(KRS_Empleados.fechaBaja) + "=@fechaBaja" +
" WHERE " +
nameof(KRS_Empleados.id) + "=@id and " +
nameof(KRS_Empleados.codigoCliente) + "=@codigoCliente ";
//Parametros
object[] arr_Parametros_Update = new object[]
{
new SqlParameter("@fechaBaja", DateTime.Now),
new SqlParameter("@id", _lng_id),
new SqlParameter("@codigoCliente", Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO),
};
//Update
obj_KairosProEntities.Database.ExecuteSqlCommand(str_SQL_Update, arr_Parametros_Update);
//Devolver tambien el Objeto
mdl_INTERNO_ValorDevuelto_Modelo.Id = _lng_id;
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Actualizar_FechaBaja), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
return mdl_INTERNO_ValorDevuelto_Modelo;
}
public INTERNO_ValorDevuelto_Modelo Actualizar_FechaBorrado(long _lng_id)
{
KairosProEntities obj_KairosProEntities = null;
INTERNO_ValorDevuelto_Modelo mdl_INTERNO_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
mdl_INTERNO_ValorDevuelto_Modelo.TodoCorrecto = true;
try
{
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
string str_SQL_Update = " UPDATE " + nameof(KRS_Empleados) +
" SET " +
nameof(KRS_Empleados.fechaBorrado) + "=@fechaBorrado" +
" WHERE " +
nameof(KRS_Empleados.id) + "=@id and " +
nameof(KRS_Empleados.codigoCliente) + "=@codigoCliente ";
//Parametros
object[] arr_Parametros_Update = new object[]
{
new SqlParameter("@fechaBorrado", DateTime.Now),
new SqlParameter("@id", _lng_id),
new SqlParameter("@codigoCliente", Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO),
};
//Update
obj_KairosProEntities.Database.ExecuteSqlCommand(str_SQL_Update, arr_Parametros_Update);
//Devolver tambien el Objeto
mdl_INTERNO_ValorDevuelto_Modelo.Id = _lng_id;
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Actualizar_FechaBorrado), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
return mdl_INTERNO_ValorDevuelto_Modelo;
}
#endregion
#region Borrar
public override INTERNO_ValorDevuelto_Modelo Borrar(long _lng_id)
{
KairosProEntities obj_KairosProEntities = null;
INTERNO_ValorDevuelto_Modelo mdl_INTERNO_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
mdl_INTERNO_ValorDevuelto_Modelo.TodoCorrecto = true;
//Tipo de Accion que se va a realizar
mdl_INTERNO_ValorDevuelto_Modelo.TipoAccion = G_ENUM_TIPOACCION.INT_ELIMINAR;
try
{
//Primer Intento de Borrado
obj_KairosProEntities = new KairosProEntities();
obj_KairosProEntities.Configuration.LazyLoadingEnabled = false;
// Ver si existe ######################################################################
KRS_Empleados mdl_KRS_Empleados = Obtener_Modelo_Por_Id(_lng_id, Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO,false,false);
//######################################################################################
if (mdl_KRS_Empleados != null)
{
#region Update
string str_SQL_Update = " UPDATE " + nameof(KRS_Empleados) +
" SET " +
nameof(KRS_Empleados.fechaBorrado) + "=@fechaBorrado " +
" WHERE " +
nameof(KRS_Empleados.id) + "=@id and " +
nameof(KRS_Empleados.codigoCliente) + "=@codigoCliente ";
//Parametros
object[] arr_Parametros_Update = new object[]
{
new SqlParameter("@fechaBorrado", DateTime.Now),
new SqlParameter("@id", _lng_id)
};
#endregion
//Update
obj_KairosProEntities.Database.ExecuteSqlCommand(str_SQL_Update, arr_Parametros_Update);
//Grabar Trazabilidad
USR_Trazabilidad_Datos.Grabar_Trazabilidad(typeof(KRS_Empleados), null, mdl_KRS_Empleados, G_ENUM_TIPOACCION.INT_ELIMINAR, obj_KairosProEntities);
}
//Devolver tambien el objeto
mdl_INTERNO_ValorDevuelto_Modelo.Id = _lng_id;
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(KRS_Empleados_Datos) + "/" + nameof(Borrar), true);
}
finally
{
obj_KairosProEntities.Database.Connection.Close();
obj_KairosProEntities.Dispose();
}
return mdl_INTERNO_ValorDevuelto_Modelo;
}
public override INTERNO_ValorDevuelto_Modelo Borrar(object _mdl_obj)
{
throw new NotImplementedException();
}
public override INTERNO_ValorDevuelto_Modelo Borrar(long _lng_id, long _lng_idAuxiliar)
{
throw new NotImplementedException();
}
#endregion
}
}