From 6abb15fbe15c966e5281160baacab45ab8bc741b Mon Sep 17 00:00:00 2001
From: lihongji <3117313295@qq.com>
Date: 星期六, 12 十月 2024 16:32:06 +0800
Subject: [PATCH] 下线计划存档建模
---
_Main/BL/Type_NewOfflinePlanCell/Attribute_TotalQuantity.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixEditorActionBarPage338.def | 10
_Main/BL/Type_NewOfflinePlanCell/Attribute_Quantity.qbl | 8
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ProductionLine.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bNewOfflinePlan_OnClick.def | 16
_Main/BL/Type_NewOfflinePlanRow/Attribute_ProductID.qbl | 8
_Main/BL/Type_NewOfflinePlanCell/Function_CalcStartDate.qbl | 13
_Main/BL/Type_NewOfflinePlanRow/Attribute_Type.qbl | 13
_Main/BL/Type_NewOfflinePlanCell/Function_CalcEndDate.qbl | 13
_Main/BL/Relations/Relation_InterfaceNewOfflinePlanDetailData_InterfaceNewOfflinePlanVersion_In.qbl | 23 +
_Main/BL/Type_NewOfflinePlanCell/_ROOT_Type_NewOfflinePlanCell.qbl | 10
_Main/BL/Type_NewOfflinePlanCell/Attribute_EndDate.qbl | 7
_Main/BL/Relations/Relation_NewOfflinePlanTable_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOf.qbl | 23 +
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pDetail.def | 15
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pTotal.def | 14
_Main/BL/Type_NewOfflinePlanRow/_ROOT_Type_NewOfflinePlanRow.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_dhNewOfflinePlanTable_OnCreated.def | 22
_Main/UI/MacroPlannerWebApp/Views/NewOfflinePlan.vw | 215 +++++++++
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/_ROOT_Type_InterfaceNewOfflinePlanDetailData.qbl | 10
_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternName.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixeditorContextMenu229.def | 10
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl | 93 ++++
_Main/BL/Type_NewOfflinePlanTable/_ROOT_Type_NewOfflinePlanTable.qbl | 9
_Main/BL/Type_NewOfflinePlanCell/Attribute_StartDate.qbl | 7
_Main/BL/Type_NewOfflinePlanRow/Attribute_ProductionLine.qbl | 8
_Main/BL/Relations/Relation_NewOfflinePlanTable_MacroPlan_MacroPlan_NewOfflinePlanTable.qbl | 23 +
_Main/BL/Type_NewOfflinePlanCell/Attribute_Order.qbl | 8
_Main/BL/Type_NewOfflinePlanColumn/_ROOT_Type_NewOfflinePlanColumn.qbl | 10
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixEditorActionBarPage623.def | 10
_Main/BL/Type_NewOfflinePlanTable/Attribute_SaveDateTime.qbl | 8
_Main/BL/Type_NewOfflinePlanRow/Function_CalcName.qbl | 13
_Main/BL/Type_NewOfflinePlanColumn/Attribute_EndDate.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bRefresh_OnClick.def | 25 +
_Main/BL/Type_InterfaceOfflinePlanVersion/Attribute_ScenarioName.qbl | 8
_Main/BL/Type_NewOfflinePlanColumn/Attribute_StartDate.qbl | 7
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_MatrixEditor515.def | 99 ++++
_Main/BL/Relations/Relation_NewOfflinePlanRow_NewOfflinePlanCell_NewOfflinePlanCell_NewOfflineP.qbl | 34 +
_Main/BL/Type_NewOfflinePlanCell/Function_CalcTotalQuantity.qbl | 13
_Main/BL/Type_InterfaceOfflinePlanVersion/_ROOT_Type_InterfaceNewOfflinePlanVersion.qbl | 10
_Main/BL/Relations/Relation_NewOfflinePlanCell_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOff.qbl | 23 +
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def | 19
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternName.qbl | 8
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_StartDate.qbl | 8
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_OrderNr.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_MatrixEditor583.def | 98 ++++
_Main/BL/Type_NewOfflinePlanRow/Attribute_Name.qbl | 8
_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternEnd.qbl | 8
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternStart.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pHeader.def | 26 +
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/_ROOT_Component_FormNewOfflinePlan.def | 84 +++
_Main/Sys/Repr/Global/NewOfflinePlanCell.qrp | 26 +
_Main/BL/Type_NewOfflinePlanCell/Attribute_InventoryWeight.qbl | 8
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ProductID.qbl | 8
_Main/BL/Relations/Relation_NewOfflinePlanTable_NewOfflinePlanRow_NewOfflinePlanRow_NewOfflineP.qbl | 23 +
_Main/BL/Type_NewOfflinePlanCell/Attribute_OrderNr.qbl | 8
_Main/BL/Relations/Relation_InterfaceNewOfflinePlanVersion_InterfaceDataset_InterfaceDataset_In.qbl | 23 +
_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternStart.qbl | 8
_Main/BL/Relations/Relation_NewOfflinePlanCell_Detailed_NewOfflinePlanCell_Total.qbl | 23 +
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_Order.qbl | 8
_Main/BL/Type_NewOfflinePlanRow/Method_Filter.qbl | 17
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_Quantity.qbl | 8
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixeditorContextMenu267.def | 10
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternEnd.qbl | 8
_Main/UI/MacroPlannerWebApp/HighlightRules.hl | 15
64 files changed, 1,343 insertions(+), 4 deletions(-)
diff --git a/_Main/BL/Relations/Relation_InterfaceNewOfflinePlanDetailData_InterfaceNewOfflinePlanVersion_In.qbl b/_Main/BL/Relations/Relation_InterfaceNewOfflinePlanDetailData_InterfaceNewOfflinePlanVersion_In.qbl
new file mode 100644
index 0000000..d78d574
--- /dev/null
+++ b/_Main/BL/Relations/Relation_InterfaceNewOfflinePlanDetailData_InterfaceNewOfflinePlanVersion_In.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation InterfaceNewOfflinePlanDetailData_InterfaceNewOfflinePlanVersion_InterfaceNewOfflinePlanVersion_InterfaceNewOfflinePlanDetailData
+{
+ #keys: '1[413988.0.1635820084]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide InterfaceNewOfflinePlanVersion
+ {
+ #keys: '3[413988.0.1635820086][413988.0.1635820085][413988.0.1635820087]'
+ Cardinality: '0to1'
+ ObjectDefinition: InterfaceNewOfflinePlanDetailData
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide InterfaceNewOfflinePlanDetailData
+ {
+ #keys: '3[413988.0.1635820089][413988.0.1635820088][413988.0.1635820090]'
+ Cardinality: '1toN'
+ ObjectDefinition: InterfaceNewOfflinePlanVersion
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_InterfaceNewOfflinePlanVersion_InterfaceDataset_InterfaceDataset_In.qbl b/_Main/BL/Relations/Relation_InterfaceNewOfflinePlanVersion_InterfaceDataset_InterfaceDataset_In.qbl
new file mode 100644
index 0000000..c86c407
--- /dev/null
+++ b/_Main/BL/Relations/Relation_InterfaceNewOfflinePlanVersion_InterfaceDataset_InterfaceDataset_In.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation InterfaceNewOfflinePlanVersion_InterfaceDataset_InterfaceDataset_InterfaceNewOfflinePlanVersion
+{
+ #keys: '1[413988.0.1635820033]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide InterfaceDataset
+ {
+ #keys: '3[413988.0.1635820035][413988.0.1635820034][413988.0.1635820036]'
+ Cardinality: '0to1'
+ ObjectDefinition: InterfaceNewOfflinePlanVersion
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide InterfaceNewOfflinePlanVersion
+ {
+ #keys: '3[413988.0.1635820038][413988.0.1635820037][413988.0.1635820039]'
+ Cardinality: '1toN'
+ ObjectDefinition: InterfaceDataset
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_NewOfflinePlanCell_Detailed_NewOfflinePlanCell_Total.qbl b/_Main/BL/Relations/Relation_NewOfflinePlanCell_Detailed_NewOfflinePlanCell_Total.qbl
new file mode 100644
index 0000000..5aa8dcc
--- /dev/null
+++ b/_Main/BL/Relations/Relation_NewOfflinePlanCell_Detailed_NewOfflinePlanCell_Total.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation NewOfflinePlanCell_Detailed_NewOfflinePlanCell_Total
+{
+ #keys: '1[413988.0.1603460432]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide Detailed
+ {
+ #keys: '3[413988.0.1603460434][413988.0.1603460433][413988.0.1603460435]'
+ Cardinality: '1toN'
+ ObjectDefinition: NewOfflinePlanCell
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide Total
+ {
+ #keys: '3[413988.0.1603460437][413988.0.1603460436][413988.0.1603460438]'
+ Cardinality: '0to1'
+ ObjectDefinition: NewOfflinePlanCell
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_NewOfflinePlanCell_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOff.qbl b/_Main/BL/Relations/Relation_NewOfflinePlanCell_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOff.qbl
new file mode 100644
index 0000000..3b3e2a0
--- /dev/null
+++ b/_Main/BL/Relations/Relation_NewOfflinePlanCell_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOff.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation NewOfflinePlanCell_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOfflinePlanCell
+{
+ #keys: '1[413988.0.1603460144]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide NewOfflinePlanColumn
+ {
+ #keys: '3[413988.0.1603460146][413988.0.1603460145][413988.0.1603460147]'
+ Cardinality: '0to1'
+ ObjectDefinition: NewOfflinePlanCell
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide NewOfflinePlanCell
+ {
+ #keys: '3[413988.0.1603460149][413988.0.1603460148][413988.0.1603460150]'
+ Cardinality: '1toN'
+ ObjectDefinition: NewOfflinePlanColumn
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_NewOfflinePlanRow_NewOfflinePlanCell_NewOfflinePlanCell_NewOfflineP.qbl b/_Main/BL/Relations/Relation_NewOfflinePlanRow_NewOfflinePlanCell_NewOfflinePlanCell_NewOfflineP.qbl
new file mode 100644
index 0000000..2b549bf
--- /dev/null
+++ b/_Main/BL/Relations/Relation_NewOfflinePlanRow_NewOfflinePlanCell_NewOfflinePlanCell_NewOfflineP.qbl
@@ -0,0 +1,34 @@
+Quintiq file version 2.0
+#parent: #root
+Relation NewOfflinePlanRow_NewOfflinePlanCell_NewOfflinePlanCell_NewOfflinePlanRow
+{
+ #keys: '1[413988.0.1603460131]'
+ DeclarativeSequenceRelationStrategy
+ {
+ #keys: '13[0.0.0][413988.0.1603460275][413988.0.1603460269][413988.0.1603460276][413988.0.1603460270][413988.0.1603460277][413988.0.1603460271][413988.0.1603460278][413988.0.1603460272][413988.0.1603460279][413988.0.1603460273][413988.0.1603460280][413988.0.1603460274]'
+ SequenceElementSuffix: 'NOPCell'
+ SequenceSuffix: 'NOPCell'
+ SortAttributes:
+ [
+ DeclarativeSequenceRelationSortAttribute
+ {
+ #keys: '1[413988.0.1603460282]'
+ Attribute: 'StartDate'
+ }
+ ]
+ }
+ RelationSide.LeftSide NewOfflinePlanCell
+ {
+ #keys: '3[413988.0.1603460133][413988.0.1603460132][413988.0.1603460134]'
+ Cardinality: '1toN'
+ ObjectDefinition: NewOfflinePlanRow
+ OwningSide: 'Owned'
+ }
+ RelationSide.RightSide NewOfflinePlanRow
+ {
+ #keys: '3[413988.0.1603460136][413988.0.1603460135][413988.0.1603460137]'
+ Cardinality: '0to1'
+ ObjectDefinition: NewOfflinePlanCell
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_NewOfflinePlanTable_MacroPlan_MacroPlan_NewOfflinePlanTable.qbl b/_Main/BL/Relations/Relation_NewOfflinePlanTable_MacroPlan_MacroPlan_NewOfflinePlanTable.qbl
new file mode 100644
index 0000000..894617c
--- /dev/null
+++ b/_Main/BL/Relations/Relation_NewOfflinePlanTable_MacroPlan_MacroPlan_NewOfflinePlanTable.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation NewOfflinePlanTable_MacroPlan_MacroPlan_NewOfflinePlanTable
+{
+ #keys: '1[413988.0.1603460049]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide MacroPlan
+ {
+ #keys: '3[413988.0.1603460051][413988.0.1603460050][413988.0.1603460052]'
+ Cardinality: '0to1'
+ ObjectDefinition: NewOfflinePlanTable
+ OwningSide: 'Reference'
+ }
+ RelationSide.RightSide NewOfflinePlanTable
+ {
+ #keys: '3[413988.0.1603460054][413988.0.1603460053][413988.0.1603460055]'
+ Cardinality: '1toN'
+ ObjectDefinition: MacroPlan
+ OwningSide: 'Owned'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_NewOfflinePlanTable_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOf.qbl b/_Main/BL/Relations/Relation_NewOfflinePlanTable_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOf.qbl
new file mode 100644
index 0000000..c0d44b2
--- /dev/null
+++ b/_Main/BL/Relations/Relation_NewOfflinePlanTable_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOf.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation NewOfflinePlanTable_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOfflinePlanTable
+{
+ #keys: '1[413988.0.1603460118]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide NewOfflinePlanColumn
+ {
+ #keys: '3[413988.0.1603460120][413988.0.1603460119][413988.0.1603460121]'
+ Cardinality: '1toN'
+ ObjectDefinition: NewOfflinePlanTable
+ OwningSide: 'Owned'
+ }
+ RelationSide.RightSide NewOfflinePlanTable
+ {
+ #keys: '3[413988.0.1603460123][413988.0.1603460122][413988.0.1603460124]'
+ Cardinality: '0to1'
+ ObjectDefinition: NewOfflinePlanColumn
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Relations/Relation_NewOfflinePlanTable_NewOfflinePlanRow_NewOfflinePlanRow_NewOfflineP.qbl b/_Main/BL/Relations/Relation_NewOfflinePlanTable_NewOfflinePlanRow_NewOfflinePlanRow_NewOfflineP.qbl
new file mode 100644
index 0000000..2f26b34
--- /dev/null
+++ b/_Main/BL/Relations/Relation_NewOfflinePlanTable_NewOfflinePlanRow_NewOfflinePlanRow_NewOfflineP.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation NewOfflinePlanTable_NewOfflinePlanRow_NewOfflinePlanRow_NewOfflinePlanTable
+{
+ #keys: '1[413988.0.1603460091]'
+ DefaultRelationStrategy
+ {
+ }
+ RelationSide.LeftSide NewOfflinePlanRow
+ {
+ #keys: '3[413988.0.1603460093][413988.0.1603460092][413988.0.1603460094]'
+ Cardinality: '1toN'
+ ObjectDefinition: NewOfflinePlanTable
+ OwningSide: 'Owned'
+ }
+ RelationSide.RightSide NewOfflinePlanTable
+ {
+ #keys: '3[413988.0.1603460096][413988.0.1603460095][413988.0.1603460097]'
+ Cardinality: '0to1'
+ ObjectDefinition: NewOfflinePlanRow
+ OwningSide: 'Reference'
+ }
+}
diff --git a/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_Order.qbl b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_Order.qbl
new file mode 100644
index 0000000..8cd58fa
--- /dev/null
+++ b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_Order.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Order
+{
+ #keys: '3[413988.0.1635820128][413988.0.1635820127][413988.0.1635820129]'
+ Description: '鐢熶骇椤哄簭锛圫tring锛�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_OrderNr.qbl b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_OrderNr.qbl
new file mode 100644
index 0000000..44a5a8d
--- /dev/null
+++ b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_OrderNr.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderNr
+{
+ #keys: '3[413988.0.1635820138][413988.0.1635820137][413988.0.1635820139]'
+ Description: '鐢熶骇椤哄簭锛圢umber锛�'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ProductID.qbl b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ProductID.qbl
new file mode 100644
index 0000000..4dc7cd0
--- /dev/null
+++ b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ProductID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+ #keys: '3[413988.0.1635820181][413988.0.1635820180][413988.0.1635820182]'
+ Description: '浜у搧ID'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ProductionLine.qbl b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ProductionLine.qbl
new file mode 100644
index 0000000..f3c8f62
--- /dev/null
+++ b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ProductionLine.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductionLine
+{
+ #keys: '3[413988.0.1635820098][413988.0.1635820097][413988.0.1635820099]'
+ Description: '浜х嚎鍚�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_Quantity.qbl b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_Quantity.qbl
new file mode 100644
index 0000000..16922d0
--- /dev/null
+++ b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_Quantity.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Quantity
+{
+ #keys: '3[413988.0.1635820108][413988.0.1635820107][413988.0.1635820109]'
+ Description: '鏁伴噺'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternEnd.qbl b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternEnd.qbl
new file mode 100644
index 0000000..65372d1
--- /dev/null
+++ b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternEnd.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftPatternEnd
+{
+ #keys: '3[413988.0.1635820171][413988.0.1635820170][413988.0.1635820172]'
+ Description: '鐝缁撴潫鏃堕棿'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternName.qbl b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternName.qbl
new file mode 100644
index 0000000..1c38c87
--- /dev/null
+++ b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftPatternName
+{
+ #keys: '3[413988.0.1635820151][413988.0.1635820150][413988.0.1635820152]'
+ Description: '鐝鍚�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternStart.qbl b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternStart.qbl
new file mode 100644
index 0000000..ec09520
--- /dev/null
+++ b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternStart.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftPatternStart
+{
+ #keys: '3[413988.0.1635820161][413988.0.1635820160][413988.0.1635820162]'
+ Description: '鐝寮�濮嬫椂闂�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_StartDate.qbl b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_StartDate.qbl
new file mode 100644
index 0000000..a84aeba
--- /dev/null
+++ b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_StartDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StartDate
+{
+ #keys: '3[413988.0.1635820118][413988.0.1635820117][413988.0.1635820119]'
+ Description: '寮�濮嬫椂闂�'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/_ROOT_Type_InterfaceNewOfflinePlanDetailData.qbl b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/_ROOT_Type_InterfaceNewOfflinePlanDetailData.qbl
new file mode 100644
index 0000000..eaa4ee7
--- /dev/null
+++ b/_Main/BL/Type_InterfaceNewOfflinePlanDetailData/_ROOT_Type_InterfaceNewOfflinePlanDetailData.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type InterfaceNewOfflinePlanDetailData
+{
+ #keys: '5[413988.0.1635820064][413988.0.1635820062][0.0.0][413988.0.1635820063][413988.0.1635820065]'
+ BaseType: Object
+ Description: '涓嬬嚎璁″垝姣忎釜鐗堟湰璇︾粏鏁版嵁'
+ StructuredName: 'InterfaceNewOfflinePlanDetailDatas'
+}
diff --git a/_Main/BL/Type_InterfaceOfflinePlanVersion/Attribute_ScenarioName.qbl b/_Main/BL/Type_InterfaceOfflinePlanVersion/Attribute_ScenarioName.qbl
new file mode 100644
index 0000000..2697709
--- /dev/null
+++ b/_Main/BL/Type_InterfaceOfflinePlanVersion/Attribute_ScenarioName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ScenarioName
+{
+ #keys: '3[413988.0.1635820050][413988.0.1635820049][413988.0.1635820051]'
+ Description: '鐗堟湰鍚�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_InterfaceOfflinePlanVersion/_ROOT_Type_InterfaceNewOfflinePlanVersion.qbl b/_Main/BL/Type_InterfaceOfflinePlanVersion/_ROOT_Type_InterfaceNewOfflinePlanVersion.qbl
new file mode 100644
index 0000000..75894ce
--- /dev/null
+++ b/_Main/BL/Type_InterfaceOfflinePlanVersion/_ROOT_Type_InterfaceNewOfflinePlanVersion.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type InterfaceNewOfflinePlanVersion
+{
+ #keys: '5[413988.0.1635820030][413988.0.1635820028][0.0.0][413988.0.1635820029][413988.0.1635820031]'
+ BaseType: Object
+ Description: '涓嬬嚎璁″垝鐗堟湰瀛樻。鏁版嵁'
+ StructuredName: 'InterfaceNewOfflinePlanVersions'
+}
diff --git a/_Main/BL/Type_NewOfflinePlanCell/Attribute_EndDate.qbl b/_Main/BL/Type_NewOfflinePlanCell/Attribute_EndDate.qbl
new file mode 100644
index 0000000..48949e6
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanCell/Attribute_EndDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute EndDate
+{
+ #keys: '3[413988.0.1603460249][413988.0.1603460248][413988.0.1603460250]'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_NewOfflinePlanCell/Attribute_InventoryWeight.qbl b/_Main/BL/Type_NewOfflinePlanCell/Attribute_InventoryWeight.qbl
new file mode 100644
index 0000000..1abba91
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanCell/Attribute_InventoryWeight.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute InventoryWeight
+{
+ #keys: '3[413988.0.1606610060][413988.0.1606610059][413988.0.1606610061]'
+ Description: '鍓╀綑搴撳瓨 - 鏈�灏忓簱瀛�'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_NewOfflinePlanCell/Attribute_Order.qbl b/_Main/BL/Type_NewOfflinePlanCell/Attribute_Order.qbl
new file mode 100644
index 0000000..67e6252
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanCell/Attribute_Order.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Order
+{
+ #keys: '3[413988.0.1603460357][413988.0.1603460356][413988.0.1603460358]'
+ Description: '鐢熶骇椤哄簭锛圫tring锛�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_NewOfflinePlanCell/Attribute_OrderNr.qbl b/_Main/BL/Type_NewOfflinePlanCell/Attribute_OrderNr.qbl
new file mode 100644
index 0000000..b356ade
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanCell/Attribute_OrderNr.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute OrderNr
+{
+ #keys: '3[413988.0.1607288352][413988.0.1607288351][413988.0.1607288353]'
+ Description: '鐢熶骇椤哄簭锛圢umber锛�'
+ ValueType: Number
+}
diff --git a/_Main/BL/Type_NewOfflinePlanCell/Attribute_Quantity.qbl b/_Main/BL/Type_NewOfflinePlanCell/Attribute_Quantity.qbl
new file mode 100644
index 0000000..4a1087a
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanCell/Attribute_Quantity.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Quantity
+{
+ #keys: '3[413988.0.1603460347][413988.0.1603460346][413988.0.1603460348]'
+ Description: '鏁伴噺'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternEnd.qbl b/_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternEnd.qbl
new file mode 100644
index 0000000..7f0b7ba
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternEnd.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftPatternEnd
+{
+ #keys: '3[413988.0.1603460415][413988.0.1603460414][413988.0.1603460416]'
+ Description: '鐝缁撴潫鏃堕棿'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternName.qbl b/_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternName.qbl
new file mode 100644
index 0000000..be9fc09
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftPatternName
+{
+ #keys: '3[413988.0.1603460389][413988.0.1603460388][413988.0.1603460390]'
+ Description: '鐝鍚�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternStart.qbl b/_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternStart.qbl
new file mode 100644
index 0000000..42d8002
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternStart.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftPatternStart
+{
+ #keys: '3[413988.0.1603460402][413988.0.1603460401][413988.0.1603460403]'
+ Description: '鐝寮�濮嬫椂闂�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_NewOfflinePlanCell/Attribute_StartDate.qbl b/_Main/BL/Type_NewOfflinePlanCell/Attribute_StartDate.qbl
new file mode 100644
index 0000000..3a89c81
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanCell/Attribute_StartDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StartDate
+{
+ #keys: '3[413988.0.1603460239][413988.0.1603460238][413988.0.1603460240]'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_NewOfflinePlanCell/Attribute_TotalQuantity.qbl b/_Main/BL/Type_NewOfflinePlanCell/Attribute_TotalQuantity.qbl
new file mode 100644
index 0000000..664619a
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanCell/Attribute_TotalQuantity.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TotalQuantity
+{
+ #keys: '3[413988.0.1603460379][413988.0.1603460378][413988.0.1603460380]'
+ Description: '鍚堣'
+ ValueType: Real
+}
diff --git a/_Main/BL/Type_NewOfflinePlanCell/Function_CalcEndDate.qbl b/_Main/BL/Type_NewOfflinePlanCell/Function_CalcEndDate.qbl
new file mode 100644
index 0000000..8b47662
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanCell/Function_CalcEndDate.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcEndDate
+{
+ TextBody:
+ [*
+ // lihongji Oct-11-2024 (created)
+
+ value := guard( this.NewOfflinePlanColumn().EndDate(), Date::MinDate() );
+
+ this.EndDate( value );
+ *]
+}
diff --git a/_Main/BL/Type_NewOfflinePlanCell/Function_CalcStartDate.qbl b/_Main/BL/Type_NewOfflinePlanCell/Function_CalcStartDate.qbl
new file mode 100644
index 0000000..4b8214e
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanCell/Function_CalcStartDate.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcStartDate
+{
+ TextBody:
+ [*
+ // lihongji Oct-11-2024 (created)
+
+ value := guard( this.NewOfflinePlanColumn().StartDate(), Date::MinDate() );
+
+ this.StartDate( value );
+ *]
+}
diff --git a/_Main/BL/Type_NewOfflinePlanCell/Function_CalcTotalQuantity.qbl b/_Main/BL/Type_NewOfflinePlanCell/Function_CalcTotalQuantity.qbl
new file mode 100644
index 0000000..f483fbe
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanCell/Function_CalcTotalQuantity.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcTotalQuantity
+{
+ TextBody:
+ [*
+ // lihongji Oct-11-2024 (created)
+
+ value := sum( this, Detailed, tempNOPC, true, tempNOPC.Quantity() );
+
+ this.TotalQuantity( value );
+ *]
+}
diff --git a/_Main/BL/Type_NewOfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl b/_Main/BL/Type_NewOfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl
new file mode 100644
index 0000000..1d7eafb
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl
@@ -0,0 +1,93 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod RefreshOfflinePlan (
+ MacroPlan macroPlan
+)
+{
+ TextBody:
+ [*
+ macroPlan.NewOfflinePlanTable( relflush );
+
+ nopt := macroPlan.NewOfflinePlanTable( relnew, SaveDateTime := DateTime::ActualTime() );
+
+ // 鐢熸垚涓嬬嚎璁″垝琛ㄣ�愪竴鏉′骇绾垮湪鍚屼竴澶╀笉浼氫骇鐢熶袱娆$浉鍚屼骇鍝佺殑鍛ㄦ湡浠诲姟銆�
+ traverse ( macroPlan, Unit, u, u.HasCapacityTypeTime()
+ // and u.Name() = "eMotor Assy (France)" // 娴嬭瘯鏈湴鍦烘櫙鏃跺彲浠ヨ繃婊�
+ // and u.Name() = "DL-MoMo" // 娴嬭瘯瀹為檯鍦烘櫙鏃跺彲浠ヨ繃婊�
+ )
+ {
+ // 寰幆閬嶅巻鍛ㄦ湡浠诲姟鐨凬ewSupply銆愮敓鎴愭槑缁嗕笅绾胯鍒掋��
+ traverse ( u, Operation, o ) {
+ traverse ( o, PeriodTaskOperation.NewSupply, ns ) {
+ // ProductInStockingPoint_MP
+ pisp := ns.AsProductionSupply().ProductInStockingPoint_MP();
+ // ProductInStockingPointInPeriodPlanningLeaf
+ pispippl := ns.ProductInStockingPointInPeriodPlanningLeaf();
+ // Period_MP
+ pmp := pispippl.Period_MP();
+ // ShiftPattern
+ sp := ns.PeriodTask_MP().UnitPeriod().astype( UnitPeriodTimeBase ).ShiftPattern();
+ // ShiftDayTime
+ sdt := select( sp, ShiftDayTime, tempSDT, tempSDT.Name() = tempSDT.ShiftPattern().Name() );
+
+ // 鐢熸垚涓嬬嚎璁″垝銆愪骇绾挎槑缁嗐�戣
+ detailedNOPR := select( nopt, NewOfflinePlanRow, tempNOPR, tempNOPR.ProductionLine() = u.ID() and tempNOPR.ProductID() = pisp.ProductID() and tempNOPR.Type() = "1" );
+ if ( isnull( detailedNOPR ) ) {
+ detailedNOPR := nopt.NewOfflinePlanRow( relnew, ProductionLine := u.ID(), ProductID := pisp.ProductID(), Type := "1" );
+ }
+
+ // 鐢熸垚涓嬬嚎璁″垝鍒�
+ nopc := select( nopt, NewOfflinePlanColumn, tempNOPC, tempNOPC.StartDate() = pmp.StartDate() and tempNOPC.EndDate() = pmp.EndDate() );
+ if ( isnull( nopc ) ) {
+ nopc := nopt.NewOfflinePlanColumn( relnew, StartDate := pmp.StartDate(), EndDate := pmp.EndDate() );
+ }
+
+ // 鐢熸垚涓嬬嚎璁″垝銆愪骇绾挎槑缁嗐�戝崟鍏冩牸
+ detaileNOPCell := select( detailedNOPR, NewOfflinePlanCell, tempNOPCell, tempNOPCell.NewOfflinePlanColumn() = nopc );
+ if ( isnull ( detaileNOPCell ) ) {
+ detaileNOPCell := detailedNOPR.NewOfflinePlanCell( relnew,
+ Quantity := ns.Quantity().Round( 0 ),
+ InventoryWeight := pispippl.InventoryLevelEnd() - pispippl.MinInventoryLevel(),
+ ShiftPatternName := guard( sdt.Name(), "" ),
+ ShiftPatternStart := guard( sdt.StartDateTime().Format( "H:m" ), "" ),
+ ShiftPatternEnd := guard( sdt.EndDateTIme().Format( "H:m" ), "" ) );
+ detaileNOPCell.NewOfflinePlanColumn( relset, nopc );
+ }
+ }
+ }
+
+ // 璁剧疆鐢熶骇椤哄簭銆愬涓嬬嚎璁″垝鏄庣粏鐢熸晥銆�
+
+
+ // 銆愮敓鎴愬悎璁′笅绾胯鍒掋��
+ totalNOPR := nopt.NewOfflinePlanRow( relnew, ProductID := "All", ProductionLine := u.ID(), Type := "2" );
+ detailNOPRs := selectset( nopt, NewOfflinePlanRow, tempNOPR, tempNOPR.ProductionLine() = u.ID() and tempNOPR.Type() = "1" );
+ traverse ( detailNOPRs, Elements, detailNOPR ) {
+ traverse ( detailNOPR, NewOfflinePlanCell, detailNOPCell ) {
+ // 鐢熶骇涓嬬嚎璁″垝銆愪骇绾垮悎璁°�戝崟鍏冩牸
+ totalNOPRCell := select( totalNOPR, NewOfflinePlanCell, tempNOPCell, tempNOPCell.NewOfflinePlanColumn() = detailNOPCell.NewOfflinePlanColumn() );
+ if ( isnull( totalNOPRCell ) ) {
+ totalNOPRCell := totalNOPR.NewOfflinePlanCell( relnew );
+ totalNOPRCell.NewOfflinePlanColumn( relset, detailNOPCell.NewOfflinePlanColumn() ); // 璁剧疆鍒�
+ // 灏嗘槑缁嗗崟鍏冩牸鍏宠仈鍒板悎璁″崟鍏冩牸
+ totalNOPRCell.Detailed( relinsert, detailNOPCell );
+ } else {
+ // 灏嗘槑缁嗗崟鍏冩牸鍏宠仈鍒板悎璁″崟鍏冩牸
+ totalNOPRCell.Detailed( relinsert, detailNOPCell );
+ }
+ }
+ }
+
+ // 琛ラ綈绌烘牸瀛�
+ traverse ( nopt, NewOfflinePlanRow, nopr ) {
+ traverse ( nopt, NewOfflinePlanColumn, nopc ) {
+ cell := select( nopr, NewOfflinePlanCell, tempNOPCell, tempNOPCell.NewOfflinePlanColumn() = nopc );
+ if ( isnull( cell ) ) {
+ cell := nopr.NewOfflinePlanCell( relnew );
+ cell.NewOfflinePlanColumn( relset, nopc );
+ }
+ }
+ }
+ }
+ *]
+}
diff --git a/_Main/BL/Type_NewOfflinePlanCell/_ROOT_Type_NewOfflinePlanCell.qbl b/_Main/BL/Type_NewOfflinePlanCell/_ROOT_Type_NewOfflinePlanCell.qbl
new file mode 100644
index 0000000..4bb9f4a
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanCell/_ROOT_Type_NewOfflinePlanCell.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type NewOfflinePlanCell
+{
+ #keys: '5[413988.0.1603460079][413988.0.1603460077][0.0.0][413988.0.1603460078][413988.0.1603460080]'
+ BaseType: Object
+ Description: '涓嬬嚎璁″垝鍗曞厓鏍�'
+ StructuredName: 'NewOfflinePlanCells'
+}
diff --git a/_Main/BL/Type_NewOfflinePlanColumn/Attribute_EndDate.qbl b/_Main/BL/Type_NewOfflinePlanColumn/Attribute_EndDate.qbl
new file mode 100644
index 0000000..87a6355
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanColumn/Attribute_EndDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute EndDate
+{
+ #keys: '3[413988.0.1603460170][413988.0.1603460169][413988.0.1603460171]'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_NewOfflinePlanColumn/Attribute_StartDate.qbl b/_Main/BL/Type_NewOfflinePlanColumn/Attribute_StartDate.qbl
new file mode 100644
index 0000000..60c31e0
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanColumn/Attribute_StartDate.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute StartDate
+{
+ #keys: '3[413988.0.1603460160][413988.0.1603460159][413988.0.1603460161]'
+ ValueType: Date
+}
diff --git a/_Main/BL/Type_NewOfflinePlanColumn/_ROOT_Type_NewOfflinePlanColumn.qbl b/_Main/BL/Type_NewOfflinePlanColumn/_ROOT_Type_NewOfflinePlanColumn.qbl
new file mode 100644
index 0000000..d221eaf
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanColumn/_ROOT_Type_NewOfflinePlanColumn.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type NewOfflinePlanColumn
+{
+ #keys: '5[413988.0.1603460074][413988.0.1603460072][0.0.0][413988.0.1603460073][413988.0.1603460075]'
+ BaseType: Object
+ Description: '涓嬬嚎璁″垝鍒�'
+ StructuredName: 'NewOfflinePlanColumns'
+}
diff --git a/_Main/BL/Type_NewOfflinePlanRow/Attribute_Name.qbl b/_Main/BL/Type_NewOfflinePlanRow/Attribute_Name.qbl
new file mode 100644
index 0000000..4dc081e
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanRow/Attribute_Name.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+ #keys: '3[413988.0.1607288491][413988.0.1607288490][413988.0.1607288492]'
+ Description: '鏄剧ず鍚�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_NewOfflinePlanRow/Attribute_ProductID.qbl b/_Main/BL/Type_NewOfflinePlanRow/Attribute_ProductID.qbl
new file mode 100644
index 0000000..9ff8ffb
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanRow/Attribute_ProductID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+ #keys: '3[413988.0.1603460321][413988.0.1603460320][413988.0.1603460322]'
+ Description: '浜у搧ID'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_NewOfflinePlanRow/Attribute_ProductionLine.qbl b/_Main/BL/Type_NewOfflinePlanRow/Attribute_ProductionLine.qbl
new file mode 100644
index 0000000..369ad26
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanRow/Attribute_ProductionLine.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductionLine
+{
+ #keys: '3[413988.0.1603460311][413988.0.1603460310][413988.0.1603460312]'
+ Description: '浜х嚎鍚�'
+ ValueType: String
+}
diff --git a/_Main/BL/Type_NewOfflinePlanRow/Attribute_Type.qbl b/_Main/BL/Type_NewOfflinePlanRow/Attribute_Type.qbl
new file mode 100644
index 0000000..4c444e9
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanRow/Attribute_Type.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Type
+{
+ #keys: '3[413988.0.1603460334][413988.0.1603460333][413988.0.1603460335]'
+ Description:
+ [*
+ 1锛氭槑缁嗘樉绀�
+
+ 2锛氬悎璁℃樉绀�
+ *]
+ ValueType: String
+}
diff --git a/_Main/BL/Type_NewOfflinePlanRow/Function_CalcName.qbl b/_Main/BL/Type_NewOfflinePlanRow/Function_CalcName.qbl
new file mode 100644
index 0000000..92e3125
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanRow/Function_CalcName.qbl
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcName
+{
+ TextBody:
+ [*
+ // lihongji Oct-12-2024 (created)
+
+ value := this.ProductionLine() + ifexpr( this.ProductID() = "All", "", "_" + this.ProductID() );
+
+ this.Name( value );
+ *]
+}
diff --git a/_Main/BL/Type_NewOfflinePlanRow/Method_Filter.qbl b/_Main/BL/Type_NewOfflinePlanRow/Method_Filter.qbl
new file mode 100644
index 0000000..d5e399d
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanRow/Method_Filter.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Method Filter (
+ Entitys entitys
+) declarative remote as Boolean
+{
+ TextBody:
+ [*
+ flag := false;
+
+ traverse ( entitys, Elements.astype( Unit ), u, not flag ) {
+ flag := u.Name() = this.ProductionLine();
+ }
+
+ return flag;
+ *]
+}
diff --git a/_Main/BL/Type_NewOfflinePlanRow/_ROOT_Type_NewOfflinePlanRow.qbl b/_Main/BL/Type_NewOfflinePlanRow/_ROOT_Type_NewOfflinePlanRow.qbl
new file mode 100644
index 0000000..fd71fdd
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanRow/_ROOT_Type_NewOfflinePlanRow.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type NewOfflinePlanRow
+{
+ #keys: '5[413988.0.1603460069][413988.0.1603460067][0.0.0][413988.0.1603460068][413988.0.1603460070]'
+ BaseType: Object
+ Description: '涓嬬嚎璁″垝琛�'
+ StructuredName: 'NewOfflinePlanRows'
+}
diff --git a/_Main/BL/Type_NewOfflinePlanTable/Attribute_SaveDateTime.qbl b/_Main/BL/Type_NewOfflinePlanTable/Attribute_SaveDateTime.qbl
new file mode 100644
index 0000000..759519d
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanTable/Attribute_SaveDateTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SaveDateTime
+{
+ #keys: '3[413988.0.1603460037][413988.0.1603460036][413988.0.1603460038]'
+ Description: '淇濆瓨鑽夌鐨勬椂闂�'
+ ValueType: DateTime
+}
diff --git a/_Main/BL/Type_NewOfflinePlanTable/_ROOT_Type_NewOfflinePlanTable.qbl b/_Main/BL/Type_NewOfflinePlanTable/_ROOT_Type_NewOfflinePlanTable.qbl
new file mode 100644
index 0000000..b83130c
--- /dev/null
+++ b/_Main/BL/Type_NewOfflinePlanTable/_ROOT_Type_NewOfflinePlanTable.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type NewOfflinePlanTable
+{
+ #keys: '5[413988.0.1603460031][413988.0.1603460029][0.0.0][413988.0.1603460030][413988.0.1603460032]'
+ BaseType: Object
+ StructuredName: 'NewOfflinePlanTables'
+}
diff --git a/_Main/Sys/Repr/Global/NewOfflinePlanCell.qrp b/_Main/Sys/Repr/Global/NewOfflinePlanCell.qrp
new file mode 100644
index 0000000..e2b939c
--- /dev/null
+++ b/_Main/Sys/Repr/Global/NewOfflinePlanCell.qrp
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+#parent: #root
+TypeRepresentation NewOfflinePlanCell
+{
+ AttributeRepresentation ShiftPatternEnd
+ {
+ AttributeKey: '[413988.0.1603460414]'
+ Synonym: '鐝缁撴潫鏃堕棿'
+ }
+ AttributeRepresentation ShiftPatternName
+ {
+ AttributeKey: '[413988.0.1603460388]'
+ Synonym: '鐝'
+ }
+ AttributeRepresentation ShiftPatternStart
+ {
+ AttributeKey: '[413988.0.1603460401]'
+ Synonym: '鐝寮�濮嬫椂闂�'
+ }
+ AttributeRepresentation TotalQuantity
+ {
+ AttributeKey: '[413988.0.1603460378]'
+ Synonym: '鎬婚噺'
+ }
+ RelationRepresentation AsFirstNOPCell { RelationKey: '[413988.0.1603460270]' Visibility: 'Normal' }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def
index 36b4beb..8a7c394 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def
@@ -22,7 +22,7 @@
BaseType: 'WebButton'
Properties:
[
- Taborder: 5
+ Taborder: 6
]
}
Component bOfflinePlan
@@ -45,7 +45,7 @@
Description: 'AssemblyOnlinePlan'
Image: 'PALM_TREE'
Label: 'Filing plan'
- Taborder: 2
+ Taborder: 3
]
}
Component bPackagingPlan
@@ -56,7 +56,7 @@
[
Image: 'SIXPACK_BEER'
Label: 'Packaging plan'
- Taborder: 3
+ Taborder: 4
]
}
Component bShippingActualData
@@ -67,7 +67,18 @@
[
Image: 'TABLE_CONNECTION'
Label: 'Shipping data'
- Taborder: 4
+ Taborder: 5
+ ]
+ }
+ Component bNewOfflinePlan
+ {
+ #keys: '[413988.0.1607471411]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'LIGHTBULB'
+ Label: 'Output plan'
+ Taborder: 2
]
}
]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bNewOfflinePlan_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bNewOfflinePlan_OnClick.def
new file mode 100644
index 0000000..c15a91d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bNewOfflinePlan_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: abgSecondDevelopmentPlan/bNewOfflinePlan
+Response OnClick () id:Response_MacroPlanner_abgSecondDevelopmentPlan_bNewOfflinePlan_OnClick
+{
+ #keys: '[413988.0.1607471572]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ GroupServerCalls: true
+ QuillAction
+ {
+ Body:
+ [*
+ ApplicationScope.ViewManager().ResetUserViewById( "NewOfflinePlan", true );
+ *]
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_MatrixEditor515.def b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_MatrixEditor515.def
new file mode 100644
index 0000000..fbd9bc5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_MatrixEditor515.def
@@ -0,0 +1,99 @@
+Quintiq file version 2.0
+Component MatrixEditor515
+{
+ #keys: '[413988.0.1607432871]'
+ BaseType: 'WebMatrixEditor'
+ Children:
+ [
+ Component MatrixEditorCell568
+ {
+ #keys: '[413988.0.1607432872]'
+ BaseType: 'WebMatrixEditorCell'
+ Children:
+ [
+ Component DataExtractor802
+ {
+ #keys: '[413988.0.1607432873]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[NewOfflinePlanRow]'
+ Source: 'dhSelectedDetailNewOfflinePlanRow'
+ Taborder: 0
+ Transformation: 'Elements.NewOfflinePlanCell'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Attributes: 'Quantity;Order'
+ Column: 'NewOfflinePlanColumn'
+ Row: 'NewOfflinePlanRow'
+ Taborder: 0
+ ]
+ }
+ Component MatrixEditorRows710
+ {
+ #keys: '[413988.0.1607432876]'
+ BaseType: 'WebMatrixEditorHeaderLevel'
+ Children:
+ [
+ Component DataExtractor206
+ {
+ #keys: '[413988.0.1607432877]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[NewOfflinePlanRow]'
+ Source: 'dhSelectedDetailNewOfflinePlanRow'
+ Taborder: 0
+ Transformation: 'Elements'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Legend: 'Name'
+ SortCriteria: 'ProductionLine;ProductID'
+ Taborder: 1
+ ]
+ }
+ Component MatrixEditorColumns748
+ {
+ #keys: '[413988.0.1607432880]'
+ BaseType: 'WebMatrixEditorHeaderLevel'
+ Children:
+ [
+ Component DataExtractor675
+ {
+ #keys: '[413988.0.1607432881]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'NewOfflinePlanTable'
+ Source: 'dhNewOfflinePlanTable'
+ Taborder: 0
+ Transformation: 'NewOfflinePlanColumn'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Legend: 'StartDate'
+ SortCriteria: 'StartDate'
+ Taborder: 2
+ ]
+ }
+ #child: matrixEditorActionBarPage623
+ #child: matrixeditorContextMenu229
+ ]
+ Properties:
+ [
+ AllowAttributeConfiguration: true
+ AllowMultipleAttributes: true
+ Columns: 'MatrixEditorColumns748'
+ ContextMenu: 'matrixeditorContextMenu229'
+ Rows: 'MatrixEditorRows710'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_MatrixEditor583.def b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_MatrixEditor583.def
new file mode 100644
index 0000000..83cf21e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_MatrixEditor583.def
@@ -0,0 +1,98 @@
+Quintiq file version 2.0
+Component MatrixEditor583
+{
+ #keys: '[413988.0.1607432902]'
+ BaseType: 'WebMatrixEditor'
+ Children:
+ [
+ Component MatrixEditorCell950
+ {
+ #keys: '[413988.0.1607432903]'
+ BaseType: 'WebMatrixEditorCell'
+ Children:
+ [
+ Component DataExtractor782
+ {
+ #keys: '[413988.0.1607432904]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[NewOfflinePlanRow]'
+ Source: 'dhSelectedTotalNewOfflinePlanRow'
+ Taborder: 0
+ Transformation: 'Elements.NewOfflinePlanCell'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Attributes: 'TotalQuantity;ShiftPatternName;ShiftPatternStart;ShiftPatternEnd'
+ Column: 'NewOfflinePlanColumn'
+ Row: 'NewOfflinePlanRow'
+ Taborder: 0
+ ]
+ }
+ Component MatrixEditorRows569
+ {
+ #keys: '[413988.0.1607432907]'
+ BaseType: 'WebMatrixEditorHeaderLevel'
+ Children:
+ [
+ Component DataExtractor195
+ {
+ #keys: '[413988.0.1607432908]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'structured[NewOfflinePlanRow]'
+ Source: 'dhSelectedTotalNewOfflinePlanRow'
+ Taborder: 0
+ Transformation: 'Elements'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Legend: 'Name'
+ SortCriteria: 'ProductionLine;ProductID'
+ Taborder: 1
+ ]
+ }
+ Component MatrixEditorColumns473
+ {
+ #keys: '[413988.0.1607432911]'
+ BaseType: 'WebMatrixEditorHeaderLevel'
+ Children:
+ [
+ Component DataExtractor526
+ {
+ #keys: '[413988.0.1607432912]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'NewOfflinePlanTable'
+ Source: 'dhNewOfflinePlanTable'
+ Taborder: 0
+ Transformation: 'NewOfflinePlanColumn'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Legend: 'StartDate'
+ SortCriteria: 'StartDate'
+ Taborder: 2
+ ]
+ }
+ #child: matrixEditorActionBarPage338
+ #child: matrixeditorContextMenu267
+ ]
+ Properties:
+ [
+ AllowMultipleAttributes: true
+ Columns: 'MatrixEditorColumns473'
+ ContextMenu: 'matrixeditorContextMenu267'
+ Rows: 'MatrixEditorRows569'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixEditorActionBarPage338.def b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixEditorActionBarPage338.def
new file mode 100644
index 0000000..616f454
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixEditorActionBarPage338.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixEditorActionBarPage338
+{
+ #keys: '[413988.0.1607432915]'
+ BaseType: 'matrixEditorActionBarPage'
+ Properties:
+ [
+ Taborder: 3
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixEditorActionBarPage623.def b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixEditorActionBarPage623.def
new file mode 100644
index 0000000..244bcae
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixEditorActionBarPage623.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixEditorActionBarPage623
+{
+ #keys: '[413988.0.1607432884]'
+ BaseType: 'matrixEditorActionBarPage'
+ Properties:
+ [
+ Taborder: 3
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixeditorContextMenu229.def b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixeditorContextMenu229.def
new file mode 100644
index 0000000..0c35e50
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixeditorContextMenu229.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixeditorContextMenu229
+{
+ #keys: '[413988.0.1607432887]'
+ BaseType: 'matrixeditorContextMenu'
+ Properties:
+ [
+ Taborder: 4
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixeditorContextMenu267.def b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixeditorContextMenu267.def
new file mode 100644
index 0000000..c36959c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixeditorContextMenu267.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component matrixeditorContextMenu267
+{
+ #keys: '[413988.0.1607432918]'
+ BaseType: 'matrixeditorContextMenu'
+ Properties:
+ [
+ Taborder: 4
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pDetail.def b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pDetail.def
new file mode 100644
index 0000000..3a2576c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pDetail.def
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+Component pDetail
+{
+ #keys: '[413988.0.1607470703]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: MatrixEditor515
+ ]
+ Properties:
+ [
+ Border: true
+ Taborder: 1
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pHeader.def b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pHeader.def
new file mode 100644
index 0000000..90182d1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pHeader.def
@@ -0,0 +1,26 @@
+Quintiq file version 2.0
+Component pHeader
+{
+ #keys: '[413988.0.1607470685]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ Component bRefresh
+ {
+ #keys: '[413988.0.1607470932]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Label: 'Refresh'
+ Taborder: 0
+ ]
+ }
+ ]
+ Properties:
+ [
+ Border: true
+ FixedSize: true
+ Orientation: 'horizontal'
+ Taborder: 0
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pTotal.def b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pTotal.def
new file mode 100644
index 0000000..b5e9aa1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pTotal.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component pTotal
+{
+ #keys: '[413988.0.1607470720]'
+ BaseType: 'WebPanel'
+ Children:
+ [
+ #child: MatrixEditor583
+ ]
+ Properties:
+ [
+ Taborder: 2
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_dhNewOfflinePlanTable_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_dhNewOfflinePlanTable_OnCreated.def
new file mode 100644
index 0000000..47cc3be
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_dhNewOfflinePlanTable_OnCreated.def
@@ -0,0 +1,22 @@
+Quintiq file version 2.0
+#parent: dhNewOfflinePlanTable
+Response OnCreated () id:Response_FormNewOfflinePlan_dhNewOfflinePlanTable_OnCreated
+{
+ #keys: '[413988.0.1612870517]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebComponent_OnCreated'
+ Precondition:
+ [*
+ return not isnull( MacroPlan );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ nopt := maxselect( MacroPlan, NewOfflinePlanTable, tempOPT, true, tempOPT.SaveDateTime() );
+
+ this.Data( nopt );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bRefresh_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bRefresh_OnClick.def
new file mode 100644
index 0000000..d422c3a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bRefresh_OnClick.def
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: pHeader/bRefresh
+Response OnClick () id:Response_pHeader_bRefresh_OnClick
+{
+ #keys: '[413988.0.1607471065]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ return not isnull( MacroPlan );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ NewOfflinePlanCell::RefreshOfflinePlan( MacroPlan );
+
+ nopt := maxselect( MacroPlan, NewOfflinePlanTable, tempNOPT, true, tempNOPT.SaveDateTime() );
+ dhNewOfflinePlanTable.Data( nopt );
+
+ WebMessageBox::Success( Translations::A_VWED_Success() );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/_ROOT_Component_FormNewOfflinePlan.def b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/_ROOT_Component_FormNewOfflinePlan.def
new file mode 100644
index 0000000..2763c65
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/_ROOT_Component_FormNewOfflinePlan.def
@@ -0,0 +1,84 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormNewOfflinePlan
+{
+ #keys: '[413988.0.1606778977]'
+ BaseType: 'WebForm'
+ Children:
+ [
+ #child: pTotal
+ #child: pHeader
+ #child: pDetail
+ Component dhNewOfflinePlanTable
+ {
+ #keys: '[413988.0.1607471150]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'NewOfflinePlanTable'
+ Properties:
+ [
+ Taborder: 3
+ ]
+ }
+ Component dhSelectedDetailNewOfflinePlanRow
+ {
+ #keys: '[413988.0.1607433222]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[NewOfflinePlanRow]*'
+ Children:
+ [
+ Component deSelectedNewOfflinePlanRow
+ {
+ #keys: '[413988.0.1608510877]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'NewOfflinePlanTable'
+ FilterArguments: 'entities:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderCheckedEntities'
+ FixedFilter: 'object.Filter( entities ) and object.Type() = "1"'
+ Source: 'dhNewOfflinePlanTable'
+ Taborder: 0
+ Transformation: 'NewOfflinePlanRow'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 4
+ ]
+ }
+ Component dhSelectedTotalNewOfflinePlanRow
+ {
+ #keys: '[413988.0.1609979741]'
+ BaseType: 'WebDataHolder'
+ Databinding: 'structured[NewOfflinePlanRow]*'
+ Children:
+ [
+ Component deSelectedNewOfflinePlanRow681
+ {
+ #keys: '[413988.0.1609979742]'
+ BaseType: 'WebDataExtractor'
+ Properties:
+ [
+ DataType: 'NewOfflinePlanTable'
+ FilterArguments: 'entities:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderCheckedEntities'
+ FixedFilter: 'object.Filter( entities ) and object.Type() = "2"'
+ Source: 'dhNewOfflinePlanTable'
+ Taborder: 0
+ Transformation: 'NewOfflinePlanRow'
+ ]
+ }
+ ]
+ Properties:
+ [
+ Taborder: 5
+ ]
+ }
+ ]
+ Properties:
+ [
+ Description: '鏂拌閰嶄笅绾胯鍒�'
+ Image: 'WIND_ENGINE_OFFSHORE'
+ Title: 'Output plan'
+ ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/HighlightRules.hl b/_Main/UI/MacroPlannerWebApp/HighlightRules.hl
new file mode 100644
index 0000000..639b01d
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/HighlightRules.hl
@@ -0,0 +1,15 @@
+Quintiq file version 2.0
+#parent: #root
+HighlightRules
+{
+ HighlightRule
+ {
+ #keys: '1[413988.0.1616240421]'
+ Bidirectional: true
+ ContinueHighlighting: true
+ Description: '涓嬬嚎璁″垝鏍规嵁缁嗗垎绐佸嚭鏄剧ず鍚堣'
+ Groups: Default
+ HighlightPathString: 'Total'
+ StartTypeString: 'NewOfflinePlanCell'
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Views/NewOfflinePlan.vw b/_Main/UI/MacroPlannerWebApp/Views/NewOfflinePlan.vw
new file mode 100644
index 0000000..bcd0a9f
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Views/NewOfflinePlan.vw
@@ -0,0 +1,215 @@
+Quintiq file version 2.0
+{
+ viewcontents
+ {
+ forms
+ {
+ form_FormNewOfflinePlan
+ {
+ title: 'QMacroPlanner::FormNewOfflinePlan'
+ shown: true
+ componentID: 'QMacroPlanner::FormNewOfflinePlan'
+ layout
+ {
+ mode: 'open'
+ rowPosition: 1
+ rowSpan: 14
+ columnPosition: 1
+ columnSpan: 12
+ }
+ components
+ {
+ FormNewOfflinePlan_pHeader
+ {
+ sizeRatio: 1
+ }
+ FormNewOfflinePlan_pDetail
+ {
+ sizeRatio: 1
+ }
+ FormNewOfflinePlan_MatrixEditor515
+ {
+ gridColor: '#c4c4c4'
+ totalHeaderWidth: 511
+ attributeHeaderWidthRatio: 0.6
+ nameHeaderWidthRatio: 0.4
+ columnWidth: 100
+ horizontalGrid: true
+ verticalGrid: true
+ backendState
+ {
+ componentId: 'QMacroPlanner::FormNewOfflinePlan.MatrixEditor515'
+ state
+ {
+ cells
+ {
+ attributes
+ {
+ attribute_Quantity
+ {
+ type: 'MatrixEditorWebApiCellDataModelInterest'
+ index: 0
+ rowsubtotal: ''
+ columnsubtotal: 'sum'
+ attribute: 'Quantity'
+ }
+ attribute_Order
+ {
+ type: 'MatrixEditorWebApiCellDataModelInterest'
+ index: 1
+ rowsubtotal: ''
+ columnsubtotal: ''
+ attribute: 'Order'
+ }
+ }
+ }
+ columns
+ {
+ sorting
+ {
+ criteria: "datamember:'StartDate'"
+ }
+ }
+ rows
+ {
+ sorting
+ {
+ criteria: "datamember:'ProductionLine';datamember:'ProductID'"
+ }
+ }
+ }
+ }
+ }
+ FormNewOfflinePlan_pTotal
+ {
+ sizeRatio: 1
+ }
+ FormNewOfflinePlan_MatrixEditor583
+ {
+ gridColor: '#c4c4c4'
+ totalHeaderWidth: 510
+ attributeHeaderWidthRatio: 0.6
+ nameHeaderWidthRatio: 0.4
+ columnWidth: 100
+ horizontalGrid: true
+ verticalGrid: true
+ backendState
+ {
+ componentId: 'QMacroPlanner::FormNewOfflinePlan.MatrixEditor583'
+ state
+ {
+ cells
+ {
+ attributes
+ {
+ attribute_TotalQuantity
+ {
+ type: 'MatrixEditorWebApiCellDataModelInterest'
+ index: 0
+ rowsubtotal: ''
+ columnsubtotal: ''
+ attribute: 'TotalQuantity'
+ }
+ attribute_ShiftPatternName
+ {
+ type: 'MatrixEditorWebApiCellDataModelInterest'
+ index: 1
+ rowsubtotal: ''
+ columnsubtotal: ''
+ attribute: 'ShiftPatternName'
+ }
+ attribute_ShiftPatternStart
+ {
+ type: 'MatrixEditorWebApiCellDataModelInterest'
+ index: 2
+ rowsubtotal: ''
+ columnsubtotal: ''
+ attribute: 'ShiftPatternStart'
+ }
+ attribute_ShiftPatternEnd
+ {
+ type: 'MatrixEditorWebApiCellDataModelInterest'
+ index: 3
+ rowsubtotal: ''
+ columnsubtotal: ''
+ attribute: 'ShiftPatternEnd'
+ }
+ }
+ }
+ columns
+ {
+ sorting
+ {
+ criteria: "datamember:'StartDate'"
+ }
+ }
+ rows
+ {
+ sorting
+ {
+ criteria: "datamember:'ProductionLine';datamember:'ProductID'"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ form_FormGeneralSettings
+ {
+ title: 'General Settings'
+ shown: true
+ componentID: 'FormGeneralSettings'
+ layout
+ {
+ mode: 'dockright'
+ index: 0
+ }
+ components
+ {
+ FormGeneralSettings_PanelContent
+ {
+ sizeRatio: 1
+ }
+ FormGeneralSettings_PanelGeneralParameter
+ {
+ sizeRatio: 1
+ }
+ FormGeneralSettings_PanelLeadTimeDependent
+ {
+ sizeRatio: 1
+ }
+ FormGeneralSettings_PanelShelfLife
+ {
+ sizeRatio: 1
+ }
+ FormGeneralSettings_PanelSustainability
+ {
+ sizeRatio: 1
+ }
+ FormGeneralSettings_PanelForecastNetting
+ {
+ sizeRatio: 1
+ }
+ FormGeneralSettings_PanelActions
+ {
+ sizeRatio: 1
+ }
+ }
+ }
+ }
+ userconfigurableinformation
+ {
+ }
+ page: ''
+ group: ''
+ index: 0
+ image: 'CHART_DONUT'
+ description: ''
+ }
+ formatversion: 2
+ id: 'NewOfflinePlan'
+ name: 'NewOfflinePlan'
+ isglobal: false
+ isroot: true
+}
--
Gitblit v1.9.3