From 1aca756222012ddf8cf61638eb71298a4a4cfa11 Mon Sep 17 00:00:00 2001
From: hongji.li <hongji.a.li@capgemini.com>
Date: 星期一, 06 十一月 2023 19:59:59 +0800
Subject: [PATCH] 年度产销模组&面板映射

---
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_AnnualBudgetData.qbl                                                   |    6 +
 _Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption5.def                                              |   10 ++
 _Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonPullInterfaceDataToIntermediateTable_OnCli.def |    3 
 _Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_CreateData.qbl                                                                 |    9 ++
 _Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_SynchronizeInterfaceData.qbl                                                   |   18 ++++
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule116.def                                         |   11 ++
 _Main/BL/Type_GlobalDTOTable/Method_SynchronizationAllMappingBrokerAndAPIByOption.qbl                                                    |    7 +
 _Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_AnnualBudgetData.qbl                                            |    9 ++
 _Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_bPullCapacityAllocationRule_OnClick.def      |   16 ++++
 _var/_Main/ProjSettings/MacroPlanner/Views/X_分析视图_[414702.1.50321581].vw                                                                 |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_pButton_ButtonCreateData_OnClick.def                             |    3 
 _Main/BL/EDI/Broker_GlobalOTDTable_AnnualBudgetData.qbl                                                                                  |   80 +++++++++++++++----
 _Main/BL/Type_ModulePanelCorrespondence/StaticMethod_PullCapacityAllocationRule.qbl                                                      |   29 +++++++
 13 files changed, 180 insertions(+), 23 deletions(-)

diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_AnnualBudgetData.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_AnnualBudgetData.qbl
index a2e490d..17c0b8c 100644
--- a/_Main/BL/EDI/Broker_GlobalOTDTable_AnnualBudgetData.qbl
+++ b/_Main/BL/EDI/Broker_GlobalOTDTable_AnnualBudgetData.qbl
@@ -77,7 +77,7 @@
       OthersMayDropTable: true
       OthersMayFlushTable: true
       OthersMayInsertRow: true
-      Parameters: '/owner="YUXTEST"'
+      Parameters: '/owner="OTD"'
       RecordModificationHintStrategy: 'None'
       EDIODBCLinkColumn BUSINESSSORT
       {
@@ -304,11 +304,6 @@
         OthersMayUpdateColumn: true
         ValueType: String
       }
-      EDIODBCLinkColumn PLANTNAME
-      {
-        OthersMayUpdateColumn: true
-        ValueType: String
-      }
       EDIODBCLinkColumn PRODUCTID
       {
         OthersMayUpdateColumn: true
@@ -319,17 +314,67 @@
         OthersMayUpdateColumn: true
         ValueType: String
       }
-      EDIODBCLinkColumn RESOLUTIONRATIO
-      {
-        OthersMayUpdateColumn: true
-        ValueType: String
-      }
-      EDIODBCLinkColumn SHIPPINGFORM
-      {
-        OthersMayUpdateColumn: true
-        ValueType: String
-      }
       EDIODBCLinkColumn YEARNO
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn YIELD1
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn YIELD10
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn YIELD11
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn YIELD12
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn YIELD2
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn YIELD3
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn YIELD4
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn YIELD5
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn YIELD6
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn YIELD7
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn YIELD8
+      {
+        OthersMayUpdateColumn: true
+        ValueType: String
+      }
+      EDIODBCLinkColumn YIELD9
       {
         OthersMayUpdateColumn: true
         ValueType: String
@@ -387,11 +432,8 @@
       EDIColumnMatch { InputColumn: MONTHLYSHEETCAPACITY9 OutputColumn: MonthlySheetCapacity9 }
       EDIColumnMatch { InputColumn: ORGANCODE OutputColumn: OrganCode }
       EDIColumnMatch { InputColumn: ORGANNAME OutputColumn: OrganName }
-      EDIColumnMatch { InputColumn: PLANTNAME OutputColumn: PlantName }
       EDIColumnMatch { InputColumn: PRODUCTID OutputColumn: ProductID }
       EDIColumnMatch { InputColumn: PRODUCTLINEANDSPECIFICATION OutputColumn: ProductLineAndSpecification }
-      EDIColumnMatch { InputColumn: RESOLUTIONRATIO OutputColumn: ResolutionRatio }
-      EDIColumnMatch { InputColumn: SHIPPINGFORM OutputColumn: ShippingForm }
       EDIColumnMatch { InputColumn: YEARNO OutputColumn: YearNo }
     }
   }
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_AnnualBudgetData.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_AnnualBudgetData.qbl
new file mode 100644
index 0000000..4794c79
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecuteFailure_GlobalOTDTable_AnnualBudgetData.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecuteFailure_GlobalOTDTable_AnnualBudgetData (
+  Number errorNo,
+  String errorMessage
+)
+{
+  TextBody: 'this.SettingFailureDetails( errorNo, errorMessage, "Global_MappingAnnualBudgetData", "骞村害棰勭畻鏁版嵁" );'
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_AnnualBudgetData.qbl b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_AnnualBudgetData.qbl
new file mode 100644
index 0000000..2ac19a0
--- /dev/null
+++ b/_Main/BL/Type_GlobalDTOTable/Method_OnAsyncExecute_GlobalOTDTable_AnnualBudgetData.qbl
@@ -0,0 +1,6 @@
+Quintiq file version 2.0
+#parent: #root
+Method OnAsyncExecute_GlobalOTDTable_AnnualBudgetData
+{
+  TextBody: 'this.SettingSuccessfulDetails( "Global_MappingAnnualBudgetData", "骞村害棰勭畻鏁版嵁", this.Global_MappingAnnualBudgetData( relsize ) );'
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_SynchronizationAllMappingBrokerAndAPIByOption.qbl b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizationAllMappingBrokerAndAPIByOption.qbl
index d695b54..46121bf 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_SynchronizationAllMappingBrokerAndAPIByOption.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizationAllMappingBrokerAndAPIByOption.qbl
@@ -22,7 +22,8 @@
   Boolean isCurrencyRate_MP,
   Boolean isLane,
   Boolean isLaneLeg,
-  Boolean isSummaryOfInboundTransaction
+  Boolean isSummaryOfInboundTransaction,
+  Boolean isAnnualBudgetData
 )
 {
   TextBody:
@@ -120,5 +121,9 @@
     if ( isSummaryOfInboundTransaction ) {
       Global_MappingSummaryOfInboundTransaction::SynchronizeInterfaceData( this, executionUser, "Global_MappingSummaryOfInboundTransaction" );
     }
+    
+    if ( isAnnualBudgetData ) {
+      Global_MappingAnnualBudgetData::SynchronizeInterfaceData( this, executionUser, "Global_MappingAnnualBudgetData" );
+    }
   *]
 }
diff --git a/_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_CreateData.qbl b/_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_CreateData.qbl
new file mode 100644
index 0000000..6905cec
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_CreateData.qbl
@@ -0,0 +1,9 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateData (
+  GlobalOTDTable this,
+  String executionUser
+)
+{
+  TextBody: 'Global_MappingAnnualBudgetData::SynchronizeInterfaceData( this, executionUser, "Global_MappingAnnualBudgetData" );'
+}
diff --git a/_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_SynchronizeInterfaceData.qbl b/_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_SynchronizeInterfaceData.qbl
new file mode 100644
index 0000000..7c8452d
--- /dev/null
+++ b/_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_SynchronizeInterfaceData.qbl
@@ -0,0 +1,18 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInterfaceData (
+  GlobalOTDTable globalOTDTable,
+  String executionUser,
+  String brokerName
+)
+{
+  TextBody:
+  [*
+    globalOTDTable.Global_MappingAnnualBudgetData( relflush );
+    isCanRun := Global_BrokerExecuteLog::CanRun( globalOTDTable, brokerName );
+    if ( not isCanRun ) {  
+      Global_BrokerExecuteLog::CreateInOperation( globalOTDTable, brokerName, executionUser );
+      globalOTDTable.GlobalOTDTable_AnnualBudgetData().AsyncExecute();
+    }
+  *]
+}
diff --git a/_Main/BL/Type_ModulePanelCorrespondence/StaticMethod_PullCapacityAllocationRule.qbl b/_Main/BL/Type_ModulePanelCorrespondence/StaticMethod_PullCapacityAllocationRule.qbl
new file mode 100644
index 0000000..978a5a5
--- /dev/null
+++ b/_Main/BL/Type_ModulePanelCorrespondence/StaticMethod_PullCapacityAllocationRule.qbl
@@ -0,0 +1,29 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod PullCapacityAllocationRule (
+  GlobalOTDSOP globalOTDSOP
+)
+{
+  TextBody:
+  [*
+    globalOTDSOP.ModulePanelCorrespondence( relflush );
+    
+    traverse ( globalOTDSOP, CapacityAllocationResultsRuleConfiguration, carrc ) {
+      module := select( globalOTDSOP, ModulePanelCorrespondence, tempMPC, 
+                        tempMPC.ModuleProductID() = carrc.ModuleMaterialCode() and 
+                        tempMPC.ModuleStockingPointID() = carrc.StockingPointID() );
+      if ( isnull( module ) ) {
+        module := globalOTDSOP.ModulePanelCorrespondence( relnew, 
+                                                          ModuleProductID       := carrc.ModuleMaterialCode(),
+                                                          ModuleStockingPointID := carrc.StockingPointID(),
+                                                          IsModule              := true );
+      }
+      
+      isExists := exists( module, Panel, tempP, tempP.PanelProductID() = carrc.PanelMaterialCode() );
+      if ( not isExists ) {
+        panel := globalOTDSOP.ModulePanelCorrespondence( relnew, PanelProductID := carrc.PanelMaterialCode() );
+        panel.Module( relset, module );
+      }
+    }
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_pButton_ButtonCreateData_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_pButton_ButtonCreateData_OnClick.def
index fa3f604..7b3ca1a 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_pButton_ButtonCreateData_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_pButton_ButtonCreateData_OnClick.def
@@ -16,7 +16,8 @@
       option := WebMessageBox::Question( "璇烽�夋嫨鏁版嵁婧�", "鏁版嵁婀東娴嬭瘯鏁版嵁|鍙栨秷" );
       
       if ( option = 0 ) {
-        WebMessageBox::Error( "鏁版嵁婀栨殏鏃犳暟鎹�", true );
+        WebMessageBox::Success( "寮�濮嬫媺鍙栦腑锛岃鏌ョ湅鎷夊彇鏃ュ織", true );
+        Global_MappingAnnualBudgetData::CreateData( GlobalOTDTable, ApplicationMacroPlanner.GetUserName() );
       } else if ( option = 1 ) {
         if ( DataHolderCheckedProduct.Data().Size() = 0 ) {
           WebMessageBox::Error( "璇峰厛鍦ㄥ乏渚у鑸爮閫夋嫨瑕佺敓鎴愭祴璇曟暟鎹殑浜у搧锛�", true );
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption5.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption5.def
index 0eb21a4..543cdb8 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption5.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption5.def
@@ -15,6 +15,16 @@
         Taborder: 0
       ]
     }
+    Component CheckAnnualBudgetData
+    {
+      #keys: '[414702.1.400711162]'
+      BaseType: 'WebCheckbox'
+      Properties:
+      [
+        Label: 'AnnualBudgetData'
+        Taborder: 1
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonPullInterfaceDataToIntermediateTable_OnCli.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonPullInterfaceDataToIntermediateTable_OnCli.def
index a42c9cf..03e2d62 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonPullInterfaceDataToIntermediateTable_OnCli.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonPullInterfaceDataToIntermediateTable_OnCli.def
@@ -42,7 +42,8 @@
                                                                     CheckboxCurrencyRate_MP.Checked(),
                                                                     CheckboxLane.Checked(),
                                                                     CheckboxLaneLeg.Checked(),
-                                                                    CheckboxSummaryOfInboundTransaction.Checked() );
+                                                                    CheckboxSummaryOfInboundTransaction.Checked(),
+                                                                    CheckAnnualBudgetData.Checked() );
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule116.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule116.def
index 45990d7..5bb5674 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule116.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Component_PanelModule116.def
@@ -27,6 +27,17 @@
         Taborder: 1
       ]
     }
+    Component bPullCapacityAllocationRule
+    {
+      #keys: '[414702.1.402246903]'
+      BaseType: 'WebButton'
+      Properties:
+      [
+        Image: 'THICK_ARROW_DOWN_LIGHT_BLUE'
+        Label: '鎷夊彇浜ц兘鍒嗛厤瑙勫垯'
+        Taborder: 2
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_bPullCapacityAllocationRule_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_bPullCapacityAllocationRule_OnClick.def
new file mode 100644
index 0000000..47bd96b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormModulePanelCorrespondence/Response_PanelModule116_bPullCapacityAllocationRule_OnClick.def
@@ -0,0 +1,16 @@
+Quintiq file version 2.0
+#parent: PanelModule116/bPullCapacityAllocationRule
+Response OnClick () id:Response_PanelModule116_bPullCapacityAllocationRule_OnClick
+{
+  #keys: '[414702.1.400703767]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebButton_OnClick'
+  QuillAction
+  {
+    Body:
+    [*
+      ModulePanelCorrespondence::PullCapacityAllocationRule( GlobalOTDSOP );
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git "a/_var/_Main/ProjSettings/MacroPlanner/Views/X_\345\210\206\346\236\220\350\247\206\345\233\276_\133414702.1.50321581\135.vw" "b/_var/_Main/ProjSettings/MacroPlanner/Views/X_\345\210\206\346\236\220\350\247\206\345\233\276_\133414702.1.50321581\135.vw"
index e810f17..450a6cd 100644
--- "a/_var/_Main/ProjSettings/MacroPlanner/Views/X_\345\210\206\346\236\220\350\247\206\345\233\276_\133414702.1.50321581\135.vw"
+++ "b/_var/_Main/ProjSettings/MacroPlanner/Views/X_\345\210\206\346\236\220\350\247\206\345\233\276_\133414702.1.50321581\135.vw"
@@ -16,7 +16,7 @@
   CREATIONUSER 'quintiq/hongjli'
   UPDATEDATETIME '2023-11-01T11:42:14'
   UPDATEUSER 'quintiq/hongjli'
-  LASTACCESSDATE '2023-11-05'
+  LASTACCESSDATE '2023-11-06'
   VIEWSCOPE 0
 }
 AUTHORIZATIONS

--
Gitblit v1.9.3