60 lines
2.8 KiB
C#
60 lines
2.8 KiB
C#
using FruitBank.Common.Enums;
|
|
|
|
namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Models;
|
|
|
|
public class PreorderListRow
|
|
{
|
|
public int PreorderId { get; set; }
|
|
public int CustomerId { get; set; }
|
|
public string CustomerName { get; set; } = string.Empty;
|
|
public string CustomerEmail { get; set; } = string.Empty;
|
|
public string DateOfReceipt { get; set; } = string.Empty; // formatted
|
|
public string CreatedOnUtc { get; set; } = string.Empty; // formatted
|
|
public PreorderStatus Status { get; set; }
|
|
public string StatusLabel { get; set; } = string.Empty;
|
|
public int ItemCount { get; set; }
|
|
public int FulfilledCount { get; set; }
|
|
public int? OrderId { get; set; } // linked real order, if created
|
|
}
|
|
|
|
public class PreorderDetailModel
|
|
{
|
|
public int PreorderId { get; set; }
|
|
public int CustomerId { get; set; }
|
|
public string CustomerName { get; set; } = string.Empty;
|
|
public string CustomerEmail { get; set; } = string.Empty;
|
|
public string DateOfReceipt { get; set; } = string.Empty;
|
|
public string CreatedOnUtc { get; set; } = string.Empty;
|
|
public string UpdatedOnUtc { get; set; } = string.Empty;
|
|
public PreorderStatus Status { get; set; }
|
|
public string? CustomerNote { get; set; }
|
|
public int? OrderId { get; set; }
|
|
public List<PreorderDetailItemRow> Items { get; set; } = new();
|
|
}
|
|
|
|
public class PreorderDetailItemRow
|
|
{
|
|
public int ItemId { get; set; }
|
|
public int ProductId { get; set; }
|
|
public string ProductName { get; set; } = string.Empty;
|
|
public bool IsMeasurable { get; set; }
|
|
public int RequestedQuantity { get; set; }
|
|
public int FulfilledQuantity { get; set; }
|
|
public decimal UnitPriceInclTax { get; set; }
|
|
public PreorderItemStatus Status { get; set; }
|
|
public string StatusLabel { get; set; } = string.Empty;
|
|
}
|
|
|
|
public class PreorderDemandRow
|
|
{
|
|
public int ProductId { get; set; }
|
|
public string ProductName { get; set; } = string.Empty;
|
|
public string? Sku { get; set; }
|
|
public bool IsMeasurable { get; set; }
|
|
public int TotalRequested { get; set; } // sum of RequestedQuantity
|
|
public int TotalFulfilled { get; set; } // sum of FulfilledQuantity
|
|
public int TotalUnfulfilled { get; set; } // TotalRequested - TotalFulfilled
|
|
public int PreorderCount { get; set; } // distinct preorders containing this product
|
|
public decimal AvgUnitPrice { get; set; } // average snapshot price
|
|
}
|