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