Files
ravenqbi/AyaNovaQBI/WorkOrderItemLoan.cs
2022-07-07 23:50:30 +00:00

70 lines
2.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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<string> Tags { get; set; } = new List<string>();
public string Name { get; set; }
public long WorkOrderItemId { get; set; }
}
}