using System; using System.Collections.Generic; namespace AyaNovaQBI { internal enum LoanUnitRateUnit : int { None = 0, Hours = 1, HalfDays = 2, Days = 3, Weeks = 4, Months = 5, Years = 6 } internal class WorkOrderItemLoan { public long Id { get; set; } public uint Concurrency { get; set; } public string Notes { get; set; } public DateTime? OutDate { get; set; } public DateTime? DueDate { get; set; } public DateTime? ReturnDate { get; set; } // // public decimal Charges { get; set; }//removed in favor of ListPRice snapshot which normalizes fields to other objects public long? TaxCodeId { get; set; } public string TaxCodeViz { get; set; } public long LoanUnitId { get; set; } public string LoanUnitViz { get; set; } public decimal Quantity { get; set; } public LoanUnitRateUnit Rate { get; set; } public decimal Cost { get; set; }//cost from source record (e.g. serviceRate) or zero if no cost entered public decimal ListPrice { get; set; }//List price from source record (e.g. serviceRate) or zero if no cost entered //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 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 //workaround for notification public List Tags { get; set; } = new List(); public string Name { get; set; } public long WorkOrderItemId { get; set; } } }