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_PedidosComprasLineas_Listado_Modelo : COM_PedidosComprasLineas
    {
        //Articulo
        public string Articulo_Codigo { get; set; }
        public long Articulo_Codigo_Long
        {
            get
            {
                long lng_Codigo = 0;
                if (Funciones.IsNumeric(Articulo_Codigo))
                {
                    lng_Codigo = long.Parse(Articulo_Codigo);
                }
                return lng_Codigo;
            }

        }
        public string Articulo_Descripcion { get; set; }
        public string Articulo
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }
        public GEN_ImpuestosTipos Articulo_ImpuestoTipo { get; set; }
        public string Articulo_TipoTrazabilidad { get; set; }
        public string TipoTrazabilidad_Texto
        {
            get
            {
                string str_TipoTrazabilidad = Variables.G_MDL_TIPOSTRAZABILIDAD_SINTRAZABILIDAD.Descripcion;

                if (Articulo_TipoTrazabilidad != null)
                {
                    //Tipo de trazabilidad OBLIGATORIA
                    if (Articulo_TipoTrazabilidad.Equals(Variables.G_MDL_TIPOSTRAZABILIDAD_OBLIGATORIA.Codigo))
                    {
                        str_TipoTrazabilidad = Variables.G_MDL_TIPOSTRAZABILIDAD_OBLIGATORIA.Descripcion;
                    }
                    else if (Articulo_TipoTrazabilidad.Equals(Variables.G_MDL_TIPOSTRAZABILIDAD_OPCIONAL.Codigo))
                    {
                        str_TipoTrazabilidad = Variables.G_MDL_TIPOSTRAZABILIDAD_OPCIONAL.Descripcion;
                    }
                }

                return str_TipoTrazabilidad;
            }
        }

        public bool EnPromocion
        {
            get
            {
                bool bol_Aux = false;

                if (idPedidoCompraLinea_Padre != null)
                {
                    bol_Aux = true;
                }

                return bol_Aux;
            }
        }


        //TipoCompraVenta
        public string TipoCompraVenta_Codigo { get; set; }
        public string TipoCompraVenta_Descripcion { get; set; }
        public string TipoCompraVenta_Opcion { get; set; }
        public DateTime? TipoCompraVenta_FechaBorrado { get; set; }
        public string TipoCompraVenta
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //Almacen
        public string Almacen_Codigo { get; set; }
        public string Almacen_Descripcion { get; set; }
        public DateTime? Almacen_FechaBorrado { get; set; }
        public string Almacen
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        #region  Embalaje principal
        public MAE_Embalajes EmbalajePrincipal_Modelo { get; set; }
        public string EmbalajePrincipal
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }
        #endregion

        #region  EmbalajeRelacional
        public MAE_Embalajes EmbalajeRelacional_Modelo { get; set; }
        public string EmbalajeRelacional
        {
            get
            {
                string str_Aux = "";

                if (EmbalajeRelacional_Modelo != null)
                {

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

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

                return str_Aux;
            }
        }
        #endregion

        #region  NomenclaturaPrecio
        public MAE_NomenclaturasPrecios NomenclaturaPrecio_Modelo { get; set; }
        public string NomenclaturaPrecio
        {
            get
            {
                string str_Aux = "";

                if (NomenclaturaPrecio_Modelo != null)
                {

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

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

                return str_Aux;
            }
        }
        #endregion

        //Precio por SegundaUnidad
        public bool PrecioPorSegundaUnidad
        {
            get
            {
                bool bol_PrecioSegundaUnidad = false;

                //Descripcion
                if (segundaUnidad_Precio_Cantidad_SegundaUnidad != null && 
                    segundaUnidad_Precio_Cantidad_SegundaUnidad.Value == 1)
                {
                    bol_PrecioSegundaUnidad = true;
                }

                return bol_PrecioSegundaUnidad;
            }
        }

    }
}
