using Exferia_Aplicacion.General;
using Exferia_EntityFramework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Exferia_Aplicacion.Modelos_Compras
{
    public class INTERNO_ResumenImpuestos_Soportado_Listado_Modelo
    {
        //id
        public long id { get; set; }

        //Boton_Ver
        public string Boton_Ver { get; set; }

        //ImpuestoCabecera
        public long ImpuestoCabecera_Id { get; set; }
        public string ImpuestoCabecera_Codigo { get; set; }
        public string ImpuestoCabecera_Descripcion { get; set; }
        public string ImpuestoCabecera
        {
            get
            {
                string str_Aux = "";

                //Codigo
                if (ImpuestoCabecera_Codigo != null && ImpuestoCabecera_Codigo.Trim().Length > 0)
                {
                    str_Aux = "(" + ImpuestoCabecera_Codigo + ") ";
                }

                //Descripcion
                if (ImpuestoCabecera_Descripcion != null && ImpuestoCabecera_Descripcion.Trim().Length > 0)
                {
                    str_Aux += ImpuestoCabecera_Descripcion;
                }

                return str_Aux;
            }
        }

        //Delegacion
        public long Delegacion_Id { get; set; }
        public string Delegacion_Codigo { get; set; }
        public string Delegacion_Descripcion { get; set; }
        public string Delegacion
        {
            get
            {
                string str_Aux = "";

                //Codigo
                if (Delegacion_Codigo != null && Delegacion_Codigo.Trim().Length > 0)
                {
                    str_Aux = "(" + Delegacion_Codigo + ") ";
                }

                //Descripcion
                if (Delegacion_Descripcion != null && Delegacion_Descripcion.Trim().Length > 0)
                {
                    str_Aux += Delegacion_Descripcion;
                }

                return str_Aux;
            }
        }

        //NumeroDocumento
        public string NumeroFactura { get; set; }
        public string NumeroDocumento
        {
            get
            {
                string str_AUX = "";

                if (NumeroFactura.Trim().Length>0)
                {
                    str_AUX = (Delegacion_Codigo + "/" + NumeroFactura);
                }

                return str_AUX;
            }
        }

        //FechaDeclaracion
        public DateTime? FechaDeclaracion { get; set; }

        //Fecha
        public DateTime? Fecha { get; set; }

        //Factura
        public string Factura { get; set; }

        //Proveedor
        public long Proveedor_Id { get; set; }
        public string Proveedor_Codigo { get; set; }
        public string Proveedor_RazonSocial { get; set; }
        public string Proveedor_CIF { get; set; }

        //ImpuestoTipo
        public long ImpuestoTipo_Id { get; set; }
        public string ImpuestoTipo_Descripcion { get; set; }

        //BaseImponible
        public decimal BaseImponible { get; set; }

        //Impuesto_Porcentaje
        public decimal Impuesto_Porcentaje { get; set; }

        //Impuesto_Valor
        public decimal Impuesto_Valor { get; set; }

        //Recargo_Porcentaje
        public decimal Recargo_Porcentaje { get; set; }

        //Recargo_Valor
        public decimal Recargo_Valor { get; set; }

        //total
        public decimal? total { get; set; }

        //estado
        public string estado { get; set; }
        public bool estado_Vaciado = false;
        public string Estado_Texto
        {
            get
            {
                string str_Estado_Texto = "";

                if (estado_Vaciado==false)
                {
                    str_Estado_Texto = Variables.G_STR_ESTADO_CONTABILIDAD_ABIERTO_TEXTO;

                    if (estado.Equals(Variables.G_STR_ESTADO_CONTABILIDAD_CERRADO))
                    {
                        str_Estado_Texto = Variables.G_STR_ESTADO_CONTABILIDAD_CERRADO_TEXTO;
                    }
                    else if (estado.Equals(Variables.G_STR_ESTADO_CONTABILIDAD_VOLCADO))
                    {
                        str_Estado_Texto = Variables.G_STR_ESTADO_CONTABILIDAD_VOLCADO_TEXTO;
                    }
                }

                return str_Estado_Texto;
            }
        }
    }
}
