using Exferia_Aplicacion.General;
using Exferia_Aplicacion.Herencia.Abstractas;
using Exferia_EntityFramework;
using Exferia_HotelPuntoVenta._0_Modelos;
using Exferia_HotelPuntoVenta._3_Vistas.Listados;
using Exferia_HotelPuntoVenta._3_Vistas.ListadosAgrupaciones;
using Exferia_HotelPuntoVenta.General;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Exferia_HotelPuntoVenta._3_Vistas.MantenimientoAgrupacionesCabecera
{
    public class ABS_MantenimientoAgrupacionesCabecera_HPV_AgrupacionesPLVCabeceras : ABS_MantenimientoAgrupacionesCabecera
    {
        public override string NOMBRE_LIBRERIA()
        {
            return Variables.G_STR_LIBRERIA_HOTELPUNTOVENTA;
        }

        public override string NOMBRE_CLASE_DATOSAGRUPACIONESLINEAS()
        {
            return Variables.G_STR_LIBRERIA_DATOSHOTELPUNTOVENTA;
        }

        public override string NOMBRE_PROCEDIMIENTO_EXISTENREPETIDOS()
        {
            return Variables.G_STR_LIBRERIA_DATOSHOTELPUNTOVENTA_PROCEDIMIENTO_AGRUPACIONESLINEAS_EXISTENREPETIDOS;
        }

        public override string NOMBRE_PROCEDIMIENTO_REGISTROSREPETIDOS()
        {
            return Variables.G_STR_LIBRERIA_DATOSHOTELPUNTOVENTA_PROCEDIMIENTO_AGRUPACIONESLINEAS_OBTENERREGISTROREPETIDOS;
        }

        #region Cabecera
        public override string OPCION_CABECERA()
        {
            return Variables.G_STR_OPCION_HPV_AGRUPACIONESPLVCABECERAS;
        }
        public override string NOMBRE_TABLA_CABECERA()
        {
            return nameof(HPV_AgrupacionesPLVCabeceras);
        }

        public override string NOMBRE_CAMPO_ID_CABECERA()
        {
            return nameof(HPV_AgrupacionesPLVCabeceras.id);
        }

        public override string NOMBRE_CAMPO_IDEMPRESA_CABECERA()
        {
            return nameof(HPV_AgrupacionesPLVCabeceras.idEmpresa);
        }
        public override string NOMBRE_CAMPO_CODIGO_CABECERA()
        {
            return nameof(HPV_AgrupacionesPLVCabeceras.codigo);
        }

        public override bool TIENE_FECHABORRADO_CABECERA()
        {
            return true;
        }
        public override bool ES_DEARTICULO_CABECERA()
        {
            return false;
        }

        public override ABS_Listado LISTADO_LINEAS()
        {
            return new ABS_Listado_HPV_AgrupacionesPLVLineas();
        }
        #endregion

        #region Lineas
        public override string OPCION_LINEA()
        {
            return Variables.G_STR_OPCION_HPV_AGRUPACIONESPLVLINEAS;
        }
        public override string NOMBRE_TABLA_LINEA()
        {
            return nameof(HPV_AgrupacionesPLVLineas);
        }

        public override string NOMBRE_CAMPO_ID_LINEA()
        {
            return nameof(HPV_AgrupacionesPLVLineas.id);
        }

        public override string NOMBRE_CAMPO_IDEMPRESA_LINEA()
        {
            return nameof(HPV_AgrupacionesPLVLineas.idEmpresa);
        }
        public override string NOMBRE_CAMPO_CODIGO_LINEA()
        {
            return nameof(HPV_AgrupacionesPLVLineas.codigo);
        }

        public override bool TIENE_FECHABORRADO_LINEA()
        {
            return true;
        }

        public override ABS_Listado ABS_LISTADO_INCLUIRREGISTROS()
        {
            return new ABS_ListadoAgrupaciones_HPV_PLV_IncluirRegistros();
        }

        public override ABS_Listado ABS_LISTADO_REGISTROSSELECCIONADOS()
        {
            return new ABS_ListadoAgrupaciones_HPV_PLV_RegistrosSeleccionados();
        }

        public override string NOMBRE_CAMPO_SELECCIONAR_LINEA()
        {
            return nameof(INTERNO_HPV_PLV_Listado_Modelo.Seleccionar);
        }

        public override bool MOSTRAR_SELECCION_COLORES()
        {
            return true;
        }

        public override bool MOSTRAR_SELECCION_IMAGEN()
        {
            return true;
        }

        public override bool MOSTRAR_CAMPO_ORDEN()
        {
            return true;
        }
        public override string NOMBRE_CAMPO_ORDEN_LINEA()
        {
            return nameof(HPV_AgrupacionesPLVLineas.orden);
        }
        #endregion

        #region LineasFoto
        public override string OPCION_LINEAFOTO()
        {
            return Variables.G_STR_OPCION_HPV_AGRUPACIONESPLVLINEASFOTOS;
        }
        #endregion

        #region LineasImpresora
        public override bool MOSTRAR_LINEA_IMPRESORA()
        {
            return true;
        }

        public override string NOMBRE_PROCEDIMIENTO_LINEAS_IMPRESORA_GRABAR()
        {
            return Variables.G_STR_LIBRERIA_DATOSHOTELPUNTOVENTA_PROCEDIMIENTO_AGRUPACIONESLINEAS_GRABAR_RELACIONES_IMPRESORAS;
        }

        public override ABS_Listado ABS_LISTADO_INCLUIRREGISTROS_IMPRESORA()
        {
            return new ABS_Listado_HPV_Impresoras_P_MantenimientoAgrupacionesLineas_IncluirRegistros();
        }

        public override ABS_Listado ABS_LISTADO_REGISTROSSELECCIONADOS_IMPRESORA()
        {
            return new ABS_Listado_HPV_Impresoras_P_MantenimientoAgrupacionesLineas();
        }

        public override string IMPRESORA_NOMBRE_LIBRERIA()
        {
            return Variables.G_STR_LIBRERIA_HOTELPUNTOVENTA;
        }

        public override string IMPRESORA_NOMBRE_OPCION()
        {
            return Variables.G_STR_OPCION_HPV_IMPRESORAS;
        }

        public override Dictionary<string, object> FILTROS()
        {
            throw new NotImplementedException();
        }
        #endregion
    }
}
