From 4c2024c5a521c44b1b35c490fa98e84918840fcc Mon Sep 17 00:00:00 2001
From: hongjli <3117313295@qq.com>
Date: 星期三, 13 九月 2023 10:44:43 +0800
Subject: [PATCH] 物料标签同步库存规范

---
 /dev/null                                                                                                                                                      |   23 -------
 _Main/BL/Type_GlobalDTOTable/Method_RefreshPanelMaterialData.qbl                                                                                               |   12 ++--
 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialExportAndImport#136.def                                   |    1 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Response_PanelFunctionButtons_ButtonRefresh_OnClick.def                                          |    2 
 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_SynchronizeInventoryTargets.qbl                                                                   |   35 +++++++++++
 _Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonSynchronizeInventoryTargets_.def |    8 ++
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Method_New.def                                                                       |    2 
 _Main/BL/Relations/Relation_PanelMaterial_MacroPlan_MacroPlan_PanelMaterial.qbl                                                                                |   23 +++++++
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Response_pnlActions_btnOk_OnClick.def                                                |   10 +-
 _Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Component_ListData.def                                                                           |    4 
 _Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Method_Edit.def                                                                      |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Response_ListData_MenuCreate_OnClick.def                                                         |    4 +
 12 files changed, 85 insertions(+), 41 deletions(-)

diff --git a/_Main/BL/Relations/Relation_PanelMaterial_GlobalOTDTable_GlobalOTDTable_PanelMaterial.qbl b/_Main/BL/Relations/Relation_PanelMaterial_GlobalOTDTable_GlobalOTDTable_PanelMaterial.qbl
deleted file mode 100644
index 60dc422..0000000
--- a/_Main/BL/Relations/Relation_PanelMaterial_GlobalOTDTable_GlobalOTDTable_PanelMaterial.qbl
+++ /dev/null
@@ -1,23 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-Relation PanelMaterial_GlobalOTDTable_GlobalOTDTable_PanelMaterial
-{
-  #keys: '1[414702.0.155921958]'
-  DefaultRelationStrategy
-  {
-  }
-  RelationSide.LeftSide GlobalOTDTable
-  {
-    #keys: '3[414702.0.155921960][414702.0.155921959][414702.0.155921961]'
-    Cardinality: '0to1'
-    ObjectDefinition: PanelMaterial
-    OwningSide: 'Reference'
-  }
-  RelationSide.RightSide PanelMaterial
-  {
-    #keys: '3[414702.0.155921963][414702.0.155921962][414702.0.155921964]'
-    Cardinality: '1toN'
-    ObjectDefinition: GlobalOTDTable
-    OwningSide: 'Owned'
-  }
-}
diff --git a/_Main/BL/Relations/Relation_PanelMaterial_MacroPlan_MacroPlan_PanelMaterial.qbl b/_Main/BL/Relations/Relation_PanelMaterial_MacroPlan_MacroPlan_PanelMaterial.qbl
new file mode 100644
index 0000000..fd1e173
--- /dev/null
+++ b/_Main/BL/Relations/Relation_PanelMaterial_MacroPlan_MacroPlan_PanelMaterial.qbl
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: #root
+Relation PanelMaterial_MacroPlan_MacroPlan_PanelMaterial
+{
+  #keys: '1[414702.0.162969760]'
+  DefaultRelationStrategy
+  {
+  }
+  RelationSide.LeftSide MacroPlan
+  {
+    #keys: '3[414702.0.162969762][414702.0.162969761][414702.0.162969763]'
+    Cardinality: '0to1'
+    ObjectDefinition: PanelMaterial
+    OwningSide: 'Reference'
+  }
+  RelationSide.RightSide PanelMaterial
+  {
+    #keys: '3[414702.0.162969765][414702.0.162969764][414702.0.162969766]'
+    Cardinality: '1toN'
+    ObjectDefinition: MacroPlan
+    OwningSide: 'Owned'
+  }
+}
diff --git a/_Main/BL/Type_GlobalDTOTable/Method_RefreshPanelMaterialData.qbl b/_Main/BL/Type_GlobalDTOTable/Method_RefreshPanelMaterialData.qbl
index f81023f..6c98026 100644
--- a/_Main/BL/Type_GlobalDTOTable/Method_RefreshPanelMaterialData.qbl
+++ b/_Main/BL/Type_GlobalDTOTable/Method_RefreshPanelMaterialData.qbl
@@ -10,12 +10,12 @@
       traverse ( pto, DependentDemand, dd, true ) {
         product_MP := dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Product_MP();
         if ( product_MP.IsPanelMaterial() ) {
-          this.PanelMaterial( relnew,
-                              PanelModel          := product_MP.ID(),
-                              MaterialDescription := product_MP.ID(),
-                              StartDate           := dd.Start().Date(),
-                              DemandQuantity      := dd.Quantity()
-                             );
+          macroPlan.PanelMaterial( relnew,
+                                   PanelModel          := product_MP.ID(),
+                                   MaterialDescription := product_MP.ID(),
+                                   StartDate           := dd.Start().Date(),
+                                   DemandQuantity      := dd.Quantity()
+                                  );
         }                   
       }
     }
diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_SynchronizeInventoryTargets.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_SynchronizeInventoryTargets.qbl
new file mode 100644
index 0000000..00a686b
--- /dev/null
+++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_SynchronizeInventoryTargets.qbl
@@ -0,0 +1,35 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod SynchronizeInventoryTargets (
+  GlobalOTDTable globalOTDTable,
+  MacroPlan macroPlan
+)
+{
+  TextBody:
+  [*
+    traverse ( globalOTDTable, MatAttrSettingAndPlanStrategy, masaps ) {
+      hasMaxLevel := masaps.MaximumNumberOfDaysInInventory() <> 0;
+      product_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = masaps.MatCode() );
+      if ( not isnull( product_MP ) ) {
+        traverse ( product_MP, ProductInStockingPoint_MP, pispmp ) {
+          InventorySpecification::Create( product_MP,
+                                          pispmp.StockingPoint_MP(),
+                                          macroPlan.StartOfPlanning().Date(),
+                                          false,
+                                          0.0,
+                                          0.0,
+                                          true,
+                                          [Real]masaps.MinimumNumberOfDaysInStock(),
+                                          0.0,
+                                          hasMaxLevel,
+                                          true,
+                                          [Real]masaps.MaximumNumberOfDaysInInventory(),
+                                          0.0,
+                                          false,
+                                          false
+                                         );
+        }
+      }
+    }
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Method_Edit.def
index 1ae7777..5a8abdf 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Method_Edit.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Method_Edit.def
@@ -10,7 +10,7 @@
     data := shadow( selection );
     
     DataHolderDialogData.Data( &data );
-    
+    info( "hello world" );
     ApplicationMacroPlanner.ShowFormModal( this );
   *]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Method_New.def
index 17084d2..7832386 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Method_New.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Method_New.def
@@ -5,7 +5,7 @@
   #keys: '[414702.0.158084611]'
   Body:
   [*
-    panelMaterial := GlobalOTDTable.PanelMaterial( relshadow );
+    panelMaterial := MacroPlan.PanelMaterial( relshadow );
     
     DataHolderDialogData.Data( &panelMaterial );
     
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Response_pnlActions_btnOk_OnClick.def
index f7acc22..555058d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditPanelPullPlanReport/Response_pnlActions_btnOk_OnClick.def
@@ -16,11 +16,11 @@
       data := DataHolderDialogData.Data();
       panelMaterial := data.WrappedInstance();
       if ( isnull( panelMaterial ) ) {
-        GlobalOTDTable.PanelMaterial( relnew, 
-                                      PanelModel          := ddslPanelModel.Text(), 
-                                      MaterialDescription := efMaterialDescription.Text(), 
-                                      StartDate           := dsStartDate.Date(),
-                                      DemandQuantity      := npDemandQuantity.Number() );
+        MacroPlan.PanelMaterial( relnew, 
+                                 PanelModel          := ddslPanelModel.Text(), 
+                                 MaterialDescription := efMaterialDescription.Text(), 
+                                 StartDate           := dsStartDate.Date(),
+                                 DemandQuantity      := npDemandQuantity.Number() );
       } else {
         panelMaterial.PanelModel( ddslPanelModel.Text() );
         panelMaterial.MaterialDescription( efMaterialDescription.Text() );
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialExportAndImport\043136.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialExportAndImport\043136.def"
index 636f952..eb69dc7 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialExportAndImport\043136.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Component_PanelMaterialExportAndImport\043136.def"
@@ -36,7 +36,6 @@
         Image: 'CLOUD_REFRESH'
         Label: '鍚屾搴撳瓨鐩爣'
         Taborder: 0
-        Visible: false
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonSynchronizeInventoryTargets_.def b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonSynchronizeInventoryTargets_.def
index a7731ca..072efb9 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonSynchronizeInventoryTargets_.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormMaterialLabelingAndPlanningStrategy/Response_PanelMaterialExportAndImport_136_ButtonSynchronizeInventoryTargets_.def
@@ -5,11 +5,17 @@
   #keys: '[414702.0.141615322]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    return not isnull( GlobalOTDTable ) and not isnull( MacroPlan );
+  *]
   QuillAction
   {
     Body:
     [*
-      WebMessageBox::Success( "鍚屾鎴愬姛", true );
+      MatAttrSettingAndPlanStrategy::SynchronizeInventoryTargets( GlobalOTDTable, MacroPlan );
+      
+      WebMessageBox::Success( "搴撳瓨鐩爣鍚屾鎴愬姛", true );
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Component_ListData.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Component_ListData.def
index ad2a8b8..1b59d94 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Component_ListData.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Component_ListData.def
@@ -11,8 +11,8 @@
       BaseType: 'WebDataExtractor'
       Properties:
       [
-        DataType: 'GlobalOTDTable'
-        Source: 'GlobalOTDTable'
+        DataType: 'MacroPlan'
+        Source: 'MacroPlan'
         Taborder: 0
         Transformation: 'PanelMaterial'
       ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Response_ListData_MenuCreate_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Response_ListData_MenuCreate_OnClick.def
index cb713ad..4e4e76b 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Response_ListData_MenuCreate_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Response_ListData_MenuCreate_OnClick.def
@@ -6,6 +6,10 @@
   CanBindMultiple: false
   DefinitionID => /ListData/Responsedef_ListData_WebMenu_OnClick
   Initiator: 'MenuCreate'
+  Precondition:
+  [*
+    return not isnull( MacroPlan );
+  *]
   QuillAction
   {
     Body:
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Response_PanelFunctionButtons_ButtonRefresh_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Response_PanelFunctionButtons_ButtonRefresh_OnClick.def
index 9084aa6..7b93559 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Response_PanelFunctionButtons_ButtonRefresh_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPanelPullPlanReport/Response_PanelFunctionButtons_ButtonRefresh_OnClick.def
@@ -13,7 +13,7 @@
   {
     Body:
     [*
-      GlobalOTDTable.PanelMaterial( relflush );
+      MacroPlan.PanelMaterial( relflush );
       
       GlobalOTDTable.RefreshPanelMaterialData( MacroPlan );
       

--
Gitblit v1.9.3