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_Ventas._0_Modelos
{
    public class INTERNO_VTA_AlbaranesCabecera_Bolsa_Listado_Modelo : VTA_AlbaranesCabecera
    {
        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;
                }
                else if (estado.Equals(Variables.G_STR_ESTADO_CONTABILIDAD_VOLCADO))
                {
                    str_Estado_Texto = Variables.G_STR_ESTADO_CONTABILIDAD_VOLCADO_TEXTO;
                }
                return str_Estado_Texto;
            }
        }

        public string SituacionPago_Texto
        {
            get
            {
                string str_Situacion_Texto = Variables.G_MDL_TIPOSITUACIONPAGO_ALBARAN_PENDIENTE.Descripcion;

                if (situacionPago.ToString().Equals(Variables.G_MDL_TIPOSITUACIONPAGO_ALBARAN_PARTEPENDIENTE.Codigo))
                {
                    str_Situacion_Texto = Variables.G_MDL_TIPOSITUACIONPAGO_ALBARAN_PARTEPENDIENTE.Descripcion;
                }
                else if (situacionPago.ToString().Equals(Variables.G_MDL_TIPOSITUACIONPAGO_ALBARAN_PAGADO.Codigo))
                {
                    str_Situacion_Texto = Variables.G_MDL_TIPOSITUACIONPAGO_ALBARAN_PAGADO.Descripcion;
                }

                return str_Situacion_Texto;
            }
        }

        #region  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;
            }
        }
        #endregion

        #region 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;
            }
        }
        #endregion

        #region Cliente
        public string Cliente_Codigo { get; set; }
        public string Cliente_RazonSocial { get; set; }
        public string Cliente_NombreComercial { get; set; }
        public bool? Cliente_NoFacturar { get; set; }
        #endregion

        #region 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;
            }
        }
        #endregion

        #region 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;
            }
        }
        #endregion

        #region Relacion Cliente-Proveedor
        public long? RelacionClienteProveedor_id { get; set; }
        public long? RelacionClienteProveedor_idProveedor { get; set; }
        public string RelacionClienteProveedor_Codigo { get; set; }
        public string RelacionClienteProveedor_Descripcion { get; set; }
        public DateTime? RelacionClienteProveedor_FechaBorrado { get; set; }
        public string RelacionClienteProveedor
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }
        public bool Es_Servicio
        {
            get
            {
                bool bol_Aux = false;

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

                return bol_Aux;
            }
        }

        //Proveedor
        public string Proveedor_Codigo { get; set; }
        public string Proveedor_RazonSocial { get; set; }
        public string Proveedor_NombreComercial { 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_RazonSocial != null && Proveedor_RazonSocial.Trim().Length > 0)
                {
                    str_Aux += Proveedor_RazonSocial;
                }

                return str_Aux;
            }
        }
        #endregion

        #region 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;
            }
        }
        #endregion

        #region FormaPago
        public string FormaPago_Codigo { get; set; }
        public string FormaPago_Nombre { get; set; }
        public DateTime? FormaPago_FechaBorrado { get; set; }
        public string FormaPago
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }
        #endregion

        #region Vendedor_Preventa
        public string Vendedor_Preventa_Codigo { get; set; }
        public string Vendedor_Preventa_Nombre { get; set; }
        public DateTime? Vendedor_Preventa_FechaBorrado { get; set; }
        public string Vendedor_Preventa
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }
        #endregion

        #region Vendedor_PreventaHabitual
        public string Vendedor_PreventaHabitual_Codigo { get; set; }
        public string Vendedor_PreventaHabitual_Nombre { get; set; }
        public DateTime? Vendedor_PreventaHabitual_FechaBorrado { get; set; }
        public string Vendedor_PreventaHabitual
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }
        #endregion

        #region Vendedor_Repartidor
        public string Vendedor_Repartidor_Codigo { get; set; }
        public string Vendedor_Repartidor_Nombre { get; set; }
        public DateTime? Vendedor_Repartidor_FechaBorrado { get; set; }
        public string Vendedor_Repartidor
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }
        #endregion

        #region Vendedor_Cobrador
        public string Vendedor_Cobrador_Codigo { get; set; }
        public string Vendedor_Cobrador_Nombre { get; set; }
        public DateTime? Vendedor_Cobrador_FechaBorrado { get; set; }
        public string Vendedor_Cobrador
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }
        #endregion

        #region Vendedor_CobradorHabitual
        public string Vendedor_CobradorHabitual_Codigo { get; set; }
        public string Vendedor_CobradorHabitual_Nombre { get; set; }
        public DateTime? Vendedor_CobradorHabitual_FechaBorrado { get; set; }
        public string Vendedor_CobradorHabitual
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }
        #endregion

        #region Vendedor_Autoventa
        public string Vendedor_Autoventa_Codigo { get; set; }
        public string Vendedor_Autoventa_Nombre { get; set; }
        public DateTime? Vendedor_Autoventa_FechaBorrado { get; set; }
        public string Vendedor_Autoventa
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }
        #endregion

        #region PredefinidoCabecera (Albaran)
        public string PredefinidoCabeceraAlbaran_Codigo { get; set; }
        public string PredefinidoCabeceraAlbaran_Descripcion { get; set; }
        public DateTime? PredefinidoCabeceraAlbaran_FechaBorrado { get; set; }
        public string PredefinidoCabeceraAlbaran
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }
        #endregion

        #region PredefinidoCabecera (Servicio)
        public string PredefinidoCabeceraServicio_Codigo { get; set; }
        public string PredefinidoCabeceraServicio_Descripcion { get; set; }
        public DateTime? PredefinidoCabeceraServicio_FechaBorrado { get; set; }
        public string PredefinidoCabeceraServicio
        {
            get
            {
                string str_Aux = "";

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

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

                return str_Aux;
            }
        }
        #endregion

        #region 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;
            }
        }
        #endregion

        #region  Facturas
        public long? Facturas_Numero { get; set; }
        public DateTime? Facturas_Fecha { get; set; }
        public string Facturas
        {
            get
            {
                string str_Aux = "";

                //Fecha
                if (Facturas_Fecha != null)
                {
                    str_Aux = "(" + Facturas_Fecha.Value.ToString("dd/MM/yyyy") + ") ";
                }

                //Numero
                if (Facturas_Numero != null && Facturas_Numero.Value>-1)
                {
                    str_Aux += Facturas_Numero.Value.ToString();
                }

                return str_Aux;
            }
        }
        #endregion

        #region 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;
            }
        }
        #endregion

        #region Anexos

        public string Anexo_NumeroDocumentoManual
        {
            get
            {
                string str_Aux = "";

                if (VTA_AlbaranesCabecera_Anexos != null && VTA_AlbaranesCabecera_Anexos.FirstOrDefault() != null)
                {
                    str_Aux = VTA_AlbaranesCabecera_Anexos.FirstOrDefault().numeroDocumentoManual;
                }

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

                if (VTA_AlbaranesCabecera_Anexos != null && VTA_AlbaranesCabecera_Anexos.FirstOrDefault() != null)
                {
                    str_Aux = VTA_AlbaranesCabecera_Anexos.FirstOrDefault().numeroPedidoCliente;
                }

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

                if (VTA_AlbaranesCabecera_Anexos != null && VTA_AlbaranesCabecera_Anexos.FirstOrDefault() != null)
                {
                    str_Aux = VTA_AlbaranesCabecera_Anexos.FirstOrDefault().identicket;
                }

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

                if (VTA_AlbaranesCabecera_Anexos != null && VTA_AlbaranesCabecera_Anexos.FirstOrDefault() != null)
                {
                    str_Aux = VTA_AlbaranesCabecera_Anexos.FirstOrDefault().seccion;
                }

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

                if (VTA_AlbaranesCabecera_Anexos != null && VTA_AlbaranesCabecera_Anexos.FirstOrDefault() != null)
                {
                    str_Aux = VTA_AlbaranesCabecera_Anexos.FirstOrDefault().departamento;
                }

                return str_Aux;
            }
        }

        #endregion

    }
}
