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_General._0_Modelos
{
    public class INTERNO_GEN_Empresas_Listado_Modelo : GEN_Empresas
    {
        public INTERNO_GEN_Empresas_Listado_Modelo()
        { }

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

        }

        //Administracion
        public string Administracion_Codigo { get; set; }
        public string Administracion_Descripcion { get; set; }
        public DateTime? Administracion_FechaBorrado { get; set; }
        public string Administracion
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }

        #region  DIRECCION ENVIO
        public GEN_Direcciones DireccionEnvio { get; set; }
        public string DireccionEnvio_NombreVia
        {
            get
            {
                string str_Aux = "";

                if (DireccionEnvio != null)
                {
                    str_Aux = DireccionEnvio.nombreVia;
                }

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

                if (DireccionEnvio != null)
                {
                    str_Aux = DireccionEnvio.codigoPostal;
                }

                return str_Aux;
            }
        }

        //Pais
        public long DireccionEnvio_IdPais
        {
            get
            {
                long lng_Aux = -1;

                if (DireccionEnvio != null)
                {
                    lng_Aux = DireccionEnvio.idPais;
                }

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

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

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

                return str_Aux;
            }
        }

        //Provincia
        public long DireccionEnvio_IdProvincia
        {
            get
            {
                long lng_Aux = -1;

                if (DireccionEnvio != null)
                {
                    lng_Aux = DireccionEnvio.idProvincia;
                }

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

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

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

                return str_Aux;
            }
        }

        //Municipio
        public long DireccionEnvio_IdMunicipio
        {
            get
            {
                long lng_Aux = -1;

                if (DireccionEnvio != null && DireccionEnvio.idMunicipio != null)
                {
                    lng_Aux = DireccionEnvio.idMunicipio.Value;
                }

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

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

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

                return str_Aux;
            }
        }

        //Poblacion
        public long DireccionEnvio_IdPoblacion
        {
            get
            {
                long lng_Aux = -1;

                if (DireccionEnvio != null && DireccionEnvio.idPoblacion != null)
                {
                    lng_Aux = DireccionEnvio.idPoblacion.Value;
                }

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

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

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


                return str_Aux;
            }
        }

        //TipoVia
        public long DireccionEnvio_IdTipoVia
        {
            get
            {
                long lng_Aux = -1;

                if (DireccionEnvio != null && DireccionEnvio.idTipoVia != null)
                {
                    lng_Aux = DireccionEnvio.idTipoVia.Value;
                }

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

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

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


                return str_Aux;
            }
        }
        #endregion

        #region DIRECCION FACTURACION
        public GEN_Direcciones DireccionFacturacion { get; set; }
        public string DireccionFacturacion_NombreVia
        {
            get
            {
                string str_Aux = "";

                if (DireccionFacturacion != null)
                {
                    str_Aux = DireccionFacturacion.nombreVia;
                }

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

                if (DireccionFacturacion != null)
                {
                    str_Aux = DireccionFacturacion.codigoPostal;
                }

                return str_Aux;
            }
        }
        
        //Pais
        public long DireccionFacturacion_IdPais
        {
            get
            {
                long lng_Aux = -1;

                if (DireccionFacturacion != null)
                {
                    lng_Aux = DireccionFacturacion.idPais;
                }

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

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

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

                return str_Aux;
            }
        }

        //Provincia
        public long DireccionFacturacion_IdProvincia
        {
            get
            {
                long lng_Aux = -1;

                if (DireccionFacturacion != null)
                {
                    lng_Aux = DireccionFacturacion.idProvincia;
                }

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

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

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


                return str_Aux;
            }
        }

        //Municipio
        public long DireccionFacturacion_IdMunicipio
        {
            get
            {
                long lng_Aux = -1;

                if (DireccionFacturacion != null && DireccionFacturacion.idMunicipio != null)
                {
                    lng_Aux = DireccionFacturacion.idMunicipio.Value;
                }

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

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

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

                return str_Aux;
            }
        }

        //Poblacion
        public long DireccionFacturacion_IdPoblacion
        {
            get
            {
                long lng_Aux = -1;

                if (DireccionFacturacion != null && DireccionFacturacion.idPoblacion != null)
                {
                    lng_Aux = DireccionFacturacion.idPoblacion.Value;
                }

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

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

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

                return str_Aux;
            }
        }

        //TipoVia
        public long DireccionFacturacion_IdTipoVia
        {
            get
            {
                long lng_Aux = -1;

                if (DireccionFacturacion != null && DireccionFacturacion.idTipoVia != null)
                {
                    lng_Aux = DireccionFacturacion.idTipoVia.Value;
                }

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

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

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


                return str_Aux;
            }
        }
        #endregion

    }
}
