From 9c496f75e6562345abcb3e7f18dfa637bb46d3c6 Mon Sep 17 00:00:00 2001
From: limj <limj@taizhitech.com>
Date: 星期四, 21 九月 2023 20:15:59 +0800
Subject: [PATCH] merge
---
_Main/BL/Type_PriorityResultDetail/DefaultValue_UnitOfMeasureName.qbl | 6
_Main/BL/Type_PriorityResultDetail/Attribute_CustomerID.qbl | 7
_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl | 19
_Main/BL/Type_PriorityResultDetail/Attribute_PriorityFactorName.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_OnUserSelectionChanged.def | 22
_Main/BL/Type_PriorityResultDetail/Attribute_BusinessType.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_Buttonplus_OnClick.def | 22
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResultDetails642.def | 10
_Main/BL/Type_PriorityResult/DefaultValue_ProductID.qbl | 6
_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl | 43
_Main/BL/Type_PriorityResultDetail/Attribute_Customer.qbl | 7
_Main/BL/Type_PriorityResultDetail/DefaultValue_Customer.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonDivide_OnClick.def | 22
_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl | 25
_Main/BL/Type_PriorityResult/Attribute_CustomerID.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResultDetails.def | 24
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def | 18
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def | 28
_Main/BL/Type_PriorityResultDetail/Attribute_DemandDate.qbl | 7
_Main/BL/Type_PriorityResultDetail/DefaultValue_StockingPointID.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResultGroupDetails#743.def | 41
_Main/BL/Type_PriorityResult/DefaultValue_UnitOfMeasureName.qbl | 6
_Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_EmergencyTopping.qbl | 20
_Main/BL/Type_PriorityResultDetail/Attribute_PriorityTotalScore.qbl | 7
_Main/BL/Type_PriorityResultDetail/Attribute_PriorityResultScore.qbl | 7
_Main/BL/Type_PriorityResult/Attribute_PriorityResultScore.qbl | 7
_Main/BL/Type_PriorityResult/Attribute_UnitOfMeasureName.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def | 21
_Main/BL/Type_PriorityResult/Attribute_BusinessType.qbl | 7
_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp | 2
_Main/BL/Relations/Relation_PriorityResultBusinessTypeDetail_PriorityResult_PriorityResult_Prio.qbl | 23
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResultBusinessTypeDetails.def | 59 +
_Main/BL/Type_PriorityResult/DefaultValue_SalesSegmentName.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def | 24
_Main/BL/Relations/Relation_PriorityResultGroupDetail_PriorityResult_PriorityResult_PriorityRes.qbl | 23
_Main/BL/Type_PriorityResultDetail/Attribute_UnitOfMeasureName.qbl | 7
_Main/BL/Type_PriorityResult/Attribute_SalesSegmentName.qbl | 7
_Main/BL/Type_PriorityResultDetail/_ROOT_Type_PriorityResultDetail.qbl | 9
_Main/BL/Type_PriorityResult/DefaultValue_StockingPointID.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def | 20
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRightParenthesis_OnClick.def | 21
_Main/BL/Type_PriorityResult/Attribute_Customer.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton#713.def | 107 +
_Main/UI/MacroPlannerWebApp/Views/PriorityResults.vw | 2258 ++++++++++++++++++++++++++++++++++++++
_Main/BL/Type_PriorityResult/_ROOT_Type_PriorityResult.qbl | 9
_Main/BL/Type_PriorityResultDetail/DefaultValue_SalesSegmentName.qbl | 6
_Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_CheckCanTopping.qbl | 14
_Main/BL/Type_PriorityResult/Function_CalcPriorityResultScore.qbl | 21
_Main/BL/Type_PriorityResult/DefaultValue_Customer.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResultDetails.def | 10
_Main/BL/Type_PriorityResultGroupDetail/_ROOT_Type_PriorityResultGroupDetail.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResult.def | 15
_Main/BL/Type_PriorityResultDetail/Attribute_SalesSegmentName.qbl | 7
_Main/BL/Relations/Relation_PriorityResult_MacroPlan_MacroPlan_PriorityResult.qbl | 23
_Main/BL/Type_PriorityResult/DefaultValue_CustomerID.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonMultiply_OnClick.def | 22
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/_ROOT_Component_FormPriorityResult.def | 33
_Main/BL/Type_PriorityResultBusinessTypeDetail/_ROOT_Type_PriorityResultBusinessTypeDetail.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResult.def | 10
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResult.def | 41
_Main/BL/Type_PriorityResult/DefaultValue_BusinessType.qbl | 6
_Main/BL/Type_PriorityResultDetail/DefaultValue_BusinessType.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResult.def | 10
_Main/BL/Type_PriorityResult/Attribute_ProductID.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResultBusinessTypeDetails_MenuEmergencyTopping_OnClick.def | 24
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResultDetails590.def | 10
_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResultDetails#633.def | 46
_Main/BL/Type_PriorityResultDetail/Attribute_PriorityPolicyName.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonLeftParenthesis_OnClick.def | 21
_Main/BL/Type_PriorityResultDetail/Attribute_Quantity.qbl | 7
_Main/BL/Type_PriorityResult/Attribute_Quantity.qbl | 7
_Main/BL/Type_PriorityResultDetail/Attribute_PriorityFactorGradingName.qbl | 7
_Main/BL/Type_PriorityResultDetail/DefaultValue_CustomerID.qbl | 6
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonSubtract_OnClick.def | 22
_Main/BL/Type_PriorityResult/Attribute_DemandDate.qbl | 7
_Main/BL/Type_PriorityResult/Attribute_StockingPointID.qbl | 7
_Main/BL/Type_PriorityResultDetail/Attribute_StockingPointID.qbl | 7
77 files changed, 3,450 insertions(+), 1 deletions(-)
diff --git a/_Main/BL/Relations/Relation_PriorityResultBusinessTypeDetail_PriorityResult_PriorityResult_Prio.qbl b/_Main/BL/Relations/Relation_PriorityResultBusinessTypeDetail_PriorityResult_PriorityResult_Prio.qbl
new file mode 100644
index 0000000..a9e64fe
--- /dev/null
+++ b/_Main/BL/Relations/Relation_PriorityResultBusinessTypeDetail_PriorityResult_PriorityResult_Prio.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation PriorityResultBusinessTypeDetail_PriorityResult_PriorityResult_PriorityResultBusinessTypeDetail
+{
+ #keys: '1[414382.0.504275181]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide PriorityResult
+ {
+ #keys: '3[414382.0.504275183][414382.0.504275182][414382.0.504275184]'
+ Cardinality: '0to1'
+ ObjectDefinition: PriorityResultBusinessTypeDetail
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide PriorityResultBusinessTypeDetail
+ {
+ #keys: '3[414382.0.504275186][414382.0.504275185][414382.0.504275187]'
+ Cardinality: '1toN'
+ ObjectDefinition: PriorityResult
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_PriorityResultGroupDetail_PriorityResult_PriorityResult_PriorityRes.qbl b/_Main/BL/Relations/Relation_PriorityResultGroupDetail_PriorityResult_PriorityResult_PriorityRes.qbl
new file mode 100644
index 0000000..bdd10c4
--- /dev/null
+++ b/_Main/BL/Relations/Relation_PriorityResultGroupDetail_PriorityResult_PriorityResult_PriorityRes.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation PriorityResultGroupDetail_PriorityResult_PriorityResult_PriorityResultGroupDetail
+{
+ #keys: '1[414382.0.504275195]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide PriorityResult
+ {
+ #keys: '3[414382.0.504275197][414382.0.504275196][414382.0.504275198]'
+ Cardinality: '0to1'
+ ObjectDefinition: PriorityResultGroupDetail
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide PriorityResultGroupDetail
+ {
+ #keys: '3[414382.0.504275200][414382.0.504275199][414382.0.504275201]'
+ Cardinality: '1toN'
+ ObjectDefinition: PriorityResult
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_PriorityResult_MacroPlan_MacroPlan_PriorityResult.qbl b/_Main/BL/Relations/Relation_PriorityResult_MacroPlan_MacroPlan_PriorityResult.qbl
new file mode 100644
index 0000000..2a02cb7
--- /dev/null
+++ b/_Main/BL/Relations/Relation_PriorityResult_MacroPlan_MacroPlan_PriorityResult.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation PriorityResult_MacroPlan_MacroPlan_PriorityResult
+{
+ #keys: '1[414382.0.504275161]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MacroPlan
+ {
+ #keys: '3[414382.0.504275163][414382.0.504275162][414382.0.504275164]'
+ Cardinality: '0to1'
+ ObjectDefinition: PriorityResult
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide PriorityResult
+ {
+ #keys: '3[414382.0.504275166][414382.0.504275165][414382.0.504275167]'
+ Cardinality: '1toN'
+ ObjectDefinition: MacroPlan
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl b/_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl
new file mode 100644
index 0000000..9434404
--- /dev/null
+++ b/_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetCoeffcientByName (
+ MacroPlan owner,
+ String businessType,
+ String name
+) as Real
+{
+ TextBody:
+ [*
+ // NBoTk Sep-21-2023 (created)
+
+ data := selectobject( owner,PriorityFactor,p,
+ p.BusinessType() = businessType and p.Name() = name
+ )
+
+ return data.Coefficient();
+ *]
+}
diff --git a/_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl b/_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl
new file mode 100644
index 0000000..98115c4
--- /dev/null
+++ b/_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GetNameList (
+ MacroPlan owner,
+ String businessType
+) as String
+{
+ TextBody:
+ [*
+ // NBoTk Sep-21-2023 (created)
+ value := "";
+
+ strList := selectuniquevalues( owner,PriorityFactor,p,
+ p.BusinessType() = businessType,
+ p.Name()
+ );
+
+ if( not isnull( strList ) )
+ {
+ value := strList.Concatenate( ";" );
+ }
+
+ return value;
+ *]
+}
diff --git a/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl b/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl
new file mode 100644
index 0000000..55e5bd0
--- /dev/null
+++ b/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl
@@ -0,0 +1,43 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod RollBackStr (
+ MacroPlan owner,
+ String businessType,
+ String stringData
+) as String
+{
+ TextBody:
+ [*
+ // NBoTk Sep-21-2023 (created)
+ value := stringData;
+
+ symbolList := construct( structured[String]);
+ symbolList.Add( "+")
+ symbolList.Add( "-")
+ symbolList.Add( "x")
+ symbolList.Add( "/")
+ symbolList.Add( "(")
+ symbolList.Add( ")")
+
+ traverse( symbolList,Elements,e)
+ {
+ if( stringData.EndsWith( e ))
+ {
+ end := stringData.Length() - e.Length();
+ value := stringData.SubString( 0,end);
+ }
+ }
+
+ nameList := PriorityFactor::GetDataByBusinessType( owner,businessType);
+ traverse( nameList,Elements,e)
+ {
+ if( stringData.EndsWith( e.Name()))
+ {
+ end := stringData.Length() - e.Name().Length();
+ value := stringData.SubString( 0,end);
+ }
+ }
+
+ return value;
+ *]
+}
diff --git a/_Main/BL/Type_PriorityResult/Attribute_BusinessType.qbl b/_Main/BL/Type_PriorityResult/Attribute_BusinessType.qbl
new file mode 100644
index 0000000..16f7189
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/Attribute_BusinessType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessType
+{
+ #keys: '3[414382.0.504275379][414382.0.504275378][414382.0.504275380]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResult/Attribute_Customer.qbl b/_Main/BL/Type_PriorityResult/Attribute_Customer.qbl
new file mode 100644
index 0000000..21774fc
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/Attribute_Customer.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Customer
+{
+ #keys: '3[414382.0.504275376][414382.0.504275375][414382.0.504275377]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResult/Attribute_CustomerID.qbl b/_Main/BL/Type_PriorityResult/Attribute_CustomerID.qbl
new file mode 100644
index 0000000..afabecd
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/Attribute_CustomerID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CustomerID
+{
+ #keys: '3[414382.0.504275385][414382.0.504275384][414382.0.504275386]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResult/Attribute_DemandDate.qbl b/_Main/BL/Type_PriorityResult/Attribute_DemandDate.qbl
new file mode 100644
index 0000000..5088806
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/Attribute_DemandDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DemandDate
+{
+ #keys: '3[414382.0.504275370][414382.0.504275369][414382.0.504275371]'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_PriorityResult/Attribute_PriorityResultScore.qbl b/_Main/BL/Type_PriorityResult/Attribute_PriorityResultScore.qbl
new file mode 100644
index 0000000..6f38dd5
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/Attribute_PriorityResultScore.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PriorityResultScore
+{
+ #keys: '3[414382.0.504275396][414382.0.504275395][414382.0.504275397]'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_PriorityResult/Attribute_ProductID.qbl b/_Main/BL/Type_PriorityResult/Attribute_ProductID.qbl
new file mode 100644
index 0000000..b9b828f
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/Attribute_ProductID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+ #keys: '3[414382.0.504275367][414382.0.504275366][414382.0.504275368]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResult/Attribute_Quantity.qbl b/_Main/BL/Type_PriorityResult/Attribute_Quantity.qbl
new file mode 100644
index 0000000..b18ef2c
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/Attribute_Quantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Quantity
+{
+ #keys: '3[414382.0.504275361][414382.0.504275360][414382.0.504275362]'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_PriorityResult/Attribute_SalesSegmentName.qbl b/_Main/BL/Type_PriorityResult/Attribute_SalesSegmentName.qbl
new file mode 100644
index 0000000..1ade98f
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/Attribute_SalesSegmentName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SalesSegmentName
+{
+ #keys: '3[414382.0.504275382][414382.0.504275381][414382.0.504275383]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResult/Attribute_StockingPointID.qbl b/_Main/BL/Type_PriorityResult/Attribute_StockingPointID.qbl
new file mode 100644
index 0000000..db04a7f
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/Attribute_StockingPointID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StockingPointID
+{
+ #keys: '3[414382.0.504275364][414382.0.504275363][414382.0.504275365]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResult/Attribute_UnitOfMeasureName.qbl b/_Main/BL/Type_PriorityResult/Attribute_UnitOfMeasureName.qbl
new file mode 100644
index 0000000..8877500
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/Attribute_UnitOfMeasureName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitOfMeasureName
+{
+ #keys: '3[414382.0.504275373][414382.0.504275372][414382.0.504275374]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResult/DefaultValue_BusinessType.qbl b/_Main/BL/Type_PriorityResult/DefaultValue_BusinessType.qbl
new file mode 100644
index 0000000..1672b03
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/DefaultValue_BusinessType.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: BusinessType
+}
diff --git a/_Main/BL/Type_PriorityResult/DefaultValue_Customer.qbl b/_Main/BL/Type_PriorityResult/DefaultValue_Customer.qbl
new file mode 100644
index 0000000..e02a336
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/DefaultValue_Customer.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: Customer
+}
diff --git a/_Main/BL/Type_PriorityResult/DefaultValue_CustomerID.qbl b/_Main/BL/Type_PriorityResult/DefaultValue_CustomerID.qbl
new file mode 100644
index 0000000..66ae438
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/DefaultValue_CustomerID.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: CustomerID
+}
diff --git a/_Main/BL/Type_PriorityResult/DefaultValue_ProductID.qbl b/_Main/BL/Type_PriorityResult/DefaultValue_ProductID.qbl
new file mode 100644
index 0000000..98649b2
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/DefaultValue_ProductID.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: ProductID
+}
diff --git a/_Main/BL/Type_PriorityResult/DefaultValue_SalesSegmentName.qbl b/_Main/BL/Type_PriorityResult/DefaultValue_SalesSegmentName.qbl
new file mode 100644
index 0000000..521966d
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/DefaultValue_SalesSegmentName.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: SalesSegmentName
+}
diff --git a/_Main/BL/Type_PriorityResult/DefaultValue_StockingPointID.qbl b/_Main/BL/Type_PriorityResult/DefaultValue_StockingPointID.qbl
new file mode 100644
index 0000000..fbb83fc
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/DefaultValue_StockingPointID.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: StockingPointID
+}
diff --git a/_Main/BL/Type_PriorityResult/DefaultValue_UnitOfMeasureName.qbl b/_Main/BL/Type_PriorityResult/DefaultValue_UnitOfMeasureName.qbl
new file mode 100644
index 0000000..b2012de
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/DefaultValue_UnitOfMeasureName.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: UnitOfMeasureName
+}
diff --git a/_Main/BL/Type_PriorityResult/Function_CalcPriorityResultScore.qbl b/_Main/BL/Type_PriorityResult/Function_CalcPriorityResultScore.qbl
new file mode 100644
index 0000000..cd7846f
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/Function_CalcPriorityResultScore.qbl
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcPriorityResultScore
+{
+ TextBody:
+ [*
+ // NBoTk Sep-21-2023 (created)
+
+ businessTypeScore := max( this,PriorityResultBusinessTypeDetail,p,
+ p.PriorityTotalScore()
+ );
+
+ groupScore := max( this,PriorityResultGroupDetail,p,
+ p.PriorityTotalScore()
+ );
+
+ value := maxvalue( businessTypeScore,groupScore);
+
+ this.PriorityResultScore( value );
+ *]
+}
diff --git a/_Main/BL/Type_PriorityResult/_ROOT_Type_PriorityResult.qbl b/_Main/BL/Type_PriorityResult/_ROOT_Type_PriorityResult.qbl
new file mode 100644
index 0000000..3d6983a
--- /dev/null
+++ b/_Main/BL/Type_PriorityResult/_ROOT_Type_PriorityResult.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type PriorityResult
+{
+ #keys: '5[414382.0.504275125][414382.0.504275123][0.0.0][414382.0.504275124][414382.0.504275126]'
+ BaseType: Object
+ StructuredName: 'PriorityResults'
+}
diff --git a/_Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_CheckCanTopping.qbl b/_Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_CheckCanTopping.qbl
new file mode 100644
index 0000000..5e14913
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_CheckCanTopping.qbl
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CheckCanTopping (
+ PriorityResultBusinessTypeDetail businessTypeDetails
+) as Boolean
+{
+ TextBody:
+ [*
+ // NBoTk Sep-21-2023 (created)
+ groupDetails := selectset( businessTypeDetails.PriorityResult(),PriorityResultGroupDetail,p,true);
+
+ return isnull( groupDetails);
+ *]
+}
diff --git a/_Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_EmergencyTopping.qbl b/_Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_EmergencyTopping.qbl
new file mode 100644
index 0000000..8030509
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultBusinessTypeDetail/StaticMethod_EmergencyTopping.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod EmergencyTopping (
+ MacroPlan owner,
+ PriorityResultBusinessTypeDetail businessTypeDetails
+)
+{
+ TextBody:
+ [*
+ // NBoTk Sep-21-2023 (created)
+
+
+ maxPriorityResult := max( owner,PriorityResult,p,
+ p.PriorityResultScore()
+ );
+
+ topScore := maxPriorityResult + 1;
+ businessTypeDetails.PriorityTotalScore(topScore);
+ *]
+}
diff --git a/_Main/BL/Type_PriorityResultBusinessTypeDetail/_ROOT_Type_PriorityResultBusinessTypeDetail.qbl b/_Main/BL/Type_PriorityResultBusinessTypeDetail/_ROOT_Type_PriorityResultBusinessTypeDetail.qbl
new file mode 100644
index 0000000..77e783e
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultBusinessTypeDetail/_ROOT_Type_PriorityResultBusinessTypeDetail.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+TypeSpecialization PriorityResultBusinessTypeDetail
+{
+ #keys: '2[414382.0.504275146][414382.0.504275145]'
+ Description: '浜嬩笟閮ㄤ紭鍏堢骇缁撴灉鏄庣粏'
+ Parent: PriorityResultDetail
+ StructuredName: 'PriorityResultBusinessTypeDetails'
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/Attribute_BusinessType.qbl b/_Main/BL/Type_PriorityResultDetail/Attribute_BusinessType.qbl
new file mode 100644
index 0000000..0d853fd
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/Attribute_BusinessType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute BusinessType
+{
+ #keys: '3[414382.0.504275420][414382.0.504275419][414382.0.504275421]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/Attribute_Customer.qbl b/_Main/BL/Type_PriorityResultDetail/Attribute_Customer.qbl
new file mode 100644
index 0000000..e5c3e9e
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/Attribute_Customer.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Customer
+{
+ #keys: '3[414382.0.504275411][414382.0.504275410][414382.0.504275412]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/Attribute_CustomerID.qbl b/_Main/BL/Type_PriorityResultDetail/Attribute_CustomerID.qbl
new file mode 100644
index 0000000..3afa6f2
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/Attribute_CustomerID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute CustomerID
+{
+ #keys: '3[414382.0.504275429][414382.0.504275428][414382.0.504275430]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/Attribute_DemandDate.qbl b/_Main/BL/Type_PriorityResultDetail/Attribute_DemandDate.qbl
new file mode 100644
index 0000000..8218754
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/Attribute_DemandDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute DemandDate
+{
+ #keys: '3[414382.0.504275423][414382.0.504275422][414382.0.504275424]'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/Attribute_PriorityFactorGradingName.qbl b/_Main/BL/Type_PriorityResultDetail/Attribute_PriorityFactorGradingName.qbl
new file mode 100644
index 0000000..30c7925
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/Attribute_PriorityFactorGradingName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PriorityFactorGradingName
+{
+ #keys: '3[414382.0.504275468][414382.0.504275467][414382.0.504275469]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/Attribute_PriorityFactorName.qbl b/_Main/BL/Type_PriorityResultDetail/Attribute_PriorityFactorName.qbl
new file mode 100644
index 0000000..2941275
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/Attribute_PriorityFactorName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PriorityFactorName
+{
+ #keys: '3[414382.0.504275458][414382.0.504275457][414382.0.504275459]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/Attribute_PriorityPolicyName.qbl b/_Main/BL/Type_PriorityResultDetail/Attribute_PriorityPolicyName.qbl
new file mode 100644
index 0000000..58f721a
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/Attribute_PriorityPolicyName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PriorityPolicyName
+{
+ #keys: '3[414382.0.504275439][414382.0.504275438][414382.0.504275440]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/Attribute_PriorityResultScore.qbl b/_Main/BL/Type_PriorityResultDetail/Attribute_PriorityResultScore.qbl
new file mode 100644
index 0000000..7ef6592
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/Attribute_PriorityResultScore.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PriorityResultScore
+{
+ #keys: '3[414382.0.504275426][414382.0.504275425][414382.0.504275427]'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/Attribute_PriorityTotalScore.qbl b/_Main/BL/Type_PriorityResultDetail/Attribute_PriorityTotalScore.qbl
new file mode 100644
index 0000000..6be72f0
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/Attribute_PriorityTotalScore.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute PriorityTotalScore
+{
+ #keys: '3[414382.0.504275485][414382.0.504275484][414382.0.504275486]'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/Attribute_Quantity.qbl b/_Main/BL/Type_PriorityResultDetail/Attribute_Quantity.qbl
new file mode 100644
index 0000000..6da2ce3
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/Attribute_Quantity.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Quantity
+{
+ #keys: '3[414382.0.504275414][414382.0.504275413][414382.0.504275415]'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/Attribute_SalesSegmentName.qbl b/_Main/BL/Type_PriorityResultDetail/Attribute_SalesSegmentName.qbl
new file mode 100644
index 0000000..96cedff
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/Attribute_SalesSegmentName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SalesSegmentName
+{
+ #keys: '3[414382.0.504275435][414382.0.504275434][414382.0.504275436]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/Attribute_StockingPointID.qbl b/_Main/BL/Type_PriorityResultDetail/Attribute_StockingPointID.qbl
new file mode 100644
index 0000000..6f0a2fc
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/Attribute_StockingPointID.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StockingPointID
+{
+ #keys: '3[414382.0.504275417][414382.0.504275416][414382.0.504275418]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/Attribute_UnitOfMeasureName.qbl b/_Main/BL/Type_PriorityResultDetail/Attribute_UnitOfMeasureName.qbl
new file mode 100644
index 0000000..7abadad
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/Attribute_UnitOfMeasureName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UnitOfMeasureName
+{
+ #keys: '3[414382.0.504275432][414382.0.504275431][414382.0.504275433]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/DefaultValue_BusinessType.qbl b/_Main/BL/Type_PriorityResultDetail/DefaultValue_BusinessType.qbl
new file mode 100644
index 0000000..1672b03
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/DefaultValue_BusinessType.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: BusinessType
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/DefaultValue_Customer.qbl b/_Main/BL/Type_PriorityResultDetail/DefaultValue_Customer.qbl
new file mode 100644
index 0000000..e02a336
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/DefaultValue_Customer.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: Customer
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/DefaultValue_CustomerID.qbl b/_Main/BL/Type_PriorityResultDetail/DefaultValue_CustomerID.qbl
new file mode 100644
index 0000000..66ae438
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/DefaultValue_CustomerID.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: CustomerID
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/DefaultValue_SalesSegmentName.qbl b/_Main/BL/Type_PriorityResultDetail/DefaultValue_SalesSegmentName.qbl
new file mode 100644
index 0000000..521966d
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/DefaultValue_SalesSegmentName.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: SalesSegmentName
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/DefaultValue_StockingPointID.qbl b/_Main/BL/Type_PriorityResultDetail/DefaultValue_StockingPointID.qbl
new file mode 100644
index 0000000..fbb83fc
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/DefaultValue_StockingPointID.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: StockingPointID
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/DefaultValue_UnitOfMeasureName.qbl b/_Main/BL/Type_PriorityResultDetail/DefaultValue_UnitOfMeasureName.qbl
new file mode 100644
index 0000000..b2012de
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/DefaultValue_UnitOfMeasureName.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+ TargetAttribute: UnitOfMeasureName
+}
diff --git a/_Main/BL/Type_PriorityResultDetail/_ROOT_Type_PriorityResultDetail.qbl b/_Main/BL/Type_PriorityResultDetail/_ROOT_Type_PriorityResultDetail.qbl
new file mode 100644
index 0000000..26b2f55
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultDetail/_ROOT_Type_PriorityResultDetail.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type PriorityResultDetail
+{
+ #keys: '5[414382.0.504275135][414382.0.504275133][0.0.0][414382.0.504275134][414382.0.504275136]'
+ BaseType: Object
+ StructuredName: 'PriorityResultDetails'
+}
diff --git a/_Main/BL/Type_PriorityResultGroupDetail/_ROOT_Type_PriorityResultGroupDetail.qbl b/_Main/BL/Type_PriorityResultGroupDetail/_ROOT_Type_PriorityResultGroupDetail.qbl
new file mode 100644
index 0000000..427aa63
--- /dev/null
+++ b/_Main/BL/Type_PriorityResultGroupDetail/_ROOT_Type_PriorityResultGroupDetail.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+TypeSpecialization PriorityResultGroupDetail
+{
+ #keys: '2[414382.0.504275155][414382.0.504275154]'
+ Description: '闆嗗洟浼樺厛绾х粨鏋滄槑缁�'
+ Parent: PriorityResultDetail
+ StructuredName: 'PriorityResultGroupDetails'
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton\043713.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton\043713.def"
new file mode 100644
index 0000000..9c91139
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton\043713.def"
@@ -0,0 +1,107 @@
+Quintiq file version 2.0
+Component PanelPriorityPolicyOperationButton
+{
+ #keys: '[414382.0.494931742]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component ButtonAddPriorityPolicy
+ {
+ #keys: '[414382.0.494931743]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: '娣诲姞鍥犲瓙'
+ Taborder: 1
+ ]
+ }
+ Component Buttonplus
+ {
+ #keys: '[414382.0.494931744]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: '+'
+ Taborder: 2
+ ]
+ }
+ Component ButtonSubtract
+ {
+ #keys: '[414382.0.494931745]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: '*'
+ Taborder: 3
+ ]
+ }
+ Component ButtonMultiply
+ {
+ #keys: '[414382.0.494931747]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'x'
+ Taborder: 4
+ ]
+ }
+ Component ButtonDivide
+ {
+ #keys: '[414382.0.494931748]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: '/'
+ Taborder: 5
+ ]
+ }
+ Component ButtonLeftParenthesis
+ {
+ #keys: '[414382.0.494931749]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: '('
+ Taborder: 6
+ ]
+ }
+ Component ButtonRightParenthesis
+ {
+ #keys: '[414382.0.494931750]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: ')'
+ Taborder: 7
+ ]
+ }
+ Component ButtonRollBack
+ {
+ #keys: '[414382.0.494931751]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: '<-'
+ Taborder: 8
+ ]
+ }
+ Component DropDownStringList
+ {
+ #keys: '[414382.0.501480353]'
+ BaseType: 'WebDropDownStringList'
+ Properties:
+ [
+ Label: '浼樺厛绾у洜瀛�'
+ Taborder: 0
+ ]
+ }
+ ]
+ Properties:
+ [
+ FixedSize: true
+ MinimumColumns: 10
+ MinimumRows: 1
+ Orientation: 'horizontal'
+ Taborder: 3
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def
new file mode 100644
index 0000000..e16df3d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def
@@ -0,0 +1,28 @@
+Quintiq file version 2.0
+#parent: ListPriorityPolicy
+Response OnUserSelectionChanged (
+ PriorityPolicy selection
+) id:Response_ListPriorityPolicy_OnUserSelectionChanged
+{
+ #keys: '[414382.0.503822635]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebList_OnUserSelectionChanged'
+ QuillAction
+ {
+ Body:
+ [*
+ PanelPriorityPolicyOperationName.Text(selection.Name());
+
+ businessType := PriorityPolicyBusinessType.Text();
+ str := PriorityFactor::GetNameList( MacroPlan, businessType);
+ DropDownStringList.Strings(str);
+
+ data := shadow( selection );
+ DataHolderEditPriorityPolicy.Data( &data );
+
+ //coefficient := PriorityFactor::GetCoeffcientByName( MacroPlan,businessType,DropDownStringList.Text());
+ //LabelPriorityPolicyCoefficient.Text([String]coefficient);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def
new file mode 100644
index 0000000..d645e29
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: PanelPriorityPolicyCoefficient_902/ButtonCommit
+Response OnClick () id:Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick
+{
+ #keys: '[414382.0.506250033]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ DataHolderEditPriorityPolicy.Data().Formula(LabelFormula.Text());
+ DataHolderEditPriorityPolicy.Data().CalculateValue(LabelCalculateValue.Text());
+ DataHolderEditPriorityPolicy.Data().Commit();
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def
new file mode 100644
index 0000000..3b56ae5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: PanelPriorityPolicyOperationButton/ButtonAddPriorityPolicy
+Response OnClick () id:Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick
+{
+ #keys: '[414382.0.502145449]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ coefficient := LabelPriorityPolicyCoefficient.Text();
+ text := DropDownStringList.Text();
+
+ formulaText := LabelFormula.Text() + text;
+ LabelFormula.Text(formulaText);
+
+ textCalculate := DropDownStringList.Text() + "[" + coefficient + "*L]";
+ calculateText := LabelCalculateValue.Text() + textCalculate;
+ LabelCalculateValue.Text(calculateText);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonDivide_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonDivide_OnClick.def
new file mode 100644
index 0000000..11b1352
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonDivide_OnClick.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: PanelPriorityPolicyOperationButton/ButtonDivide
+Response OnClick () id:Response_PanelPriorityPolicyOperationButton_ButtonDivide_OnClick
+{
+ #keys: '[414382.0.500261587]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ text := this.Label();
+
+ formulaText := LabelFormula.Text() + text;
+ LabelFormula.Text(formulaText);
+
+ calculateTest := LabelCalculateValue.Text() + text;
+ LabelCalculateValue.Text(calculateTest);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonLeftParenthesis_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonLeftParenthesis_OnClick.def
new file mode 100644
index 0000000..f4eb5c3
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonLeftParenthesis_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: PanelPriorityPolicyOperationButton/ButtonLeftParenthesis
+Response OnClick () id:Response_PanelPriorityPolicyOperationButton_ButtonLeftParenthesis_OnClick
+{
+ #keys: '[414382.0.500261667]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ text := this.Label();
+ formulaText := LabelFormula.Text() + text;
+ LabelFormula.Text(formulaText);
+
+ calculateTest := LabelCalculateValue.Text() + text;
+ LabelCalculateValue.Text(calculateTest);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonMultiply_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonMultiply_OnClick.def
new file mode 100644
index 0000000..2f09779
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonMultiply_OnClick.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: PanelPriorityPolicyOperationButton/ButtonMultiply
+Response OnClick () id:Response_PanelPriorityPolicyOperationButton_ButtonMultiply_OnClick
+{
+ #keys: '[414382.0.500261507]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ text := this.Label();
+
+ formulaText := LabelFormula.Text() + text;
+ LabelFormula.Text(formulaText);
+
+ calculateTest := LabelCalculateValue.Text() + text;
+ LabelCalculateValue.Text(calculateTest);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRightParenthesis_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRightParenthesis_OnClick.def
new file mode 100644
index 0000000..292ba04
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRightParenthesis_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: PanelPriorityPolicyOperationButton/ButtonRightParenthesis
+Response OnClick () id:Response_PanelPriorityPolicyOperationButton_ButtonRightParenthesis_OnClick
+{
+ #keys: '[414382.0.500261748]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ text := this.Label();
+ formulaText := LabelFormula.Text() + text;
+ LabelFormula.Text(formulaText);
+
+ calculateTest := LabelCalculateValue.Text() + text;
+ LabelCalculateValue.Text(calculateTest);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def
new file mode 100644
index 0000000..f8952da
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#parent: PanelPriorityPolicyOperationButton/ButtonRollBack
+Response OnClick () id:Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick
+{
+ #keys: '[414382.0.506055261]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ businessType := PriorityPolicyBusinessType.Text();
+ formulaText := PriorityPolicy::RollBackStr( MacroPlan,businessType,LabelFormula.Text());
+ LabelFormula.Text(formulaText);
+
+ calculateTest := PriorityPolicy::RollBackStr( MacroPlan,businessType,LabelCalculateValue.Text());
+ LabelCalculateValue.Text(calculateTest);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonSubtract_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonSubtract_OnClick.def
new file mode 100644
index 0000000..77d6f0a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonSubtract_OnClick.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: PanelPriorityPolicyOperationButton/ButtonSubtract
+Response OnClick () id:Response_PanelPriorityPolicyOperationButton_ButtonSubtract_OnClick
+{
+ #keys: '[414382.0.500261427]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ text := this.Label();
+
+ formulaText := LabelFormula.Text() + text;
+ LabelFormula.Text(formulaText);
+
+ calculateTest := LabelCalculateValue.Text() + text;
+ LabelCalculateValue.Text(calculateTest);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_Buttonplus_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_Buttonplus_OnClick.def
new file mode 100644
index 0000000..926a7be
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_Buttonplus_OnClick.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: PanelPriorityPolicyOperationButton/Buttonplus
+Response OnClick () id:Response_PanelPriorityPolicyOperationButton_Buttonplus_OnClick
+{
+ #keys: '[414382.0.500261347]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ Body:
+ [*
+ text := this.Label();
+
+ formulaText := LabelFormula.Text() + text;
+ LabelFormula.Text(formulaText);
+
+ calculateTest := LabelCalculateValue.Text() + text;
+ LabelCalculateValue.Text(calculateTest);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def
new file mode 100644
index 0000000..9debaba
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: PanelPriorityPolicyOperationButton/DropDownStringList
+Response OnSelectionChanged () id:Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionChanged
+{
+ #keys: '[414382.0.507827790]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
+ QuillAction
+ {
+ Body:
+ [*
+ info( "select changeed" );
+ businessType := PriorityPolicyBusinessType.Text();
+ coefficient := PriorityFactor::GetCoeffcientByName( MacroPlan,businessType,DropDownStringList.Text());
+ LabelPriorityPolicyCoefficient.Text([String]coefficient);
+ info("coefficient := " + [String]coefficient );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResult.def
new file mode 100644
index 0000000..cb600ee
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResult.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+Component ListPriorityResult
+{
+ #keys: '[414382.0.506312194]'
+ BaseType: 'WebList'
+ Children:
+ [
+ Component DataExtractorPriorityResult
+ {
+ #keys: '[414382.0.506312195]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MacroPlan'
+ Source: 'MacroPlan'
+ Taborder: 0
+ Transformation: 'PriorityResult'
+ ]
+ }
+ #child: listActionBarPagePriorityResult
+ Component DataSetLevelPriorityResult
+ {
+ #keys: '[414382.0.506312200]'
+ BaseType: 'WebDataSetLevel'
+ Children:
+ [
+ #child: listContextMenuPriorityResult
+ ]
+ Properties:
+ [
+ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"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":"DemandDate","title":"DemandDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityResultScore","title":"PriorityResultScore","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityResultScore"}}]'
+ ContextMenu: 'listContextMenuPriorityResult'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResultBusinessTypeDetails.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResultBusinessTypeDetails.def
new file mode 100644
index 0000000..cb72c11
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResultBusinessTypeDetails.def
@@ -0,0 +1,59 @@
+Quintiq file version 2.0
+Component ListPriorityResultBusinessTypeDetails
+{
+ #keys: '[414382.0.506313048]'
+ BaseType: 'WebList'
+ Children:
+ [
+ Component DataExtractorPriorityResultDetails
+ {
+ #keys: '[414382.0.506313049]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[PriorityResultBusinessTypeDetail]'
+ Source: 'DataHolderPriorityResultBusinessTypeDetails'
+ Taborder: 0
+ Transformation: 'Elements'
+ ]
+ }
+ #child: listActionBarPagePriorityResultDetails
+ Component DataSetLevelPriorityResultDetails
+ {
+ #keys: '[414382.0.506313054]'
+ BaseType: 'WebDataSetLevel'
+ Children:
+ [
+ #child: listContextMenuPriorityResultDetails
+ ]
+ Properties:
+ [
+ Columns: '[{"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":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"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":"DemandDate","title":"DemandDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityResultScore","title":"PriorityResultScore","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityResultScore"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityPolicyName","title":"PriorityPolicyName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityPolicyName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityFactorName","title":"PriorityFactorName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityFactorName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityFactorGradingName","title":"PriorityFactorGradingName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityFactorGradingName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityTotalScore","title":"PriorityTotalScore","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityTotalScore"}}]'
+ ContextMenu: 'listContextMenuPriorityResultDetails'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 2
+ ]
+ ResponseDefinitions:
+ [
+ DelegatedResponseDefinition OnClick id:Responsedef_ListPriorityResultBusinessTypeDetails_WebMenu_OnClick
+ {
+ #keys: '[414382.0.506320636]'
+ Initiator: 'WebMenu'
+ IsInherited: false
+ ResponseType: 'OnClick'
+ Arguments:
+ [
+ ResponseDefinitionArgument selection
+ {
+ #keys: '[1275.0.8208190]'
+ Binding: 'this.Selection()'
+ }
+ ]
+ }
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResultGroupDetails\043743.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResultGroupDetails\043743.def"
new file mode 100644
index 0000000..d589b28
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_ListPriorityResultGroupDetails\043743.def"
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+Component ListPriorityResultGroupDetails
+{
+ #keys: '[414382.0.506313387]'
+ BaseType: 'WebList'
+ Children:
+ [
+ Component DataExtractorPriorityResultDetails859
+ {
+ #keys: '[414382.0.506313388]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[PriorityResultGroupDetail]'
+ Source: 'DataHolderPriorityResultGroupDetails'
+ Taborder: 0
+ Transformation: 'Elements'
+ ]
+ }
+ #child: listActionBarPagePriorityResultDetails642
+ Component DataSetLevelPriorityResultDetails872
+ {
+ #keys: '[414382.0.506313393]'
+ BaseType: 'WebDataSetLevel'
+ Children:
+ [
+ #child: listContextMenuPriorityResultDetails590
+ ]
+ Properties:
+ [
+ Columns: '[{"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":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"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":"DemandDate","title":"DemandDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityResultScore","title":"PriorityResultScore","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityResultScore"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityPolicyName","title":"PriorityPolicyName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityPolicyName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityFactorName","title":"PriorityFactorName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityFactorName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityFactorGradingName","title":"PriorityFactorGradingName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityFactorGradingName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityTotalScore","title":"PriorityTotalScore","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityTotalScore"}}]'
+ ContextMenu: 'listContextMenuPriorityResultDetails590'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 4
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResult.def
new file mode 100644
index 0000000..842f6ec
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResult.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+Component PanelPriorityResult
+{
+ #keys: '[414382.0.506311784]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: ListPriorityResult
+ ]
+ Properties:
+ [
+ Taborder: 0
+ Title: '浼樺厛绾х粨鏋滃垪琛�'
+ ]
+}
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResultDetails\043633.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResultDetails\043633.def"
new file mode 100644
index 0000000..d8d93f4
--- /dev/null
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_PanelPriorityResultDetails\043633.def"
@@ -0,0 +1,46 @@
+Quintiq file version 2.0
+Component PanelPriorityResultDetails
+{
+ #keys: '[414382.0.506311801]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component LabelPriorityResultProductID
+ {
+ #keys: '[414382.0.506311846]'
+ BaseType: 'WebLabel'
+ Properties:
+ [
+ Label: '浜у搧缂栫爜:'
+ Taborder: 0
+ ]
+ }
+ Component LabelPriorityResultBusinessTypeDetails
+ {
+ #keys: '[414382.0.506311875]'
+ BaseType: 'WebLabel'
+ Properties:
+ [
+ Label: '浜嬩笟閮ㄤ紭鍏堢骇寰楀垎璇︽儏'
+ Taborder: 1
+ ]
+ }
+ Component LabelPriorityResultGroupDetails
+ {
+ #keys: '[414382.0.506311903]'
+ BaseType: 'WebLabel'
+ Properties:
+ [
+ Label: '闆嗗洟浼樺厛绾у緱鍒嗚鎯�'
+ Taborder: 3
+ ]
+ }
+ #child: ListPriorityResultBusinessTypeDetails
+ #child: ListPriorityResultGroupDetails
+ ]
+ Properties:
+ [
+ Taborder: 1
+ Title: '浼樺厛绾х粨鏋滄槑缁�'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResult.def
new file mode 100644
index 0000000..4da1e32
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResult.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPagePriorityResult
+{
+ #keys: '[414382.0.506312197]'
+ BaseType: 'listActionBarPage'
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResultDetails.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResultDetails.def
new file mode 100644
index 0000000..4951c85
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResultDetails.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPagePriorityResultDetails
+{
+ #keys: '[414382.0.506313051]'
+ BaseType: 'listActionBarPage'
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResultDetails642.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResultDetails642.def
new file mode 100644
index 0000000..2f67232
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listActionBarPagePriorityResultDetails642.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPagePriorityResultDetails642
+{
+ #keys: '[414382.0.506313390]'
+ BaseType: 'listActionBarPage'
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResult.def
new file mode 100644
index 0000000..33df24f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResult.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuPriorityResult
+{
+ #keys: '[414382.0.506312202]'
+ BaseType: 'listContextMenu'
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResultDetails.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResultDetails.def
new file mode 100644
index 0000000..8a23813
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResultDetails.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+Component listContextMenuPriorityResultDetails
+{
+ #keys: '[414382.0.506313056]'
+ BaseType: 'listContextMenu'
+ Children:
+ [
+ Component MenuEmergencyTopping
+ {
+ #keys: '[414382.0.506320730]'
+ BaseType: 'WebMenu'
+ Properties:
+ [
+ Image: 'GEAR_TIME'
+ Taborder: 3
+ Title: 'Emergency Topping'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResultDetails590.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResultDetails590.def
new file mode 100644
index 0000000..248d2aa
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Component_listContextMenuPriorityResultDetails590.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuPriorityResultDetails590
+{
+ #keys: '[414382.0.506313395]'
+ BaseType: 'listContextMenu'
+ Properties:
+ [
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResultBusinessTypeDetails_MenuEmergencyTopping_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResultBusinessTypeDetails_MenuEmergencyTopping_OnClick.def
new file mode 100644
index 0000000..430d449
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResultBusinessTypeDetails_MenuEmergencyTopping_OnClick.def
@@ -0,0 +1,24 @@
+Quintiq file version 2.0
+#parent: ListPriorityResultBusinessTypeDetails
+Response OnClick (
+ PriorityResultBusinessTypeDetail selection
+) id:Response_ListPriorityResultBusinessTypeDetails_MenuEmergencyTopping_OnClick
+{
+ #keys: '[414382.0.507572437]'
+ CanBindMultiple: false
+ DefinitionID => /ListPriorityResultBusinessTypeDetails/Responsedef_ListPriorityResultBusinessTypeDetails_WebMenu_OnClick
+ Initiator: 'MenuEmergencyTopping'
+ Precondition:
+ [*
+ return PriorityResultBusinessTypeDetail::CheckCanTopping(selection);
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ // 绱ф�ョ疆椤�
+ PriorityResultBusinessTypeDetail::EmergencyTopping( MacroPlan,selection);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_OnUserSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_OnUserSelectionChanged.def
new file mode 100644
index 0000000..493baf0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/Response_ListPriorityResult_OnUserSelectionChanged.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: ListPriorityResult
+Response OnUserSelectionChanged (
+ PriorityResult selection
+) id:Response_ListPriorityResult_OnUserSelectionChanged
+{
+ #keys: '[414382.0.506312631]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebList_OnUserSelectionChanged'
+ QuillAction
+ {
+ Body:
+ [*
+ businessTypeDetails := selectset( selection,PriorityResultBusinessTypeDetail,p,true);
+ DataHolderPriorityResultBusinessTypeDetails.Data(&businessTypeDetails);
+
+ groupDetails := selectset( selection,PriorityResultGroupDetail,p,true);
+ DataHolderPriorityResultGroupDetails.Data( &groupDetails);
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/_ROOT_Component_FormPriorityResult.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/_ROOT_Component_FormPriorityResult.def
new file mode 100644
index 0000000..99f642d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityResult/_ROOT_Component_FormPriorityResult.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormPriorityResult
+{
+ #keys: '[414382.0.506311765]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: PanelPriorityResultDetails
+ #child: PanelPriorityResult
+ Component DataHolderPriorityResultBusinessTypeDetails
+ {
+ #keys: '[414382.0.506312058]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[PriorityResultBusinessTypeDetail]*'
+ Properties:
+ [
+ Taborder: 2
+ ]
+ }
+ Component DataHolderPriorityResultGroupDetails
+ {
+ #keys: '[414382.0.506312077]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[PriorityResultGroupDetail]*'
+ Properties:
+ [
+ Taborder: 3
+ ]
+ }
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/PriorityResults.vw b/_Main/UI/MacroPlannerWebApp/Views/PriorityResults.vw
new file mode 100644
index 0000000..3489b0c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/PriorityResults.vw
@@ -0,0 +1,2258 @@
+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: 197
+ }
+ column_ChangedBy
+ {
+ columnId: 'ChangedBy'
+ dataPath: 'ChangedBy'
+ dataType: 'string'
+ title: 'Changed by'
+ index: 2
+ subtotals: ''
+ width: 91
+ }
+ 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: false
+ 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
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_1
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 2
+ }
+ 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_1
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 3
+ }
+ 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
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_2
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 4
+ }
+ 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_2
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 5
+ }
+ 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
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_3
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 6
+ }
+ 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_3
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 7
+ }
+ 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
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_4
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 8
+ }
+ 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_4
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 9
+ }
+ 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
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_5
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 10
+ }
+ 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_5
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 11
+ }
+ 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
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_6
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 12
+ }
+ 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_6
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 13
+ }
+ 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
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_7
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 14
+ }
+ 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_7
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 15
+ }
+ 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
+ }
+ }
+ }
+ }
+ form_FormSanityCheck
+ {
+ title: 'Sanity Check'
+ shown: false
+ componentID: 'FormSanityCheck'
+ layout
+ {
+ mode: 'dockright'
+ index: 16
+ }
+ components
+ {
+ FormSanityCheck_PanelSanityCheckToolbar
+ {
+ sizeRatio: 1
+ }
+ FormSanityCheck_PanelSanityCheckContent
+ {
+ sizeRatio: 1
+ }
+ FormSanityCheck_PanelSanityCheckGroup
+ {
+ sizeRatio: 4
+ }
+ FormSanityCheck_ListSanityCheckGroup
+ {
+ }
+ FormSanityCheck_DataSetLevelSanityCheckGroup
+ {
+ groupDepth: -1
+ sort: 'DESC:IsShown,DESC:SanityCheckHighestCategory,DESC:_Expr3'
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Show
+ {
+ columnId: 'Show'
+ dataPath: 'Show'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 32
+ }
+ column_Category
+ {
+ columnId: 'Category'
+ dataPath: 'Category'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 32
+ }
+ column_Group
+ {
+ columnId: 'Group'
+ dataPath: 'Group'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 270
+ }
+ column__Expr3
+ {
+ columnId: '_Expr3'
+ dataPath: '_Expr3'
+ dataType: 'number'
+ index: 4
+ subtotals: ''
+ width: 95
+ }
+ }
+ FormSanityCheck_PanelSanityCheckMessage
+ {
+ sizeRatio: 5
+ }
+ FormSanityCheck_ListSanityCheckMessage
+ {
+ }
+ FormSanityCheck_DataSetLevelSanityCheckMessage
+ {
+ groupDepth: -1
+ sort: 'DESC:IsShown,SanityCheckGroup.Type,SanityCheckGroup.Group,Description'
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Show
+ {
+ columnId: 'Show'
+ dataPath: 'Show'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 32
+ }
+ column_Category
+ {
+ columnId: 'Category'
+ dataPath: 'Category'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 32
+ }
+ column_Messages
+ {
+ columnId: 'Messages'
+ dataPath: 'Messages'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 32
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ index: 4
+ subtotals: ''
+ width: 585
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_8
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 17
+ }
+ 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_8
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 18
+ }
+ 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
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_9
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 19
+ }
+ 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_9
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 20
+ }
+ 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
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_10
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 21
+ }
+ 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_10
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 22
+ }
+ 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
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_11
+ {
+ title: 'Optimizer Puzzles'
+ shown: true
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 23
+ }
+ 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_11
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 24
+ }
+ 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
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_12
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 25
+ }
+ 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_12
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 26
+ }
+ 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
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_13
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 27
+ }
+ 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_13
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 28
+ }
+ 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
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_14
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 29
+ }
+ 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_14
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 30
+ }
+ 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
+ }
+ }
+ }
+ }
+ form_FormOptimizerPuzzles_15
+ {
+ title: 'Optimizer Puzzles'
+ shown: false
+ componentID: 'FormOptimizerPuzzles'
+ layout
+ {
+ mode: 'dockright'
+ index: 31
+ }
+ 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_15
+ {
+ title: 'KPI Dashboard'
+ shown: false
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 32
+ }
+ 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
+ }
+ }
+ }
+ }
+ form_FormSanityCheck_1
+ {
+ title: 'Sanity Check'
+ shown: false
+ componentID: 'FormSanityCheck'
+ layout
+ {
+ mode: 'dockright'
+ index: 33
+ }
+ components
+ {
+ FormSanityCheck_PanelSanityCheckToolbar
+ {
+ sizeRatio: 1
+ }
+ FormSanityCheck_PanelSanityCheckContent
+ {
+ sizeRatio: 1
+ }
+ FormSanityCheck_PanelSanityCheckGroup
+ {
+ sizeRatio: 4
+ }
+ FormSanityCheck_ListSanityCheckGroup
+ {
+ }
+ FormSanityCheck_DataSetLevelSanityCheckGroup
+ {
+ groupDepth: -1
+ sort: 'DESC:IsShown,DESC:SanityCheckHighestCategory,DESC:_Expr3'
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Show
+ {
+ columnId: 'Show'
+ dataPath: 'Show'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 32
+ }
+ column_Category
+ {
+ columnId: 'Category'
+ dataPath: 'Category'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 32
+ }
+ column_Group
+ {
+ columnId: 'Group'
+ dataPath: 'Group'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 270
+ }
+ column__Expr3
+ {
+ columnId: '_Expr3'
+ dataPath: '_Expr3'
+ dataType: 'number'
+ index: 4
+ subtotals: ''
+ width: 95
+ }
+ }
+ FormSanityCheck_PanelSanityCheckMessage
+ {
+ sizeRatio: 5
+ }
+ FormSanityCheck_ListSanityCheckMessage
+ {
+ }
+ FormSanityCheck_DataSetLevelSanityCheckMessage
+ {
+ groupDepth: -1
+ sort: 'DESC:IsShown,SanityCheckGroup.Type,SanityCheckGroup.Group,Description'
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Show
+ {
+ columnId: 'Show'
+ dataPath: 'Show'
+ dataType: 'string'
+ index: 1
+ subtotals: ''
+ width: 32
+ }
+ column_Category
+ {
+ columnId: 'Category'
+ dataPath: 'Category'
+ dataType: 'string'
+ index: 2
+ subtotals: ''
+ width: 32
+ }
+ column_Messages
+ {
+ columnId: 'Messages'
+ dataPath: 'Messages'
+ dataType: 'string'
+ index: 3
+ subtotals: ''
+ width: 32
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ index: 4
+ subtotals: ''
+ width: 585
+ }
+ }
+ }
+ }
+ }
+ userconfigurableinformation
+ {
+ }
+ page: ''
+ group: ''
+ index: 15
+ image: ''
+ description: ''
+ }
+ formatversion: 2
+ id: 'PriorityResults'
+ name: 'PriorityResults'
+ isglobal: false
+ isroot: true
+}
diff --git a/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp b/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
index cb94597..74c8fca 100644
--- a/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
+++ b/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp
@@ -5,7 +5,7 @@
ProjectProperties
{
ApplicationComponentName: 'ApplicationMacroPlanner'
- BuildVersion: '2022.3.0.32'
+ BuildVersion: '2022.3.0.113'
Description: 'Quintiq Macro Planner'
ProjectKind: 'WebClient'
}
--
Gitblit v1.9.3