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_Volcado
{
    public class INTERNO_COM_FacturasCabecera_Volcado_Modelo : COM_FacturasCabecera
    {
        public INTERNO_COM_FacturasCabecera_Volcado_Modelo()
        { }

        #region Albaranes
        public decimal? Total_BaseImponible_Albaranes { get; set; }
        public decimal? Total_Albaranes { get; set; }
        public decimal? Total_Bruto_Albaranes { get; set; }

        public decimal Diferencia_Bruto_EntradaMercancia_Factura
        {
            get
            {
                decimal dcm_Diferencia = 0m;

                try
                {
                    dcm_Diferencia = (Total_Bruto_Albaranes != null ? Total_Bruto_Albaranes.Value : 0m) - (total_bruto != null ? total_bruto.Value : 0m);
                }
                catch (Exception ex)
                {
                    Control_Errores.Errores_Log("", ex, nameof(INTERNO_COM_FacturasCabecera_Volcado_Modelo) + "/" + nameof(Diferencia_Bruto_EntradaMercancia_Factura));
                }

                return dcm_Diferencia;
            }

        }

        public decimal Diferencia_BaseImponible_EntradaMercancia_Factura  
        {
            get
            {
                decimal dcm_Diferencia=0m;

                try
                {
                    dcm_Diferencia = (Total_BaseImponible_Albaranes!=null? Total_BaseImponible_Albaranes.Value : 0m) - (total_baseImponible != null ? total_baseImponible.Value : 0m);
                }
                catch (Exception ex)
                {
                    Control_Errores.Errores_Log("", ex, nameof(INTERNO_COM_FacturasCabecera_Volcado_Modelo) + "/" + nameof(Diferencia_BaseImponible_EntradaMercancia_Factura));
                }

                return dcm_Diferencia;
            }

        }

        public decimal Diferencia_Total_EntradaMercancia_Factura
        {
            get
            {
                decimal dcm_Diferencia = 0m;

                try
                {
                    dcm_Diferencia = (Total_Albaranes != null ? Total_Albaranes.Value : 0m) - total;
                }
                catch (Exception ex)
                {
                    Control_Errores.Errores_Log("", ex, nameof(INTERNO_COM_FacturasCabecera_Volcado_Modelo) + "/" + nameof(Diferencia_Total_EntradaMercancia_Factura));
                }

                return dcm_Diferencia;
            }

        }

        
        #endregion
    }
}
