From f259326e9055b18b369a14d4b49e6e9af37ae749 Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期三, 11 十二月 2024 10:48:13 +0800
Subject: [PATCH] 实际发运数据报表调整

---
 _Main/BL/Type_ShippingActualRow/Attribute_ShowName.qbl                                       |    8 ++++
 _Main/BL/Type_ShippingActualRow/Function_CalcShowName.qbl                                    |   16 ++++++++
 _Main/UI/MacroPlannerWebApp/Component_FormShippingActualData/Component_MatrixEditorTable.def |    2 
 _Main/BL/Type_ShippingActualData/Method_SyncTable.qbl                                        |    6 ++-
 _Main/BL/Type_ShippingActualData/StaticMethod_Synchronize.qbl                                |   12 +++++-
 _Main/BL/Type_ShippingActualRow/Attribute_Fac.qbl                                            |    8 ++++
 _Main/BL/Type_ShippingActualData/StaticMethod_Sync.qbl                                       |   29 ++++++++++++++
 7 files changed, 76 insertions(+), 5 deletions(-)

diff --git a/_Main/BL/Type_ShippingActualData/Method_SyncTable.qbl b/_Main/BL/Type_ShippingActualData/Method_SyncTable.qbl
index 9bd5dbd..280e2f5 100644
--- a/_Main/BL/Type_ShippingActualData/Method_SyncTable.qbl
+++ b/_Main/BL/Type_ShippingActualData/Method_SyncTable.qbl
@@ -8,7 +8,9 @@
   [*
     // 鐢勫叞楦� Nov-27-2024 (created)
     column                := selectobject( owner, ShippingActualColumn, column, column.StartDate() = this.DDay() );
-    cell                  := selectobject( column, ShippingActualCell, cell, cell.ShippingActualRow().Name() = this.FourCode() );
-    cell.Quantity( this.Quantity() );
+    cells                 := selectset( column, ShippingActualCell, cell, cell.ShippingActualRow().Name() = this.FourCode() );
+    traverse( cells, Elements, e ){
+    e.Quantity( this.Quantity() );
+    }
   *]
 }
diff --git a/_Main/BL/Type_ShippingActualData/StaticMethod_Sync.qbl b/_Main/BL/Type_ShippingActualData/StaticMethod_Sync.qbl
new file mode 100644
index 0000000..b45bc3b
--- /dev/null
+++ b/_Main/BL/Type_ShippingActualData/StaticMethod_Sync.qbl
@@ -0,0 +1,29 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Sync (
+  InterfaceDataset owner
+)
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Dec-11-2024 (created)
+    owner.ShippingActualRow( relflush );
+    traverse( owner, InterfaceLoginfo.ShippingActualData, data ){
+      column        := selectobject( owner, ShippingActualColumn, column, column.StartDate() = data.DDay() );
+      row           := selectobject( owner, ShippingActualRow, row, row.Name() = data.FourCode() and row.Fac() = data.Fac() );
+      if( isnull( row ) ){
+        row          := owner.ShippingActualRow( relnew, Name := data.FourCode(), Fac := data.Fac() );
+      }
+      cell := row.ShippingActualCell( relnew, Quantity := data.Quantity() );
+      column.ShippingActualCell( relinsert, cell );
+    }
+    traverse( owner, ShippingActualColumn, sacolumn ){
+      traverse( owner, ShippingActualRow, row ) {
+        if( not exists( row, ShippingActualCell, cell, cell.ShippingActualColumn() = sacolumn ) ){
+          cell := row.ShippingActualCell( relnew, Quantity := 0 );
+          sacolumn.ShippingActualCell( relinsert, cell );
+        }
+      }
+    }
+  *]
+}
diff --git a/_Main/BL/Type_ShippingActualData/StaticMethod_Synchronize.qbl b/_Main/BL/Type_ShippingActualData/StaticMethod_Synchronize.qbl
index d6be535..c1b8ee6 100644
--- a/_Main/BL/Type_ShippingActualData/StaticMethod_Synchronize.qbl
+++ b/_Main/BL/Type_ShippingActualData/StaticMethod_Synchronize.qbl
@@ -53,15 +53,23 @@
       }
       beforerowsize := owner.ShippingActualRow( relsize );
       traverse( sadatalist, Elements, e ){
-        row := selectobject( owner, ShippingActualRow, row, row.Name() = e.FourCode() );
+        row := selectobject( owner, ShippingActualRow, row, row.Name() = e.FourCode() and row.Fac() = e.Fac() );
         if( isnull( row ) ){
-          row := owner.ShippingActualRow( relnew, Name := e.FourCode() );
+          row := owner.ShippingActualRow( relnew, Name := e.FourCode(), Fac := e.Fac() );
         }
         
         cell := row.ShippingActualCell( relnew, Quantity := e.Quantity() );
         column.ShippingActualCell( relinsert, cell );
       }
       if( beforerowsize <> owner.ShippingActualRow( relsize ) ){
+        traverse( owner, ShippingActualColumn, sacolumn ){
+          traverse( owner, ShippingActualRow, row ) {
+            if( not exists( row, ShippingActualCell, cell, cell.ShippingActualColumn() = sacolumn ) ){
+              cell := row.ShippingActualCell( relnew, Quantity := 0 );
+              sacolumn.ShippingActualCell( relinsert, cell );
+            }
+          }
+        }
         rows := selectsortedset( owner, ShippingActualRow, row, row.Name() );
         nr    := 0;
         traverse( rows, Elements, e ){
diff --git a/_Main/BL/Type_ShippingActualRow/Attribute_Fac.qbl b/_Main/BL/Type_ShippingActualRow/Attribute_Fac.qbl
new file mode 100644
index 0000000..4df0f8b
--- /dev/null
+++ b/_Main/BL/Type_ShippingActualRow/Attribute_Fac.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute Fac
+{
+  #keys: '3[415136.0.1361530035][415136.0.1361530034][415136.0.1361530036]'
+  Description: '宸ュ巶'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ShippingActualRow/Attribute_ShowName.qbl b/_Main/BL/Type_ShippingActualRow/Attribute_ShowName.qbl
new file mode 100644
index 0000000..153b282
--- /dev/null
+++ b/_Main/BL/Type_ShippingActualRow/Attribute_ShowName.qbl
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+#parent: #root
+Attribute ShowName
+{
+  #keys: '3[415136.0.1361530045][415136.0.1361530044][415136.0.1361530046]'
+  Description: '鏄剧ず鍚嶇О'
+  ValueType: String
+}
diff --git a/_Main/BL/Type_ShippingActualRow/Function_CalcShowName.qbl b/_Main/BL/Type_ShippingActualRow/Function_CalcShowName.qbl
new file mode 100644
index 0000000..17bc5c0
--- /dev/null
+++ b/_Main/BL/Type_ShippingActualRow/Function_CalcShowName.qbl
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: #root
+Function CalcShowName
+{
+  TextBody:
+  [*
+    // 鐢勫叞楦� Dec-11-2024 (created)
+    
+    value := this.Name();
+    if( this.Fac() <> '' ){
+      value := this.Fac().Concat( '_' ).Concat( this.Name() );
+    }
+    
+    this.ShowName( value );
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormShippingActualData/Component_MatrixEditorTable.def b/_Main/UI/MacroPlannerWebApp/Component_FormShippingActualData/Component_MatrixEditorTable.def
index 82d2baf..d4f6cbb 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormShippingActualData/Component_MatrixEditorTable.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormShippingActualData/Component_MatrixEditorTable.def
@@ -53,7 +53,7 @@
       ]
       Properties:
       [
-        Legend: 'Name'
+        Legend: 'ShowName'
         SortCriteria: 'RowNr'
         Taborder: 1
       ]

--
Gitblit v1.9.3