using System;

namespace AyaNovaQBI
{
    internal class WorkOrderItemLabor
    {
        public long Id { get; set; }
        public uint Concurrency { get; set; }

        public long? UserId { get; set; }

        public string UserViz { get; set; }
        public DateTime? ServiceStartDate { get; set; }
        public DateTime? ServiceStopDate { get; set; }
        public long? ServiceRateId { get; set; }

        public string ServiceRateViz { get; set; }
        public string ServiceDetails { get; set; }

        public decimal ServiceRateQuantity { get; set; }

        public decimal NoChargeQuantity { get; set; }
        //public long? ServiceBankId { get; set; }
        public long? TaxCodeSaleId { get; set; }

        public string TaxCodeViz { get; set; }


        //Standard pricing fields (mostly to support printed reports though some show in UI)
        //some not to be sent with record depending on role (i.e. cost and charge in some cases)
        public decimal? PriceOverride { get; set; }//user entered manually overridden price, if null then ignored in calcs otherwise this *is* the price even if zero

        public decimal CostViz { get; set; }//cost from source record (e.g. serviceRate) or zero if no cost entered

        public decimal ListPriceViz { get; set; }//List price from source record (e.g. serviceRate) or zero if no cost entered

        public string UnitOfMeasureViz { get; set; }//"each", "hour" etc

        public decimal PriceViz { get; set; }//per unit price used in calcs after discounts or manual price if non-null or just ListPrice if no discount or manual override

        public decimal NetViz { get; set; }//quantity * price (before taxes line total essentially)

        public decimal TaxAViz { get; set; }//total amount of taxA

        public decimal TaxBViz { get; set; }//total amount of taxB

        public decimal LineTotalViz { get; set; }//line total netViz + taxes


        public long WorkOrderItemId { get; set; }


    }
}
