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(); }