From 793923d88f0a0168b1e365e06202784b4089c717 Mon Sep 17 00:00:00 2001 From: yanweiyuan3 <yanweiyuan3@gmail.com> Date: 星期三, 20 九月 2023 18:32:27 +0800 Subject: [PATCH] Order Lock frontend develop --- _Main/BL/Type_Scenario/Attribute_IsOrderLocked.qbl | 8 _Main/BL/Type_OrderLockLog/Attribute_UnitOfMeasureName.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockOrder.def | 15 _Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPHeader.def | 39 _Main/BL/Type_CustomerOrder/Attribute_LastModifyTime.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listActionBarPageOrderLock#1.def | 10 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_MatrixEditorProductPlanning#679.def | 210 ++++++++ _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockPlanning.def | 17 _Main/UI/MacroPlannerWebApp/Views/OrderLock.vw | 351 +++++++++++++ _Main/BL/Type_OrderLockLog/DefaultValue_LastModify.qbl | 6 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnCheckEditability.def | 43 + _Main/BL/Type_OrderLockLog/Attribute_LastModifyTime.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader#545.def | 125 ++++ _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixeditorContextMenuProductPlanning#1.def | 57 ++ _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnUserSelectionChanged.def | 19 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderClear_OnClick.def | 20 _Main/BL/Type_OrderLockLog/Attribute_Price.qbl | 7 _Main/BL/Type_OrderLockLog/Attribute_ProductID.qbl | 7 _Main/BL/Type_OrderLockLog/Attribute_StockingPointID.qbl | 7 _Main/BL/Type_OrderLockLog/Attribute_CustomerName#23.qbl | 7 _Main/BL/Type_OrderLockLog/Attribute_OrderID.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/_ROOT_Component_FormOrderLock.def | 55 ++ _Main/BL/Type_OrderLockLog/Attribute_EndDate.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeader_OnClick.def | 58 ++ _Main/BL/Type_OrderLockLog/Attribute_SalesSegmentName.qbl | 7 _Main/BL/Type_OrderLockLog/Attribute_End.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def | 51 + _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock#844.def | 42 + _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def | 51 + _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_RadioButtonGroupOrderLockHeader_OnChanged.def | 69 ++ _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuUnlock_OnClick.def | 30 + _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixEditorActionBarPageProductPlanning#1.def | 10 _Main/BL/Type_OrderLockLog/Attribute_IsFirmed#2.qbl | 7 _Main/BL/Type_CustomerOrder/Attribute_LastModify.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listContextMenuOrderLock#1.def | 10 _Main/BL/Type_OrderLockLog/_ROOT_Type_OrderLockLog.qbl | 10 _Main/BL/Relations/Relation_OrderLockLog_MacroPlan_MacroPlan_OrderLockLog.qbl | 23 _Main/BL/Type_OrderLockLog/Attribute_LastModify.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuLock_OnClick.def | 34 + _Main/BL/Type_OrderLockLog/Attribute_Quantity.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelMatrix#780.def | 24 _Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLock.def | 16 42 files changed, 1,487 insertions(+), 25 deletions(-) diff --git a/_Main/BL/Relations/Relation_OrderLockLog_MacroPlan_MacroPlan_OrderLockLog.qbl b/_Main/BL/Relations/Relation_OrderLockLog_MacroPlan_MacroPlan_OrderLockLog.qbl new file mode 100644 index 0000000..cb254ef --- /dev/null +++ b/_Main/BL/Relations/Relation_OrderLockLog_MacroPlan_MacroPlan_OrderLockLog.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation OrderLockLog_MacroPlan_MacroPlan_OrderLockLog +{ + #keys: '1[412960.0.217504333]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide MacroPlan + { + #keys: '3[412960.0.217504335][412960.0.217504334][412960.0.217504336]' + Cardinality: '0to1' + ObjectDefinition: OrderLockLog + OwningSide: 'Reference' + } + RelationSide.RightSide OrderLockLog + { + #keys: '3[412960.0.217504338][412960.0.217504337][412960.0.217504339]' + Cardinality: '1toN' + ObjectDefinition: MacroPlan + OwningSide: 'Owned' + } +} diff --git a/_Main/BL/Type_CustomerOrder/Attribute_LastModify.qbl b/_Main/BL/Type_CustomerOrder/Attribute_LastModify.qbl new file mode 100644 index 0000000..14a756a --- /dev/null +++ b/_Main/BL/Type_CustomerOrder/Attribute_LastModify.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute LastModify +{ + #keys: '3[412960.0.217504307][412960.0.217504306][412960.0.217504308]' + Description: '鏈�鍚庝慨鏀逛汉' + ValueType: String +} diff --git a/_Main/BL/Type_CustomerOrder/Attribute_LastModifyTime.qbl b/_Main/BL/Type_CustomerOrder/Attribute_LastModifyTime.qbl new file mode 100644 index 0000000..530eb19 --- /dev/null +++ b/_Main/BL/Type_CustomerOrder/Attribute_LastModifyTime.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute LastModifyTime +{ + #keys: '3[412960.0.217504317][412960.0.217504316][412960.0.217504318]' + Description: '鏈�鍚庢搷浣滄椂闂�' + ValueType: DateTime +} diff --git "a/_Main/BL/Type_OrderLockLog/Attribute_CustomerName\04323.qbl" "b/_Main/BL/Type_OrderLockLog/Attribute_CustomerName\04323.qbl" new file mode 100644 index 0000000..77e60f5 --- /dev/null +++ "b/_Main/BL/Type_OrderLockLog/Attribute_CustomerName\04323.qbl" @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute CustomerName +{ + #keys: '3[412960.0.217504426][412960.0.217504425][412960.0.217504427]' + ValueType: String +} diff --git a/_Main/BL/Type_OrderLockLog/Attribute_End.qbl b/_Main/BL/Type_OrderLockLog/Attribute_End.qbl new file mode 100644 index 0000000..bc7fd91 --- /dev/null +++ b/_Main/BL/Type_OrderLockLog/Attribute_End.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute End +{ + #keys: '3[412960.0.217504488][412960.0.217504487][412960.0.217504489]' + ValueType: Date +} diff --git a/_Main/BL/Type_OrderLockLog/Attribute_EndDate.qbl b/_Main/BL/Type_OrderLockLog/Attribute_EndDate.qbl new file mode 100644 index 0000000..3f4c39b --- /dev/null +++ b/_Main/BL/Type_OrderLockLog/Attribute_EndDate.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute EndDate +{ + #keys: '3[412960.0.217504467][412960.0.217504466][412960.0.217504468]' + ValueType: Date +} diff --git "a/_Main/BL/Type_OrderLockLog/Attribute_IsFirmed\0432.qbl" "b/_Main/BL/Type_OrderLockLog/Attribute_IsFirmed\0432.qbl" new file mode 100644 index 0000000..7594124 --- /dev/null +++ "b/_Main/BL/Type_OrderLockLog/Attribute_IsFirmed\0432.qbl" @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute IsFirmed +{ + #keys: '3[412960.0.217504477][412960.0.217504476][412960.0.217504478]' + ValueType: Boolean +} diff --git a/_Main/BL/Type_OrderLockLog/Attribute_LastModify.qbl b/_Main/BL/Type_OrderLockLog/Attribute_LastModify.qbl new file mode 100644 index 0000000..9e81f78 --- /dev/null +++ b/_Main/BL/Type_OrderLockLog/Attribute_LastModify.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute LastModify +{ + #keys: '3[412960.0.217504501][412960.0.217504500][412960.0.217504502]' + Description: '鏈�鍚庝慨鏀逛汉' + ValueType: String +} diff --git a/_Main/BL/Type_OrderLockLog/Attribute_LastModifyTime.qbl b/_Main/BL/Type_OrderLockLog/Attribute_LastModifyTime.qbl new file mode 100644 index 0000000..8698211 --- /dev/null +++ b/_Main/BL/Type_OrderLockLog/Attribute_LastModifyTime.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute LastModifyTime +{ + #keys: '3[412960.0.217504498][412960.0.217504497][412960.0.217504499]' + Description: '鏈�鍚庢搷浣滄椂闂�' + ValueType: DateTime +} diff --git a/_Main/BL/Type_OrderLockLog/Attribute_OrderID.qbl b/_Main/BL/Type_OrderLockLog/Attribute_OrderID.qbl new file mode 100644 index 0000000..fe37524 --- /dev/null +++ b/_Main/BL/Type_OrderLockLog/Attribute_OrderID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute OrderID +{ + #keys: '3[412960.0.217504386][412960.0.217504385][412960.0.217504387]' + ValueType: String +} diff --git a/_Main/BL/Type_OrderLockLog/Attribute_Price.qbl b/_Main/BL/Type_OrderLockLog/Attribute_Price.qbl new file mode 100644 index 0000000..b0c9e62 --- /dev/null +++ b/_Main/BL/Type_OrderLockLog/Attribute_Price.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute Price +{ + #keys: '3[412960.0.217504457][412960.0.217504456][412960.0.217504458]' + ValueType: Real +} diff --git a/_Main/BL/Type_OrderLockLog/Attribute_ProductID.qbl b/_Main/BL/Type_OrderLockLog/Attribute_ProductID.qbl new file mode 100644 index 0000000..46b6f3b --- /dev/null +++ b/_Main/BL/Type_OrderLockLog/Attribute_ProductID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ProductID +{ + #keys: '3[412960.0.217504396][412960.0.217504395][412960.0.217504397]' + ValueType: String +} diff --git a/_Main/BL/Type_OrderLockLog/Attribute_Quantity.qbl b/_Main/BL/Type_OrderLockLog/Attribute_Quantity.qbl new file mode 100644 index 0000000..5216b60 --- /dev/null +++ b/_Main/BL/Type_OrderLockLog/Attribute_Quantity.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute Quantity +{ + #keys: '3[412960.0.217504437][412960.0.217504436][412960.0.217504438]' + ValueType: Real +} diff --git a/_Main/BL/Type_OrderLockLog/Attribute_SalesSegmentName.qbl b/_Main/BL/Type_OrderLockLog/Attribute_SalesSegmentName.qbl new file mode 100644 index 0000000..8e484e2 --- /dev/null +++ b/_Main/BL/Type_OrderLockLog/Attribute_SalesSegmentName.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute SalesSegmentName +{ + #keys: '3[412960.0.217504406][412960.0.217504405][412960.0.217504407]' + ValueType: String +} diff --git a/_Main/BL/Type_OrderLockLog/Attribute_StockingPointID.qbl b/_Main/BL/Type_OrderLockLog/Attribute_StockingPointID.qbl new file mode 100644 index 0000000..a344af9 --- /dev/null +++ b/_Main/BL/Type_OrderLockLog/Attribute_StockingPointID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute StockingPointID +{ + #keys: '3[412960.0.217504416][412960.0.217504415][412960.0.217504417]' + ValueType: String +} diff --git a/_Main/BL/Type_OrderLockLog/Attribute_UnitOfMeasureName.qbl b/_Main/BL/Type_OrderLockLog/Attribute_UnitOfMeasureName.qbl new file mode 100644 index 0000000..fccc2cb --- /dev/null +++ b/_Main/BL/Type_OrderLockLog/Attribute_UnitOfMeasureName.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute UnitOfMeasureName +{ + #keys: '3[412960.0.217504447][412960.0.217504446][412960.0.217504448]' + ValueType: String +} diff --git a/_Main/BL/Type_OrderLockLog/DefaultValue_LastModify.qbl b/_Main/BL/Type_OrderLockLog/DefaultValue_LastModify.qbl new file mode 100644 index 0000000..6ef422d --- /dev/null +++ b/_Main/BL/Type_OrderLockLog/DefaultValue_LastModify.qbl @@ -0,0 +1,6 @@ +Quintiq file version 2.0 +#parent: #root +DefaultValue +{ + TargetAttribute: LastModify +} diff --git a/_Main/BL/Type_OrderLockLog/_ROOT_Type_OrderLockLog.qbl b/_Main/BL/Type_OrderLockLog/_ROOT_Type_OrderLockLog.qbl new file mode 100644 index 0000000..ac23238 --- /dev/null +++ b/_Main/BL/Type_OrderLockLog/_ROOT_Type_OrderLockLog.qbl @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type OrderLockLog +{ + #keys: '5[412960.0.217504330][412960.0.217504328][0.0.0][412960.0.217504329][412960.0.217504331]' + BaseType: Object + Description: '璁㈠崟閿佸畾鎿嶄綔鏃ュ織' + StructuredName: 'OrderLockLogs' +} diff --git a/_Main/BL/Type_Scenario/Attribute_IsOrderLocked.qbl b/_Main/BL/Type_Scenario/Attribute_IsOrderLocked.qbl new file mode 100644 index 0000000..75d68aa --- /dev/null +++ b/_Main/BL/Type_Scenario/Attribute_IsOrderLocked.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute IsOrderLocked +{ + #keys: '3[412960.0.212420059][412960.0.212420058][412960.0.212420060]' + Description: '璁㈠崟閿佸畾鐨勬槸鍚﹂攣瀹氱瓫閫夋潯浠�' + ValueType: String +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock\043844.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock\043844.def" new file mode 100644 index 0000000..17d2167 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_ListOrderLock\043844.def" @@ -0,0 +1,42 @@ +Quintiq file version 2.0 +Component ListOrderLock id:ListOrderLock_844 +{ + #keys: '[412960.0.217980651]' + BaseType: 'WebList' + Children: + [ + Component DataExtractorOrderLock743 + { + #keys: '[412960.0.217980652]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'structured[CustomerOrder]' + Description: '鑾峰彇璁㈠崟' + Source: 'DataHolderOrderLock' + Taborder: 0 + Transformation: 'Elements' + ] + } + #child: listActionBarPageOrderLock_1 + Component DataSetLevelOrderLock + { + #keys: '[412960.0.217980654]' + BaseType: 'WebDataSetLevel' + Children: + [ + #child: listContextMenuOrderLock_1 + ] + Properties: + [ + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsFirmed","title":"IsFirmed","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsFirmed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"First.AsPlanningBaseSalesDemandInPeriod.End","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"First.AsPlanningBaseSalesDemandInPeriod.End"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModify","title":"LastModify","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModify"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModifyTime","title":"LastModifyTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModifyTime"}}]' + ContextMenu: 'listContextMenuOrderLock' + Taborder: 2 + ] + } + ] + Properties: + [ + Taborder: 0 + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_MatrixEditorProductPlanning\043679.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_MatrixEditorProductPlanning\043679.def" new file mode 100644 index 0000000..401adf5 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_MatrixEditorProductPlanning\043679.def" @@ -0,0 +1,210 @@ +Quintiq file version 2.0 +Component MatrixEditorProductPlanning id:MatrixEditorProductPlanning_679 +{ + #keys: '[412960.0.220270414]' + BaseType: 'WebMatrixEditor' + Children: + [ + Component MatrixEditorCellPISPIP + { + #keys: '[412960.0.220270415]' + BaseType: 'WebMatrixEditorCell' + Children: + [ + Component DataExtractorPISPIP + { + #keys: '[412960.0.220270416]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'structured[ProductInStockingPoint_MP]' + FixedFilter: 'not object.ProductInStockingPoint_MP().IsSystem() and object.ProductInStockingPoint_MP().IsLeaf()' + Source: 'ApplicationMacroPlanner.DataHolderPISP' + Taborder: 0 + Transformation: 'Elements.ProductInStockingPointInPeriod' + ] + } + ] + Properties: + [ + Attributes: 'DisplaySupplyQuantity;DependentDemandAndSalesDemandQuantity;TargetInventoryLevel;InventoryLevelEnd;StockLevelInDays' + Column: 'Period_MP' + Row: 'ProductInStockingPoint_MP' + Taborder: 2 + ] + } + Component MatrixEditorRowsPISP + { + #keys: '[412960.0.220270417]' + BaseType: 'WebMatrixEditorHeaderLevel' + Children: + [ + Component DataExtractorPISP + { + #keys: '[412960.0.220270418]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'CustomerOrder' + ExtractionMode: 'Selected' + FixedFilter: 'not object.IsSystem() and object.IsLeaf()' + Source: 'ListOrderLock' + Taborder: 0 + Transformation: 'ProductInStockingPoint_MP' + ] + } + ] + Properties: + [ + Legend: 'Name' + SortCriteria: 'Product_MP.DisplayIndex;Name' + Taborder: 0 + ] + } + Component MatrixEditorColumnsPeriod + { + #keys: '[412960.0.220270419]' + BaseType: 'WebMatrixEditorHeaderLevel' + Children: + [ + Component DataExtractorPeriod + { + #keys: '[412960.0.220270420]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'structured[Period_MP]' + Source: 'ApplicationMacroPlanner.DataHolderPeriods' + Taborder: 0 + Transformation: 'Elements' + ] + } + ] + Properties: + [ + Legend: 'Start' + SortCriteria: 'Start' + Taborder: 1 + ] + } + Component UserConfigurableInformationMatrixEditorProductPlanning + { + #keys: '[412960.0.220270421]' + BaseType: 'WebUserConfigurableInformation' + Properties: + [ + Identifier: 'Cell: PISPIP' + ObjectType: 'ProductInStockingPointInPeriod' + Taborder: 3 + Text: 'Test text' + Tooltip: '<table><tr><td><b>SYNONYM(object.InventoryLevelEnd())</b></td><td>VALUE( MacroPlan::GetDisplayValue( object.InventoryLevelEnd() ) )</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td><td><b>Inventory holding cost </b></td><td>VALUE(object.TotalBaseInventoryHoldingCost())VALUE( \' \'+ object.ProductInStockingPoint_MP().StockingPoint_MP().Currency_MP().Symbol() )</td><td>VALUE( \'[\' + object.TotalBaseInventoryHoldingCostPerQuantity().Format(\'N(Dec(2))\') )</td><td>VALUE( object.ProductInStockingPoint_MP().StockingPoint_MP().Currency_MP().Symbol() + \'/\' + object.ProductInStockingPoint_MP().UnitOfMeasure_MP().Name() + \']\' ) </td></tr><tr><td><b>SYNONYM(object.StockLevelInDays())</b></td><td>VALUE(object.StockLevelInDays)</td><td>day</td></tr><tr><td><b>Total supply </b></td><td>VALUE(object.SupplyQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td><td/><td><b>Total demand </b></td><td>VALUE(object.GetDemandQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td></tr><br><tr><td><b>Inventory start </b></td><td>VALUE( guard( MacroPlan::GetDisplayValue( object.InventoryLevelStartPISPIP().InventoryLevelEnd() ), 0.0 ) )</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td><td/><td><b>Sales demand </b></td><td>VALUE(object.SalesDemandQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td></tr><tr><td><b>New supply </b></td><td>VALUE(object.NewSupplyQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td><td/><td><b>Dependent demand </b></td><td>VALUE(object.DependentDemandQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td></tr><tr><td><b>Inventory supply </b></td><td>VALUE(object.InventorySupplyQuantity())</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td><td/><td><b>Fulfilled demand </b></td><td>VALUE(object.FulfilledDemandQuantity() )</td><td>VALUE(object.ProductInStockingPoint_MP().UnitOfMeasureName())</td></tr></table><hr>VALUE( object.ImgHasFeedback() ) VALUE( ifexpr( object.HasFeedback() , " Feedback message exist. Refer to Supply Planning matrix for details." , "" ) )' + ] + } + #child: matrixEditorActionBarPageProductPlanning_1 + #child: matrixeditorContextMenuProductPlanning_1 + ] + Properties: + [ + AllowAttributeConfiguration: true + AllowMultipleAttributes: true + Columns: 'MatrixEditorColumnsPeriod' + ContextMenu: 'matrixeditorContextMenuProductPlanning' + Rows: 'MatrixEditorRowsPISP' + ShowEditability: true + ShowSingleAttribute: true + Taborder: 0 + ] + ResponseDefinitions: + [ + DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebMenu_OnClick + { + #keys: '[412960.0.220270401]' + Initiator: 'WebMenu' + IsInherited: false + ResponseType: 'OnClick' + Arguments: + [ + ResponseDefinitionArgument selection + { + #keys: '[6763.0.7990336]' + Binding: 'this.Selection()' + } + ] + } + DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebButton_OnClick + { + #keys: '[412960.0.220270400]' + Initiator: 'WebButton' + IsInherited: false + ResponseType: 'OnClick' + Arguments: + [ + ResponseDefinitionArgument selection + { + #keys: '[6763.0.7990409]' + Binding: 'this.Selection()' + } + ] + } + DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebMenu_OnClick_119 + { + #keys: '[412960.0.220270399]' + Initiator: 'WebMenu' + IsInherited: false + ResponseType: 'OnClick' + Arguments: + [ + ResponseDefinitionArgument selectedrows + { + #keys: '[6763.0.7990482]' + Binding: 'this.SelectedRows()' + } + ] + } + DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebButton_OnClick_720 + { + #keys: '[412960.0.220270398]' + Initiator: 'WebButton' + IsInherited: false + ResponseType: 'OnClick' + Arguments: + [ + ResponseDefinitionArgument selectedrows + { + #keys: '[6763.0.7990555]' + Binding: 'this.SelectedRows()' + } + ] + } + DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebMenu_OnClick_640 + { + #keys: '[412960.0.220270397]' + Initiator: 'WebMenu' + IsInherited: false + ResponseType: 'OnClick' + Arguments: + [ + ResponseDefinitionArgument selectedcolumns + { + #keys: '[6763.0.7990628]' + Binding: 'this.SelectedColumns()' + } + ] + } + DelegatedResponseDefinition OnClick id:Responsedef_MatrixEditorProductPlanning_679_WebButton_OnClick_582 + { + #keys: '[412960.0.220270396]' + Initiator: 'WebButton' + IsInherited: false + ResponseType: 'OnClick' + Arguments: + [ + ResponseDefinitionArgument selectedcolumns + { + #keys: '[6763.0.7990701]' + Binding: 'this.SelectedColumns()' + } + ] + } + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelMatrix\043780.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelMatrix\043780.def" new file mode 100644 index 0000000..3aee833 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelMatrix\043780.def" @@ -0,0 +1,24 @@ +Quintiq file version 2.0 +Component PanelMatrix id:PanelMatrix_780 +{ + #keys: '[412960.0.220270412]' + BaseType: 'WebPanel' + Children: + [ + Component DataHolderSelectedPISPIPsInProductPlanningMatrix + { + #keys: '[412960.0.220270413]' + BaseType: 'WebDataHolder' + Databinding: 'structured[ProductInStockingPointInPeriod]*' + Properties: + [ + Taborder: 1 + ] + } + #child: MatrixEditorProductPlanning_679 + ] + Properties: + [ + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLock.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLock.def new file mode 100644 index 0000000..8565401 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLock.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +Component PanelOrderLock +{ + #keys: '[412960.0.212571359]' + BaseType: 'WebPanel' + Children: + [ + #child: PanelOrderLockHeader_545 + #child: PanelOrderLockOrder + #child: PanelOrderLockPlanning + ] + Properties: + [ + Taborder: 0 + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader\043545.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader\043545.def" new file mode 100644 index 0000000..4ff0600 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockHeader\043545.def" @@ -0,0 +1,125 @@ +Quintiq file version 2.0 +Component PanelOrderLockHeader id:PanelOrderLockHeader_545 +{ + #keys: '[412960.0.212571440]' + BaseType: 'WebPanel' + Children: + [ + Component LabelOrderLockHeaderVersion + { + #keys: '[412960.0.212571441]' + BaseType: 'WebLabel' + Properties: + [ + Description: 'MPS鐗堟湰鍚嶇О' + Label: 'MPS鐗堟湰锛�' + Taborder: 0 + ] + } + Component EditFieldOrderLockHeader + { + #keys: '[412960.0.212571468]' + BaseType: 'WebEditField' + Properties: + [ + Description: '妯$硦鎼滅储绛涢�夋' + PlaceHolder: '妯$硦鎼滅储' + Taborder: 1 + ] + } + Component DateSelectorOrderLockHeaderCustomerOrder + { + #keys: '[412960.0.212571527]' + BaseType: 'WebDateSelector' + Properties: + [ + Date: 2023-01-01 + Description: '瀹㈡埛闇�姹傛椂闂�' + Label: '瀹㈡埛闇�姹傛椂闂�' + Taborder: 3 + ] + } + Component DateSelectorOrderLockHeaderPlanDeliver + { + #keys: '[412960.0.212571611]' + BaseType: 'WebDateSelector' + Properties: + [ + Date: 2023-01-01 + Description: '璁″垝浜や粯鏃堕棿' + Label: '璁″垝浜や粯鏃堕棿' + Taborder: 4 + ] + } + Component ButtonOrderLockHeader + { + #keys: '[412960.0.212571669]' + BaseType: 'WebButton' + Properties: + [ + ButtonSize: 'compact' + Description: '妯$硦鎼滅储鎸夐挳' + Label: '鎼滅储' + Taborder: 2 + ] + } + Component RadioButtonGroupOrderLockHeader + { + #keys: '[412960.0.212571696]' + BaseType: 'WebRadioButtonGroup' + Properties: + [ + BoundValue: 'all' + ButtonLabels: '宸查攣瀹�;鏈攣瀹�;鍏ㄩ儴' + ButtonValues: 'locked;unlocked;all' + DataBinding: 'DataHolderOrderLockGlobal.Data.IsOrderLocked' + Description: '鏄惁閿佸畾鐨勭偣閫夋' + Orientation: 'horizontal' + Taborder: 5 + ] + } + Component ButtonOrderLockHeaderLock + { + #keys: '[412960.0.221760476]' + BaseType: 'WebButton' + Properties: + [ + ButtonSize: 'compact' + Description: '璁㈠崟閿佸畾' + Label: '閿佸畾' + Taborder: 7 + ] + } + Component ButtonOrderLockHeaderUnlock + { + #keys: '[412960.0.221760488]' + BaseType: 'WebButton' + Properties: + [ + ButtonSize: 'compact' + Description: '璁㈠崟瑙i攣' + Label: '瑙i攣' + Taborder: 8 + ] + } + Component ButtonOrderLockHeaderClear + { + #keys: '[412960.0.223264324]' + BaseType: 'WebButton' + Properties: + [ + ButtonSize: 'compact' + Description: '娓呴櫎绛涢�夐」' + Label: '娓呴櫎绛涢��' + Taborder: 6 + ] + } + ] + Properties: + [ + Description: '鏀剧疆lable锛屾寜閽瓑' + FixedSize: true + Orientation: 'horizontal' + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockOrder.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockOrder.def new file mode 100644 index 0000000..3a8891a --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockOrder.def @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +Component PanelOrderLockOrder +{ + #keys: '[412960.0.217980613]' + BaseType: 'WebPanel' + Children: + [ + #child: ListOrderLock_844 + ] + Properties: + [ + Description: '璁㈠崟淇℃伅灞曠ず' + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockPlanning.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockPlanning.def new file mode 100644 index 0000000..e908a3c --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_PanelOrderLockPlanning.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +Component PanelOrderLockPlanning +{ + #keys: '[412960.0.220270252]' + BaseType: 'WebPanel' + Children: + [ + #child: PanelMatrix_780 + ] + Properties: + [ + Border: true + Description: '璁㈠崟瀵瑰簲鐨勮鍒掓暟鎹�' + Taborder: 2 + Title: '璁″垝璇︽儏' + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listActionBarPageOrderLock\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listActionBarPageOrderLock\0431.def" new file mode 100644 index 0000000..a529251 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listActionBarPageOrderLock\0431.def" @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component listActionBarPageOrderLock id:listActionBarPageOrderLock_1 +{ + #keys: '[412960.0.217980653]' + BaseType: 'listActionBarPage' + Properties: + [ + Taborder: 1 + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listContextMenuOrderLock\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listContextMenuOrderLock\0431.def" new file mode 100644 index 0000000..bc2e00d --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_listContextMenuOrderLock\0431.def" @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component listContextMenuOrderLock id:listContextMenuOrderLock_1 +{ + #keys: '[412960.0.217980655]' + BaseType: 'listContextMenu' + Properties: + [ + Taborder: 0 + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixEditorActionBarPageProductPlanning\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixEditorActionBarPageProductPlanning\0431.def" new file mode 100644 index 0000000..4e41b90 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixEditorActionBarPageProductPlanning\0431.def" @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component matrixEditorActionBarPageProductPlanning id:matrixEditorActionBarPageProductPlanning_1 +{ + #keys: '[412960.0.220270422]' + BaseType: 'matrixEditorActionBarPage' + Properties: + [ + Taborder: 5 + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixeditorContextMenuProductPlanning\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixeditorContextMenuProductPlanning\0431.def" new file mode 100644 index 0000000..79d4472 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Component_matrixeditorContextMenuProductPlanning\0431.def" @@ -0,0 +1,57 @@ +Quintiq file version 2.0 +Component matrixeditorContextMenuProductPlanning id:matrixeditorContextMenuProductPlanning_1 +{ + #keys: '[412960.0.220270423]' + BaseType: 'matrixeditorContextMenu' + Children: + [ + Component MenuCopy + { + #keys: '[138034.3.1296123318]' + BaseType: 'MenuCopy' + IsDerived: true + Properties: + [ + Taborder: 2 + ] + } + Component MenuSeparator3 + { + #keys: '[412960.0.220270424]' + BaseType: 'WebMenu' + Properties: + [ + Separator: true + Taborder: 1 + ] + } + Component MenuLock + { + #keys: '[412960.0.220270427]' + BaseType: 'WebMenu' + Properties: + [ + DelegationID: 'ActionBarPlan_Lock' + Image: 'LOCK' + Taborder: 3 + Title: 'Lock' + ] + } + Component MenuUnlock + { + #keys: '[412960.0.220270428]' + BaseType: 'WebMenu' + Properties: + [ + DelegationID: 'ActionBarPlan_Unlock' + Image: 'LOCK_OPEN' + Taborder: 4 + Title: 'Unlock' + ] + } + ] + Properties: + [ + Taborder: 4 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuLock_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuLock_OnClick.def new file mode 100644 index 0000000..38cee0b --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuLock_OnClick.def @@ -0,0 +1,34 @@ +Quintiq file version 2.0 +#parent: MatrixEditorProductPlanning_679 +Response OnClick ( + structured[ProductInStockingPointInPeriod] selection +) id:Response_MatrixEditorProductPlanning_679_MenuLock_OnClick +{ + #keys: '[412960.0.220270410]' + CanBindMultiple: false + DefinitionID => /MatrixEditorProductPlanning_679/Responsedef_MatrixEditorProductPlanning_679_WebMenu_OnClick + Initiator: 'MenuLock' + Precondition: + [* + return ProductInStockingPointInPeriod::CanLockUnlock( selection, feedback ); + *] + QuillAction + { + Body: + [* + // Lock total supply quantity for PISPIPs + // This is a workaround, we supposedly set the bindingtype of selection as the subtype, but + // the response would have trouble handling multiple cell selection, so for now, we bind the base type + // then select the subtype + + + pispipLeafs := selectset( selection, + Elements.astype( ProductInStockingPointInPeriodPlanningLeaf ), + pispip, + true ); + + ProductInStockingPointInPeriod::LockUnlockPlanning( pispipLeafs, true, true ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuUnlock_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuUnlock_OnClick.def new file mode 100644 index 0000000..7615c08 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_MenuUnlock_OnClick.def @@ -0,0 +1,30 @@ +Quintiq file version 2.0 +#parent: MatrixEditorProductPlanning_679 +Response OnClick ( + structured[ProductInStockingPointInPeriod] selection +) id:Response_MatrixEditorProductPlanning_679_MenuUnlock_OnClick +{ + #keys: '[412960.0.220270407]' + CanBindMultiple: false + DefinitionID => /MatrixEditorProductPlanning_679/Responsedef_MatrixEditorProductPlanning_679_WebMenu_OnClick + Initiator: 'MenuUnlock' + Precondition: + [* + return ProductInStockingPointInPeriod::CanLockUnlock( selection, feedback ); + *] + QuillAction + { + Body: + [* + // Unlock the total supply quantity of pispips + // This is a workaround, we supposedly set the bindingtype of selection as the subtype, but + // the response would have trouble handling multiple cell selection, so for now, we bind the base type + // then select the subtype + + pispipLeafs := selectset( selection, Elements.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispip, + true ); + ProductInStockingPointInPeriod::LockUnlockPlanning( pispipLeafs, false, true ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnCheckEditability.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnCheckEditability.def new file mode 100644 index 0000000..2dea2ca --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnCheckEditability.def @@ -0,0 +1,43 @@ +Quintiq file version 2.0 +#parent: MatrixEditorProductPlanning_679 +Response OnCheckEditability ( + structured[ProductInStockingPointInPeriodPlanning] cell, + Real value +) id:Response_MatrixEditorProductPlanning_679_OnCheckEditability +{ + #keys: '[412960.0.220270404]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebMatrixEditor_OnCheckEditability' + QuillAction + { + Body: + [* + //Precondition + attributes := construct( Strings ); + attributes.Add(focusedattribute); + isSupply_o := false; + feedback :=""; + + cond := MacroPlan.CanPlan( feedback ) + and ProductInStockingPointInPeriod::CanEnterSupplyQuantity( feedback, + cell, + attributes, + isSupply_o ); + if( cond ) + { + if( isSupply_o ) + { + periods := selectset( cell, Elements.Period_MP, period, true ); + cond := ScenarioManager::CanStartSmartPlan( ScenarioManager, + DataHolderActiveScenario.Data(), + true, + periods, + feedback ); + } + } + editinfo.CanEdit( cond ); + editinfo.UserHint( feedback ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnUserSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnUserSelectionChanged.def new file mode 100644 index 0000000..d90381f --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_MatrixEditorProductPlanning_679_OnUserSelectionChanged.def @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: MatrixEditorProductPlanning_679 +Response OnUserSelectionChanged ( + structured[ProductInStockingPointInPeriod] selection +) id:Response_MatrixEditorProductPlanning_679_OnUserSelectionChanged +{ + #keys: '[412960.0.220270402]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebMatrixEditor_OnUserSelectionChanged' + QuillAction + { + Body: + [* + //Assign selection to data holder + DataHolderSelectedPISPIPsInProductPlanningMatrix.Data( selection.Copy() ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderClear_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderClear_OnClick.def new file mode 100644 index 0000000..2adc0a4 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderClear_OnClick.def @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: PanelOrderLockHeader_545/ButtonOrderLockHeaderClear +Response OnClick () id:Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderClear_OnClick +{ + #keys: '[412960.0.223264347]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + EditFieldOrderLockHeader.Text( "" ); + DateSelectorOrderLockHeaderCustomerOrder.Date( Date::Construct(2023,1,1) ); + DateSelectorOrderLockHeaderPlanDeliver.Date( Date::Construct(2023,1,1) ); + RadioButtonGroupOrderLockHeader.BoundValue( "all" ); + DataExtractorOrderLock.FixedFilter( "true" ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeader_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeader_OnClick.def new file mode 100644 index 0000000..ddeca1c --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeader_OnClick.def @@ -0,0 +1,58 @@ +Quintiq file version 2.0 +#parent: PanelOrderLockHeader_545/ButtonOrderLockHeader +Response OnClick () id:Response_PanelOrderLockHeader_545_ButtonOrderLockHeader_OnClick +{ + #keys: '[412960.0.221841965]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + thisfilter := "( object.OrderID().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " )" + + " or " + "object.ProductID().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " )" + + " or " + "object.UnitOfMeasureName().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " )" + + " or " + "object.StockingPointID().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " )" + + " or " + "object.CustomerName().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " )" + + " or " + "object.SalesSegmentName().LikeUserLocale( " + EditFieldOrderLockHeader.Text().AsQUILL() + " ) )" ; + + existfilter := DataExtractorOrderLock.FixedFilter(); + if( existfilter = "true" ){ + existfilter := ""; + } + existfilterlist := existfilter.Tokenize( " and " ); + + newfilter := ""; + findcount := 0; + traverse( existfilterlist, Elements, filter ){ + if( filter.FindString( "OrderID()", 0 ) >= 0 ){ + if( newfilter = "" ){ + newfilter := thisfilter; + }else{ + newfilter := newfilter + " and " + thisfilter; + } + findcount := 1; + }else{ + if( newfilter = "" ){ + newfilter := filter; + }else{ + newfilter := newfilter + " and " + filter; + } + } + } + + if( findcount = 0 ){ + if( newfilter = "" ){ + newfilter := thisfilter; + }else{ + newfilter := newfilter + " and " + thisfilter; + } + } + + info( newfilter ); + + DataExtractorOrderLock.FixedFilter( newfilter ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def new file mode 100644 index 0000000..5fa0f71 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_O.def @@ -0,0 +1,51 @@ +Quintiq file version 2.0 +#parent: PanelOrderLockHeader_545/DateSelectorOrderLockHeaderCustomerOrder +Response OnChanged () id:Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderCustomerOrder_OnChanged +{ + #keys: '[412960.0.221842202]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged' + GroupServerCalls: true + QuillAction + { + Body: + [* + existfilter := DataExtractorOrderLock.FixedFilter(); + if( existfilter = "true" ){ + existfilter := ""; + } + existfilterlist := existfilter.Tokenize( " and " ); + + newfilter := ""; + findcount := 0; + traverse( existfilterlist, Elements, filter ){ + if( filter.FindString( "EndDate()", 0 ) >= 0 ){ + if( newfilter = "" ){ + newfilter := "( object.EndDate() = " + this.Date().AsQUILL() + " )"; + }else{ + newfilter := newfilter + " and " + "( object.EndDate() = " + this.Date().AsQUILL() + " )"; + } + findcount := 1; + }else{ + if( newfilter = "" ){ + newfilter := filter; + }else{ + newfilter := newfilter + " and " + filter; + } + } + } + + if( findcount = 0 ){ + if( newfilter = "" ){ + newfilter := "( object.EndDate() = " + this.Date().AsQUILL() + " )"; + }else{ + newfilter := newfilter + " and " + "( object.EndDate() = " + this.Date().AsQUILL() + " )"; + } + } + + info( newfilter ); + + DataExtractorOrderLock.FixedFilter( newfilter ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def new file mode 100644 index 0000000..a5fda9c --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnC.def @@ -0,0 +1,51 @@ +Quintiq file version 2.0 +#parent: PanelOrderLockHeader_545/DateSelectorOrderLockHeaderPlanDeliver +Response OnChanged () id:Response_PanelOrderLockHeader_545_DateSelectorOrderLockHeaderPlanDeliver_OnChanged +{ + #keys: '[412960.0.221842649]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged' + GroupServerCalls: true + QuillAction + { + Body: + [* + existfilter := DataExtractorOrderLock.FixedFilter(); + if( existfilter = "true" ){ + existfilter := ""; + } + existfilterlist := existfilter.Tokenize( " and " ); + + newfilter := ""; + findcount := 0; + traverse( existfilterlist, Elements, filter ){ + if( filter.FindString( "End()", 0 ) >= 0 and filter.FindString( "EndDate()", 0 ) < 0 ){ + if( newfilter = "" ){ + newfilter := "( object.First().AsPlanningBaseSalesDemandInPeriod().End().Date() = " + this.Date().AsQUILL() + " )"; + }else{ + newfilter := newfilter + " and " + "( object.First().AsPlanningBaseSalesDemandInPeriod().End().Date() = " + this.Date().AsQUILL() + " )"; + } + findcount := 1; + }else{ + if( newfilter = "" ){ + newfilter := filter; + }else{ + newfilter := newfilter + " and " + filter; + } + } + } + + if( findcount = 0 ){ + if( newfilter = "" ){ + newfilter := "( object.First().AsPlanningBaseSalesDemandInPeriod().End().Date() = " + this.Date().AsQUILL() + " )"; + }else{ + newfilter := newfilter + " and " + "( object.First().AsPlanningBaseSalesDemandInPeriod().End().Date() = " + this.Date().AsQUILL() + " )"; + } + } + + info( newfilter ); + + DataExtractorOrderLock.FixedFilter( newfilter ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_RadioButtonGroupOrderLockHeader_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_RadioButtonGroupOrderLockHeader_OnChanged.def new file mode 100644 index 0000000..5e6da38 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_RadioButtonGroupOrderLockHeader_OnChanged.def @@ -0,0 +1,69 @@ +Quintiq file version 2.0 +#parent: PanelOrderLockHeader_545/RadioButtonGroupOrderLockHeader +Response OnChanged () id:Response_PanelOrderLockHeader_545_RadioButtonGroupOrderLockHeader_OnChanged +{ + #keys: '[412960.0.221843171]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebRadioButtonGroup_OnChanged' + GroupServerCalls: true + QuillAction + { + Body: + [* + existfilter := DataExtractorOrderLock.FixedFilter(); + if( existfilter = "true" ){ + existfilter := ""; + } + existfilterlist := existfilter.Tokenize( " and " ); + + newfilter := ""; + findcount := 0; + traverse( existfilterlist, Elements, filter ){ + if( filter.FindString( "IsFirmed()", 0 ) >= 0 ){ + if( this.BoundValue() = "locked" ){ + if( newfilter = "" ){ + newfilter := "( object.IsFirmed() = true )"; + }else{ + newfilter := newfilter + " and " + "( object.IsFirmed() = true )"; + } + }else if( this.BoundValue() = "unlocked" ){ + if( newfilter = "" ){ + newfilter := "( object.IsFirmed() = false )"; + }else{ + newfilter := newfilter + " and " + "( object.IsFirmed() = false )"; + } + }else if( this.BoundValue() = "all" ){ + newfilter := newfilter + ""; + } + findcount := 1; + }else{ + if( newfilter = "" ){ + newfilter := filter; + }else{ + newfilter := newfilter + " and " + filter; + } + } + } + + if( findcount = 0 ){ + if( this.BoundValue() = "locked" ){ + if( newfilter = "" ){ + newfilter := "( object.IsFirmed() = true )"; + }else{ + newfilter := newfilter + " and " + "( object.IsFirmed() = true )"; + } + }else if( this.BoundValue() = "unlocked" ){ + if( newfilter = "" ){ + newfilter := "( object.IsFirmed() = false )"; + }else{ + newfilter := newfilter + " and " + "( object.IsFirmed() = false )"; + } + }else if( this.BoundValue() = "all" ){ + newfilter := newfilter + ""; + } + } + + DataExtractorOrderLock.FixedFilter( newfilter ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/_ROOT_Component_FormOrderLock.def b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/_ROOT_Component_FormOrderLock.def new file mode 100644 index 0000000..6834735 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/_ROOT_Component_FormOrderLock.def @@ -0,0 +1,55 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlannerWebApp +OrphanComponent FormOrderLock +{ + #keys: '[412960.0.212511678]' + BaseType: 'WebForm' + Children: + [ + #child: PanelOrderLock + Component DataHolderOrderLock + { + #keys: '[412960.0.212571799]' + BaseType: 'WebDataHolder' + Databinding: 'structured[CustomerOrder]*' + Children: + [ + Component DataExtractorOrderLock + { + #keys: '[412960.0.212571816]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'MacroPlan' + Description: '鎶藉彇璁㈠崟鏁版嵁' + Source: 'MacroPlan' + Taborder: 0 + Transformation: 'SalesDemand.astype(CustomerOrder)' + ] + } + ] + Properties: + [ + Taborder: 1 + ] + } + Component DataHolderOrderLockGlobal + { + #keys: '[412960.0.212571897]' + BaseType: 'WebDataHolder' + Databinding: 'shadow[Scenario]*' + Properties: + [ + Description: '瀛樺偍鏄惁閿佸畾鐨勭瓫閫夋潯浠�' + Taborder: 2 + ] + } + ] + Properties: + [ + Description: '璁㈠崟閿佸畾瑙i攣鐣岄潰' + Image: 'DATA_LOCK' + Title: '璁㈠崟閿佸畾瑙i攣鐣岄潰' + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPHeader.def b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPHeader.def index 8fc6655..b99ab6c 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPHeader.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormVersionOfSOP/Component_PanelVersionOfSOPHeader.def @@ -5,17 +5,6 @@ BaseType: 'WebPanel' Children: [ - Component LabelVersionOfSOPHeader - { - #keys: '[412960.0.138000861]' - BaseType: 'WebLabel' - Properties: - [ - Description: '鐗堟湰鍙峰睍绀哄' - FixedSize: false - Taborder: 0 - ] - } Component ButtonVersionOfSOPHeaderFresh { #keys: '[412960.0.138000879]' @@ -25,7 +14,7 @@ ButtonSize: 'compact' Description: '鐢ㄤ簬鍒锋柊鍚勪簨涓氶儴褰撳墠鐗堟湰鍙戝竷鐘舵�佺殑鎸夐挳' Label: '鍒锋柊' - Taborder: 2 + Taborder: 1 ] } Component ButtonVersionOfSOPHeaderCopy @@ -37,18 +26,7 @@ ButtonSize: 'compact' Description: '鐢ㄤ簬澶嶅埗閫変腑鐨勭増鏈叏閲忕増鏈彿鐨勬寜閽�' Label: '鍏ㄩ噺鐗堟湰鍙峰鍒�' - Taborder: 3 - ] - } - Component LabelVersionOfSOPHeaderVersionID - { - #keys: '[412960.0.140790247]' - BaseType: 'WebLabel' - Properties: - [ - Description: 'rootversionid' - Taborder: 1 - Visible: false + Taborder: 2 ] } Component ButtonVersionOfSOPHeaderRelease @@ -60,10 +38,21 @@ ButtonSize: 'compact' Description: '鍙戝竷涓�涓柊鐗堟湰' Label: '娴嬭瘯鐢ㄧ増鏈彂甯�' - Taborder: 4 + Taborder: 3 Visible: false ] } + Component LabelVersionOfSOPHeader + { + #keys: '[412960.0.138000861]' + BaseType: 'WebLabel' + Properties: + [ + Description: '鐗堟湰鍙峰睍绀哄' + FixedSize: false + Taborder: 0 + ] + } ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Views/OrderLock.vw b/_Main/UI/MacroPlannerWebApp/Views/OrderLock.vw new file mode 100644 index 0000000..42bce1a --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Views/OrderLock.vw @@ -0,0 +1,351 @@ +Quintiq file version 2.0 +{ + viewcontents + { + forms + { + form_legacy_1 + { + title: 'Scenario manager' + shown: true + componentID: 'FormScenarioManager' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 8 + columnPosition: 1 + columnSpan: 5 + } + components + { + FormScenarioManager_ListScenario + { + } + FormScenarioManager_DataSetLevelScenario + { + groupDepth: -1 + column_All_constraints + { + columnId: 'All constraints' + dataPath: 'All constraints' + dataType: 'string' + title: 'All constraints' + index: 0 + subtotals: '' + width: 90 + } + column_Name + { + columnId: 'Name' + dataPath: 'Name' + dataType: 'string' + title: '鍚嶇О' + index: 1 + subtotals: '' + width: 277 + } + column_ChangedBy + { + columnId: 'ChangedBy' + dataPath: 'ChangedBy' + dataType: 'string' + title: 'Changed by' + index: 2 + subtotals: '' + width: 106 + } + column_ChangedOn + { + columnId: 'ChangedOn' + dataPath: 'ChangedOn' + dataType: 'datetime' + title: 'Changed on' + index: 3 + subtotals: '' + width: 99 + } + column_StorageMode + { + columnId: 'StorageMode' + dataPath: 'StorageMode' + dataType: 'string' + title: 'StorageMode' + index: 4 + subtotals: '' + width: 40 + } + } + } + } + form_legacy_2 + { + title: 'Assumptions' + shown: true + componentID: 'FormAssumptions' + layout + { + mode: 'open' + rowPosition: 9 + rowSpan: 8 + columnPosition: 1 + columnSpan: 5 + } + components + { + FormAssumptions_ListAssumptions + { + } + FormAssumptions_DataSetLevelAssumptions + { + groupDepth: -1 + column_All_constraints + { + columnId: 'All constraints' + dataPath: 'All constraints' + dataType: 'string' + title: 'All constraints' + index: 0 + subtotals: '' + width: 32 + } + column_Category + { + columnId: 'Category' + dataPath: 'Category' + dataType: 'string' + title: '绫诲埆' + index: 1 + subtotals: '' + width: 108 + } + column_Importance + { + columnId: 'Importance' + dataPath: 'Importance' + dataType: 'string' + title: '閲嶈鎬�' + index: 2 + subtotals: '' + width: 110 + } + column_Title + { + columnId: 'Title' + dataPath: 'Title' + dataType: 'string' + title: '鏍囬' + index: 3 + subtotals: '' + width: 150 + } + column_ChangedBy + { + columnId: 'ChangedBy' + dataPath: 'ChangedBy' + dataType: 'string' + title: 'Changed by' + index: 4 + subtotals: '' + width: 150 + } + column_CreatedOn + { + columnId: 'CreatedOn' + dataPath: 'CreatedOn' + dataType: 'datetime' + title: 'Created on' + index: 5 + subtotals: '' + width: 150 + } + } + } + } + form_FormScenariosKPIsComparison + { + title: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison' + shown: true + componentID: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 16 + columnPosition: 6 + columnSpan: 7 + } + components + { + FormScenariosKPIsComparison_MatrixEditorFinancialKPIs + { + gridColor: '#c4c4c4' + totalHeaderWidth: 200 + attributeHeaderWidthRatio: 0.6 + nameHeaderWidthRatio: 0.4 + columnWidth: 100 + horizontalGrid: true + verticalGrid: true + backendState + { + componentId: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison.MatrixEditorFinancialKPIs' + state + { + cells + { + attributes + { + attribute_DisplayValue + { + type: 'MatrixEditorWebApiCellDataModelInterest' + index: 0 + rowsubtotal: '' + columnsubtotal: '' + attribute: 'DisplayValue' + } + } + } + columns + { + sorting + { + criteria: '' + } + } + rows + { + sorting + { + criteria: "datamember:'KPISetting.DisplayIndex'" + } + } + } + } + } + } + } + form_FormOptimizerPuzzles + { + title: 'Optimizer Puzzles' + shown: false + componentID: 'FormOptimizerPuzzles' + layout + { + mode: 'dockright' + index: 0 + } + components + { + FormOptimizerPuzzles_ListOptimizerPuzzles + { + } + FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles + { + 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: '鍚嶇О' + index: 1 + subtotals: '' + width: 109 + } + column_Description + { + columnId: 'Description' + dataPath: 'Description' + dataType: 'string' + title: '鎻忚堪' + index: 2 + subtotals: '' + width: 207 + } + } + } + } + form_FormKPI + { + title: 'KPI Dashboard' + shown: true + componentID: 'FormKPI' + layout + { + mode: 'dockright' + index: 1 + } + 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: '鍚嶇О' + index: 1 + subtotals: '' + width: 200 + } + } + } + } + } + userconfigurableinformation + { + } + page: 'applicationDevelopmentActionBarPageDef' + group: '' + index: 2 + image: 'DOCUMENT_LOCK' + description: '' + } + formatversion: 2 + id: 'OrderLock' + name: 'OrderLock' + isglobal: false + isroot: true +} -- Gitblit v1.9.3