From 979fac481dc55ff7b426f368d9a968d1b87001ac Mon Sep 17 00:00:00 2001
From: limj <limj@taizhitech.com>
Date: 星期一, 25 九月 2023 20:51:15 +0800
Subject: [PATCH] 优先级因子BUG修改

---
 _Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw                                                                            |    2 
 _Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Component_pnlContent.def                                                 |   27 ++
 _Main/BL/InfoMessages.qbl                                                                                                                      |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def       |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def                                    |    3 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def      |    2 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingS#360.def |    3 
 _Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Component_pnlContent.def                                                      |   22 +-
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton#713.def                                  |    2 
 _Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl                                                                                  |   38 +--
 _Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnCreated.def                                |   30 +++
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def                        |    1 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def                                                |   10 +
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuSalesFillingCapacity.def                                    |    4 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnCreated.def          |   17 +
 _Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def                                           |   11 +
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnClick#106.def                                           |    0 
 _Main/BL/Type_BusinessType/StaticMethod_CreateData.qbl                                                                                         |    1 
 _Main/UI/MacroPlannerWebApp/Views/填产方案列表.vw                                                                                                    |    2 
 _Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_DeleteDetails.qbl                                                                       |   19 ++
 _Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrder.vw                                                                                      |    4 
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingSchem.def |    3 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def                                |    6 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient#902.def                                      |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def                                           |   13 -
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnDataChanged.def                       |   19 ++
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def                                 |    2 
 _Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_OnSelectionChanged.def                                      |   20 ++
 _Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_MenuDelete_OnClick.def                                      |    3 
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnCreated.def                           |   17 +
 /dev/null                                                                                                                                      |   12 -
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingCapac.def |    5 
 _Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlActions_btnOk_OnClick.def                                    |    2 
 _Main/BL/Type_PriorityFactor/StaticMethod_CheckNameValid.qbl                                                                                   |   29 +++
 _Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnChanged.def                                |   14 +
 _Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_CreateFillingCapacityOrderScheme.qbl                                                    |   48 +++--
 _Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def                                                                 |    8 
 _var/_Main/ProjSettings/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw                                                             |   14 -
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def                |    2 
 _Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl                                                                                         |   45 ++--
 _Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def                                                |    2 
 _Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl                                                                                  |   44 ++++
 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnSelectionChanged.def                                    |   20 ++
 43 files changed, 387 insertions(+), 153 deletions(-)

diff --git a/_Main/BL/InfoMessages.qbl b/_Main/BL/InfoMessages.qbl
index 952d7d5..aa2917b 100644
--- a/_Main/BL/InfoMessages.qbl
+++ b/_Main/BL/InfoMessages.qbl
@@ -10,4 +10,8 @@
   {
     DefaultText: 'Please input validate value !'
   }
-}
\ No newline at end of file
+  InfoMessage PriorityFactor_CheckNameValid
+  {
+    DefaultText: '璇ヤ紭鍏堢骇鍥犲瓙鍚嶇О宸插瓨鍦紒'
+  }
+}
diff --git a/_Main/BL/Type_BusinessType/StaticMethod_CreateData.qbl b/_Main/BL/Type_BusinessType/StaticMethod_CreateData.qbl
index 0606111..f82bfcb 100644
--- a/_Main/BL/Type_BusinessType/StaticMethod_CreateData.qbl
+++ b/_Main/BL/Type_BusinessType/StaticMethod_CreateData.qbl
@@ -2,6 +2,7 @@
 #parent: #root
 StaticMethod CreateData (
   GlobalOTDTable owner,
+  MacroPlan macroPlan,
   String businessName
 )
 {
diff --git a/_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_CreateFillingCapacityOrderScheme.qbl b/_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_CreateFillingCapacityOrderScheme.qbl
index 15c7113..e0aa42b 100644
--- a/_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_CreateFillingCapacityOrderScheme.qbl
+++ b/_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_CreateFillingCapacityOrderScheme.qbl
@@ -8,7 +8,7 @@
   TextBody:
   [*
     // NBoTk Sep-14-2023 (created)
-    
+    info('test' )
     fillingCapacityOrders := selectset( owner,FillingCapacityOrder,fillingOrder,
                                         not fillingOrder.IsFilling()
                                         );
@@ -43,27 +43,35 @@
     {
       e.SchemeName(schemeName);
       e.IsFilling(true);
-      filllingCapacityOrderScheme.FillingCapacityOrder(relinsert, e);
     }
-    
-    // 鐗堟湰鍙�
-    verNoOrder := select( filllingCapacityOrderScheme,FillingCapacityOrder,o,
-                                 o.VerNo() <> ''
-                                 )
     
     // 闇�瑕佸皢閿�鍞鍗曞拰棰勫敭璁㈠崟鍚屾椂淇濆瓨鍒版柟妗堜腑
-    traverse( owner,CustomerAndForecastOrder,order)
-    {
-      
-         fillingOrder := owner.FillingCapacityOrder(relnew,BusinessType := order.BusinessType(),Customer := order.Customer(),CustomerID := order.CustomerID(),
-                                                                           DemandDate := order.DemandDate(),ForecastDemandDate := order.ForecastDemandDate(),IsFilling := true,
-                                                                           OrderType := '鎻愭媺',PanelBigSheetQuantity := order.PanelBigSheetQuantity(),ProductID := order.ProductID(),
-                                                                           Quantity := order.Quantity(),SalesSegmentName := order.SalesSegmentName(),SalesAmount := order.SalesAmount(),
-                                                                           SchemeName := schemeName,StockingPointID := order.StockingPointID(),UnitOfMeasureName := order.UnitOfMeasureName(),
-                                                                           VerNo := verNoOrder.VerNo()
-                                                                           );
-                                                                           
-        filllingCapacityOrderScheme.FillingCapacityOrder(relinsert, fillingOrder);
-    }
+    //traverse( owner,CustomerAndForecastOrder,order)
+    //{
+    //  
+    //     fillingOrder := owner.FillingCapacityOrder(relnew,BusinessType := order.BusinessType(),Customer := order.Customer(),CustomerID := order.CustomerID(),
+    //                                                                       DemandDate := order.DemandDate(),ForecastDemandDate := order.ForecastDemandDate(),IsFilling := true,
+    //                                                                       OrderType := '鎻愭媺',PanelBigSheetQuantity := order.PanelBigSheetQuantity(),ProductID := order.ProductID(),
+    //                                                                       Quantity := order.Quantity(),SalesSegmentName := order.SalesSegmentName(),SalesAmount := order.SalesAmount(),
+    //                                                                       SchemeName := schemeName,StockingPointID := order.StockingPointID(),UnitOfMeasureName := order.UnitOfMeasureName(),
+    //                                                                       VerNo := order.VerNo()
+    //                                                                       );
+    //                                                                       
+    //    filllingCapacityOrderScheme.FillingCapacityOrder(relinsert, fillingOrder);
+    //}
+    
+    //// 鏂板鍙嶇/鎺堟潈璁㈠崟 璁㈠崟淇℃伅鍔犲叆濉骇
+    //traverse( owner,H_Forecast,hf)
+    //{
+    //          fillingOrder := owner.FillingCapacityOrder(relnew,BusinessType := hf.Department(),Customer := hf.CustomName(),CustomerID := hf.CustomCode(),
+    //                                                                       DemandDate := Date::Today(),ForecastDemandDate := Date::Today(),IsFilling := true,
+    //                                                                       OrderType := '鎻愭媺',PanelBigSheetQuantity := 0,ProductID := '',
+    //                                                                       Quantity := hf.ForecastQty(),SalesSegmentName := '',SalesAmount := 0,
+    //                                                                       SchemeName := schemeName,StockingPointID := '',UnitOfMeasureName := hf.Util(),
+    //                                                                       VerNo := ''
+    //                                                                       );
+    //                                                                       
+    //    filllingCapacityOrderScheme.FillingCapacityOrder(relinsert, fillingOrder);
+    //}
   *]
 }
diff --git a/_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_DeleteDetails.qbl b/_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_DeleteDetails.qbl
new file mode 100644
index 0000000..7eeebb0
--- /dev/null
+++ b/_Main/BL/Type_FilllingCapacityOrderScheme/StaticMethod_DeleteDetails.qbl
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod DeleteDetails (
+  MacroPlan owner,
+  String schemeName
+)
+{
+  TextBody:
+  [*
+    // NBoTk Sep-25-2023 (created)
+    
+    details := selectset( owner,FillingCapacityOrder,f,true);
+    
+    traverse( details,Elements,e)
+    {
+      owner.FillingCapacityOrder(reldelete,e);
+    }
+  *]
+}
diff --git a/_Main/BL/Type_PriorityFactor/StaticMethod_CheckNameValid.qbl b/_Main/BL/Type_PriorityFactor/StaticMethod_CheckNameValid.qbl
new file mode 100644
index 0000000..4fa81fb
--- /dev/null
+++ b/_Main/BL/Type_PriorityFactor/StaticMethod_CheckNameValid.qbl
@@ -0,0 +1,29 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CheckNameValid (
+  MacroPlan owner,
+  String businessType,
+  Real coefficient,
+  String desc,
+  String name
+) as Boolean
+{
+  TextBody:
+  [*
+    // NBoTk Sep-22-2023 (created)
+    
+    value := true;
+    
+    // 鍚嶇О鐩稿悓璺宠繃
+    obj := selectobject( owner,PriorityFactor,p,
+                        p.BusinessType() = businessType and p.Coefficient() = coefficient and p.Name() = name and p.Desc() = desc
+                        );
+    
+    if(not isnull( obj) )
+    {
+        value := false;
+    }
+    
+    return value;
+  *]
+}
diff --git a/_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl b/_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl
index 1d5ff08..76858f0 100644
--- a/_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl
+++ b/_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl
@@ -1,41 +1,34 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod InitData (
-  MacroPlan owner
+  MacroPlan owner,
+  String businessType
 )
 {
   TextBody:
   [*
     // NBoTk Sep-15-2023 (created)
-    
-    info(" init PriorutyFactor");
-    
     // businessType
     // result := "闆嗗洟闈㈡澘;涓撲笟鏄剧ず浜嬩笟閮�;澶栧崠CELL;闈炴樉;杩愬姩鍋ュ悍;杩愬姩鍋ュ悍浜嬩笟閮�;鎵嬫満浜嬩笟閮�;鐗圭鏄剧ず;姹借溅鐢靛瓙浜嬩笟閮�;杞﹁浇鏄剧ず浜嬩笟閮�;IT浜嬩笟閮�";
-    businessTypeList := construct( structured[String]);
-    businessTypeList.Add( "闆嗗洟闈㈡澘");
-    businessTypeList.Add( "涓撲笟鏄剧ず浜嬩笟閮�");
-    businessTypeList.Add( "澶栧崠CELL");
-    businessTypeList.Add( "闈炴樉");
-    businessTypeList.Add( "杩愬姩鍋ュ悍");
-    businessTypeList.Add( "杩愬姩鍋ュ悍浜嬩笟閮�");
-    businessTypeList.Add( "鎵嬫満浜嬩笟閮ㄩ潰鏉�");
-    businessTypeList.Add( "鐗圭鏄剧ず");
-    businessTypeList.Add( "姹借溅鐢靛瓙浜嬩笟閮ㄩ潰鏉�");
-    businessTypeList.Add( "杞﹁浇鏄剧ず浜嬩笟閮�");
-    businessTypeList.Add( "IT浜嬩笟閮�");
+    // 娣诲姞浜嬩笟閮ㄥ搴旂殑棰勫埗浼樺厛绾у洜瀛愭暟鎹�
+    owner.PriorityFactor(relnew,Name := "瀹㈡埛绛栫暐" ,Desc := "灏嗕簨涓氶儴璁$畻鐨勪紭鍏堢骇锛屾寜璇ョ粏鍒嗛」姣斾緥闃舵纭畾璇ラ」寰楀垎銆傚锛�81%鈮鈮�100% 5鍒嗭紝61%鈮鈮�80% 4鍒�", BusinessType := businessType );
+    owner.PriorityFactor(relnew,Name := "瀹㈡埛绛夌骇" ,Desc := "鏍规嵁闇�姹傛暟鎹腑瀹㈡埛锛屽尮閰嶅鎴风瓑绾�",BusinessType := businessType);
+    owner.PriorityFactor(relnew,Name := "澶у紶鐩堝埄姘村钩" ,Desc := "1銆佽幏鍙栧鎴�*SKU澶у紶鐩堝埄鏁� 2銆佸畾涔夊鎴�*SKU澶у紶鐩堝埄鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType );
+    owner.PriorityFactor(relnew,Name := "缁嗗垎甯傚満绛夌骇" ,Desc := "1銆佽幏鍙栧鎴�*SKU瀵瑰簲缁嗗垎甯傚満绛夌骇 2銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU瀵瑰簲缁嗗垎甯傚満璇勫垎绛夌骇锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType );
+    owner.PriorityFactor(relnew,Name := "闇�姹傜被鍨�" ,Desc := "鍖归厤涓嶅悓闇�姹傜绫伙紝寰楀埌瀵瑰簲寰楀垎", BusinessType := businessType );
+    owner.PriorityFactor(relnew,Name := "璁㈠崟涓嬪崟鏃堕棿" ,Desc := "鏍规嵁闇�姹傝鍗曚腑涓嬪崟鏃堕棿涓庨渶姹傛椂闂村樊鍊硷紝鍖归厤闃舵寰楀垎", BusinessType := businessType );
+    owner.PriorityFactor(relnew,Name := "浜у搧绛夌骇" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType );
+    owner.PriorityFactor(relnew,Name := "DOI" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType );
+    owner.PriorityFactor(relnew,Name := "DSI" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := businessType );
     
-    traverse( businessTypeList,Elements,b)
+    // 浼樺厛绾у洜瀛愮粏鍒�
+    priorityFactorList := selectset( owner,PriorityFactor,p,
+                                     p.BusinessType() = businessType
+                                     );
+    
+    traverse( priorityFactorList,Elements,e)
     {
-        owner.PriorityFactor(relnew,Name := "瀹㈡埛绛栫暐" ,Desc := "灏嗕簨涓氶儴璁$畻鐨勪紭鍏堢骇锛屾寜璇ョ粏鍒嗛」姣斾緥闃舵纭畾璇ラ」寰楀垎銆傚锛�81%鈮鈮�100% 5鍒嗭紝61%鈮鈮�80% 4鍒�", BusinessType := b );
-        owner.PriorityFactor(relnew,Name := "瀹㈡埛绛夌骇" ,Desc := "鏍规嵁闇�姹傛暟鎹腑瀹㈡埛锛屽尮閰嶅鎴风瓑绾�",BusinessType := b);
-        owner.PriorityFactor(relnew,Name := "澶у紶鐩堝埄姘村钩" ,Desc := "1銆佽幏鍙栧鎴�*SKU澶у紶鐩堝埄鏁� 2銆佸畾涔夊鎴�*SKU澶у紶鐩堝埄鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := b );
-        owner.PriorityFactor(relnew,Name := "缁嗗垎甯傚満绛夌骇" ,Desc := "1銆佽幏鍙栧鎴�*SKU瀵瑰簲缁嗗垎甯傚満绛夌骇 2銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU瀵瑰簲缁嗗垎甯傚満璇勫垎绛夌骇锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := b );
-        owner.PriorityFactor(relnew,Name := "闇�姹傜被鍨�" ,Desc := "鍖归厤涓嶅悓闇�姹傜绫伙紝寰楀埌瀵瑰簲寰楀垎", BusinessType := b );
-        owner.PriorityFactor(relnew,Name := "璁㈠崟涓嬪崟鏃堕棿" ,Desc := "鏍规嵁闇�姹傝鍗曚腑涓嬪崟鏃堕棿涓庨渶姹傛椂闂村樊鍊硷紝鍖归厤闃舵寰楀垎", BusinessType := b );
-        owner.PriorityFactor(relnew,Name := "浜у搧绛夌骇" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := b );
-        owner.PriorityFactor(relnew,Name := "DOI" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := b );
-        owner.PriorityFactor(relnew,Name := "DSI" ,Desc := "1銆佽幏鍙栧鎴�*SKU DOI&DSI鏁� 2銆佸畾涔夊鎴�*SKUDOI&DSI鏁伴樁姊緱鍒� 3銆佸尮閰嶉渶姹傛暟鎹腑瀹㈡埛鍙奡KU鏁版嵁锛屽緱鍒板搴旈樁姊緱鍒�", BusinessType := b );
+        PriorityFactorDetails::InitData( owner,e); 
     }
   *]
 }
diff --git a/_Main/BL/Type_PriorityFactorDetails/StaticMethod_CreateTestData.qbl b/_Main/BL/Type_PriorityFactorDetails/StaticMethod_CreateTestData.qbl
deleted file mode 100644
index 4954d67..0000000
--- a/_Main/BL/Type_PriorityFactorDetails/StaticMethod_CreateTestData.qbl
+++ /dev/null
@@ -1,15 +0,0 @@
-Quintiq file version 2.0
-#parent: #root
-StaticMethod CreateTestData (
-  MacroPlan owner
-)
-{
-  TextBody:
-  [*
-    // NBoTk Sep-18-2023 (created)
-    
-    info( "init data" );
-    PriorityFactor::InitData( owner);
-    PriorityFactorDetails::InitData( owner);
-  *]
-}
diff --git a/_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl b/_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl
index 9327dbe..c6c69c4 100644
--- a/_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl
+++ b/_Main/BL/Type_PriorityFactorDetails/StaticMethod_InitData.qbl
@@ -1,35 +1,29 @@
 Quintiq file version 2.0
 #parent: #root
 StaticMethod InitData (
-  MacroPlan owner
+  MacroPlan owner,
+  PriorityFactor priorityFactor
 )
 {
   TextBody:
   [*
     // NBoTk Sep-17-2023 (created)
     
-    info(" init PriorutyFactorDetails" );
-    
-    
-    
-    traverse( owner, PriorityFactor , p) 
+    isBusinessType := false;
+    if( priorityFactor.BusinessType() <> "闆嗗洟闈㈡澘" )
     {
-        isBusinessType := false;
-        if( p.BusinessType() <> "闆嗗洟闈㈡澘" )
-        {
-            isBusinessType := true; 
-        }
-      
-        p.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
-                                     IsRange := false,GradingName := "澶х泩",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := p.Name());
-        p.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
-                                     IsRange := false,GradingName := "灏忕泩",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := p.Name());
-        p.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 0,
-                                     IsRange := false,GradingName := "鎸佸钩",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := p.Name());
-        p.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -3,
-                                     IsRange := false,GradingName := "灏忎簭",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := p.Name());
-        p.PriorityFactorDetails(relnew,BusinessType := p.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -5,
-                                     IsRange := false,GradingName := "澶т簭",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := p.Name());
+        isBusinessType := true; 
     }
+    
+    priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 5,
+                                            IsRange := false,GradingName := "澶х泩",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+    priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 3,
+                                            IsRange := false,GradingName := "灏忕泩",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+    priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := 0,
+                                            IsRange := false,GradingName := "鎸佸钩",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+    priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -3,
+                                            IsRange := false,GradingName := "灏忎簭",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
+    priorityFactor.PriorityFactorDetails(relnew,BusinessType := priorityFactor.BusinessType(), IsBusinessType := isBusinessType,GradeTarget := -5,
+                                            IsRange := false,GradingName := "澶т簭",RangeMin := 0.0,RangeMax := 0.0,PriorityFactorName := priorityFactor.Name());
   *]
 }
diff --git a/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl b/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl
new file mode 100644
index 0000000..7c80e98
--- /dev/null
+++ b/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl
@@ -0,0 +1,44 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod RollBackCalcStr (
+  MacroPlan owner,
+  String businessType,
+  String stringData
+) as String
+{
+  TextBody:
+  [*
+    // NBoTk Sep-21-2023 (created)
+    value := stringData;
+    
+    symbolList := construct( structured[String]);
+    symbolList.Add( "+")
+    symbolList.Add( "-")
+    symbolList.Add( "x")
+    symbolList.Add( "/")
+    symbolList.Add( "(")
+    symbolList.Add( ")")
+    
+    traverse( symbolList,Elements,e)
+    {
+        if( stringData.EndsWith( e ))
+        {
+             end := stringData.Length() - e.Length();
+             value := stringData.SubString( 0,end);
+        } 
+    }
+    
+    nameList := PriorityFactor::GetDataByBusinessType(  owner,businessType);       
+    traverse( nameList,Elements,e)
+    {
+        nameText := e.Name() + "[" + [String]e.Coefficient() + "*L]"
+        if( stringData.EndsWith( nameText))
+        {
+             end := stringData.Length() - nameText.Length();
+             value := stringData.SubString( 0,end);
+        } 
+    }
+    
+    return value;
+  *]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuSalesFillingCapacity.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuSalesFillingCapacity.def
index 4e6377b..0aae48c 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuSalesFillingCapacity.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuSalesFillingCapacity.def
@@ -14,7 +14,7 @@
         Image: 'ELEMENT_BLUE'
         Taborder: 0
         Title: '澶栧崠CELL'
-        Tooltip: 'Filling Capacity Scheme List'
+        Tooltip: '澶栧崠CELL'
       ]
     }
     Component MenuSalesFillingSchemeDetail
@@ -26,6 +26,7 @@
         Image: 'ELEMENT_ORANGE'
         Taborder: 1
         Title: '濉骇鏂规鍒楄〃'
+        Tooltip: '濉骇鏂规鍒楄〃'
       ]
     }
     Component MenuSalesFillingSchemeHistorical
@@ -37,6 +38,7 @@
         Image: 'ELEMENT_ORANGE'
         Taborder: 2
         Title: '濉骇鍘嗗彶璁㈠崟鍒楄〃'
+        Tooltip: '濉骇鍘嗗彶璁㈠崟鍒楄〃'
       ]
     }
   ]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingCapac.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingCapac.def
index 3bd914f..73a0e05 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingCapac.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingCapac.def
@@ -10,9 +10,8 @@
     Body:
     [*
       // Open view
-      //ApplicationMacroPlanner.OpenView( 'Filling Capacity Scheme List',ButtonSalesFillingCapacity);
-      
-      ApplicationMacroPlanner.OpenView( 'FillingCapacityOrder', ButtonSalesFillingCapacity );
+      //ApplicationMacroPlanner.OpenView( 'FillingCapacityOrder', ButtonSalesFillingCapacity );
+      ApplicationScope.ViewManager().ResetUserViewById( "FillingCapacityOrder",true);
     *]
     GroupServerCalls: false
   }
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingS\043360.def" "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingS\043360.def"
index 2d1e1f4..067c423 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingS\043360.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingS\043360.def"
@@ -10,8 +10,7 @@
     Body:
     [*
       // Open view
-      //ApplicationMacroPlanner.OpenView( "FillingCapacitySchemeList",ButtonSalesFillingCapacity);
-      ApplicationMacroPlanner.OpenView( "FillingCapacityOrderHistorical");
+      ApplicationScope.ViewManager().ResetUserViewById( "FillingCapacityOrderHistorical",true);
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingSchem.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingSchem.def
index 0ad306d..22b6bc7 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingSchem.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ContextMenuSalesFillingCapacity_MenuSalesFillingSchem.def
@@ -10,8 +10,7 @@
     Body:
     [*
       // Open view
-      //ApplicationMacroPlanner.OpenView( "FillingCapacitySchemeList",ButtonSalesFillingCapacity);
-      ApplicationMacroPlanner.OpenView( "FillingCapacitySchemeList");
+      ApplicationScope.ViewManager().ResetUserViewById( "FillingCapacitySchemeList",true);
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def b/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def
index 54a2fe2..7c1b15d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def
@@ -12,13 +12,11 @@
     // OnOk
     this.ApplyChanges();
     
+    businessType := DataHolderBusinessType.Data().BusinessTypeName();
     DataHolderBusinessType.Data().Commit();
     
-    //if( not isnull( DataHolderForm.Data() ) )
-    //{
-    //  // Access the form, select the new assumption
-    //  DataHolderForm.Data().ListAssumptions().SelectByKey( DataHolderDialogData.Data().WrappedInstance().Key() );
-    //}
+    // PriorityFactor
+    PriorityFactor::InitData( MacroPlan,businessType);
     
     this.Close();
   *]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def
index ba900bc..8d24e23 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Response_pnlActions_btnOk_OnClick.def
@@ -7,10 +7,17 @@
   Precondition:
   [*
     feedback := Translations::FilllingCapacity_ValidateInput();
-    
     checkValue := not Coefficient.Text() = ''
     
-    return checkValue;
+    if(not checkValue )
+    {
+      feedback := Translations::PriorityFactor_CheckNameValid();
+      editData := DataHolderEditPriorityFactor.Data();
+      checkValue := not PriorityFactor::CheckNameValid( MacroPlan,editData.BusinessType(),[Real]Coefficient.Text(),PriorityFactorName.Text(),Desc.Text());
+    
+    }
+    
+    return checkValue
   *]
   QuillAction
   {
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Component_pnlContent.def
index 1a52538..8f09095 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Component_pnlContent.def
@@ -36,6 +36,7 @@
         DataBinding: 'DataHolderEditPriorityFactorDetails.Data.RangeMax'
         Label: '鏈�澶у��'
         Taborder: 4
+        Visible: false
       ]
     }
     Component RangeMin
@@ -46,7 +47,8 @@
       [
         DataBinding: 'DataHolderEditPriorityFactorDetails.Data.RangeMin'
         Label: '鏈�灏忓��'
-        Taborder: 5
+        ReadOnly: true
+        Taborder: 6
       ]
     }
     Component GradeDesc
@@ -59,7 +61,7 @@
         FixedSize: false
         Label: '鎻忚堪'
         SizeRatio: 3
-        Taborder: 6
+        Taborder: 8
       ]
     }
     Component PriorityFactorName
@@ -84,6 +86,27 @@
         Taborder: 1
       ]
     }
+    Component RangeMaxTest
+    {
+      #keys: '[414382.0.523235618]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '鏈�澶у��'
+        Taborder: 5
+        Visible: false
+      ]
+    }
+    Component RangeMinText
+    {
+      #keys: '[414382.0.523361009]'
+      BaseType: 'WebLabel'
+      Properties:
+      [
+        Label: '鏈�灏忓��'
+        Taborder: 7
+      ]
+    }
   ]
   Properties:
   [
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlActions_btnOk_OnClick.def
index 14d65cd..09b6252 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlActions_btnOk_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlActions_btnOk_OnClick.def
@@ -12,7 +12,7 @@
     
     if( isRange.Checked() )
     {
-       checkValue := not RangeMax.Text() = '' and not RangeMin.Text() = '';
+       checkValue := not RangeMax.Text() = '' and not RangeMin.Text() = '' and RangeMax.Text() > RangeMin.Text();
     }
     
     return checkValue;
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnChanged.def
index 91202b9..06616ab 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnChanged.def
@@ -11,12 +11,18 @@
     [*
       if( this.Checked())
       {
-          RangeMax.ReadOnly(false);
-          RangeMin.ReadOnly(false) 
+          RangeMax.Visible(true);
+          RangeMin.Visible(true);
+          RangeMaxTest.Visible(false); 
+          RangeMinText.Visible(false);
       }
       else{
-          RangeMax.ReadOnly(true);
-          RangeMin.ReadOnly(true) 
+          RangeMax.Visible(false);
+          RangeMin.Visible(false);
+          RangeMaxTest.Visible(true) 
+          RangeMaxTest.Text([String]DataHolderEditPriorityFactorDetails.Data().RangeMax());
+          RangeMinText.Visible(true) 
+          RangeMinText.Text([String]DataHolderEditPriorityFactorDetails.Data().RangeMin());
       }
     *]
     GroupServerCalls: false
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnCreated.def
new file mode 100644
index 0000000..ad0f874
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactorDetails/Response_pnlContent_isRange_OnCreated.def
@@ -0,0 +1,30 @@
+Quintiq file version 2.0
+#parent: pnlContent/isRange
+Response OnCreated () id:Response_pnlContent_isRange_OnCreated
+{
+  #keys: '[414382.0.523105450]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      if( this.Checked())
+      {
+          RangeMax.Visible(true);
+          RangeMin.Visible(true);
+          RangeMaxTest.Visible(false); 
+          RangeMinText.Visible(false);
+      }
+      else{
+          RangeMax.Visible(false);
+          RangeMin.Visible(false);
+          RangeMaxTest.Visible(true) 
+          RangeMaxTest.Text([String]DataHolderEditPriorityFactorDetails.Data().RangeMax());
+          RangeMinText.Visible(true) 
+          RangeMinText.Text([String]DataHolderEditPriorityFactorDetails.Data().RangeMin());
+      }
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Component_pnlContent.def
index 63e6384..3425275 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Component_pnlContent.def
@@ -13,8 +13,7 @@
       [
         AllowEmpty: true
         DataBinding: 'DataHolderFillingCapacityOrder.Data.ProductID'
-        Label: 'ProductID'
-        Strings: 'productID'
+        Label: '鍟嗗搧缂栫爜'
         Taborder: 0
       ]
     }
@@ -26,8 +25,7 @@
       [
         AllowEmpty: true
         DataBinding: 'DataHolderFillingCapacityOrder.Data.SalesSegmentName'
-        Label: 'SalesSegmentName'
-        Strings: 'SalesSagmentName'
+        Label: '閿�鍞儴闂�'
         Taborder: 1
       ]
     }
@@ -39,8 +37,7 @@
       [
         AllowEmpty: true
         DataBinding: 'DataHolderFillingCapacityOrder.Data.StockingPointID'
-        Label: 'StockPointID'
-        Strings: 'StockPointID'
+        Label: '搴撳瓨鐐�'
         Taborder: 2
       ]
     }
@@ -52,8 +49,7 @@
       [
         AllowEmpty: true
         DataBinding: 'DataHolderFillingCapacityOrder.Data.Customer'
-        Label: 'Customer'
-        Strings: 'Customer'
+        Label: '瀹㈡埛'
         Taborder: 3
       ]
     }
@@ -64,7 +60,7 @@
       Properties:
       [
         DataBinding: 'DataHolderFillingCapacityOrder.Data.Quantity'
-        Label: 'Quantity'
+        Label: '鏁伴噺'
         Mask: 'REAL'
         Taborder: 4
       ]
@@ -77,7 +73,7 @@
       [
         AllowEmpty: true
         DataBinding: 'DataHolderFillingCapacityOrder.Data.UnitOfMeasureName'
-        Label: 'UnitOfMeasureName'
+        Label: '鏁伴噺鍗曚綅'
         Strings: 'UnitName'
         Taborder: 5
       ]
@@ -89,7 +85,7 @@
       Properties:
       [
         DataBinding: 'DataHolderFillingCapacityOrder.Data.SalesAmount'
-        Label: 'SalesAmount'
+        Label: '閿�鍞'
         Mask: 'NUMBER'
         Taborder: 6
       ]
@@ -101,7 +97,7 @@
       Properties:
       [
         DataBinding: 'DataHolderFillingCapacityOrder.Data.DemandDate'
-        Label: 'Demand Date'
+        Label: '闇�姹傛棩鏈�'
         Taborder: 8
       ]
     }
@@ -112,7 +108,7 @@
       Properties:
       [
         DataBinding: 'DataHolderFillingCapacityOrder.Data.ForecastDemandDate'
-        Label: 'Forecast Demand Date'
+        Label: '棰勬湡闇�姹傛棩鏈�'
         Taborder: 7
       ]
     }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def
index 488be7e..3c4dba9 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_DialogFillingCustomerAndForecast/Component_pnlContent.def
@@ -12,7 +12,7 @@
       Properties:
       [
         DataBinding: 'DataHolderFilling.Data.VerNo'
-        Label: 'VerNo'
+        Label: '鐗堟湰鍙�'
         Taborder: 0
       ]
     }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_MenuDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_MenuDelete_OnClick.def
index 92f2bb9..f103e1b 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_MenuDelete_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_MenuDelete_OnClick.def
@@ -21,7 +21,8 @@
   {
     Body:
     [*
-      selection.Delete()
+      FilllingCapacityOrderScheme::DeleteDetails( MacroPlan,selection.SchemeName());
+      selection.Delete();
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_OnSelectionChanged.def
new file mode 100644
index 0000000..7986675
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormFillingScheme/Response_ListFillingScheme_OnSelectionChanged.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ListFillingScheme
+Response OnSelectionChanged (
+  FilllingCapacityOrderScheme selection
+) id:Response_ListFillingScheme_OnSelectionChanged
+{
+  #keys: '[414382.0.532640606]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebList_OnSelectionChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      schemeName := selection.SchemeName();
+      list := selectset( MacroPlan,FillingCapacityOrder,order,order.SchemeName() = selection.SchemeName());
+      DataHolderFillingScheme.Data(&list);
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def
index c6dd966..6ac9928 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def
@@ -5,17 +5,6 @@
   BaseType: 'listContextMenu'
   Children:
   [
-    Component MenuInitData
-    {
-      #keys: '[414382.0.482890505]'
-      BaseType: 'WebMenu'
-      Properties:
-      [
-        Image: 'GEAR'
-        Taborder: 3
-        Title: 'Init Data'
-      ]
-    }
     Component MenuEdit
     {
       #keys: '[414382.0.485622263]'
@@ -23,7 +12,7 @@
       Properties:
       [
         Image: 'GEAR_EDIT'
-        Taborder: 4
+        Taborder: 3
         Title: '缂栬緫'
       ]
     }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnCreated.def
new file mode 100644
index 0000000..97bd89b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnCreated.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: DataHolderPriorityFactorBusinessType
+Response OnCreated () id:Response_FormPriorityFactor_DataHolderPriorityFactorBusinessType_OnCreated
+{
+  #keys: '[414382.0.539235155]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      businessTypeList := selectset( GlobalOTDTable,BusinessType,b,true);
+      this.Data(&businessTypeList);
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnDataChanged.def
new file mode 100644
index 0000000..f02625b
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorBusinessType_OnDataChanged.def
@@ -0,0 +1,19 @@
+Quintiq file version 2.0
+#parent: DataHolderPriorityFactorBusinessType
+Response OnDataChanged () id:Response_FormPriorityFactor_DataHolderPriorityFactorBusinessType_OnDataChanged
+{
+  #keys: '[414382.0.539235291]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      businessTypeList := selectset( GlobalOTDTable,BusinessType,b,true);
+      this.Data(&businessTypeList);
+      strings := BusinessType::GetBusinessNameStr( GlobalOTDTable );
+      DropDownStringListBusinessType.Strings(strings);
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def
index 338425b..639dcea 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def
@@ -2,7 +2,7 @@
 #parent: DropDownStringListBusinessType
 Response OnCreated () id:Response_FormPriorityFactor_DropDownStringListBusinessType_OnCreated
 {
-  #keys: '[414382.0.461201807]'
+  #keys: '[414382.0.539375553]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebComponent_OnCreated'
   QuillAction
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def
index 1018d65..2ac7956 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def
@@ -9,6 +9,7 @@
   {
     Body:
     [*
+      info( "selection" );
       list := PriorityFactor::GetDataByBusinessType( MacroPlan, DropDownStringListBusinessType.Text());
       DataHolderPriorityFactorSelect.Data(&list);
     *]
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInitData_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInitData_OnClick.def
deleted file mode 100644
index f165c1b..0000000
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuInitData_OnClick.def
+++ /dev/null
@@ -1,17 +0,0 @@
-Quintiq file version 2.0
-#parent: ListPriorityFactor
-Response OnClick () id:Response_ListPriorityFactor_MenuInitData_OnClick
-{
-  #keys: '[414382.0.482802120]'
-  CanBindMultiple: false
-  DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick
-  Initiator: 'MenuInitData'
-  QuillAction
-  {
-    Body:
-    [*
-      PriorityFactorDetails::CreateTestData(  MacroPlan);
-    *]
-    GroupServerCalls: false
-  }
-}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnClick.def "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnClick\043106.def"
similarity index 100%
rename from _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnClick.def
rename to "_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnClick\043106.def"
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnSelectionChanged.def
new file mode 100644
index 0000000..235a322
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_OnSelectionChanged.def
@@ -0,0 +1,20 @@
+Quintiq file version 2.0
+#parent: ListPriorityFactor
+Response OnSelectionChanged (
+  PriorityFactor selection
+) id:Response_ListPriorityFactor_OnSelectionChanged
+{
+  #keys: '[414382.0.541275298]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebList_OnSelectionChanged'
+  QuillAction
+  {
+    Body:
+    [*
+      info( "selecion change" );
+      detaisls := PriorityFactorDetails::GetDataByPriorityFactor( selection, MacroPlan);
+      DataHolderPriorityFactorDetailsSelect.Data(&detaisls);
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def
index e0faf23..fa7ba3e 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def
@@ -38,6 +38,16 @@
         Taborder: 3
       ]
     }
+    Component DataHolderPriorityFactorBusinessType
+    {
+      #keys: '[414382.0.539205233]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[BusinessType]*'
+      Properties:
+      [
+        Taborder: 4
+      ]
+    }
   ]
   Properties:
   [
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient\043902.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient\043902.def"
index e2c6e2f..62b4cb9 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient\043902.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyCoefficient\043902.def"
@@ -21,7 +21,7 @@
       BaseType: 'WebButton'
       Properties:
       [
-        Label: '瀹屾垚'
+        Label: '淇濆瓨'
         Taborder: 1
       ]
     }
diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton\043713.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton\043713.def"
index 9c91139..014ed5d 100644
--- "a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton\043713.def"
+++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperationButton\043713.def"
@@ -11,7 +11,7 @@
       BaseType: 'WebButton'
       Properties:
       [
-        Label: '娣诲姞鍥犲瓙'
+        Label: '娣诲姞'
         Taborder: 1
       ]
     }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def
index 5517113..59bd67d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_MenuDelete_OnClick.def
@@ -12,7 +12,8 @@
   {
     Body:
     [*
-      selection.Delete();
+      
+          selection.Delete();
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def
index e16df3d..09c165d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_ListPriorityPolicy_OnUserSelectionChanged.def
@@ -17,11 +17,11 @@
       str := PriorityFactor::GetNameList( MacroPlan, businessType);
       DropDownStringList.Strings(str);
       
+      LabelFormula.Text(selection.Formula());
+      LabelCalculateValue.Text(selection.CalculateValue());
+      
       data := shadow( selection );
       DataHolderEditPriorityPolicy.Data( &data );
-      
-      //coefficient := PriorityFactor::GetCoeffcientByName( MacroPlan,businessType,DropDownStringList.Text());
-      //LabelPriorityPolicyCoefficient.Text([String]coefficient);
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def
index 3b56ae5..383cbb2 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def
@@ -5,6 +5,12 @@
   #keys: '[414382.0.502145449]'
   CanBindMultiple: false
   DefinitionID: 'Responsedef_WebButton_OnClick'
+  Precondition:
+  [*
+    feedback := "璇ヤ紭鍏堢骇鍥犲瓙宸茶閫夋嫨."
+    
+    return not LabelFormula.Text() ~ DropDownStringList.Text();
+  *]
   QuillAction
   {
     Body:
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def
index f8952da..d7adf1d 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def
@@ -13,7 +13,7 @@
       formulaText := PriorityPolicy::RollBackStr( MacroPlan,businessType,LabelFormula.Text());
       LabelFormula.Text(formulaText);
       
-      calculateTest := PriorityPolicy::RollBackStr( MacroPlan,businessType,LabelCalculateValue.Text());
+      calculateTest := PriorityPolicy::RollBackCalcStr( MacroPlan,businessType,LabelCalculateValue.Text());
       LabelCalculateValue.Text(calculateTest);
     *]
     GroupServerCalls: false
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnCreated.def
new file mode 100644
index 0000000..7cbbd08
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnCreated.def
@@ -0,0 +1,17 @@
+Quintiq file version 2.0
+#parent: PanelPriorityPolicyOperationButton/DropDownStringList
+Response OnCreated () id:Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnCreated
+{
+  #keys: '[414382.0.539822108]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnCreated'
+  QuillAction
+  {
+    Body:
+    [*
+      strs := PriorityFactor::GetNameList( MacroPlan,DropDownStringList.Text());
+      this.Strings(strs);
+    *]
+    GroupServerCalls: false
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def
index 9debaba..9fc4b38 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_DropDownStringList_OnSelectionCh.def
@@ -9,11 +9,9 @@
   {
     Body:
     [*
-      info( "select changeed" );
       businessType := PriorityPolicyBusinessType.Text();
       coefficient := PriorityFactor::GetCoeffcientByName( MacroPlan,businessType,DropDownStringList.Text());
       LabelPriorityPolicyCoefficient.Text([String]coefficient);
-      info("coefficient := " + [String]coefficient  );
     *]
     GroupServerCalls: false
   }
diff --git a/_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrder.vw b/_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrder.vw
index 21e8b5a..274be38 100644
--- a/_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrder.vw
+++ b/_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrder.vw
@@ -180,10 +180,10 @@
     userconfigurableinformation
     {
     }
+    image: ''
     page: ''
     group: ''
-    index: 14
-    image: ''
+    index: 0
     description: ''
   }
   formatversion: 2
diff --git a/_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw b/_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw
index e8b9ad7..f322040 100644
--- a/_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw
+++ b/_Main/UI/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw
@@ -2,10 +2,10 @@
 {
   viewcontents
   {
+    image: ''
     page: ''
     group: ''
     index: 0
-    image: ''
     description: ''
   }
   formatversion: 2
diff --git "a/_Main/UI/MacroPlannerWebApp/Views/\345\241\253\344\272\247\346\226\271\346\241\210\345\210\227\350\241\250.vw" "b/_Main/UI/MacroPlannerWebApp/Views/\345\241\253\344\272\247\346\226\271\346\241\210\345\210\227\350\241\250.vw"
index 359d913..9f88591 100644
--- "a/_Main/UI/MacroPlannerWebApp/Views/\345\241\253\344\272\247\346\226\271\346\241\210\345\210\227\350\241\250.vw"
+++ "b/_Main/UI/MacroPlannerWebApp/Views/\345\241\253\344\272\247\346\226\271\346\241\210\345\210\227\350\241\250.vw"
@@ -180,10 +180,10 @@
     userconfigurableinformation
     {
     }
+    group: ''
     index: 0
     image: ''
     page: ''
-    group: ''
     description: ''
   }
   formatversion: 2
diff --git a/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/FillingCapacityOrder.vw b/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/FillingCapacityOrder.vw
deleted file mode 100644
index e143a99..0000000
--- a/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/FillingCapacityOrder.vw
+++ /dev/null
@@ -1,12 +0,0 @@
-Quintiq file version 2.0
-{
-  viewcontents
-  {
-    index: 0
-  }
-  formatversion: 2
-  id: 'FillingCapacityOrder'
-  name: 'FillingCapacityOrder'
-  isglobal: false
-  isroot: false
-}
diff --git a/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw b/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw
index 1323ac5..5dd155f 100644
--- a/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw
+++ b/_var/_Main/ProjSettings/MacroPlannerWebApp/Views/FillingCapacityOrderHistorical.vw
@@ -2,6 +2,9 @@
 {
   viewcontents
   {
+    userconfigurableinformation
+    {
+    }
     forms
     {
       form_FormCustomerAndForecastOrder
@@ -417,18 +420,11 @@
         }
       }
     }
-    userconfigurableinformation
-    {
-    }
-    page: ''
-    group: ''
-    index: 15
-    image: ''
-    description: ''
+    index: 0
   }
   formatversion: 2
   id: 'FillingCapacityOrderHistorical'
   name: 'FillingCapacityOrderHistorical'
   isglobal: false
-  isroot: true
+  isroot: false
 }

--
Gitblit v1.9.3