Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev-zlg
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation DispatchShiftPlan_Archive_Archive_DispatchShiftPlan |
| | | { |
| | | #keys: '1[414996.1.121982603]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide Archive |
| | | { |
| | | #keys: '3[414996.1.121982605][414996.1.121982604][414996.1.121982606]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: DispatchShiftPlan |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide DispatchShiftPlan |
| | | { |
| | | #keys: '3[414996.1.121982608][414996.1.121982607][414996.1.121982609]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: Archive |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
| | |
| | | macroPlan.CC_EngineRackRow( relflush ); |
| | | macroPlan.CC_EngineRackColumn( relflush ); |
| | | |
| | | sumNumberOfEmptyShelves := 0.0; |
| | | sumStorageFeesForRentedWarehouses := 0.0; |
| | | sumOutboundExpensesForRentedWarehouses := 0.0; |
| | | sumExternalRentalWarehouseTransportationCosts := 0.0; |
| | | sumRentalWarehouseStorageFees := 0.0; |
| | | sumCleaningCost := 0.0; |
| | | sumEstimatedTotalCost := 0.0; |
| | | sumTotalCost := 0.0; |
| | | |
| | | // åå»ºè¡ |
| | | genrations := selectuniquevalues( macroPlan, Product_MP, tempPMP, tempPMP.Generation().TrimBoth() <> "", tempPMP.Generation() ); |
| | | mqbmlbs := selectuniquevalues( macroPlan, Product_MP, tempPMP, tempPMP.MQBMLB().TrimBoth() <> "", tempPMP.MQBMLB() ); |
| | | traverse ( genrations, Elements, g ) { |
| | | traverse ( mqbmlbs, Elements, m ) { |
| | | macroPlan.CC_EngineRackRow( relnew, Generation := g, MLB_MQB := m ); |
| | | macroPlan.CC_EngineRackRow( relnew, Generation := g, MLB_MQB := m, Index := 1 ); |
| | | } |
| | | } |
| | | |
| | |
| | | tempPISPIP.ProductInStockingPoint_MP().StockingPointID() = "é¿æ¥å¤ç§åº" and |
| | | tempPISPIP.ProductInStockingPoint_MP().Product_MP().Generation() = ccerr.Generation() and |
| | | tempPISPIP.ProductInStockingPoint_MP().Product_MP().MQBMLB() = ccerr.MLB_MQB() and |
| | | tempPISPIP.Start().Date() = lastDayOfThisMonth, |
| | | tempPISPIP.Start().Date() >= ccerc.StartDate() and |
| | | tempPISPIP.End().Date() <= lastDayOfThisMonth, |
| | | tempPISPIP.PlannedInventoryLevelEnd() ); |
| | | cell.PackagingCapacity( guard( lce.PackagingCapacity(), 1 ) ); |
| | | cell.PlannedInventory( plannedInventory ); |
| | | cell.NumberOfEmptyShelves( guard( [Number] ( cell.TotalQuantityOfMaterialRacks() - ( plannedInventory / lce.PackagingCapacity() ) ), 0 ) ); |
| | | sumNumberOfEmptyShelves := sumNumberOfEmptyShelves + cell.NumberOfEmptyShelves(); |
| | | |
| | | // å¤ç§åºå
¥åºè´¹ç¨ï¼å卿ºéé / å
è£
容é[åä¸åæ´] * ææ¶å
¥åºåä»·ï¼ |
| | | engineSales := sum( macroPlan, FSImportData, tempFSID, |
| | |
| | | tempFSID.StartDate().Year() = ccerc.StartDate().Year() and |
| | | tempFSID.StartDate().Month() = ccerc.StartDate().Month(), |
| | | tempFSID.Quantity() ); |
| | | |
| | | cell.StorageFeesForRentedWarehouses( [Number] ( engineSales / guard( lce.PackagingCapacity(), 1 ) * guard( lcmr.WarehousingPrice(), 1 ) ) ); |
| | | sumStorageFeesForRentedWarehouses := sumStorageFeesForRentedWarehouses + cell.StorageFeesForRentedWarehouses(); |
| | | |
| | | // å¤ç§åºåºåºè´¹ç¨ï¼å卿ºäº§é / å
è£
容é[åä¸åæ´] * ææ¶åºåºåä»·ï¼ |
| | | engineProductions := sum( macroPlan, FPImportData, tempFPID, |
| | |
| | | tempFPID.StartDate().Month() = ccerc.StartDate().Month(), |
| | | tempFPID.Quantity() ); |
| | | cell.OutboundExpensesForRentedWarehouses( [Number] ( engineProductions / guard( lce.PackagingCapacity(), 1 ) ) * guard( lcmr.OutboundPrice(), 1 ) ); |
| | | sumOutboundExpensesForRentedWarehouses := sumOutboundExpensesForRentedWarehouses + cell.OutboundExpensesForRentedWarehouses(); |
| | | |
| | | // å¤ç§åºè¿è¾è´¹ç¨ï¼å卿ºè¿è¾é / å
è£
容é / è£
载容éï¼åä¸åæ´ï¼ * ææ¶è¿è¾åä»· |
| | | transportationQuantity := sum( macroPlan, Unit.Lane.LaneLeg.Trip.ProductInTrip, tempPIT, |
| | |
| | | tempPIT.Quantity() |
| | | ); |
| | | // info( "æ¶é´ï¼", ccerc.StartDate().Format( "Y-M2-D2" ), " è¿è¾æ°æ®ï¼", transportationQuantity, " è¿è¾åä»·ï¼", lct.TransportPrice() ); |
| | | cell.ExternalRentalWarehouseTransportationCosts( transportationQuantity / guard( lce.PackagingCapacity(), 1 ) / guard( lct.LoadingCapacity(), 1 ) * guard( lct.TransportPrice(), 1 ) ); |
| | | cell.ExternalRentalWarehouseTransportationCosts( [Number] ( transportationQuantity / guard( lce.PackagingCapacity(), 1 ) / guard( lct.LoadingCapacity(), 1 ) * guard( lct.TransportPrice(), 1 ) ) ); |
| | | sumExternalRentalWarehouseTransportationCosts := sumExternalRentalWarehouseTransportationCosts + cell.ExternalRentalWarehouseTransportationCosts(); |
| | | |
| | | // å¤ç§åºä»å¨è´¹ç¨ï¼ææ¶æ»æ°é - å卿ºåºå / å
è£
容éï¼åä¸åæ´ï¼ï¼åä¹ä»¥ç©ºææ¶ä»å¨åä»·å¾å°ç©ºææ¶ä»å¨è´¹ç¨ãå卿ºåºååActual inventorieséåå°é¿æ¥å¤ç§åºè¯¥å卿ºçä»å¨éï¼ææ¶æ»æ°ééè¦æå¨ç»´æ¤ã |
| | | cell.UnitPriceOfEmptyShelfStorage( lcmr.StoragePrice() ); |
| | | cell.RentalWarehouseStorageFees( [Number] ( guard( ( cell.TotalQuantityOfMaterialRacks() - [Number]( plannedInventory / lce.PackagingCapacity() ) ) * lcmr.StoragePrice(), 0 ) ) ); |
| | | sumRentalWarehouseStorageFees := sumRentalWarehouseStorageFees + cell.RentalWarehouseStorageFees(); |
| | | |
| | | // æ¸
æ´è´¹ç¨ï¼å卿ºå
¥åºé / å
è£
容é * ææ¶æ¸
æ´åä»·ãå卿ºå
¥åºéåå卿ºééï¼å
è£
容éåèªå卿ºææ¬è¡¨ãææ¶æ¸
æ´åä»·åææ¶ææ¬è¡¨ã |
| | | cell.CleaningCost( engineSales / guard( lce.PackagingCapacity(), 1 ) * lcmr.CleanPrice() ); |
| | | cell.CleaningCost( [Number] ( engineProductions / guard( lce.PackagingCapacity(), 1 ) * lcmr.CleanPrice() ) ); |
| | | sumCleaningCost := sumCleaningCost + cell.CleaningCost(); |
| | | |
| | | // é¢è®¡æ»è´¹ç¨ |
| | | cell.EstimatedTotalCost( cell.StorageFeesForRentedWarehouses() + |
| | | cell.OutboundExpensesForRentedWarehouses() + |
| | | cell.ExternalRentalWarehouseTransportationCosts() + |
| | | cell.RentalWarehouseStorageFees() + |
| | | cell.CleaningCost() |
| | | ); |
| | | sumEstimatedTotalCost := sumEstimatedTotalCost + cell.EstimatedTotalCost(); |
| | | |
| | | // ç³»æ° |
| | | cell.Coefficient( 1.05 ); |
| | | |
| | | // æ»è´¹ç¨ |
| | | cell.TotalCost( cell.EstimatedTotalCost() * cell.Coefficient() ); |
| | | sumTotalCost := sumTotalCost + cell.TotalCost(); |
| | | |
| | | cell.CC_EngineRackColumn( relset, ccerc ); |
| | | } |
| | | } |
| | | |
| | | // å建SUMè¡ |
| | | sumR := macroPlan.CC_EngineRackRow( relnew, Generation := "SUM", MLB_MQB := "", Index := 2 ); |
| | | traverse ( macroPlan, CC_EngineRackColumn, ccerc ) { |
| | | cell := sumR.CC_EngineRackCell( relnew ); |
| | | |
| | | cell.NumberOfEmptyShelves( sumNumberOfEmptyShelves ); |
| | | cell.StorageFeesForRentedWarehouses( sumStorageFeesForRentedWarehouses ); |
| | | cell.OutboundExpensesForRentedWarehouses( sumOutboundExpensesForRentedWarehouses ); |
| | | cell.ExternalRentalWarehouseTransportationCosts( sumExternalRentalWarehouseTransportationCosts ); |
| | | cell.RentalWarehouseStorageFees( sumRentalWarehouseStorageFees ); |
| | | cell.CleaningCost( sumCleaningCost ); |
| | | cell.EstimatedTotalCost( sumEstimatedTotalCost ); |
| | | cell.TotalCost( sumTotalCost ); |
| | | |
| | | cell.CC_EngineRackColumn( relset, ccerc ); |
| | | } |
| | | *] |
| | | } |
| | |
| | | tableElement := xmlDOM.GetElementByTagName( "table", 0 ); |
| | | |
| | | // 第ä¸åï¼åç§°ï¼ |
| | | cerrs := selectsortedset( macroPlan, CC_EngineRackRow, tempCERR, true, tempCERR.Name() ); |
| | | cerrs := selectsortedset( macroPlan, CC_EngineRackRow, tempCERR, true, tempCERR.Index(), tempCERR.Name() ); |
| | | firstColumn := xmlDOM.CreateElement( "column" ); |
| | | firstName := xmlDOM.CreateElement( "name" ); |
| | | firstType := xmlDOM.CreateElement( "type" ); |
| | |
| | | cellType.TextContent( "Number" ); |
| | | cellColumn.AppendChild( cellName ); |
| | | cellColumn.AppendChild( cellType ); |
| | | cells := selectsortedset( cerc, CC_EngineRackCell, tempCELL, true, tempCELL.CC_EngineRackRow().Name() ); |
| | | cells := selectsortedset( cerc, CC_EngineRackCell, tempCELL, true, tempCELL.CC_EngineRackRow().Index(), tempCELL.CC_EngineRackRow().Name() ); |
| | | traverse ( cells, Elements, c ) { |
| | | cell := xmlDOM.CreateElement( "cell" ); |
| | | cell.SetAttribute( "value", [String]c.TotalQuantityOfMaterialRacks().Round( 0 ) ); // ææ¶æ»æ°é |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Index |
| | | { |
| | | #keys: '3[415754.0.356027162][415754.0.356027161][415754.0.356027163]' |
| | | ValueType: Number |
| | | } |
| | |
| | | lce := select( macroPlan, LogisticsCostEngine, tempLCE, tempLCE.Generation() = dlerr.Generation() and tempLCE.MLB_MQB() = dlerr.MLB_MQB() and tempLCE.Factory() = "大è¿å·¥å" |
| | | and tempLCE.StartDate() <= dlerc.StartDate() and tempLCE.EndDate() >= dlerc.StartDate().StartOfNextMonth() ); |
| | | |
| | | // ææ¶ææ¬åæ° |
| | | lcmr := select( macroPlan, LogisticsCostMaterialRack, tempLCMR, tempLCMR.Factory() = "大è¿å·¥å" |
| | | and tempLCMR.StartDate() <= dlerc.StartDate() and tempLCMR.EndDate() >= dlerc.StartDate().StartOfNextMonth() ); |
| | | |
| | | // è¿è¾ææ¬åæ° |
| | | lct1 := select( macroPlan, LogisticsCostTransport, tempLCT, tempLCT.Product() = "å卿ºææ¶" and tempLCT.Origin() = "大è¿å卿ºçé¿æ¥å¤ç§åº" and tempLCT.Destination() = "大è¿åå
åº" ); |
| | | lct2 := select( macroPlan, LogisticsCostTransport, tempLCT, tempLCT.Product() = "å卿ºææ¶" and tempLCT.Origin() = "大è¿å¤ç§åº" and tempLCT.Destination() = "大è¿åå
åº" ); |
| | | lct3 := select( macroPlan, LogisticsCostTransport, tempLCT, tempLCT.Product() = "å卿ºææ¶" and tempLCT.Origin() = "CC 客æ·åº" and tempLCT.Destination() = "CC å¤ç§åº" ); |
| | | |
| | | // å½åææ«æåä¸å¤©æ¥æ |
| | | lastDayOfThisMonth := dlerc.StartDate().StartOfNextMonth() - 1; |
| | | |
| | |
| | | plannedInventory := sum( macroPlan, Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod, tempPISPIP, |
| | | tempPISPIP.ProductInStockingPoint_MP().Product_MP().IsLeaf() and |
| | | exists( tempPISPIP.ProductInStockingPoint_MP().Product_MP(), AllParent.AsParent, tempPMP, tempPMP.ID() = "å卿º" ) and |
| | | tempPISPIP.ProductInStockingPoint_MP().StockingPointID() = "大è¿å¤ç§åº" and |
| | | tempPISPIP.ProductInStockingPoint_MP().StockingPointID() = "大è¿å卿ºçé¿æ¥å¤ç§åº" and |
| | | tempPISPIP.ProductInStockingPoint_MP().Product_MP().Generation() = dlerr.Generation() and |
| | | tempPISPIP.ProductInStockingPoint_MP().Product_MP().MQBMLB() = dlerr.MLB_MQB() and |
| | | tempPISPIP.Start().Date() = lastDayOfThisMonth, |
| | | tempPISPIP.Start().Date() >= dlerc.StartDate() and |
| | | tempPISPIP.End().Date() <= lastDayOfThisMonth, |
| | | tempPISPIP.PlannedInventoryLevelEnd() ); |
| | | cell.PackagingCapacity( guard( lce.PackagingCapacity(), 1 ) ); |
| | | cell.PlannedInventory( plannedInventory ); |
| | | |
| | | // CCå¤ç§åºå
¥åºè´¹ç¨ï¼å卿ºéé / å
è£
容éï¼åä¸åæ´ï¼* ææ¶å
¥åºåä»· |
| | | transportationQuantity1 := sum( macroPlan, SalesDemand.astype( Forecast ), tempF, |
| | | tempF.Product_MP().Generation() = dlerr.Generation() and |
| | | tempF.Product_MP().MQBMLB() = dlerr.MLB_MQB() and |
| | | tempF.StockingPointID() = "大è¿å卿ºçé¿æ¥å¤ç§åº" and |
| | | tempF.StartDate() >= dlerc.StartDate() and |
| | | tempF.EndDate() <= lastDayOfThisMonth, |
| | | tempF.FulfilledQuantity() ); |
| | | cell.CCStorageFeesForRentedWarehouses( [Number] ( guard( transportationQuantity1 / lce.PackagingCapacity(), 0 ) * lcmr.WarehousingPrice() ) ); |
| | | |
| | | // CCå¤ç§åºåºåºè´¹ç¨ï¼å卿ºéé / å
è£
容éï¼åä¸åæ´ï¼* ææ¶åºåºåä»· |
| | | cell.CCOutboundExpensesForRentedWarehouses( [Number] ( guard( transportationQuantity1 / lce.PackagingCapacity(), 0 ) * lcmr.OutboundPrice() ) ); |
| | | |
| | | // CCå¤ç§åºä»å¨è´¹ç¨ï¼ææ¶æ»æ°é - å卿ºåºå / å
è£
容éï¼åä¸åæ´ï¼ * ææ¶ä»å¨åä»· |
| | | cell.CCRentalWarehouseStorageFees( [Number] ( ( cell.TotalQuantityOfMaterialRacks() - guard( plannedInventory / lce.PackagingCapacity(), 0 ) ) * lcmr.StoragePrice() ) ); |
| | | |
| | | // CCé¿éè¿è¾è´¹ç¨ï¼è°æ¨æ°é / å
è£
容é / è£
载容é * ææ¶è¿è¾åä»· |
| | | transportationQuantity2 := sum( macroPlan, Unit.Lane.LaneLeg.Trip.ProductInTrip, tempPIT, |
| | | tempPIT.Product_MP().Generation() = dlerr.Generation() and |
| | | tempPIT.Product_MP().MQBMLB() = dlerr.MLB_MQB() and |
| | | tempPIT.Trip().Departure().Date() >= dlerc.StartDate() and |
| | | tempPIT.Trip().Arrival().Date() <= lastDayOfThisMonth and |
| | | tempPIT.Trip().LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP().ID() = "大è¿åå
åº" and |
| | | tempPIT.Trip().LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP().ID() = "大è¿å卿ºçé¿æ¥å¤ç§åº", |
| | | tempPIT.Quantity() |
| | | ); |
| | | |
| | | cell.CCLineHaulCost( [Number] ( guard( transportationQuantity2 / lce.PackagingCapacity() / lct1.LoadingCapacity(), 0 ) * guard( lct1.TransportPrice(), 1 ) ) ); |
| | | |
| | | // CCçéè¿è¾è´¹ç¨ï¼è°æ¨æ°é / å
è£
容é / è£
载容é * ææ¶è¿è¾åä»· |
| | | cell.CCShortDistanceTransportationCosts( [Number] ( guard( transportationQuantity1 / lce.PackagingCapacity() / lct3.LoadingCapacity(), 0 ) * guard( lct3.TransportPrice(), 1 ) ) ) |
| | | |
| | | // DLå¤ç§åºå
¥åºè´¹ç¨ï¼å卿ºå
¥åºé / å
è£
容éï¼åä¸åæ´ï¼* ææ¶å
¥åºåä»· |
| | | inventoryQuantity := sum( macroPlan, SalesDemand.astype( Forecast ), tempF, |
| | | tempF.Product_MP().Generation() = dlerr.Generation() and |
| | | tempF.Product_MP().MQBMLB() = dlerr.MLB_MQB() and |
| | | tempF.StockingPointID() = "大è¿å¤ç§åº" and |
| | | tempF.StartDate().Year() = dlerc.StartDate().Year() and |
| | | tempF.StartDate().Month() = dlerc.StartDate().Month(), |
| | | tempF.FulfilledQuantity() ); |
| | | // info( "æ¶é´ï¼", dlerc.StartDate().Format( "Y-M2-D2" ), " å
¥åºæ°éï¼", inventoryQuantity, " å
è£
容éï¼", guard( lce.PackagingCapacity(), 0 ), |
| | | // " è£
载容éï¼", guard( lct1.LoadingCapacity(), 0 ) ); // æµè¯è¾åº |
| | | cell.DLStorageFeesForRentedWarehouses( [Number] ( guard( inventoryQuantity / lce.PackagingCapacity(), 0 ) * guard( lcmr.WarehousingPrice(), 1 ) ) ); |
| | | |
| | | // DLå¤ç§åºåºåºè´¹ç¨ï¼å卿ºåºåºé / ææ¶å®¹éï¼åä¸åæ´ï¼* ææ¶åºåºåä»· |
| | | outboundQuantity := sum( macroPlan, Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), tempPISPIPPL, |
| | | tempPISPIPPL.ProductInStockingPoint_MP().Product_MP().Generation() = dlerr.Generation() and |
| | | tempPISPIPPL.ProductInStockingPoint_MP().Product_MP().MQBMLB() = dlerr.MLB_MQB() and |
| | | tempPISPIPPL.ProductInStockingPoint_MP().StockingPointID() = "大è¿å¤ç§åº" and |
| | | tempPISPIPPL.Start().Date() >= dlerc.StartDate() and |
| | | tempPISPIPPL.End().Date() <= lastDayOfThisMonth, |
| | | tempPISPIPPL.NewSupplyQuantity() ); |
| | | cell.DLOutboundExpensesForRentedWarehouses( [Number] ( guard( outboundQuantity / lce.PackagingCapacity(), 0 ) * guard( lcmr.OutboundPrice(), 1 ) ) ); |
| | | |
| | | // DLå¤ç§åºè¿è¾è´¹ç¨ï¼å卿ºè¿è¾é / å
è£
容é / è£
载容éï¼åä¸åæ´ï¼* ææ¶è¿è¾åä»· |
| | | cell.DLExternalRentalWarehouseTransportationCosts( [Number] ( guard( inventoryQuantity / lce.PackagingCapacity() / lct2.LoadingCapacity(), 0 ) * guard( lct2.TransportPrice(), 1 ) ) ); |
| | | |
| | | // DLå¤ç§åºä»å¨è´¹ç¨ï¼ææ¶æ»æ°é - å卿ºåºå / å
è£
容éï¼åä¸åæ´ï¼* ç©ºææ¶ä»å¨åä»· |
| | | plannedInventory1 := sum( macroPlan, Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod, tempPISPIP, |
| | | tempPISPIP.ProductInStockingPoint_MP().Product_MP().IsLeaf() and |
| | | exists( tempPISPIP.ProductInStockingPoint_MP().Product_MP(), AllParent.AsParent, tempPMP, tempPMP.ID() = "å卿º" ) and |
| | | tempPISPIP.ProductInStockingPoint_MP().StockingPointID() = "大è¿å¤ç§åº" and |
| | | tempPISPIP.ProductInStockingPoint_MP().Product_MP().Generation() = dlerr.Generation() and |
| | | tempPISPIP.ProductInStockingPoint_MP().Product_MP().MQBMLB() = dlerr.MLB_MQB() and |
| | | tempPISPIP.Start().Date() >= dlerc.StartDate() and |
| | | tempPISPIP.End().Date() <= lastDayOfThisMonth, |
| | | tempPISPIP.PlannedInventoryLevelEnd() ); |
| | | cell.DLRentalWarehouseStorageFees( [Number] ( guard( ( cell.TotalQuantityOfMaterialRacks() - plannedInventory1 ) / lce.PackagingCapacity(), 0 ) * guard( lcmr.StoragePrice(), 1 ) ) ); |
| | | |
| | | //æ¸
æ´è´¹ç¨ï¼å卿ºå
¥åºé / å
è£
容é * ææ¶æ¸
æ´åä»·ãå卿ºå
¥åºéåå卿ºééï¼å
è£
容éåèªå卿ºææ¬è¡¨ãææ¶æ¸
æ´åä»·åææ¶ææ¬è¡¨ã |
| | | cell.CleaningCost( [Number] ( guard( inventoryQuantity / lce.PackagingCapacity(), 0 ) * guard( lcmr.CleanPrice(), 1 ) ) ); |
| | | |
| | | // é¢è®¡æ»è´¹ç¨ |
| | | cell.EstimatedTotalCost( cell.CCStorageFeesForRentedWarehouses() + cell.CCOutboundExpensesForRentedWarehouses() + cell.CCRentalWarehouseStorageFees() + cell.CCLineHaulCost() + |
| | | cell.CCShortDistanceTransportationCosts() + cell.DLStorageFeesForRentedWarehouses() + cell.DLOutboundExpensesForRentedWarehouses() + |
| | | cell.DLExternalRentalWarehouseTransportationCosts() + cell.DLRentalWarehouseStorageFees() + cell.CleaningCost() ); |
| | | |
| | | // ç³»æ° |
| | | cell.Coefficient( 1.05 ); |
| | | |
| | | // æ»è´¹ç¨ |
| | | cell.TotalCost( cell.EstimatedTotalCost() * cell.Coefficient() ); |
| | | |
| | | cell.DL_EngineRackColumn( relset, dlerc ); |
| | | } |
| | |
| | | #parent: #root |
| | | StaticMethod Dispatch ( |
| | | const MacroPlan macroPlan, |
| | | RecycleBin owner, |
| | | Archive owner, |
| | | String versionFlag |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // Akari Aug-21-2024 (created) |
| | | owner.DispatchShiftPlan( relflush ); |
| | | // owner.DispatchShiftPlan( relflush ); |
| | | // owner.RB_DispatchShiftPlanBroker().Source().FlatQuery( "truncate table A_DispatchShiftPlan" ); |
| | | |
| | | dispatchShiftPlans := selectset( owner,DispatchShiftPlan,dispatchShiftPlan,true ); |
| | | dispatchShiftPlanIndexTree := NamedValueTree::Create(); |
| | | for( i := 0 ; i < dispatchShiftPlans.Size() ; i++){ |
| | | dispatchShiftPlan := dispatchShiftPlans.Element( i ); |
| | | dispatchShiftPlanHandle := dispatchShiftPlanIndexTree.GetHandle( dispatchShiftPlan.FactoryName() + dispatchShiftPlan.ProductLine() + dispatchShiftPlan.ShiftDate().AsQUILL() ); |
| | | dispatchShiftPlanIndexTree.Root().AddChild( dispatchShiftPlanHandle,i ); |
| | | } |
| | | |
| | | now := DateTime::Now(); |
| | | macroPlanName := macroPlan.MDSMacroPlan().Description(); |
| | | traverse( macroPlan,Unit.UnitPeriod.astype( UnitPeriodTime ).ShiftPlan,shiftPlan ){ |
| | | traverse( macroPlan,Unit.UnitPeriod.astype( UnitPeriodTime ).ShiftPlan,shiftPlan ,shiftPlan.UnitPeriodTime().Period_MP().StartDate() >= macroPlan.StartOfPlanning().Date()){ |
| | | factory := shiftPlan.UnitPeriodTime().Unit(); |
| | | while( factory.HasParent() ){ |
| | | temp1 := factory; |
| | |
| | | factory := temp1; |
| | | } |
| | | } |
| | | productLine := shiftPlan.UnitPeriodTime().Unit().ID(); |
| | | shiftDate := shiftPlan.UnitPeriodTime().Period_MP().StartDate(); |
| | | factoryName := factory.ID(); |
| | | |
| | | dispatchShiftPlanHandle := dispatchShiftPlanIndexTree.GetHandle( factoryName + productLine + shiftDate.AsQUILL() ); |
| | | dispatchShiftPlanIndex := guard( dispatchShiftPlanIndexTree.Root().Child( dispatchShiftPlanHandle ),null( NamedValue )); |
| | | if( not isnull( dispatchShiftPlanIndex )){ |
| | | dispatchShiftPlan := dispatchShiftPlans.Element( dispatchShiftPlanIndex.GetValueAsNumber() ); |
| | | dispatchShiftPlan.Tips( shiftPlan.Remark() ); |
| | | dispatchShiftPlan.VersionName( macroPlanName ); |
| | | dispatchShiftPlan.VersionFlag( versionFlag ); |
| | | dispatchShiftPlan.InterfaceTime( now ); |
| | | }else{ |
| | | owner.DispatchShiftPlan( relnew,ID := OS:: GenerateGUIDAsString(), |
| | | ProductLine := shiftPlan.UnitPeriodTime().Unit().ID(), |
| | | ShiftDate := shiftPlan.UnitPeriodTime().Period_MP().StartDate(), |
| | | ProductLine := productLine, |
| | | FactoryName := factory.ID(), |
| | | |
| | | ShiftDate := shiftDate, |
| | | Tips := shiftPlan.Remark(), |
| | | VersionName := macroPlanName, |
| | | VersionFlag := versionFlag, |
| | | FactoryName := factory.ID(), |
| | | InterfaceTime := now |
| | | ); |
| | | |
| | | InterfaceTime := now ); |
| | | } |
| | | } |
| | | |
| | | owner.RB_DispatchShiftPlanBroker().AsyncExecute(); |
| | | // owner.RB_DispatchShiftPlanBroker().AsyncExecute(); |
| | | *] |
| | | } |
| | |
| | | shiftDayTime := select( shiftPattern,ShiftDayTime,object,true ); |
| | | } |
| | | } |
| | | if( shiftVolume <> 0 ){ |
| | | shiftSchedulingInformations := DispatchShiftSchedulingInformation::SplitShifts( owner,shiftName,shiftVolume ); |
| | | |
| | | shiftSchedulingInformation := owner.DispatchShiftSchedulingInformation( relnew , |
| | | ID := IDHolder::GetGUID() , |
| | | InterfaceTime := now , |
| | | VersionName := macroPlan.MDSMacroPlan().Description(), |
| | | Product := productID, |
| | | ProductLine := productLine, |
| | | ShiftDate := shiftDate, |
| | | ShiftName := shiftName, |
| | | ShiftVolume := shiftVolume ); |
| | | traverse( shiftSchedulingInformations,Elements,shiftSchedulingInformation ){ |
| | | shiftSchedulingInformation.InterfaceTime( now ); |
| | | shiftSchedulingInformation.VersionName( macroPlan.MDSMacroPlan().Description() ); |
| | | shiftSchedulingInformation.Product( productID ); |
| | | shiftSchedulingInformation.ProductLine( productLine ); |
| | | shiftSchedulingInformation.ShiftDate( shiftDate ); |
| | | // shiftSchedulingInformation.InterfaceTime( now ); |
| | | // shiftSchedulingInformation.InterfaceTime( now ); |
| | | // shiftSchedulingInformation.InterfaceTime( now ); |
| | | // shiftSchedulingInformation.InterfaceTime( now ); |
| | | |
| | | |
| | | if( not isnull( shiftDayTime )){ |
| | | shiftSchedulingInformation.ShiftStartDate( shiftDayTime.StartDateTime() ); |
| | | shiftSchedulingInformation.ShiftEndDate( shiftDayTime.EndDateTIme() ); |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod SplitShifts ( |
| | | RecycleBin owner, |
| | | String shiftName, |
| | | Real shiftVolume |
| | | ) as owning DispatchShiftSchedulingInformations |
| | | { |
| | | TextBody: |
| | | [* |
| | | // Akari Oct-9-2024 (created) |
| | | shiftSchedulingInformations := construct( DispatchShiftSchedulingInformations ); |
| | | if( shiftName = "3" ){ |
| | | shiftSchedulingInformation1 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 3 ); |
| | | shiftSchedulingInformation1.SingleShiftName( "1ç" ); |
| | | shiftSchedulingInformations.Add( shiftSchedulingInformation1 ); |
| | | |
| | | shiftSchedulingInformation2 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 3 ); |
| | | shiftSchedulingInformation2.SingleShiftName( "2ç" ); |
| | | shiftSchedulingInformations.Add( shiftSchedulingInformation2 ); |
| | | |
| | | shiftSchedulingInformation3 := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume / 3 ); |
| | | shiftSchedulingInformation3.SingleShiftName( "3ç" ); |
| | | shiftSchedulingInformations.Add( shiftSchedulingInformation3 ); |
| | | }else{ |
| | | shiftSchedulingInformation := owner.DispatchShiftSchedulingInformation( relnew ,ID := IDHolder::GetGUID(),ShiftName := shiftName,ShiftVolume := shiftVolume ); |
| | | shiftSchedulingInformations.Add( shiftSchedulingInformation ); |
| | | } |
| | | |
| | | |
| | | return &shiftSchedulingInformations; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod BatchSetUnitShiftPattern ( |
| | | Unit unit, |
| | | ShiftPattern shiftPattern, |
| | | Date startDate, |
| | | Date endDate, |
| | | Numbers weekdays |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // Akari Oct-10-2024 (created) |
| | | owner := unit.MacroPlan(); |
| | | dayPeriod_MPs := selectsortedset( owner,Period_MP,period_MP, |
| | | period_MP.TimeUnit() = 'Day' and |
| | | period_MP.StartDate() >= startDate and |
| | | period_MP.EndDate() <= endDate and exists( weekdays, Elements,dayOfWeek,dayOfWeek = period_MP.StartDate().DayOfWeek() ) ,period_MP.StartDate()); |
| | | weekPeriod_MPs := selectsortedset( owner,Period_MP,period_MP, |
| | | period_MP.TimeUnit() = 'Week' and |
| | | period_MP.StartDate() >= startDate and |
| | | period_MP.EndDate() <= endDate and exists( weekdays, Elements,dayOfWeek,dayOfWeek = period_MP.StartDate().DayOfWeek() ),period_MP.StartDate()); |
| | | |
| | | if( dayPeriod_MPs.Size() > 0 ){ |
| | | unitPeriodTimes := selectset( unit,UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( dayPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP()) and not isnull( unitPeriodTime.UnitAvailability())); |
| | | if( unitPeriodTimes.Size() > 0 ){ |
| | | LocalTool::SetUnitShiftPattern( owner,unitPeriodTimes,shiftPattern ); |
| | | } |
| | | |
| | | } |
| | | if( weekPeriod_MPs.Size() <> 0 ){ |
| | | traverse( weekPeriod_MPs,Elements,period_MP ){ |
| | | unitPeriodTimes := selectset( unit,UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP() and not isnull( unitPeriodTime.UnitAvailability())); |
| | | if( unitPeriodTimes.Size() > 0 ){ |
| | | LocalTool::SetUnitShiftPattern( owner,unitPeriodTimes,shiftPattern ); |
| | | } |
| | | } |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod SetUnitShiftPattern ( |
| | | MacroPlan macroPlan, |
| | | UnitPeriodTimes unitPeriodTimes, |
| | | ShiftPattern shiftPattern |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // Akari Oct-10-2024 (created) |
| | | firstElement := minselect( unitPeriodTimes, Elements, e, true, e.Start() ); |
| | | |
| | | start := macroPlan.Start(); |
| | | timeunit := macroPlan.StartOfPlanningPeriod().TimeUnit(); |
| | | maintenance := Duration::Zero(); |
| | | efficiency := 1.0; |
| | | allocation := 1.0; |
| | | |
| | | maxloadpercentage := macroPlan.GlobalParameters_MP().DefaultMaxLoadPercentage(); |
| | | nrofunitopen := 1; |
| | | minloadthreshold := 0.0; |
| | | |
| | | if( not isnull( firstElement ) ){ |
| | | // To inherit the value from last unit availability while creating a new unit availability |
| | | unitavailability := firstElement.UnitAvailability(); |
| | | start := firstElement.Start(); |
| | | |
| | | if( not isnull( unitavailability ) ){ |
| | | timeunit := unitavailability.TimeUnit(); |
| | | maintenance := unitavailability.Maintenance(); |
| | | efficiency := unitavailability.Efficiency(); |
| | | allocation := unitavailability.Allocation(); |
| | | |
| | | maxloadpercentage := unitavailability.MaximumLoadPercentage(); |
| | | nrofunitopen := unitavailability.NrOfUnitsOpen(); |
| | | minloadthreshold := unitavailability.MinimumLoadThreshold(); |
| | | }else{ |
| | | timeunit := firstElement.Period_MP().TimeUnit(); |
| | | maintenance := firstElement.Maintenance(); |
| | | efficiency := firstElement.Efficiency(); |
| | | allocation := firstElement.Allocation(); |
| | | |
| | | maxloadpercentage := firstElement.MaximumLoadPercentage(); |
| | | nrofunitopen := firstElement.NrOfOpen(); |
| | | minloadthreshold := firstElement.MinimumLoadThreshold(); |
| | | } |
| | | } |
| | | |
| | | isbatchedit := unitPeriodTimes.Size() > 1; |
| | | UnitAvailability::CreateOrUpdateForUnitPeriodTimes( unitPeriodTimes, |
| | | not isbatchedit or false, |
| | | timeunit, |
| | | maintenance, |
| | | not isbatchedit or false, |
| | | efficiency, |
| | | false, |
| | | allocation, |
| | | not isbatchedit or true, |
| | | shiftPattern, |
| | | not isbatchedit or false, |
| | | maxloadpercentage, |
| | | not isbatchedit or false, |
| | | nrofunitopen, |
| | | false, |
| | | not isbatchedit or false, |
| | | minloadthreshold |
| | | ); |
| | | *] |
| | | } |
| | |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | Component dhMDSHandles |
| | | { |
| | | #keys: '[414996.1.116451655]' |
| | | BaseType: 'WebDataHolder' |
| | | Databinding: 'structured[internal[ExternalMDSHandle]]*' |
| | | Properties: |
| | | [ |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | |
| | | Tooltip: 'Event type' |
| | | ] |
| | | } |
| | | Component MenuBatchSetShiftPattern |
| | | { |
| | | #keys: '[414996.1.119140284]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | Image: 'QUEUE' |
| | | Taborder: 8 |
| | | Title: 'æ¹éè®¾ç½®äº§çº¿çæ¬¡' |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | |
| | | [* |
| | | componentmds := ApplicationScope.ComponentMDS(); |
| | | |
| | | dhMDSHandles.Data().Flush(); |
| | | |
| | | macroPlans := construct( MacroPlans ); |
| | | scemps := selectset( ScenarioManager,ScenarioMP,mp,mp.IsLoaded()); |
| | | traverse( scemps,Elements,scemp ){ |
| | | mdsinstance := select( componentmds, ComponentMDSKinds.ComponentMDSInstances, m, m.MDSID().MDSKey() = scemp.DatasetMDSID() ); |
| | | handle := mdsinstance.GetMDSHandle(); |
| | | dhMDSHandles.Data().Add( handle ); |
| | | demandMacroPlan := handle.AsMacroPlan(); |
| | | macroPlans.Add( demandMacroPlan ); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ContextMenuCapacities/MenuBatchSetShiftPattern |
| | | Response OnClick () id:Response_MacroPlanner_ContextMenuCapacities_MenuBatchSetShiftPattern_OnClick |
| | | { |
| | | #keys: '[414996.1.119140372]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebMenu_OnClick' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | // Open view |
| | | ApplicationMacroPlanner.OpenView( 'BatchSetShiftPattern', ButtonCapacities ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | { |
| | | #keys: '[413988.0.1596179631]' |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not exists( MacroPlan, PackagingPlanNewCapability, tempPPNC, true, tempPPNC.ProductionLine() = ddslProductionLine.Text() ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | uids := selectuniquevalues( MacroPlan, Unit, tempU, true, tempU.ID() ); |
| | | uids := selectuniquevalues( MacroPlan, Unit, tempU, tempU.HasCapacityTypeTime(), tempU.ID() ); |
| | | |
| | | this.Strings( uids.Concatenate( ";" ) ); |
| | | *] |
| | |
| | | #keys: '[413988.0.1401876560]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not exists( MacroPlan, PackagingPlanLotSize, tempPPLS, true, tempPPLS.Factory() = ddslFactory.Text() and |
| | | tempPPLS.ProductID() = ddlProductID.Data().ID() ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | |
| | | traverse( macroPlans,Elements,element ){ |
| | | info( element.MDSID() ); |
| | | } |
| | | info( dhMDSHandles.Data().Size() ); |
| | | traverse( dhMDSHandles.Data(),Elements,element ){ |
| | | info( element.AsMacroPlan().MDSMacroPlan().Description() ); |
| | | } |
| | | |
| | | this.Data( &offlinePlanTables ); |
| | | *] |
| | | GroupServerCalls: false |
| | |
| | | Body: |
| | | [* |
| | | DL_EngineRackCell::CreateData( MacroPlan ); |
| | | |
| | | WebMessageBox::Success( Translations::A_VWED_Success() ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: MatrixEditor493 |
| | | Response OnCheckEditability ( |
| | | structured[PackagingPlanCell] cell, |
| | | Real value |
| | | ) id:Response_MatrixEditor493_OnCheckEditability |
| | | { |
| | | #keys: '[415754.0.367460056]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebMatrixEditor_OnCheckEditability' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | cond := focusedattribute = "Package" or focusedattribute = "Unpacking"; |
| | | |
| | | editinfo.CanEdit( cond ); |
| | | editinfo.UserHint( ifexpr( cond, "", "ä¸è½ä¿®æ¹" ) ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component cbMonday |
| | | { |
| | | #keys: '[414996.1.116589495]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | | Component cbTuesday |
| | | { |
| | | #keys: '[414996.1.116589517]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Taborder: 4 |
| | | ] |
| | | } |
| | | Component cbWednesday |
| | | { |
| | | #keys: '[414996.1.116589519]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Taborder: 5 |
| | | ] |
| | | } |
| | | Component cbThursday |
| | | { |
| | | #keys: '[414996.1.116589521]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Taborder: 6 |
| | | ] |
| | | } |
| | | Component cbFriday |
| | | { |
| | | #keys: '[414996.1.116589523]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Taborder: 7 |
| | | ] |
| | | } |
| | | Component cbSaturday |
| | | { |
| | | #keys: '[414996.1.116589525]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Taborder: 8 |
| | | ] |
| | | } |
| | | Component cbSunday |
| | | { |
| | | #keys: '[414996.1.116589527]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Taborder: 9 |
| | | ] |
| | | } |
| | | Component dsStartDate |
| | | { |
| | | #keys: '[414996.1.116589712]' |
| | |
| | | Properties: |
| | | [ |
| | | Label: 'Start' |
| | | Taborder: 1 |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | Component dsEndDate |
| | |
| | | Properties: |
| | | [ |
| | | Label: 'End' |
| | | Taborder: 2 |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | | Component LabelSelectUnit |
| | |
| | | Properties: |
| | | [ |
| | | Label: 'Apply' |
| | | Taborder: 11 |
| | | ] |
| | | } |
| | | Component ddlShiftPattern |
| | | { |
| | | #keys: '[414996.1.116430349]' |
| | | BaseType: 'WebDropDownList' |
| | | Databinding: 'ShiftPattern' |
| | | Children: |
| | | [ |
| | | Component deContent710 id:deContent710_593 |
| | | { |
| | | #keys: '[414996.1.116430350]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'MacroPlan' |
| | | Source: 'MacroPlan' |
| | | Taborder: 0 |
| | | Transformation: 'ShiftPattern' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | DisplayField: 'Name' |
| | | Label: 'Shift pattern 1' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | Component cbMonday |
| | | { |
| | | #keys: '[414996.1.117120493]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Label: 'Monday' |
| | | Taborder: 4 |
| | | ] |
| | | } |
| | | Component cbTuesday |
| | | { |
| | | #keys: '[414996.1.117120516]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Label: 'Tuesday' |
| | | Taborder: 5 |
| | | ] |
| | | } |
| | | Component cbWednesday |
| | | { |
| | | #keys: '[414996.1.117120539]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Label: 'Wednesday' |
| | | Taborder: 6 |
| | | ] |
| | | } |
| | | Component cbThursday |
| | | { |
| | | #keys: '[414996.1.117120576]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Label: 'Thursday' |
| | | Taborder: 7 |
| | | ] |
| | | } |
| | | Component cbFriday |
| | | { |
| | | #keys: '[414996.1.117120599]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Label: 'Friday' |
| | | Taborder: 8 |
| | | ] |
| | | } |
| | | Component cbSaturday id:cbSaturday_682 |
| | | { |
| | | #keys: '[414996.1.117120636]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Label: 'Saturday' |
| | | Taborder: 9 |
| | | ] |
| | | } |
| | | Component cbSunday |
| | | { |
| | | #keys: '[414996.1.117120659]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Label: 'Sunday' |
| | | Taborder: 10 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelRight/bApply |
| | | Response OnClick () id:Response_PanelRight_bApply_OnClick |
| | | { |
| | | #keys: '[414996.1.117189721]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | GroupServerCalls: true |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | weekdays := construct( Numbers ); |
| | | if( cbMonday.Checked() ){ |
| | | weekdays.Add( 1 ); |
| | | } |
| | | if( cbTuesday.Checked() ){ |
| | | weekdays.Add( 2 ); |
| | | } |
| | | if( cbWednesday.Checked() ){ |
| | | weekdays.Add( 3 ); |
| | | } |
| | | if( cbThursday.Checked() ){ |
| | | weekdays.Add( 4 ); |
| | | } |
| | | if( cbFriday.Checked() ){ |
| | | weekdays.Add( 5 ); |
| | | } |
| | | if( cbSaturday.Checked() ){ |
| | | weekdays.Add( 6 ); |
| | | } |
| | | if( cbSunday.Checked() ){ |
| | | weekdays.Add( 7 ); |
| | | } |
| | | LocalTool::BatchSetUnitShiftPattern( dhSelectUnit.Data(),ddlShiftPattern.Data(),dsStartDate.Date(),dsEndDate.Date(),weekdays ); |
| | | WebMessageBox::Success( "Success"); |
| | | *] |
| | | } |
| | | } |
| | |
| | | Properties: |
| | | [ |
| | | Description: 'FormProductionLineBatchData' |
| | | Title: 'æ¹éè®¾ç½®äº§çº¿çæ¬¡' |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | { |
| | | viewcontents |
| | | { |
| | | forms |
| | | { |
| | | form_FormProductionLineBatchSetShiftPattern |
| | | { |
| | | title: 'QMacroPlanner::FormProductionLineBatchSetShiftPattern' |
| | | shown: true |
| | | componentID: 'QMacroPlanner::FormProductionLineBatchSetShiftPattern' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 1 |
| | | rowSpan: 23 |
| | | columnPosition: 1 |
| | | columnSpan: 9 |
| | | } |
| | | components |
| | | { |
| | | FormProductionLineBatchSetShiftPattern_PanelProductionLineBatchSetShiftPattern |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormProductionLineBatchSetShiftPattern_PanelLeft |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormProductionLineBatchSetShiftPattern_ListUnit |
| | | { |
| | | } |
| | | FormProductionLineBatchSetShiftPattern_DataSetLevelProductionLineBatchSetShiftPattern |
| | | { |
| | | groupDepth: -1 |
| | | sort: 'Name' |
| | | column_Name |
| | | { |
| | | columnId: 'Name' |
| | | dataPath: 'Name' |
| | | dataType: 'string' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | } |
| | | FormProductionLineBatchSetShiftPattern_PanelRight |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | } |
| | | } |
| | | form_FormKPI |
| | | { |
| | | title: 'KPI Dashboard' |
| | | shown: false |
| | | componentID: 'FormKPI' |
| | | layout |
| | | { |
| | | mode: 'dockright' |
| | | index: 0 |
| | | } |
| | | components |
| | | { |
| | | FormKPI_PanelKPI |
| | | { |
| | | sizeRatio: 1 |
| | | activeChild: 'PanelKPISelection' |
| | | } |
| | | FormKPI_PanelKPIDashboard |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormKPI_PanelKPISelection |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormKPI_ListKPISelection |
| | | { |
| | | QuillViewData |
| | | { |
| | | Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume' |
| | | } |
| | | } |
| | | FormKPI_DataSetLevelKPISelection |
| | | { |
| | | groupDepth: -1 |
| | | column_All_constraints |
| | | { |
| | | columnId: 'All constraints' |
| | | dataPath: 'All constraints' |
| | | dataType: 'string' |
| | | title: 'All constraints' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 32 |
| | | } |
| | | column_Name |
| | | { |
| | | columnId: 'Name' |
| | | dataPath: 'Name' |
| | | dataType: 'string' |
| | | title: 'Name' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 200 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | form_FormOptimizerStrategiesSlideIn |
| | | { |
| | | title: 'Optimizer Strategies' |
| | | shown: false |
| | | componentID: 'FormOptimizerStrategiesSlideIn' |
| | | layout |
| | | { |
| | | mode: 'dockright' |
| | | index: 1 |
| | | } |
| | | components |
| | | { |
| | | FormOptimizerStrategiesSlideIn_ListOptimizerStrategiesSlideIn |
| | | { |
| | | } |
| | | FormOptimizerStrategiesSlideIn_DataSetLevelOptimizerStrategiesSlideIn |
| | | { |
| | | groupDepth: -1 |
| | | column_All_constraints |
| | | { |
| | | columnId: 'All constraints' |
| | | dataPath: 'All constraints' |
| | | dataType: 'string' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 32 |
| | | } |
| | | column_ImgIsValid |
| | | { |
| | | columnId: 'ImgIsValid' |
| | | dataPath: 'ImgIsValid' |
| | | dataType: 'string' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 32 |
| | | } |
| | | column_Name |
| | | { |
| | | columnId: 'Name' |
| | | dataPath: 'Name' |
| | | dataType: 'string' |
| | | index: 2 |
| | | subtotals: '' |
| | | width: 270 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | form_FormSanityCheck |
| | | { |
| | | title: 'Sanity Check' |
| | | shown: false |
| | | componentID: 'FormSanityCheck' |
| | | layout |
| | | { |
| | | mode: 'dockright' |
| | | index: 2 |
| | | } |
| | | components |
| | | { |
| | | FormSanityCheck_PanelSanityCheckToolbar |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormSanityCheck_PanelSanityCheckContent |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormSanityCheck_PanelSanityCheckGroup |
| | | { |
| | | sizeRatio: 4 |
| | | } |
| | | FormSanityCheck_ListSanityCheckGroup |
| | | { |
| | | } |
| | | FormSanityCheck_DataSetLevelSanityCheckGroup |
| | | { |
| | | groupDepth: -1 |
| | | sort: 'DESC:IsShown,DESC:SanityCheckHighestCategory,DESC:_Expr3' |
| | | column_All_constraints |
| | | { |
| | | columnId: 'All constraints' |
| | | dataPath: 'All constraints' |
| | | dataType: 'string' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 32 |
| | | } |
| | | column_Show |
| | | { |
| | | columnId: 'Show' |
| | | dataPath: 'Show' |
| | | dataType: 'string' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 32 |
| | | } |
| | | column_Category |
| | | { |
| | | columnId: 'Category' |
| | | dataPath: 'Category' |
| | | dataType: 'string' |
| | | index: 2 |
| | | subtotals: '' |
| | | width: 32 |
| | | } |
| | | column_Group |
| | | { |
| | | columnId: 'Group' |
| | | dataPath: 'Group' |
| | | dataType: 'string' |
| | | index: 3 |
| | | subtotals: '' |
| | | width: 270 |
| | | } |
| | | column__Expr3 |
| | | { |
| | | columnId: '_Expr3' |
| | | dataPath: '_Expr3' |
| | | dataType: 'number' |
| | | index: 4 |
| | | subtotals: '' |
| | | width: 95 |
| | | } |
| | | } |
| | | FormSanityCheck_PanelSanityCheckMessage |
| | | { |
| | | sizeRatio: 5 |
| | | } |
| | | FormSanityCheck_ListSanityCheckMessage |
| | | { |
| | | } |
| | | FormSanityCheck_DataSetLevelSanityCheckMessage |
| | | { |
| | | groupDepth: -1 |
| | | sort: 'DESC:IsShown,SanityCheckGroup.Type,SanityCheckGroup.Group,Description' |
| | | column_All_constraints |
| | | { |
| | | columnId: 'All constraints' |
| | | dataPath: 'All constraints' |
| | | dataType: 'string' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 32 |
| | | } |
| | | column_Show |
| | | { |
| | | columnId: 'Show' |
| | | dataPath: 'Show' |
| | | dataType: 'string' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 32 |
| | | } |
| | | column_Category |
| | | { |
| | | columnId: 'Category' |
| | | dataPath: 'Category' |
| | | dataType: 'string' |
| | | index: 2 |
| | | subtotals: '' |
| | | width: 32 |
| | | } |
| | | column_Messages |
| | | { |
| | | columnId: 'Messages' |
| | | dataPath: 'Messages' |
| | | dataType: 'string' |
| | | index: 3 |
| | | subtotals: '' |
| | | width: 32 |
| | | } |
| | | column_Description |
| | | { |
| | | columnId: 'Description' |
| | | dataPath: 'Description' |
| | | dataType: 'string' |
| | | index: 4 |
| | | subtotals: '' |
| | | width: 585 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | form_FormDefaultCapacities |
| | | { |
| | | title: 'Default Capacities' |
| | | shown: false |
| | | componentID: 'FormDefaultCapacities' |
| | | layout |
| | | { |
| | | mode: 'dockright' |
| | | index: 3 |
| | | } |
| | | components |
| | | { |
| | | FormDefaultCapacities_PanelContent |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormDefaultCapacities_PanelTimeCapacities |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormDefaultCapacities_PanelQuantityAndTransportCapacities |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormDefaultCapacities_PanelStockingPointCapacities |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormDefaultCapacities_PanelActions |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | } |
| | | } |
| | | form_FormGeneralSettings |
| | | { |
| | | title: 'General Settings' |
| | | shown: true |
| | | componentID: 'FormGeneralSettings' |
| | | layout |
| | | { |
| | | mode: 'dockright' |
| | | index: 4 |
| | | } |
| | | components |
| | | { |
| | | FormGeneralSettings_PanelContent |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormGeneralSettings_PanelGeneralParameter |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormGeneralSettings_PanelLeadTimeDependent |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormGeneralSettings_PanelShelfLife |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormGeneralSettings_PanelSustainability |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormGeneralSettings_PanelForecastNetting |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormGeneralSettings_PanelActions |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | userconfigurableinformation |
| | | { |
| | | } |
| | | image: 'QUEUE' |
| | | page: '' |
| | | group: '' |
| | | index: 0 |
| | | description: '' |
| | | } |
| | | formatversion: 2 |
| | | id: 'BatchSetShiftPattern' |
| | | name: 'BatchSetShiftPattern' |
| | | isglobal: false |
| | | isroot: true |
| | | } |