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 g_lst_INTERNO_KRS_Empleados_Listado_Modelo = null; public override List Obtener_Listado(List _lst_CamposConRelacionABuscar, List _lst_INTERNO_Filtro_OpcionPadre_Modelo, List _lst_INTERNO_Filtro_Modelo) { KairosProEntities obj_KairosProEntities = null; List 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().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 _lst_CamposConRelacionABuscar, List _lst_INTERNO_Filtro_OpcionPadre_Modelo, List _lst_INTERNO_Filtro_Modelo, long _lng_id, List _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().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 _lst_CamposConRelacionABuscar, long _lng_id, List _lst_id, List _lst_INTERNO_Filtro_OpcionPadre_Modelo, List _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(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 Obtener_Listado_Secundario(List _lst_CamposConRelacionABuscar, List _lst_INTERNO_Filtro_OpcionPadre_Modelo, List _lst_INTERNO_Filtro_Modelo) { return null; } public override dynamic Obtener_RegistroListado_Secundario(List _lst_CamposConRelacionABuscar, List _lst_INTERNO_Filtro_OpcionPadre_Modelo, List _lst_INTERNO_Filtro_Modelo, long _lng_id, List _lst_id) { return null; } protected override void ConsultaRellenar_Listado_Secundario(KairosProEntities _dbcontext, List _lst_CamposConRelacionABuscar, long _lng_id, List _lst_id, List _lst_INTERNO_Filtro_OpcionPadre_Modelo, List _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 _lst_INTERNO_Filtro_OpcionPadre_Modelo, List _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 _lst_INTERNO_Filtro_OpcionPadre_Modelo, List _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 _lst_INTERNO_Filtro_OpcionPadre_Modelo, List _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(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(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 g_lst_INTERNO_KRS_Empleados_Modelo_PARALISTADO = null; #region Listado private GEN_EjerciciosActivos_Empresa g_mdl_GEN_EjerciciosActivos_Empresa_PARALISTADO = null; private List g_lst_KRS_Ejercicios_PerfilesCabecera_PARALISTADO = null; private List g_lst_KRS_AusenciasProgramadas_PARALISTADO = null; private List g_lst_KRS_PresenciasProgramadas_PARALISTADO = null; private List 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 Obtener_Registros_Para_Listado(GEN_EjerciciosActivos_Empresa _mdl_GEN_EjerciciosActivos_Empresa, List _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 lst_Parametros = new List(); 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(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 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 lst_Parametros = new List(); 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(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 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 Obtener_Listado_Por_EjercicioPerfilCabecera(long _lng_idEjercicio, long _lng_idPerfilCabecera) { KairosProEntities obj_KairosProEntities = null; List lst_idEmpleado = new List(); 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(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(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 Obtener_Empresas_Segun_CodigoCliente(long _lng_CodigoCliente) { KairosProEntities obj_KairosProEntities = null; List 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(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(_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 g_lst_KRS_Empleados = null; public List 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 Obtener_ModeloListado_Por_Ids(List _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 lst_Parametros = new List(); 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(_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(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 } }