From 3eef7fe58684ad3e12f23af24ff3442a0c3bceda Mon Sep 17 00:00:00 2001
From: yanweiyuan3 <yanweiyuan3@gmail.com>
Date: 星期四, 12 十月 2023 17:31:34 +0800
Subject: [PATCH] Add Api trans to MacroPlan

---
 _Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl  |   45 +++++++
 _Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl          |   60 ++++++++++
 _Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl                 |   52 +++-----
 _Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl |   45 +++++++
 _Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl      |   45 +++++++
 _Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl             |   77 ++++++++++++
 6 files changed, 294 insertions(+), 30 deletions(-)

diff --git "a/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl" "b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl"
index 6d84c07..12a5633 100644
--- "a/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl"
+++ "b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl"
@@ -47,6 +47,8 @@
       organcodelist := selectvalues( this, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
       }
     
+    macroPlan.InitialUnitAndStockingPoint();
+    
     if ( isUnitOfMeasure_MP ) {
       Global_MappingUnitOfMeasure_MP::SynchronizeMacroPlanData( this, macroPlan );
     }
@@ -106,35 +108,25 @@
     //if ( isCustomerGrade ) {
     //  Global_MappingCustomerGrade::SynchronizeInterfaceData( this, executionUser, "GlobalOTDTable_CustomerGrade" );
     //}
-    //
-    //if ( isStockingPoint_MP ) {
-    //  this.Global_MappingStockingPoint_MP( relflush );
-    //  Global_BrokerExecuteLog::CreateInOperation( this, "StockingPoint_MP", executionUser );
-    ////  this -> Global_MappingStockingPoint_MP::CreateByAPI() -> Exception() -> Global_MappingStockingPoint_MP::OnException( this );
-    //}
-    //
-    //if ( isCurrency_MP ) {
-    //  this.Global_MappingCurrency_MP( relflush );
-    //  Global_BrokerExecuteLog::CreateInOperation( this, "Currency_MP", executionUser );
-    ////  this -> Global_MappingCurrency_MP::CreateByAPI() -> Exception() -> Global_MappingCurrency_MP::OnException( this );
-    //}
-    //
-    //if ( isCurrencyRate_MP ) {
-    //  this.Global_MappingCurrencyRate_MP( relflush );
-    //  Global_BrokerExecuteLog::CreateInOperation( this, "CurrencyRate_MP", executionUser );
-    ////  this -> Global_MappingCurrencyRate_MP::CreateByAPI() -> Exception() -> Global_MappingCurrencyRate_MP::OnException( this );
-    //}
-    //
-    //if ( isLane ) {
-    //  this.Global_MappingLane( relflush );
-    //  Global_BrokerExecuteLog::CreateInOperation( this, "Lane", executionUser );
-    ////  this -> Global_MappingLane::CreateByAPI() -> Exception() -> Global_MappingLane::OnException( this );
-    //}
-    //
-    //if ( isLaneLeg ) {
-    //  this.Global_MappingLaneLeg( relflush );
-    //  Global_BrokerExecuteLog::CreateInOperation( this, "LaneLeg", executionUser );
-    ////  this -> Global_MappingLaneLeg::CreateByAPI() -> Exception() -> Global_MappingLaneLeg::OnException( this );
-    //}
+    
+    if ( isStockingPoint_MP ) {
+      Global_MappingStockingPoint_MP::SynchronizeMacroPlanData( this, macroPlan, executionUser );
+    }
+    
+    if ( isCurrency_MP ) {
+      Global_MappingCurrency_MP::SynchronizeMacroPlanData( this, macroPlan, executionUser );
+    }
+    
+    if ( isCurrencyRate_MP ) {
+      Global_MappingCurrencyRate_MP::SynchronizeMacroPlanData( this, macroPlan, executionUser );
+    }
+    
+    if ( isLane ) {
+      Global_MappingLane::SynchronizeMacroPlanData( this, macroPlan, executionUser );
+    }
+    
+    if ( isLaneLeg ) {
+      Global_MappingLaneLeg::SynchronizeMacroPlanData( this, macroPlan, executionUser );
+    }
   *]
 }
diff --git a/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl
new file mode 100644
index 0000000..5913ebe
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl
@@ -0,0 +1,45 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeMacroPlanData (
+  GlobalOTDTable globalOTDTable,
+  MacroPlan macroPlan,
+  String executionUser
+)
+{
+  TextBody:
+  [*
+    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
+                                                                       Name        := "鍚屾璐у竵姹囩巼鏁版嵁",
+                                                                       IsSuccess   := true,
+                                                                       ExecuteUser := executionUser
+                                                                      );
+                                            
+      
+    try {
+      updates := construct( CurrencyRate_MPs );
+      traverse( globalOTDTable, Global_MappingCurrencyRate_MP, gcr, true )
+      {
+        a := CurrencyRate_MP::CreateCurrencyRate( gcr.CurrencyID(), gcr.Start(), gcr.Rate() );
+        updates.Add( a );
+        }
+      origindataset := selectset( macroPlan, Currency_MP.CurrencyRate_MP, cr, true );
+      obsoletes := origindataset.Difference( updates );
+      // delete obsoleted
+      difflength := obsoletes.Size();
+      for( j:=0; j<difflength; j++ )
+      {
+        obsolete := obsoletes.Element( j );
+        obsolete.Delete();
+        }
+      
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+    } onerror {
+      global_BrokerExecuteLog.IsSuccess( false );
+      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
+      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
+      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl
new file mode 100644
index 0000000..38ac6bb
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl
@@ -0,0 +1,45 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeMacroPlanData (
+  GlobalOTDTable globalOTDTable,
+  MacroPlan macroPlan,
+  String executionUser
+)
+{
+  TextBody:
+  [*
+    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
+                                                                       Name        := "鍚屾璐у竵鏁版嵁",
+                                                                       IsSuccess   := true,
+                                                                       ExecuteUser := executionUser
+                                                                      );
+                                            
+      
+    try {
+      updates := construct( Currency_MPs );
+      traverse( globalOTDTable, Global_MappingCurrency_MP, gc, true )
+      {
+        a := Currency_MP::CreateCurrency( macroPlan, gc.ID(), gc.Name(), " ", gc.IsBase() );
+        updates.Add( a );
+        }
+      origindataset := selectset( macroPlan, Currency_MP, c, true );
+      obsoletes := origindataset.Difference( updates );
+      // delete obsoleted
+      difflength := obsoletes.Size();
+      for( j:=0; j<difflength; j++ )
+      {
+        obsolete := obsoletes.Element( j );
+        obsolete.Delete();
+        }
+      
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+    } onerror {
+      global_BrokerExecuteLog.IsSuccess( false );
+      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
+      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
+      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl
new file mode 100644
index 0000000..60224b2
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl
@@ -0,0 +1,77 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeMacroPlanData (
+  GlobalOTDTable globalOTDTable,
+  MacroPlan macroPlan,
+  String executionUser
+)
+{
+  TextBody:
+  [*
+    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
+                                                                       Name        := "鍚屾杞﹂亾鏁版嵁",
+                                                                       IsSuccess   := true,
+                                                                       ExecuteUser := executionUser
+                                                                      );
+                                            
+      
+    try {
+      updates := construct( Lanes );
+      traverse( globalOTDTable, Global_MappingLane, gl, true )
+      {
+        id := gl.ID();
+        unitid := gl.UnitID();
+        name := gl.Name();
+        userleadtime := gl.UserLeadTime();
+        processingtime := Duration::Zero();
+        
+        unitofmeasurename := "PCS";
+        currencyid := "CNY";
+        startdate := Date::Date( 1900, 1, 1 );
+        enddate := Date::Date( 9999, 12, 31 );
+        capacitytype := "Transport quantity";
+        if( userleadtime.Length() = 0 )
+        {
+          processingtime := Duration::Zero(); 
+          }
+        else
+        {
+          processingtime := Duration::Hours( [Number]userleadtime );
+          };
+        
+        unit := Unit::FindUnitTypeIndex( unitid );
+        if( isnull( unit)){
+          unit :=macroPlan.Unit( relnew, 
+                                 ID := unitid, 
+                                 Name := unitid, 
+                                 UnitOfMeasureName := unitofmeasurename, 
+                                 CurrencyID := currencyid, 
+                                 StartDate := startdate, 
+                                 EndDate := enddate, 
+                                 CapacityType := capacitytype );
+        }
+        
+        a := Lane::CreateLane( unit, id, name, processingtime);
+        updates.Add( a );
+        }
+      origindataset := selectset( macroPlan, Unit.Lane, l, true );
+      obsoletes := origindataset.Difference( updates );
+      // delete obsoleted
+      difflength := obsoletes.Size();
+      for( j:=0; j<difflength; j++ )
+      {
+        obsolete := obsoletes.Element( j );
+        obsolete.Delete();
+        }
+      
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+    } onerror {
+      global_BrokerExecuteLog.IsSuccess( false );
+      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
+      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
+      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl
new file mode 100644
index 0000000..d1743ec
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl
@@ -0,0 +1,60 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeMacroPlanData (
+  GlobalOTDTable globalOTDTable,
+  MacroPlan macroPlan,
+  String executionUser
+)
+{
+  TextBody:
+  [*
+    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
+                                                                       Name        := "鍚屾杞﹂亾璺嚎鏁版嵁",
+                                                                       IsSuccess   := true,
+                                                                       ExecuteUser := executionUser
+                                                                      );
+                                            
+      
+    try {
+      updates := construct( LaneLegs );
+      traverse( globalOTDTable, Global_MappingLaneLeg, gll, true )
+      {
+        processingtime := Duration::Zero();
+        hasprocessingtime := true;
+        userleadtime := gll.UserLeadTime();
+        if( userleadtime.Length() = 0 )
+        {
+          hasprocessingtime := false;
+          processingtime := Duration::Zero(); 
+          }
+        else
+        {
+          hasprocessingtime := true;
+          processingtime := Duration::Hours( [Number]userleadtime );
+          };
+        
+        lane := Lane::FindLaneTypeIndex( gll.LaneID() );
+        a := LaneLeg::CreateLaneleg(lane, gll.LaneID(), gll.OriginStockingPointID(), gll.DestinationStockingPointID(), gll.Name(), hasprocessingtime, processingtime);
+        updates.Add( a );
+        }
+      origindataset := selectset( macroPlan, Unit.Lane.LaneLeg, ll, true );
+      obsoletes := origindataset.Difference( updates );
+      // delete obsoleted
+      difflength := obsoletes.Size();
+      for( j:=0; j<difflength; j++ )
+      {
+        obsolete := obsoletes.Element( j );
+        obsolete.Delete();
+        }
+      
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+    } onerror {
+      global_BrokerExecuteLog.IsSuccess( false );
+      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
+      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
+      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+    }
+  *]
+}
diff --git a/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl
new file mode 100644
index 0000000..7db4814
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl
@@ -0,0 +1,45 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeMacroPlanData (
+  GlobalOTDTable globalOTDTable,
+  MacroPlan macroPlan,
+  String executionUser
+)
+{
+  TextBody:
+  [*
+    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
+                                                                       Name        := "鍚屾搴撳瓨鐐规暟鎹�",
+                                                                       IsSuccess   := true,
+                                                                       ExecuteUser := executionUser
+                                                                      );
+                                            
+      
+    try {
+      updates := construct( StockingPoint_MPs );
+      traverse( globalOTDTable, Global_MappingStockingPoint_MP, sp, true )
+      {
+        a := StockingPoint_MP::CreateStockingpoint( macroPlan, sp.ID(), sp.UnitID(), sp.Name() );
+        updates.Add( a );
+        }
+      origindataset := selectset( macroPlan, StockingPoint_MP, sp, true );
+      obsoletes := origindataset.Difference( updates );
+      // delete obsoleted
+      difflength := obsoletes.Size();
+      for( j:=0; j<difflength; j++ )
+      {
+        obsolete := obsoletes.Element( j );
+        obsolete.Delete();
+        }
+      
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+    } onerror {
+      global_BrokerExecuteLog.IsSuccess( false );
+      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
+      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
+      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
+      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
+    }
+  *]
+}

--
Gitblit v1.9.3