using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MMDAL.DTO.Routing { public class RoutingVersionDetailDTO { private int routingversiondetailid; private int routingversionid; private Int16 routingversiondetailslno; private string routingversiondetailstage; private string routingversiondetailstep; #region Process private int processid; private string processcode; private string processname; private byte processratetype; private decimal proccharges; #endregion private Int16 routingversiondetailpathslno; private byte routingversiondetailpathtype; private string routingversiondetailpath; private string routingversiondetailsplitormergeslnos; private int currencyid=-1; private string currencycode; private string currencyname; private int partybranchid; private string partybranchcode; private string partybranchname; private int partybranchpartybranchpartyid; private string partybranchpartybranchpartyname; private int workcenterid; private string workcentercode; private string workcentername; private int workcenterinchargeid; private string workcenterinchargename; private int rateperuomid; private string rateperuomcode; private string rateperuomname; private byte routingversiondetaillocationtype; private double routingversiondetailpreprocessingleadtime; private double routingversiondetailfixedleadtime; private double routingversiondetailleadtimelotsize; private double routingversiondetailvariableleadtime; private double routingversiondetailprocessingleadtime; private double routingversiondetailpostprocessingleadtime; private double routingversiondetailmanufacturingleadtime; private byte routingversiondetailleadtimeuom; private byte routingversiondetailratetype; private double routingversiondetailstandaredrate; private double routingversiondetailrate; private double routingversiondetailconversion; private double routingversiondetailvariablequantity; private int outputitemid; private string outputitemcode; private string outputitemname; private int outputskuid; private string outputskucode; private string outputskuname; private byte routingversiondetailbatchtype; private int lottypeid=-1; private string lottypename; private int parametersetid=-1; private string parametersetcode; private string parametersetname; private List routingoperationarray = new List(); private byte routingversiondetailsplits=1; private double routingversiondetailminimumsplitduration = 0; private string routingversiondetailpredecessor=""; private string routingversiondetailremarks = ""; private int rejectionpercentage; public int RoutingVersionDetailId { get { return routingversiondetailid; } set { routingversiondetailid = value; } } public int RoutingVersionId { get { return routingversionid; } set { routingversionid = value; } } public Int16 RoutingVersionDetailSlNo { get { return routingversiondetailslno; } set { routingversiondetailslno = value; } } public string RoutingVersionDetailStage { get { return routingversiondetailstage; } set { routingversiondetailstage = value; } } public string RoutingVersionDetailStep { get { return routingversiondetailstep; } set { routingversiondetailstep = value; } } public int ProcessId { get { return processid; } set { processid = value; } } public string ProcessCode { get { return processcode; } set { processcode = value; } } public string ProcessName { get { return processname; } set { processname = value; } } public byte ProcessRateType { get { return processratetype; } set { processratetype = value; } } public decimal ProcCharges { get { return proccharges; } set { proccharges = value; } } public Int16 RoutingVersionDetailPathSlNo { get { return routingversiondetailpathslno; } set { routingversiondetailpathslno = value; } } public byte RoutingVersionDetailPathType { get { return routingversiondetailpathtype; } set { routingversiondetailpathtype = value; } } public string RoutingVersionDetailPath { get { return routingversiondetailpath; } set { routingversiondetailpath = value; } } public string RoutingVersionDetailSplitOrMergeSlNos { get { return routingversiondetailsplitormergeslnos; } set { routingversiondetailsplitormergeslnos = value; } } public int CurrencyId { get { return currencyid; } set { currencyid = value; } } public string CurrencyCode { get { return currencycode; } set { currencycode = value; } } public string CurrencyName { get { return currencyname; } set { currencyname = value; } } public int PartyBranchId { get { return partybranchid; } set { partybranchid = value; } } public string PartyBranchCode { get { return partybranchcode; } set { partybranchcode = value; } } public string PartyBranchName { get { return partybranchname; } set { partybranchname = value; } } public int PartyBranchPartyBranchPartyId { get { return partybranchpartybranchpartyid; } set { partybranchpartybranchpartyid = value; } } public string PartyBranchPartyBranchPartyName { get { return partybranchpartybranchpartyname; } set { partybranchpartybranchpartyname = value; } } public int WorkCenterId { get { return workcenterid; } set { workcenterid = value; } } public string WorkCenterCode { get { return workcentercode; } set { workcentercode = value; } } public string WorkCenterName { get { return workcentername; } set { workcentername = value; } } public int WorkCenterInchargeId { get { return workcenterinchargeid; } set { workcenterinchargeid = value; } } public string WorkCenterInchargeName { get { return workcenterinchargename; } set { workcenterinchargename = value; } } public int RatePerUOMId { get { return rateperuomid; } set { rateperuomid = value; } } public string RatePerUOMCode { get { return rateperuomcode; } set { rateperuomcode = value; } } public string RatePerUOMName { get { return rateperuomname; } set { rateperuomname = value; } } public byte RoutingVersionDetailLocationType { get { return routingversiondetaillocationtype; } set { routingversiondetaillocationtype = value; } } public double RoutingVersionDetailPreProcessingLeadTime { get { return routingversiondetailpreprocessingleadtime; } set { routingversiondetailpreprocessingleadtime = value; } } public double RoutingVersionDetailFixedLeadTime { get { return routingversiondetailfixedleadtime; } set { routingversiondetailfixedleadtime = value; } } public double RoutingVersionDetailLeadTimeLotSize { get { return routingversiondetailleadtimelotsize; } set { routingversiondetailleadtimelotsize = value; } } public double RoutingVersionDetailVariableLeadTime { get { return routingversiondetailvariableleadtime; } set { routingversiondetailvariableleadtime = value; } } public double RoutingVersionDetailProcessingLeadTime { get { return routingversiondetailprocessingleadtime; } set { routingversiondetailprocessingleadtime = value; } } public double RoutingVersionDetailPostProcessingLeadTime { get { return routingversiondetailpostprocessingleadtime; } set { routingversiondetailpostprocessingleadtime = value; } } public double RoutingVersionDetailManufacturingLeadTime { get { return routingversiondetailmanufacturingleadtime; } set { routingversiondetailmanufacturingleadtime = value; } } public byte RoutingVersionDetailLeadTimeUOM { get { return routingversiondetailleadtimeuom; } set { routingversiondetailleadtimeuom = value; } } public byte RoutingVersionDetailRateType { get { return routingversiondetailratetype; } set { routingversiondetailratetype = value; } } public double RoutingVersionDetailStandaredRate { get { return routingversiondetailstandaredrate; } set { routingversiondetailstandaredrate = value; } } public double RoutingVersionDetailRate { get { return routingversiondetailrate; } set { routingversiondetailrate = value; } } public double RoutingVersionDetailConversion { get { return routingversiondetailconversion; } set { routingversiondetailconversion = value; } } public double RoutingVersionDetailVariableQuantity { get { return routingversiondetailvariablequantity; } set { routingversiondetailvariablequantity = value; } } public int OutputItemId { get { return outputitemid; } set { outputitemid = value; } } public string OutputItemCode { get { return outputitemcode; } set { outputitemcode = value; } } public string OutputItemName { get { return outputitemname; } set { outputitemname = value; } } public int OutputSKUId { get { return outputskuid; } set { outputskuid = value; } } public string OutputSKUCode { get { return outputskucode; } set { outputskucode = value; } } public string OutputSKUName { get { return outputskuname; } set { outputskuname = value; } } public byte RoutingVersionDetailBatchType { get { return routingversiondetailbatchtype; } set { routingversiondetailbatchtype = value; } } public int LotTypeId { get { return lottypeid; } set { lottypeid = value; } } public string LotTypeName { get { return lottypename; } set { lottypename = value; } } public int ParameterSetId { get { return parametersetid; } set { parametersetid = value; } } public string ParameterSetCode { get { return parametersetcode; } set { parametersetcode = value; } } public string ParameterSetName { get { return parametersetname; } set { parametersetname = value; } } private byte routingversiondetailpackdetailsrequired=0; public byte RoutingVersionDetailPackDetailsRequired { get { return routingversiondetailpackdetailsrequired; } set { routingversiondetailpackdetailsrequired = value; } } public List RoutingOperationArray { get { return routingoperationarray; } set { routingoperationarray = value; } } private int processsheetid=-1; public int ProcessSheetId { get { return processsheetid; } set { processsheetid = value; } } private double routingversiondetailnetweight; public double RoutingVersionDetailNetWeight { get { return routingversiondetailnetweight; } set { routingversiondetailnetweight = value; } } private double stockpositionunlinkedwipgoodquantity; private double stockpositionunlinkedwipreworkquantity; public virtual double StockPositionUnLinkedWIPGoodQuantity { get { return stockpositionunlinkedwipgoodquantity; } //wipquantity set { stockpositionunlinkedwipgoodquantity = value; } //wipquantity } public virtual double StockPositionUnLinkedWIPReworkQuantity { get { return stockpositionunlinkedwipreworkquantity; } //wipquantity set { stockpositionunlinkedwipreworkquantity = value; } //wipquantity } public byte RoutingVersionDetailSplits { get { return routingversiondetailsplits; } set { routingversiondetailsplits = value; } } public double RoutingVersionDetailMinimumSplitDuration { get { return routingversiondetailminimumsplitduration; } set { routingversiondetailminimumsplitduration = value; } } public string RoutingVersionDetailPredecessor { get { return routingversiondetailpredecessor; } set { routingversiondetailpredecessor = value; } } public string RoutingVersionDetailRemarks { get { return routingversiondetailremarks; } set { routingversiondetailremarks = value; } } public int RejectionPercentage { get { return rejectionpercentage; } set { rejectionpercentage = value; } } // ── ESE scheduling fields ──────────────────────────────────────────── // 0=Continuous (cannot be paused mid-operation), 1=Interruptible (can pause between MinimumRunMinutes segments) public byte IsInterruptible { get; set; } = 0; // Minimum number of minutes the operation must run before a pause is allowed (interruptible jobs only) public int MinimumRunMinutes { get; set; } = 0; // Shelf-life constraint: successor must start within MaxWaitMinutes of predecessor end; 0=no limit public int MaxWaitMinutes { get; set; } = 0; // 0=InHouse, 1=Subcontract, 2=Either public byte ExecutionMode { get; set; } = 0; // Calendar days added as a time-block when ExecutionMode=Subcontract public short SubcontractLeadTimeDays { get; set; } = 0; // Points to a rework routing step when a rework path exists public int? ReworkRoutingDetailId { get; set; } // 0=Reform (new batch each run), 1=CarryForward (same batch continues across sessions) public byte BatchContinuity { get; set; } = 0; // Groups monitor-only steps (foundry pour sequences) — null for non-foundry steps public string? MonitorGroup { get; set; } // 1 = this step is where poured quantity becomes countable; applies only when MonitorGroup is set public byte IsGroupOutputStep { get; set; } = 0; } }