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_Compras._0_Modelos
{
    public class INTERNO_COM_DevolucionesPagos_Listado_Modelo : COM_DevolucionesPagos
    {
        public bool Bolsa { get; set; }

        public string Estado_Texto
        {
            get
            {
                string 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;
            }
        }

        //Tesoreria
        public string Tesoreria_Codigo { get; set; }
        public string Tesoreria_Descripcion { get; set; }
        public DateTime? Tesoreria_FechaBorrado { get; set; }
        public string Tesoreria
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //Datos de FacturaCabecera
        public string FacturaCabecera_NumeroFactura { get; set; }
        public DateTime FacturaCabecera_Fecha { get; set; }

        //FacturaCabecera_Proveedor
        public long? idProveedor { get; set; }
        public string FacturaCabecera_Proveedor_Codigo { get; set; }
        public string FacturaCabecera_Proveedor_RazonSocial { get; set; }
        public DateTime? FacturaCabecera_Proveedor_FechaBorrado { get; set; }
        public string FacturaCabecera_Proveedor
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //FacturaCabecera_Empresa
        public long? idEmpresa { get; set; }
        public string FacturaCabecera_Empresa_Codigo { get; set; }
        public string FacturaCabecera_Empresa_Descripcion { get; set; }
        public DateTime? FacturaCabecera_Empresa_FechaBorrado { get; set; }
        public string FacturaCabecera_Empresa
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //Vencimiento
        public long? idVencimiento { get; set; }
        public long Vencimiento_Codigo { get; set; }
        public string Vencimiento_Descripcion { get; set; }
        public DateTime? Vencimiento_FechaBorrado { get; set; }
        public string Vencimiento
        {
            get
            {
                string str_Aux = "";

                //Codigo
                if (Vencimiento_Codigo > 0)
                {
                    str_Aux = "(" + Vencimiento_Codigo.ToString() + ") ";
                }

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

                return str_Aux;
            }
        }

        //Pago
        public long Pago_Codigo { get; set; }
        public decimal Pago_Importe { get; set; }

        //ClaveAnalitica
        public string ClaveAnalitica_Codigo { get; set; }
        public string ClaveAnalitica_Descripcion { get; set; }
        public DateTime? ClaveAnalitica_FechaBorrado { get; set; }
        public string ClaveAnalitica
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //PredefinidoCabecera_Pago
        public string PredefinidoCabecera_Pago_Codigo { get; set; }
        public string PredefinidoCabecera_Pago_Descripcion { get; set; }
        public DateTime? PredefinidoCabecera_Pago_FechaBorrado { get; set; }
        public string PredefinidoCabecera_Pago
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //Ejercicio
        public GEN_EjerciciosActivos_Empresa Ejercicios_Empresa { get; set; }
        public long idEjercicio
        {
            get
            {
                long lng_Aux = -1;

                if (Ejercicios_Empresa != null)
                {
                    lng_Aux = Ejercicios_Empresa.id;
                }

                return lng_Aux;
            }
        }
        public string Ejercicio
        {
            get
            {
                string str_Aux = "";

                //Codigo
                if (Ejercicios_Empresa != null)
                {
                    str_Aux = Ejercicios_Empresa.anioControl;
                }

                return str_Aux;
            }
        }
    }
}
