Exferia/Exferia_Controles/Exferia_Controles/Exferia_F3.cs

2150 lines
103 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Exferia_Aplicacion.Visualizacion;
using System.Reflection;
using Exferia_Aplicacion.General;
using System.Threading;
using Exferia_Formularios;
using static Exferia_Aplicacion.General.Enumerados;
using Exferia_EntityFramework;
using Exferia_General;
namespace Exferia_Controles
{
public partial class Exferia_F3 : UserControl
{
//Se utiliza para entrar en el codigo desde otra libreria
public void Prueba()
{}
#region Variables Privadas
private BackgroundWorker g_TareaAsincrona_Buscar;
private BackgroundWorker g_TareaAsincrona_Buscar_RegistroPorId;
private string g_str_Filtro = "";
private string g_str_CampoBusqueda = "";
private ABS_F3 g_obj_ABS_F3 = null;
private INTERNO_OpcionesDetalle_Modelo g_mdl_INTERNO_OpcionesDetalle_Modelo = null;
internal List<INTERNO_Permisos_Modelo> g_lst_INTERNO_Permisos_Modelo = null;
private bool g_bol_Cambio_Codigo = false;
private bool g_bol_Cambio_Descripcion = false;
private PE_Esperando g_frm_PE_Esperando;
#endregion
#region Propiedades Publicas
public void Colores_Inciales()
{
if (g_bol_Obligatorio)
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
}
bool g_bol_Bloqueable = true;
public bool Exferia_F3_Bloqueable
{
set
{
g_bol_Bloqueable = value;
}
get
{
return g_bol_Bloqueable;
}
}
internal P_Base g_P_Base_Contenedor = null;
public P_Base Exferia_F3_PantallaContenedora
{
set
{
g_P_Base_Contenedor = value;
}
}
private ABS_Listado g_obj_ABS_Listado = null;
public ABS_Listado Exferia_F3_ABS_Listado
{
set
{
g_obj_ABS_Listado = value;
}
}
public bool Exferia_F3_TieneFoco
{
get
{
bool bol_TieneFoco = false;
if (ex_txt_Codigo.Exferia_TextBox_TieneFoco)
{
bol_TieneFoco = true;
}
else if (bol_TieneFoco==false && ex_txt_Descripcion.Exferia_TextBox_TieneFoco)
{
bol_TieneFoco = true;
}
return bol_TieneFoco;
}
}
internal object g_obj_Filtro_Auxiliar = null;
public object Exferia_F3_Filtro_Auxiliar
{
set
{
g_obj_Filtro_Auxiliar = value;
}
}
internal string g_str_NombreOpcion_BuscarDatos = "";
public string Exferia_F3_PRINCIPAL_Opcion_BuscarDatos
{
set
{
g_str_NombreOpcion_BuscarDatos = value;
//Buscar los Permisos
if (value != null && value.Trim().Length >0)
{
g_lst_INTERNO_Permisos_Modelo = Datos_Generales.Permisos_Buscar(value);
}
}
get
{
return g_str_NombreOpcion_BuscarDatos;
}
}
internal object g_obj_ObjetoAuxiliar_ParaEnviarAlMantenimiento_SiHicieraFalta = null;
public object Exferia_F3_Objeto_ParaEnviarAMantenimiento
{
set
{
g_obj_ObjetoAuxiliar_ParaEnviarAlMantenimiento_SiHicieraFalta = value;
}
get
{
return g_obj_ObjetoAuxiliar_ParaEnviarAlMantenimiento_SiHicieraFalta;
}
}
internal G_ENUM_F3_TITULO g_enum_F3_AnchoTitulo = G_ENUM_F3_TITULO.Normal;
public G_ENUM_F3_TITULO Exferia_F3_Ancho_Titulo
{
set
{
g_enum_F3_AnchoTitulo = value;
//Normal
int int_AnchoTitulo = 100;
//Medio
if (g_enum_F3_AnchoTitulo.Equals(G_ENUM_F3_TITULO.Medio))
{
int_AnchoTitulo = 175;
}
//Grande
else if (g_enum_F3_AnchoTitulo.Equals(G_ENUM_F3_TITULO.Grande))
{
int_AnchoTitulo = 250;
}
//SuperGrande
else if (g_enum_F3_AnchoTitulo.Equals(G_ENUM_F3_TITULO.SuperGrande))
{
int_AnchoTitulo = 350;
}
//Pequeno
else if (g_enum_F3_AnchoTitulo.Equals(G_ENUM_F3_TITULO.Pequeno))
{
int_AnchoTitulo = 60;
}
//SuperPequeno
else if (g_enum_F3_AnchoTitulo.Equals(G_ENUM_F3_TITULO.SuperPequeno))
{
int_AnchoTitulo = 40;
}
//MedioPequeno
else if (g_enum_F3_AnchoTitulo.Equals(G_ENUM_F3_TITULO.MedioPequeno))
{
int_AnchoTitulo = 130;
}
ex_lbl_Titulo.Size = new Size(int_AnchoTitulo, ex_lbl_Titulo.Size.Height);
ex_txt_Codigo.Location = new Point(int_AnchoTitulo + 6, ex_txt_Codigo.Location.Y);
ex_btn_F3_Codigo.Location = new Point((ex_txt_Codigo.Size.Width + int_AnchoTitulo + 6 + 3), ex_btn_F3_Codigo.Location.Y);
ex_txt_Descripcion.Location = new Point((ex_btn_F3_Codigo.Size.Width + ex_btn_F3_Codigo.Location.X + 9), ex_txt_Descripcion.Location.Y);
ex_txt_Descripcion.Size = new Size(((ex_btn_F3_Descripcion.Location.X - ex_txt_Descripcion.Location.X) - 3), ex_txt_Descripcion.Size.Height);
}
get
{
return g_enum_F3_AnchoTitulo;
}
}
internal G_ENUM_F3_CODIGO g_enum_F3_AnchoCodigo = G_ENUM_F3_CODIGO.Normal;
public G_ENUM_F3_CODIGO Exferia_F3_Ancho_Codigo
{
set
{
g_enum_F3_AnchoCodigo = value;
int int_AnchoCodigo = 91;
//Normal
if (g_enum_F3_AnchoCodigo.Equals(G_ENUM_F3_CODIGO.Normal))
{
int_AnchoCodigo = 91;
}
//Grande
else
{
int_AnchoCodigo = 150;
}
ex_txt_Codigo.Size = new Size(int_AnchoCodigo, ex_txt_Codigo.Size.Height);
ex_btn_F3_Codigo.Location = new Point((int_AnchoCodigo + ex_txt_Codigo.Location.X + 3), ex_btn_F3_Codigo.Location.Y);
ex_txt_Descripcion.Location = new Point((ex_btn_F3_Codigo.Size.Width + ex_btn_F3_Codigo.Location.X + 9), ex_txt_Descripcion.Location.Y);
ex_txt_Descripcion.Size = new Size(((ex_btn_F3_Descripcion.Location.X - ex_txt_Descripcion.Location.X) - 3), ex_txt_Descripcion.Size.Height);
}
get
{
return g_enum_F3_AnchoCodigo;
}
}
internal bool g_bol_BuscarTitulo_OpcionesDetalle = true;
public bool Exferia_F3_PRINCIPAL_BUSCARTITULO
{
set
{
g_bol_BuscarTitulo_OpcionesDetalle = value;
}
}
internal bool g_bol_Bloquear_F3_Descripcion = false;
public bool Exferia_F3_Bloquear_F3_Descripcion
{
set
{
g_bol_Bloquear_F3_Descripcion = value;
//Si esta a true se oculta el boton d F3
if (g_bol_Bloquear_F3_Descripcion)
{
ex_btn_F3_Descripcion.Visible = false;
ex_txt_Descripcion.Size = new Size((ex_btn_F3_Descripcion.Location.X + ex_btn_F3_Descripcion.Size.Width) - ex_txt_Descripcion.Location.X, ex_txt_Descripcion.Size.Height);
}
else
{
ex_btn_F3_Descripcion.Visible = true;
ex_txt_Descripcion.Size = new Size((ex_btn_F3_Descripcion.Location.X - 6) - ex_txt_Descripcion.Location.X, ex_txt_Descripcion.Size.Height);
}
}
get
{
return g_bol_Bloquear_F3_Descripcion;
}
}
internal bool g_bol_Obligatorio = false;
public bool Exferia_F3_PRINCIPAL_Obligatorio
{
set
{
g_bol_Obligatorio = value;
if (g_bol_Obligatorio)
{
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
ex_txt_Codigo.Exferia_TextBox_Fondo = Color.White;
ex_txt_Descripcion.Exferia_TextBox_Fondo = Color.White;
}
}
get
{
return g_bol_Obligatorio;
}
}
//Mayor
internal bool g_bol_AutoCompletadoMayor = false;
public bool Exferia_F3_PRINCIPAL_AutoCompletado_Mayor
{
set
{
g_bol_AutoCompletadoMayor = value;
if (g_bol_AutoCompletadoMayor)
{
if (g_P_Base_Contenedor != null)
{
ex_txt_Codigo.Exferia_TextBox_Tipos = G_ENUM_TEXTBOX_TIPODATO.AutoCompletado_Mayor;
ex_txt_Codigo.Exferia_TextBox_AutoCompletar_Mayor(g_P_Base_Contenedor.P_Base_ValoresGenerales);
}
}
else
{
ex_txt_Codigo.Exferia_TextBox_Tipos = G_ENUM_TEXTBOX_TIPODATO.Textos;
ex_txt_Codigo.Exferia_TextBox_AutoCompletar_Mayor(null);
}
}
}
internal bool g_bol_BotonAdd_Visible = true;
public bool Exferia_F3_PRINCIPAL_PermitirAdd
{
set
{
g_bol_BotonAdd_Visible = value;
//No se puede añadir
if (g_bol_BotonAdd_Visible==false)
{
//Ocultar boton de añadir
ex_btn_Add.Visible = g_bol_BotonAdd_Visible;
//Mover boton de F3 descripcion
ex_btn_F3_Descripcion.Location = new Point(ex_btn_Ver.Location.X - 27, ex_btn_F3_Descripcion.Location.Y);
//Aumentar el tamño de textbox
ex_txt_Descripcion.Size = new Size((this.Size.Width - ex_txt_Descripcion.Location.X) - ((27*2) + 8), ex_txt_Descripcion.Size.Height);
}
else
{
//Mostrar boton de añadir
ex_btn_Add.Visible = g_bol_BotonAdd_Visible;
//Mover boton de F3 descripcion
ex_btn_F3_Descripcion.Location = new Point(ex_btn_Add.Location.X - 27, ex_btn_F3_Descripcion.Location.Y);
//Aumentar el tamño de textbox
ex_txt_Descripcion.Size = new Size((this.Size.Width - ex_txt_Descripcion.Location.X) - ((27 * 3) + 8), ex_txt_Descripcion.Size.Height);
}
}
get
{
return g_bol_BotonAdd_Visible;
}
}
#region Objetos codigo y Descripcion
public Exferia_TextBox Exferia_F3_PRINCIPAL_TextBox_Codigo
{
get
{
return ex_txt_Codigo;
}
}
public Exferia_TextBox Exferia_F3_PRINCIPAL_TextBox_Descripcion
{
get
{
return ex_txt_Descripcion;
}
}
#endregion
public string Exferia_F3_Titulo
{
set
{
ex_lbl_Titulo.Text = value;
}
get
{
return ex_lbl_Titulo.Text;
}
}
internal long g_lng_id = -1;
public long Exferia_F3_Id
{
set
{
g_lng_id = value;
//Si tiene Relacionado otro F3
//Si este el Padre, cada vez que busque, borro los datos del hijo y desbloqueo los controles
if (g_enum_TipoRelacion == Exferia_F3_TipoRelacion.Padre)
{
if (g_lst_ExferiaF3_Relacionados_Hijos != null)
{
foreach (Exferia_F3 obj_Exferia_F3 in g_lst_ExferiaF3_Relacionados_Hijos)
{
obj_Exferia_F3.Exferia_F3_Id = -1;
obj_Exferia_F3.Exferia_F3_Codigo = "";
obj_Exferia_F3.Exferia_F3_Descripcion = "";
obj_Exferia_F3.Exferia_F3_FechaBorrado = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_1 = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_2 = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_3 = null;
//Poner los colores inciales
if (g_bol_Obligatorio)
{
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
if (g_lng_id > 0)
{
//Desbloqueo
obj_Exferia_F3.Enabled = true;
}
else
{
//Desbloqueo
obj_Exferia_F3.Enabled = false;
}
}
}
}
}
get
{
return g_lng_id;
}
}
public string Exferia_F3_Codigo
{
set
{
ex_txt_Codigo.Text = value;
}
get
{
return ex_txt_Codigo.Text;
}
}
public string Exferia_F3_Descripcion
{
set
{
ex_txt_Descripcion.Text = value;
}
get
{
return ex_txt_Descripcion.Text;
}
}
private string g_str_RazonSocialCuentas = "";
public string Exferia_F3_Descripcion_RazonSocial_Cuentas
{
set
{
g_str_RazonSocialCuentas = value;
}
}
internal DateTime? g_dtt_FechaBorrado = null;
public DateTime? Exferia_F3_FechaBorrado
{
set
{
g_dtt_FechaBorrado = value;
if (g_dtt_FechaBorrado != null)
{
ex_txt_Codigo.Exferia_TextBox_FuenteTexto(Fuentes.G_FONT_TEXTOS_TACHADA);
ex_txt_Codigo.Exferia_TextBox_ColorTexto(Colores.G_COLOR_ATENCION);
ex_txt_Descripcion.Exferia_TextBox_FuenteTexto(Fuentes.G_FONT_TEXTOS_TACHADA);
ex_txt_Descripcion.Exferia_TextBox_ColorTexto(Colores.G_COLOR_ATENCION);
}
else
{
ex_txt_Codigo.Exferia_TextBox_FuenteTexto(Fuentes.G_FONT_TEXTOS);
ex_txt_Codigo.Exferia_TextBox_ColorTexto(Colores.G_COLOR_TEXTO_ESCRITO);
ex_txt_Descripcion.Exferia_TextBox_FuenteTexto(Fuentes.G_FONT_TEXTOS);
ex_txt_Descripcion.Exferia_TextBox_ColorTexto(Colores.G_COLOR_TEXTO_ESCRITO);
}
}
get
{
return g_dtt_FechaBorrado;
}
}
internal long? g_lng_idEjercicio_baja = null;
public long? Exferia_F3_IdEjercicio_Baja
{
set
{
g_lng_idEjercicio_baja = value;
if (g_lng_idEjercicio_baja != null && g_lng_idEjercicio_baja.Value > -1)
{
//Comparar fecha temporadafin del ejericio de baja si lo tuviera con la fecha de trabajo actual
if (Datos_Generales.GEN_EjerciciosActivos_Empresa_Registro_DadoDeBaja_Por_EjercicioFecha(g_lng_idEjercicio_baja.Value, g_P_Base_Contenedor.P_Base_FechaTrabajo))
{
ex_txt_Codigo.Exferia_TextBox_FuenteTexto(Fuentes.G_FONT_TEXTOS_TACHADA);
ex_txt_Codigo.Exferia_TextBox_ColorTexto(Colores.G_COLOR_DADODEBAJA);
ex_txt_Descripcion.Exferia_TextBox_FuenteTexto(Fuentes.G_FONT_TEXTOS_TACHADA);
ex_txt_Descripcion.Exferia_TextBox_ColorTexto(Colores.G_COLOR_DADODEBAJA);
}
else
{
if (g_dtt_FechaBorrado != null)
{
ex_txt_Codigo.Exferia_TextBox_FuenteTexto(Fuentes.G_FONT_TEXTOS_TACHADA);
ex_txt_Codigo.Exferia_TextBox_ColorTexto(Colores.G_COLOR_ATENCION);
ex_txt_Descripcion.Exferia_TextBox_FuenteTexto(Fuentes.G_FONT_TEXTOS_TACHADA);
ex_txt_Descripcion.Exferia_TextBox_ColorTexto(Colores.G_COLOR_ATENCION);
}
else
{
ex_txt_Codigo.Exferia_TextBox_FuenteTexto(Fuentes.G_FONT_TEXTOS);
ex_txt_Codigo.Exferia_TextBox_ColorTexto(Colores.G_COLOR_TEXTO_ESCRITO);
ex_txt_Descripcion.Exferia_TextBox_FuenteTexto(Fuentes.G_FONT_TEXTOS);
ex_txt_Descripcion.Exferia_TextBox_ColorTexto(Colores.G_COLOR_TEXTO_ESCRITO);
}
}
}
else
{
if (g_dtt_FechaBorrado != null)
{
ex_txt_Codigo.Exferia_TextBox_FuenteTexto(Fuentes.G_FONT_TEXTOS_TACHADA);
ex_txt_Codigo.Exferia_TextBox_ColorTexto(Colores.G_COLOR_ATENCION);
ex_txt_Descripcion.Exferia_TextBox_FuenteTexto(Fuentes.G_FONT_TEXTOS_TACHADA);
ex_txt_Descripcion.Exferia_TextBox_ColorTexto(Colores.G_COLOR_ATENCION);
}
else
{
ex_txt_Codigo.Exferia_TextBox_FuenteTexto(Fuentes.G_FONT_TEXTOS);
ex_txt_Codigo.Exferia_TextBox_ColorTexto(Colores.G_COLOR_TEXTO_ESCRITO);
ex_txt_Descripcion.Exferia_TextBox_FuenteTexto(Fuentes.G_FONT_TEXTOS);
ex_txt_Descripcion.Exferia_TextBox_ColorTexto(Colores.G_COLOR_TEXTO_ESCRITO);
}
}
}
get
{
return g_lng_idEjercicio_baja;
}
}
internal object g_obj_DatosAuxiliares_1 = null;
public object Exferia_F3_DatosAuxiliares_1
{
set
{
g_obj_DatosAuxiliares_1 = value;
}
get
{
return g_obj_DatosAuxiliares_1;
}
}
internal object g_obj_DatosAuxiliares_2 = null;
public object Exferia_F3_DatosAuxiliares_2
{
set
{
g_obj_DatosAuxiliares_2 = value;
}
get
{
return g_obj_DatosAuxiliares_2;
}
}
internal object g_obj_DatosAuxiliares_3 = null;
public object Exferia_F3_DatosAuxiliares_3
{
set
{
g_obj_DatosAuxiliares_3 = value;
}
get
{
return g_obj_DatosAuxiliares_3;
}
}
#region Objeto Relacionado
internal List<INTERNO_Filtro_OpcionPadre_Modelo> g_lst_INTERNO_Filtro_OpcionPadre_Modelo = null;
public List<INTERNO_Filtro_OpcionPadre_Modelo> Exferia_F3_RELACIONADOS
{
set
{
g_lst_INTERNO_Filtro_OpcionPadre_Modelo = value;
}
}
// Enumerado que define el tipo de relacion que puede existir entre dos Objetos Exferia_F3
public enum Exferia_F3_TipoRelacion
{
Ninguna,
Padre,
Hijo
}
// Tipo de Relacion con otro Objeto Exferia_F3
internal Exferia_F3_TipoRelacion g_enum_TipoRelacion = Exferia_F3_TipoRelacion.Ninguna;
public Exferia_F3_TipoRelacion Exferia_F3_RELACIONAL_TipoRelacion
{
set
{
g_enum_TipoRelacion = value;
if (value==Exferia_F3_TipoRelacion.Hijo)
{
Tag = "1";
}
else
{
Tag = "";
}
}
get
{
return g_enum_TipoRelacion;
}
}
// Objetos hijos Exferia_F3 Relacionados
internal List<Exferia_F3> g_lst_ExferiaF3_Relacionados_Hijos;
public List<Exferia_F3> Exferia_F3_RELACIONADOS_Objetos_Hijos
{
set
{
g_lst_ExferiaF3_Relacionados_Hijos = value;
}
get
{
return g_lst_ExferiaF3_Relacionados_Hijos;
}
}
// Objeto padre Exferia_F3 Relacionado
internal Exferia_F3 g_obj_ExferiaF3_Relacionado_Padre;
public Exferia_F3 Exferia_F3_RELACIONADO_Objeto_Padre
{
set
{
g_obj_ExferiaF3_Relacionado_Padre = value;
}
}
// Valores del padre Exferia_F3 Relacionado sin Objeto
internal long g_lng_ExferiaF3_Relacionado_Padre_ID = -1;
public long Exferia_F3_RELACIONADOS_Padre_ID
{
set
{
g_lng_ExferiaF3_Relacionado_Padre_ID = value;
}
}
internal string g_str_ExferiaF3_Relacionado_Padre_OPCION = "";
public string Exferia_F3_RELACIONADOS_Padre_OPCION
{
set
{
g_str_ExferiaF3_Relacionado_Padre_OPCION = value;
}
}
#endregion
public void Exferia_F3_Foco ()
{
ex_txt_Codigo.Exferia_TextBox_Foco();
}
// Objetos hijos Exferia_F3 Relacionados
internal Exferia_F3 g_Exferia_F3_Objeto_CopiarInformacion;
public Exferia_F3 Exferia_F3_Objeto_CopiarInformacion
{
set
{
g_Exferia_F3_Objeto_CopiarInformacion = value;
}
}
internal Dictionary<string, object> g_dct_ListadoFiltros = null;
public Dictionary<string, object> Exferia_F3_FiltrosAvanzados
{
set
{
g_dct_ListadoFiltros = value;
}
}
internal List<INTERNO_CampoValor_Modelo> g_lst_Argumentos = null;
public List<INTERNO_CampoValor_Modelo> Exferia_F3_ListadoCampos_Enviar_A_Mantenimiento
{
set
{
g_lst_Argumentos = value;
}
}
#endregion
#region Eventos publicos
public event EventHandler Exferia_F3_Evento_TextChanged;
public event EventHandler Exferia_F3_Evento_TerminoBusqueda;
#endregion
public Exferia_F3()
{
InitializeComponent();
// (Tarea Asincrona) Buscar ###############################################################
g_TareaAsincrona_Buscar = new BackgroundWorker();
g_TareaAsincrona_Buscar.DoWork += new DoWorkEventHandler(TareaAsincrona_Buscar_DoWork);
g_TareaAsincrona_Buscar.RunWorkerCompleted += new RunWorkerCompletedEventHandler(TareaAsincrona_Buscar_Completed);
g_TareaAsincrona_Buscar.WorkerReportsProgress = false;
g_TareaAsincrona_Buscar.WorkerSupportsCancellation = true;
// ##############################################################################################
// (Tarea Asincrona) BuscarPorId ###############################################################
g_TareaAsincrona_Buscar_RegistroPorId = new BackgroundWorker();
g_TareaAsincrona_Buscar_RegistroPorId.DoWork += new DoWorkEventHandler(TareaAsincrona_Buscar_RegistroPorId_DoWork);
g_TareaAsincrona_Buscar_RegistroPorId.RunWorkerCompleted += new RunWorkerCompletedEventHandler(TareaAsincrona_Buscar_RegistroPorId_Completed);
g_TareaAsincrona_Buscar_RegistroPorId.WorkerReportsProgress = false;
g_TareaAsincrona_Buscar_RegistroPorId.WorkerSupportsCancellation = true;
// ##############################################################################################
ex_btn_Ver.Exferia_Button_Bloqueable = false;
}
private void Exferia_F3_Load(object sender, EventArgs e)
{
CargaInicial();
}
public void CargaInicial()
{
try
{
//Buscar los datos del Arbol
g_mdl_INTERNO_OpcionesDetalle_Modelo = Datos_Generales.PRV_Opciones_Buscar_Detalles(g_str_NombreOpcion_BuscarDatos);
//Buscar el Titulo en el Arbol
if (g_bol_BuscarTitulo_OpcionesDetalle && g_mdl_INTERNO_OpcionesDetalle_Modelo != null)
{
Exferia_F3_Titulo = g_mdl_INTERNO_OpcionesDetalle_Modelo.descripcion_Singular;
}
//Bloquear hijos si el padre no esta relleno
if (g_lng_id < 1)
{
if (g_lst_ExferiaF3_Relacionados_Hijos != null)
{
foreach (Exferia_F3 obj_Exferia_F3 in g_lst_ExferiaF3_Relacionados_Hijos)
{
//Bloqueo
obj_Exferia_F3.Enabled = false;
}
}
}
//Cargamos el ensamblado
Assembly m_assembly = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + g_mdl_INTERNO_OpcionesDetalle_Modelo.nombreLibreria + ".dll");
//Obtenemos el tipo de la clase
Type m_type = m_assembly.GetType(g_mdl_INTERNO_OpcionesDetalle_Modelo.nombreLibreria + "." + Variables.G_STR_LIBRERIA_OPCIONES);
//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_OPCIONES_PROCEDIMIENTO_OBTENCION_ABS_F3, BindingFlags.Instance | BindingFlags.NonPublic);
//Obtener valores
object[] arr_Parametros = { g_str_NombreOpcion_BuscarDatos };
//Pasamos los parametros al metodo y lo ejecutamos
g_obj_ABS_F3 = (ABS_F3)obj_MethodInfo.Invoke(obj_Clase, arr_Parametros);
}
catch (Exception ex)
{
Control_Errores.Errores_Log(g_str_NombreOpcion_BuscarDatos, ex, nameof(Exferia_F3) + "/" + nameof(CargaInicial));
}
}
#region Poner el Foco en TextBox
/// <summary>
/// Poner el Fodo en el TextBox de Codigo
/// </summary>
public void Foco_Codigo()
{
ex_txt_Codigo.Exferia_TextBox_Foco();
}
/// <summary>
/// Poner el Fodo en el TextBox de Descripcion
/// </summary>
public void Foco_Descripcion()
{
ex_txt_Descripcion.Exferia_TextBox_Foco();
}
#endregion
#region Codigo
private void ex_btn_F3_Codigo_Click(object sender, EventArgs e)
{
F3_Pulsado(ex_txt_Codigo);
}
private void ex_txt_Codigo_Exferia_TextBox_Evento_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.F3:
{
F3_Pulsado(sender as Exferia_TextBox);
break;
}
default:
{
g_bol_Cambio_Codigo = true;
break;
}
}
}
private void ex_txt_Codigo_Exferia_TextBox_Evento_GotFocus(object sender, EventArgs e)
{
ex_txt_Codigo.Tag = ex_txt_Codigo.Text;
}
private void ex_txt_Codigo_Exferia_TextBox_Evento_LostFocus(object sender, EventArgs e)
{
try
{
if (g_bol_Cambio_Codigo)
{
g_bol_Cambio_Codigo = false;
if (!ex_txt_Codigo.Tag.ToString().Equals(ex_txt_Codigo.Text))
{
g_str_Filtro = ex_txt_Codigo.Text;
g_str_CampoBusqueda = g_obj_ABS_F3.NOMBRE_CAMPO_CODIGO();
Buscar(g_str_Filtro, g_str_CampoBusqueda);
}
}
g_bol_Cambio_Codigo = false;
}
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(Exferia_F3) + "/" + nameof(ex_txt_Codigo_Exferia_TextBox_Evento_LostFocus));
}
}
private void ex_txt_Codigo_Exferia_TextBox_Evento_TextChanged(object sender, EventArgs e)
{
if (g_P_Base_Contenedor.Enabled)
{
g_P_Base_Contenedor.P_Base_SeModificoDatosPantalla = true;
}
//Salta el Evento de TextChange
Exferia_F3_Evento_TextChanged?.Invoke(this, e);
}
#endregion
#region Descripcion
private void ex_btn_F3_Descripcion_Click(object sender, EventArgs e)
{
F3_Pulsado(ex_txt_Descripcion);
}
private void ex_txt_Descripcion_Exferia_TextBox_Evento_KeyDown(object sender, KeyEventArgs e)
{
if (g_bol_Bloquear_F3_Descripcion == false)
{
switch (e.KeyCode)
{
case Keys.F3:
{
F3_Pulsado(sender as Exferia_TextBox);
break;
}
default:
{
g_bol_Cambio_Descripcion = true;
break;
}
}
}
}
private void ex_txt_Descripcion_Exferia_TextBox_Evento_GotFocus(object sender, EventArgs e)
{
ex_txt_Descripcion.Tag = ex_txt_Descripcion.Text;
}
private void ex_txt_Descripcion_Exferia_TextBox_Evento_LostFocus(object sender, EventArgs e)
{
try
{
if (g_bol_Bloquear_F3_Descripcion == false)
{
if (g_bol_Cambio_Descripcion)
{
g_bol_Cambio_Descripcion = false;
if (!ex_txt_Descripcion.Tag.ToString().Equals(ex_txt_Descripcion.Text))
{
g_str_Filtro = ex_txt_Descripcion.Text;
g_str_CampoBusqueda = g_obj_ABS_F3.NOMBRE_CAMPO_DESCRIPCION();
Buscar(g_str_Filtro, g_str_CampoBusqueda);
}
}
g_bol_Cambio_Descripcion = false;
}
}
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(Exferia_F3) + "/" + nameof(ex_txt_Descripcion_Exferia_TextBox_Evento_LostFocus));
}
}
private void ex_txt_Descripcion_Exferia_TextBox_Evento_TextChanged(object sender, EventArgs e)
{
if (g_P_Base_Contenedor.Enabled)
{
g_P_Base_Contenedor.P_Base_SeModificoDatosPantalla = true;
}
//Salta el Evento de TextChange
Exferia_F3_Evento_TextChanged?.Invoke(this, e);
}
#endregion
private void F3_Pulsado(Exferia_TextBox _ex_txt_Actual)
{
if (Datos_Generales.Permisos_Comprobar(g_str_NombreOpcion_BuscarDatos, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Seleccionar, true))
{
string str_NombreCampo_Seleccionado = g_obj_ABS_F3.NOMBRE_CAMPO_CODIGO();
string str_Valor_Seleccionado = ex_txt_Codigo.Text;
if (_ex_txt_Actual.Name.Equals("ex_txt_Descripcion"))
{
str_NombreCampo_Seleccionado = g_obj_ABS_F3.NOMBRE_CAMPO_DESCRIPCION();
str_Valor_Seleccionado = ex_txt_Descripcion.Text;
}
//Cargamos el ensamblado
Assembly m_assembly = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + g_mdl_INTERNO_OpcionesDetalle_Modelo.nombreLibreria + ".dll");
//Obtenemos el tipo de la clase
Type m_type = m_assembly.GetType(g_mdl_INTERNO_OpcionesDetalle_Modelo.nombreLibreria + "." + Variables.G_STR_LIBRERIA_OPCIONES);
//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_OPCIONES_PROCEDIMIENTO_CARGAR_LISTADO, BindingFlags.Instance | BindingFlags.NonPublic);
//Evento Registro Seleccionado .........................................
MethodInfo obj_EventoAlqueSeRedirige_RegistroSeleccionado = typeof(Exferia_F3).GetMethod("Evento_RegistroSeleccionado", BindingFlags.NonPublic | BindingFlags.Instance);
EventInfo obj_Evento_Publico_RegistroSeleccionado = obj_Clase.GetType().GetEvent(Variables.G_STR_LIBRERIA_OPCIONES_EVENTO_REGISTROSELECCIONADO);
Type obj_TipoEventoPublico_RegistroSeleccionado = obj_Evento_Publico_RegistroSeleccionado.EventHandlerType;
Delegate obj_Delegado_RegistroSeleccionado = Delegate.CreateDelegate(obj_TipoEventoPublico_RegistroSeleccionado, this, obj_EventoAlqueSeRedirige_RegistroSeleccionado);
obj_Evento_Publico_RegistroSeleccionado.AddEventHandler(obj_Clase, obj_Delegado_RegistroSeleccionado);
//..................................................................
List<INTERNO_Filtro_OpcionPadre_Modelo> lst_INTERNO_Filtro_OpcionPadre_Modelo = null;
if (g_lst_INTERNO_Filtro_OpcionPadre_Modelo != null)
{
lst_INTERNO_Filtro_OpcionPadre_Modelo = new List<INTERNO_Filtro_OpcionPadre_Modelo>();
lst_INTERNO_Filtro_OpcionPadre_Modelo.AddRange(g_lst_INTERNO_Filtro_OpcionPadre_Modelo);
}
//Si es Hijo y el padre tiene algo seleccionado se le envia al listado para que filtre por ahi tambien
if (g_str_ExferiaF3_Relacionado_Padre_OPCION != "")
{
if (lst_INTERNO_Filtro_OpcionPadre_Modelo == null)
{
lst_INTERNO_Filtro_OpcionPadre_Modelo = new List<INTERNO_Filtro_OpcionPadre_Modelo>();
}
lst_INTERNO_Filtro_OpcionPadre_Modelo.Add(new INTERNO_Filtro_OpcionPadre_Modelo(g_str_ExferiaF3_Relacionado_Padre_OPCION, g_lng_ExferiaF3_Relacionado_Padre_ID));
}
else if (g_enum_TipoRelacion == Exferia_F3_TipoRelacion.Hijo)
{
if (g_obj_ExferiaF3_Relacionado_Padre != null)
{
if (lst_INTERNO_Filtro_OpcionPadre_Modelo == null)
{
lst_INTERNO_Filtro_OpcionPadre_Modelo = new List<INTERNO_Filtro_OpcionPadre_Modelo>();
}
lst_INTERNO_Filtro_OpcionPadre_Modelo.Add(new INTERNO_Filtro_OpcionPadre_Modelo(g_obj_ExferiaF3_Relacionado_Padre.Exferia_F3_PRINCIPAL_Opcion_BuscarDatos, g_obj_ExferiaF3_Relacionado_Padre.Exferia_F3_Id));
}
}
//Acciones permitidas
int int_Acciones_permitidas = 0;
if (g_bol_BotonAdd_Visible == false)
{
int_Acciones_permitidas = 100;
}
//Obtener valores
object[] arr_Parametros = { g_str_NombreOpcion_BuscarDatos,
true,
int_Acciones_permitidas,
g_P_Base_Contenedor,
g_P_Base_Contenedor.P_Base_ValoresGenerales,
g_P_Base_Contenedor.P_Base_FechaTrabajo,
str_NombreCampo_Seleccionado,
str_Valor_Seleccionado,
false,
false,
lst_INTERNO_Filtro_OpcionPadre_Modelo,
null,
g_dct_ListadoFiltros,
(Exferia_F3_Objeto_ParaEnviarAMantenimiento!=null ? Exferia_F3_Objeto_ParaEnviarAMantenimiento : g_lng_ExferiaF3_Relacionado_Padre_ID),
g_obj_Filtro_Auxiliar,
g_obj_ABS_Listado};
//Pasamos los parametros al metodo y lo ejecutamos
obj_MethodInfo.Invoke(obj_Clase, arr_Parametros);
}
}
#region Eventos del Listado llamado
void Evento_RegistroSeleccionado(object sender, INTERNO_EventArgs_Listado e)
{
if (e.REGISTRO_SELECCIONADO != null)
{
var obj_id = e.REGISTRO_SELECCIONADO.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_ID()).GetValue(e.REGISTRO_SELECCIONADO, null);
if (obj_id != null)
{
long lng_id_Antiguo = g_lng_id;
//Poner los colores inciales
if (g_bol_Obligatorio)
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
g_lng_id = obj_id;
var obj_Codigo = e.REGISTRO_SELECCIONADO.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_CODIGO()).GetValue(e.REGISTRO_SELECCIONADO, null);
if (obj_Codigo != null)
{
ex_txt_Codigo.Text = Convert.ToString(obj_Codigo);
}
var obj_Descripcion = e.REGISTRO_SELECCIONADO.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_DESCRIPCION()).GetValue(e.REGISTRO_SELECCIONADO, null);
if (obj_Descripcion != null)
{
ex_txt_Descripcion.Text = obj_Descripcion;
}
//fechaBorrado
DateTime? dtt_FechaBorrado = null;
var obj_FechaBorrado = e.REGISTRO_SELECCIONADO.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_FECHABORRADO()).GetValue(e.REGISTRO_SELECCIONADO, null);
if (obj_FechaBorrado != null)
{
dtt_FechaBorrado = obj_FechaBorrado;
}
Exferia_F3_FechaBorrado = dtt_FechaBorrado;
//Si tuviera el nombre del Ejercicio_Baja se pone el valor
if (g_obj_ABS_F3.NOMBRE_CAMPO_IDEJERCICIO_BAJA() != null && g_obj_ABS_F3.NOMBRE_CAMPO_IDEJERCICIO_BAJA().Trim().Length > 0)
{
long? lng_idEjercicio_Baja = null;
var obj_idEjercicio_Baja = e.REGISTRO_SELECCIONADO.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_IDEJERCICIO_BAJA()).GetValue(e.REGISTRO_SELECCIONADO, null);
if (obj_idEjercicio_Baja != null)
{
lng_idEjercicio_Baja = obj_idEjercicio_Baja;
}
Exferia_F3_IdEjercicio_Baja = lng_idEjercicio_Baja;
}
//Si tuviera el nombre CAMPO DatosAuxiliares 1
if (g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_1() != null && g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_1().Trim().Length > 0)
{
Exferia_F3_DatosAuxiliares_1 = e.REGISTRO_SELECCIONADO.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_1()).GetValue(e.REGISTRO_SELECCIONADO, null);
}
//Si tuviera el nombre CAMPO DatosAuxiliares 2
if (g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_2() != null && g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_2().Trim().Length > 0)
{
Exferia_F3_DatosAuxiliares_2 = e.REGISTRO_SELECCIONADO.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_2()).GetValue(e.REGISTRO_SELECCIONADO, null);
}
//Si tuviera el nombre CAMPO DatosAuxiliares 3
if (g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_3() != null && g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_3().Trim().Length > 0)
{
Exferia_F3_DatosAuxiliares_3 = e.REGISTRO_SELECCIONADO.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_3()).GetValue(e.REGISTRO_SELECCIONADO, null);
}
//Si tiene Relacionado otro F3
//Si este el Padre, cada vez que busque, borro los datos del hijo y desbloqueo los controles
if (g_enum_TipoRelacion == Exferia_F3_TipoRelacion.Padre)
{
if (g_lst_ExferiaF3_Relacionados_Hijos != null)
{
foreach (Exferia_F3 obj_Exferia_F3 in g_lst_ExferiaF3_Relacionados_Hijos)
{
obj_Exferia_F3.Exferia_F3_Id = -1;
obj_Exferia_F3.Exferia_F3_Codigo = "";
obj_Exferia_F3.Exferia_F3_Descripcion = "";
obj_Exferia_F3.Exferia_F3_FechaBorrado = null;
obj_Exferia_F3.Exferia_F3_IdEjercicio_Baja = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_1 = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_2 = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_3 = null;
//Poner los colores inciales
if (g_bol_Obligatorio)
{
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
//Desbloqueo
obj_Exferia_F3.Enabled = true;
}
}
}
//#################################################################################################
//Copiar la informacion si estuviera a vacio o incorrecto
if (g_Exferia_F3_Objeto_CopiarInformacion != null)
{
if (g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_Id == -1 &&
g_lng_id > -1 &&
g_Exferia_F3_Objeto_CopiarInformacion.Enabled)
{
g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_Id = g_lng_id;
g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_Codigo = ex_txt_Codigo.Text;
g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_Descripcion = ex_txt_Descripcion.Text;
g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_FechaBorrado = Exferia_F3_FechaBorrado;
g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_IdEjercicio_Baja = Exferia_F3_IdEjercicio_Baja;
g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_DatosAuxiliares_1 = Exferia_F3_DatosAuxiliares_1;
g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_DatosAuxiliares_2 = Exferia_F3_DatosAuxiliares_2;
g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_DatosAuxiliares_3 = Exferia_F3_DatosAuxiliares_3;
//Hijos
if (g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_RELACIONAL_TipoRelacion == Exferia_F3_TipoRelacion.Padre)
{
if (g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_RELACIONADOS_Objetos_Hijos != null)
{
foreach (Exferia_F3 obj_Exferia_F3_Copiar in g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_RELACIONADOS_Objetos_Hijos)
{
obj_Exferia_F3_Copiar.Exferia_F3_Id = -1;
obj_Exferia_F3_Copiar.Exferia_F3_Codigo = "";
obj_Exferia_F3_Copiar.Exferia_F3_Descripcion = "";
obj_Exferia_F3_Copiar.Exferia_F3_FechaBorrado = null;
obj_Exferia_F3_Copiar.Exferia_F3_IdEjercicio_Baja = null;
obj_Exferia_F3_Copiar.Exferia_F3_DatosAuxiliares_1 = null;
obj_Exferia_F3_Copiar.Exferia_F3_DatosAuxiliares_2 = null;
obj_Exferia_F3_Copiar.Exferia_F3_DatosAuxiliares_3 = null;
//Poner los colores inciales
if (obj_Exferia_F3_Copiar.Exferia_F3_PRINCIPAL_Obligatorio)
{
obj_Exferia_F3_Copiar.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
obj_Exferia_F3_Copiar.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
obj_Exferia_F3_Copiar.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
obj_Exferia_F3_Copiar.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
//Desbloqueo
obj_Exferia_F3_Copiar.Enabled = true;
}
}
}
}
}
if (g_lng_id != lng_id_Antiguo)
{
//Salta el Evento de TerminoBusqueda
Exferia_F3_Evento_TerminoBusqueda?.Invoke(this, new EventArgs());
}
//##################################################################################################
}
else
{
//Salta el Evento de TerminoBusqueda
Exferia_F3_Evento_TerminoBusqueda?.Invoke(this, new EventArgs());
}
}
//Poner Foco
ex_txt_Codigo.Exferia_TextBox_Foco();
}
#endregion
#region Actualiza los registros cuando se abre el mantenimiento directo y se graba o borra
public void Exferia_F3_ActualizarRegistro(long _lng_id, G_ENUM_TIPOACCION _enum_TipoAccion)
{
try
{
//Eliminar
if (_enum_TipoAccion.Equals(G_ENUM_TIPOACCION.INT_ELIMINAR))
{
//Poner los colores inciales
if (g_bol_Obligatorio)
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
g_lng_id = -1;
//Descripcion
ex_txt_Codigo.Text = "";
ex_txt_Descripcion.Text = "";
if (g_enum_TipoRelacion == Exferia_F3_TipoRelacion.Padre)
{
if (g_lst_ExferiaF3_Relacionados_Hijos != null)
{
foreach (Exferia_F3 obj_Exferia_F3 in g_lst_ExferiaF3_Relacionados_Hijos)
{
obj_Exferia_F3.Exferia_F3_Id = -1;
obj_Exferia_F3.Exferia_F3_Codigo = "";
obj_Exferia_F3.Exferia_F3_Descripcion = "";
obj_Exferia_F3.Exferia_F3_FechaBorrado = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_1 = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_2 = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_3 = null;
//Poner los colores inciales
if (g_bol_Obligatorio)
{
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
//Bloqueo
obj_Exferia_F3.Enabled = false;
}
}
}
//Poner Foco
ex_txt_Codigo.Exferia_TextBox_Foco();
//Salta el Evento de TerminoBusqueda
Exferia_F3_Evento_TerminoBusqueda?.Invoke(this, new EventArgs());
}
else if (_enum_TipoAccion.Equals(G_ENUM_TIPOACCION.INT_NADA))
{
//Poner Foco
ex_txt_Codigo.Exferia_TextBox_Foco();
}
//Actualizar e Insertar
else
{
g_TareaAsincrona_Buscar_RegistroPorId.RunWorkerAsync(_lng_id);
}
}
catch (Exception ex)
{
Control_Errores.Errores_Log(ex.Message, nameof(Exferia_F3) +"/" + nameof(Exferia_F3_ActualizarRegistro));
Mensajes.MostrarMensaje(Mensajes.G_EXFERIA_F3_ERROR_BUSCAR());
}
}
private void TareaAsincrona_Buscar_RegistroPorId_DoWork(object sender, DoWorkEventArgs e)
{
try
{
// Parametros ######################################################
long lng_id = (long)e.Argument ;
// #################################################################
List<INTERNO_Filtro_OpcionPadre_Modelo> lst_INTERNO_Filtro_OpcionPadre_Modelo = null;
if (g_lst_INTERNO_Filtro_OpcionPadre_Modelo != null)
{
lst_INTERNO_Filtro_OpcionPadre_Modelo = new List<INTERNO_Filtro_OpcionPadre_Modelo>();
lst_INTERNO_Filtro_OpcionPadre_Modelo.AddRange(g_lst_INTERNO_Filtro_OpcionPadre_Modelo);
}
//Si es Hijo y el padre tiene algo seleccionado se le envia al listado para que filtre por ahi tambien
if (g_str_ExferiaF3_Relacionado_Padre_OPCION != "")
{
if (lst_INTERNO_Filtro_OpcionPadre_Modelo == null)
{
lst_INTERNO_Filtro_OpcionPadre_Modelo = new List<INTERNO_Filtro_OpcionPadre_Modelo>();
}
lst_INTERNO_Filtro_OpcionPadre_Modelo.Add(new INTERNO_Filtro_OpcionPadre_Modelo(g_str_ExferiaF3_Relacionado_Padre_OPCION, g_lng_ExferiaF3_Relacionado_Padre_ID));
}
else if (g_enum_TipoRelacion == Exferia_F3_TipoRelacion.Hijo)
{
if (g_obj_ExferiaF3_Relacionado_Padre != null)
{
if (lst_INTERNO_Filtro_OpcionPadre_Modelo == null)
{
lst_INTERNO_Filtro_OpcionPadre_Modelo = new List<INTERNO_Filtro_OpcionPadre_Modelo>();
}
lst_INTERNO_Filtro_OpcionPadre_Modelo.Add(new INTERNO_Filtro_OpcionPadre_Modelo(g_obj_ExferiaF3_Relacionado_Padre.Exferia_F3_PRINCIPAL_Opcion_BuscarDatos, g_obj_ExferiaF3_Relacionado_Padre.Exferia_F3_Id));
}
}
//Cargamos el ensamblado
Assembly m_assembly = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + g_mdl_INTERNO_OpcionesDetalle_Modelo.nombreLibreria + ".dll");
//Obtenemos el tipo de la clase
Type m_type = m_assembly.GetType("" + g_mdl_INTERNO_OpcionesDetalle_Modelo.nombreLibreria + "." + Variables.G_STR_LIBRERIA_OPCIONES);
//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_OPCIONES_PROCEDIMIENTO_OBTENER_REGISTRO_F3_PORID, BindingFlags.Instance | BindingFlags.NonPublic);
//Obtener valores
object[] arr_Parametros = {
g_str_NombreOpcion_BuscarDatos,
lng_id,
g_P_Base_Contenedor.P_Base_ValoresGenerales.lng_idEmpresa,
((g_P_Base_Contenedor.P_Base_ValoresGenerales!=null && g_P_Base_Contenedor.P_Base_ValoresGenerales.EjercicioActivo!=null) ? g_P_Base_Contenedor.P_Base_ValoresGenerales.EjercicioActivo.id : -1),
lst_INTERNO_Filtro_OpcionPadre_Modelo,
null};
//Pasamos los parametros al metodo y lo ejecutamos
e.Result = obj_MethodInfo.Invoke(obj_Clase, arr_Parametros);
}
catch (ThreadAbortException)
{
e.Cancel = true;
Thread.ResetAbort();
}
catch (Control_Errores)
{
e.Cancel = true;
}
catch (Exception)
{
e.Cancel = true;
}
}
private void TareaAsincrona_Buscar_RegistroPorId_Completed(object sender, RunWorkerCompletedEventArgs e)
{
try
{
if (e.Cancelled == false)
{
if (e.Result != null)
{
dynamic dnm_Valor = e.Result;
if (dnm_Valor != null)
{
var obj_id = dnm_Valor.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_ID()).GetValue(dnm_Valor, null);
if (obj_id != null)
{
long lng_id_Antiguo = g_lng_id;
//Poner los colores inciales
if (g_bol_Obligatorio)
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
g_lng_id = obj_id;
var obj_Codigo = dnm_Valor.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_CODIGO()).GetValue(dnm_Valor, null);
if (obj_Codigo != null)
{
ex_txt_Codigo.Text = Convert.ToString(obj_Codigo);
}
var obj_Descripcion = dnm_Valor.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_DESCRIPCION()).GetValue(dnm_Valor, null);
if (obj_Descripcion != null)
{
ex_txt_Descripcion.Text = obj_Descripcion;
}
//fecha borrado
DateTime? dtt_FechaBorrado = null;
var obj_FechaBorrado = dnm_Valor.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_FECHABORRADO()).GetValue(dnm_Valor, null);
if (obj_FechaBorrado != null)
{
dtt_FechaBorrado = obj_FechaBorrado;
}
Exferia_F3_FechaBorrado = dtt_FechaBorrado;
//Si tuviera el nombre CAMPO DatosAuxiliares 1
if (g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_1() != null && g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_1().Trim().Length > 0)
{
Exferia_F3_DatosAuxiliares_1 = dnm_Valor.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_1()).GetValue(dnm_Valor, null);
}
//Si tuviera el nombre CAMPO DatosAuxiliares 2
if (g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_2() != null && g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_2().Trim().Length > 0)
{
Exferia_F3_DatosAuxiliares_2 = dnm_Valor.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_2()).GetValue(dnm_Valor, null);
}
//Si tuviera el nombre CAMPO DatosAuxiliares 3
if (g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_3() != null && g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_3().Trim().Length > 0)
{
Exferia_F3_DatosAuxiliares_3 = dnm_Valor.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_3()).GetValue(dnm_Valor, null);
}
//Si tiene Relacionado otro F3
//Si este el Padre, cada vez que busque, borro los datos del hijo
if (g_enum_TipoRelacion == Exferia_F3_TipoRelacion.Padre)
{
if (g_lst_ExferiaF3_Relacionados_Hijos != null)
{
foreach (Exferia_F3 obj_Exferia_F3 in g_lst_ExferiaF3_Relacionados_Hijos)
{
obj_Exferia_F3.Exferia_F3_Id = -1;
obj_Exferia_F3.Exferia_F3_Codigo = "";
obj_Exferia_F3.Exferia_F3_Descripcion = "";
obj_Exferia_F3.Exferia_F3_FechaBorrado = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_1 = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_2 = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_3 = null;
//Poner los colores inciales
if (g_bol_Obligatorio)
{
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
//Desbloqueo
obj_Exferia_F3.Enabled = true;
}
}
}
//Salta el Evento de TerminoBusqueda
Exferia_F3_Evento_TerminoBusqueda?.Invoke(this, new EventArgs());
}
else
{
//Salta el Evento de TerminoBusqueda
Exferia_F3_Evento_TerminoBusqueda?.Invoke(this, new EventArgs());
}
}
//Poner Foco
ex_txt_Codigo.Exferia_TextBox_Foco();
}
}
}
catch (Exception)
{ }
}
#endregion
#region Tarea asíncrona para buscar en la base de datos
private void Buscar(string _str_filtro, string _str_CampoBusqueda)
{
try
{
//Mostrar la pantalla de espera
g_frm_PE_Esperando = new PE_Esperando();
// Si la tarea asincrona esta en marcha la paro
g_TareaAsincrona_Buscar.CancelAsync();
while (g_TareaAsincrona_Buscar.IsBusy)
Application.DoEvents();
//Argumentos
List<object> lst_Argumentos = new List<object>();
lst_Argumentos.Add(_str_filtro);
lst_Argumentos.Add(_str_CampoBusqueda);
//Llamar a la tarea asincrona
g_TareaAsincrona_Buscar.RunWorkerAsync(lst_Argumentos);
//Mostrar pantalla de espera
g_frm_PE_Esperando.ShowDialog();
}
catch (Exception ex)
{
if (g_frm_PE_Esperando != null)
{
g_frm_PE_Esperando.Close();
g_frm_PE_Esperando = null;
}
Control_Errores.Errores_Log(ex.Message, nameof(Exferia_F3) + "/" + nameof(Buscar));
Mensajes.MostrarMensaje(Mensajes.G_EXFERIA_F3_ERROR_BUSCAR());
}
}
private void TareaAsincrona_Buscar_DoWork(object sender, DoWorkEventArgs e)
{
try
{
// Parametros ######################################################
List<object> lst_Argumentos = e.Argument as List<object>;
string str_filtro = lst_Argumentos[0].ToString();
string str_CampoBusqueda = lst_Argumentos[1].ToString();
// #################################################################
dynamic dnm_RegistroF3 = null;
if (str_filtro.Trim().Length>0)
{
List<INTERNO_Filtro_OpcionPadre_Modelo> lst_INTERNO_Filtro_OpcionPadre_Modelo = null;
if (g_lst_INTERNO_Filtro_OpcionPadre_Modelo != null)
{
lst_INTERNO_Filtro_OpcionPadre_Modelo = new List<INTERNO_Filtro_OpcionPadre_Modelo>();
lst_INTERNO_Filtro_OpcionPadre_Modelo.AddRange(g_lst_INTERNO_Filtro_OpcionPadre_Modelo);
}
//Si es Hijo y el padre tiene algo seleccionado se le envia al listado para que filtre por ahi tambien
if (g_str_ExferiaF3_Relacionado_Padre_OPCION != "")
{
if (lst_INTERNO_Filtro_OpcionPadre_Modelo == null)
{
lst_INTERNO_Filtro_OpcionPadre_Modelo = new List<INTERNO_Filtro_OpcionPadre_Modelo>();
}
lst_INTERNO_Filtro_OpcionPadre_Modelo.Add(new INTERNO_Filtro_OpcionPadre_Modelo(g_str_ExferiaF3_Relacionado_Padre_OPCION, g_lng_ExferiaF3_Relacionado_Padre_ID));
}
else if (g_enum_TipoRelacion == Exferia_F3_TipoRelacion.Hijo)
{
if (g_obj_ExferiaF3_Relacionado_Padre != null)
{
if (lst_INTERNO_Filtro_OpcionPadre_Modelo == null)
{
lst_INTERNO_Filtro_OpcionPadre_Modelo = new List<INTERNO_Filtro_OpcionPadre_Modelo>();
}
lst_INTERNO_Filtro_OpcionPadre_Modelo.Add(new INTERNO_Filtro_OpcionPadre_Modelo(g_obj_ExferiaF3_Relacionado_Padre.Exferia_F3_PRINCIPAL_Opcion_BuscarDatos, g_obj_ExferiaF3_Relacionado_Padre.Exferia_F3_Id));
}
}
//Cargamos el ensamblado
Assembly m_assembly = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + g_mdl_INTERNO_OpcionesDetalle_Modelo.nombreLibreria + ".dll");
//Obtenemos el tipo de la clase
Type m_type = m_assembly.GetType("" + g_mdl_INTERNO_OpcionesDetalle_Modelo.nombreLibreria + "." + Variables.G_STR_LIBRERIA_OPCIONES);
//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_OPCIONES_PROCEDIMIENTO_OBTENER_REGISTRO_F3, BindingFlags.Instance | BindingFlags.NonPublic);
//Obtener valores
object[] arr_Parametros = { g_str_NombreOpcion_BuscarDatos,
str_filtro,
str_CampoBusqueda,
(g_P_Base_Contenedor.P_Base_ValoresGenerales!=null ? g_P_Base_Contenedor.P_Base_ValoresGenerales.lng_idEmpresa : -1),
((g_P_Base_Contenedor.P_Base_ValoresGenerales!=null && g_P_Base_Contenedor.P_Base_ValoresGenerales.EjercicioActivo!=null) ? g_P_Base_Contenedor.P_Base_ValoresGenerales.EjercicioActivo.id : -1),
lst_INTERNO_Filtro_OpcionPadre_Modelo,
null,
g_obj_Filtro_Auxiliar
};
//Pasamos los parametros al metodo y lo ejecutamos
dnm_RegistroF3 = obj_MethodInfo.Invoke(obj_Clase, arr_Parametros);
}
// Valores a Devolver
List<object> lst_ValoresADevolver = new List<object>();
lst_ValoresADevolver.Add(dnm_RegistroF3);
lst_ValoresADevolver.Add(str_CampoBusqueda);
e.Result = lst_ValoresADevolver;
}
catch (ThreadAbortException)
{
e.Cancel = true;
}
catch (Control_Errores)
{
e.Cancel = true;
}
catch (Exception)
{
e.Cancel = true;
}
}
private void TareaAsincrona_Buscar_Completed(object sender, RunWorkerCompletedEventArgs e)
{
try
{
//Quitar Pantala de espera
if (g_frm_PE_Esperando != null)
{
g_frm_PE_Esperando.Close();
g_frm_PE_Esperando = null;
}
Thread.Sleep(10);
if (e.Cancelled == false)
{
if (e.Result != null)
{
List<object> lst_ValoresADevolver = e.Result as List<object>;
string str_CampoBusqueda = lst_ValoresADevolver[1].ToString();
long lng_id_Antiguo = g_lng_id;
if (lst_ValoresADevolver[0] != null)
{
dynamic dnm_Valor = lst_ValoresADevolver[0] as dynamic;
if (dnm_Valor != null)
{
var obj_id = dnm_Valor.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_ID()).GetValue(dnm_Valor, null);
if (obj_id != null)
{
//Poner los colores inciales
if (g_bol_Obligatorio)
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
g_lng_id = obj_id;
//Codigo
var obj_Codigo = dnm_Valor.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_CODIGO()).GetValue(dnm_Valor, null);
if (obj_Codigo != null)
{
ex_txt_Codigo.Text = Convert.ToString(obj_Codigo);
}
//descripcion
var obj_Descripcion = dnm_Valor.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_DESCRIPCION()).GetValue(dnm_Valor, null);
if (obj_Descripcion != null)
{
ex_txt_Descripcion.Text = obj_Descripcion;
}
//fecha Borrado
DateTime? dtt_FechaBorrado = null;
var obj_FechaBorrado = dnm_Valor.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_FECHABORRADO()).GetValue(dnm_Valor, null);
if (obj_FechaBorrado != null)
{
dtt_FechaBorrado = obj_FechaBorrado;
}
Exferia_F3_FechaBorrado = dtt_FechaBorrado;
//Si tuviera el nombre del Ejercicio_Baja se pone el valor
if (g_obj_ABS_F3.NOMBRE_CAMPO_IDEJERCICIO_BAJA()!=null && g_obj_ABS_F3.NOMBRE_CAMPO_IDEJERCICIO_BAJA().Trim().Length>0)
{
long? lng_idEjercicio_Baja = null;
var obj_idEjercicio_Baja = dnm_Valor.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_IDEJERCICIO_BAJA()).GetValue(dnm_Valor, null);
if (obj_idEjercicio_Baja != null)
{
lng_idEjercicio_Baja = obj_idEjercicio_Baja;
}
Exferia_F3_IdEjercicio_Baja = lng_idEjercicio_Baja;
}
//Si tuviera el nombre CAMPO DatosAuxiliares 1
if (g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_1() != null && g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_1().Trim().Length > 0)
{
Exferia_F3_DatosAuxiliares_1 = dnm_Valor.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_1()).GetValue(dnm_Valor, null);
}
//Si tuviera el nombre CAMPO DatosAuxiliares 2
if (g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_2() != null && g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_2().Trim().Length > 0)
{
Exferia_F3_DatosAuxiliares_2 = dnm_Valor.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_2()).GetValue(dnm_Valor, null);
}
//Si tuviera el nombre CAMPO DatosAuxiliares 3
if (g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_3() != null && g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_3().Trim().Length > 0)
{
Exferia_F3_DatosAuxiliares_3 = dnm_Valor.GetType().GetProperty(g_obj_ABS_F3.NOMBRE_CAMPO_DATOSAUXILIARES_3()).GetValue(dnm_Valor, null);
}
//Si tiene Relacionado otro F3
//Si este el Padre, cada vez que busque, borro los datos del hijo
if (g_enum_TipoRelacion == Exferia_F3_TipoRelacion.Padre)
{
if (g_lst_ExferiaF3_Relacionados_Hijos != null)
{
foreach (Exferia_F3 obj_Exferia_F3 in g_lst_ExferiaF3_Relacionados_Hijos)
{
obj_Exferia_F3.Exferia_F3_Id = -1;
obj_Exferia_F3.Exferia_F3_Codigo = "";
obj_Exferia_F3.Exferia_F3_Descripcion = "";
obj_Exferia_F3.Exferia_F3_FechaBorrado = null;
obj_Exferia_F3.Exferia_F3_IdEjercicio_Baja = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_1 = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_2 = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_3 = null;
//Poner los colores inciales
if (g_bol_Obligatorio)
{
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
//Desbloqueo
obj_Exferia_F3.Enabled = true;
}
}
}
//#################################################################################################
//Copiar la informacion si estuviera a vacio o incorrecto
if (g_Exferia_F3_Objeto_CopiarInformacion != null)
{
if (g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_Id == -1 &&
g_lng_id > -1 &&
g_Exferia_F3_Objeto_CopiarInformacion.Enabled)
{
g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_Id = g_lng_id;
g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_Codigo = ex_txt_Codigo.Text;
g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_Descripcion = ex_txt_Descripcion.Text;
g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_FechaBorrado = Exferia_F3_FechaBorrado;
g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_IdEjercicio_Baja = Exferia_F3_IdEjercicio_Baja;
g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_DatosAuxiliares_1 = Exferia_F3_DatosAuxiliares_1;
g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_DatosAuxiliares_2 = Exferia_F3_DatosAuxiliares_2;
g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_DatosAuxiliares_3 = Exferia_F3_DatosAuxiliares_3;
if (g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_RELACIONAL_TipoRelacion == Exferia_F3_TipoRelacion.Padre)
{
if (g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_RELACIONADOS_Objetos_Hijos != null)
{
foreach (Exferia_F3 obj_Exferia_F3_Copiar in g_Exferia_F3_Objeto_CopiarInformacion.Exferia_F3_RELACIONADOS_Objetos_Hijos)
{
obj_Exferia_F3_Copiar.Exferia_F3_Id = -1;
obj_Exferia_F3_Copiar.Exferia_F3_Codigo = "";
obj_Exferia_F3_Copiar.Exferia_F3_Descripcion = "";
obj_Exferia_F3_Copiar.Exferia_F3_FechaBorrado = null;
obj_Exferia_F3_Copiar.Exferia_F3_IdEjercicio_Baja = null;
obj_Exferia_F3_Copiar.Exferia_F3_DatosAuxiliares_1 = null;
obj_Exferia_F3_Copiar.Exferia_F3_DatosAuxiliares_2 = null;
obj_Exferia_F3_Copiar.Exferia_F3_DatosAuxiliares_3 = null;
//Poner los colores inciales
if (obj_Exferia_F3_Copiar.Exferia_F3_PRINCIPAL_Obligatorio)
{
obj_Exferia_F3_Copiar.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
obj_Exferia_F3_Copiar.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
obj_Exferia_F3_Copiar.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
obj_Exferia_F3_Copiar.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
//Desbloqueo
obj_Exferia_F3_Copiar.Enabled = true;
}
}
}
}
}
//##################################################################################################
}
else
{
//Descripcion
if (str_CampoBusqueda.Equals(g_obj_ABS_F3.NOMBRE_CAMPO_DESCRIPCION()))
{
ex_txt_Codigo.Text = "";
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_ERROR;
//Si la descripcion esta vacia, se pinta del color que tiene que ir
if (ex_txt_Descripcion.Text.Trim() == "")
{
if (g_bol_Obligatorio)
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
}
}
//Codigo
else
{
ex_txt_Descripcion.Text = "";
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_ERROR;
//Si el codigo esta vacio, se pinta del color que tiene que ir
if (ex_txt_Codigo.Text.Trim() == "")
{
if (g_bol_Obligatorio)
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
}
}
}
}
else
{
g_lng_id = -1;
//Descripcion
if (str_CampoBusqueda.Equals(g_obj_ABS_F3.NOMBRE_CAMPO_DESCRIPCION()))
{
ex_txt_Codigo.Text = "";
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_ERROR;
//Si la descripcion esta vacia, se pinta del color que tiene que ir
if (ex_txt_Descripcion.Text.Trim() == "")
{
if (g_bol_Obligatorio)
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
}
}
//Codigo
else
{
ex_txt_Descripcion.Text = "";
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_ERROR;
//Si el codigo esta vacio, se pinta del color que tiene que ir
if (ex_txt_Codigo.Text.Trim() == "")
{
if (g_bol_Obligatorio)
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
}
}
if (g_enum_TipoRelacion == Exferia_F3_TipoRelacion.Padre)
{
if (g_lst_ExferiaF3_Relacionados_Hijos != null)
{
foreach (Exferia_F3 obj_Exferia_F3 in g_lst_ExferiaF3_Relacionados_Hijos)
{
obj_Exferia_F3.Exferia_F3_Id = -1;
obj_Exferia_F3.Exferia_F3_Codigo = "";
obj_Exferia_F3.Exferia_F3_Descripcion = "";
obj_Exferia_F3.Exferia_F3_FechaBorrado = null;
obj_Exferia_F3.Exferia_F3_IdEjercicio_Baja = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_1 = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_2 = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_3 = null;
//Poner los colores inciales
if (g_bol_Obligatorio)
{
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
//Bloqueo
obj_Exferia_F3.Enabled = false;
}
}
}
}
}
else
{
g_lng_id = -1;
//Descripcion
if (str_CampoBusqueda.Equals(g_obj_ABS_F3.NOMBRE_CAMPO_DESCRIPCION()))
{
ex_txt_Codigo.Text = "";
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_ERROR;
//Si la descripcion esta vacia, se pinta del color que tiene que ir
if (ex_txt_Descripcion.Text.Trim() == "")
{
if (g_bol_Obligatorio)
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
}
}
//Codigo
else
{
ex_txt_Descripcion.Text = "";
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_ERROR;
//Si el codigo esta vacio, se pinta del color que tiene que ir
if (ex_txt_Codigo.Text.Trim() == "")
{
if (g_bol_Obligatorio)
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
ex_txt_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
ex_txt_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
}
}
if (g_enum_TipoRelacion == Exferia_F3_TipoRelacion.Padre)
{
if (g_lst_ExferiaF3_Relacionados_Hijos != null)
{
foreach (Exferia_F3 obj_Exferia_F3 in g_lst_ExferiaF3_Relacionados_Hijos)
{
obj_Exferia_F3.Exferia_F3_Id = -1;
obj_Exferia_F3.Exferia_F3_Codigo = "";
obj_Exferia_F3.Exferia_F3_Descripcion = "";
obj_Exferia_F3.Exferia_F3_FechaBorrado = null;
obj_Exferia_F3.Exferia_F3_IdEjercicio_Baja = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_1 = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_2 = null;
obj_Exferia_F3.Exferia_F3_DatosAuxiliares_3 = null;
//Poner los colores inciales
if (g_bol_Obligatorio)
{
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_OBLIGATORIO;
}
else
{
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Descripcion.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
obj_Exferia_F3.Exferia_F3_PRINCIPAL_TextBox_Codigo.Exferia_TextBox_Fondo = Colores.G_COLOR_FONDO_BASE;
}
//Bloqueo
obj_Exferia_F3.Enabled = false;
}
}
}
}
//Salta el Evento de TerminoBusqueda
if (g_lng_id!=lng_id_Antiguo)
{
Exferia_F3_Evento_TerminoBusqueda?.Invoke(this, new EventArgs());
}
}
}
}
catch (Exception)
{ }
finally
{
if (g_frm_PE_Esperando != null)
{
g_frm_PE_Esperando.Close();
g_frm_PE_Esperando = null;
}
}
}
#endregion
private void ex_btn_Ver_Click(object sender, EventArgs e)
{
Registro_Ver();
}
private void Registro_Ver()
{
if (Datos_Generales.Permisos_Comprobar(g_str_NombreOpcion_BuscarDatos, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Ver, true))
{
//El Codigo y la Descripcion no puede estar Vacio
if (ex_txt_Codigo.Text.Trim().Length == 0 && ex_txt_Descripcion.Text.Trim().Length == 0)
{
Mensajes.MostrarMensaje(Mensajes.G_EXFERIA_F3_NOPUEDEESTARVACIO_VER());
return;
}
//Si hay Codigo y Descripcion validar que es Correcto
if ((ex_txt_Codigo.Text.Trim().Length != 0 || ex_txt_Descripcion.Text.Trim().Length != 0) && g_lng_id == -1)
{
Mensajes.MostrarMensaje(Mensajes.G_EXFERIA_F3_INCORRECTO_VER());
return;
}
try
{
//Cargamos el ensamblado
Assembly m_assembly = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + g_mdl_INTERNO_OpcionesDetalle_Modelo.nombreLibreria + ".dll");
//Obtenemos el tipo de la clase
Type m_type = m_assembly.GetType(g_mdl_INTERNO_OpcionesDetalle_Modelo.nombreLibreria + "." + Variables.G_STR_LIBRERIA_OPCIONES);
//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_OPCIONES_PROCEDIMIENTO_MOSTRAR_EN_MANTENIMIENTO, BindingFlags.Instance | BindingFlags.NonPublic);
//Obtener valores
object[] arr_Parametros = { g_str_NombreOpcion_BuscarDatos,
null,
this,
g_P_Base_Contenedor.P_Base_ValoresGenerales,
g_P_Base_Contenedor.P_Base_FechaTrabajo,
g_mdl_INTERNO_OpcionesDetalle_Modelo,
g_lng_id,
"",
"",
(Exferia_F3_Objeto_ParaEnviarAMantenimiento != null ? Exferia_F3_Objeto_ParaEnviarAMantenimiento : g_lng_ExferiaF3_Relacionado_Padre_ID),
g_lst_Argumentos};
//Pasamos los parametros al metodo y lo ejecutamos
obj_MethodInfo.Invoke(obj_Clase, arr_Parametros);
}
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(Exferia_F3) + "/" + nameof(Registro_Ver));
Mensajes.MostrarMensaje(Mensajes.G_EXFERIA_F3_INCORRECTO_VER());
}
}
}
private void ex_btn_Add_Click(object sender, EventArgs e)
{
Registro_Add();
}
private void Registro_Add()
{
if (Datos_Generales.Permisos_Comprobar(g_str_NombreOpcion_BuscarDatos, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Anadir, true))
{
try
{
//Cargamos el ensamblado
Assembly m_assembly = Assembly.LoadFrom(Variables.G_STR_LIBRERIA_RUTAINICIAL + @"\" + g_mdl_INTERNO_OpcionesDetalle_Modelo.nombreLibreria + ".dll");
//Obtenemos el tipo de la clase
Type m_type = m_assembly.GetType(g_mdl_INTERNO_OpcionesDetalle_Modelo.nombreLibreria + "." + Variables.G_STR_LIBRERIA_OPCIONES);
//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_OPCIONES_PROCEDIMIENTO_MOSTRAR_EN_MANTENIMIENTO, BindingFlags.Instance | BindingFlags.NonPublic);
string str_Descripcion = "";
if (g_lng_id <= 0)
{
if (g_str_RazonSocialCuentas.Trim().Length>0)
{
str_Descripcion=g_str_RazonSocialCuentas;
}
else
{
str_Descripcion = ex_txt_Descripcion.Text;
}
}
//Obtener valores
object[] arr_Parametros = {
g_str_NombreOpcion_BuscarDatos,
null,
this,
g_P_Base_Contenedor.P_Base_ValoresGenerales,
g_P_Base_Contenedor.P_Base_FechaTrabajo,
g_mdl_INTERNO_OpcionesDetalle_Modelo,
-1,
(g_lng_id>-1 ? "": ex_txt_Codigo.Text),
str_Descripcion,
(Exferia_F3_Objeto_ParaEnviarAMantenimiento != null ? Exferia_F3_Objeto_ParaEnviarAMantenimiento : g_lng_ExferiaF3_Relacionado_Padre_ID),
null
};
//Pasamos los parametros al metodo y lo ejecutamos
obj_MethodInfo.Invoke(obj_Clase, arr_Parametros);
}
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(Exferia_F3) + "/" + nameof(Registro_Add));
Mensajes.MostrarMensaje(Mensajes.G_EXFERIA_F3_INCORRECTO_ADD());
}
}
}
}
}