Exferia/Exferia_ControlGastos/Exferia_ControlGastos/1_Datos/CTG_GastosCabecera_Datos.cs

1507 lines
88 KiB
C#

using Exferia_Aplicacion.General;
using Exferia_Aplicacion.Herencia.Capas;
using Exferia_Aplicacion.Modelos_Volcado;
using Exferia_ControlGastos._0_Modelos;
using Exferia_EntityFramework;
using Exferia_General;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using static Exferia_Aplicacion.General.Enumerados;
namespace Exferia_ControlGastos._1_Datos
{
public class CTG_GastosCabecera_Datos : ABS_Datos
{
#region Listados
private List<INTERNO_CTG_GastosCabecera_Listado_Modelo> g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo = null;
public override List<dynamic> Obtener_Listado(long _lng_idEmpresaSeleccionada, long _lng_idEjercicioActual, List<string> _lst_CamposConRelacionABuscar, List<INTERNO_Filtro_OpcionPadre_Modelo> _lst_INTERNO_Filtro_OpcionPadre_Modelo, List<INTERNO_Filtro_Modelo> _lst_INTERNO_Filtro_Modelo)
{
Exferia_Entities obj_Exferia_Entities = null;
List<dynamic> lst_CTG = null;
try
{
obj_Exferia_Entities = new Exferia_Entities();
obj_Exferia_Entities.Configuration.LazyLoadingEnabled = false;
// Consulta .....................................................
ConsultaRellenar_Listado(obj_Exferia_Entities, _lng_idEmpresaSeleccionada, _lng_idEjercicioActual, Datos_Generales.GEN_Empresas_Devolver_EmpresasCompartidas_SegunFichero(_lng_idEmpresaSeleccionada, typeof(CTG_GastosCabecera).Name), _lst_CamposConRelacionABuscar, -1, null, _lst_INTERNO_Filtro_OpcionPadre_Modelo, _lst_INTERNO_Filtro_Modelo);
// ..............................................................
if ((g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo != null) && (g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo.Count() > 0))
{
lst_CTG = g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo.Cast<dynamic>().ToList();
}
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(CTG_GastosCabecera_Datos) + "/" + nameof(Obtener_Listado), true);
}
finally
{
obj_Exferia_Entities.Database.Connection.Close();
obj_Exferia_Entities.Dispose();
}
return lst_CTG;
}
public override dynamic Obtener_RegistroListado(long _lng_idEmpresaSeleccionada, long _lng_idEjercicioActual, 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_ids)
{
Exferia_Entities obj_Exferia_Entities = null;
dynamic dnm_CTG = null;
try
{
obj_Exferia_Entities = new Exferia_Entities();
obj_Exferia_Entities.Configuration.LazyLoadingEnabled = false;
// Consulta .....................................................
ConsultaRellenar_Listado(obj_Exferia_Entities, _lng_idEmpresaSeleccionada, _lng_idEjercicioActual, Datos_Generales.GEN_Empresas_Devolver_EmpresasCompartidas_SegunFichero(_lng_idEmpresaSeleccionada, typeof(CTG_GastosCabecera).Name), _lst_CamposConRelacionABuscar, _lng_id, _lst_ids, _lst_INTERNO_Filtro_OpcionPadre_Modelo, _lst_INTERNO_Filtro_Modelo);
// ..............................................................
if ((g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo != null) && (g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo.Count() > 0))
{
dnm_CTG = g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo.Cast<dynamic>().ToList();
}
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(CTG_GastosCabecera_Datos) + "/" + nameof(Obtener_RegistroListado), true);
}
finally
{
obj_Exferia_Entities.Database.Connection.Close();
obj_Exferia_Entities.Dispose();
}
return dnm_CTG;
}
protected override void ConsultaRellenar_Listado(Exferia_Entities _obj_Exferia_Entities, long _lng_idEmpresaSeleccionada, long _lng_idEjercicioActual, List<long> _lst_idEmpresasRelacionas, 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_CTG_GastosCabecera_Listado_Modelo.id) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.id) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.numero) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.numero) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.descripcion) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.descripcion) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.fecha) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.fecha) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.estado) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.estado) + "," +
//ids
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.idExpediente) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idExpediente) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.idPredefinidoCabecera_GastoCabecera) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idPredefinidoCabecera_GastoCabecera) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.idEmpleado_Propuesto) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idEmpleado_Propuesto) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.idEmpleado_Autorizado) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idEmpleado_Autorizado) + "," +
//Expediente
(
(_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Expediente)))
?
(
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Expediente_Codigo) + " = " + nameof(CTG_Expedientes) + "." + nameof(CTG_Expedientes.numero) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Expediente_Descripcion) + " = " + nameof(CTG_Expedientes) + "." + nameof(CTG_Expedientes.descripcion) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Expediente_FechaBorrado) + " = " + nameof(CTG_Expedientes) + "." + nameof(CTG_Expedientes.fechaBorrado) + ","
)
:
(
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Expediente_Codigo) + " = convert(bigint,-1)," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Expediente_Descripcion) + " = ''," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Expediente_FechaBorrado) + " = NULL ,"
)
) +
//PredefinidoCabecera_GastoCabecera
(
(_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.PredefinidoCabecera_GastoCabecera)))
?
(
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.PredefinidoCabecera_GastoCabecera_Codigo) + " = " + nameof(CTA_PredefinidosCabeceras) + "." + nameof(CTA_PredefinidosCabeceras.codigo) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.PredefinidoCabecera_GastoCabecera_Descripcion) + " = " + nameof(CTA_PredefinidosCabeceras) + "." + nameof(CTA_PredefinidosCabeceras.descripcion) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.PredefinidoCabecera_GastoCabecera_FechaBorrado) + " = " + nameof(CTA_PredefinidosCabeceras) + "." + nameof(CTA_PredefinidosCabeceras.fechaBorrado) + ","
)
:
(
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.PredefinidoCabecera_GastoCabecera_Codigo) + " = ''," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.PredefinidoCabecera_GastoCabecera_Descripcion) + " = ''," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.PredefinidoCabecera_GastoCabecera_FechaBorrado) + " = NULL ,"
)
) +
//Empleado_Propuesto
(
(_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Propuesto)))
?
(
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Propuesto_Codigo) + " = AUX_1." + nameof(MAE_Empleados.codigo) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Propuesto_Descripcion) + " = AUX_1." + nameof(MAE_Empleados.nombre) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Propuesto_FechaBorrado) + " = AUX_1." + nameof(MAE_Empleados.fechaBorrado) + ","
)
:
(
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Propuesto_Codigo) + " = ''," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Propuesto_Descripcion) + " = ''," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Propuesto_FechaBorrado) + " = NULL ,"
)
) +
//Empleado_Autorizado
(
(_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Autorizado)))
?
(
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Autorizado_Codigo) + " = AUX_2." + nameof(MAE_Empleados.codigo) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Autorizado_Descripcion) + " = AUX_2." + nameof(MAE_Empleados.nombre) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Autorizado_FechaBorrado) + " = AUX_2." + nameof(MAE_Empleados.fechaBorrado)
)
:
(
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Autorizado_Codigo) + " = ''," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Autorizado_Descripcion) + " = ''," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Autorizado_FechaBorrado) + " = NULL"
)
) +
" FROM " + nameof(CTG_GastosCabecera) +
//Expediente
(
(_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Expediente)))
?
(
" LEFT JOIN " + nameof(CTG_Expedientes) + " ON " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idExpediente) + " = " + nameof(CTG_Expedientes) + "." + nameof(CTG_Expedientes.id)
)
: ("")
) +
//PredefinidoCabecera_Anticipo
(
(_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.PredefinidoCabecera_GastoCabecera)))
?
(
" LEFT JOIN " + nameof(CTA_PredefinidosCabeceras) + " ON " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idPredefinidoCabecera_GastoCabecera) + " = " + nameof(CTA_PredefinidosCabeceras) + "." + nameof(CTA_PredefinidosCabeceras.id)
)
: ("")
) +
//Empleado_Propuesto
(
(_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Propuesto)))
?
(
" LEFT JOIN " + nameof(MAE_Empleados) + " AS AUX_1 ON " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idEmpleado_Propuesto) + " = AUX_1." + nameof(MAE_Empleados.id)
)
: ("")
) +
//Empleado_Autorizado
(
(_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Autorizado)))
?
(
" LEFT JOIN " + nameof(MAE_Empleados) + " AS AUX_2 ON " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idEmpleado_Autorizado) + " = AUX_2." + nameof(MAE_Empleados.id)
)
: ("")
) +
" WHERE " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.fechaBorrado) + " IS null AND " +
(_lng_id > -1 ? nameof(CTG_GastosCabecera) + "." + (nameof(CTG_GastosCabecera.id) + "=@id") : "1 = 1");
//Parametros
object[] arr_Parametros = new object[]
{
new SqlParameter("@id", _lng_id)
};
//Rellenar el Modelo
g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo = _obj_Exferia_Entities.Database.SqlQuery<INTERNO_CTG_GastosCabecera_Listado_Modelo>(str_SQL, arr_Parametros).ToList();
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(CTG_GastosCabecera_Datos) + "/" + nameof(ConsultaRellenar_Listado), true);
}
}
#endregion
#region Listado Secundario
public override List<dynamic> Obtener_Listado_Secundario(long _lng_idEmpresaSeleccionada, long _lng_idEjercicioActual, List<string> _lst_CamposConRelacionABuscar, List<INTERNO_Filtro_OpcionPadre_Modelo> _lst_INTERNO_Filtro_OpcionPadre_Modelo, List<INTERNO_Filtro_Modelo> _lst_INTERNO_Filtro_Modelo)
{
throw new NotImplementedException();
}
public override dynamic Obtener_RegistroListado_Secundario(long _lng_idEmpresaSeleccionada, long _lng_idEjercicioActual, 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)
{
throw new NotImplementedException();
}
protected override void ConsultaRellenar_Listado_Secundario(Exferia_Entities _obj_Exferia_Entities, long _lng_idEmpresaSeleccionada, long _lng_idEjercicioActual, List<long> _lst_idEmpresasRelacionadas, List<string> _lst_CamposConRelacionABuscar, long _lng_id, List<long> _lst_ids, List<INTERNO_Filtro_OpcionPadre_Modelo> _lst_INTERNO_Filtro_OpcionPadre_Modelo, List<INTERNO_Filtro_Modelo> _lst_INTERNO_Filtro_Modelo)
{ }
#endregion
#region F3
public override dynamic Obtener_F3(string _str_filtro, string _str_CampoBusqueda, long _lng_idEmpresaSeleccionada, long _lng_idEjercicioActual, List<INTERNO_Filtro_OpcionPadre_Modelo> _lst_INTERNO_Filtro_OpcionPadre_Modelo, List<INTERNO_Filtro_Modelo> _lst_INTERNO_Filtro_Modelo)
{
throw new NotImplementedException();
}
public override dynamic Obtener_F3_PorId(long _lng_id, long _lng_idEmpresaSeleccionada, long _lng_idEjercicioActual, List<INTERNO_Filtro_OpcionPadre_Modelo> _lst_INTERNO_Filtro_OpcionPadre_Modelo, List<INTERNO_Filtro_Modelo> _lst_INTERNO_Filtro_Modelo)
{
throw new NotImplementedException();
}
protected override void ConsultaRellenar_F3(Exferia_Entities _obj_Exferia_Entities, long _lng_idEmpresaSeleccionada, long _lng_idEjercicioActual, List<long> _lst_idEmpresasRelacionadas, 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)
{ }
#endregion
#region Obtener
#region Obtener Simple
private dynamic g_dnm_Modelo_Obtener = null;
private static int g_int_TotalHilos_Obtener = 5;
private bool[] g_bol_Hilos_Terminados_Obtener = new bool[g_int_TotalHilos_Obtener];
public override dynamic Obtener(long _lng_id)
{
Exferia_Entities obj_Exferia_Entities = null;
try
{
obj_Exferia_Entities = new Exferia_Entities();
obj_Exferia_Entities.Configuration.LazyLoadingEnabled = false;
string str_SQL =
" SELECT " +
nameof(INTERNO_CTG_GastosCabecera_Modelo.id) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.id) + "," +
nameof(INTERNO_CTG_GastosCabecera_Modelo.numero) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.numero) + "," +
nameof(INTERNO_CTG_GastosCabecera_Modelo.descripcion) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.descripcion) + "," +
nameof(INTERNO_CTG_GastosCabecera_Modelo.fecha) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.fecha) + "," +
nameof(INTERNO_CTG_GastosCabecera_Modelo.observaciones) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.observaciones) + "," +
nameof(INTERNO_CTG_GastosCabecera_Modelo.estado) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.estado) + "," +
//ids
nameof(INTERNO_CTG_GastosCabecera_Modelo.idExpediente) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idExpediente) + "," +
nameof(INTERNO_CTG_GastosCabecera_Modelo.idPredefinidoCabecera_GastoCabecera) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idPredefinidoCabecera_GastoCabecera) + "," +
nameof(INTERNO_CTG_GastosCabecera_Modelo.idEmpleado_Autorizado) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idEmpleado_Autorizado) + "," +
nameof(INTERNO_CTG_GastosCabecera_Modelo.idEmpleado_Propuesto) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idEmpleado_Propuesto) +
" FROM " + nameof(CTG_GastosCabecera) +
" WHERE " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.fechaBorrado) + " IS null AND " +
nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.id) + "=@id ";
//Parametros
object[] arr_Parametros = new object[]
{
new SqlParameter("@id", _lng_id)
};
//Rellenar el Modelo
g_dnm_Modelo_Obtener = obj_Exferia_Entities.Database.SqlQuery<INTERNO_CTG_GastosCabecera_Modelo>(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;
}
//CTG_Expedientes ##########################################################################################
if (g_dnm_Modelo_Obtener.idExpediente != null)
{
ThreadStart obj_ThreadStart_EXPEDIENTE = new ThreadStart(Obtener_Expediente_Modelo_Obtener);
Thread obj_Thread_EXPEDIENTE = new Thread(obj_ThreadStart_EXPEDIENTE);
obj_Thread_EXPEDIENTE.Start();
}
else
{
g_bol_Hilos_Terminados_Obtener[0] = true;
}
//CTA_PredefinidosCabeceras ##########################################################################################
if (g_dnm_Modelo_Obtener.idPredefinidoCabecera_GastoCabecera != null)
{
ThreadStart obj_ThreadStart_PREDEFINIDOCABECERA = new ThreadStart(Obtener_PredefinidoCabecera_Modelo_Obtener);
Thread obj_Thread_PREDEFINIDOCABECERA = new Thread(obj_ThreadStart_PREDEFINIDOCABECERA);
obj_Thread_PREDEFINIDOCABECERA.Start();
}
else
{
g_bol_Hilos_Terminados_Obtener[1] = true;
}
//MAE_Empleados (Propuesto) ##########################################################################################
if (g_dnm_Modelo_Obtener.idEmpleado_Propuesto != null)
{
ThreadStart obj_ThreadStart_EMPLEADOPROPUESTO = new ThreadStart(Obtener_EmpleadoPropuesto_Modelo_Obtener);
Thread obj_Thread_EMPLEADOPROPUESTO = new Thread(obj_ThreadStart_EMPLEADOPROPUESTO);
obj_Thread_EMPLEADOPROPUESTO.Start();
}
else
{
g_bol_Hilos_Terminados_Obtener[2] = true;
}
//MAE_Empleados (Autorizado) ##########################################################################################
if (g_dnm_Modelo_Obtener.idEmpleado_Autorizado != null)
{
ThreadStart obj_ThreadStart_EMPLEADOAUTORIZADO = new ThreadStart(Obtener_EmpleadoAutorizado_Modelo_Obtener);
Thread obj_Thread_EMPLEADOAUTORIZADO = new Thread(obj_ThreadStart_EMPLEADOAUTORIZADO);
obj_Thread_EMPLEADOAUTORIZADO.Start();
}
else
{
g_bol_Hilos_Terminados_Obtener[3] = true;
}
//CTG_GastosLineas ##########################################################################################
ThreadStart obj_ThreadStart_LINEAS = new ThreadStart(Obtener_Lineas_Modelo_Obtener);
Thread obj_Thread_LINEAS = new Thread(obj_ThreadStart_LINEAS);
obj_Thread_LINEAS.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(CTG_GastosCabecera_Datos) + "/" + nameof(Obtener), true);
}
finally
{
obj_Exferia_Entities.Database.Connection.Close();
obj_Exferia_Entities.Dispose();
}
return g_dnm_Modelo_Obtener;
}
#region Tablas Relacionadas
private void Obtener_Expediente_Modelo_Obtener()
{
try
{
CTG_Expedientes_Datos obj_CTG_Expedientes_Datos = new CTG_Expedientes_Datos();
g_dnm_Modelo_Obtener.CTG_Expedientes = obj_CTG_Expedientes_Datos.Obtener_Modelo_Por_Id(g_dnm_Modelo_Obtener.idExpediente);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Obtener[0] = true;
}
}
private void Obtener_PredefinidoCabecera_Modelo_Obtener()
{
try
{
//Cargamos el ensamblado
Assembly m_assembly = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + Variables.G_STR_LIBRERIA_CONTABILIDAD + ".dll");
//Obtenemos el tipo de la clase
Type m_type = m_assembly.GetType(Variables.G_STR_LIBRERIA_CONTABILIDAD + "." + Variables.G_STR_LIBRERIA_DATOSCONTABILIDAD);
//creamos la instancia
var obj_Clase = Activator.CreateInstance(m_type);
//Cargamos el metodo solicitado
MethodInfo obj_MethodInfo = obj_Clase.GetType().GetMethod(Variables.G_STR_LIBRERIA_DATOSCONTABILIDAD_PROCEDIMIENTO_CTAPREDEFINIDOCABECERA_OBTENERMODELO_POR_ID, BindingFlags.Instance | BindingFlags.NonPublic);
//Obtener valores
object[] arr_Parametros = { g_dnm_Modelo_Obtener.idPredefinidoCabecera_GastoCabecera };
//Pasamos los parametros al metodo y lo ejecutamos
g_dnm_Modelo_Obtener.CTA_PredefinidosCabeceras = (CTA_PredefinidosCabeceras)obj_MethodInfo.Invoke(obj_Clase, arr_Parametros);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Obtener[1] = true;
}
}
private void Obtener_EmpleadoPropuesto_Modelo_Obtener()
{
try
{
//Cargamos el ensamblado
Assembly m_assembly = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + Variables.G_STR_LIBRERIA_MAESTROS + ".dll");
//Obtenemos el tipo de la clase
Type m_type = m_assembly.GetType(Variables.G_STR_LIBRERIA_MAESTROS + "." + Variables.G_STR_LIBRERIA_DATOSMAESTROS);
//creamos la instancia
var obj_Clase = Activator.CreateInstance(m_type);
//Cargamos el metodo solicitado
MethodInfo obj_MethodInfo = obj_Clase.GetType().GetMethod(Variables.G_STR_LIBRERIA_DATOSMAESTROS_PROCEDIMIENTO_MAEEMPLEADOS_OBTENERMODELO_POR_ID, BindingFlags.Instance | BindingFlags.NonPublic);
//Obtener valores
object[] arr_Parametros = { g_dnm_Modelo_Obtener.idEmpleado_Propuesto };
//Pasamos los parametros al metodo y lo ejecutamos
g_dnm_Modelo_Obtener.MAE_Empleados = (MAE_Empleados)obj_MethodInfo.Invoke(obj_Clase, arr_Parametros);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Obtener[2] = true;
}
}
private void Obtener_EmpleadoAutorizado_Modelo_Obtener()
{
try
{
//Cargamos el ensamblado
Assembly m_assembly = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + Variables.G_STR_LIBRERIA_MAESTROS + ".dll");
//Obtenemos el tipo de la clase
Type m_type = m_assembly.GetType(Variables.G_STR_LIBRERIA_MAESTROS + "." + Variables.G_STR_LIBRERIA_DATOSMAESTROS);
//creamos la instancia
var obj_Clase = Activator.CreateInstance(m_type);
//Cargamos el metodo solicitado
MethodInfo obj_MethodInfo = obj_Clase.GetType().GetMethod(Variables.G_STR_LIBRERIA_DATOSMAESTROS_PROCEDIMIENTO_MAEEMPLEADOS_OBTENERMODELO_POR_ID, BindingFlags.Instance | BindingFlags.NonPublic);
//Obtener valores
object[] arr_Parametros = { g_dnm_Modelo_Obtener.idEmpleado_Autorizado };
//Pasamos los parametros al metodo y lo ejecutamos
g_dnm_Modelo_Obtener.MAE_Empleados1 = (MAE_Empleados)obj_MethodInfo.Invoke(obj_Clase, arr_Parametros);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Obtener[3] = true;
}
}
private void Obtener_Lineas_Modelo_Obtener()
{
try
{
CTG_GastosLineas_Datos obj_CTG_GastosLineas_Datos = new CTG_GastosLineas_Datos();
g_dnm_Modelo_Obtener.GastoLinea = obj_CTG_GastosLineas_Datos.Obtener_PorGastoCabecera(g_dnm_Modelo_Obtener.id);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_Obtener[4] = true;
}
}
#endregion
#endregion
public override dynamic Obtener_Registro_PorCampo(string _str_Filtro, string _str_CampoBusqueda, long _lng_idEmpresaSeleccionada, long _lng_idEjercicioActual)
{
throw new NotImplementedException();
}
#region OBTENER POR EXPEDIENTE
List<INTERNO_CTG_GastosCabecera_Listado_Modelo> g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo_POREXPEDIENTE = null;
//Listado de modelos Relacionados
private List<MAE_Empleados> g_lst_MAE_Empleados_POREXPEDIENTE = null;
private List<long> g_lst_Empleados_POREXPEDIENTE = null;
private List<CTA_PredefinidosCabeceras> g_lst_CTA_PredefinidosCabeceras_POREXPEDIENTE = null;
private static int g_int_TotalHilos_POREXPEDIENTE = 2;
private bool[] g_bol_Hilos_Terminados_POREXPEDIENTE = new bool[g_int_TotalHilos_POREXPEDIENTE];
public List<INTERNO_CTG_GastosCabecera_Listado_Modelo> Obtener_PorExpediente(long _lng_idExpediente)
{
Exferia_Entities obj_Exferia_Entities = null;
try
{
obj_Exferia_Entities = new Exferia_Entities();
obj_Exferia_Entities.Configuration.LazyLoadingEnabled = false;
string str_SQL =
" SELECT " +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.id) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.id) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.numero) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.numero) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.descripcion) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.descripcion) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.fecha) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.fecha) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.estado) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.estado) + "," +
//ids
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.idExpediente) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idExpediente) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.idPredefinidoCabecera_GastoCabecera) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idPredefinidoCabecera_GastoCabecera) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.idEmpleado_Propuesto) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idEmpleado_Propuesto) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.idEmpleado_Autorizado) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idEmpleado_Autorizado) + "," +
//Expediente
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Expediente_Codigo) + " = " + nameof(CTG_Expedientes) + "." + nameof(CTG_Expedientes.numero) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Expediente_Descripcion) + " = " + nameof(CTG_Expedientes) + "." + nameof(CTG_Expedientes.descripcion) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Expediente_FechaBorrado) + " = " + nameof(CTG_Expedientes) + "." + nameof(CTG_Expedientes.fechaBorrado) + "," +
//PredefinidoCabecera_GastoCabecera
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.PredefinidoCabecera_GastoCabecera_Codigo) + " = " + nameof(CTA_PredefinidosCabeceras) + "." + nameof(CTA_PredefinidosCabeceras.codigo) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.PredefinidoCabecera_GastoCabecera_Descripcion) + " = " + nameof(CTA_PredefinidosCabeceras) + "." + nameof(CTA_PredefinidosCabeceras.descripcion) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.PredefinidoCabecera_GastoCabecera_FechaBorrado) + " = " + nameof(CTA_PredefinidosCabeceras) + "." + nameof(CTA_PredefinidosCabeceras.fechaBorrado) + "," +
//Empleado_Propuesto
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Propuesto_Codigo) + " = AUX_1." + nameof(MAE_Empleados.codigo) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Propuesto_Descripcion) + " = AUX_1." + nameof(MAE_Empleados.nombre) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Propuesto_FechaBorrado) + " = AUX_1." + nameof(MAE_Empleados.fechaBorrado) + "," +
//Empleado_Autorizado
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Autorizado_Codigo) + " = AUX_2." + nameof(MAE_Empleados.codigo) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Autorizado_Descripcion) + " = AUX_2." + nameof(MAE_Empleados.nombre) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Autorizado_FechaBorrado) + " = AUX_2." + nameof(MAE_Empleados.fechaBorrado) +
" FROM " + nameof(CTG_GastosCabecera) +
//Expediente
" LEFT JOIN " + nameof(CTG_Expedientes) + " ON " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idExpediente) + " = " + nameof(CTG_Expedientes) + "." + nameof(CTG_Expedientes.id) +
//PredefinidoCabecera_Anticipo
" LEFT JOIN " + nameof(CTA_PredefinidosCabeceras) + " ON " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idPredefinidoCabecera_GastoCabecera) + " = " + nameof(CTA_PredefinidosCabeceras) + "." + nameof(CTA_PredefinidosCabeceras.id) +
//Empleado_Propuesto
" LEFT JOIN " + nameof(MAE_Empleados) + " AS AUX_1 ON " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idEmpleado_Propuesto) + " = AUX_1." + nameof(MAE_Empleados.id) +
//Empleado_Autorizado
" LEFT JOIN " + nameof(MAE_Empleados) + " AS AUX_2 ON " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idEmpleado_Autorizado) + " = AUX_2." + nameof(MAE_Empleados.id) +
" WHERE " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.fechaBorrado) + " IS null AND " +
nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idExpediente) + "=@idExpediente";
//Parametros
object[] arr_Parametros = new object[]
{
new SqlParameter("@idExpediente", _lng_idExpediente)
};
//Rellenar el Modelo
g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo_POREXPEDIENTE = obj_Exferia_Entities.Database.SqlQuery<INTERNO_CTG_GastosCabecera_Listado_Modelo>(str_SQL, arr_Parametros).ToList();
#region Rellenar Tablas Relacionadas
if (g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo_POREXPEDIENTE != null &&
g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo_POREXPEDIENTE.Count > 0)
{
#region PRIMERO BUSCO LOS DATOS DE LAS TABLAS RELACIONADAS
//reiniciar Valores de los hilos
for (int int_Contador = 0; int_Contador < g_int_TotalHilos_POREXPEDIENTE; int_Contador++)
{
g_bol_Hilos_Terminados_POREXPEDIENTE[int_Contador] = false;
}
g_lst_Empleados_POREXPEDIENTE = new List<long>();
//MAE_Empleado (Propuesto) #######################################################
g_lst_Empleados_POREXPEDIENTE.AddRange(g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo_POREXPEDIENTE.Where(m => m.idEmpleado_Propuesto != null).Select(m => m.idEmpleado_Propuesto.Value).ToList());
//MAE_Empleado (Autorizado) #######################################################
g_lst_Empleados_POREXPEDIENTE.AddRange(g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo_POREXPEDIENTE.Where(m => m.idEmpleado_Autorizado != null).Select(m => m.idEmpleado_Autorizado.Value).ToList());
if (g_lst_Empleados_POREXPEDIENTE.Count > 0)
{
ThreadStart obj_ThreadStart_EMPLEADOS = new ThreadStart(Obtener_Empleados_Modelo_Obtener_POREXPEDIENTE);
Thread obj_Thread_EMPLEADOS = new Thread(obj_ThreadStart_EMPLEADOS);
obj_Thread_EMPLEADOS.Start();
}
else
{
g_bol_Hilos_Terminados_POREXPEDIENTE[0] = true;
}
//CTA_PredefinidosCabeceras #######################################################
ThreadStart obj_ThreadStart_PREDEFINIDOCABECERA = new ThreadStart(Obtener_PredefinidoCabecera_Modelo_Obtener_POREXPEDIENTE);
Thread obj_Thread_PREDEFINIDOCABECERA = new Thread(obj_ThreadStart_PREDEFINIDOCABECERA);
obj_Thread_PREDEFINIDOCABECERA.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_POREXPEDIENTE)
{
if (bol_Termino_Hilo == false)
{
bol_Termino = false;
break;
}
}
Thread.Sleep(10);
}
//.................................................................................
#endregion
#region DESPUES SE LO VOY ASIGNANDO A LOS REGISTRO UNO A UNO
foreach (INTERNO_CTG_GastosCabecera_Listado_Modelo mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo in g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo_POREXPEDIENTE)
{
//MAE_Empleados (Propuesto) #############################################
if (g_lst_MAE_Empleados_POREXPEDIENTE != null &&
g_lst_MAE_Empleados_POREXPEDIENTE.Count > 0 &&
mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo.idEmpleado_Propuesto != null)
{
mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo.MAE_Empleados = g_lst_MAE_Empleados_POREXPEDIENTE.Where(m => m.id == mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo.idEmpleado_Propuesto.Value).FirstOrDefault();
}
//MAE_Empleados (Autorizado) #############################################
if (g_lst_MAE_Empleados_POREXPEDIENTE != null &&
g_lst_MAE_Empleados_POREXPEDIENTE.Count > 0 &&
mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo.idEmpleado_Autorizado != null)
{
mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo.MAE_Empleados1 = g_lst_MAE_Empleados_POREXPEDIENTE.Where(m => m.id == mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo.idEmpleado_Autorizado.Value).FirstOrDefault();
}
//MAE_Articulos #############################################
if (g_lst_CTA_PredefinidosCabeceras_POREXPEDIENTE != null &&
g_lst_CTA_PredefinidosCabeceras_POREXPEDIENTE.Count > 0 &&
mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo.idPredefinidoCabecera_GastoCabecera != null)
{
mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo.CTA_PredefinidosCabeceras = g_lst_CTA_PredefinidosCabeceras_POREXPEDIENTE.Where(m => m.id == mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo.idPredefinidoCabecera_GastoCabecera.Value).FirstOrDefault();
}
}
#endregion
}
#endregion
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(CTG_GastosCabecera_Datos) + "/" + nameof(Obtener_PorExpediente), true);
}
finally
{
obj_Exferia_Entities.Database.Connection.Close();
obj_Exferia_Entities.Dispose();
}
return g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo_POREXPEDIENTE;
}
#region Tablas Relacionadas
private void Obtener_Empleados_Modelo_Obtener_POREXPEDIENTE()
{
try
{
//Cargamos el ensamblado
Assembly m_assembly = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + Variables.G_STR_LIBRERIA_MAESTROS + ".dll");
//Obtenemos el tipo de la clase
Type m_type = m_assembly.GetType(Variables.G_STR_LIBRERIA_MAESTROS + "." + Variables.G_STR_LIBRERIA_DATOSMAESTROS);
//creamos la instancia
var obj_Clase = Activator.CreateInstance(m_type);
//Cargamos el metodo solicitado
MethodInfo obj_MethodInfo = obj_Clase.GetType().GetMethod(Variables.G_STR_LIBRERIA_DATOSMAESTROS_PROCEDIMIENTO_MAEEMPLEADOS_OBTENERMODELOLISTADO_POR_IDS, BindingFlags.Instance | BindingFlags.NonPublic);
//Obtener valores
object[] arr_Parametros = { g_lst_Empleados_POREXPEDIENTE };
g_lst_MAE_Empleados_POREXPEDIENTE = (List<MAE_Empleados>)obj_MethodInfo.Invoke(obj_Clase, arr_Parametros);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_POREXPEDIENTE[0] = true;
}
}
private void Obtener_PredefinidoCabecera_Modelo_Obtener_POREXPEDIENTE()
{
try
{
//Cargamos el ensamblado
Assembly m_assembly = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + Variables.G_STR_LIBRERIA_CONTABILIDAD + ".dll");
//Obtenemos el tipo de la clase
Type m_type = m_assembly.GetType(Variables.G_STR_LIBRERIA_CONTABILIDAD + "." + Variables.G_STR_LIBRERIA_DATOSCONTABILIDAD);
//creamos la instancia
var obj_Clase = Activator.CreateInstance(m_type);
//Cargamos el metodo solicitado
MethodInfo obj_MethodInfo = obj_Clase.GetType().GetMethod(Variables.G_STR_LIBRERIA_DATOSCONTABILIDAD_PROCEDIMIENTO_CTAPREDEFINIDOCABECERA_OBTENERMODELOLISTADO_POR_IDS, BindingFlags.Instance | BindingFlags.NonPublic);
//Obtener valores
object[] arr_Parametros = { g_lst_INTERNO_CTG_GastosCabecera_Listado_Modelo_POREXPEDIENTE.Where(x => x.idPredefinidoCabecera_GastoCabecera != null).Select(m => m.idPredefinidoCabecera_GastoCabecera.Value).ToList() };
g_lst_CTA_PredefinidosCabeceras_POREXPEDIENTE = (List<CTA_PredefinidosCabeceras>)obj_MethodInfo.Invoke(obj_Clase, arr_Parametros);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_POREXPEDIENTE[1] = true;
}
}
#endregion
#endregion
#region OBTENER PARA LISTADO
INTERNO_CTG_GastosCabecera_Listado_Modelo g_mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo_PARALISTADO = null;
private static int g_int_TotalHilos_PARALISTADO = 3;
private bool[] g_bol_Hilos_Terminados_PARALISTADO = new bool[g_int_TotalHilos_PARALISTADO];
public INTERNO_CTG_GastosCabecera_Listado_Modelo Obtener_ParaListado(long _lng_id)
{
Exferia_Entities obj_Exferia_Entities = null;
try
{
obj_Exferia_Entities = new Exferia_Entities();
obj_Exferia_Entities.Configuration.LazyLoadingEnabled = false;
string str_SQL =
" SELECT " +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.id) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.id) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.numero) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.numero) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.descripcion) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.descripcion) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.fecha) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.fecha) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.estado) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.estado) + "," +
//ids
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.idExpediente) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idExpediente) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.idPredefinidoCabecera_GastoCabecera) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idPredefinidoCabecera_GastoCabecera) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.idEmpleado_Propuesto) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idEmpleado_Propuesto) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.idEmpleado_Autorizado) + " = " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idEmpleado_Autorizado) + "," +
//Expediente
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Expediente_Codigo) + " = " + nameof(CTG_Expedientes) + "." + nameof(CTG_Expedientes.numero) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Expediente_Descripcion) + " = " + nameof(CTG_Expedientes) + "." + nameof(CTG_Expedientes.descripcion) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Expediente_FechaBorrado) + " = " + nameof(CTG_Expedientes) + "." + nameof(CTG_Expedientes.fechaBorrado) + "," +
//PredefinidoCabecera_GastoCabecera
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.PredefinidoCabecera_GastoCabecera_Codigo) + " = " + nameof(CTA_PredefinidosCabeceras) + "." + nameof(CTA_PredefinidosCabeceras.codigo) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.PredefinidoCabecera_GastoCabecera_Descripcion) + " = " + nameof(CTA_PredefinidosCabeceras) + "." + nameof(CTA_PredefinidosCabeceras.descripcion) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.PredefinidoCabecera_GastoCabecera_FechaBorrado) + " = " + nameof(CTA_PredefinidosCabeceras) + "." + nameof(CTA_PredefinidosCabeceras.fechaBorrado) + "," +
//Empleado_Propuesto
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Propuesto_Codigo) + " = AUX_1." + nameof(MAE_Empleados.codigo) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Propuesto_Descripcion) + " = AUX_1." + nameof(MAE_Empleados.nombre) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Propuesto_FechaBorrado) + " = AUX_1." + nameof(MAE_Empleados.fechaBorrado) + "," +
//Empleado_Autorizado
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Autorizado_Codigo) + " = AUX_2." + nameof(MAE_Empleados.codigo) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Autorizado_Descripcion) + " = AUX_2." + nameof(MAE_Empleados.nombre) + "," +
nameof(INTERNO_CTG_GastosCabecera_Listado_Modelo.Empleado_Autorizado_FechaBorrado) + " = AUX_2." + nameof(MAE_Empleados.fechaBorrado) +
" FROM " + nameof(CTG_GastosCabecera) +
//Expediente
" LEFT JOIN " + nameof(CTG_Expedientes) + " ON " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idExpediente) + " = " + nameof(CTG_Expedientes) + "." + nameof(CTG_Expedientes.id) +
//PredefinidoCabecera_Anticipo
" LEFT JOIN " + nameof(CTA_PredefinidosCabeceras) + " ON " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idPredefinidoCabecera_GastoCabecera) + " = " + nameof(CTA_PredefinidosCabeceras) + "." + nameof(CTA_PredefinidosCabeceras.id) +
//Empleado_Propuesto
" LEFT JOIN " + nameof(MAE_Empleados) + " AS AUX_1 ON " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idEmpleado_Propuesto) + " = AUX_1." + nameof(MAE_Empleados.id) +
//Empleado_Autorizado
" LEFT JOIN " + nameof(MAE_Empleados) + " AS AUX_2 ON " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idEmpleado_Autorizado) + " = AUX_2." + nameof(MAE_Empleados.id) +
" WHERE " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.fechaBorrado) + " IS null AND " +
nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.id) + "=@id";
//Parametros
object[] arr_Parametros = new object[]
{
new SqlParameter("@id", _lng_id)
};
//Rellenar el Modelo
g_mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo_PARALISTADO = obj_Exferia_Entities.Database.SqlQuery<INTERNO_CTG_GastosCabecera_Listado_Modelo>(str_SQL, arr_Parametros).FirstOrDefault();
#region Rellenar tablas Relacionadas
if (g_mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo_PARALISTADO != null)
{
//reiniciar Valores de los hilos
for (int int_Contador = 0; int_Contador < g_int_TotalHilos_PARALISTADO; int_Contador++)
{
g_bol_Hilos_Terminados_PARALISTADO[int_Contador] = false;
}
//MAE_Empleados (Propuesto) ##########################################################################################
if (g_mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo_PARALISTADO.idEmpleado_Propuesto != null)
{
ThreadStart obj_ThreadStart_EMPLEADOPROPUESTO = new ThreadStart(Obtener_EmpleadoPropuesto_PARALISTADO);
Thread obj_Thread_EMPLEADOPROPUESTO = new Thread(obj_ThreadStart_EMPLEADOPROPUESTO);
obj_Thread_EMPLEADOPROPUESTO.Start();
}
else
{
g_bol_Hilos_Terminados_PARALISTADO[0] = true;
}
//MAE_Empleados (Autorizado) ##########################################################################################
if (g_mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo_PARALISTADO.idEmpleado_Autorizado != null)
{
ThreadStart obj_ThreadStart_EMPLEADOAUTORIZADO = new ThreadStart(Obtener_EmpleadoAutorizado_PARALISTADO);
Thread obj_Thread_EMPLEADOAUTORIZADO = new Thread(obj_ThreadStart_EMPLEADOAUTORIZADO);
obj_Thread_EMPLEADOAUTORIZADO.Start();
}
else
{
g_bol_Hilos_Terminados_PARALISTADO[1] = true;
}
//CTA_PredefinidosCabeceras ##########################################################################################
if (g_mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo_PARALISTADO.idPredefinidoCabecera_GastoCabecera != null)
{
ThreadStart obj_ThreadStart_PREDEFINIDOCABECERA = new ThreadStart(Obtener_PredefinidoCabecera_PARALISTADO);
Thread obj_Thread_PREDEFINIDOCABECERA = new Thread(obj_ThreadStart_PREDEFINIDOCABECERA);
obj_Thread_PREDEFINIDOCABECERA.Start();
}
else
{
g_bol_Hilos_Terminados_PARALISTADO[2] = 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_PARALISTADO)
{
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(CTG_GastosCabecera_Datos) + "/" + nameof(Obtener_ParaListado), true);
}
finally
{
obj_Exferia_Entities.Database.Connection.Close();
obj_Exferia_Entities.Dispose();
}
return g_mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo_PARALISTADO;
}
#region Tablas Relacionadas
private void Obtener_EmpleadoPropuesto_PARALISTADO()
{
try
{
//Cargamos el ensamblado
Assembly m_assembly = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + Variables.G_STR_LIBRERIA_MAESTROS + ".dll");
//Obtenemos el tipo de la clase
Type m_type = m_assembly.GetType(Variables.G_STR_LIBRERIA_MAESTROS + "." + Variables.G_STR_LIBRERIA_DATOSMAESTROS);
//creamos la instancia
var obj_Clase = Activator.CreateInstance(m_type);
//Cargamos el metodo solicitado
MethodInfo obj_MethodInfo = obj_Clase.GetType().GetMethod(Variables.G_STR_LIBRERIA_DATOSMAESTROS_PROCEDIMIENTO_MAEEMPLEADOS_OBTENERMODELO_POR_ID, BindingFlags.Instance | BindingFlags.NonPublic);
//Obtener valores
object[] arr_Parametros = { g_mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo_PARALISTADO.idEmpleado_Propuesto.Value };
//Pasamos los parametros al metodo y lo ejecutamos
g_mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo_PARALISTADO.MAE_Empleados = (MAE_Empleados)obj_MethodInfo.Invoke(obj_Clase, arr_Parametros);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_PARALISTADO[0] = true;
}
}
private void Obtener_EmpleadoAutorizado_PARALISTADO()
{
try
{
//Cargamos el ensamblado
Assembly m_assembly = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + Variables.G_STR_LIBRERIA_MAESTROS + ".dll");
//Obtenemos el tipo de la clase
Type m_type = m_assembly.GetType(Variables.G_STR_LIBRERIA_MAESTROS + "." + Variables.G_STR_LIBRERIA_DATOSMAESTROS);
//creamos la instancia
var obj_Clase = Activator.CreateInstance(m_type);
//Cargamos el metodo solicitado
MethodInfo obj_MethodInfo = obj_Clase.GetType().GetMethod(Variables.G_STR_LIBRERIA_DATOSMAESTROS_PROCEDIMIENTO_MAEEMPLEADOS_OBTENERMODELO_POR_ID, BindingFlags.Instance | BindingFlags.NonPublic);
//Obtener valores
object[] arr_Parametros = { g_mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo_PARALISTADO.idEmpleado_Autorizado.Value };
//Pasamos los parametros al metodo y lo ejecutamos
g_mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo_PARALISTADO.MAE_Empleados1 = (MAE_Empleados)obj_MethodInfo.Invoke(obj_Clase, arr_Parametros);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_PARALISTADO[1] = true;
}
}
private void Obtener_PredefinidoCabecera_PARALISTADO()
{
try
{
//Cargamos el ensamblado
Assembly m_assembly = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + Variables.G_STR_LIBRERIA_CONTABILIDAD + ".dll");
//Obtenemos el tipo de la clase
Type m_type = m_assembly.GetType(Variables.G_STR_LIBRERIA_CONTABILIDAD + "." + Variables.G_STR_LIBRERIA_DATOSCONTABILIDAD);
//creamos la instancia
var obj_Clase = Activator.CreateInstance(m_type);
//Cargamos el metodo solicitado
MethodInfo obj_MethodInfo = obj_Clase.GetType().GetMethod(Variables.G_STR_LIBRERIA_DATOSCONTABILIDAD_PROCEDIMIENTO_CTAPREDEFINIDOCABECERA_OBTENERMODELO_POR_ID, BindingFlags.Instance | BindingFlags.NonPublic);
//Obtener valores
object[] arr_Parametros = { g_mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo_PARALISTADO.idPredefinidoCabecera_GastoCabecera.Value };
//Pasamos los parametros al metodo y lo ejecutamos
g_mdl_INTERNO_CTG_GastosCabecera_Listado_Modelo_PARALISTADO.CTA_PredefinidosCabeceras = (CTA_PredefinidosCabeceras)obj_MethodInfo.Invoke(obj_Clase, arr_Parametros);
}
catch (Control_Errores)
{ }
finally
{
g_bol_Hilos_Terminados_PARALISTADO[2] = true;
}
}
#endregion
#endregion
public string Obtener_Estado(long _lng_id)
{
Exferia_Entities obj_Exferia_Entities = null;
string str_Estado = "";
try
{
obj_Exferia_Entities = new Exferia_Entities();
obj_Exferia_Entities.Configuration.LazyLoadingEnabled = false;
string str_SQL =
" SELECT " +
nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.estado) +
" FROM " + nameof(CTG_GastosCabecera) +
" WHERE " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.fechaBorrado) + " IS null AND " +
nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.id) + "=@id ";
//Parametros
object[] arr_Parametros = new object[]
{
new SqlParameter("@id", _lng_id)
};
//Rellenar el Modelo
str_Estado = obj_Exferia_Entities.Database.SqlQuery<string>(str_SQL, arr_Parametros).FirstOrDefault();
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(CTG_GastosCabecera_Datos) + "/" + nameof(Obtener_Estado), true);
}
finally
{
obj_Exferia_Entities.Database.Connection.Close();
obj_Exferia_Entities.Dispose();
}
return str_Estado;
}
public INTERNO_CTG_GastosCabecera_Volcado_Modelo Obtener_Volcado(long _lng_id)
{
Exferia_Entities obj_Exferia_Entities = null;
INTERNO_CTG_GastosCabecera_Volcado_Modelo mdl_INTERNO_CTG_GastosCabecera_Volcado_Modelo = null;
try
{
obj_Exferia_Entities = new Exferia_Entities();
obj_Exferia_Entities.Configuration.LazyLoadingEnabled = false;
string str_SQL =
" SELECT " +
nameof(INTERNO_CTG_GastosCabecera_Volcado_Modelo.id) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.id) + "," +
nameof(INTERNO_CTG_GastosCabecera_Volcado_Modelo.numero) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.numero) + "," +
nameof(INTERNO_CTG_GastosCabecera_Volcado_Modelo.descripcion) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.descripcion) + "," +
nameof(INTERNO_CTG_GastosCabecera_Volcado_Modelo.fecha) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.fecha) + "," +
nameof(INTERNO_CTG_GastosCabecera_Volcado_Modelo.observaciones) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.observaciones) + "," +
nameof(INTERNO_CTG_GastosCabecera_Volcado_Modelo.estado) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.estado) + "," +
//ids
nameof(INTERNO_CTG_GastosCabecera_Volcado_Modelo.idExpediente) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idExpediente) + "," +
nameof(INTERNO_CTG_GastosCabecera_Volcado_Modelo.idPredefinidoCabecera_GastoCabecera) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idPredefinidoCabecera_GastoCabecera) + "," +
nameof(INTERNO_CTG_GastosCabecera_Volcado_Modelo.idEmpleado_Autorizado) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idEmpleado_Autorizado) + "," +
nameof(INTERNO_CTG_GastosCabecera_Volcado_Modelo.idEmpleado_Propuesto) + "=" + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idEmpleado_Propuesto) +
" FROM " + nameof(CTG_GastosCabecera) +
" WHERE " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.fechaBorrado) + " IS null AND " +
nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.id) + "=@id ";
//Parametros
object[] arr_Parametros = new object[]
{
new SqlParameter("@id", _lng_id)
};
//Rellenar el Modelo
mdl_INTERNO_CTG_GastosCabecera_Volcado_Modelo = obj_Exferia_Entities.Database.SqlQuery<INTERNO_CTG_GastosCabecera_Volcado_Modelo>(str_SQL, arr_Parametros).FirstOrDefault();
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(CTG_GastosCabecera_Datos) + "/" + nameof(Obtener_Volcado), true);
}
finally
{
obj_Exferia_Entities.Database.Connection.Close();
obj_Exferia_Entities.Dispose();
}
return mdl_INTERNO_CTG_GastosCabecera_Volcado_Modelo;
}
#endregion
#region MODELOS
#region Modelo Simple
private CTG_GastosCabecera g_mdl_CTG_GastosCabecera = null;
public CTG_GastosCabecera Obtener_Modelo_Por_Id(long _lng_id)
{
try
{
string str_SQL = Obtener_Consulta_Modelo() +
//WHERE
" WHERE " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.id) + "=@id";
//Parametros
object[] arr_Parametros = new object[]
{
new SqlParameter("@id", _lng_id)
};
//Ejecutar y rellenar el modelo
Ejecutar_Consulta_Modelo(str_SQL,
arr_Parametros);
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(CTG_GastosCabecera_Datos) + "/" + nameof(Obtener_Modelo_Por_Id), true);
}
return g_mdl_CTG_GastosCabecera;
}
private void Ejecutar_Consulta_Modelo(string _str_SQL,
object[] _arr_Parametros)
{
Exferia_Entities obj_Exferia_Entities = null;
try
{
//Conexion
obj_Exferia_Entities = new Exferia_Entities();
obj_Exferia_Entities.Configuration.LazyLoadingEnabled = false;
//Rellenar el Modelo
g_mdl_CTG_GastosCabecera = obj_Exferia_Entities.Database.SqlQuery<CTG_GastosCabecera>(_str_SQL, _arr_Parametros).FirstOrDefault();
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(CTG_GastosCabecera_Datos) + "/" + nameof(Ejecutar_Consulta_Modelo), true);
}
finally
{
obj_Exferia_Entities.Database.Connection.Close();
obj_Exferia_Entities.Dispose();
}
}
#endregion
#region Modelo Listado
private List<CTG_GastosCabecera> g_lst_CTG_GastosCabecera = null;
public List<CTG_GastosCabecera> Obtener_ModeloListado_Por_IdExpediente(long _lng_idExpediente)
{
try
{
//Consulta
string str_SQL = Obtener_Consulta_Modelo() +
//WHERE
" WHERE " + nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.fechaBorrado) + " IS null AND " +
nameof(CTG_GastosCabecera) + "." + nameof(CTG_GastosCabecera.idExpediente) + "=@idExpediente ";
//Parametros
object[] arr_Parametros = new object[]
{
new SqlParameter("@idExpediente", _lng_idExpediente)
};
//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(CTG_GastosCabecera_Datos) + "/" + nameof(Obtener_ModeloListado_Por_IdExpediente), true);
}
return g_lst_CTG_GastosCabecera;
}
#region Ejecutar Consulta
private void Ejecutar_Consulta_Modelo_Listado(string _str_SQL,
object[] _arr_Parametros)
{
Exferia_Entities obj_Exferia_Entities = null;
try
{
//Conexion
obj_Exferia_Entities = new Exferia_Entities();
obj_Exferia_Entities.Configuration.LazyLoadingEnabled = false;
//Rellenar el modelo
g_lst_CTG_GastosCabecera = obj_Exferia_Entities.Database.SqlQuery<CTG_GastosCabecera>(_str_SQL, _arr_Parametros).ToList();
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(CTG_GastosCabecera_Datos) + "/" + nameof(Ejecutar_Consulta_Modelo_Listado), true);
}
finally
{
obj_Exferia_Entities.Database.Connection.Close();
obj_Exferia_Entities.Dispose();
}
}
#endregion
#endregion
private string Obtener_Consulta_Modelo()
{
return
" SELECT " +
nameof(CTG_GastosCabecera.id) + "," +
nameof(CTG_GastosCabecera.idExpediente) + "," +
nameof(CTG_GastosCabecera.idPredefinidoCabecera_GastoCabecera) + "," +
nameof(CTG_GastosCabecera.numero) + "," +
nameof(CTG_GastosCabecera.fecha) + "," +
nameof(CTG_GastosCabecera.descripcion) + "," +
nameof(CTG_GastosCabecera.idEmpleado_Propuesto) + "," +
nameof(CTG_GastosCabecera.idEmpleado_Autorizado) + "," +
nameof(CTG_GastosCabecera.observaciones) + "," +
nameof(CTG_GastosCabecera.estado) + "," +
nameof(CTG_GastosCabecera.fechaBorrado) +
" FROM " + nameof(CTG_GastosCabecera);
}
#endregion
#region Grabar
public override INTERNO_ValorDevuelto_Modelo Grabar(object _mdl_obj)
{
Exferia_Entities obj_Exferia_Entities = null;
INTERNO_ValorDevuelto_Modelo mdl_INTERNO_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
mdl_INTERNO_ValorDevuelto_Modelo.TodoCorrecto = true;
try
{
obj_Exferia_Entities = new Exferia_Entities();
CTG_GastosCabecera mdl_CTG_GastosCabecera_AGrabar = (CTG_GastosCabecera)_mdl_obj;
CTG_GastosCabecera mdl_CTG_GastosCabecera_DatosViejos = new CTG_GastosCabecera();
// Ver si existe ######################################################################
CTG_GastosCabecera mdl_CTG_GastosCabecera_Final = Obtener_Modelo_Por_Id(mdl_CTG_GastosCabecera_AGrabar.id);
//######################################################################################
//UPDATE
if (mdl_CTG_GastosCabecera_Final != null)
{
//Tipo de Accion que se va a realizar
mdl_INTERNO_ValorDevuelto_Modelo.TipoAccion = G_ENUM_TIPOACCION.INT_MODIFICAR;
//Datos viejos para la trazabilidad
Funciones.CopiarPropiedadesObjetos(mdl_CTG_GastosCabecera_Final, mdl_CTG_GastosCabecera_DatosViejos, false, false);
// Cargar los Datos Nuevos del Modelo
Funciones.CopiarPropiedadesObjetos(mdl_CTG_GastosCabecera_AGrabar, mdl_CTG_GastosCabecera_Final, false, false);
#region Update
string str_SQL_Update = " UPDATE " + nameof(CTG_GastosCabecera) +
" SET " +
nameof(CTG_GastosCabecera.idExpediente) + "=@idExpediente," +
nameof(CTG_GastosCabecera.idPredefinidoCabecera_GastoCabecera) + "=@idPredefinidoCabecera_GastoCabecera," +
nameof(CTG_GastosCabecera.numero) + "=@numero," +
nameof(CTG_GastosCabecera.fecha) + "=@fecha," +
nameof(CTG_GastosCabecera.descripcion) + "=@descripcion," +
nameof(CTG_GastosCabecera.idEmpleado_Propuesto) + "=@idEmpleado_Propuesto," +
nameof(CTG_GastosCabecera.idEmpleado_Autorizado) + "=@idEmpleado_Autorizado," +
nameof(CTG_GastosCabecera.observaciones) + "=@observaciones," +
nameof(CTG_GastosCabecera.estado) + "=@estado," +
nameof(CTG_GastosCabecera.fechaBorrado) + "=@fechaBorrado" +
" WHERE " +
nameof(CTG_GastosCabecera.id) + "=@id";
//Parametros
object[] arr_Parametros_Update = new object[]
{
new SqlParameter("@idExpediente", mdl_CTG_GastosCabecera_Final.idExpediente),
mdl_CTG_GastosCabecera_Final.idPredefinidoCabecera_GastoCabecera != null
? new SqlParameter("@idPredefinidoCabecera_GastoCabecera", mdl_CTG_GastosCabecera_Final.idPredefinidoCabecera_GastoCabecera.Value)
: new SqlParameter("@idPredefinidoCabecera_GastoCabecera", DBNull.Value),
new SqlParameter("@numero", mdl_CTG_GastosCabecera_Final.numero),
new SqlParameter("@fecha", mdl_CTG_GastosCabecera_Final.fecha),
mdl_CTG_GastosCabecera_Final.descripcion != null
? new SqlParameter("@descripcion", mdl_CTG_GastosCabecera_Final.descripcion)
: new SqlParameter("@descripcion", DBNull.Value),
mdl_CTG_GastosCabecera_Final.idEmpleado_Autorizado != null
? new SqlParameter("@idEmpleado_Autorizado", mdl_CTG_GastosCabecera_Final.idEmpleado_Autorizado.Value)
: new SqlParameter("@idEmpleado_Autorizado", DBNull.Value),
mdl_CTG_GastosCabecera_Final.idEmpleado_Propuesto != null
? new SqlParameter("@idEmpleado_Propuesto", mdl_CTG_GastosCabecera_Final.idEmpleado_Propuesto.Value)
: new SqlParameter("@idEmpleado_Propuesto", DBNull.Value),
mdl_CTG_GastosCabecera_Final.observaciones != null
? new SqlParameter("@observaciones", mdl_CTG_GastosCabecera_Final.observaciones)
: new SqlParameter("@observaciones", DBNull.Value),
mdl_CTG_GastosCabecera_Final.estado != null
? new SqlParameter("@estado", mdl_CTG_GastosCabecera_Final.estado)
: new SqlParameter("@estado", DBNull.Value),
mdl_CTG_GastosCabecera_Final.fechaBorrado != null
? new SqlParameter("@fechaBorrado", mdl_CTG_GastosCabecera_Final.fechaBorrado.Value)
: new SqlParameter("@fechaBorrado", DBNull.Value),
new SqlParameter("@id", mdl_CTG_GastosCabecera_Final.id)
};
#endregion
//Update
obj_Exferia_Entities.Database.ExecuteSqlCommand(str_SQL_Update, arr_Parametros_Update);
//Id de la tabla
mdl_INTERNO_ValorDevuelto_Modelo.Id = mdl_CTG_GastosCabecera_Final.id;
}
//INSERT
else
{
mdl_CTG_GastosCabecera_Final = new CTG_GastosCabecera();
//Tipo de Accion que se va a realizar
mdl_INTERNO_ValorDevuelto_Modelo.TipoAccion = G_ENUM_TIPOACCION.INT_INSERTAR;
// Cargar los Datos del Modelo
Funciones.CopiarPropiedadesObjetos(mdl_CTG_GastosCabecera_AGrabar, mdl_CTG_GastosCabecera_Final, false, false);
#region INSERT
string str_SQL_Insert = " INSERT INTO " + nameof(CTG_GastosCabecera) +
" (" +
nameof(CTG_GastosCabecera.idExpediente) + "," +
nameof(CTG_GastosCabecera.idPredefinidoCabecera_GastoCabecera) + "," +
nameof(CTG_GastosCabecera.numero) + "," +
nameof(CTG_GastosCabecera.fecha) + "," +
nameof(CTG_GastosCabecera.descripcion) + "," +
nameof(CTG_GastosCabecera.idEmpleado_Propuesto) + "," +
nameof(CTG_GastosCabecera.idEmpleado_Autorizado) + "," +
nameof(CTG_GastosCabecera.observaciones) + "," +
nameof(CTG_GastosCabecera.estado) + "," +
nameof(CTG_GastosCabecera.fechaBorrado) +
" ) " +
" OUTPUT INSERTED." + nameof(CTG_GastosCabecera.id) +
" VALUES " +
" ( " +
"@idExpediente," +
"@idPredefinidoCabecera_GastoCabecera," +
"@numero," +
"@fecha," +
"@descripcion," +
"@idEmpleado_Propuesto," +
"@idEmpleado_Autorizado," +
"@observaciones," +
"@estado," +
"@fechaBorrado" +
" ) ";
//Parametros
object[] arr_Parametros_Insert = new object[]
{
new SqlParameter("@idExpediente", mdl_CTG_GastosCabecera_Final.idExpediente),
mdl_CTG_GastosCabecera_Final.idPredefinidoCabecera_GastoCabecera != null
? new SqlParameter("@idPredefinidoCabecera_GastoCabecera", mdl_CTG_GastosCabecera_Final.idPredefinidoCabecera_GastoCabecera.Value)
: new SqlParameter("@idPredefinidoCabecera_GastoCabecera", DBNull.Value),
new SqlParameter("@numero", mdl_CTG_GastosCabecera_Final.numero),
new SqlParameter("@fecha", mdl_CTG_GastosCabecera_Final.fecha),
mdl_CTG_GastosCabecera_Final.descripcion != null
? new SqlParameter("@descripcion", mdl_CTG_GastosCabecera_Final.descripcion)
: new SqlParameter("@descripcion", DBNull.Value),
mdl_CTG_GastosCabecera_Final.idEmpleado_Autorizado != null
? new SqlParameter("@idEmpleado_Autorizado", mdl_CTG_GastosCabecera_Final.idEmpleado_Autorizado.Value)
: new SqlParameter("@idEmpleado_Autorizado", DBNull.Value),
mdl_CTG_GastosCabecera_Final.idEmpleado_Propuesto != null
? new SqlParameter("@idEmpleado_Propuesto", mdl_CTG_GastosCabecera_Final.idEmpleado_Propuesto.Value)
: new SqlParameter("@idEmpleado_Propuesto", DBNull.Value),
mdl_CTG_GastosCabecera_Final.observaciones != null
? new SqlParameter("@observaciones", mdl_CTG_GastosCabecera_Final.observaciones)
: new SqlParameter("@observaciones", DBNull.Value),
mdl_CTG_GastosCabecera_Final.estado != null
? new SqlParameter("@estado", mdl_CTG_GastosCabecera_Final.estado)
: new SqlParameter("@estado", DBNull.Value),
mdl_CTG_GastosCabecera_Final.fechaBorrado != null
? new SqlParameter("@fechaBorrado", mdl_CTG_GastosCabecera_Final.fechaBorrado.Value)
: new SqlParameter("@fechaBorrado", DBNull.Value)
};
#endregion
//Id de la tabla
mdl_INTERNO_ValorDevuelto_Modelo.Id = obj_Exferia_Entities.Database.SqlQuery<long>(str_SQL_Insert, arr_Parametros_Insert).Single();
}
// Grabar un registro de trazabilidad con los datos de la transaccion realizada.
Datos_Generales.USR_Trazabilidad_Grabar(typeof(CTG_GastosCabecera), mdl_CTG_GastosCabecera_DatosViejos, mdl_CTG_GastosCabecera_Final, mdl_INTERNO_ValorDevuelto_Modelo.TipoAccion, obj_Exferia_Entities);
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(CTG_GastosCabecera_Datos) + "/" + nameof(Grabar), true);
}
finally
{
obj_Exferia_Entities.Database.Connection.Close();
obj_Exferia_Entities.Dispose();
}
return mdl_INTERNO_ValorDevuelto_Modelo;
}
#endregion
#region Borrar
public override INTERNO_ValorDevuelto_Modelo Borrar(long _lng_id)
{
Exferia_Entities obj_Exferia_Entities = null;
INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
mdl_ValorDevuelto_Modelo.TodoCorrecto = true;
//Tipo de Accion que se va a realizar
mdl_ValorDevuelto_Modelo.TipoAccion = G_ENUM_TIPOACCION.INT_ELIMINAR;
try
{
obj_Exferia_Entities = new Exferia_Entities();
obj_Exferia_Entities.Configuration.LazyLoadingEnabled = false;
// Ver si existe ######################################################################
CTG_GastosCabecera mdl_CTG_GastosCabecera_Final = Obtener_Modelo_Por_Id(_lng_id);
//######################################################################################
if (mdl_CTG_GastosCabecera_Final != null)
{
#region Update
string str_SQL_Update = " UPDATE " + nameof(CTG_GastosCabecera) +
" SET " +
nameof(CTG_GastosCabecera.fechaBorrado) + "=@fechaBorrado " +
" WHERE " +
nameof(CTG_GastosCabecera.id) + "=@id";
//Parametros
object[] arr_Parametros_Update = new object[]
{
new SqlParameter("@fechaBorrado", DateTime.Now),
new SqlParameter("@id", _lng_id)
};
#endregion
//Update
obj_Exferia_Entities.Database.ExecuteSqlCommand(str_SQL_Update, arr_Parametros_Update);
//Grabar un registro de trazabilidad con los datos de la transaccion realizada
Datos_Generales.USR_Trazabilidad_Grabar(typeof(CTG_GastosCabecera), null, mdl_CTG_GastosCabecera_Final, Enumerados.G_ENUM_TIPOACCION.INT_ELIMINAR, obj_Exferia_Entities);
}
//Devolver tambien el Objeto
mdl_ValorDevuelto_Modelo.Id = _lng_id;
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(CTG_GastosCabecera_Datos) + "/" + nameof(Borrar), true);
}
finally
{
obj_Exferia_Entities.Database.Connection.Close();
obj_Exferia_Entities.Dispose();
}
return mdl_ValorDevuelto_Modelo;
}
public override INTERNO_ValorDevuelto_Modelo Borrar(long _lng_id, long _lng_idAuxiliar)
{
throw new NotImplementedException();
}
public override INTERNO_ValorDevuelto_Modelo Borrar(object _mdl_obj)
{
Exferia_Entities obj_Exferia_Entities = null;
INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
mdl_ValorDevuelto_Modelo.TodoCorrecto = true;
try
{
obj_Exferia_Entities = new Exferia_Entities();
obj_Exferia_Entities.Configuration.LazyLoadingEnabled = false;
List<long> lst_idGastoCabecera = (List<long>)_mdl_obj;
if (lst_idGastoCabecera != null & lst_idGastoCabecera.Count > 0)
{
DateTime dtt_FechaActual = DateTime.Now;
//Coger los ids y ponerlos de forma que sirva para la consulta
string str_Filtros_IDS = Funciones.Formar_ContenidoIN_ParaConsultaWhere(lst_idGastoCabecera);
string str_SQL = " UPDATE " + nameof(CTG_GastosCabecera) +
" SET " + nameof(CTG_GastosCabecera.fechaBorrado) + "='" + dtt_FechaActual + "' " +
" WHERE " + nameof(CTG_GastosCabecera.id) + " in (" + str_Filtros_IDS + ")";
obj_Exferia_Entities.Database.ExecuteSqlCommand(str_SQL);
}
}
catch (Control_Errores)
{
throw;
}
catch (Exception ex)
{
throw new Control_Errores("", ex, nameof(CTG_GastosCabecera_Datos) + "/" + nameof(Borrar), true);
}
finally
{
obj_Exferia_Entities.Database.Connection.Close();
obj_Exferia_Entities.Dispose();
}
return mdl_ValorDevuelto_Modelo;
}
#endregion
}
}