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 System.Transactions; using static Exferia_Aplicacion.General.Enumerados; namespace Exferia_KairosPRO._2_Datos { public class KRS_ArbolJerarquico_Datos { #region Obtener public List Obtener() { KairosProEntities obj_KairosProEntities = null; List lst_KRS_ArbolJerarquico = null; try { obj_KairosProEntities = new KairosProEntities(); obj_KairosProEntities.Configuration.LazyLoadingEnabled = false; string str_SQL = " SELECT " + nameof(KRS_ArbolJerarquico.id) + "," + nameof(KRS_ArbolJerarquico.codigoCliente) + "," + nameof(KRS_ArbolJerarquico.idEmpleado) + "," + nameof(KRS_ArbolJerarquico.idPadre) + "," + nameof(KRS_ArbolJerarquico.orden) + " FROM " + nameof(KRS_ArbolJerarquico) + " WHERE " + nameof(KRS_ArbolJerarquico.codigoCliente) + "=@codigoCliente "; //Parametros object[] arr_Parametros = new object[] { new SqlParameter("@codigoCliente", Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO) }; //Rellenar el Modelo lst_KRS_ArbolJerarquico = obj_KairosProEntities.Database.SqlQuery(str_SQL, arr_Parametros).ToList(); if (lst_KRS_ArbolJerarquico!=null && lst_KRS_ArbolJerarquico.Count>0) { KRS_Empleados_Datos obj_KRS_Empleados_Datos = new KRS_Empleados_Datos(); List lst_KRS_Empleados = obj_KRS_Empleados_Datos.Obtener_ModeloListado_Por_Ids(lst_KRS_ArbolJerarquico.Select(m=>m.idEmpleado).ToList()); #region DESPUES SE LO VOY ASIGNANDO A LOS REGISTRO UNO A UNO foreach (KRS_ArbolJerarquico mdl_KRS_ArbolJerarquico in lst_KRS_ArbolJerarquico) { //KRS_AusenciasProgramadasTipos ############################################# if (lst_KRS_Empleados != null && lst_KRS_Empleados.Count > 0) { mdl_KRS_ArbolJerarquico.KRS_Empleados = lst_KRS_Empleados.Where(m => m.id == mdl_KRS_ArbolJerarquico.idEmpleado).FirstOrDefault(); } } #endregion } } catch (Control_Errores) { throw; } catch (Exception ex) { throw new Control_Errores("", ex, nameof(KRS_ArbolJerarquico_Datos) + "/" + nameof(Obtener), true); } finally { obj_KairosProEntities.Database.Connection.Close(); obj_KairosProEntities.Dispose(); } return lst_KRS_ArbolJerarquico; } #endregion #region Grabar public INTERNO_ValorDevuelto_Modelo Grabar(KRS_ArbolJerarquico _mdl_KRS_ArbolJerarquico) { 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; //Tipo de Accion que se va a realizar mdl_INTERNO_ValorDevuelto_Modelo.TipoAccion = G_ENUM_TIPOACCION.INT_INSERTAR; string str_SQL_Insert = " INSERT INTO " + nameof(KRS_ArbolJerarquico) + " (" + nameof(KRS_ArbolJerarquico.codigoCliente) + "," + nameof(KRS_ArbolJerarquico.idEmpleado) + "," + nameof(KRS_ArbolJerarquico.idPadre) + "," + nameof(KRS_ArbolJerarquico.orden) + " ) " + " OUTPUT INSERTED." + nameof(KRS_ArbolJerarquico.id) + " VALUES " + " ( " + "@codigoCliente," + "@idEmpleado," + "@idPadre," + "@orden" + " ) "; //Parametros object[] arr_Parametros_Insert = new object[] { new SqlParameter("@codigoCliente", _mdl_KRS_ArbolJerarquico.codigoCliente), new SqlParameter("@idEmpleado", _mdl_KRS_ArbolJerarquico.idEmpleado), _mdl_KRS_ArbolJerarquico.idPadre != null ? new SqlParameter("@idPadre", _mdl_KRS_ArbolJerarquico.idPadre.Value) : new SqlParameter("@idPadre", DBNull.Value), new SqlParameter("@orden", _mdl_KRS_ArbolJerarquico.orden) }; //Insertar //Id de la tabla mdl_INTERNO_ValorDevuelto_Modelo.Id = obj_KairosProEntities.Database.SqlQuery(str_SQL_Insert, arr_Parametros_Insert).Single(); } catch (Control_Errores) { throw; } catch (Exception ex) { throw new Control_Errores("", ex, nameof(KRS_ArbolJerarquico_Datos) + "/" + nameof(Grabar), true); } finally { //Finalizar transaccion obj_KairosProEntities.Database.Connection.Close(); obj_KairosProEntities.Dispose(); } return mdl_INTERNO_ValorDevuelto_Modelo; } #endregion #region Borrar public INTERNO_ValorDevuelto_Modelo Borrar(long _lng_CodigoCliente) { 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; #region Delete string str_SQL_Delete = " DELETE FROM " + nameof(KRS_ArbolJerarquico) + " WHERE " + nameof(KRS_ArbolJerarquico.codigoCliente) + "=@codigoCliente "; //Parametros object[] arr_Parametros_Delete = new object[] { new SqlParameter("@codigoCliente", _lng_CodigoCliente) }; #endregion //Delete obj_KairosProEntities.Database.ExecuteSqlCommand(str_SQL_Delete, arr_Parametros_Delete); } catch (Control_Errores) { throw; } catch (Exception ex) { throw new Control_Errores("", ex, nameof(KRS_ArbolJerarquico_Datos) + "/" + nameof(Borrar), true); } finally { obj_KairosProEntities.Database.Connection.Close(); obj_KairosProEntities.Dispose(); } return mdl_INTERNO_ValorDevuelto_Modelo; } #endregion } }