using Exferia_Aplicacion.General;
using Exferia_Aplicacion.Herencia.Capas;
using Exferia_EntityFramework;
using Exferia_Maestros._0_Modelos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.CompilerServices;
using System.Transactions;
using System.Data.SqlClient;
using Exferia_General;
using static Exferia_Aplicacion.General.Enumerados;

namespace Exferia_Maestros._1_Datos
{
    public class MAE_Clientes_Bolsa_Datos : ABS_Datos
    {
        #region Listado 
        private List<INTERNO_MAE_Clientes_Bolsa_Listado_Modelo> g_lst_INTERNO_MAE_Clientes_Bolsa_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_MAE = 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(MAE_Clientes).Name), _lst_CamposConRelacionABuscar,-1,null, _lst_INTERNO_Filtro_OpcionPadre_Modelo, _lst_INTERNO_Filtro_Modelo);
                // ..............................................................

                if ((g_lst_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo != null) && (g_lst_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Count() > 0))
                {
                    lst_MAE = g_lst_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Cast<dynamic>().ToList();
                }
            }
            catch (Control_Errores)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new Control_Errores("", ex, nameof(MAE_Clientes_Bolsa_Datos) + "/" + nameof(Obtener_Listado), true);
            }
            finally
            {
                obj_Exferia_Entities.Database.Connection.Close();
                obj_Exferia_Entities.Dispose();
            }
            return lst_MAE;
        }
        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_MAE = 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(MAE_Clientes).Name), _lst_CamposConRelacionABuscar, _lng_id, _lst_ids, _lst_INTERNO_Filtro_OpcionPadre_Modelo, _lst_INTERNO_Filtro_Modelo);
                // ..............................................................

                if ((g_lst_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo != null) && (g_lst_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Count() > 0))
                {
                    dnm_MAE = g_lst_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Cast<dynamic>().ToList();
                }
            }
            catch (Control_Errores)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new Control_Errores("", ex, nameof(MAE_Clientes_Bolsa_Datos) + "/" + nameof(Obtener_RegistroListado), true);
            }
            finally
            {
                obj_Exferia_Entities.Database.Connection.Close();
                obj_Exferia_Entities.Dispose();
            }
            return dnm_MAE;
        }
        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_ids, 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_MAE_Clientes_Bolsa_Listado_Modelo.id) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.id) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.codigo) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.codigo) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.razonSocial) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.razonSocial) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.nombreComercial) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.nombreComercial) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.cif) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.cif) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.telefono1) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.telefono1) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.telefono2) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.telefono2) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.fax) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.fax) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idFormaPago) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idFormaPago) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.retencion) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.retencion) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.recargo) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.recargo) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.fechaAlta) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.fechaAlta) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.fechaBaja) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.fechaBaja) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.riesgo) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.riesgo) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.descuentoProntoPago) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.descuentoProntoPago) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.descuentoFinalAlbaran) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.descuentoFinalAlbaran) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.numeroProveedor) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.numeroProveedor) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.albaranValorado) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.albaranValorado) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.noDeclararModelosOficiales) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.noDeclararModelosOficiales) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.noFacturar) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.noFacturar) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.permiteDepositos) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.permiteDepositos) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.aplicarRiesgo) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.aplicarRiesgo) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.imprimirDeudaAcumulada) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.imprimirDeudaAcumulada) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.email) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.email) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.web) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.web) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.imprimirDatosCadena) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.imprimirDatosCadena) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.facturarDatosCadena) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.facturarDatosCadena) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.descuentoGeneral) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.descuentoGeneral) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.EAN_Cliente) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.EAN_Cliente) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.EAN_Documento) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.EAN_Documento) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.EAN_Entrega) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.EAN_Entrega) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.criterioCaja) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.criterioCaja) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.tipoDocumento) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.tipoDocumento) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.tipoPrecio) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.tipoPrecio) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.tipoPuntoVerde) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.tipoPuntoVerde) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.formatoFactura) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.formatoFactura) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.modeloFactura) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.modeloFactura) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.diasRiesgo) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.diasRiesgo) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.documentosRiesgo) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.documentosRiesgo) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.descuentoFinalFactura) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.descuentoFinalFactura) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.imprimir_Trazabilidad) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.imprimir_Trazabilidad) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.infoMicro) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.infoMicro) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.posicionLatitud) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.posicionLatitud) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.posicionLongitud) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.posicionLongitud) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.EAN_Vendedor) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.EAN_Vendedor) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.numeroROPO) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.numeroROPO) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.numeroAplicador) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.numeroAplicador) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.fechaBorrado) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.fechaBorrado) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.zoom) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.zoom) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.tipoMapa) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.tipoMapa) + "," +
                              //ids
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idImpuestoCabecera) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idImpuestoCabecera) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idEmpresa) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idEmpresa) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idVendedor) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idVendedor) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idMayor_CuentaContable) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idMayor_CuentaContable) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idMayor_CuentaContraPartida) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idMayor_CuentaContraPartida) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idMayor_CuentaRetencion) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idMayor_CuentaRetencion) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idMayor_CuentaRemesas) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idMayor_CuentaRemesas) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idMayorAuxiliar) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idMayorAuxiliar) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idMoneda) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idMoneda) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idMotivoAltaBaja_Alta) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idMotivoAltaBaja_Alta) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idMotivoAltaBaja_Baja) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idMotivoAltaBaja_Baja) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idVendedor_Cobrador) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idVendedor_Cobrador) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idDepartamento) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idDepartamento) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idTesoreria) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idTesoreria) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idDelegacion) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idDelegacion) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idAbonoTipo) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idAbonoTipo) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idPredefinidoCabecera_Ventas) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idPredefinidoCabecera_Ventas) + "," +
                              nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.idPredefinidoCabecera_Cobros) + " = " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idPredefinidoCabecera_Cobros) + "," +
                                //Empresa
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Empresa)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Empresa_Codigo) + " = " + nameof(GEN_Empresas) + "." + nameof(GEN_Empresas.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Empresa_Descripcion) + " =" + nameof(GEN_Empresas) + "." + nameof(GEN_Empresas.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Empresa_FechaBorrado) + " =" + nameof(GEN_Empresas) + "." + nameof(GEN_Empresas.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Empresa_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Empresa_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Empresa_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //FormaPago
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.FormaPago)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.FormaPago_Codigo) + " = " + nameof(MAE_FormasPago) + "." + nameof(MAE_FormasPago.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.FormaPago_Descripcion) + " =" + nameof(MAE_FormasPago) + "." + nameof(MAE_FormasPago.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.FormaPago_FechaBorrado) + " =" + nameof(MAE_FormasPago) + "." + nameof(MAE_FormasPago.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.FormaPago_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.FormaPago_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.FormaPago_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //Mayor_CuentaContable
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaContable)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaContable_Codigo) + " = AUX_1." + nameof(CTA_Mayor.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaContable_Descripcion) + " = AUX_1." + nameof(CTA_Mayor.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaContable_FechaBorrado) + " = AUX_1." + nameof(CTA_Mayor.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaContable_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaContable_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaContable_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //MayorCuentaRetencion
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MayorCuentaRetencion)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MayorCuentaRetencion_Codigo) + " = AUX_2." + nameof(CTA_Mayor.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MayorCuentaRetencion_Descripcion) + " = AUX_2." + nameof(CTA_Mayor.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MayorCuentaRetencion_FechaBorrado) + " = AUX_2." + nameof(CTA_Mayor.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MayorCuentaRetencion_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MayorCuentaRetencion_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MayorCuentaRetencion_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //ImpuestoCabecera
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.ImpuestoCabecera)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.ImpuestoCabecera_Codigo) + " = " + nameof(GEN_ImpuestosCabecera) + "." + nameof(GEN_ImpuestosCabecera.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.ImpuestoCabecera_Descripcion) + " =" + nameof(GEN_ImpuestosCabecera) + "." + nameof(GEN_ImpuestosCabecera.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.ImpuestoCabecera_FechaBorrado) + " =" + nameof(GEN_ImpuestosCabecera) + "." + nameof(GEN_ImpuestosCabecera.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.ImpuestoCabecera_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.ImpuestoCabecera_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.ImpuestoCabecera_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //Vendedor
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Vendedor)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Vendedor_Codigo) + " = AUX_3." + nameof(MAE_Vendedores.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Vendedor_Nombre) + " = AUX_3." + nameof(MAE_Vendedores.nombre) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Vendedor_FechaBorrado) + " = AUX_3." + nameof(MAE_Vendedores.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Vendedor_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Vendedor_Nombre) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Vendedor_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //Moneda
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Moneda)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Moneda_Codigo) + " = " + nameof(GEN_Monedas) + "." + nameof(GEN_Monedas.moneda) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Moneda_Descripcion) + " =" + nameof(GEN_Monedas) + "." + nameof(GEN_Monedas.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Moneda_FechaBorrado) + " =" + nameof(GEN_Monedas) + "." + nameof(GEN_Monedas.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Moneda_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Moneda_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Moneda_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //MotivoAlta
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MotivoAlta)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MotivoAlta_Codigo) + " = AUX_4." + nameof(MAE_MotivosAltaBaja.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MotivoAlta_Descripcion) + " = AUX_4." + nameof(MAE_MotivosAltaBaja.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MotivoAlta_FechaBorrado) + " = AUX_4." + nameof(MAE_MotivosAltaBaja.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MotivoAlta_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MotivoAlta_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MotivoAlta_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //MotivoBaja
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MotivoBaja)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MotivoBaja_Codigo) + " = AUX_5." + nameof(MAE_MotivosAltaBaja.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MotivoBaja_Descripcion) + " = AUX_5." + nameof(MAE_MotivosAltaBaja.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MotivoBaja_FechaBorrado) + " = AUX_5." + nameof(MAE_MotivosAltaBaja.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MotivoBaja_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MotivoBaja_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MotivoBaja_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                 //Mayor_CuentaRemesas
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaRemesa)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaRemesa_Codigo) + " = AUX_6." + nameof(CTA_Mayor.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaRemesa_Descripcion) + " = AUX_6." + nameof(CTA_Mayor.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaRemesa_FechaBorrado) + " = AUX_6." + nameof(CTA_Mayor.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaRemesa_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaRemesa_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaRemesa_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //Mayor_CuentaContraPartida
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaContraPartida)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaContraPartida_Codigo) + " = AUX_7." + nameof(CTA_Mayor.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaContraPartida_Descripcion) + " = AUX_7." + nameof(CTA_Mayor.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaContraPartida_FechaBorrado) + " = AUX_7." + nameof(CTA_Mayor.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaContraPartida_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaContraPartida_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaContraPartida_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //MayorAuxiliar
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MayorAuxiliar)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MayorAuxiliar_Codigo) + " = " + nameof(CTA_MayorAuxiliar) + "." + nameof(CTA_MayorAuxiliar.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MayorAuxiliar_Descripcion) + " =" + nameof(CTA_MayorAuxiliar) + "." + nameof(CTA_MayorAuxiliar.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MayorAuxiliar_FechaBorrado) + " =" + nameof(CTA_MayorAuxiliar) + "." + nameof(CTA_MayorAuxiliar.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MayorAuxiliar_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MayorAuxiliar_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MayorAuxiliar_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //Cobrador
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Cobrador)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Cobrador_Codigo) + " = AUX_8." + nameof(MAE_Vendedores.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Cobrador_Nombre) + " = AUX_8." + nameof(MAE_Vendedores.nombre) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Cobrador_FechaBorrado) + " = AUX_8." + nameof(MAE_Vendedores.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Cobrador_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Cobrador_Nombre) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Cobrador_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //Departamento
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Departamento)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Departamento_Codigo) + " = " + nameof(CTA_Departamentos) + "." + nameof(CTA_Departamentos.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Departamento_Descripcion) + " =" + nameof(CTA_Departamentos) + "." + nameof(CTA_Departamentos.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Departamento_FechaBorrado) + " =" + nameof(CTA_Departamentos) + "." + nameof(CTA_Departamentos.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Departamento_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Departamento_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Departamento_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //Tesoreria
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Tesoreria)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Tesoreria_Codigo) + " = " + nameof(MAE_Tesorerias) + "." + nameof(MAE_Tesorerias.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Tesoreria_Descripcion) + " =" + nameof(MAE_Tesorerias) + "." + nameof(MAE_Tesorerias.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Tesoreria_FechaBorrado) + " =" + nameof(MAE_Tesorerias) + "." + nameof(MAE_Tesorerias.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Tesoreria_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Tesoreria_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Tesoreria_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //Delegacion
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Delegacion)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Delegacion_Codigo) + " = " + nameof(GEN_Delegaciones) + "." + nameof(GEN_Delegaciones.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Delegacion_Descripcion) + " =" + nameof(GEN_Delegaciones) + "." + nameof(GEN_Delegaciones.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Delegacion_FechaBorrado) + " =" + nameof(GEN_Delegaciones) + "." + nameof(GEN_Delegaciones.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Delegacion_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Delegacion_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Delegacion_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //AbonosTipos
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.AbonosTipos)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.AbonosTipos_Codigo) + " = " + nameof(MAE_AbonosTipos) + "." + nameof(MAE_AbonosTipos.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.AbonosTipos_Descripcion) + " =" + nameof(MAE_AbonosTipos) + "." + nameof(MAE_AbonosTipos.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.AbonosTipos_FechaBorrado) + " =" + nameof(MAE_AbonosTipos) + "." + nameof(MAE_AbonosTipos.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.AbonosTipos_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.AbonosTipos_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.AbonosTipos_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //PredefinidosVenta
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.PredefinidosVenta)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.PredefinidosVenta_Codigo) + " = AUX_9." + nameof(CTA_PredefinidosCabeceras.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.PredefinidosVenta_Descripcion) + " = AUX_9." + nameof(CTA_PredefinidosCabeceras.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.PredefinidosVenta_FechaBorrado) + " = AUX_9." + nameof(CTA_PredefinidosCabeceras.fechaBorrado) + ","
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.PredefinidosVenta_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.PredefinidosVenta_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.PredefinidosVenta_FechaBorrado) + " = NULL, "
                                        )
                                ) +
                                //PredefinidosCompra
                                (
                                  (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.PredefinidosCompra)))
                                    ?
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.PredefinidosCompra_Codigo) + " = AUX_10." + nameof(CTA_PredefinidosCabeceras.codigo) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.PredefinidosCompra_Descripcion) + " = AUX_10." + nameof(CTA_PredefinidosCabeceras.descripcion) + "," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.PredefinidosCompra_FechaBorrado) + " = AUX_10." + nameof(CTA_PredefinidosCabeceras.fechaBorrado)
                                        )
                                    :
                                        (
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.PredefinidosCompra_Codigo) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.PredefinidosCompra_Descripcion) + " = ''," +
                                            nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.PredefinidosCompra_FechaBorrado) + " = NULL "
                                        )
                                ) +
                            " FROM " + nameof(MAE_Clientes) +
                                //Empresa
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Empresa)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(GEN_Empresas) + " ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idEmpresa) + " = " + nameof(GEN_Empresas) + "." + nameof(GEN_Empresas.id)
                                            )
                                        : ("")
                                ) +
                                //FormaPago
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.FormaPago)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(MAE_FormasPago) + " ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idFormaPago) + " = " + nameof(MAE_FormasPago) + "." + nameof(MAE_FormasPago.id)
                                            )
                                        : ("")
                                ) +
                                //Mayor_CuentaContable
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaContable)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(CTA_Mayor) + " AS AUX_1 ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idMayor_CuentaContable) + " = AUX_1." + nameof(CTA_Mayor.id)
                                            )
                                        : ("")
                                ) +
                                //MayorCuentaRetencion
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MayorCuentaRetencion)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(CTA_Mayor) + " AS AUX_2 ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idMayor_CuentaRetencion) + " = AUX_2." + nameof(CTA_Mayor.id)
                                            )
                                        : ("")
                                ) +
                                //ImpuestoCabecera
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.ImpuestoCabecera)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(GEN_ImpuestosCabecera) + " ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idImpuestoCabecera) + " = " + nameof(GEN_ImpuestosCabecera) + "." + nameof(GEN_ImpuestosCabecera.id)
                                            )
                                        : ("")
                                ) +
                                //Vendedor
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Vendedor)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(MAE_Vendedores) + " AS AUX_3  ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idVendedor) + " = AUX_3." + nameof(MAE_Vendedores.id)
                                            )
                                        : ("")
                                ) +
                                //Moneda
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Moneda)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(GEN_Monedas) + " ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idMoneda) + " = " + nameof(GEN_Monedas) + "." + nameof(GEN_Monedas.id)
                                            )
                                        : ("")
                                ) +
                                //MotivoAlta
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MotivoAlta)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(MAE_MotivosAltaBaja) + " AS AUX_4 ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idMotivoAltaBaja_Alta) + " = AUX_4." + nameof(MAE_MotivosAltaBaja.id)
                                            )
                                        : ("")
                                ) +
                                //MotivoBaja
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MotivoBaja)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(MAE_MotivosAltaBaja) + " AS AUX_5 ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idMotivoAltaBaja_Baja) + " = AUX_5." + nameof(MAE_MotivosAltaBaja.id)
                                            )
                                        : ("")
                                ) +
                                //Mayor_CuentaRemesas
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaRemesa)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(CTA_Mayor) + " AS AUX_6 ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idMayor_CuentaRemesas) + " = AUX_6." + nameof(CTA_Mayor.id)
                                            )
                                        : ("")
                                ) +
                                //Mayor_CuentaContraPartida
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Mayor_CuentaContraPartida)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(CTA_Mayor) + " AS AUX_7 ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idMayor_CuentaContraPartida) + " = AUX_7." + nameof(CTA_Mayor.id)
                                            )
                                        : ("")
                                ) +
                                //MayorAuxiliar
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.MayorAuxiliar)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(CTA_MayorAuxiliar) + " ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idMayorAuxiliar) + " = " + nameof(CTA_MayorAuxiliar) + "." + nameof(CTA_MayorAuxiliar.id)
                                            )
                                        : ("")
                                ) +
                                //Cobrador
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Cobrador)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(MAE_Vendedores) + " AS AUX_8 ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idVendedor_Cobrador) + " = AUX_8." + nameof(MAE_Vendedores.id)
                                            )
                                        : ("")
                                ) +
                                //Departamento
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Departamento)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(CTA_Departamentos) + " ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idDepartamento) + " = " + nameof(CTA_Departamentos) + "." + nameof(CTA_Departamentos.id)
                                            )
                                        : ("")
                                ) +
                                //Tesoreria
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Tesoreria)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(MAE_Tesorerias) + " ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idTesoreria) + " = " + nameof(MAE_Tesorerias) + "." + nameof(MAE_Tesorerias.id)
                                            )
                                        : ("")
                                ) +
                                //Delegacion
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Delegacion)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(GEN_Delegaciones) + " ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idDelegacion) + " = " + nameof(GEN_Delegaciones) + "." + nameof(GEN_Delegaciones.id)
                                            )
                                        : ("")
                                ) +
                                //AbonosTipos
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.AbonosTipos)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(MAE_AbonosTipos) + " ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idAbonoTipo) + " = " + nameof(MAE_AbonosTipos) + "." + nameof(MAE_AbonosTipos.id)
                                            )
                                        : ("")
                                ) +
                                //PredefinidosVenta
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.PredefinidosVenta)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(CTA_PredefinidosCabeceras) + " AS AUX_9 ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idPredefinidoCabecera_Ventas) + " = AUX_9." + nameof(CTA_PredefinidosCabeceras.id)
                                            )
                                        : ("")
                                ) +
                                //PredefinidosCompra
                                (
                                     (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.PredefinidosCompra)))
                                        ?
                                            (
                                             " LEFT JOIN " + nameof(CTA_PredefinidosCabeceras) + " AS AUX_10 ON " + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.idPredefinidoCabecera_Cobros) + " = AUX_10." + nameof(CTA_PredefinidosCabeceras.id)
                                            )
                                        : ("")
                                ) +
                            //CLIENTE_BOLSA
                            " INNER JOIN " + nameof(MAE_Clientes_Bolsa) + " ON " + nameof(MAE_Clientes_Bolsa) + "." + nameof(MAE_Clientes_Bolsa.idCliente) + "=" + nameof(MAE_Clientes) + "." + nameof(MAE_Clientes.id) +
                            " WHERE " +
                                        nameof(MAE_Clientes_Bolsa) + "." + nameof(MAE_Clientes_Bolsa.idUsuario) + "=" + Variables.G_MDL_USUARIOVALIDADO_MODELO.id + " and " +
                                        (
                                            (_lng_id > -1)
                                            ? ("MAE_Clientes_Bolsa_Filtrado." + (nameof(MAE_Clientes_Bolsa.id) + "=@id"))
                                            : ("1 = 1")
                                        );

                //Parametros
                object[] arr_Parametros = new object[]
                {
                    new SqlParameter("@id", _lng_id)
                };

                //Rellenar el Modelo
                g_lst_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo = _obj_Exferia_Entities.Database.SqlQuery<INTERNO_MAE_Clientes_Bolsa_Listado_Modelo>(str_SQL, arr_Parametros).ToList();

                //Direcciones
                if (g_lst_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo != null && g_lst_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Count > 0)
                {
                    Agregar_Direcciones(_lst_CamposConRelacionABuscar);
                }
            }
            catch (Control_Errores)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new Control_Errores("", ex, nameof(MAE_Clientes_Bolsa_Datos) + "/" + nameof(ConsultaRellenar_Listado), true);
            }
        }
        private void Agregar_Direcciones(List<string> _lst_CamposConRelacionABuscar)
        {
            try
            {
                List<long> lst_ids = g_lst_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.Select(m => m.id).ToList();

                //Buscar datos de direccion de envio ##################################################################
                List<GEN_Direcciones> lst_Direcciones_Envio = null;

                if (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionEnvio_NombreVia)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionEnvio_CodigoPostal)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionEnvio_Pais)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionEnvio_Provincia)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionEnvio_Municipio)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionEnvio_Poblacion)))
                {
                    lst_Direcciones_Envio = Datos_Generales.GEN_Direcciones_Obtener_Modelo_Listado_Por_IdsClienteTipoDireccion(lst_ids,
                                                                                                                                    Variables.G_STR_TIPODIRECCION_ENVIO,
                                                                                                                                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionEnvio_Pais)),
                                                                                                                                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionEnvio_Provincia)),
                                                                                                                                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionEnvio_Municipio)),
                                                                                                                                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionEnvio_Poblacion)),
                                                                                                                                    false);

                }
                //######################################################################################

                //Buscar datos de direccion de fACTURACION ##################################################################
                List<GEN_Direcciones> lst_Direcciones_Facturacion = null;

                if (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFacturacion_NombreVia)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFacturacion_CodigoPostal)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFacturacion_Pais)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFacturacion_Provincia)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFacturacion_Municipio)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFacturacion_Poblacion)))
                {
                    lst_Direcciones_Facturacion = Datos_Generales.GEN_Direcciones_Obtener_Modelo_Listado_Por_IdsClienteTipoDireccion(lst_ids,
                                                                                                                                    Variables.G_STR_TIPODIRECCION_FACTURACION,
                                                                                                                                        _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFacturacion_Pais)),
                                                                                                                                        _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFacturacion_Provincia)),
                                                                                                                                        _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFacturacion_Municipio)),
                                                                                                                                        _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFacturacion_Poblacion)),
                                                                                                                                        false);

                }
                //######################################################################################

                //Buscar datos de direccion de Fiscal ##################################################################
                List<GEN_Direcciones> lst_Direcciones_Fiscal = null;

                if (_lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_NombreVia)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_TipoNumeracion)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_NumeroCasa)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_CalificadorNumero)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_Bloque)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_Portal)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_Escalera)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_Planta)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_Puerta)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_DatosComplementariosDomicilio)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_CodigoPostal)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_Pais)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_Provincia)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_Municipio)) ||
                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_Poblacion)))
                {
                    lst_Direcciones_Fiscal = Datos_Generales.GEN_Direcciones_Obtener_Modelo_Listado_Por_IdsClienteTipoDireccion(lst_ids,
                                                                                                                                    Variables.G_STR_TIPODIRECCION_FISCAL,
                                                                                                                                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_Pais)),
                                                                                                                                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_Provincia)),
                                                                                                                                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_Municipio)),
                                                                                                                                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_Poblacion)),
                                                                                                                                    _lst_CamposConRelacionABuscar.Contains(nameof(INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal_TipoVia)));

                }
                //######################################################################################


                //Rellenar el Listado
                foreach (INTERNO_MAE_Clientes_Bolsa_Listado_Modelo mdl_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo in g_lst_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo)
                {
                    //Direccion de Envio
                    if (lst_Direcciones_Envio != null &&
                        lst_Direcciones_Envio.Count > 0)
                    {
                        mdl_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionEnvio = lst_Direcciones_Envio.Where(m => m.idCliente != null && m.idCliente.Value.Equals(mdl_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.id)).FirstOrDefault();
                    }

                    //Direccion de Facturacion
                    if (lst_Direcciones_Facturacion != null &&
                        lst_Direcciones_Facturacion.Count > 0)
                    {
                        mdl_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFacturacion = lst_Direcciones_Facturacion.Where(m => m.idCliente != null && m.idCliente.Value.Equals(mdl_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.id)).FirstOrDefault();
                    }

                    //Direccion de Fiscal
                    if (lst_Direcciones_Fiscal != null &&
                        lst_Direcciones_Fiscal.Count > 0)
                    {
                        mdl_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.DireccionFiscal = lst_Direcciones_Fiscal.Where(m => m.idCliente != null && m.idCliente.Value.Equals(mdl_INTERNO_MAE_Clientes_Bolsa_Listado_Modelo.id)).FirstOrDefault();
                    }
                }
            }
            catch (Control_Errores)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new Control_Errores("", ex, nameof(MAE_Clientes_Bolsa_Datos) + "/" + nameof(Agregar_Direcciones), 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)
        {
            return null;
        }
        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_ids)
        {
            return null;
        }
        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)
        {
            return null;
        }
        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)
        {
            return null;
        }
        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
        public override dynamic Obtener(long _lng_id)
        {
            return null;
        }
        public override dynamic Obtener_Registro_PorCampo(string _str_Filtro, string _str_CampoBusqueda, long _lng_idEmpresaSeleccionada, long _lng_idEjercicioActual)
        {
            return null;
        }

        public List<long> Obtener_Listado_id(long _lng_idUsuario)
        {
            Exferia_Entities obj_Exferia_Entities = null;

            List<long> lst_ids = null;

            try
            {
                obj_Exferia_Entities = new Exferia_Entities();
                obj_Exferia_Entities.Configuration.LazyLoadingEnabled = false;

                string str_SQL =
                  " SELECT " +
                        nameof(MAE_Clientes_Bolsa.idCliente) +
                  " FROM " + nameof(MAE_Clientes_Bolsa) +
                  " WHERE " + nameof(MAE_Clientes_Bolsa.idUsuario) + "=@idUsuario ";

                //Parametros
                object[] arr_Parametros = new object[]
                {
                     new SqlParameter("@idUsuario",  _lng_idUsuario)
                };

                //Rellenar el Modelo
                lst_ids = obj_Exferia_Entities.Database.SqlQuery<long>(str_SQL, arr_Parametros).ToList();
                 
            }
            catch (Control_Errores)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new Control_Errores("", ex, nameof(MAE_Clientes_Bolsa_Datos) + "/" + nameof(Obtener_Listado_id), true);
            }
            finally
            {
                obj_Exferia_Entities.Database.Connection.Close();
                obj_Exferia_Entities.Dispose();
            }
            return lst_ids;
        }
        #endregion

        #region Grabar
        public override INTERNO_ValorDevuelto_Modelo Grabar(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_ids_AGrabar = (List<long>)_mdl_obj;

                if (lst_ids_AGrabar != null && lst_ids_AGrabar.Count > 0)
                {
                    string str_SQL = "";
                    foreach (long lng_id in lst_ids_AGrabar)
                    {
                        str_SQL += " INSERT " + nameof(MAE_Clientes_Bolsa) + " (" + nameof(MAE_Clientes_Bolsa.idCliente) + "," + nameof(MAE_Clientes_Bolsa.idUsuario) + ") " +
                                        " SELECT  " + lng_id + ", " + Variables.G_MDL_USUARIOVALIDADO_MODELO.id + " " +
                                        " WHERE  NOT EXISTS " +
                                            " (   SELECT  1 " +
                                                " FROM    " + nameof(MAE_Clientes_Bolsa) + " " +
                                                " WHERE   " + nameof(MAE_Clientes_Bolsa.idCliente) + " = " + lng_id + " and " +
                                                      "  " + nameof(MAE_Clientes_Bolsa.idUsuario) + " = " + Variables.G_MDL_USUARIOVALIDADO_MODELO.id + " " +
                                            " ) ";
                    }

                    obj_Exferia_Entities.Database.ExecuteSqlCommand(str_SQL);
                }
            }
            catch (Control_Errores)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new Control_Errores("", ex, nameof(MAE_Clientes_Bolsa_Datos) + "/" + nameof(Grabar), true);
            }
            finally
            {
                
                obj_Exferia_Entities.Database.Connection.Close();
                obj_Exferia_Entities.Dispose();
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion

        #region Borrar
        public override INTERNO_ValorDevuelto_Modelo Borrar(long _lng_id)
        {
            return null;
        }
        public override INTERNO_ValorDevuelto_Modelo Borrar(long _lng_id, long _lng_idAuxiliar)
        {
            return null;
        }
        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_ids_ABorrar = (List<long>)_mdl_obj;
                if (lst_ids_ABorrar != null && lst_ids_ABorrar.Count > 0)
                {
                      List<SqlParameter> lst_Parametros = new List<SqlParameter>();

                      string str_Filtro_IDS = Funciones.Formar_ContenidoIN_ParaConsultaWhere(lst_ids_ABorrar);

                      string str_SQL = " DELETE FROM " + nameof(MAE_Clientes_Bolsa) +
                                       " WHERE " +
                                              nameof(MAE_Clientes_Bolsa.idCliente) + " in (" + str_Filtro_IDS + ") AND " +
                                              nameof(MAE_Clientes_Bolsa.idUsuario) + " =@idUsuario ";

                      //Parametros
                      lst_Parametros.Add(new SqlParameter("@idUsuario", Variables.G_MDL_USUARIOVALIDADO_MODELO.id));

                      object[] arr_Parametros = lst_Parametros.ToArray();

                      obj_Exferia_Entities.Database.ExecuteSqlCommand(str_SQL, arr_Parametros);
                }
            }
            catch (Control_Errores)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new Control_Errores("", ex, nameof(MAE_Clientes_Bolsa_Datos) + "/" + nameof(Grabar), true);
            }
            finally
            {
                
                obj_Exferia_Entities.Database.Connection.Close();
                obj_Exferia_Entities.Dispose();
            }

            return mdl_ValorDevuelto_Modelo;
        }
        #endregion
    }
}
