From 21b1d88e5f7f751297b74ef19e49f787cacddcd5 Mon Sep 17 00:00:00 2001
From: lihongji <3117313295@qq.com>
Date: 星期二, 25 六月 2024 09:34:13 +0800
Subject: [PATCH] 调拨计划
---
_Main/BL/Type_TransferPlanColumn/_ROOT_Type_TransferPlanColumn.qbl | 9
_Main/BL/Type_TransferPlanRow/_ROOT_Type_TransferPlanRow.qbl | 9
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPagePlan.def | 1
_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Response_pnlActions_btnOk_OnClick.def | 16 +
_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityKW.qbl | 7
_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityZKM.qbl | 7
_Main/BL/Relations/Relation_TransferPlanCell_TransferPlanColumn_TransferPlanColumn_TransferPlan.qbl | 23 +
_Main/BL/Type_TransferPlanCell/StaticMethod_GenerateReport.qbl | 71 ++++
_Main/BL/Type_TransferPlanRow/Attribute_Name.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def | 34 ++
_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityZKG.qbl | 7
_Main/BL/Type_TransferPlanColumn/Attribute_ColumnDate.qbl | 8
_Main/BL/Type_TransferPlanColumn/TypeIndex_TransferPlanColumnTypeIndex.qbl | 12
_Main/UI/MacroPlannerWebApp/Views/TransferPlan.vw | 146 +++++++++
_Main/BL/Relations/Relation_TransferPlanCell_TransferPlanRow_TransferPlanRow_TransferPlanCell.qbl | 23 +
_Main/BL/Type_TransferPlanColumn/Attribute_ColumnIndex.qbl | 7
_Main/BL/Type_TransferPlanRow/Function_CalcName.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Response_pnlActions_btnCancel_OnClick.def | 15
_Main/BL/Relations/Relation_TransferPlanRow_MacroPlan_MacroPlan_TransferPlanRow.qbl | 23 +
_Main/BL/Type_TransferPlanRow/Attribute_RowNr.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Response_pHeader_bDownload_OnClick.def | 12
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bTransferPlan_OnClick.def | 16 +
_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/_ROOT_Component_DialogUpperLimitOfTransferCapacity.def | 21 +
_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Response_pHeader_bGenerateReport_OnClick.def | 22 +
_Main/BL/Relations/Relation_TransferPlanColumn_MacroPlan_MacroPlan_TransferPlanColumn.qbl | 23 +
_Main/BL/Type_TransferPlanRow/TypeIndex_TransferPlanRowTypeIndex.qbl | 20 +
_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityPL.qbl | 7
_Main/BL/Type_TransferPlanCell/Attribute_Value.qbl | 7
_Main/BL/Type_TransferPlanRow/Attribute_ProductID.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_pHeader.def | 46 ++
_Main/BL/Type_TransferPlanCell/_ROOT_Type_TransferPlanCell.qbl | 9
_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_matrixeditorContextMenu367.def | 10
_Main/BL/Type_TransferPlanRow/Attribute_SourceStockpoingPointID.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Component_pnlActions.def | 40 ++
_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_matrixEditorActionBarPage493.def | 10
_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/_ROOT_Component_FormTransferPlan.def | 18 +
_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_pContent.def | 14
_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityAGW.qbl | 7
_Main/BL/Type_TransferPlanColumn/Attribute_ColumnName.qbl | 7
_Main/BL/Type_TransferPlanColumn/Function_CalcColumnName.qbl | 13
_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Component_pnlContent.def | 64 ++++
_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_MatrixEditor872.def | 97 ++++++
_Main/BL/Type_TransferPlanRow/Attribute_TargetStockpoingPointID.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Response_pHeader_bMaximumDailyTransferCapacity_OnClick.def | 12
44 files changed, 944 insertions(+), 0 deletions(-)
diff --git a/_Main/BL/Relations/Relation_TransferPlanCell_TransferPlanColumn_TransferPlanColumn_TransferPlan.qbl b/_Main/BL/Relations/Relation_TransferPlanCell_TransferPlanColumn_TransferPlanColumn_TransferPlan.qbl
new file mode 100644
index 0000000..67fa6b9
--- /dev/null
+++ b/_Main/BL/Relations/Relation_TransferPlanCell_TransferPlanColumn_TransferPlanColumn_TransferPlan.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation TransferPlanCell_TransferPlanColumn_TransferPlanColumn_TransferPlanCell
+{
+ #keys: '1[413988.0.1292031952]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide TransferPlanColumn
+ {
+ #keys: '3[413988.0.1292031954][413988.0.1292031953][413988.0.1292031955]'
+ Cardinality: '0to1'
+ ObjectDefinition: TransferPlanCell
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide TransferPlanCell
+ {
+ #keys: '3[413988.0.1292031957][413988.0.1292031956][413988.0.1292031958]'
+ Cardinality: '1toN'
+ ObjectDefinition: TransferPlanColumn
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_TransferPlanCell_TransferPlanRow_TransferPlanRow_TransferPlanCell.qbl b/_Main/BL/Relations/Relation_TransferPlanCell_TransferPlanRow_TransferPlanRow_TransferPlanCell.qbl
new file mode 100644
index 0000000..a49adaa
--- /dev/null
+++ b/_Main/BL/Relations/Relation_TransferPlanCell_TransferPlanRow_TransferPlanRow_TransferPlanCell.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation TransferPlanCell_TransferPlanRow_TransferPlanRow_TransferPlanCell
+{
+ #keys: '1[413988.0.1292031965]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide TransferPlanRow
+ {
+ #keys: '3[413988.0.1292031967][413988.0.1292031966][413988.0.1292031968]'
+ Cardinality: '0to1'
+ ObjectDefinition: TransferPlanCell
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide TransferPlanCell
+ {
+ #keys: '3[413988.0.1292031970][413988.0.1292031969][413988.0.1292031971]'
+ Cardinality: '1toN'
+ ObjectDefinition: TransferPlanRow
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_TransferPlanColumn_MacroPlan_MacroPlan_TransferPlanColumn.qbl b/_Main/BL/Relations/Relation_TransferPlanColumn_MacroPlan_MacroPlan_TransferPlanColumn.qbl
new file mode 100644
index 0000000..7d3b50b
--- /dev/null
+++ b/_Main/BL/Relations/Relation_TransferPlanColumn_MacroPlan_MacroPlan_TransferPlanColumn.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation TransferPlanColumn_MacroPlan_MacroPlan_TransferPlanColumn
+{
+ #keys: '1[413988.0.1292031939]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MacroPlan
+ {
+ #keys: '3[413988.0.1292031941][413988.0.1292031940][413988.0.1292031942]'
+ Cardinality: '0to1'
+ ObjectDefinition: TransferPlanColumn
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide TransferPlanColumn
+ {
+ #keys: '3[413988.0.1292031944][413988.0.1292031943][413988.0.1292031945]'
+ Cardinality: '1toN'
+ ObjectDefinition: MacroPlan
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_TransferPlanRow_MacroPlan_MacroPlan_TransferPlanRow.qbl b/_Main/BL/Relations/Relation_TransferPlanRow_MacroPlan_MacroPlan_TransferPlanRow.qbl
new file mode 100644
index 0000000..047b702
--- /dev/null
+++ b/_Main/BL/Relations/Relation_TransferPlanRow_MacroPlan_MacroPlan_TransferPlanRow.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation TransferPlanRow_MacroPlan_MacroPlan_TransferPlanRow
+{
+ #keys: '1[413988.0.1292031926]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MacroPlan
+ {
+ #keys: '3[413988.0.1292031928][413988.0.1292031927][413988.0.1292031929]'
+ Cardinality: '0to1'
+ ObjectDefinition: TransferPlanRow
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide TransferPlanRow
+ {
+ #keys: '3[413988.0.1292031931][413988.0.1292031930][413988.0.1292031932]'
+ Cardinality: '1toN'
+ ObjectDefinition: MacroPlan
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityAGW.qbl b/_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityAGW.qbl
new file mode 100644
index 0000000..786db90
--- /dev/null
+++ b/_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityAGW.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UpperLimitOfTransferCapacityAGW
+{
+ #keys: '3[413988.0.1291510952][413988.0.1291510951][413988.0.1291510953]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityKW.qbl b/_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityKW.qbl
new file mode 100644
index 0000000..01784de
--- /dev/null
+++ b/_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityKW.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UpperLimitOfTransferCapacityKW
+{
+ #keys: '3[413988.0.1291510942][413988.0.1291510941][413988.0.1291510943]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityPL.qbl b/_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityPL.qbl
new file mode 100644
index 0000000..66d7b43
--- /dev/null
+++ b/_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityPL.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UpperLimitOfTransferCapacityPL
+{
+ #keys: '3[413988.0.1291510932][413988.0.1291510931][413988.0.1291510933]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityZKG.qbl b/_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityZKG.qbl
new file mode 100644
index 0000000..4154a27
--- /dev/null
+++ b/_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityZKG.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UpperLimitOfTransferCapacityZKG
+{
+ #keys: '3[413988.0.1291510909][413988.0.1291510908][413988.0.1291510910]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityZKM.qbl b/_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityZKM.qbl
new file mode 100644
index 0000000..1f5e8a7
--- /dev/null
+++ b/_Main/BL/Type_MacroPlan/Attribute_UpperLimitOfTransferCapacityZKM.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute UpperLimitOfTransferCapacityZKM
+{
+ #keys: '3[413988.0.1291510922][413988.0.1291510921][413988.0.1291510923]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_TransferPlanCell/Attribute_Value.qbl b/_Main/BL/Type_TransferPlanCell/Attribute_Value.qbl
new file mode 100644
index 0000000..d398224
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanCell/Attribute_Value.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Value
+{
+ #keys: '3[413988.0.1292032065][413988.0.1292032064][413988.0.1292032066]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_TransferPlanCell/StaticMethod_GenerateReport.qbl b/_Main/BL/Type_TransferPlanCell/StaticMethod_GenerateReport.qbl
new file mode 100644
index 0000000..3fa0a72
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanCell/StaticMethod_GenerateReport.qbl
@@ -0,0 +1,71 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod GenerateReport (
+ MacroPlan macroPlan
+)
+{
+ TextBody:
+ [*
+ macroPlan.TransferPlanRow( relflush );
+ macroPlan.TransferPlanColumn( relflush );
+
+ rowNr := 0;
+
+ // 鐢熸垚璋冩嫧璁″垝
+ traverse ( macroPlan, Unit, u, u.HasCapacityTypeTransportQuantity() ) {
+ traverse ( u, Lane.LaneLeg.Trip, t ) {
+ traverse ( t, ProductInTrip, pit, pit.Quantity() > 0.0 ) {
+ // 鎵捐
+ tpr := TransferPlanRow::FindTransferPlanRowTypeIndex( t.LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP().Name(),
+ t.LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP().Name(),
+ pit.Product_MP().ID() );
+ if ( isnull( tpr ) ) {
+ tpr := macroPlan.TransferPlanRow( relnew,
+ RowNr := rowNr,
+ SourceStockpoingPointID := t.LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP().Name(),
+ TargetStockpoingPointID := t.LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP().Name(),
+ ProductID := pit.Product_MP().ID() );
+ }
+
+ // 鎵惧垪
+ tpc := TransferPlanColumn::FindTransferPlanColumnTypeIndex( t.Departure().Date() );
+ if ( isnull( tpc ) ) {
+ tpc := macroPlan.TransferPlanColumn( relnew,
+ ColumnDate := t.Departure().Date() );
+ }
+
+ // 璧嬪�煎崟鍏冩牸
+ cell := select( tpc, TransferPlanCell, tempTPC, tempTPC.TransferPlanRow() = tpr );
+ if ( isnull( cell ) ) {
+ cell := tpc.TransferPlanCell( relnew, Value := [String]pit.Quantity().Round( 0 ) );
+ cell.TransferPlanRow( relset, tpr );
+ } else {
+ cell.Value( [String] ( [Number]cell.Value() + pit.Quantity().Round( 0 ) ) );
+ }
+ }
+ }
+ }
+
+ // 琛ラ綈绌哄垪
+ indexDate := minselect( macroPlan, TransferPlanColumn, tempTPC, true, tempTPC.ColumnDate() ).ColumnDate();
+ endDate := maxselect( macroPlan, TransferPlanColumn, tempTPC, true, tempTPC.ColumnDate() ).ColumnDate();
+ while ( indexDate <= endDate ) {
+ if ( isnull( TransferPlanColumn::FindTransferPlanColumnTypeIndex( indexDate ) ) ) {
+ macroPlan.TransferPlanColumn( relnew,
+ ColumnDate := indexDate );
+ }
+ indexDate := indexDate + 1;
+ }
+
+
+ // 鐢熸垚浜у搧鍒�
+ minDateTPC := macroPlan.TransferPlanColumn( relnew,
+ ColumnDate := Date::MinDate() );
+ traverse ( macroPlan, TransferPlanRow, tpr ) {
+ productCell := minDateTPC.TransferPlanCell( relnew, Value := tpr.ProductID() );
+ productCell.TransferPlanRow( relset, tpr );
+ }
+
+ // 璋冩嫧鏁伴噺璋冩暣
+ *]
+}
diff --git a/_Main/BL/Type_TransferPlanCell/_ROOT_Type_TransferPlanCell.qbl b/_Main/BL/Type_TransferPlanCell/_ROOT_Type_TransferPlanCell.qbl
new file mode 100644
index 0000000..9aff6e7
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanCell/_ROOT_Type_TransferPlanCell.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type TransferPlanCell
+{
+ #keys: '5[413988.0.1292031923][413988.0.1292031921][0.0.0][413988.0.1292031922][413988.0.1292031924]'
+ BaseType: Object
+ StructuredName: 'TransferPlanCells'
+}
diff --git a/_Main/BL/Type_TransferPlanColumn/Attribute_ColumnDate.qbl b/_Main/BL/Type_TransferPlanColumn/Attribute_ColumnDate.qbl
new file mode 100644
index 0000000..86ce75b
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanColumn/Attribute_ColumnDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ColumnDate
+{
+ #keys: '3[413988.0.1292032055][413988.0.1292032054][413988.0.1292032056]'
+ IsReadOnly: true
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_TransferPlanColumn/Attribute_ColumnIndex.qbl b/_Main/BL/Type_TransferPlanColumn/Attribute_ColumnIndex.qbl
new file mode 100644
index 0000000..7b327f5
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanColumn/Attribute_ColumnIndex.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ColumnIndex
+{
+ #keys: '3[413988.0.1292032025][413988.0.1292032024][413988.0.1292032026]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_TransferPlanColumn/Attribute_ColumnName.qbl b/_Main/BL/Type_TransferPlanColumn/Attribute_ColumnName.qbl
new file mode 100644
index 0000000..a664e11
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanColumn/Attribute_ColumnName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ColumnName
+{
+ #keys: '3[413988.0.1292032045][413988.0.1292032044][413988.0.1292032046]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_TransferPlanColumn/Function_CalcColumnName.qbl b/_Main/BL/Type_TransferPlanColumn/Function_CalcColumnName.qbl
new file mode 100644
index 0000000..61e2036
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanColumn/Function_CalcColumnName.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcColumnName
+{
+ TextBody:
+ [*
+ // lihongji Jun-24-2024 (created)
+
+ value := ifexpr( this.ColumnDate().IsMinInfinity(), "", this.ColumnDate().Format( "Y/M2/D2" ) );
+
+ this.ColumnName( value );
+ *]
+}
diff --git a/_Main/BL/Type_TransferPlanColumn/TypeIndex_TransferPlanColumnTypeIndex.qbl b/_Main/BL/Type_TransferPlanColumn/TypeIndex_TransferPlanColumnTypeIndex.qbl
new file mode 100644
index 0000000..eb1cf36
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanColumn/TypeIndex_TransferPlanColumnTypeIndex.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex TransferPlanColumnTypeIndex
+{
+ Attributes:
+ [
+ TypeIndexAttribute
+ {
+ ModelElement: ColumnDate
+ }
+ ]
+}
diff --git a/_Main/BL/Type_TransferPlanColumn/_ROOT_Type_TransferPlanColumn.qbl b/_Main/BL/Type_TransferPlanColumn/_ROOT_Type_TransferPlanColumn.qbl
new file mode 100644
index 0000000..49de9fe
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanColumn/_ROOT_Type_TransferPlanColumn.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type TransferPlanColumn
+{
+ #keys: '5[413988.0.1292031918][413988.0.1292031916][0.0.0][413988.0.1292031917][413988.0.1292031919]'
+ BaseType: Object
+ StructuredName: 'TransferPlanColumns'
+}
diff --git a/_Main/BL/Type_TransferPlanRow/Attribute_Name.qbl b/_Main/BL/Type_TransferPlanRow/Attribute_Name.qbl
new file mode 100644
index 0000000..e0be8b2
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanRow/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+ #keys: '3[413988.0.1292032011][413988.0.1292032010][413988.0.1292032012]'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_TransferPlanRow/Attribute_ProductID.qbl b/_Main/BL/Type_TransferPlanRow/Attribute_ProductID.qbl
new file mode 100644
index 0000000..6135603
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanRow/Attribute_ProductID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+ #keys: '3[413988.0.1292031981][413988.0.1292031980][413988.0.1292031982]'
+ IsReadOnly: true
+ ValueType: String
+}
diff --git a/_Main/BL/Type_TransferPlanRow/Attribute_RowNr.qbl b/_Main/BL/Type_TransferPlanRow/Attribute_RowNr.qbl
new file mode 100644
index 0000000..be1fa8f
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanRow/Attribute_RowNr.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute RowNr
+{
+ #keys: '3[413988.0.1292032032][413988.0.1292032031][413988.0.1292032033]'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_TransferPlanRow/Attribute_SourceStockpoingPointID.qbl b/_Main/BL/Type_TransferPlanRow/Attribute_SourceStockpoingPointID.qbl
new file mode 100644
index 0000000..63873ca
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanRow/Attribute_SourceStockpoingPointID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SourceStockpoingPointID
+{
+ #keys: '3[413988.0.1292031991][413988.0.1292031990][413988.0.1292031992]'
+ IsReadOnly: true
+ ValueType: String
+}
diff --git a/_Main/BL/Type_TransferPlanRow/Attribute_TargetStockpoingPointID.qbl b/_Main/BL/Type_TransferPlanRow/Attribute_TargetStockpoingPointID.qbl
new file mode 100644
index 0000000..dfec058
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanRow/Attribute_TargetStockpoingPointID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TargetStockpoingPointID
+{
+ #keys: '3[413988.0.1292032001][413988.0.1292032000][413988.0.1292032002]'
+ IsReadOnly: true
+ ValueType: String
+}
diff --git a/_Main/BL/Type_TransferPlanRow/Function_CalcName.qbl b/_Main/BL/Type_TransferPlanRow/Function_CalcName.qbl
new file mode 100644
index 0000000..30e44df
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanRow/Function_CalcName.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcName
+{
+ TextBody:
+ [*
+ // lihongji Jun-24-2024 (created)
+
+ value := this.SourceStockpoingPointID() + " to " + this.TargetStockpoingPointID();
+
+ this.Name( value );
+ *]
+}
diff --git a/_Main/BL/Type_TransferPlanRow/TypeIndex_TransferPlanRowTypeIndex.qbl b/_Main/BL/Type_TransferPlanRow/TypeIndex_TransferPlanRowTypeIndex.qbl
new file mode 100644
index 0000000..9ac1725
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanRow/TypeIndex_TransferPlanRowTypeIndex.qbl
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex TransferPlanRowTypeIndex
+{
+ Attributes:
+ [
+ TypeIndexAttribute
+ {
+ ModelElement: SourceStockpoingPointID
+ }
+ TypeIndexAttribute
+ {
+ ModelElement: TargetStockpoingPointID
+ }
+ TypeIndexAttribute
+ {
+ ModelElement: ProductID
+ }
+ ]
+}
diff --git a/_Main/BL/Type_TransferPlanRow/_ROOT_Type_TransferPlanRow.qbl b/_Main/BL/Type_TransferPlanRow/_ROOT_Type_TransferPlanRow.qbl
new file mode 100644
index 0000000..68692d7
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanRow/_ROOT_Type_TransferPlanRow.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type TransferPlanRow
+{
+ #keys: '5[413988.0.1292031913][413988.0.1292031911][0.0.0][413988.0.1292031912][413988.0.1292031914]'
+ BaseType: Object
+ StructuredName: 'TransferPlanRows'
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPagePlan.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPagePlan.def
index cde4c13..456f8a2 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPagePlan.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPagePlan.def
@@ -4,5 +4,6 @@
Children:
[
#child: ActionBarGroupPlanViews
+ #child: abgSecondDevelopmentPlan
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def
new file mode 100644
index 0000000..c40d27d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def
@@ -0,0 +1,34 @@
+Quintiq file version 2.0
+Component abgSecondDevelopmentPlan
+{
+ #keys: '[413988.0.1290310419]'
+ BaseType: 'WebActionBarGroup'
+ Children:
+ [
+ Component bTransferPlan
+ {
+ #keys: '[413988.0.1290300652]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'HAND_TRUCK_BOX'
+ Label: 'Transfer plan'
+ Taborder: 0
+ ]
+ }
+ Component bBlank
+ {
+ #keys: '[413988.0.1291640400]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Taborder: 1
+ ]
+ }
+ ]
+ Properties:
+ [
+ Category: 'Actions-2'
+ Taborder: 3
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bTransferPlan_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bTransferPlan_OnClick.def
new file mode 100644
index 0000000..af99f70
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bTransferPlan_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: abgSecondDevelopmentPlan/bTransferPlan
+Response OnClick () id:Response_MacroPlanner_abgSecondDevelopmentPlan_bTransferPlan_OnClick
+{
+ #keys: '[413988.0.1290322113]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ ApplicationScope.ViewManager().ResetUserViewById( "TransferPlan", true);
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Component_pnlActions.def
new file mode 100644
index 0000000..7ac917e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Component_pnlActions.def
@@ -0,0 +1,40 @@
+Quintiq file version 2.0
+Component pnlActions
+{
+ #keys: '[413988.0.1292313213]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component btnOk
+ {
+ #keys: '[413988.0.1292313217]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'OK'
+ Taborder: 0
+ ]
+ }
+ Component btnCancel
+ {
+ #keys: '[413988.0.1292313219]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Cancel'
+ Taborder: 1
+ ]
+ }
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ Border: true
+ ExcludeFromActiveComponent: true
+ FixedSize: true
+ Orientation: 'horizontal'
+ Padding: 'true'
+ Style: 'footer'
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Component_pnlContent.def
new file mode 100644
index 0000000..d0331a8
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Component_pnlContent.def
@@ -0,0 +1,64 @@
+Quintiq file version 2.0
+Component pnlContent
+{
+ #keys: '[413988.0.1292313211]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component npUpperLimitOfTransferCapacityZKG
+ {
+ #keys: '[413988.0.1292313261]'
+ BaseType: 'WebNumberPicker'
+ Properties:
+ [
+ Label: 'ZKG(pcs)'
+ Taborder: 0
+ ]
+ }
+ Component npUpperLimitOfTransferCapacityZKM
+ {
+ #keys: '[413988.0.1292313339]'
+ BaseType: 'WebNumberPicker'
+ Properties:
+ [
+ Label: 'ZKM(pcs)'
+ Taborder: 1
+ ]
+ }
+ Component npUpperLimitOfTransferCapacityPL
+ {
+ #keys: '[413988.0.1292313341]'
+ BaseType: 'WebNumberPicker'
+ Properties:
+ [
+ Label: 'PL(pcs)'
+ Taborder: 2
+ ]
+ }
+ Component npUpperLimitOfTransferCapacityKW
+ {
+ #keys: '[413988.0.1292313343]'
+ BaseType: 'WebNumberPicker'
+ Properties:
+ [
+ Label: 'KW(pcs)'
+ Taborder: 3
+ ]
+ }
+ Component npUpperLimitOfTransferCapacityAGW
+ {
+ #keys: '[413988.0.1292313345]'
+ BaseType: 'WebNumberPicker'
+ Properties:
+ [
+ Label: 'AGW(pcs)'
+ Taborder: 4
+ ]
+ }
+ ]
+ Properties:
+ [
+ Padding: 'true'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Response_pnlActions_btnCancel_OnClick.def
new file mode 100644
index 0000000..2917a99
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Response_pnlActions_btnCancel_OnClick.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnCancel
+Response OnClick () id:Response_pnlActions_btnCancel_OnClick
+{
+ #keys: '[413988.0.1292313223]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ Form.Close();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Response_pnlActions_btnOk_OnClick.def
new file mode 100644
index 0000000..14ca6da
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Response_pnlActions_btnOk_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: pnlActions/btnOk
+Response OnClick () id:Response_pnlActions_btnOk_OnClick
+{
+ #keys: '[413988.0.1292313222]'
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ Form.ApplyChanges();
+ Form.Close();
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/_ROOT_Component_DialogUpperLimitOfTransferCapacity.def b/_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/_ROOT_Component_DialogUpperLimitOfTransferCapacity.def
new file mode 100644
index 0000000..338e32f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/_ROOT_Component_DialogUpperLimitOfTransferCapacity.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent DialogUpperLimitOfTransferCapacity
+{
+ #keys: '[413988.0.1292313209]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: pnlContent
+ #child: pnlActions
+ ]
+ Properties:
+ [
+ Alignment: 'trailing'
+ EnterButton: 'btnOk'
+ EscapeButton: 'btnCancel'
+ ExcludeFromActiveComponent: true
+ Padding: 'false'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_MatrixEditor872.def b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_MatrixEditor872.def
new file mode 100644
index 0000000..7db9d74
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_MatrixEditor872.def
@@ -0,0 +1,97 @@
+Quintiq file version 2.0
+Component MatrixEditor872
+{
+ #keys: '[413988.0.1290322866]'
+ BaseType: 'WebMatrixEditor'
+ Children:
+ [
+ Component MatrixEditorCell590
+ {
+ #keys: '[413988.0.1290322867]'
+ BaseType: 'WebMatrixEditorCell'
+ Children:
+ [
+ Component DataExtractor862
+ {
+ #keys: '[413988.0.1290322868]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MacroPlan'
+ Source: 'MacroPlan'
+ Taborder: 0
+ Transformation: 'TransferPlanColumn.TransferPlanCell'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Attributes: 'Value'
+ Column: 'TransferPlanColumn'
+ Row: 'TransferPlanRow'
+ Taborder: 0
+ ]
+ }
+ Component MatrixEditorRows481
+ {
+ #keys: '[413988.0.1290322871]'
+ BaseType: 'WebMatrixEditorHeaderLevel'
+ Children:
+ [
+ Component DataExtractor661
+ {
+ #keys: '[413988.0.1290322872]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MacroPlan'
+ Source: 'MacroPlan'
+ Taborder: 0
+ Transformation: 'TransferPlanRow'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Legend: 'Name'
+ SortCriteria: 'SourceStockpoingPointID;TargetStockpoingPointID;ProductID'
+ Taborder: 1
+ ]
+ }
+ Component MatrixEditorColumns681
+ {
+ #keys: '[413988.0.1290322875]'
+ BaseType: 'WebMatrixEditorHeaderLevel'
+ Children:
+ [
+ Component DataExtractor445
+ {
+ #keys: '[413988.0.1290322876]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'MacroPlan'
+ Source: 'MacroPlan'
+ Taborder: 0
+ Transformation: 'TransferPlanColumn'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Legend: 'ColumnName'
+ SortCriteria: 'ColumnDate'
+ Taborder: 2
+ ]
+ }
+ #child: matrixEditorActionBarPage493
+ #child: matrixeditorContextMenu367
+ ]
+ Properties:
+ [
+ Columns: 'MatrixEditorColumns681'
+ ContextMenu: 'matrixeditorContextMenu367'
+ Rows: 'MatrixEditorRows481'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_matrixEditorActionBarPage493.def b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_matrixEditorActionBarPage493.def
new file mode 100644
index 0000000..8117f9f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_matrixEditorActionBarPage493.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixEditorActionBarPage493
+{
+ #keys: '[413988.0.1290322879]'
+ BaseType: 'matrixEditorActionBarPage'
+ Properties:
+ [
+ Taborder: 3
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_matrixeditorContextMenu367.def b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_matrixeditorContextMenu367.def
new file mode 100644
index 0000000..263a486
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_matrixeditorContextMenu367.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixeditorContextMenu367
+{
+ #keys: '[413988.0.1290322882]'
+ BaseType: 'matrixeditorContextMenu'
+ Properties:
+ [
+ Taborder: 4
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_pContent.def b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_pContent.def
new file mode 100644
index 0000000..957b4ac
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_pContent.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component pContent
+{
+ #keys: '[413988.0.1290370837]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: MatrixEditor872
+ ]
+ Properties:
+ [
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_pHeader.def b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_pHeader.def
new file mode 100644
index 0000000..74595a4
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Component_pHeader.def
@@ -0,0 +1,46 @@
+Quintiq file version 2.0
+Component pHeader
+{
+ #keys: '[413988.0.1290370823]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component bDownload
+ {
+ #keys: '[413988.0.1290361218]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Download'
+ Taborder: 0
+ ]
+ }
+ Component bMaximumDailyTransferCapacity
+ {
+ #keys: '[413988.0.1290361230]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Maximum daily transfer capacity'
+ Taborder: 1
+ ]
+ }
+ Component bGenerateReport
+ {
+ #keys: '[413988.0.1292223250]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Generate report'
+ Taborder: 2
+ ]
+ }
+ ]
+ Properties:
+ [
+ Border: true
+ FixedSize: true
+ Orientation: 'horizontal'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Response_pHeader_bDownload_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Response_pHeader_bDownload_OnClick.def
new file mode 100644
index 0000000..17323ed
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Response_pHeader_bDownload_OnClick.def
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: pHeader/bDownload
+Response OnClick () id:Response_pHeader_bDownload_OnClick
+{
+ #keys: '[413988.0.1292330526]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Response_pHeader_bGenerateReport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Response_pHeader_bGenerateReport_OnClick.def
new file mode 100644
index 0000000..2465dff
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Response_pHeader_bGenerateReport_OnClick.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: pHeader/bGenerateReport
+Response OnClick () id:Response_pHeader_bGenerateReport_OnClick
+{
+ #keys: '[413988.0.1292330696]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ return not isnull( MacroPlan );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ TransferPlanCell::GenerateReport( MacroPlan );
+
+ WebMessageBox::Success( Translations::A_VWED_Success() );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Response_pHeader_bMaximumDailyTransferCapacity_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Response_pHeader_bMaximumDailyTransferCapacity_OnClick.def
new file mode 100644
index 0000000..fd89de9
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Response_pHeader_bMaximumDailyTransferCapacity_OnClick.def
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: pHeader/bMaximumDailyTransferCapacity
+Response OnClick () id:Response_pHeader_bMaximumDailyTransferCapacity_OnClick
+{
+ #keys: '[413988.0.1292330611]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ QuillAction
+ {
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/_ROOT_Component_FormTransferPlan.def b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/_ROOT_Component_FormTransferPlan.def
new file mode 100644
index 0000000..dd8a2b6
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/_ROOT_Component_FormTransferPlan.def
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormTransferPlan
+{
+ #keys: '[413988.0.1290321873]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: pContent
+ #child: pHeader
+ ]
+ Properties:
+ [
+ Image: 'HAND_TRUCK_BOX'
+ Title: 'Transfer plan'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/TransferPlan.vw b/_Main/UI/MacroPlannerWebApp/Views/TransferPlan.vw
new file mode 100644
index 0000000..0cda1ef
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/TransferPlan.vw
@@ -0,0 +1,146 @@
+Quintiq file version 2.0
+{
+ viewcontents
+ {
+ forms
+ {
+ form_FormTransferPlan
+ {
+ title: 'QMacroPlanner::FormTransferPlan'
+ shown: true
+ componentID: 'QMacroPlanner::FormTransferPlan'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 14
+ columnPosition: 1
+ columnSpan: 12
+ }
+ components: null
+ }
+ 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: 'Name'
+ index: 1
+ subtotals: ''
+ width: 109
+ }
+ column_Description
+ {
+ columnId: 'Description'
+ dataPath: 'Description'
+ dataType: 'string'
+ title: 'Description'
+ index: 2
+ subtotals: ''
+ width: 207
+ }
+ }
+ }
+ }
+ form_FormKPI
+ {
+ title: 'KPI Dashboard'
+ shown: true
+ componentID: 'FormKPI'
+ layout
+ {
+ mode: 'dockright'
+ index: 1
+ }
+ components
+ {
+ FormKPI_PanelKPI
+ {
+ sizeRatio: 1
+ activeChild: 'PanelKPISelection'
+ }
+ FormKPI_PanelKPIDashboard
+ {
+ sizeRatio: 1
+ }
+ FormKPI_PanelKPISelection
+ {
+ sizeRatio: 1
+ }
+ FormKPI_ListKPISelection
+ {
+ QuillViewData
+ {
+ Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
+ }
+ }
+ FormKPI_DataSetLevelKPISelection
+ {
+ groupDepth: -1
+ column_All_constraints
+ {
+ columnId: 'All constraints'
+ dataPath: 'All constraints'
+ dataType: 'string'
+ title: 'All constraints'
+ index: 0
+ subtotals: ''
+ width: 32
+ }
+ column_Name
+ {
+ columnId: 'Name'
+ dataPath: 'Name'
+ dataType: 'string'
+ title: 'Name'
+ index: 1
+ subtotals: ''
+ width: 200
+ }
+ }
+ }
+ }
+ }
+ userconfigurableinformation
+ {
+ }
+ page: ''
+ group: ''
+ index: 0
+ image: 'WALLET_OPEN'
+ description: ''
+ }
+ formatversion: 2
+ id: 'TransferPlan'
+ name: 'TransferPlan'
+ isglobal: false
+ isroot: true
+}
--
Gitblit v1.9.3