From 23a41fb73c638671a9d1960ccb0ccb88cf9ff43e Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期四, 31 十月 2024 12:00:48 +0800
Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev-zlg

---
 _Main/BL/Type_ArchiveTransferPlanRow/Attribute_ProductID.qbl                                        |    8 
 _Main/BL/Type_ArchiveTransferPlanColumn/Attribute_ColumnName.qbl                                    |    7 
 _Main/BL/Type_TransferPlanCell0/_ROOT_Type_ArchiveTransferPlanCell#0.qbl                            |    9 +
 _Main/BL/Relations/Relation_ArchiveTransferPlanRow_Archive_Archive_ArchiveTransferPlanRow.qbl       |   23 ++
 _Main/BL/Type_ArchiveTransferPlanColumn/Function_CalcColumnName.qbl                                 |   13 +
 _Main/BL/Type_ArchiveTransferPlanColumn/Attribute_ColumnIndex.qbl                                   |    7 
 _Main/BL/Type_TransferPlanCell0/StaticMethod_Archive.qbl                                            |   88 +++++++++
 _Main/BL/Type_ArchiveTransferPlanRow/Attribute_RowNr.qbl                                            |    7 
 _Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_ListLockPeriod.def                   |   41 ++++
 _Main/BL/Type_LockPeriod/Method_Enable.qbl                                                          |   32 +++
 _Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_listActionBarPageLockPeriod.def      |   10 +
 _Main/BL/Type_ArchiveTransferPlanColumn/Attribute_ColumnDate.qbl                                    |    8 
 _Main/BL/Type_ArchiveTransferPlanRow/Attribute_SourceStockpoingPointID.qbl                          |    8 
 _Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_ProductID.qbl                                     |    6 
 _Main/BL/Relations/Relation_ArchiveTransferPlanRow_ArchiveTransferPlanCell_ArchiveTransferPlanC.qbl |   23 ++
 _Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_listContextMenuLockPeriod.def        |   10 +
 _Main/BL/Type_TransferPlanCell0/Attribute_Value.qbl                                                 |    7 
 _Main/BL/Type_ArchiveTransferPlanColumn/DefaultValue_ColumnName.qbl                                 |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_PanelLockPeriod633.def               |   14 +
 _Main/BL/Relations/Relation_ArchiveTransferPlanColumn_Archive_Archive_ArchiveTransferPlanColumn.qbl |   23 ++
 _Main/BL/Type_ArchiveTransferPlanRow/Attribute_TargetStockpoingPointID.qbl                          |    8 
 _Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_Category.qbl                                      |    6 
 _Main/BL/Type_LockPeriod/Attribute_IsEnable.qbl                                                     |    7 
 _Main/BL/Type_ArchiveTransferPlanRow/Function_CalcName.qbl                                          |   13 +
 _Main/BL/Relations/Relation_ArchiveTransferPlanColumn_ArchiveTransferPlanCell_ArchiveTransferPl.qbl |   23 ++
 _Main/BL/Type_TransferPlanCell0/DefaultValue_Value.qbl                                              |    6 
 _Main/BL/Type_ArchiveTransferPlanColumn/_ROOT_Type_ArchiveTransferPlanColumn.qbl                    |    9 +
 _Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_TargetStockpoingPointID.qbl                       |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_PanelLockPeriod.def                  |   11 +
 _Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/_ROOT_Component_FormLockPeriod.def             |   13 +
 _Main/BL/Type_ArchiveTransferPlanRow/Attribute_Category.qbl                                         |    8 
 _Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl              |    5 
 _Main/BL/Type_ArchiveTransferPlanRow/_ROOT_Type_ArchiveTransferPlanRow.qbl                          |    9 +
 _Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_Name.qbl                                          |    6 
 _Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_SourceStockpoingPointID.qbl                       |    6 
 _Main/BL/Type_ArchiveTransferPlanRow/Attribute_Name.qbl                                             |    7 
 36 files changed, 493 insertions(+), 0 deletions(-)

diff --git a/_Main/BL/Relations/Relation_ArchiveTransferPlanColumn_ArchiveTransferPlanCell_ArchiveTransferPl.qbl b/_Main/BL/Relations/Relation_ArchiveTransferPlanColumn_ArchiveTransferPlanCell_ArchiveTransferPl.qbl
new file mode 100644
index 0000000..1e5e643
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ArchiveTransferPlanColumn_ArchiveTransferPlanCell_ArchiveTransferPl.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ArchiveTransferPlanColumn_ArchiveTransferPlanCell_ArchiveTransferPlanCell_ArchiveTransferPlanColumn
+{
+  #keys: '1[414996.1.179094822]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide ArchiveTransferPlanCell
+  {
+    #keys: '3[414996.1.179094824][414996.1.179094823][414996.1.179094825]'
+    Cardinality: '1toN'
+    ObjectDefinition: ArchiveTransferPlanColumn
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide ArchiveTransferPlanColumn
+  {
+    #keys: '3[414996.1.179094827][414996.1.179094826][414996.1.179094828]'
+    Cardinality: '0to1'
+    ObjectDefinition: ArchiveTransferPlanCell
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_ArchiveTransferPlanColumn_Archive_Archive_ArchiveTransferPlanColumn.qbl b/_Main/BL/Relations/Relation_ArchiveTransferPlanColumn_Archive_Archive_ArchiveTransferPlanColumn.qbl
new file mode 100644
index 0000000..4d37b67
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ArchiveTransferPlanColumn_Archive_Archive_ArchiveTransferPlanColumn.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ArchiveTransferPlanColumn_Archive_Archive_ArchiveTransferPlanColumn
+{
+  #keys: '1[414996.1.179799679]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Archive
+  {
+    #keys: '3[414996.1.179799681][414996.1.179799680][414996.1.179799682]'
+    Cardinality: '0to1'
+    ObjectDefinition: ArchiveTransferPlanColumn
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide ArchiveTransferPlanColumn
+  {
+    #keys: '3[414996.1.179799684][414996.1.179799683][414996.1.179799685]'
+    Cardinality: '1toN'
+    ObjectDefinition: Archive
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_ArchiveTransferPlanRow_ArchiveTransferPlanCell_ArchiveTransferPlanC.qbl b/_Main/BL/Relations/Relation_ArchiveTransferPlanRow_ArchiveTransferPlanCell_ArchiveTransferPlanC.qbl
new file mode 100644
index 0000000..b7b49ca
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ArchiveTransferPlanRow_ArchiveTransferPlanCell_ArchiveTransferPlanC.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ArchiveTransferPlanRow_ArchiveTransferPlanCell_ArchiveTransferPlanCell_ArchiveTransferPlanRow
+{
+  #keys: '1[414996.1.179799666]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide ArchiveTransferPlanCell
+  {
+    #keys: '3[414996.1.179799668][414996.1.179799667][414996.1.179799669]'
+    Cardinality: '1toN'
+    ObjectDefinition: ArchiveTransferPlanRow
+    OwningSide: 'Owned'
+  }
+  RelationSide.RightSide ArchiveTransferPlanRow
+  {
+    #keys: '3[414996.1.179799671][414996.1.179799670][414996.1.179799672]'
+    Cardinality: '0to1'
+    ObjectDefinition: ArchiveTransferPlanCell
+    OwningSide: 'Reference'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_ArchiveTransferPlanRow_Archive_Archive_ArchiveTransferPlanRow.qbl b/_Main/BL/Relations/Relation_ArchiveTransferPlanRow_Archive_Archive_ArchiveTransferPlanRow.qbl
new file mode 100644
index 0000000..d490371
--- /dev/null
+++ b/_Main/BL/Relations/Relation_ArchiveTransferPlanRow_Archive_Archive_ArchiveTransferPlanRow.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation ArchiveTransferPlanRow_Archive_Archive_ArchiveTransferPlanRow
+{
+  #keys: '1[414996.1.179799653]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide Archive
+  {
+    #keys: '3[414996.1.179799655][414996.1.179799654][414996.1.179799656]'
+    Cardinality: '0to1'
+    ObjectDefinition: ArchiveTransferPlanRow
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide ArchiveTransferPlanRow
+  {
+    #keys: '3[414996.1.179799658][414996.1.179799657][414996.1.179799659]'
+    Cardinality: '1toN'
+    ObjectDefinition: Archive
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanColumn/Attribute_ColumnDate.qbl b/_Main/BL/Type_ArchiveTransferPlanColumn/Attribute_ColumnDate.qbl
new file mode 100644
index 0000000..a97cdc8
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanColumn/Attribute_ColumnDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ColumnDate
+{
+  #keys: '3[414996.1.179799644][414996.1.179799643][414996.1.179799645]'
+  IsReadOnly: true
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanColumn/Attribute_ColumnIndex.qbl b/_Main/BL/Type_ArchiveTransferPlanColumn/Attribute_ColumnIndex.qbl
new file mode 100644
index 0000000..543262d
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanColumn/Attribute_ColumnIndex.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ColumnIndex
+{
+  #keys: '3[414996.1.179799650][414996.1.179799649][414996.1.179799651]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanColumn/Attribute_ColumnName.qbl b/_Main/BL/Type_ArchiveTransferPlanColumn/Attribute_ColumnName.qbl
new file mode 100644
index 0000000..a9db727
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanColumn/Attribute_ColumnName.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ColumnName
+{
+  #keys: '3[414996.1.179799647][414996.1.179799646][414996.1.179799648]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanColumn/DefaultValue_ColumnName.qbl b/_Main/BL/Type_ArchiveTransferPlanColumn/DefaultValue_ColumnName.qbl
new file mode 100644
index 0000000..2ba9476
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanColumn/DefaultValue_ColumnName.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: ColumnName
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanColumn/Function_CalcColumnName.qbl b/_Main/BL/Type_ArchiveTransferPlanColumn/Function_CalcColumnName.qbl
new file mode 100644
index 0000000..61e2036
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanColumn/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_ArchiveTransferPlanColumn/_ROOT_Type_ArchiveTransferPlanColumn.qbl b/_Main/BL/Type_ArchiveTransferPlanColumn/_ROOT_Type_ArchiveTransferPlanColumn.qbl
new file mode 100644
index 0000000..2529268
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanColumn/_ROOT_Type_ArchiveTransferPlanColumn.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type ArchiveTransferPlanColumn
+{
+  #keys: '5[414996.1.179799616][414996.1.179799614][0.0.0][414996.1.179799615][414996.1.179799617]'
+  BaseType: Object
+  StructuredName: 'ArchiveTransferPlanColumns'
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_Category.qbl b/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_Category.qbl
new file mode 100644
index 0000000..cf2882c
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_Category.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Category
+{
+  #keys: '3[414996.1.179799640][414996.1.179799639][414996.1.179799641]'
+  Description: '澶х被'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_Name.qbl b/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_Name.qbl
new file mode 100644
index 0000000..e36479b
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_Name.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Name
+{
+  #keys: '3[414996.1.179799631][414996.1.179799630][414996.1.179799632]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_ProductID.qbl b/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_ProductID.qbl
new file mode 100644
index 0000000..8e56542
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_ProductID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductID
+{
+  #keys: '3[414996.1.179799628][414996.1.179799627][414996.1.179799629]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_RowNr.qbl b/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_RowNr.qbl
new file mode 100644
index 0000000..a661da5
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_RowNr.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute RowNr
+{
+  #keys: '3[414996.1.179799634][414996.1.179799633][414996.1.179799635]'
+  ValueType: Number
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_SourceStockpoingPointID.qbl b/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_SourceStockpoingPointID.qbl
new file mode 100644
index 0000000..557133f
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_SourceStockpoingPointID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SourceStockpoingPointID
+{
+  #keys: '3[414996.1.179799637][414996.1.179799636][414996.1.179799638]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_TargetStockpoingPointID.qbl b/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_TargetStockpoingPointID.qbl
new file mode 100644
index 0000000..d0c3724
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanRow/Attribute_TargetStockpoingPointID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute TargetStockpoingPointID
+{
+  #keys: '3[414996.1.179799625][414996.1.179799624][414996.1.179799626]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_Category.qbl b/_Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_Category.qbl
new file mode 100644
index 0000000..5e9af9f
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_Category.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Category
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_Name.qbl b/_Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_Name.qbl
new file mode 100644
index 0000000..86c3d59
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_Name.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Name
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_ProductID.qbl b/_Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_ProductID.qbl
new file mode 100644
index 0000000..98649b2
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_ProductID.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: ProductID
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_SourceStockpoingPointID.qbl b/_Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_SourceStockpoingPointID.qbl
new file mode 100644
index 0000000..67999c0
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_SourceStockpoingPointID.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: SourceStockpoingPointID
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_TargetStockpoingPointID.qbl b/_Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_TargetStockpoingPointID.qbl
new file mode 100644
index 0000000..5d27b76
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanRow/DefaultValue_TargetStockpoingPointID.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: TargetStockpoingPointID
+}
diff --git a/_Main/BL/Type_ArchiveTransferPlanRow/Function_CalcName.qbl b/_Main/BL/Type_ArchiveTransferPlanRow/Function_CalcName.qbl
new file mode 100644
index 0000000..30e44df
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanRow/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_ArchiveTransferPlanRow/_ROOT_Type_ArchiveTransferPlanRow.qbl b/_Main/BL/Type_ArchiveTransferPlanRow/_ROOT_Type_ArchiveTransferPlanRow.qbl
new file mode 100644
index 0000000..53d3c4f
--- /dev/null
+++ b/_Main/BL/Type_ArchiveTransferPlanRow/_ROOT_Type_ArchiveTransferPlanRow.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type ArchiveTransferPlanRow
+{
+  #keys: '5[414996.1.179799621][414996.1.179799619][0.0.0][414996.1.179799620][414996.1.179799622]'
+  BaseType: Object
+  StructuredName: 'ArchiveTransferPlanRows'
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl
index 4b5446f..cc5744c 100644
--- a/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl
@@ -213,6 +213,11 @@
         // singleShiftVolume := lineQuantity / 1;
       }
     }
+    
+    traverse( lines,Elements.DispatchShiftSchedulingProduct.DispatchShiftSchedulingDetail,detail ){
+      detail.ShiftVolume( detail.ShiftVolume() ); 
+    }
+    
     info( "Success" );
   *]
 }
diff --git a/_Main/BL/Type_LockPeriod/Attribute_IsEnable.qbl b/_Main/BL/Type_LockPeriod/Attribute_IsEnable.qbl
new file mode 100644
index 0000000..3687a12
--- /dev/null
+++ b/_Main/BL/Type_LockPeriod/Attribute_IsEnable.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute IsEnable
+{
+  #keys: '3[414996.1.179110033][414996.1.179110032][414996.1.179110034]'
+  ValueType: Boolean
+}
diff --git a/_Main/BL/Type_LockPeriod/Method_Enable.qbl b/_Main/BL/Type_LockPeriod/Method_Enable.qbl
new file mode 100644
index 0000000..d613476
--- /dev/null
+++ b/_Main/BL/Type_LockPeriod/Method_Enable.qbl
@@ -0,0 +1,32 @@
+Quintiq file version 2.0
+#parent: #root
+Method Enable (
+  const NewOfflinePlanTable offlinePlanTable
+)
+{
+  TextBody:
+  [*
+    // Akari Oct-30-2024 (created)
+    offlinePlanRow := select( offlinePlanTable,NewOfflinePlanRow,row,row.ProductID() = this.ProductInStockingPoint_MP().ProductID() );
+    
+    if( not this.IsEnable() ){
+      pispips := selectset( this,ProductInStockingPoint_MP.ProductInStockingPointInPeriod.astype( ProductInStockingPointInPeriodPlanningLeaf ),period,period.Period_MP().StartDate() <= this.LockDate() );
+      traverse( pispips,Elements,element ){
+        if( element.NewSupply( relsize ) = 1 ){
+          traverse( element,NewSupply,newSupply ){
+            
+          }
+        }else if( element.NewSupply( relsize ) > 1 ){
+          
+        }else if( element.NewSupply( relsize ) = 0 ){
+          unit := element.StockingPointInPeriod().StockingPoint_MP().Unit();
+          operaction := select( unit,Operation,op,true );
+          // PeriodTaskOperation::Create( )
+        }
+        
+        
+    
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_TransferPlanCell0/Attribute_Value.qbl b/_Main/BL/Type_TransferPlanCell0/Attribute_Value.qbl
new file mode 100644
index 0000000..7ab4e68
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanCell0/Attribute_Value.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Value
+{
+  #keys: '3[414996.1.179094789][414996.1.179094788][414996.1.179094790]'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_TransferPlanCell0/DefaultValue_Value.qbl b/_Main/BL/Type_TransferPlanCell0/DefaultValue_Value.qbl
new file mode 100644
index 0000000..913414b
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanCell0/DefaultValue_Value.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Value
+}
diff --git a/_Main/BL/Type_TransferPlanCell0/StaticMethod_Archive.qbl b/_Main/BL/Type_TransferPlanCell0/StaticMethod_Archive.qbl
new file mode 100644
index 0000000..ccf81c1
--- /dev/null
+++ b/_Main/BL/Type_TransferPlanCell0/StaticMethod_Archive.qbl
@@ -0,0 +1,88 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Archive (
+  const MacroPlan macroPlan,
+  Archive archive
+)
+{
+  TextBody:
+  [*
+    // Akari Oct-23-2024 (created)
+    archiveTransferPlanCells := selectset( archive,ArchiveTransferPlanRow.ArchiveTransferPlanCell,cell,true );
+    archiveTransferPlanCellIndexTree := NamedValueTree::Create();
+    for( i := 0; i < archiveTransferPlanCells.Size(); i++ ){
+      archiveTransferPlanCell := archiveTransferPlanCells.Element( i );
+      archiveTransferPlanRow := archiveTransferPlanCell.ArchiveTransferPlanRow();
+      archiveTransferPlanColumn := archiveTransferPlanCell.ArchiveTransferPlanColumn();
+      
+      archiveTransferPlanRowKey := archiveTransferPlanRow.Category() + archiveTransferPlanRow.ProductID() + archiveTransferPlanRow.SourceStockpoingPointID() + archiveTransferPlanRow.TargetStockpoingPointID() ;
+      archiveTransferPlanColumnKey := archiveTransferPlanColumn.ColumnDate().AsQUILL();
+      archiveTransferPlanCellKey := archiveTransferPlanRowKey + archiveTransferPlanColumnKey;
+      archiveTransferPlanCellHandle := archiveTransferPlanCellIndexTree.GetHandle( archiveTransferPlanCellKey );
+      
+      archiveTransferPlanCellIndexTree.Root().AddChild( archiveTransferPlanCellHandle,i );
+    }
+    
+    archiveTransferPlanRows := selectset( archive,ArchiveTransferPlanRow,row,true );
+    archiveTransferPlanRowIndexTree := NamedValueTree::Create();
+    for( i := 0; i < archiveTransferPlanRows.Size(); i++ ){
+      archiveTransferPlanRow := archiveTransferPlanRows.Element( i );
+      archiveTransferPlanRowKey := archiveTransferPlanRow.Category() + archiveTransferPlanRow.ProductID() + archiveTransferPlanRow.SourceStockpoingPointID() + archiveTransferPlanRow.TargetStockpoingPointID() ;
+      archiveTransferPlanRowHandle := archiveTransferPlanRowIndexTree.GetHandle( archiveTransferPlanRowKey );
+      archiveTransferPlanRowIndexTree.Root().AddChild( archiveTransferPlanRowHandle,i );
+    }
+    
+    archiveTransferPlanColumns := selectset( archive,ArchiveTransferPlanColumn,row,true );
+    archiveTransferPlanColumnIndexTree := NamedValueTree::Create();
+    for( i := 0; i < archiveTransferPlanColumns.Size(); i++ ){
+      archiveTransferPlanColumn := archiveTransferPlanColumns.Element( i );
+      archiveTransferPlanColumnKey := archiveTransferPlanColumn.ColumnDate().AsQUILL();
+      archiveTransferPlanColumnHandle := archiveTransferPlanColumnIndexTree.GetHandle( archiveTransferPlanColumnKey );
+      archiveTransferPlanColumnIndexTree.Root().AddChild( archiveTransferPlanColumnHandle,i );
+    }
+    
+    traverse( macroPlan,TransferPlanRow.TransferPlanCell,transferPlanCell ){
+      transferPlanRow := transferPlanCell.TransferPlanRow();
+      transferPlanColumn := transferPlanCell.TransferPlanColumn();
+      transferPlanRowKey := transferPlanRow.Category() + transferPlanRow.ProductID() + transferPlanRow.SourceStockpoingPointID() + transferPlanRow.TargetStockpoingPointID();
+      transferPlanColumnKey := transferPlanColumn.ColumnDate().AsQUILL();
+      transferPlanCellKey := transferPlanRowKey + transferPlanColumnKey;
+      
+      archiveTransferPlanCell := null( ArchiveTransferPlanCell );
+      archiveTransferPlanCellHandle := archiveTransferPlanCellIndexTree.GetHandle( transferPlanCellKey );
+      archiveTransferPlanCellIndex := guard( archiveTransferPlanCellIndexTree.Root().Child( archiveTransferPlanCellHandle ),null( NamedValue ) );
+      if( isnull( archiveTransferPlanCellIndex )){
+        archiveTransferPlanRow := null( ArchiveTransferPlanRow );
+        archiveTransferPlanRowHandle := archiveTransferPlanRowIndexTree.GetHandle( transferPlanRowKey );
+        archiveTransferPlanRowIndex := guard( archiveTransferPlanRowIndexTree.Root().Child( archiveTransferPlanRowHandle ),null( NamedValue ));
+        if( isnull( archiveTransferPlanRowIndex )){
+          archiveTransferPlanRow := archive.ArchiveTransferPlanRow( relnew,Category := transferPlanRow.Category(),ProductID := transferPlanRow.ProductID(),RowNr := transferPlanRow.RowNr(),SourceStockpoingPointID := transferPlanRow.SourceStockpoingPointID(),TargetStockpoingPointID := transferPlanRow.TargetStockpoingPointID() );
+          archiveTransferPlanRows.Add( archiveTransferPlanRow );
+          archiveTransferPlanRowIndexTree.Root().AddChild( archiveTransferPlanRowHandle,archiveTransferPlanRows.Size() - 1 );
+        }else{
+          archiveTransferPlanRow := archiveTransferPlanRows.Element( archiveTransferPlanRowIndex.GetValueAsNumber() ); 
+        }
+        
+        archiveTransferPlanColumn := null( ArchiveTransferPlanColumn );
+        archiveTransferPlanColumnHandle := archiveTransferPlanColumnIndexTree.GetHandle( transferPlanColumnKey );
+        archiveTransferPlanColumnIndex := guard( archiveTransferPlanColumnIndexTree.Root().Child( archiveTransferPlanColumnHandle ),null( NamedValue ));
+        if( isnull( archiveTransferPlanColumnIndex )){
+          archiveTransferPlanColumn := archive.ArchiveTransferPlanColumn( relnew,ColumnDate := transferPlanColumn.ColumnDate(),ColumnIndex := transferPlanColumn.ColumnIndex() );
+          archiveTransferPlanColumns.Add( archiveTransferPlanColumn );
+          archiveTransferPlanColumnIndexTree.Root().AddChild( archiveTransferPlanColumnHandle,archiveTransferPlanColumns.Size() - 1 );
+        }else{
+          archiveTransferPlanColumn := archiveTransferPlanColumns.Element( archiveTransferPlanColumnIndex.GetValueAsNumber() ); 
+        }
+        
+        archiveTransferPlanCell := archiveTransferPlanRow.ArchiveTransferPlanCell( relnew,ArchiveTransferPlanColumn := archiveTransferPlanColumn );
+        archiveTransferPlanCells.Add( archiveTransferPlanCell );
+        archiveTransferPlanCellIndexTree.Root().AddChild( archiveTransferPlanCellHandle,archiveTransferPlanCells.Size() - 1 );
+      }else{
+        archiveTransferPlanCell := archiveTransferPlanCells.Element( archiveTransferPlanCellIndex.GetValueAsNumber());
+      }
+      
+      archiveTransferPlanCell.Value( transferPlanCell.Value() );
+    
+    }
+  *]
+}
diff --git "a/_Main/BL/Type_TransferPlanCell0/_ROOT_Type_ArchiveTransferPlanCell\0430.qbl" "b/_Main/BL/Type_TransferPlanCell0/_ROOT_Type_ArchiveTransferPlanCell\0430.qbl"
new file mode 100644
index 0000000..fae857e
--- /dev/null
+++ "b/_Main/BL/Type_TransferPlanCell0/_ROOT_Type_ArchiveTransferPlanCell\0430.qbl"
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type ArchiveTransferPlanCell
+{
+  #keys: '5[414996.1.179094786][414996.1.179094784][0.0.0][414996.1.179094785][414996.1.179094787]'
+  BaseType: Object
+  StructuredName: 'ArchiveTransferPlanCells'
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_ListLockPeriod.def b/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_ListLockPeriod.def
new file mode 100644
index 0000000..4308ad7
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_ListLockPeriod.def
@@ -0,0 +1,41 @@
+Quintiq file version 2.0
+Component ListLockPeriod
+{
+  #keys: '[414996.1.179381086]'
+  BaseType: 'WebList'
+  Children:
+  [
+    Component DataExtractorLockPeriod
+    {
+      #keys: '[414996.1.179381087]'
+      BaseType: 'WebDataExtractor'
+      Properties:
+      [
+        DataType: 'external[MacroPlan]'
+        Source: 'MacroPlan'
+        Taborder: 0
+        Transformation: 'Product_MP.ProductInStockingPoint_MP.LockPeriod'
+      ]
+    }
+    #child: listActionBarPageLockPeriod
+    Component DataSetLevelLockPeriod
+    {
+      #keys: '[414996.1.179381092]'
+      BaseType: 'WebDataSetLevel'
+      Children:
+      [
+        #child: listContextMenuLockPeriod
+      ]
+      Properties:
+      [
+        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductInStockingPoint_MP.ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductInStockingPoint_MP.ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductInStockingPoint_MP.StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ProductInStockingPoint_MP.StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LockDate","title":"LockDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LockDate"}}]'
+        ContextMenu: 'listContextMenuLockPeriod'
+        Taborder: 2
+      ]
+    }
+  ]
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_PanelLockPeriod.def b/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_PanelLockPeriod.def
new file mode 100644
index 0000000..92bcb0a
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_PanelLockPeriod.def
@@ -0,0 +1,11 @@
+Quintiq file version 2.0
+Component PanelLockPeriod
+{
+  #keys: '[414996.1.179381050]'
+  BaseType: 'WebPanel'
+  Properties:
+  [
+    FixedSize: true
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_PanelLockPeriod633.def b/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_PanelLockPeriod633.def
new file mode 100644
index 0000000..2271c3e
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_PanelLockPeriod633.def
@@ -0,0 +1,14 @@
+Quintiq file version 2.0
+Component PanelLockPeriod633
+{
+  #keys: '[414996.1.179381068]'
+  BaseType: 'WebPanel'
+  Children:
+  [
+    #child: ListLockPeriod
+  ]
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_listActionBarPageLockPeriod.def b/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_listActionBarPageLockPeriod.def
new file mode 100644
index 0000000..a4fa9b1
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_listActionBarPageLockPeriod.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listActionBarPageLockPeriod
+{
+  #keys: '[414996.1.179381089]'
+  BaseType: 'listActionBarPage'
+  Properties:
+  [
+    Taborder: 1
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_listContextMenuLockPeriod.def b/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_listContextMenuLockPeriod.def
new file mode 100644
index 0000000..f2db74c
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/Component_listContextMenuLockPeriod.def
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+Component listContextMenuLockPeriod
+{
+  #keys: '[414996.1.179381094]'
+  BaseType: 'listContextMenu'
+  Properties:
+  [
+    Taborder: 0
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/_ROOT_Component_FormLockPeriod.def b/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/_ROOT_Component_FormLockPeriod.def
new file mode 100644
index 0000000..7150c91
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormLockPeriod/_ROOT_Component_FormLockPeriod.def
@@ -0,0 +1,13 @@
+Quintiq file version 2.0
+#root
+#parent: MacroPlannerWebApp
+OrphanComponent FormLockPeriod
+{
+  #keys: '[414996.1.179381026]'
+  BaseType: 'WebForm'
+  Children:
+  [
+    #child: PanelLockPeriod
+    #child: PanelLockPeriod633
+  ]
+}

--
Gitblit v1.9.3