37 lines
1.4 KiB
C#
37 lines
1.4 KiB
C#
namespace PowderCoating.Core.Entities;
|
|
|
|
public class InvoiceItem : BaseEntity
|
|
{
|
|
public int InvoiceId { get; set; }
|
|
public int? SourceJobItemId { get; set; }
|
|
public int? CatalogItemId { get; set; } // set for merchandise line items
|
|
|
|
public string Description { get; set; } = string.Empty;
|
|
public decimal Quantity { get; set; }
|
|
public decimal UnitPrice { get; set; }
|
|
public decimal TotalPrice { get; set; }
|
|
public string? ColorName { get; set; }
|
|
public string? Notes { get; set; }
|
|
public int DisplayOrder { get; set; }
|
|
|
|
/// <summary>
|
|
/// Revenue account this line item is posted to.
|
|
/// Pulled from the catalog item at invoice creation time; null falls back to default revenue account.
|
|
/// </summary>
|
|
public int? RevenueAccountId { get; set; }
|
|
|
|
// Gift certificate sale fields
|
|
public bool IsGiftCertificate { get; set; } = false;
|
|
public string? GcRecipientName { get; set; }
|
|
public string? GcRecipientEmail { get; set; }
|
|
public DateTime? GcExpiryDate { get; set; }
|
|
public int? GeneratedGiftCertificateId { get; set; }
|
|
|
|
// Navigation
|
|
public virtual Invoice Invoice { get; set; } = null!;
|
|
public virtual JobItem? SourceJobItem { get; set; }
|
|
public virtual CatalogItem? CatalogItem { get; set; }
|
|
public virtual Account? RevenueAccount { get; set; }
|
|
public virtual GiftCertificate? GeneratedGiftCertificate { get; set; }
|
|
}
|