Fix GRN pricing
This commit is contained in:
@@ -13,20 +13,32 @@ public record GrnItemRequest(
|
||||
// Populated only when the item has TracksSerialNumbers set — must contain exactly AcceptedQuantity entries.
|
||||
List<string>? SerialNumbers = null,
|
||||
// Set for a direct receipt line (no purchase order).
|
||||
Guid? ItemId = null);
|
||||
Guid? ItemId = null,
|
||||
// Cost per base-UOM unit. Null on a PO line falls back to the PO line's unit cost; null on a direct line is 0.
|
||||
decimal? UnitCost = null,
|
||||
// Null falls back to the GRN-wide percentage.
|
||||
decimal? DiscountPercent = null,
|
||||
decimal? VatPercent = null,
|
||||
// Free-issue units: stocked but not costed. Serial/batch entries must cover accepted + free.
|
||||
int FreeQuantity = 0);
|
||||
|
||||
public record CreateGrnRequest(
|
||||
Guid WarehouseId,
|
||||
List<GrnItemRequest> Items,
|
||||
// TEMPORARY: required while auth doesn't resolve a logged-in user server-side — see testbug.md #28.
|
||||
Guid? ReceivedByUserId = null);
|
||||
Guid? ReceivedByUserId = null,
|
||||
// GRN-wide defaults for lines that don't set their own.
|
||||
decimal? DiscountPercent = null,
|
||||
decimal? VatPercent = null);
|
||||
|
||||
public record CreateFlatGrnRequest(
|
||||
Guid PurchaseOrderId,
|
||||
Guid WarehouseId,
|
||||
List<GrnItemRequest> Items,
|
||||
// TEMPORARY: required while auth doesn't resolve a logged-in user server-side — see testbug.md #28.
|
||||
Guid? ReceivedByUserId = null);
|
||||
Guid? ReceivedByUserId = null,
|
||||
decimal? DiscountPercent = null,
|
||||
decimal? VatPercent = null);
|
||||
|
||||
/// <summary>A goods receipt with no purchase order. SupplierId is optional.</summary>
|
||||
public record CreateDirectGrnRequest(
|
||||
@@ -34,7 +46,9 @@ public record CreateDirectGrnRequest(
|
||||
List<GrnItemRequest> Items,
|
||||
Guid? SupplierId = null,
|
||||
// TEMPORARY: required while auth doesn't resolve a logged-in user server-side — see testbug.md #28.
|
||||
Guid? ReceivedByUserId = null);
|
||||
Guid? ReceivedByUserId = null,
|
||||
decimal? DiscountPercent = null,
|
||||
decimal? VatPercent = null);
|
||||
|
||||
public record GrnBatchLineResponse(string? BatchNumber, DateTime? ExpiryDate, int Quantity);
|
||||
|
||||
@@ -47,7 +61,17 @@ public record GrnItemResponse(
|
||||
int AcceptedQuantity,
|
||||
int RejectedQuantity,
|
||||
List<GrnBatchLineResponse> Batches,
|
||||
List<string> SerialNumbers);
|
||||
List<string> SerialNumbers,
|
||||
decimal UnitCost,
|
||||
decimal DiscountPercent,
|
||||
decimal VatPercent,
|
||||
// Accepted qty x unit cost, before discount.
|
||||
decimal GrossAmount,
|
||||
decimal DiscountAmount,
|
||||
decimal VatAmount,
|
||||
// Gross - discount + VAT.
|
||||
decimal LineTotal,
|
||||
int FreeQuantity);
|
||||
|
||||
public record GrnResponse(
|
||||
Guid Id,
|
||||
@@ -59,4 +83,13 @@ public record GrnResponse(
|
||||
string? SupplierName,
|
||||
DateTime ReceivedAt,
|
||||
DateTime CreatedAt,
|
||||
List<GrnItemResponse> Items);
|
||||
List<GrnItemResponse> Items,
|
||||
decimal DiscountPercent,
|
||||
decimal VatPercent,
|
||||
// Sum of line gross amounts.
|
||||
decimal SubTotal,
|
||||
decimal DiscountAmount,
|
||||
// SubTotal - DiscountAmount (the base VAT is charged on).
|
||||
decimal TaxableAmount,
|
||||
decimal VatAmount,
|
||||
decimal TotalAmount);
|
||||
|
||||
Reference in New Issue
Block a user