namespace DXPDAL.VendorPo; // Read-only projection of TMMHEAD, in the TENANT's own database — DXP reads this directly via // parameterized SQL (GB5 modules share one physical per-tenant database; this is the same kind // of direct cross-module read DXP already does against MPARTY/MPARTYBRANCH), never through MM's // HTTP API. Only the fields the Vendor Portal PO list/detail screens actually need — not the // full 200+-column set MM's own GetMMHead returns internally. public class VendorPoDTO { public int MMHeadId { get; set; } public int BizTransactionTypeId { get; set; } public int OUId { get; set; } public DateTime MMHeadDate { get; set; } public string MMHeadNumber { get; set; } = string.Empty; public int PartyId { get; set; } public int? PartyBranchId { get; set; } public decimal MMHeadTotalNetValue { get; set; } public byte MMHeadStatus { get; set; } public short MMHeadVersion { get; set; } public List Details { get; set; } = new(); // ── Populated by DXP, not TMMHEAD (joined from TDXPPOACKNOWLEDGEMENT) ── public bool IsAcknowledged { get; set; } public DateTime? AcknowledgedOn { get; set; } } public class VendorPoDetailDTO { public int MMDetailId { get; set; } public int DocumentId { get; set; } public short MMDetailSlNo { get; set; } public int ItemId { get; set; } public decimal MMDetailTransactionQuantity { get; set; } public decimal MMDetailRate { get; set; } public int TransactionUOMId { get; set; } // carried forward onto the ASN line — dispatched in the same UOM as ordered (Phase 1.4) }