From 81070dc6e62e23f1619a5341c5dbf790ed6635ea Mon Sep 17 00:00:00 2001 From: limj <limj@taizhitech.com> Date: 星期三, 27 九月 2023 01:38:07 +0800 Subject: [PATCH] 优先级因子计算 --- _Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl | 11 +- _Main/BL/Type_BusinessType/StaticMethod_CreateData.qbl | 3 _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def | 17 +++ _Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlActions.def | 40 ++++++++ _Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/_ROOT_Component_DialogChoosePriorityPolicy.def | 22 ++++ _Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnOk_OnClick.def | 16 +++ _Main/BL/Type_PriorityResult/StaticMethod_CalculateBracketScore.qbl | 5 _Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl | 25 ++-- _Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlContent.def | 33 ++++++ _Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnCreated.def | 18 +++ _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResult_OnClick.def | 19 +++ _Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl | 16 ++- _Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnDataChanged.def | 18 +++ _Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def | 3 _Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_OpenChoose.def | 10 ++ _Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSalesDemands.def | 4 _Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnCancel_OnClick.def | 15 +++ 17 files changed, 246 insertions(+), 29 deletions(-) diff --git a/_Main/BL/Type_BusinessType/StaticMethod_CreateData.qbl b/_Main/BL/Type_BusinessType/StaticMethod_CreateData.qbl index afab52f..f82bfcb 100644 --- a/_Main/BL/Type_BusinessType/StaticMethod_CreateData.qbl +++ b/_Main/BL/Type_BusinessType/StaticMethod_CreateData.qbl @@ -21,9 +21,6 @@ // 濡傛灉涓嶅瓨鍦ㄥ垯娣诲姞 if( not checkExist ){ owner.BusinessType(relnew,BusinessTypeName := businessName); - - // 鍒濆鍖栦紭鍏堢骇鍥犲瓙鏁版嵁 - PriorityFactor::InitData( macroPlan,businessName); } *] } diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_CalculateBracketScore.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_CalculateBracketScore.qbl index 90f1891..962e51e 100644 --- a/_Main/BL/Type_PriorityResult/StaticMethod_CalculateBracketScore.qbl +++ b/_Main/BL/Type_PriorityResult/StaticMethod_CalculateBracketScore.qbl @@ -4,7 +4,8 @@ String calcStr, CustomerOrder customerOrder, String businessType, - MacroPlan macroPlan + MacroPlan macroPlan, + GlobalOTDTable globalOTDTable ) as Real { Description: '璁$畻鍏紡涓嫭鍙峰唴鐨勬暟鎹�' @@ -13,6 +14,6 @@ // NBoTk Sep-26-2023 (created) - return PriorityResult::CalculateScore( calcStr,customerOrder,businessType,macroPlan,0.0); + return PriorityResult::CalculateScore( calcStr,customerOrder,businessType,macroPlan,0.0,globalOTDTable); *] } diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl index 22b6924..decca69 100644 --- a/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl +++ b/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl @@ -5,7 +5,8 @@ CustomerOrder customerOrder, String businessType, MacroPlan macroPlan, - Real lastScore + Real lastScore, + GlobalOTDTable globalOTDTable ) as Real { TextBody: @@ -23,42 +24,42 @@ if(remindFormula.StartsWith( "+" )) { remindFormula := remindFormula.SubString( 1,remindFormula.Length()); - score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan); + score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable); score := lastScore + score; // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻 remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan); - PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score); + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable); } else if( remindFormula.StartsWith( "-" )) { remindFormula := remindFormula.SubString( 1,remindFormula.Length()); - score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan); + score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable); score := lastScore - score; // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻 remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan); - PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score); + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable); } else if( remindFormula.StartsWith( "*" ) ) { remindFormula := remindFormula.SubString( 1,remindFormula.Length()); - score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan); + score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable); score := lastScore * score; // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻 remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan); - PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score); + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable); } else if( remindFormula.StartsWith( "/" ) ) { remindFormula := remindFormula.SubString( 1,remindFormula.Length()); - score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan); + score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable); score := lastScore / score; // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻 remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan); - PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score); + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable); } else if( remindFormula.StartsWith( "(" ) ) { @@ -66,7 +67,7 @@ // 璁$畻鎷彿涓殑鍐呭 rightBracket := remindFormula.FindString( ")",0); calcStr := remindFormula.SubString( 1,rightBracket); - PriorityResult::CalculateBracketScore(calcStr,customerOrder,businessType,macroPlan); + PriorityResult::CalculateBracketScore(calcStr,customerOrder,businessType,macroPlan,globalOTDTable); // 鎴彇 ) 鍚庣殑瀛楃缁х画杩涜璁$畻 remindFormula := remindFormula.SubString( rightBracket,remindFormula.Length()); @@ -74,11 +75,11 @@ else { // 涓嶆槸绗﹀彿 鐩存帴鑾峰彇璁$畻鍚庣殑鏁板�� - score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan); + score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable); // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻 remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan); - PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score); + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable); } } diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl index ba8486e..f12f852 100644 --- a/_Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl +++ b/_Main/BL/Type_PriorityResult/StaticMethod_GetDetailsValue.qbl @@ -3,7 +3,8 @@ StaticMethod GetDetailsValue ( CustomerOrder customerOrder, String formula, - MacroPlan macroPlan + MacroPlan macroPlan, + GlobalOTDTable globalOTDTable ) as Real { TextBody: @@ -36,14 +37,16 @@ if( "DOI" = priorityFactor.Name()) { - // DOI鏁版嵁鏆傛椂缂哄皯 - value := 1; + // DOI鏁版嵁 + obj := selectobject( globalOTDTable,Global_MappingDOI_DSI,doi,doi.ProductID() = customerOrder.ProductID()) + value := priorityFactor.Coefficient() * [Real]obj.DOI(); } if( "DSI" = priorityFactor.Name()) { - // DOI鏁版嵁鏆傛椂缂哄皯 - value := 1; + // DOI鏁版嵁 + obj := selectobject( globalOTDTable,Global_MappingDOI_DSI,doi,doi.ProductID() = customerOrder.ProductID()) + value := priorityFactor.Coefficient() * [Real]obj.DSI(); } if( "缁嗗垎甯傚満绛夌骇" = priorityFactor.Name()) @@ -62,7 +65,8 @@ if( "瀹㈡埛绛夌骇" = priorityFactor.Name()) { // 閫氳繃鏁版嵁婀栬绠楀鎴风瓑绾� - value := 1; + obj := selectobject( globalOTDTable,Global_MappingCustomerGrade,doi,doi.BusinessType() = customerOrder.BusinessType() and doi.Customer() = customerOrder.CustomerName()) + value := priorityFactor.Coefficient() * [Real]obj.CustomerGrade(); } if( "璁㈠崟涓嬪崟鏃堕棿" = priorityFactor.Name()) diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl index 4021601..1b2da12 100644 --- a/_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl +++ b/_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl @@ -1,10 +1,9 @@ Quintiq file version 2.0 #parent: #root StaticMethod CalculatePriorityResult ( - CustomerOrders customerOrders, String priorityPolicyName, - String businessType, - MacroPlan macroPlan + MacroPlan macroPlan, + GlobalOTDTable globalOTDTable ) { TextBody: @@ -13,7 +12,7 @@ // 璁$畻瀹㈡埛璁㈠崟鐨勪紭鍏堢骇寰楀垎 鍥炲~鏉冮噸鏁版嵁 鐢熸垚鏂扮殑Priority鏄庣粏鏁版嵁 - traverse( customerOrders,Elements,e) + traverse( macroPlan,SalesDemand.astype( CustomerOrder ),e) { // 浜嬩笟閮ㄤ俊鎭� businessType := e.BusinessType(); @@ -23,7 +22,7 @@ formula := priorityPolicys.Formula(); // 閫掑綊澶勭悊璁$畻鍏紡 鑾峰彇褰撳墠璁㈠崟鐨勫緱鍒� - value := PriorityResult::CalculateScore( formula,e,businessType,macroPlan,0.0); + value := PriorityResult::CalculateScore( formula,e,businessType,macroPlan,0.0,globalOTDTable); // 鐢熸垚浼樺厛绾у洜瀛愯窇鍒嗙粨鏋� priorityResult := macroPlan.PriorityResult(relnew,CustomerOrderID := e.ID(),BusinessType := businessType,Customer := e.CustomerName(),CustomerID := e.CustomerID(), @@ -59,7 +58,7 @@ priorityValue := 1; traverse( resultList,Elements,e) { - obj := selectobject( customerOrders,Elements,order, + obj := selectobject( macroPlan,SalesDemand.astype( CustomerOrder ),order, order.ID() = e.CustomerOrderID() ); obj.PriorityName([String]priorityValue); diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def b/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def index 4172fa3..fbfa4cc 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def @@ -15,6 +15,9 @@ businessType := DataHolderBusinessType.Data().BusinessTypeName(); DataHolderBusinessType.Data().Commit(); + + PriorityFactor::InitData( MacroPlan,businessType); + this.Close(); *] } diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlActions.def new file mode 100644 index 0000000..d27cc39 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlActions.def @@ -0,0 +1,40 @@ +Quintiq file version 2.0 +Component pnlActions +{ + #keys: '[414382.0.563131222]' + BaseType: 'WebPanel' + Children: + [ + Component btnOk + { + #keys: '[414382.0.563131226]' + BaseType: 'WebButton' + Properties: + [ + Label: 'OK' + Taborder: 0 + ] + } + Component btnCancel + { + #keys: '[414382.0.563131228]' + BaseType: 'WebButton' + Properties: + [ + Label: 'Cancel' + Taborder: 1 + ] + } + ] + Properties: + [ + Alignment: 'trailing' + Border: true + ExcludeFromActiveComponent: true + FixedSize: true + Orientation: 'horizontal' + Padding: 'true' + Style: 'footer' + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlContent.def new file mode 100644 index 0000000..38aee9e --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Component_pnlContent.def @@ -0,0 +1,33 @@ +Quintiq file version 2.0 +Component pnlContent +{ + #keys: '[414382.0.563131220]' + BaseType: 'WebPanel' + Children: + [ + Component PriorityPolicyStringList + { + #keys: '[414382.0.563131262]' + BaseType: 'WebDropDownStringList' + Properties: + [ + Taborder: 0 + ] + } + Component DataHolderChoosePriorityPolicy + { + #keys: '[414382.0.563131279]' + BaseType: 'WebDataHolder' + Databinding: 'structured[PriorityPolicy]*' + Properties: + [ + Taborder: 1 + ] + } + ] + Properties: + [ + Padding: 'true' + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_OpenChoose.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_OpenChoose.def new file mode 100644 index 0000000..bae85c8 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Method_OpenChoose.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +#parent: #root +Method OpenChoose () id:Method_DialogChoosePriorityPolicy_OpenChoose +{ + #keys: '[414382.0.563950563]' + Body: + [* + ApplicationMacroPlanner.ShowFormModal( this ); + *] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnCancel_OnClick.def new file mode 100644 index 0000000..1d6fe8b --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnCancel_OnClick.def @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: pnlActions/btnCancel +Response OnClick () id:Response_pnlActions_btnCancel_OnClick +{ + #keys: '[414382.0.563131232]' + DefinitionID: 'Responsedef_WebButton_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + Form.Close(); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnOk_OnClick.def new file mode 100644 index 0000000..7750e77 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnOk_OnClick.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: pnlActions/btnOk +Response OnClick () id:Response_pnlActions_btnOk_OnClick +{ + #keys: '[414382.0.563131231]' + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + name := PriorityPolicyStringList.Text(); + PriorityResult::CalculatePriorityResult(name,MacroPlan,GlobalOTDTable); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnCreated.def new file mode 100644 index 0000000..dd31dea --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnCreated.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: pnlContent/DataHolderChoosePriorityPolicy +Response OnCreated () id:Response_pnlContent_DataHolderChoosePriorityPolicy_OnCreated +{ + #keys: '[414382.0.563131469]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnCreated' + QuillAction + { + Body: + [* + dataList := selectuniquevalues( MacroPlan,PriorityPolicy,p,p.Name()); + strings := dataList.Concatenate( ";"); + PriorityPolicyStringList.Strings(strings); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnDataChanged.def new file mode 100644 index 0000000..956d116 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlContent_DataHolderChoosePriorityPolicy_OnDataChanged.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: pnlContent/DataHolderChoosePriorityPolicy +Response OnDataChanged () id:Response_pnlContent_DataHolderChoosePriorityPolicy_OnDataChanged +{ + #keys: '[414382.0.563131545]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnDataChanged' + QuillAction + { + Body: + [* + dataList := selectuniquevalues( MacroPlan,PriorityPolicy,p,p.Name()); + strings := dataList.Concatenate( ";"); + PriorityPolicyStringList.Strings(strings); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/_ROOT_Component_DialogChoosePriorityPolicy.def b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/_ROOT_Component_DialogChoosePriorityPolicy.def new file mode 100644 index 0000000..11665d9 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/_ROOT_Component_DialogChoosePriorityPolicy.def @@ -0,0 +1,22 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlannerWebApp +OrphanComponent DialogChoosePriorityPolicy +{ + #keys: '[414382.0.563131218]' + BaseType: 'WebForm' + Children: + [ + #child: pnlContent + #child: pnlActions + ] + Properties: + [ + Alignment: 'trailing' + EnterButton: 'btnOk' + EscapeButton: 'btnCancel' + ExcludeFromActiveComponent: true + Padding: 'false' + Title: '閫夋嫨浼樺厛绾х瓥鐣�' + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSalesDemands.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSalesDemands.def index 352a599..54be6e2 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSalesDemands.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_ListSalesDemands.def @@ -5,6 +5,10 @@ [ Component DataSetLevelSalesDemands #extension { + Children: + [ + #child: listContextMenuSD + ] Properties: [ Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPoint_MP.ID","title":"Stocking point","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"StockingPoint_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegment_MP.Name","title":"Sales segment","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"SalesSegment_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"Customer name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"Customer ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"Order ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"Order line ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"Order date","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Product_MP.ID","title":"Product","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Product_MP.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasure_MP.Name","title":"UoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"UnitOfMeasure_MP.Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfilledQuantity","title":"Fulfilled","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"FulfilledQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeChart","columnid":"Fulfillment","title":"Fulfillment","subtotals":"","tooltip":"","width":-1,"display":"shown","type":"stackbar","relative":true,"attributes":[{"name":"Unfulfilled demand","color":"rgb(232,123,0)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Unfulfilled demand","title":"Unfulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"maxvalue( object.Quantity() - object.FulfilledQuantity(), 0.0).Round( 2)"}},{"name":"Fulfilled demand","color":"rgb(87,184,71)","expression":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Fulfilled demand","title":"Fulfilled demand","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"object.FulfilledQuantity().Round( 2)"}}]}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsFirmed","title":"Is firmed","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsFirmed"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsEligibleForNetting","title":"Is eligible for netting","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsEligibleForNetting"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriceUoM","title":"PriceUoM","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"PriceUoM"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderTag","title":"璁㈠崟鏍囩","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderTag"}}]' diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def new file mode 100644 index 0000000..d9aacef --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Component_listContextMenuSD.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +Component listContextMenuSD #extension +{ + Children: + [ + Component MenuPriorityResult + { + #keys: '[414382.0.562012014]' + BaseType: 'WebMenu' + Properties: + [ + Taborder: 10 + Title: '浜嬩笟閮ㄤ紭鍏堢骇璁$畻' + ] + } + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResult_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResult_OnClick.def new file mode 100644 index 0000000..c4f3379 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCustomerOrders/Response_TIANMA_JITUAN_ListSalesDemands_MenuPriorityResult_OnClick.def @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: ListSalesDemands +Response OnClick () id:Response_ListSalesDemands_MenuPriorityResult_OnClick +{ + #keys: '[414382.0.563130924]' + CanBindMultiple: false + DefinitionID => //FormSalesDemands/ListSalesDemands/Responsedef_ListSalesDemands_WebMenu_OnClick + Initiator: 'MenuPriorityResult' + QuillAction + { + Body: + [* + + dlg := construct( DialogChoosePriorityPolicy ); + dlg.OpenChoose(); + *] + GroupServerCalls: false + } +} -- Gitblit v1.9.3