namespace Admin.NET.Plugin.AiDOP.MaterialWarehouse.InventoryPosting.Receipt;
///
/// 标准化「IQC 合格收货」命令(C2 输入)。由上游 C1 判定 + Phase 4 幂等认领 + 取号后构造。
/// 对齐 Phase 6A LIVE 取证:IQC 收货 TransType=`rct-po`(进可用库存),留样另加 `iss-unp`(负数)。
///
public sealed class IqcAcceptedReceipt
{
public long TenantId { get; set; }
public string DomainCode { get; set; } = string.Empty;
/// Phase 4 过账头 Id(幂等锚)。
public long PostingId { get; set; }
/// 本次过账事务组 Id(同批流水共用)。
public long TransactionGroupId { get; set; }
/// 新收货号(C4 取号 @RctNbr)→ 流水 OrderNbr。
public string RctNbr { get; set; }
public string ItemNum { get; set; } = string.Empty;
public string Location { get; set; } = string.Empty;
public string LotSerial { get; set; } = string.Empty;
public string Refs { get; set; } = string.Empty;
/// 接受收货数(= @QtyAcc)。
public decimal AcceptedQty { get; set; }
/// 留样数(InsSampleQty=CompQty+QtyIssued;0=无留样)。
public decimal SampleQty { get; set; }
public decimal UmConversion { get; set; } = 1m;
// C6 回写与追溯
public string PurOrd { get; set; }
public int PurLine { get; set; }
public string Potype { get; set; }
/// 采购订购数(QtyOrded,C6 对账用;由上游读 PurOrdDetail 提供)。
public decimal OrderedQty { get; set; }
/// 变动前已收数(PurOrdDetail.RctQty,C6 对账用)。
public decimal BeforeReceivedQty { get; set; }
/// 已退货数(PurOrdDetail.QtyReturned,C6 完成判据用)。
public decimal ReturnedQty { get; set; }
public string WorkOrd { get; set; }
public string RctQcNbr { get; set; }
public string Receiver { get; set; }
public string Fbillno { get; set; }
public string User { get; set; }
// 留样前置(LIVE 744-762 单独 Guard)
public string CheckNo { get; set; }
public string CostCtr { get; set; }
}
/// 一次 IQC 过账的库存命令批(Phase 6A:先构完整 batch 再一次性调 C5)。
public sealed class InventoryPostingBatch
{
public List Commands { get; } = new();
}