206 lines
8.3 KiB
C#
206 lines
8.3 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 System.Transactions;
|
|
using static Exferia_Aplicacion.General.Enumerados;
|
|
|
|
namespace Exferia_KairosPRO._2_Datos
|
|
{
|
|
public class KRS_ArbolJerarquico_Datos
|
|
{
|
|
|
|
#region Obtener
|
|
|
|
public List<KRS_ArbolJerarquico> Obtener()
|
|
{
|
|
KairosProEntities obj_KairosProEntities = null;
|
|
|
|
List<KRS_ArbolJerarquico> 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<KRS_ArbolJerarquico>(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<KRS_Empleados> 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<long>(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
|
|
}
|
|
}
|