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_Maestros
{
    public class INTERNO_MAE_Articulos_Listado_Modelo : MAE_Articulos
    {
        public INTERNO_MAE_Articulos_Listado_Modelo()
        { }

        public bool Seleccionar { get; set; }

        public long codigo_Long
        {
            get
            {
                long lng_Codigo = 0;
                if (Funciones.IsNumeric(codigo))
                {
                    lng_Codigo = long.Parse(codigo);
                }
                return lng_Codigo;
            }

        }

        public long? idEmbalaje_AUXILIAR { get; set; }//Solo se utiliza por si al buscar por F3, encuentra un articulo por codigosAsociados y tiene un embalaje por defecto

        //ImpuestoTipo
        public string ImpuestoTipo_Codigo { get; set; }
        public string ImpuestoTipo_Descripcion { get; set; }
        public DateTime? ImpuestoTipo_FechaBorrado { get; set; }
        public string Impuestotipo
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //RetencionTipo_Venta
        public string RetencionTipo_Venta_Codigo { get; set; }
        public string RetencionTipo_Venta_Descripcion { get; set; }
        public DateTime? RetencionTipo_Venta_FechaBorrado { get; set; }
        public string RetencionTipo_Venta
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //RetencionTipo_Compra
        public string RetencionTipo_Compra_Codigo { get; set; }
        public string RetencionTipo_Compra_Descripcion { get; set; }
        public DateTime? RetencionTipo_Compra_FechaBorrado { get; set; }
        public string RetencionTipo_Compra
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

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

        //MedidaCompra
        public string MedidaCompra_Codigo { get; set; }
        public string MedidaCompra_Descripcion { get; set; }
        public DateTime? MedidaCompra_FechaBorrado { get; set; }
        public string MedidaCompra
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //MedidaVenta
        public string MedidaVenta_Codigo { get; set; }
        public string MedidaVenta_Descripcion { get; set; }
        public DateTime? MedidaVenta_FechaBorrado { get; set; }
        public string MedidaVenta
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //MayorCompras
        public string MayorCompras_Codigo { get; set; }
        public string MayorCompras_Descripcion { get; set; }
        public DateTime? MayorCompras_FechaBorrado { get; set; }
        public string MayorCompras
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //MayorVentas
        public string MayorVentas_Codigo { get; set; }
        public string MayorVentas_Descripcion { get; set; }
        public DateTime? MayorVentas_FechaBorrado { get; set; }
        public string MayorVentas
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //TipoProducto
        public string TipoProducto_Codigo { get; set; }
        public string TipoProducto_Descripcion { get; set; }
        public DateTime? TipoProducto_FechaBorrado { get; set; }
        public string TipoProducto
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //Proveedor
        public string Proveedor_Codigo { get; set; }
        public string Proveedor_Descripcion { get; set; }
        public DateTime? Proveedor_FechaBorrado { get; set; }
        public string Proveedor
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //Departamento
        public string Departamento_Codigo { get; set; }
        public string Departamento_Descripcion { get; set; }
        public DateTime? Departamento_FechaBorrado { get; set; }
        public string Departamento
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        //ArticuloTotalizado
        public string ArticuloTotalizado_Codigo { get; set; }
        public string ArticuloTotalizado_Descripcion { get; set; }
        public DateTime? ArticuloTotalizado_FechaBorrado { get; set; }
        public string ArticuloTotalizado
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        public string TipoTrazabilidadEntrada_Texto
        {
            get
            {
                string str_TipoTrazabilidad = Variables.G_MDL_TIPOSTRAZABILIDAD_SINTRAZABILIDAD.Descripcion;

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

                return str_TipoTrazabilidad;
            }
        }

        public string TipoTrazabilidadSalida_Texto
        {
            get
            {
                string str_TipoTrazabilidad = Variables.G_MDL_TIPOSTRAZABILIDAD_SINTRAZABILIDAD.Descripcion;

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

                return str_TipoTrazabilidad;
            }
        }

        public string TipoPrecio_Texto
        {
            get
            {
                string str_TipoPrecio = Variables.G_MDL_TIPOPRECIO_FIJO.Descripcion;

                if (tipoPrecio != null)
                {
                    if (tipoPrecio.Equals(Variables.G_MDL_TIPOPRECIO_LIBRE.Codigo))
                    {
                        str_TipoPrecio = Variables.G_MDL_TIPOPRECIO_LIBRE.Descripcion;
                    }
                }

                return str_TipoPrecio;
            }
        }
    }
}
