From acffa3d576342b2d24001d8410d53e6972eeb9e5 Mon Sep 17 00:00:00 2001
From: xiaoding721 <33130084+xiaoding721@users.noreply.github.com>
Date: 星期三, 16 十月 2024 19:16:28 +0800
Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev

---
 _Main/BL/Type_FinancialSalesSource/Method_AfterImport.qbl |   41 ++++++++++++++++++++++-------------------
 1 files changed, 22 insertions(+), 19 deletions(-)

diff --git a/_Main/BL/Type_FinancialSalesSource/Method_AfterImport.qbl b/_Main/BL/Type_FinancialSalesSource/Method_AfterImport.qbl
index bfd3c4c..36d1094 100644
--- a/_Main/BL/Type_FinancialSalesSource/Method_AfterImport.qbl
+++ b/_Main/BL/Type_FinancialSalesSource/Method_AfterImport.qbl
@@ -30,32 +30,30 @@
           allrow            := table.FinancialSalesRow( relnew, Name := product.Value(), Unit := allunit );
         }
         
-        traverse( row, FinancialSalesCell, cell, cell.FinancialSalesColumn() <> productcolumn and cell.FinancialSalesColumn() <> unitcolumn ){
+        traverse( row, FinancialSalesCell, cell, cell.FinancialSalesColumn() <> productcolumn and cell.FinancialSalesColumn() <> unitcolumn and cnv2.Convert( cell.FinancialSalesColumn().Name() ) <> beforeyearday  ){
           column            := cell.FinancialSalesColumn();
           period            := cnv2.Convert( column.Name() )
+          periodname        := period.Format( "M2/D2/Y" )
           
           tablecolumn       := construct( FinancialSalesColumn );
-          if( period = beforeyearday ){
-            periodname      := yearday.Format( "M2/D2/Y" );
-            //鑾峰彇琚鍏ユ姤琛ㄧ殑鏃ユ湡鍒�
-            tablecolumn     := selectobject( table, FinancialSalesColumn, fscolumn, not fscolumn.IsDay() and fscolumn.Name() = periodname );
-            if( isnull( tablecolumn ) ){
-              tablecolumn   := table.FinancialSalesColumn( relnew, Name := periodname, Period := yearday.Date() );
-            }
-          }else{
-            tablecolumn     := selectobject( table, FinancialSalesColumn, fscolumn, not fscolumn.IsDay() and fscolumn.Name() = column.Name() );
-            if( isnull( tablecolumn ) ){
-              tablecolumn   := table.FinancialSalesColumn( relnew, Name := column.Name(), Period := cnv2.Convert( column.Name() ) );
-            }
+          //鑾峰彇琚鍏ユ姤琛ㄧ殑鏃ユ湡鍒�
+          tablecolumn     := selectobject( table, FinancialSalesColumn, fscolumn, not fscolumn.IsDay() and fscolumn.Name() = periodname );
+          if( isnull( tablecolumn ) ){
+            tablecolumn   := table.FinancialSalesColumn( relnew, Name := periodname, Period := yearday.Date() );
           }
           unitcell := selectobject( unitrow, FinancialSalesCell, unitcell, unitcell.FinancialSalesColumn().Name() = column.Name() );
           if( isnull( unitcell ) ){
             unitcell        := tablecolumn.FinancialSalesCell( relnew, Value := cell.Value() );
             unitrow.FinancialSalesCell( relinsert, unitcell );
           }else{
-            if( unitcell.Value() <> cell.Value() ){
-              unitcell.Value( cell.Value() );
-              unitcell.IsUpdate( true );
+            previouscolumn  := cell.FinancialSalesColumn().PreviousColumn();
+            if( period = yearday.Date() and not isnull( previouscolumn ) and beforeyearday = cnv2.Convert( previouscolumn.Name() ) ){
+              previouscell  := selectobject( row, FinancialSalesCell, previouscell, previouscell.FinancialSalesColumn() = previouscolumn );
+              quantity      := [Real]cell.Value() + [Real]previouscell.Value();
+              if( [Real]unitcell.Value() <> quantity ){
+                unitcell.Value( [String]( [Number]cell.Value() ) );
+                unitcell.IsUpdate( true );
+              }
             }
           }
           allcell  := selectobject( allrow, FinancialSalesCell, allcell, allcell.FinancialSalesColumn().Name() = column.Name() );
@@ -63,9 +61,14 @@
             allcell         := tablecolumn.FinancialSalesCell( relnew, Value := cell.Value() );
             allrow.FinancialSalesCell( relinsert, allcell );
           }else{
-            if( allcell.Value() <> cell.Value() ){
-              allcell.Value( cell.Value() );
-              allcell.IsUpdate( true );
+            previouscolumn  := cell.FinancialSalesColumn().PreviousColumn();
+            if( period = yearday.Date() and not isnull( previouscolumn ) and beforeyearday = cnv2.Convert( previouscolumn.Name() ) ){
+              previouscell  := selectobject( row, FinancialSalesCell, previouscell, previouscell.FinancialSalesColumn() = previouscolumn );
+              quantity      := [Real]cell.Value() + [Real]previouscell.Value();
+              if( [Real]allcell.Value() <> quantity ){
+                allcell.Value( [String]( [Number]cell.Value() ) );
+                allcell.IsUpdate( true );
+              }
             }
           }
         }

--
Gitblit v1.9.3