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_Controles;
using Exferia_Aplicacion.General;
using Exferia_Formularios;
using Exferia_Maestros.General;
using Exferia_EntityFramework;
using Exferia_General;
using Exferia_Maestros._0_Modelos;
using Exferia_Aplicacion.Visualizacion;
using Exferia_Maestros._1_Datos;

namespace Exferia_Maestros._3_Vistas.ControlesPersonalizados_DentroPaneles
{
    public partial class CTU_P_Articulo_AUX_1_Ubicaciones : UserControl
    {
        #region Propiedades Privades
        private P_Articulo_AUX_1 g_frm_P_Articulo_AUX_1 = null;
        private int g_int_Numero_Objeto = -1;
        private MAE_Articulos_Ubicaciones g_mdl_MAE_Articulos_Ubicaciones= null;
        private string g_str_TIPOFUNCION_CODIGO = "";
        #endregion

        #region Eventos publicos
        public event EventHandler<INTERNO_EventArgs> Boton_P_Articulo_AUX_1_UbicacionesDelete_Click;
        #endregion

        #region Constructor

        public CTU_P_Articulo_AUX_1_Ubicaciones(P_Articulo_AUX_1 _frm_P_Articulo_AUX_1,int _int_Numero_Objeto,MAE_Articulos_Ubicaciones _mdl_MAE_Articulos_Ubicaciones)
        {
            InitializeComponent();

            Repintar.Empezar(this);

            //Variables recibidas
            g_frm_P_Articulo_AUX_1 = _frm_P_Articulo_AUX_1;
            g_int_Numero_Objeto = _int_Numero_Objeto;
            g_mdl_MAE_Articulos_Ubicaciones = _mdl_MAE_Articulos_Ubicaciones;

            //Rellenar para los F3......................................
            //DELEGACION
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_PantallaContenedora = _frm_P_Articulo_AUX_1;
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_PRINCIPAL_Opcion_BuscarDatos = Variables.G_STR_OPCION_GEN_DELEGACION;

            //ALMACEN
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_PantallaContenedora = _frm_P_Articulo_AUX_1;
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_PRINCIPAL_Opcion_BuscarDatos = Variables.G_STR_OPCION_GEN_ALMACEN;
           
            //UBICACION
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_PantallaContenedora = _frm_P_Articulo_AUX_1;
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_PRINCIPAL_Opcion_BuscarDatos = Variables.G_STR_OPCION_MAE_UBICACION;

            //Cargar los valores
            Cargar_Datos();
        }

        #endregion

        #region Cargar Datos
        private void Cargar_Datos()
        {
            try
            {
                if (g_mdl_MAE_Articulos_Ubicaciones != null)
                {
                    //Delegacion
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Id = g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.GEN_Almacenes.GEN_Delegaciones.id;
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Codigo = g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.GEN_Almacenes.GEN_Delegaciones.codigo;
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Descripcion = g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.GEN_Almacenes.GEN_Delegaciones.descripcion;
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_FechaBorrado = g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.GEN_Almacenes.GEN_Delegaciones.fechaBorrado;

                    //Almacen
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Id = g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.GEN_Almacenes.id;
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Codigo = g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.GEN_Almacenes.codigo;
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Descripcion = g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.GEN_Almacenes.descripcion;
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_FechaBorrado = g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.GEN_Almacenes.fechaBorrado;
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_RELACIONADOS_Padre_OPCION = Variables.G_STR_OPCION_GEN_DELEGACION;
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_RELACIONADOS_Padre_ID = g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.GEN_Almacenes.GEN_Delegaciones.id;

                    //Ubicacion
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Id = g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.id;
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Codigo = g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.codigo;
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Descripcion = g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.descripcion;
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_FechaBorrado = g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.fechaBorrado;
                    #region Filtros para Ubicaciones
                    List<INTERNO_Filtro_OpcionPadre_Modelo> lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION = new List<INTERNO_Filtro_OpcionPadre_Modelo>();

                    //Delegacion
                    lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION.Add(new INTERNO_Filtro_OpcionPadre_Modelo((Variables.G_STR_OPCION_GEN_DELEGACION), ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Id));

                    //Almacen
                    lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION.Add(new INTERNO_Filtro_OpcionPadre_Modelo((Variables.G_STR_OPCION_GEN_ALMACEN), ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Id));

                    //Agregar los filtros
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_RELACIONADOS = lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION;
                    #endregion

                    //TipoFuncion
                    g_str_TIPOFUNCION_CODIGO = g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.tipoFuncion;
                    if (g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.tipoFuncion == Variables.G_MDL_TIPOFUNCION_MUELLEENTRADA.Codigo)
                    {
                        ex_lbl_CTU_P_Articulo_AUX_1_Ubicaciones_TipoFuncion.Text = Variables.G_MDL_TIPOFUNCION_MUELLEENTRADA.Descripcion;
                    }
                    else if (g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.tipoFuncion == Variables.G_MDL_TIPOFUNCION_RESERVA.Codigo)
                    {
                        ex_lbl_CTU_P_Articulo_AUX_1_Ubicaciones_TipoFuncion.Text = Variables.G_MDL_TIPOFUNCION_RESERVA.Descripcion;
                    }
                    else if (g_mdl_MAE_Articulos_Ubicaciones.MAE_Ubicaciones.tipoFuncion == Variables.G_MDL_TIPOFUNCION_PLAYAPICKING.Codigo)
                    {
                        ex_lbl_CTU_P_Articulo_AUX_1_Ubicaciones_TipoFuncion.Text = Variables.G_MDL_TIPOFUNCION_PLAYAPICKING.Descripcion;
                    }
                    else
                    {
                        ex_lbl_CTU_P_Articulo_AUX_1_Ubicaciones_TipoFuncion.Text = Variables.G_MDL_TIPOFUNCION_PICKING.Descripcion;
                    }
                }
            }
            catch (Exception ex)
            {
                Control_Errores.Errores_Log(ex.Message, ex, nameof(CTU_P_Articulo_AUX_1_Ubicaciones) + "/" + nameof(Cargar_Datos));
            }
        }
        #endregion

        #region Validacion
        public INTERNO_ValorDevuelto_Modelo ValidarDatos()
        {
            INTERNO_ValorDevuelto_Modelo mdl_INTERNO_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
            mdl_INTERNO_ValorDevuelto_Modelo.TodoCorrecto = true;

            try
            {
                // Ubicacion no puede estar Vacio (Obligatorio)
                if (mdl_INTERNO_ValorDevuelto_Modelo.TodoCorrecto && ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Codigo.Trim().Length == 0 &&
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Descripcion.Trim().Length == 0)
                {
                    mdl_INTERNO_ValorDevuelto_Modelo.TodoCorrecto = false;
                    mdl_INTERNO_ValorDevuelto_Modelo.Mensaje = Mensajes.G_STR_GENERAL_VALIDACIONES_VACIO(ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Titulo);
                    mdl_INTERNO_ValorDevuelto_Modelo.Objeto = ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_PRINCIPAL_TextBox_Codigo;
                }
                // Si hay Ubicacion validar que es Correcta
                if (mdl_INTERNO_ValorDevuelto_Modelo.TodoCorrecto && (ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Codigo.Trim().Length != 0 ||
                    ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Descripcion.Trim().Length != 0) && ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Id == -1)
                {
                    mdl_INTERNO_ValorDevuelto_Modelo.TodoCorrecto = false;
                    mdl_INTERNO_ValorDevuelto_Modelo.Mensaje = Mensajes.G_STR_GENERAL_VALIDACIONES_F3_INCORRECTO(ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Titulo);
                    mdl_INTERNO_ValorDevuelto_Modelo.Objeto = ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_PRINCIPAL_TextBox_Codigo;
                }

                //Devolver valores
                if (mdl_INTERNO_ValorDevuelto_Modelo.TodoCorrecto)
                {
                    mdl_INTERNO_ValorDevuelto_Modelo.Id = ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Id;
                    mdl_INTERNO_ValorDevuelto_Modelo.Objeto_Auxiliar_1 = ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Id;
                    mdl_INTERNO_ValorDevuelto_Modelo.Objeto_Auxiliar_2 =g_str_TIPOFUNCION_CODIGO;
                    mdl_INTERNO_ValorDevuelto_Modelo.Objeto_Auxiliar_3 = ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Descripcion;
                }

            }
            catch (Control_Errores)
            {
                mdl_INTERNO_ValorDevuelto_Modelo.TodoCorrecto = false;
                mdl_INTERNO_ValorDevuelto_Modelo.Mensaje = Mensajes.G_STR_MENSAJES_GENERAL_ERROR_VALIDARDATOSPANTALLA();
            }
            catch (Exception ex)
            {
                Control_Errores.Errores_Log("", ex, nameof(CTU_P_Articulo_AUX_1_Ubicaciones) + "/" + nameof(ValidarDatos));

                mdl_INTERNO_ValorDevuelto_Modelo.TodoCorrecto = false;
                mdl_INTERNO_ValorDevuelto_Modelo.Mensaje = Mensajes.G_STR_MENSAJES_GENERAL_ERROR_VALIDARDATOSPANTALLA();
            }

            return mdl_INTERNO_ValorDevuelto_Modelo;
        }
        #endregion

        #region Grabar
        public MAE_Articulos_Ubicaciones Obtener_Para_Grabar(long _lng_idArticulo)
        {
            MAE_Articulos_Ubicaciones mdl_MAE_Articulos_Ubicaciones = new MAE_Articulos_Ubicaciones();

            try
            {
                //id
                mdl_MAE_Articulos_Ubicaciones.id = g_mdl_MAE_Articulos_Ubicaciones != null ? g_mdl_MAE_Articulos_Ubicaciones.id : -1;

                //idArticulo
                mdl_MAE_Articulos_Ubicaciones.idArticulo = _lng_idArticulo;

                //idUbicacion
                mdl_MAE_Articulos_Ubicaciones.idUbicacion = ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Id;

            }
            catch (Control_Errores)
            {
                throw;
            }
            catch (Exception ex)
            {
                Control_Errores.Errores_Log("", ex, nameof(CTU_P_Articulo_AUX_1_Ubicaciones) + "/" + nameof(Obtener_Para_Grabar));
            }

            return mdl_MAE_Articulos_Ubicaciones;
        }
        #endregion

        #region Eventos
        private void ex_btn_CTU_P_Articulo_AUX_1_Ubicaciones_Borrar_Click(object sender, EventArgs e)
        {
            // para que salte el evento en el otro lado
            Boton_P_Articulo_AUX_1_UbicacionesDelete_Click?.Invoke(sender, new INTERNO_EventArgs(g_int_Numero_Objeto));
        }
        #endregion

        #region Delegacion
        private void ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion_Exferia_F3_Evento_TerminoBusqueda(object sender, EventArgs e)
        {
            //Filtros para Almacenes
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_RELACIONADOS_Padre_OPCION = "";
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_RELACIONADOS_Padre_ID = -1;
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Id = -1;
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Codigo = "";
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Descripcion = "";
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_FechaBorrado = null;

            //Filtros para Ubicaciones
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_RELACIONADOS = null;
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Id = -1;
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Codigo = "";
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Descripcion = "";
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_FechaBorrado = null;

            //TipoFuncion
            ex_lbl_CTU_P_Articulo_AUX_1_Ubicaciones_TipoFuncion.Text = "";
            g_str_TIPOFUNCION_CODIGO = "";

            if (ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Id > -1)
            {
                //Filtros para Almacenes
                ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_RELACIONADOS_Padre_OPCION = Variables.G_STR_OPCION_GEN_DELEGACION;
                ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_RELACIONADOS_Padre_ID = ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Id;

                #region Filtros para Ubicaciones
                List<INTERNO_Filtro_OpcionPadre_Modelo> lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION = new List<INTERNO_Filtro_OpcionPadre_Modelo>();

                //Delegacion
                lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION.Add(new INTERNO_Filtro_OpcionPadre_Modelo((Variables.G_STR_OPCION_GEN_DELEGACION), ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Id));

                //Agregar los filtros
                ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_RELACIONADOS = lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION;
                #endregion
            }
        }
        #endregion

        #region Almacen
        private void ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen_Exferia_F3_Evento_TerminoBusqueda(object sender, EventArgs e)
        {
            //Filtros para Ubicaciones
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_RELACIONADOS = null;
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Id = -1;
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Codigo = "";
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Descripcion = "";
            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_FechaBorrado = null;

            //TipoFuncion
            ex_lbl_CTU_P_Articulo_AUX_1_Ubicaciones_TipoFuncion.Text = "";
            g_str_TIPOFUNCION_CODIGO = "";

            if (ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Id > -1)
            {
                //Cargar la Delegacion
                //Si no tiene Delegacion, busco los datos segun la almacen seleccionada
                if (ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Id <= 0)
                {
                    INTERNO_Datos_F3_PadreBusqueda_Modelo mdl_INTERNO_Datos_F3_PadreBusqueda_Modelo = Datos_Generales.Buscar_Datos_F3_Padre(nameof(GEN_Almacenes),
                                                                                                                                            ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Id,
                                                                                                                                            nameof(GEN_Delegaciones),
                                                                                                                                            nameof(GEN_Almacenes.idDelegacion),
                                                                                                                                            nameof(GEN_Delegaciones.codigo),
                                                                                                                                            nameof(GEN_Delegaciones.descripcion),
                                                                                                                                            nameof(GEN_Delegaciones.fechaBorrado));

                    if (mdl_INTERNO_Datos_F3_PadreBusqueda_Modelo != null)
                    {
                        //Almacen
                        ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_RELACIONADOS_Padre_OPCION = Variables.G_STR_OPCION_GEN_DELEGACION;
                        ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_RELACIONADOS_Padre_ID = mdl_INTERNO_Datos_F3_PadreBusqueda_Modelo.id;
                       
                        //Delegacion
                        ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Id = mdl_INTERNO_Datos_F3_PadreBusqueda_Modelo.id;
                        ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Codigo = mdl_INTERNO_Datos_F3_PadreBusqueda_Modelo.codigo;
                        ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Descripcion = mdl_INTERNO_Datos_F3_PadreBusqueda_Modelo.descripcion;
                        ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_FechaBorrado = mdl_INTERNO_Datos_F3_PadreBusqueda_Modelo.fechaBorrado;

                    }
                }

                #region Filtros para Ubicaciones
                List<INTERNO_Filtro_OpcionPadre_Modelo> lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION = new List<INTERNO_Filtro_OpcionPadre_Modelo>();

                //Delegacion
                lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION.Add(new INTERNO_Filtro_OpcionPadre_Modelo((Variables.G_STR_OPCION_GEN_DELEGACION), ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Id));

                //Almacen
                lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION.Add(new INTERNO_Filtro_OpcionPadre_Modelo((Variables.G_STR_OPCION_GEN_ALMACEN), ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Id));

                //Agregar los filtros
                ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_RELACIONADOS = lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION;
                #endregion

            }
            else if (ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Id > -1)
            {
                #region Filtros para Ubicaciones
                List<INTERNO_Filtro_OpcionPadre_Modelo> lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION = new List<INTERNO_Filtro_OpcionPadre_Modelo>();

                //Delegacion
                lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION.Add(new INTERNO_Filtro_OpcionPadre_Modelo((Variables.G_STR_OPCION_GEN_DELEGACION), ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Id));

                //Agregar los filtros
                ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_RELACIONADOS = lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION;
                #endregion
            }
        }
        #endregion

        #region Ubicacion
        private void ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion_Exferia_F3_Evento_TerminoBusqueda(object sender, EventArgs e)
        {
            //TipoFuncion
            ex_lbl_CTU_P_Articulo_AUX_1_Ubicaciones_TipoFuncion.Text = "";
            g_str_TIPOFUNCION_CODIGO = "";

            if (ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Id > -1)
            {
                MAE_Ubicaciones_Datos obj_MAE_Ubicaciones_Datos = new MAE_Ubicaciones_Datos();
                MAE_Ubicaciones mdl_MAE_Ubicaciones = obj_MAE_Ubicaciones_Datos.Obtener_Modelo_Por_Id(ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_Id, true);

                if (mdl_MAE_Ubicaciones != null)
                {
                    g_str_TIPOFUNCION_CODIGO = mdl_MAE_Ubicaciones.tipoFuncion;
                    if (mdl_MAE_Ubicaciones.tipoFuncion == Variables.G_MDL_TIPOFUNCION_MUELLEENTRADA.Codigo)
                    {
                        ex_lbl_CTU_P_Articulo_AUX_1_Ubicaciones_TipoFuncion.Text = Variables.G_MDL_TIPOFUNCION_MUELLEENTRADA.Descripcion;
                    }
                    else if (mdl_MAE_Ubicaciones.tipoFuncion == Variables.G_MDL_TIPOFUNCION_RESERVA.Codigo)
                    {
                        ex_lbl_CTU_P_Articulo_AUX_1_Ubicaciones_TipoFuncion.Text = Variables.G_MDL_TIPOFUNCION_RESERVA.Descripcion;
                    }
                    else if (mdl_MAE_Ubicaciones.tipoFuncion == Variables.G_MDL_TIPOFUNCION_PLAYAPICKING.Codigo)
                    {
                        ex_lbl_CTU_P_Articulo_AUX_1_Ubicaciones_TipoFuncion.Text = Variables.G_MDL_TIPOFUNCION_PLAYAPICKING.Descripcion;
                    }
                    else
                    {
                        ex_lbl_CTU_P_Articulo_AUX_1_Ubicaciones_TipoFuncion.Text = Variables.G_MDL_TIPOFUNCION_PICKING.Descripcion;
                    }

                    //Si el Almacen no esta relleno lo rellneo
                    if (ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Id <= 0)
                    {
                        //Almacen
                        ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_RELACIONADOS_Padre_OPCION = Variables.G_STR_OPCION_GEN_DELEGACION;
                        ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_RELACIONADOS_Padre_ID = mdl_MAE_Ubicaciones.GEN_Almacenes.GEN_Delegaciones.id;
                        ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Id = mdl_MAE_Ubicaciones.GEN_Almacenes.id;
                        ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Codigo = mdl_MAE_Ubicaciones.GEN_Almacenes.codigo;
                        ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Descripcion = mdl_MAE_Ubicaciones.GEN_Almacenes.descripcion;
                        ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_FechaBorrado = mdl_MAE_Ubicaciones.GEN_Almacenes.fechaBorrado;

                        //Delegacion
                        ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Id = mdl_MAE_Ubicaciones.GEN_Almacenes.GEN_Delegaciones.id;
                        ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Codigo = mdl_MAE_Ubicaciones.GEN_Almacenes.GEN_Delegaciones.codigo;
                        ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Descripcion = mdl_MAE_Ubicaciones.GEN_Almacenes.GEN_Delegaciones.descripcion;
                        ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_FechaBorrado = mdl_MAE_Ubicaciones.GEN_Almacenes.GEN_Delegaciones.fechaBorrado;

                    }
                }
            }

            #region Filtros para Ubicaciones

            if (ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Id>-1 ||
                ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Id > -1)
            {
                List<INTERNO_Filtro_OpcionPadre_Modelo> lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION = new List<INTERNO_Filtro_OpcionPadre_Modelo>();

                //Delegacion
                if (ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Id > -1)
                {
                    lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION.Add(new INTERNO_Filtro_OpcionPadre_Modelo((Variables.G_STR_OPCION_GEN_DELEGACION), ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Delegacion.Exferia_F3_Id));
                }

                //Almacen
                if (ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Id > -1)
                {
                    lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION.Add(new INTERNO_Filtro_OpcionPadre_Modelo((Variables.G_STR_OPCION_GEN_ALMACEN), ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Almacen.Exferia_F3_Id));
                }

                //Agregar los filtros
                ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_RELACIONADOS = lst_INTERNO_Filtro_OpcionPadre_Modelo_UBICACION;
            }
            else
            {
                ex_usc_F3_CTU_P_Articulo_AUX_1_Ubicaciones_Ubicacion.Exferia_F3_RELACIONADOS = null;
            }
            #endregion
        }
        #endregion
    }
}
