using Exferia_Aplicacion.General;
using Exferia_Aplicacion.Modelos_Generales;
using Exferia_Aplicacion.Modelos_Listado_Filtros;
using Exferia_EntityFramework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static Exferia_Aplicacion.General.Enumerados;

namespace Exferia_Ventas._3_Vistas.Listados
{
    public class ABS_Listado_VTA_PresupuestosCabecera_Resumen : ABS_Listado
    {
        //Variables privadas
        private Dictionary<string, INTERNO_ABS_Listado_ColumnasDatos_Modelo> g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo = new Dictionary<string, INTERNO_ABS_Listado_ColumnasDatos_Modelo>();

        //Constructor
        public ABS_Listado_VTA_PresupuestosCabecera_Resumen()
        {
            Rellenar_Columnas();
        }

        private void Rellenar_Columnas()
        {
            g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo = new Dictionary<string, INTERNO_ABS_Listado_ColumnasDatos_Modelo>();

            //IdImpuestoTipo
            g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Add(nameof(INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo), new INTERNO_ABS_Listado_ColumnasDatos_Modelo(true, nameof(INTERNO_ImportesImpuestos_Modelo.IdImpuestoTipo), "IdImpuestoTipo", G_ENUM_TIPOSDATOS.LONG, true, 0, false, false, true, false, "", null, true));
            //IdImpuestoLinea
            g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Add(nameof(INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea), new INTERNO_ABS_Listado_ColumnasDatos_Modelo(false, nameof(INTERNO_ImportesImpuestos_Modelo.IdImpuestoLinea), "IdImpuestoLinea", G_ENUM_TIPOSDATOS.LONG, true, 0, false, false, false, false, "", null, true));
            //EsLineaTotal
            g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Add(nameof(INTERNO_ImportesImpuestos_Modelo.EsLineaTotal), new INTERNO_ABS_Listado_ColumnasDatos_Modelo(false, nameof(INTERNO_ImportesImpuestos_Modelo.EsLineaTotal), "EsLineaTotal", G_ENUM_TIPOSDATOS.BOOLEAN, true, 0, false, false, false, false, "", null, true));
            //ImpuestoTipo
            g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Add(nameof(INTERNO_ImportesImpuestos_Modelo.ImpuestoTipo), new INTERNO_ABS_Listado_ColumnasDatos_Modelo(false, nameof(INTERNO_ImportesImpuestos_Modelo.ImpuestoTipo), "Tipo impuesto", G_ENUM_TIPOSDATOS.TEXT, false, 100, true, true, true, false, "", null, false, null, null, "", false, 0, true));
            //Bruto
            g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Add(nameof(INTERNO_ImportesImpuestos_Modelo.Bruto), new INTERNO_ABS_Listado_ColumnasDatos_Modelo(false, nameof(INTERNO_ImportesImpuestos_Modelo.Bruto), "Bruto", G_ENUM_TIPOSDATOS.DECIMAL, false, 100, true, false, true, false, "", null, false, null, null, "", false, 0, true));
            //DescuentoAlbaranFinal_Calculado
            g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Add(nameof(INTERNO_ImportesImpuestos_Modelo.DescuentoAlbaranFinal_Calculado), new INTERNO_ABS_Listado_ColumnasDatos_Modelo(false, nameof(INTERNO_ImportesImpuestos_Modelo.DescuentoAlbaranFinal_Calculado), "Dto. F.A.", G_ENUM_TIPOSDATOS.DECIMAL, false, 100, true, false, true, false, "", null, false, null, null, "", false, 0, true));
            //DescuentoFacturaFinal_Calculado
            g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Add(nameof(INTERNO_ImportesImpuestos_Modelo.DescuentoFacturaFinal_Calculado), new INTERNO_ABS_Listado_ColumnasDatos_Modelo(false, nameof(INTERNO_ImportesImpuestos_Modelo.DescuentoFacturaFinal_Calculado), "Dto. F.F.", G_ENUM_TIPOSDATOS.DECIMAL, false, 100, true, false, true, false, "", null, false, null, null, "", false, 0, true));
            //DescuentoProntoPago_Calculado
            g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Add(nameof(INTERNO_ImportesImpuestos_Modelo.DescuentoProntoPago_Calculado), new INTERNO_ABS_Listado_ColumnasDatos_Modelo(false, nameof(INTERNO_ImportesImpuestos_Modelo.DescuentoProntoPago_Calculado), "Dto. P.P.", G_ENUM_TIPOSDATOS.DECIMAL, false, 100, true, false, true, false, "", null, false, null, null, "", false, 0, true));
            //BaseImponible
            g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Add(nameof(INTERNO_ImportesImpuestos_Modelo.BaseImponible), new INTERNO_ABS_Listado_ColumnasDatos_Modelo(false, nameof(INTERNO_ImportesImpuestos_Modelo.BaseImponible), "Base I.(€)", G_ENUM_TIPOSDATOS.DECIMAL, false, 100, true, true, true, false, "", null, false, null, null, "", false, 0, true));
            //Impuesto_Porcentaje
            g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Add(nameof(INTERNO_ImportesImpuestos_Modelo.Impuesto_Porcentaje), new INTERNO_ABS_Listado_ColumnasDatos_Modelo(false, nameof(INTERNO_ImportesImpuestos_Modelo.Impuesto_Porcentaje), "Impuesto (%)", G_ENUM_TIPOSDATOS.DECIMAL, false, 100, true, true, true, false, "", null, true, null, null, "", false, 0, true));
            //Impuesto_Calculado
            g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Add(nameof(INTERNO_ImportesImpuestos_Modelo.Impuesto_Calculado), new INTERNO_ABS_Listado_ColumnasDatos_Modelo(false, nameof(INTERNO_ImportesImpuestos_Modelo.Impuesto_Calculado), "Impuesto", G_ENUM_TIPOSDATOS.DECIMAL, false, 100, true, true, true, false, "", null, false, null, null, "", false, 0, true));
            //Recargo_Porcentaje
            g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Add(nameof(INTERNO_ImportesImpuestos_Modelo.Recargo_Porcentaje), new INTERNO_ABS_Listado_ColumnasDatos_Modelo(false, nameof(INTERNO_ImportesImpuestos_Modelo.Recargo_Porcentaje), "Recargo (%)", G_ENUM_TIPOSDATOS.DECIMAL, false, 100, true, false, true, false, "", null, true, null, null, "", false, 0, true));
            //Recargo_Calculado
            g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Add(nameof(INTERNO_ImportesImpuestos_Modelo.Recargo_Calculado), new INTERNO_ABS_Listado_ColumnasDatos_Modelo(false, nameof(INTERNO_ImportesImpuestos_Modelo.Recargo_Calculado), "Recargo", G_ENUM_TIPOSDATOS.DECIMAL, false, 100, true, false, true, false, "", null, false, null, null, "", false, 0, true));
            //Total
            g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Add(nameof(INTERNO_ImportesImpuestos_Modelo.Total), new INTERNO_ABS_Listado_ColumnasDatos_Modelo(false, nameof(INTERNO_ImportesImpuestos_Modelo.Total), "Total", G_ENUM_TIPOSDATOS.DECIMAL, false, 100, true, true, true, false, "", null, false, null, null, "", false, 0, true));


        }

        public override List<dynamic> LISTADO()
        {
            return Registros;
        }

        public override INTERNO_OpcionesDetalle_Modelo DATOS_OPCION()
        {
            return null;
        }

        public override string NOMBRELISTADO_ALMACENARCONFIGURACION()
        {
            return nameof(INTERNO_ImportesImpuestos_Modelo) + "_" + nameof(VTA_PresupuestosCabecera_Resumen);
        }

        public override Dictionary<string, INTERNO_ABS_Listado_ColumnasDatos_Modelo> LISTADO_COLUMNAS()
        {
            return g_dct_INTERNO_ABS_Listado_ColumnasDatos_Modelo;
        }

        public override string ORDENACION_NOMBRECOLUMNA_PORDEFECTO()
        {
            return nameof(INTERNO_ImportesImpuestos_Modelo.ImpuestoTipo);
        }

        public override string ORDENACION_TIPO_PORDEFECTO()
        {
            return "0";
        }

        public override INTERNO_Listado_BotonesAuxiliares_Modelo BOTONAUXILIAR_1()
        {
            return null;
        }

        public override INTERNO_Listado_BotonesAuxiliares_Modelo BOTONAUXILIAR_2()
        {
            return null;
        }

        public override INTERNO_Listado_BotonesAuxiliares_Modelo BOTONAUXILIAR_3()
        {
            return null;
        }

        public override INTERNO_Listado_BotonesAuxiliares_Modelo BOTONAUXILIAR_4()
        {
            return null;
        }

        public override INTERNO_Listado_BotonesAuxiliares_Modelo BOTONAUXILIAR_5()
        {
            return null;
        }

        public override INTERNO_Listado_BotonesAuxiliares_Modelo BOTONAUXILIAR_6()
        {
            return null;
        }

        public override INTERNO_Listado_BotonesAuxiliares_Modelo BOTONAUXILIAR_7()
        {
            return null;
        }

        public override List<INTERNO_ArbolSecundarioSeleccion_Modelo> LISTADO_ARBOLSECUNDARIOSELECCION()
        {
            return null;
        }

        public override List<INTERNO_Listado_Paginado_Filtro_Modelo> FILTRADO_PARAPAGINADO()
        {
            return null;
        }

        public override List<string> LISTADOCAMPOS_ENVIAR_A_MANTENIMIENTO()
        {
            return null;
        }
    }
}
