Add GRN batch and serial tracking
This commit is contained in:
@@ -1,6 +1,19 @@
|
||||
namespace Distribution.Features.Grn;
|
||||
|
||||
public record GrnItemRequest(Guid PurchaseOrderItemId, int AcceptedQuantity, int RejectedQuantity);
|
||||
/// <summary>BatchNumber is null for an expiry-only lot (TracksExpiryDate without TracksBatches).</summary>
|
||||
public record GrnBatchLineRequest(string? BatchNumber, DateTime? ExpiryDate, int Quantity);
|
||||
|
||||
public record GrnItemRequest(
|
||||
// Set for a PO-based receipt; null for a direct receipt (ItemId is used instead).
|
||||
Guid? PurchaseOrderItemId,
|
||||
int AcceptedQuantity,
|
||||
int RejectedQuantity,
|
||||
// Populated only when the item has TracksBatches and/or TracksExpiryDate set.
|
||||
List<GrnBatchLineRequest>? Batches = null,
|
||||
// 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);
|
||||
|
||||
public record CreateGrnRequest(
|
||||
Guid WarehouseId,
|
||||
@@ -15,21 +28,35 @@ public record CreateFlatGrnRequest(
|
||||
// TEMPORARY: required while auth doesn't resolve a logged-in user server-side — see testbug.md #28.
|
||||
Guid? ReceivedByUserId = null);
|
||||
|
||||
/// <summary>A goods receipt with no purchase order. SupplierId is optional.</summary>
|
||||
public record CreateDirectGrnRequest(
|
||||
Guid WarehouseId,
|
||||
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);
|
||||
|
||||
public record GrnBatchLineResponse(string? BatchNumber, DateTime? ExpiryDate, int Quantity);
|
||||
|
||||
public record GrnItemResponse(
|
||||
Guid Id,
|
||||
Guid PurchaseOrderItemId,
|
||||
Guid? PurchaseOrderItemId,
|
||||
Guid ItemId,
|
||||
string Sku,
|
||||
string ItemName,
|
||||
int AcceptedQuantity,
|
||||
int RejectedQuantity);
|
||||
int RejectedQuantity,
|
||||
List<GrnBatchLineResponse> Batches,
|
||||
List<string> SerialNumbers);
|
||||
|
||||
public record GrnResponse(
|
||||
Guid Id,
|
||||
Guid PurchaseOrderId,
|
||||
Guid? PurchaseOrderId,
|
||||
Guid ReceivedByUserId,
|
||||
Guid WarehouseId,
|
||||
string WarehouseName,
|
||||
Guid? SupplierId,
|
||||
string? SupplierName,
|
||||
DateTime ReceivedAt,
|
||||
DateTime CreatedAt,
|
||||
List<GrnItemResponse> Items);
|
||||
|
||||
Reference in New Issue
Block a user