From 4bb71bc32df6a2ce847b5dc1853dea732e2d0253 Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期三, 23 十月 2024 17:53:19 +0800
Subject: [PATCH] 财务产量报表/销量报表导入bug

---
 _Main/BL/Type_FinancialSalesSource/Method_AfterImport.qbl |   61 ++++++++++++++----------------
 1 files changed, 28 insertions(+), 33 deletions(-)

diff --git a/_Main/BL/Type_FinancialSalesSource/Method_AfterImport.qbl b/_Main/BL/Type_FinancialSalesSource/Method_AfterImport.qbl
index 43dbe28..ba14ab4 100644
--- a/_Main/BL/Type_FinancialSalesSource/Method_AfterImport.qbl
+++ b/_Main/BL/Type_FinancialSalesSource/Method_AfterImport.qbl
@@ -5,7 +5,7 @@
   TextBody:
   [*
     // 鐢勫叞楦� Jun-24-2024 (created)
-    allunit                 := FinancialProductionReport::GetDefaultAllUnit();
+    //allunit                 := FinancialProductionReport::GetDefaultAllUnit();
     table                   := selectobject( this.MacroPlan(), FinancialSalesSource.FinancialSalesReport, table, not table.IsImport() and not table.IsShow() );
     yearday                 := this.MacroPlan().StartOfPlanning().StartOfYear();
     beforeyearday           := ( yearday - Duration::Days( 1 ) ).Date();
@@ -25,52 +25,47 @@
         if( isnull( unitrow ) ){
           unitrow           := table.FinancialSalesRow( relnew, Name := product.Value(), Unit := unit.Value() );
         }
-        allrow              := selectobject( table, FinancialSalesRow, allrow, allrow.Name() = product.Value() and allrow.Unit() = allunit );
-        if( isnull( unitrow ) ){
-          allrow            := table.FinancialSalesRow( relnew, Name := product.Value(), Unit := allunit );
-        }
+    //    allrow              := selectobject( table, FinancialSalesRow, allrow, allrow.Name() = product.Value() and allrow.Unit() = allunit );
+    //    if( isnull( unitrow ) ){
+    //      allrow            := table.FinancialSalesRow( relnew, Name := product.Value(), Unit := allunit );
+    //    }
         
-        traverse( row, FinancialSalesCell, cell, cell.FinancialSalesColumn() <> productcolumn and cell.FinancialSalesColumn() <> unitcolumn and cnv2.Convert( cell.FinancialSalesColumn().Name() ) <> beforeyearday  ){
+        traverse( row, FinancialSalesCell, cell, cell.Value() <> '0' and 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" )
-          
+          periodname        := period.Format( "M2/D2/Y" );
+          quantity          := [Real]cell.Value()
+          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();
+          }
           tablecolumn       := construct( FinancialSalesColumn );
           //鑾峰彇琚鍏ユ姤琛ㄧ殑鏃ユ湡鍒�
-          tablecolumn     := selectobject( table, FinancialSalesColumn, fscolumn, not fscolumn.IsDay() and fscolumn.Name() = periodname );
+          tablecolumn       := selectobject( table, FinancialSalesColumn, fscolumn, not fscolumn.IsDay() and fscolumn.Name() = periodname );
           if( isnull( tablecolumn ) ){
-            tablecolumn   := table.FinancialSalesColumn( relnew, Name := periodname, Period := yearday.Date() );
+            tablecolumn     := table.FinancialSalesColumn( relnew, Name := periodname, Period := yearday.Date() );
           }
           unitcell := selectobject( unitrow, FinancialSalesCell, unitcell, unitcell.FinancialSalesColumn() = tablecolumn );
           if( isnull( unitcell ) ){
             unitcell        := tablecolumn.FinancialSalesCell( relnew, Value := cell.Value() );
             unitrow.FinancialSalesCell( relinsert, unitcell );
           }else{
-            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]quantity ) );
-                unitcell.IsUpdate( true );
-              }
+            if( [Real]unitcell.Value() <> quantity ){
+              unitcell.Value( [String]( [Number]quantity ) );
+              unitcell.IsUpdate( true );
             }
           }
-          allcell  := selectobject( allrow, FinancialSalesCell, allcell, allcell.FinancialSalesColumn() = tablecolumn  );
-          if( isnull( unitcell ) ){
-            allcell         := tablecolumn.FinancialSalesCell( relnew, Value := cell.Value() );
-            allrow.FinancialSalesCell( relinsert, allcell );
-          }else{
-            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]quantity ) );
-                allcell.IsUpdate( true );
-              }
-            }
-          }
+    //      allcell  := selectobject( allrow, FinancialSalesCell, allcell, allcell.FinancialSalesColumn() = tablecolumn  );
+    //      if( isnull( allcell ) ){
+    //        allcell         := tablecolumn.FinancialSalesCell( relnew, Value := cell.Value() );
+    //        allrow.FinancialSalesCell( relinsert, allcell );
+    //      }else{
+    //        if( [Real]allcell.Value() <> quantity ){
+    //          allcell.Value( [String]( [Number]quantity ) );
+    //          allcell.IsUpdate( true );
+    //        }
+    //      }
         }
       }
     }

--
Gitblit v1.9.3