namespace MMDAL.DTO.StockReservation; public class StockReservationDTO { // Identity public int StockReservationId { get; set; } public int TenantId { get; set; } public int OUId { get; set; } public int? PeriodId { get; set; } public string? ReservationNumber { get; set; } public DateTime? ReservationDate { get; set; } // Classification public byte ReservationMode { get; set; } public byte ReservationStatus { get; set; } public byte ReservationSource { get; set; } public byte AssignmentLevel { get; set; } // FOR Side (Demand being reserved for) public int? ForObjectHeaderTypeId { get; set; } public int? ForObjectHeaderId { get; set; } public int? ForObjectTypeId { get; set; } public int? ForObjectId { get; set; } public int? ForAllotedAllocationId { get; set; } public int? ForBizTransactionTypeId { get; set; } public DateTime? ForDate { get; set; } public int? ForSlNo { get; set; } // Item Details public int? ItemId { get; set; } public int? SKUId { get; set; } public int? LotId { get; set; } public int? PackId { get; set; } public int? StoreId { get; set; } // FROM Side (Stock source) public int? FromObjectHeaderTypeId { get; set; } public int? FromObjectHeaderId { get; set; } public int? FromObjectTypeId { get; set; } public int? FromObjectId { get; set; } public int? FromAllotedAllocationId { get; set; } public int? FromBizTransactionTypeId { get; set; } // Quantities public decimal ReservedQuantity { get; set; } public decimal IssuedQuantity { get; set; } public decimal BalanceQuantity => ReservedQuantity - IssuedQuantity; // MRP Linkage public int? MrpRunId { get; set; } public int? MrpRunDetailId { get; set; } // Lot Lock public int IsLotLocked { get; set; } // Free Track public int IsFreeTracked { get; set; } public string? FreeTrackReason { get; set; } public DateTime? FreeTrackedOn { get; set; } public int? FreeTrackById { get; set; } // Auto Link public int IsAutoLinked { get; set; } public int? LinkedPoTypeId { get; set; } public int? LinkedPoId { get; set; } // Subcontracting public int? SubconObjectHeaderTypeId { get; set; } public int? SubconObjectHeaderId { get; set; } public string? SubconLocation { get; set; } public DateTime? SubconSentOut { get; set; } public DateTime? SubconExpectedReturn { get; set; } // Soft Delete public int IsDeleted { get; set; } public DateTime? DeletedOn { get; set; } public int? DeletedById { get; set; } public string? DeleteReason { get; set; } // Audit public short Version { get; set; } public int CreatedById { get; set; } public DateTime CreatedOn { get; set; } public int ModifiedById { get; set; } public DateTime ModifiedOn { get; set; } // ============= DISPLAY FIELDS (from JOINs) ============= // OU Display Fields (MORGANIZATIONUNIT) public string? OUCode { get; set; } // ORGANIZATIONUNITCODE public string? OUName { get; set; } // ORGANIZATIONUNITNAME // Period Display Fields (MPERIOD) public string? PeriodCode { get; set; } // PERIODCODE public string? PeriodName { get; set; } // PERIODNAME // Item Display Fields (MITEM) public string? ItemCode { get; set; } // ITEMCODE public string? ItemName { get; set; } // ITEMNAME // SKU Display Fields (MSKU) public string? SKUCode { get; set; } // SKUCODE public string? SKUName { get; set; } // SKUNAME // Lot Display Fields (TLOT) public string? LotNumber { get; set; } // LOTNUMBER // Pack Display Fields (MPACK) public string? PackCode { get; set; } // PACKCODE public string? PackName { get; set; } // PACKNAME // Store Display Fields (MSTORE) public string? StoreCode { get; set; } // STORECODE public string? StoreName { get; set; } // STORENAME // User Display Fields (MUSER) public string? CreatedByUserName { get; set; } // USERNAME public string? ModifiedByUserName { get; set; } // USERNAME public string? DeletedByUserName { get; set; } // USERNAME public string? FreeTrackByUserName { get; set; } // USERNAME // Document Type Display Fields (MDOCUMENTTYPE) public string? ForObjectHeaderTypeName { get; set; } // DOCUMENTTYPENAME public string? FromObjectHeaderTypeName { get; set; } // DOCUMENTTYPENAME public string? LinkedPoTypeName { get; set; } // DOCUMENTTYPENAME public string? SubconObjectHeaderTypeName { get; set; } // DOCUMENTTYPENAME // Document Set Display Fields (MDOCUMENTSET) public string? ForObjectHeaderName { get; set; } // DOCUMENTSETNAME public string? FromObjectHeaderName { get; set; } // DOCUMENTSETNAME public string? SubconObjectHeaderName { get; set; } // DOCUMENTSETNAME // Entity Type Display Fields (MENTITY) public string? ForObjectTypeName { get; set; } // ENTITYNAME public string? FromObjectTypeName { get; set; } // ENTITYNAME // Object Display Fields (Self-reference to TRESERVATION) public string? ForObjectReservationNumber { get; set; } // RESERVATIONNUMBER public string? FromObjectReservationNumber { get; set; } // RESERVATIONNUMBER // Allocation Display Fields (MALLOCATION) public string? ForAllocationCode { get; set; } // ALLOCATIONNAME public string? FromAllocationCode { get; set; } // ALLOCATIONNAME // Biz Transaction Type Display Fields (MBIZTRANSACTIONTYPE) public string? ForBizTransactionTypeName { get; set; } // BIZTRANSACTIONTYPENAME public string? FromBizTransactionTypeName { get; set; } // BIZTRANSACTIONTYPENAME // MRP Run Display Fields (TMRPRUN) public string? MrpRunCode { get; set; } // MRPRUNID (cast to string) public string? MrpRunName { get; set; } // MRPID (cast to string) }