using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Exferia_Aplicacion.Modelos_Existencias
{
    public class INTERNO_INF_MovimientosArticulos_Listado_Modelo : ICloneable
    {
        public INTERNO_INF_MovimientosArticulos_Listado_Modelo()
        { }

        //Fecha
        public DateTime? Fecha { get; set; }

        //TipoDocumento
        public string TipoDocumento { get; set; }

        //TipoCompraVenta
        public string TipoCompraVenta { get; set; }
        public string TipoCompraVenta_Opcion { get; set; }

        //Delegacion
        public long Delegacion_Id { get; set; }
        public string Delegacion_Codigo { get; set; }
        public string Delegacion_Descripcion { 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;
            }
        }

        //Almacen
        public long Almacen_Id { get; set; }
        public string Almacen_Codigo { get; set; }
        public string Almacen_Descripcion { 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;
            }
        }

        //Ubicacion
        public long? Ubicacion_Id { get; set; }
        public string Ubicacion_Codigo { get; set; }
        public string Ubicacion_Descripcion { get; set; }
        public string Ubicacion_TipoFuncion { get; set; }
        public string Ubicacion
        {
            get
            {
                string str_Aux = "";

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

                    //Descripcion
                    if (Ubicacion_Descripcion != null && Ubicacion_Descripcion.Trim().Length > 0)
                    {
                        str_Aux += Ubicacion_Descripcion;
                    }
                }
                else
                {
                    str_Aux = "SIN UBICACION";
                }

                return str_Aux;
            }
        }

        //Documento
        public long? Documento { get; set; }

        //Cantidad
        public decimal? Cantidad { get; set; }

        //Cantidad_SegundaUnidad
        public decimal? Cantidad_SegundaUnidad { get; set; }

        //Relacion
        public decimal Relacion { get; set; }

        //Operacion
        public string Operacion { get; set; }

        //Calculada_Cantidad
        public decimal? Calculada_Cantidad { get; set; }

        //Calculada_Cantidad_SegundaUnidad
        public decimal? Calculada_Cantidad_SegundaUnidad { get; set; }

        public object Clone()
        {
            return MemberwiseClone(); 
        }
    }
}
