From 9efbae46f8a30801a7285bb668526fc661be42e7 Mon Sep 17 00:00:00 2001
From: Administrator <renhui.hao@capgemini.com>
Date: 星期日, 08 十月 2023 21:12:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'refs/remotes/origin/dev'

---
 _Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl |   31 ++++++++++++++++---------------
 1 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl
index 9a458dd..f44304e 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl
@@ -10,24 +10,22 @@
   [*
     // Administrator Aug-21-2023 (created)
     // list to deal
-    listtodeal := construct( structured[MappingOperation] );
+    listtodeal := construct( structured[Global_MappingOperation] );
     
     if( isnull( businesstypes ) or businesstypes.Size() = 0 ) {
-        listtodeal := selectset( this, MappingOperation, item, true );
+        listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, true );
     } else {
         organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businesstypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
-        listtodeal := selectset( this, 
-                                 MappingOperation, 
+        listtodeal := selectset( globalOTDTable, Global_MappingOperation, 
                                  item, 
                                  ( businesstypes.Find( item.BusinessType() ) <> -1 ) and 
                                  ( organcodelist.Find( item.OrganCode() ) >= 0 ) );
     }
     
     // Get the list to deal with max sequence number
-    listtodealwithmaxsn := construct( structured[MappingOperation] );
+    listtodealwithmaxsn := construct( structured[Global_MappingOperation] );
     traverse( listtodeal, Elements, item ){
-      maxsn := maxselect( this, 
-                          MappingOperation, 
+      maxsn := maxselect( globalOTDTable, Global_MappingOperation, 
                           moperation, 
                           moperation.OrganCode() = item.OrganCode(), 
                           moperation.ProductID() = item.ProductID(), 
@@ -47,7 +45,7 @@
       if( count - [Number](count/1000) * 1000 = 0 or count = totalcount ){
         info( "Now is dealing with the " + count.AsQUILL() + "OperationCost " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" );
         }
-      id := item.OrganCode() + "_" + item.ProductID() + "_" + item.ProcessSection();
+      id := item.OrganCode() + "_" + item.ProductID() + "_" + item.ProcessSection()+"_" + [String]item.SequenceNumber();
       if( guard( item.Line(), "" ).Length() > 0 ) {
           id := id + "_" + item.Line();
         }
@@ -56,16 +54,19 @@
       isfromdb := false;
       existoperationcost := OperationCost::FindOperationCostTypeIndex( id );
       if( isnull( existoperationcost ) ){
-        connecteditem := select( this, 
-                                 MappingOperationCost, 
+        connecteditem := select( globalOTDTable, 
+                                 Global_MappingOperationCost,
                                  moperationcost, 
                                  moperationcost.OrgCode() = item.OrganCode(), 
                                  moperationcost.ProductID() = item.ProductID() );
-        cost := connecteditem.Cost();
-        lengthoftime := connecteditem.LengthOfTime();
-        start := connecteditem.Start();
-        timeunit := connecteditem.TimeUnit();
-        OperationCost::Create( id, operation, account, "Volume", start, timeunit, lengthoftime, cost, isfromdb );
+        if( not isnull( connecteditem)){
+            cost := connecteditem.Cost();
+            lengthoftime := connecteditem.LengthOfTime();
+            start := connecteditem.Start();
+            timeunit := connecteditem.TimeUnit();
+            OperationCost::Create( id, operation, account, "Volume", start, timeunit, lengthoftime, cost, isfromdb );
+          }
+        
         }
       }
   *]

--
Gitblit v1.9.3