From bfd6ee30d6c61b606bfefad03fc4c4ee3056a501 Mon Sep 17 00:00:00 2001
From: yanyuan <yuan.yan@capgemini.com>
Date: 星期二, 05 九月 2023 15:59:43 +0800
Subject: [PATCH] Fix Create&Update

---
 _Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl |  150 +++++++++++++++++--------------------------------
 1 files changed, 52 insertions(+), 98 deletions(-)

diff --git a/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl
index 47e25d4..fa613b6 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl
@@ -15,131 +15,85 @@
         listtodeal := selectset( this, MappingOperation, item, true );
     } else {
         listtodeal := selectset( this, MappingOperation, item, 
-    //                             businesstypes.Find( item.BusinessType() ) <> -1, 
                                  businesstypes.Difference( businesstypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0
                                   );
     }
     
     //Set the Default values
     unitofmeasurename := "PCS";
-    currencyid := "CNY";
-    startdate := Date::Date( 1900, 1, 1 );
-    enddate := Date::Date( 9999, 12, 31 );
     capacitytype := "Infinite";
     
     // Get the root data
-    existroot := Unit::FindById( this, "澶╅┈闆嗗洟" );
-    if( isnull( existroot ) ){
-      this.Unit( relnew, 
-                 ID := "澶╅┈闆嗗洟", 
-                 Name := "澶╅┈闆嗗洟", 
-                 UnitOfMeasureName := unitofmeasurename, 
-                 CurrencyID := currencyid, 
-                 StartDate := startdate, 
-                 EndDate := enddate, 
-                 CapacityType := capacitytype );
-     }
+    Unit::CreateOrUpdate( this, 
+                          "澶╅┈闆嗗洟", 
+                          "澶╅┈闆嗗洟", 
+                          "", 
+                          capacitytype, 
+                          unitofmeasurename );
     
     // Get the sub root data
-    existsubroot := Unit::FindById( this, "鐢熶骇" );
-    if( isnull( existsubroot ) ){
-      this.Unit( relnew, ID := "鐢熶骇", 
-                 Name := "鐢熶骇", 
-                 ParentUnitID := "澶╅┈闆嗗洟", 
-                 UnitOfMeasureName := unitofmeasurename, 
-                 CurrencyID := currencyid, 
-                 StartDate := startdate, 
-                 EndDate := enddate, 
-                 CapacityType := capacitytype );
-     }
+    Unit::CreateOrUpdate( this, 
+                          "鐢熶骇", 
+                          "鐢熶骇", 
+                          "澶╅┈闆嗗洟", 
+                          capacitytype, 
+                          unitofmeasurename );
     
-    existsubroot := Unit::FindById( this, "渚涘簲鍟�" );
-    if( isnull( existsubroot ) ){
-      this.Unit( relnew, ID := "渚涘簲鍟�", 
-                 Name := "渚涘簲鍟�", 
-                 ParentUnitID := "澶╅┈闆嗗洟",
-                 UnitOfMeasureName := unitofmeasurename, 
-                 CurrencyID := currencyid, 
-                 StartDate := startdate, 
-                 EndDate := enddate, 
-                 CapacityType := capacitytype );
-     }
+    Unit::CreateOrUpdate( this, 
+                          "渚涘簲鍟�", 
+                          "渚涘簲鍟�", 
+                          "澶╅┈闆嗗洟", 
+                          capacitytype, 
+                          unitofmeasurename );
     
-    existsubroot := Unit::FindById( this, "鏁磋溅杩愯緭" );
-    if( isnull( existsubroot ) ){
-      this.Unit( relnew, ID := "鏁磋溅杩愯緭", 
-                 Name := "鏁磋溅杩愯緭", 
-                 ParentUnitID := "澶╅┈闆嗗洟", 
-                 UnitOfMeasureName := unitofmeasurename, 
-                 CurrencyID := currencyid, 
-                 StartDate := startdate, 
-                 EndDate := enddate, 
-                 CapacityType := capacitytype );
-     }
+    Unit::CreateOrUpdate( this, 
+                          "鏁磋溅杩愯緭", 
+                          "鏁磋溅杩愯緭", 
+                          "澶╅┈闆嗗洟", 
+                          capacitytype, 
+                          unitofmeasurename );
     
     // Get the unit list
     traverse( listtodeal, Elements, item){
-      //Get the first level unit
-      existfirstlevelunit := Unit::FindById( this, item.OrganCode() );
-    //  info( item.OrganCode().AsQUILL() );
       OrgName := item.OrganName();
       if( OrgName = ''){
         OrgName := item.OrganCode();
       }
-      if( isnull( existfirstlevelunit ) ){
-        this.Unit( relnew, ID := item.OrganCode(), 
-    //               Name := item.OrganName(), 
-                   Name :=OrgName, 
-                   ParentUnitID := "鐢熶骇",  
-                   UnitOfMeasureName := unitofmeasurename, 
-                   CurrencyID := currencyid, 
-                   StartDate := startdate, 
-                   EndDate := enddate, 
-                   CapacityType := capacitytype );
-        }
+      //Get the first level unit
+      Unit::CreateOrUpdate( this, 
+                            item.OrganCode(), 
+                            OrgName, 
+                            "鐢熶骇", 
+                            capacitytype, 
+                            unitofmeasurename );
+                           
       //Get the second level unit
       secondlevelid := item.OrganCode() + "_" + item.PlantName();
-    //  info( secondlevelid.AsQUILL() );
-      existsecondlevelunit := Unit::FindById( this, secondlevelid );
-      if( isnull( existsecondlevelunit ) ){
-        this.Unit( relnew, ID := secondlevelid, 
-                   Name := secondlevelid, 
-                   ParentUnitID := item.OrganCode(), 
-                   UnitOfMeasureName := unitofmeasurename, 
-                   CurrencyID := currencyid, 
-                   StartDate := startdate, 
-                   EndDate := enddate, 
-                   CapacityType := capacitytype );
-        }
+      Unit::CreateOrUpdate( this, 
+                            secondlevelid, 
+                            secondlevelid, 
+                            item.OrganCode(), 
+                            capacitytype, 
+                            unitofmeasurename );
+        
       //Get the third level unit
       thirdlevelid := secondlevelid + "_" + item.ProcessSection();
-    //  info( thirdlevelid.AsQUILL() );
-      existthirdlevelunit := Unit::FindById( this, thirdlevelid );
-      if( isnull( existthirdlevelunit ) ){
-        this.Unit( relnew, ID := thirdlevelid, 
-                   Name := thirdlevelid, 
-                   ParentUnitID := secondlevelid, 
-                   CapacityType := "Time", 
-                   UnitOfMeasureName := item.UnitOfMeasureName(), 
-                   CurrencyID := currencyid, 
-                   StartDate := startdate, 
-                   EndDate := enddate );
-        }
+      Unit::CreateOrUpdate( this, 
+                            thirdlevelid, 
+                            thirdlevelid, 
+                            secondlevelid, 
+                            "Time", 
+                            item.UnitOfMeasureName() );
+                   
       //Get the last level unit
       if( item.Line()<>"" ){
         lastlevelid := thirdlevelid + "_" + item.Line();
-    //    info( lastlevelid.AsQUILL() );
-        existlastlevelunit := Unit::FindById( this, lastlevelid );
-        if( isnull( existlastlevelunit ) ){
-          this.Unit( relnew, ID := lastlevelid, 
-                     Name := lastlevelid, 
-                     ParentUnitID := thirdlevelid, 
-                     CapacityType := "Time", 
-                     UnitOfMeasureName := item.UnitOfMeasureName(),
-                     CurrencyID := currencyid, 
-                     StartDate := startdate, 
-                     EndDate := enddate );
-        }
+        Unit::CreateOrUpdate( this, 
+                              lastlevelid, 
+                              lastlevelid, 
+                              thirdlevelid, 
+                              "Time", 
+                              item.UnitOfMeasureName() );
       }
       }
   *]

--
Gitblit v1.9.3