From db7a0a9394d11c51b478579d6aa24790b7deaa4c Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期五, 06 九月 2024 01:18:29 +0800
Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev-zlg

---
 _Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_VersionFlag.qbl                                |    8 
 _Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_Tips.qbl                                    |    6 
 _Main/BL/Relations/Relation_DispatchShiftSchedulingInformation_RecycleBin_RecycleBin_DispatchSh.qbl       |   23 ++
 _Main/BL/Type_CustomerDemandIDS/Method_SyncRows.qbl                                                       |   39 +++
 _Main/BL/Type_CustomerDemandIDS/StaticMethod_ReadStructure.qbl                                            |   33 +++
 _Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLElementId_QuintiqType.qbl                     |    7 
 _Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ID.qbl                                         |    8 
 _Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_InterfaceTime.qbl                              |    8 
 _Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_ProductLine.qbl                             |    6 
 _Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_FactoryName.qbl                                |    8 
 _Main/BL/Type_ActualDailyProductionReport/StaticMethod_Synchronize.qbl                                    |    2 
 _Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_Fac.qbl                                     |    6 
 _Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_table.qbl                          |   27 ++
 _Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftDate.qbl                                  |    8 
 _Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_Product.qbl                                    |    8 
 _Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLElementId_QuintiqType.qbl              |    7 
 _Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_column.qbl                         |   27 ++
 _Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftEndDate.qbl                               |    8 
 _Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLElementId_Key.qbl                      |    7 
 _Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_VersionName.qbl                             |    6 
 _Main/UI/MacroPlannerWebApp/Component_DialogCustomerDemandPPAIDS/Method_OnOK.def                          |    2 
 _Main/BL/Relations/Relation_CustomerDemandIDS_InterfaceDataset_InterfaceDataset_CustomerDemandI.qbl       |   23 ++
 _Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl                                                   |    3 
 _Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ProductLine.qbl                                |    8 
 _Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLElementId_Key.qbl                             |    7 
 _Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLObjectBase_column.qbl                  |   17 +
 _Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_VersionName.qbl                                |    8 
 _Main/BL/Type_DispatchShiftSchedulingInformation/TypeIndex_IDTypeIndex.qbl                                |   12 +
 _Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftVolume.qbl                                |    8 
 _Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_FactoryName.qbl                             |    6 
 _Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl                                          |   15 
 _Main/BL/Type_DispatchShiftSchedulingInformation/_ROOT_Type_DispatchShiftSchedulingInformation.qbl        |   10 +
 _Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/_ROOT_XML_CustomerDemandIDSXML.qbl               |    8 
 _Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLObjectBase_table.qbl                   |   27 ++
 _Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_Dispatch.qbl                                |    9 
 _Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_cell.qbl                           |   17 +
 _Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_Tips.qbl                                       |    8 
 _Main/BL/Type_Archive/StaticMethod_Archive.qbl                                                            |   16 
 /dev/null                                                                                                 |   23 --
 _Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/_ROOT_XML_CustomerDemandIDSXMLHeaders.qbl |    8 
 _Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_ID.qbl                                      |    6 
 _Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftName.qbl                                  |    8 
 _Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_Fac.qbl                                        |    8 
 _Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_VersionFlag.qbl                             |    6 
 _Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftStartDate.qbl                             |    8 
 _Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_SingleShiftName.qbl                            |    8 
 _Main/BL/Type_DispatchShiftSchedulingInformation/Function_CalcFac.qbl                                     |   17 +
 47 files changed, 504 insertions(+), 44 deletions(-)

diff --git a/_Main/BL/Relations/Relation_CustomerDemandIDS_InterfaceDataset_InterfaceDataset_CustomerDemandI.qbl b/_Main/BL/Relations/Relation_CustomerDemandIDS_InterfaceDataset_InterfaceDataset_CustomerDemandI.qbl
new file mode 100644
index 0000000..2818276
--- /dev/null
+++ b/_Main/BL/Relations/Relation_CustomerDemandIDS_InterfaceDataset_InterfaceDataset_CustomerDemandI.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation CustomerDemandIDS_InterfaceDataset_InterfaceDataset_CustomerDemandIDS
+{
+  #keys: '1[415136.0.1109686108]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide InterfaceDataset
+  {
+    #keys: '3[415136.0.1109686110][415136.0.1109686109][415136.0.1109686111]'
+    Cardinality: '0to1'
+    ObjectDefinition: CustomerDemandIDS
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide CustomerDemandIDS
+  {
+    #keys: '3[415136.0.1109686113][415136.0.1109686112][415136.0.1109686114]'
+    Cardinality: '1toN'
+    ObjectDefinition: InterfaceDataset
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Relations/Relation_CustomerDemandIDS_MacroPlan_MacroPlan_CustomerDemandIDS.qbl b/_Main/BL/Relations/Relation_CustomerDemandIDS_MacroPlan_MacroPlan_CustomerDemandIDS.qbl
deleted file mode 100644
index 7bc0ffb..0000000
--- a/_Main/BL/Relations/Relation_CustomerDemandIDS_MacroPlan_MacroPlan_CustomerDemandIDS.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation CustomerDemandIDS_MacroPlan_MacroPlan_CustomerDemandIDS
-{
-  #keys: '1[415136.0.1113700065]'
-  DefaultRelationStrategy
-  {
-  }
-  RelationSide.LeftSide MacroPlan
-  {
-    #keys: '3[415136.0.1113700067][415136.0.1113700066][415136.0.1113700068]'
-    Cardinality: '0to1'
-    ObjectDefinition: CustomerDemandIDS
-    OwningSide: 'Reference'
-  }
-  RelationSide.RightSide CustomerDemandIDS
-  {
-    #keys: '3[415136.0.1113700070][415136.0.1113700069][415136.0.1113700071]'
-    Cardinality: '1toN'
-    ObjectDefinition: MacroPlan
-    OwningSide: 'Owned'
-  }
-}
diff --git a/_Main/BL/Relations/Relation_DispatchShiftSchedulingInformation_RecycleBin_RecycleBin_DispatchSh.qbl b/_Main/BL/Relations/Relation_DispatchShiftSchedulingInformation_RecycleBin_RecycleBin_DispatchSh.qbl
new file mode 100644
index 0000000..6b167c2
--- /dev/null
+++ b/_Main/BL/Relations/Relation_DispatchShiftSchedulingInformation_RecycleBin_RecycleBin_DispatchSh.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation DispatchShiftSchedulingInformation_RecycleBin_RecycleBin_DispatchShiftSchedulingInformation
+{
+  #keys: '1[414996.1.67010175]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide RecycleBin
+  {
+    #keys: '3[414996.1.67010177][414996.1.67010176][414996.1.67010178]'
+    Cardinality: '0to1'
+    ObjectDefinition: DispatchShiftSchedulingInformation
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide DispatchShiftSchedulingInformation
+  {
+    #keys: '3[414996.1.67010180][414996.1.67010179][414996.1.67010181]'
+    Cardinality: '1toN'
+    ObjectDefinition: RecycleBin
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_ActualDailyProductionReport/StaticMethod_Synchronize.qbl b/_Main/BL/Type_ActualDailyProductionReport/StaticMethod_Synchronize.qbl
index 9b78c60..4f6cfa9 100644
--- a/_Main/BL/Type_ActualDailyProductionReport/StaticMethod_Synchronize.qbl
+++ b/_Main/BL/Type_ActualDailyProductionReport/StaticMethod_Synchronize.qbl
@@ -8,7 +8,7 @@
   TextBody:
   [*
     // rislai Jul-23-2024 (created)
-    date    := Date::ActualDate();
+    date    := Date::ActualDate() - 1;
     loginfo := interfaceDataset.InterfaceLoginfo( relnew, ExecuteUser := QuintiqUser::CurrentUser().ShortName()
                                        , Name := Translations::InterfaceDataset_ActualDailyProductionData_Name()
                                        , InterfaceDateTime := DateTime::ActualTime()
diff --git a/_Main/BL/Type_Archive/StaticMethod_Archive.qbl b/_Main/BL/Type_Archive/StaticMethod_Archive.qbl
index 048216a..8969d8c 100644
--- a/_Main/BL/Type_Archive/StaticMethod_Archive.qbl
+++ b/_Main/BL/Type_Archive/StaticMethod_Archive.qbl
@@ -52,16 +52,14 @@
           } else {
             archive.ArchivePPA( relnew, Name := fileName, FilePath := filePath, SourceFileBinaryValue := ppaBinaryValue );
           }
+          
+          // 瀛樻。Curve
+          ac := select( archive, ArchiveCurve, tempAC, true );
+          if ( not isnull( ac ) ) {
+            ac.Delete();
+          }
+          archive.ArchiveCurve( relnew, Name := "濮嬬粓鍙瓨涓�鐗�.xlsx", FilePath := curveFileName, SourceFileBinaryValue := curveBinaryValue );
         }
-      }
-      
-      // 瀛樻。Curve
-      if ( curveFileName <> "" and curveBinaryValue.Size() > 0 ) {
-        ac := select( archive, ArchiveCurve, tempAC, true );
-        if ( not isnull( ac ) ) {
-          ac.Delete();
-        }
-        archive.ArchiveCurve( relnew, Name := "濮嬬粓鍙瓨涓�鐗�.xlsx", FilePath := curveFileName, SourceFileBinaryValue := curveBinaryValue );
       }
     }
   *]
diff --git a/_Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl b/_Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl
index a363c8e..fbb1602 100644
--- a/_Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl
+++ b/_Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl
@@ -12,7 +12,8 @@
     }
     
     traverse ( archiveExecutionStatus, TemporaryDemandData, tdd ,tdd.Origin() = "" or tdd.StartDate() >= macroPlan.StartOfPlanning().Date()) {
-      targetProduct_MP       := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = tdd.ProductID() );
+      targetProduct_MP       := select( macroPlan, Product_MP, tempPMP, tempPMP.Notes() = tdd.ProductID() );
+      // targetProduct_MP       := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = tdd.ProductID() );
       targetStockingPoint_MP := select( macroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = tdd.StockingPointID() );
       // info( tdd.SalesSegmentName() );
       if ( not isnull( targetProduct_MP ) and not isnull( targetStockingPoint_MP ) ) {
diff --git a/_Main/BL/Type_CustomerDemandIDS/Method_SyncRows.qbl b/_Main/BL/Type_CustomerDemandIDS/Method_SyncRows.qbl
new file mode 100644
index 0000000..0106865
--- /dev/null
+++ b/_Main/BL/Type_CustomerDemandIDS/Method_SyncRows.qbl
@@ -0,0 +1,39 @@
+Quintiq file version 2.0
+#parent: #root
+Method SyncRows
+{
+  TextBody:
+  [*
+    totalRows := 0;
+    totalColumns := this.Column( relsize );
+    
+    if ( totalColumns > 0 ) {
+      randomCol := select( this, Column, tempFPC, true );
+      totalRows := randomCol.Cell( relsize );
+      
+      this.Row( relflush );
+      
+      cells := construct( CustomerDemandIDSCells );
+      traverse ( this, Column, fpc ) {
+        cells.Add( fpc.FirstCellInColumn() );
+      }
+      
+      for ( i := 0; i < totalRows; i++ ) {
+        assert( selectvalues( cells, Elements, c, true, c.Column().Index() ).ToString( "" ) = 
+                selectvalues( selectsortedset( cells, Elements, c, true, c.Column().Index() ), Elements, c, true, c.Column().Index() ).ToString( "" ),
+                "Assertion error in FrockDataTable::syncRows: Cells not sorted by column index" );
+        row := this.Row( relnew, RowNr := i );
+        
+        newCells := construct( CustomerDemandIDSCells );
+        
+        traverse ( cells, Elements, c ) {
+          row.Cell( relinsert, c );
+          
+          newCells.Add( c.NextCellInColumn() );
+        }
+        
+        cells := &newCells;
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_CustomerDemandIDS/StaticMethod_ReadStructure.qbl b/_Main/BL/Type_CustomerDemandIDS/StaticMethod_ReadStructure.qbl
new file mode 100644
index 0000000..f0b4327
--- /dev/null
+++ b/_Main/BL/Type_CustomerDemandIDS/StaticMethod_ReadStructure.qbl
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ReadStructure (
+  BinaryValue binaryvalue,
+  InterfaceDataset owner
+)
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Sep-3-2024 (created)
+    tableGroupHandle := TableGroupHandle::Create( 'IDS鍏ㄨ〃' );
+    tableGroupHandle := XLS::LoadTableGroupFromBinaryData( binaryvalue.AsBinaryData(), tableGroupHandle, true, true );
+    sheets := tableGroupHandle.TableNames();
+    
+    traverse ( sheets, Elements, sheetName ) {
+      tableHandle := tableGroupHandle.Table( sheetName );
+      tableXML := TableHandle::ExportXML( tableHandle );
+      
+    //  info( tableXML.AsQUILL() );
+      
+      CustomerDemandIDS::XMLFileImportCustomerDemandIDSXMLHeaders( tableXML );
+      xlstable := CustomerDemandIDS::XMLImportCustomerDemandIDSXML( tableXML );
+    
+      xlstable.SyncRows();
+    
+      xlstable.Name( sheetName );
+      owner.CustomerDemandIDS( relinsert, &xlstable ); 
+      
+      Transaction::Transaction().Propagate( attribute( CustomerDemandIDSColumn, Index ) );
+    
+    }
+  *]
+}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLElementId_Key.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLElementId_Key.qbl
new file mode 100644
index 0000000..4f408a0
--- /dev/null
+++ b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLElementId_Key.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+XMLElementId
+{
+  XMLAddressType { }
+  XMLID Key { }
+}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLElementId_QuintiqType.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLElementId_QuintiqType.qbl
new file mode 100644
index 0000000..7468757
--- /dev/null
+++ b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLElementId_QuintiqType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+XMLElementId
+{
+  XMLID QuintiqType { }
+  XMLQualifierType { }
+}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_cell.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_cell.qbl
new file mode 100644
index 0000000..c4fd297
--- /dev/null
+++ b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_cell.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+XMLObjectBase.ObjectDefinitions
+{
+  IdField: Key
+  ObjectTypeField: QuintiqType
+  TargetType: CustomerDemandIDSCell
+  XMLID cell { }
+  Attributes:
+  [
+    XMLAttribute
+    {
+      Attribute: Value
+      XMLID value { }
+    }
+  ]
+}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_column.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_column.qbl
new file mode 100644
index 0000000..4a97560
--- /dev/null
+++ b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_column.qbl
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: #root
+XMLObjectBase.ObjectDefinitions
+{
+  IdField: Key
+  ObjectTypeField: QuintiqType
+  TargetType: CustomerDemandIDSColumn
+  XMLID column { }
+  Aggregates:
+  [
+    XMLAggregate
+    {
+      ElementDefinition: cell
+      GenerateOutput: false
+      Relation: Cell
+      XMLID Cell { }
+    }
+  ]
+  Attributes:
+  [
+    XMLAttribute
+    {
+      Attribute: Name
+      XMLID name { }
+    }
+  ]
+}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_table.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_table.qbl
new file mode 100644
index 0000000..ebf311d
--- /dev/null
+++ b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/XMLObjectBase_table.qbl
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: #root
+XMLObjectBase.ObjectDefinitions
+{
+  IdField: Key
+  ObjectTypeField: QuintiqType
+  TargetType: CustomerDemandIDS
+  XMLID table { }
+  Aggregates:
+  [
+    XMLAggregate
+    {
+      ElementDefinition: column
+      GenerateOutput: false
+      Relation: Column
+      XMLID Column { }
+    }
+  ]
+  Attributes:
+  [
+    XMLAttribute
+    {
+      Attribute: Name
+      XMLID name { }
+    }
+  ]
+}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/_ROOT_XML_CustomerDemandIDSXML.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/_ROOT_XML_CustomerDemandIDSXML.qbl
new file mode 100644
index 0000000..a0513a0
--- /dev/null
+++ b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXML/_ROOT_XML_CustomerDemandIDSXML.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#root
+#parent: #root
+XML CustomerDemandIDSXML
+{
+  Direction: 'ImportExport'
+  Root: table
+}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLElementId_Key.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLElementId_Key.qbl
new file mode 100644
index 0000000..4f408a0
--- /dev/null
+++ b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLElementId_Key.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+XMLElementId
+{
+  XMLAddressType { }
+  XMLID Key { }
+}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLElementId_QuintiqType.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLElementId_QuintiqType.qbl
new file mode 100644
index 0000000..7468757
--- /dev/null
+++ b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLElementId_QuintiqType.qbl
@@ -0,0 +1,7 @@
+Quintiq file version 2.0
+#parent: #root
+XMLElementId
+{
+  XMLID QuintiqType { }
+  XMLQualifierType { }
+}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLObjectBase_column.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLObjectBase_column.qbl
new file mode 100644
index 0000000..c3c96e9
--- /dev/null
+++ b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLObjectBase_column.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+XMLObjectBase.ObjectDefinitions
+{
+  IdField: Key
+  ObjectTypeField: QuintiqType
+  TargetType: CustomerDemandIDSColumn
+  XMLID column { }
+  Attributes:
+  [
+    XMLAttribute
+    {
+      Attribute: Name
+      XMLID name { }
+    }
+  ]
+}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLObjectBase_table.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLObjectBase_table.qbl
new file mode 100644
index 0000000..ebf311d
--- /dev/null
+++ b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/XMLObjectBase_table.qbl
@@ -0,0 +1,27 @@
+Quintiq file version 2.0
+#parent: #root
+XMLObjectBase.ObjectDefinitions
+{
+  IdField: Key
+  ObjectTypeField: QuintiqType
+  TargetType: CustomerDemandIDS
+  XMLID table { }
+  Aggregates:
+  [
+    XMLAggregate
+    {
+      ElementDefinition: column
+      GenerateOutput: false
+      Relation: Column
+      XMLID Column { }
+    }
+  ]
+  Attributes:
+  [
+    XMLAttribute
+    {
+      Attribute: Name
+      XMLID name { }
+    }
+  ]
+}
diff --git a/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/_ROOT_XML_CustomerDemandIDSXMLHeaders.qbl b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/_ROOT_XML_CustomerDemandIDSXMLHeaders.qbl
new file mode 100644
index 0000000..8c8b3e2
--- /dev/null
+++ b/_Main/BL/Type_CustomerDemandIDS/XML_CustomerDemandIDSXMLHeaders/_ROOT_XML_CustomerDemandIDSXMLHeaders.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#root
+#parent: #root
+XML CustomerDemandIDSXMLHeaders
+{
+  Direction: 'ImportExport'
+  Root: table
+}
diff --git a/_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl b/_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl
index a9645b0..2139612 100644
--- a/_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl
+++ b/_Main/BL/Type_CustomerDemandPPAIDS/StaticMethod_GenerateData.qbl
@@ -2,7 +2,6 @@
 #parent: #root
 StaticMethod GenerateData (
   const MacroPlan macroplan,
-  RecycleBin recycle,
   const Archive archive,
   InterfaceDataset interfaceDataset,
   String executor,
@@ -44,16 +43,15 @@
       loginfo.CustomerDemandPPAIDS( relinsert, cd );
     }
     binaryValue           := TemplateManager::GetIDSFullTable( archive, Date::ActualDate().Year() );
-    source                := GeneralExcelImportAndExportDataSource::Upload( recycle, binaryValue, OS::TempPath() + "template.xlsx" );
-    source.ReadStructure();
-    //productcolumn         := select( recycle, ge.Column, column, column.Index() = 1 );
+    CustomerDemandIDS::ReadStructure( binaryValue, interfaceDataset );
+    productcolumn         := select( interfaceDataset, CustomerDemandIDS.Column, column, column.Index() = 1 );
     cnv2 := StringToDate::StandardConverter();
     cnv2.SetCustomConversion();
     cnv2.CustomFormatString( "dd/MM/yyyy" );
-    traverse( recycle, GeneralExcelImportAndExportDataSource.GeneralExcelImportAndExportDataTable.GeneralExcelImportAndExportDataRow, row ){
-      product             := selectobject( row, GeneralExcelImportAndExportDataCell, cell, cell.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 1 );
-      traverse( row, GeneralExcelImportAndExportDataCell, cell, cell.GeneralExcelImportAndExportDataColumn().ColumnIndex() > 3 ){
-        period := cnv2.Convert( cell.GeneralExcelImportAndExportDataColumn().Name() );
+    traverse( interfaceDataset, CustomerDemandIDS.Row, row ){
+      product             := selectobject( row, Cell, cell, cell.Column() = productcolumn );
+      traverse( row, Cell, cell, cell.Column().Index() > 3 ){
+        period := cnv2.Convert( cell.Column().Name() );
         cd                  :=interfaceDataset.CustomerDemandPPAIDS( relnew, Product           := product.Value()
                                                                      , DemandDate              := period
                                                                      , DemandQty               := [Number]cell.Value()
@@ -64,7 +62,6 @@
         loginfo.CustomerDemandPPAIDS( relinsert, cd );
       }
     }
-    source.Delete();
     loginfo.TotalRow( loginfo.CustomerDemandPPAIDS( relsize ) );
   *]
 }
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_Fac.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_Fac.qbl
new file mode 100644
index 0000000..1ccb4ce
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_Fac.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Fac
+{
+  #keys: '3[414996.1.67010086][414996.1.67010085][414996.1.67010087]'
+  Description: '宸ュ巶绠�鍐�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_FactoryName.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_FactoryName.qbl
new file mode 100644
index 0000000..2c20d6e
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_FactoryName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute FactoryName
+{
+  #keys: '3[414996.1.67010074][414996.1.67010073][414996.1.67010075]'
+  Description: '宸ュ巶鍚嶇О'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ID.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ID.qbl
new file mode 100644
index 0000000..ec71217
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ID.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ID
+{
+  #keys: '3[414996.1.67010089][414996.1.67010088][414996.1.67010090]'
+  IsReadOnly: true
+  ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_InterfaceTime.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_InterfaceTime.qbl
new file mode 100644
index 0000000..1e785cd
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_InterfaceTime.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute InterfaceTime
+{
+  #keys: '3[414996.1.67010077][414996.1.67010076][414996.1.67010078]'
+  Description: '涓嬪彂鏃堕棿'
+  ValueType: DateTime
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_Product.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_Product.qbl
new file mode 100644
index 0000000..526f3b4
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_Product.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Product
+{
+  #keys: '3[414996.1.67010096][414996.1.67010095][414996.1.67010097]'
+  Description: '鐗╂枡鍙�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ProductLine.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ProductLine.qbl
new file mode 100644
index 0000000..979ff60
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ProductLine.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ProductLine
+{
+  #keys: '3[414996.1.67010068][414996.1.67010067][414996.1.67010069]'
+  Description: '浜х嚎'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftDate.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftDate.qbl
new file mode 100644
index 0000000..534f432
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftDate
+{
+  #keys: '3[414996.1.67010092][414996.1.67010091][414996.1.67010093]'
+  Description: '鐝鏃ユ湡'
+  ValueType: Date
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftEndDate.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftEndDate.qbl
new file mode 100644
index 0000000..f1bdbde
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftEndDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftEndDate
+{
+  #keys: '3[414996.1.67010149][414996.1.67010148][414996.1.67010150]'
+  Description: '鐝鐨勭粨鏉熸椂闂�'
+  ValueType: DateTime
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftName.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftName.qbl
new file mode 100644
index 0000000..547534f
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftName
+{
+  #keys: '3[414996.1.67010106][414996.1.67010105][414996.1.67010107]'
+  Description: '鐝鍚嶇О'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftStartDate.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftStartDate.qbl
new file mode 100644
index 0000000..6ee07d4
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftStartDate.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftStartDate
+{
+  #keys: '3[414996.1.67010139][414996.1.67010138][414996.1.67010140]'
+  Description: '鐝璧峰鏃堕棿'
+  ValueType: DateTime
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftVolume.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftVolume.qbl
new file mode 100644
index 0000000..520c3d9
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_ShiftVolume.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShiftVolume
+{
+  #keys: '3[414996.1.67010126][414996.1.67010125][414996.1.67010127]'
+  Description: '鍗曠彮娆′骇閲�'
+  ValueType: Real
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_SingleShiftName.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_SingleShiftName.qbl
new file mode 100644
index 0000000..a426d36
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_SingleShiftName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute SingleShiftName
+{
+  #keys: '3[414996.1.67010116][414996.1.67010115][414996.1.67010117]'
+  Description: '鍗曠彮娆″悕绉�'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_Tips.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_Tips.qbl
new file mode 100644
index 0000000..c07c7a2
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_Tips.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Tips
+{
+  #keys: '3[414996.1.67010083][414996.1.67010082][414996.1.67010084]'
+  Description: '澶囨敞'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_VersionFlag.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_VersionFlag.qbl
new file mode 100644
index 0000000..223b18b
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_VersionFlag.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute VersionFlag
+{
+  #keys: '3[414996.1.67010071][414996.1.67010070][414996.1.67010072]'
+  Description: '鐗堟湰鏍囪瘑'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_VersionName.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_VersionName.qbl
new file mode 100644
index 0000000..010fe97
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Attribute_VersionName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute VersionName
+{
+  #keys: '3[414996.1.67010080][414996.1.67010079][414996.1.67010081]'
+  Description: '鐗堟湰鍚嶇О'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_Fac.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_Fac.qbl
new file mode 100644
index 0000000..386d17b
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_Fac.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Fac
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_FactoryName.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_FactoryName.qbl
new file mode 100644
index 0000000..2ff5775
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_FactoryName.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: FactoryName
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_ID.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_ID.qbl
new file mode 100644
index 0000000..049abc0
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_ID.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: ID
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_ProductLine.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_ProductLine.qbl
new file mode 100644
index 0000000..498dbce
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_ProductLine.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: ProductLine
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_Tips.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_Tips.qbl
new file mode 100644
index 0000000..c3f3595
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_Tips.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: Tips
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_VersionFlag.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_VersionFlag.qbl
new file mode 100644
index 0000000..2b57c4f
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_VersionFlag.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: VersionFlag
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_VersionName.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_VersionName.qbl
new file mode 100644
index 0000000..34a947a
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/DefaultValue_VersionName.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+DefaultValue
+{
+  TargetAttribute: VersionName
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/Function_CalcFac.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/Function_CalcFac.qbl
new file mode 100644
index 0000000..a20b0a3
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/Function_CalcFac.qbl
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcFac
+{
+  TextBody:
+  [*
+    // Akari Aug-21-2024 (created)
+    value := "";
+    if( this.FactoryName() = "澶ц繛宸ュ巶" ){
+      value := "DL";
+    }else if( this.FactoryName() = "闀挎槬宸ュ巶"){
+      value := "CC";
+    }
+    
+    this.Fac( value );
+  *]
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_Dispatch.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_Dispatch.qbl
new file mode 100644
index 0000000..a5374a2
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_Dispatch.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Dispatch
+{
+  TextBody:
+  [*
+    // Akari Sep-4-2024 (created)
+  *]
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/TypeIndex_IDTypeIndex.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/TypeIndex_IDTypeIndex.qbl
new file mode 100644
index 0000000..18969ed
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/TypeIndex_IDTypeIndex.qbl
@@ -0,0 +1,12 @@
+Quintiq file version 2.0
+#parent: #root
+TypeIndex IDTypeIndex
+{
+  Attributes:
+  [
+    TypeIndexAttribute
+    {
+      ModelElement: ID
+    }
+  ]
+}
diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/_ROOT_Type_DispatchShiftSchedulingInformation.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/_ROOT_Type_DispatchShiftSchedulingInformation.qbl
new file mode 100644
index 0000000..34cb1a1
--- /dev/null
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/_ROOT_Type_DispatchShiftSchedulingInformation.qbl
@@ -0,0 +1,10 @@
+Quintiq file version 2.0
+#root
+#parent: #DomainModel
+Type DispatchShiftSchedulingInformation
+{
+  #keys: '5[414996.1.67010064][414996.1.67010062][0.0.0][414996.1.67010063][414996.1.67010065]'
+  BaseType: Object
+  Description: '涓嬪彂鐝鎺掍骇淇℃伅'
+  StructuredName: 'DispatchShiftSchedulingInformations'
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCustomerDemandPPAIDS/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCustomerDemandPPAIDS/Method_OnOK.def
index b0cee42..a9043c1 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCustomerDemandPPAIDS/Method_OnOK.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCustomerDemandPPAIDS/Method_OnOK.def
@@ -11,7 +11,7 @@
     currentuser  := QuintiqUser::CurrentUser().DisplayName();
     isactive     := ifexpr( rbgVersionFlag.BoundValue() = "true", true, false );
     if( efInterfacename.Text() = Translations::InterfaceDataset_CustomerDemandPPAIDS_Name() ){//瀹㈡埛闇�姹�
-      CustomerDemandPPAIDS::GenerateData( MacroPlan, RecycleBin, Archive, InterfaceDataset, currentuser, isactive );
+      CustomerDemandPPAIDS::GenerateData( MacroPlan, InterfaceDataset, currentuser, isactive );
     }
     if( efInterfacename.Text() = Translations::InterfaceDataset_AssemblyOnlinePlanPPPSPush_Name()){//瑁呴厤涓婄嚎
       AssemblyOnlinePlanPPPSPush::GenerateData( MacroPlan, InterfaceDataset, currentuser, isactive );

--
Gitblit v1.9.3