using System; using System.Collections.Generic; namespace MMDAL.DTO.VendorComparison { // Ported from GB4 VendorComparisonDetailDTO (d:\GB4 Service\DAL\MMDAL\DTO\MMHead\VendorComparisonDTO.cs), // sourced by MMHeadQueryBuilder.GET_VENDOR_COMPARISON_DATA. One row per {Item, Sku, Party}. // // V1/V2/V3/V4/BestFit/Status(grid)/% grid columns from the legacy frontend form // (vendorselection.json) are intentionally NOT included — confirmed via full GB4 source search // that they were never backed by any SQL or DTO field; they were unimplemented placeholder // columns even in GB4, not a migration gap. public class VendorComparisonDetailDTO { public int ItemSlNo { get; set; } public int ItemId { get; set; } public string ItemCode { get; set; } = ""; public string ItemName { get; set; } = ""; public int SkuId { get; set; } public string SkuCode { get; set; } = ""; public string SkuName { get; set; } = ""; public decimal? Quantity { get; set; } public string? Remarks { get; set; } public int SlNo { get; set; } public int PartyId { get; set; } public string? PartyCode { get; set; } public string? PartyName { get; set; } public int? ItemPartyId { get; set; } public string? ItemPartyCode { get; set; } public string? ItemPartyName { get; set; } public int? LeadDays { get; set; } public decimal? LotSize { get; set; } public int? DeliveryRank { get; set; } public decimal? Moq { get; set; } public int? OverallRank { get; set; } public byte? PartyStatus { get; set; } public string? TxtPartyStatus { get; set; } public int? QualityRank { get; set; } public int? RateRank { get; set; } public decimal? SharePercentage { get; set; } public string? TxtModeOfDispatch { get; set; } public int? TransitDays { get; set; } public byte? Status { get; set; } public DateTime? EffectiveFrom { get; set; } public DateTime? EffectiveTo { get; set; } public decimal? Rate { get; set; } public decimal? NetCost { get; set; } public decimal? MrpRate { get; set; } public int? CurrencyId { get; set; } public string? CurrencyCode { get; set; } public string? CurrencyName { get; set; } public int? DocumentDetailId { get; set; } public int UomId { get; set; } public string? UomCode { get; set; } public string? UomName { get; set; } public string? PartyDetailRemarks { get; set; } public string? ReasonName { get; set; } public string? DocumentNumber { get; set; } public string? HeadRemarks { get; set; } public string? DeliveryInstructions { get; set; } public string? PaymentTerms { get; set; } public decimal? PendingQuantity { get; set; } // Historical quotation/PO comparison enrichment (GB4's `pp`/`oldqto`/`pod` outer applies). public string? QuotationDocumentNumber { get; set; } public int? QuotationDocumentId { get; set; } public decimal? NegatioblePrice { get; set; } public DateTime? QuotationDocumentDate { get; set; } public decimal? OldRate { get; set; } public decimal? QuotationValue { get; set; } public string? OldPartyCode { get; set; } public string? OldPartyName { get; set; } public DateTime? PODate { get; set; } public decimal? PORate { get; set; } public string? POPartyName { get; set; } public string? POPartyCode { get; set; } public string? SKUGrade { get; set; } public decimal? ConversionQuantity { get; set; } // Type=1 (Detail) only — attached to the first row after a separate charges query, // matching GB4's VendorComparisonDetailDTOs[0].VendorComparisonChargesArray exactly. public List? VendorComparisonChargesArray { get; set; } } }