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_PedidosComprasCabecera_Bolsa_Listado_Modelo : COM_PedidosComprasCabecera
    {
        public bool Seleccionar { get; set; }

        public string Estado_Texto
        {
            get
            {
                string str_Estado_Texto = Variables.G_STR_ESTADO_CONTABILIDAD_ABIERTO_TEXTO;

                if (estado != null && estado.Trim().Length > 0 && estado.Equals(Variables.G_STR_ESTADO_CONTABILIDAD_CERRADO))
                {
                    str_Estado_Texto = Variables.G_STR_ESTADO_CONTABILIDAD_CERRADO_TEXTO;
                }

                return str_Estado_Texto;
            }
        }

        public string Situacion_Texto
        {
            get
            {
                string str_Situacion_Texto = Variables.G_MDL_TIPOSITUACION_PEDIDOCOMPRA_PENDIENTE.Descripcion;

                if (situacion.ToString().Equals(Variables.G_MDL_TIPOSITUACION_PEDIDOCOMPRA_ANULADO.Codigo))
                {
                    str_Situacion_Texto = Variables.G_MDL_TIPOSITUACION_PEDIDOCOMPRA_ANULADO.Descripcion;
                }
                else if (situacion.ToString().Equals(Variables.G_MDL_TIPOSITUACION_PEDIDOCOMPRA_CANCELADO.Codigo))
                {
                    str_Situacion_Texto = Variables.G_MDL_TIPOSITUACION_PEDIDOCOMPRA_CANCELADO.Descripcion;
                }
                else if (situacion.ToString().Equals(Variables.G_MDL_TIPOSITUACION_PEDIDOCOMPRA_PARTEPENDIENTE.Codigo))
                {
                    str_Situacion_Texto = Variables.G_MDL_TIPOSITUACION_PEDIDOCOMPRA_PARTEPENDIENTE.Descripcion;
                }
                else if (situacion.ToString().Equals(Variables.G_MDL_TIPOSITUACION_PEDIDOCOMPRA_SERVIDO.Codigo))
                {
                    str_Situacion_Texto = Variables.G_MDL_TIPOSITUACION_PEDIDOCOMPRA_SERVIDO.Descripcion;
                }

                return str_Situacion_Texto;
            }
        }

        //Empresa
        public string Empresa_Codigo { get; set; }
        public string Empresa_Descripcion { get; set; }
        public DateTime? Empresa_FechaBorrado { get; set; }
        public string Empresa
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //Delegacion
        public string Delegacion_Codigo { get; set; }
        public string Delegacion_Descripcion { get; set; }
        public DateTime? Delegacion_FechaBorrado { 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;
            }
        }

        //Proveedor
        public string Proveedor_Codigo { get; set; }
        public string Proveedor_RazonSocial { get; set; }
        public string Proveedor_NombreComercial { get; set; }

        //Moneda
        public string Moneda_Codigo { get; set; }
        public string Moneda_Descripcion { get; set; }
        public DateTime? Moneda_FechaBorrado { get; set; }
        public string Moneda
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //ImpuestoCabecera
        public string ImpuestoCabecera_Codigo { get; set; }
        public string ImpuestoCabecera_Descripcion { get; set; }
        public DateTime? ImpuestoCabecera_FechaBorrado { 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;
            }
        }

        //Empleado
        public string Empleado_Codigo { get; set; }
        public string Empleado_Nombre { get; set; }
        public DateTime? Empleado_FechaBorrado { get; set; }
        public string Empleado
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //PredefinidoCabecera (Pedido)
        public string PredefinidoCabeceraPedido_Codigo { get; set; }
        public string PredefinidoCabeceraPedido_Descripcion { get; set; }
        public DateTime? PredefinidoCabeceraPedido_FechaBorrado { get; set; }
        public string PredefinidoCabeceraPedido
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //PredefinidoCabecera (Cancelacion)
        public string PredefinidoCabeceraCancelacion_Codigo { get; set; }
        public string PredefinidoCabeceraCancelacion_Descripcion { get; set; }
        public DateTime? PredefinidoCabeceraCancelacion_FechaBorrado { get; set; }
        public string PredefinidoCabeceraCancelacion
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //PredefinidoCabecera (Anulacion)
        public string PredefinidoCabeceraAnulacion_Codigo { get; set; }
        public string PredefinidoCabeceraAnulacion_Descripcion { get; set; }
        public DateTime? PredefinidoCabeceraAnulacion_FechaBorrado { get; set; }
        public string PredefinidoCabeceraAnulacion
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //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;
            }
        }


        //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 = "";

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

                return str_Aux;
            }
        }


        #region Anexos
        public string Anexo_SuOferta
        {
            get
            {
                string str_Aux = "";

                if (COM_PedidosComprasCabecera_Anexos != null && COM_PedidosComprasCabecera_Anexos.FirstOrDefault()!=null)
                {
                    str_Aux = COM_PedidosComprasCabecera_Anexos.FirstOrDefault().suOferta;
                }

                return str_Aux;
            }
        }
        public string Anexo_PlazoEntrega
        {
            get
            {
                string str_Aux = "";

                if (COM_PedidosComprasCabecera_Anexos != null && COM_PedidosComprasCabecera_Anexos.FirstOrDefault() != null)
                {
                    str_Aux = COM_PedidosComprasCabecera_Anexos.FirstOrDefault().plazoEntrega;
                }

                return str_Aux;
            }
        }
        public string Anexo_Transporte
        {
            get
            {
                string str_Aux = "";

                if (COM_PedidosComprasCabecera_Anexos != null && COM_PedidosComprasCabecera_Anexos.FirstOrDefault() != null)
                {
                    str_Aux = COM_PedidosComprasCabecera_Anexos.FirstOrDefault().transporte;
                }

                return str_Aux;
            }
        }
        public string Anexo_CondicionesEspeciales
        {
            get
            {
                string str_Aux = "";

                if (COM_PedidosComprasCabecera_Anexos != null && COM_PedidosComprasCabecera_Anexos.FirstOrDefault() != null)
                {
                    str_Aux = COM_PedidosComprasCabecera_Anexos.FirstOrDefault().condicionesEspeciales;
                }

                return str_Aux;
            }
        }
        public string Anexo_PuntoDestino
        {
            get
            {
                string str_Aux = "";

                if (COM_PedidosComprasCabecera_Anexos != null && COM_PedidosComprasCabecera_Anexos.FirstOrDefault() != null)
                {
                    str_Aux = COM_PedidosComprasCabecera_Anexos.FirstOrDefault().puntoDestino;
                }

                return str_Aux;
            }
        }
        public string Anexo_Documentacion
        {
            get
            {
                string str_Aux = "";

                if (COM_PedidosComprasCabecera_Anexos != null && COM_PedidosComprasCabecera_Anexos.FirstOrDefault() != null)
                {
                    str_Aux = COM_PedidosComprasCabecera_Anexos.FirstOrDefault().documentacion;
                }

                return str_Aux;
            }
        }
        public string Anexo_Descuentos
        {
            get
            {
                string str_Aux = "";

                if (COM_PedidosComprasCabecera_Anexos != null && COM_PedidosComprasCabecera_Anexos.FirstOrDefault() != null)
                {
                    str_Aux = COM_PedidosComprasCabecera_Anexos.FirstOrDefault().descuentos;
                }

                return str_Aux;
            }
        }
        public string Anexo_AtencionDe
        {
            get
            {
                string str_Aux = "";

                if (COM_PedidosComprasCabecera_Anexos != null && COM_PedidosComprasCabecera_Anexos.FirstOrDefault() != null)
                {
                    str_Aux = COM_PedidosComprasCabecera_Anexos.FirstOrDefault().atencionDe;
                }

                return str_Aux;
            }
        }
        #endregion

    }
}
