From 15bca552940ac3967dd7efd4fe28b14c4a8689db Mon Sep 17 00:00:00 2001 From: hongji.li <hongji.a.li@capgemini.com> Date: 星期六, 07 十月 2023 16:48:17 +0800 Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/TIANMA_JITUAN into dev_lhj --- _Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_New.def | 18 _Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl | 10 _Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl | 2 _Main/BL/Type_OrganCode/_ROOT_Type_OrganCode.qbl | 10 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def | 4 _Main/UI/MacroPlannerWebApp/Component_Form367/Component_PanelBusinessType.def | 14 _Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType.def | 35 + _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnOk_OnClick.def | 15 _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_ClickBtnOk.def | 19 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def | 2 _Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl | 4 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def | 2 _Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def | 10 _Main/BL/Type_MacroPlan/Method_MappingProductData.qbl | 4 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews#633.def | 11 _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_Edit.def | 17 _Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl | 8 _Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl | 1 _Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl | 2 _Main/BL/Type_OrganCode/Attribute_OrganCodeName.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuDelete267_OnClick.def | 19 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuDel_OnClick.def | 19 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def | 24 + _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnCreated.def | 19 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def | 5 _Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl | 5 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def | 33 + _Main/BL/Type_PriorityResult/StaticMethod_GetRemindFormula.qbl | 1 _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnCancel_OnClick.def | 15 _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/_ROOT_Component_DialogOrganCode.def | 33 + _Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNewOrganCode_OnClick.def | 20 _Main/BL/Relations/Relation_OrganCode_BusinessType_BusinessType_OrganCode.qbl | 23 + _Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl | 9 _Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcStr.qbl | 94 ++++ _Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def | 12 _Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl | 5 _Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl | 2 _Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcFormula.qbl | 22 + _Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl | 27 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def | 8 _Main/BL/Type_BusinessType/Attribute_ScenarioName.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType#367.def | 3 _Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuEdit526_OnClick.def | 20 _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def | 1 _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlContent.def | 26 + _Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl | 8 _Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl | 4 _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def | 15 _Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def | 2 _Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListOrganCode.def | 62 ++ _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNew_OnClick.def | 19 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonPriority_OnClick.def | 16 _Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def | 4 _Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl | 1 _Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl | 4 _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def | 40 + _Main/BL/Type_BusinessType/Attribute_DisplayType.qbl | 8 _Main/UI/MacroPlannerWebApp/Views/Business_Type_Maintain.vw | 351 +++++++++++++++ _Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def | 4 _Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def | 27 + _Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorSelect_OnDataChanged.def | 17 _Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def | 3 _Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl | 45 + _Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl | 4 65 files changed, 1,218 insertions(+), 72 deletions(-) diff --git a/_Main/BL/Relations/Relation_OrganCode_BusinessType_BusinessType_OrganCode.qbl b/_Main/BL/Relations/Relation_OrganCode_BusinessType_BusinessType_OrganCode.qbl new file mode 100644 index 0000000..53c42ae --- /dev/null +++ b/_Main/BL/Relations/Relation_OrganCode_BusinessType_BusinessType_OrganCode.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation OrganCode_BusinessType_BusinessType_OrganCode +{ + #keys: '1[412960.0.276650038]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide BusinessType + { + #keys: '3[412960.0.276650040][412960.0.276650039][412960.0.276650041]' + Cardinality: '0to1' + ObjectDefinition: OrganCode + OwningSide: 'Reference' + } + RelationSide.RightSide OrganCode + { + #keys: '3[412960.0.276650043][412960.0.276650042][412960.0.276650044]' + Cardinality: '1toN' + ObjectDefinition: BusinessType + OwningSide: 'Owned' + } +} diff --git a/_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl b/_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl index f2fb6a3..44f63a3 100644 --- a/_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl +++ b/_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl @@ -3,5 +3,6 @@ Attribute BusinessTypeName { #keys: '3[414382.0.361554811][414382.0.361554810][414382.0.361554812]' + Description: '浜嬩笟閮ㄥ悕绉�' ValueType: String } diff --git a/_Main/BL/Type_BusinessType/Attribute_DisplayType.qbl b/_Main/BL/Type_BusinessType/Attribute_DisplayType.qbl new file mode 100644 index 0000000..72577fd --- /dev/null +++ b/_Main/BL/Type_BusinessType/Attribute_DisplayType.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute DisplayType +{ + #keys: '3[412960.0.276650024][412960.0.276650023][412960.0.276650025]' + Description: '鏄剧ず绫诲瀷' + ValueType: String +} diff --git a/_Main/BL/Type_BusinessType/Attribute_ScenarioName.qbl b/_Main/BL/Type_BusinessType/Attribute_ScenarioName.qbl new file mode 100644 index 0000000..bf93bb5 --- /dev/null +++ b/_Main/BL/Type_BusinessType/Attribute_ScenarioName.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ScenarioName +{ + #keys: '3[412960.0.276650011][412960.0.276650010][412960.0.276650012]' + Description: '鍦烘櫙鍚嶇О' + ValueType: String +} diff --git a/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl index c6520fb..a6f9a24 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl @@ -9,7 +9,12 @@ TextBody: [* // renhao Aug-14-2023 (created) - listtodeal := selectset( globalOTDTable,Global_MappingActualProductInStockingPointInPeriod,actual,actual.ActualInventoryLevelEnd() > 0 ); + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); + listtodeal := selectset( globalOTDTable, + Global_MappingActualProductInStockingPointInPeriod, + actual, + ( actual.ActualInventoryLevelEnd() > 0 ) and + ( organcodelist.Find( actual.StockingPointID().SubString( 0, 3 ) ) >= 0 ) ); totalcount := listtodeal.Size(); info( "ActualPISPIP has " + totalcount.AsQUILL() + " rows in total" ); @@ -24,7 +29,7 @@ if( not isnull(businessTypes)){ for( i :=0 ;i < businessTypes.Size();i++ ){ - businessType := businessTypes.Element( i); + businessType := businessTypes.Element( i ); if( product.BusinessType() = businessType and not product.IsCommon()){ ActualProductInStockingPointInPeriod::CreateOrUpdate( this, actual.ProductID(), diff --git a/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl index 3a572dc..9d01ece 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl @@ -14,7 +14,12 @@ if( isnull( businessTypes ) or businessTypes.Size() = 0 ) { listToDeal := selectset( globalOTDTable, Global_MappingCustomOrder, item, true ); } else { - listToDeal := selectset( globalOTDTable, Global_MappingCustomOrder, item, businessTypes.Find( item.BusinessType() ) <> -1 ); + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); + listToDeal := selectset( globalOTDTable, + Global_MappingCustomOrder, + item, + ( businessTypes.Find( item.BusinessType() ) <> -1 ) and + ( organcodelist.Find( item.StockingPointID().SubString( 0, 3 ) ) >= 0 ) ); } queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date(); queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() ); diff --git a/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl index c6a2bcf..39675d3 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl @@ -11,7 +11,13 @@ // renhao Aug-14-2023 (created) queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date(); queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() ); - listtodeal := selectset( globalOTDTable,Global_MappingInventorySupply,externalSupply, externalSupply.UserQuantity()>0 and externalSupply.Date() >= queryStartDate /*and externalSupply.Date() <= queryEndDate*/); + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); + listtodeal := selectset( globalOTDTable, + Global_MappingInventorySupply, + externalSupply, + ( externalSupply.UserQuantity()>0 ) and + ( externalSupply.Date() >= queryStartDate ) and + ( organcodelist.Find( externalSupply.StockingPointID().SubString( 0, 3 ) ) >= 0 )/*and externalSupply.Date() <= queryEndDate*/); totalcount := listtodeal.Size(); description := "鍦ㄩ�斿湪鍒�"; info( "ExternalSupply has " + totalcount.AsQUILL() + " rows in total" ); @@ -32,7 +38,7 @@ if( not isnull(businessTypes)){ for( i :=0 ;i < businessTypes.Size();i++ ){ - businessType := businessTypes.Element( i); + businessType := businessTypes.Element( i ); if( product.BusinessType() = businessType and not product.IsCommon()){ InventorySupply::CreateOrUpdate( externalSupply.ID(), productMP, diff --git a/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl index 21b752b..5fbb66c 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl @@ -14,7 +14,13 @@ if( isnull( businessTypes ) or businessTypes.Size() = 0 ) { listToDeal := selectset( globalOTDTable, Global_MappingForecast, item, item.Quantity() > 0 ); } else { - listToDeal := selectset( globalOTDTable, Global_MappingForecast, item, businessTypes.Find( item.BusinessType() ) <> -1 and item.Quantity()>0 ); + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); + listToDeal := selectset( globalOTDTable, + Global_MappingForecast, + item, + ( businessTypes.Find( item.BusinessType() ) <> -1 ) and + ( item.Quantity()>0 ) and + ( organcodelist.Find( item.StockingPointID().SubString( 0, 3 ) ) >= 0 ) ); } queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date(); queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() ); diff --git a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl index b716d4d..663464c 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl @@ -14,11 +14,13 @@ if( isKeyProduct ) { keyProductList := selectuniquevalues( globalOTDTable, Global_MappingProduct_MP, item, item.ProductMajorType()="鎴愬搧" or item.ProductMajorType()="鍗婃垚鍝�", item.ID() ); } + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); bomList := selectsortedset( globalOTDTable, Global_MappingOperationBOM, item, ifexpr( isnull( businessTypes ) or businessTypes.Size() = 0, true, // businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0 ) - businessTypes.Find( item.BusinessType() ) >= 0 ) + ( businessTypes.Find( item.BusinessType() ) >= 0 ) and + ( organcodelist.Find( item.OrganCode() ) >= 0 ) ) // and ifexpr( isKeyProduct, // keyProductList.Size() > 0 and keyProductList.Find( item.ComponentCode() ) >= 0, // true ) diff --git a/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl index 1e71d79..9a458dd 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl @@ -1,6 +1,7 @@ Quintiq file version 2.0 #parent: #root Method MappingOperationCostData ( + GlobalOTDTable globalOTDTable, Strings businesstypes ) { @@ -14,7 +15,12 @@ if( isnull( businesstypes ) or businesstypes.Size() = 0 ) { listtodeal := selectset( this, MappingOperation, item, true ); } else { - listtodeal := selectset( this, MappingOperation, item, businesstypes.Find( item.BusinessType() ) <> -1 ); + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businesstypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); + listtodeal := selectset( this, + MappingOperation, + item, + ( businesstypes.Find( item.BusinessType() ) <> -1 ) and + ( organcodelist.Find( item.OrganCode() ) >= 0 ) ); } // Get the list to deal with max sequence number diff --git a/_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl index 29e7e21..b09ed68 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl @@ -11,8 +11,10 @@ // 鑾峰彇鏈夊簭鐨勫緟澶勭悊璁板綍 toDealList := construct( Global_MappingOperations ) ; if( not isnull( businessTypes ) and businessTypes.Size() > 0 ) { + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); toDealList := selectsortedset( globalOTDTable, Global_MappingOperation, item, - businessTypes.Find( item.BusinessType() ) >= 0, + ( businessTypes.Find( item.BusinessType() ) >= 0 ) and + ( organcodelist.Find( item.OrganCode() ) >= 0 ), // businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0, item.SequenceNumber() ); } else { diff --git a/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl index ab7398e..1e0929e 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl @@ -23,10 +23,10 @@ } } else { if( iskeyproduct = true ){ - listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.KeyProduct() = true and businesstypes.Find( item.BusinessType()) >= 0 ); + listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.KeyProduct() = true and businesstypes.Find( item.BusinessType() ) >= 0 ); } else{ - listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, businesstypes.Find( item.BusinessType()) >= 0 ); + listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, businesstypes.Find( item.BusinessType() ) >= 0 ); } } totalcount := listToDeal.Size(); diff --git a/_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl index cf459b5..d7f21c2 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl @@ -14,7 +14,10 @@ if( isnull( businessTypes ) or businessTypes.Size() = 0 ) { listToDeal := selectset( globalOTDTable, Global_MappingSalesSegment_MP, item, true ); } else { - listToDeal := selectset( globalOTDTable, Global_MappingSalesSegment_MP, item, businessTypes.Find( item.BusinessType() ) <> -1 ); + listToDeal := selectset( globalOTDTable, + Global_MappingSalesSegment_MP, + item, + businessTypes.Find( item.BusinessType() ) <> -1 ); } //nameList := construct( structured[String] ); //nameList := selectvalues( listToDeal, Elements, item, true, item.Name() ); diff --git a/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl index e826ddb..671fe30 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl @@ -15,9 +15,11 @@ if( isnull( businesstypes ) or businesstypes.Size() = 0 ) { listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, true ); } else { + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businesstypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, // businesstypes.Difference( businesstypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0 - businesstypes.Find( item.BusinessType() ) >= 0 + ( businesstypes.Find( item.BusinessType() ) >= 0 ) and + ( organcodelist.Find( item.OrganCode() ) >= 0 ) ); } diff --git a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl index b4361d5..875645b 100644 --- a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl +++ b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl @@ -131,7 +131,7 @@ // todo 鍒堕�犳垚鏈�-16 info( "InventoryCost Finished, Start OperationCost Mapping" ); - macroPlan.MappingOperationCostData( businessTypes ); + macroPlan.MappingOperationCostData( globalOTDTable, businessTypes ); // 璁㈠崟棰勬祴-17 Forecast::DoSync( macroPlan, businessTypes ,globalOTDTable); diff --git a/_Main/BL/Type_OrganCode/Attribute_OrganCodeName.qbl b/_Main/BL/Type_OrganCode/Attribute_OrganCodeName.qbl new file mode 100644 index 0000000..bdf1f0e --- /dev/null +++ b/_Main/BL/Type_OrganCode/Attribute_OrganCodeName.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute OrganCodeName +{ + #keys: '3[412960.0.276650052][412960.0.276650051][412960.0.276650053]' + Description: '缁勭粐缂栫爜鍚嶇О' + ValueType: String +} diff --git a/_Main/BL/Type_OrganCode/_ROOT_Type_OrganCode.qbl b/_Main/BL/Type_OrganCode/_ROOT_Type_OrganCode.qbl new file mode 100644 index 0000000..3a16e43 --- /dev/null +++ b/_Main/BL/Type_OrganCode/_ROOT_Type_OrganCode.qbl @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type OrganCode +{ + #keys: '5[412960.0.276650035][412960.0.276650033][0.0.0][412960.0.276650034][412960.0.276650036]' + BaseType: Object + Description: '浜嬩笟閮ㄥ搴旂殑缁勭粐缂栫爜闆嗗悎' + StructuredName: 'OrganCodes' +} diff --git a/_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl b/_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl index 9434404..d935ad9 100644 --- a/_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl +++ b/_Main/BL/Type_PriorityFactor/StaticMethod_GetCoeffcientByName.qbl @@ -11,7 +11,7 @@ // NBoTk Sep-21-2023 (created) data := selectobject( owner,PriorityFactor,p, - p.BusinessType() = businessType and p.Name() = name + p.Name() = name ) return data.Coefficient(); diff --git a/_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl b/_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl index 98115c4..05489f2 100644 --- a/_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl +++ b/_Main/BL/Type_PriorityFactor/StaticMethod_GetNameList.qbl @@ -11,7 +11,6 @@ value := ""; strList := selectuniquevalues( owner,PriorityFactor,p, - p.BusinessType() = businessType, p.Name() ); diff --git a/_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl b/_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl index 76858f0..956d704 100644 --- a/_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl +++ b/_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl @@ -1,8 +1,7 @@ Quintiq file version 2.0 #parent: #root StaticMethod InitData ( - MacroPlan owner, - String businessType + MacroPlan owner ) { TextBody: @@ -10,25 +9,35 @@ // NBoTk Sep-15-2023 (created) // businessType // result := "闆嗗洟闈㈡澘;涓撲笟鏄剧ず浜嬩笟閮�;澶栧崠CELL;闈炴樉;杩愬姩鍋ュ悍;杩愬姩鍋ュ悍浜嬩笟閮�;鎵嬫満浜嬩笟閮�;鐗圭鏄剧ず;姹借溅鐢靛瓙浜嬩笟閮�;杞﹁浇鏄剧ず浜嬩笟閮�;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 ); - // 浼樺厛绾у洜瀛愮粏鍒� - priorityFactorList := selectset( owner,PriorityFactor,p, - p.BusinessType() = businessType - ); + businessType := ""; - traverse( priorityFactorList,Elements,e) + // 濡傛灉宸茬粡瀛樺湪浼樺厛绾ф暟鎹� 鍒欎笉鍋氬鐞� + list := selectset( owner,PriorityFactor,p,true); + if( list.Size() = 0 ) { - PriorityFactorDetails::InitData( owner,e); + + // 娣诲姞浜嬩笟閮ㄥ搴旂殑棰勫埗浼樺厛绾у洜瀛愭暟鎹� + 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 ); + + // 浼樺厛绾у洜瀛愮粏鍒� + priorityFactorList := selectset( owner,PriorityFactor,p, + p.BusinessType() = businessType + ); + + traverse( priorityFactorList,Elements,e) + { + PriorityFactorDetails::InitData( owner,e); + } + } *] } diff --git a/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcFormula.qbl b/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcFormula.qbl new file mode 100644 index 0000000..c76e0a0 --- /dev/null +++ b/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcFormula.qbl @@ -0,0 +1,22 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetCalcFormula ( + MacroPlan macroPlan, + String formula +) as String +{ + TextBody: + [* + // NBoTk Oct-7-2023 (created) + priorityFactor := null( PriorityFactor); + traverse( macroPlan,PriorityFactor,p) + { + if( formula.StartsWith( p.Name()) ) + { + priorityFactor := p; + } + } + value := priorityFactor.Name() + "[" + [String]priorityFactor.Coefficient() +"*L]"; + return value; + *] +} diff --git a/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcStr.qbl b/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcStr.qbl new file mode 100644 index 0000000..2095877 --- /dev/null +++ b/_Main/BL/Type_PriorityPolicy/StaticMethod_GetCalcStr.qbl @@ -0,0 +1,94 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetCalcStr ( + MacroPlan macroPlan, + String formula, + String lastCalcStr +) as String +{ + TextBody: + [* + // NBoTk Oct-7-2023 (created) + + calcStr := ""; + remindFormula := formula; + + // 閬嶅巻浼樺厛绾у洜瀛愰厤缃� + if( not remindFormula = '' ) + { + // 浠庤捣濮嬩綅缃紑濮嬪尮閰� + if(remindFormula.StartsWith( "+" )) + { + remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1); + calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula); + calcStr := lastCalcStr + "+" + calcStr; + + // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻 + remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan); + PriorityPolicy::GetCalcStr( macroPlan,remindFormula,calcStr); + } + else if( remindFormula.StartsWith( "-" )) + { + remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1); + calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula); + calcStr := lastCalcStr + "-" + calcStr; + + // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻 + remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan); + PriorityPolicy::GetCalcStr( macroPlan,remindFormula,calcStr); + } + else if( remindFormula.StartsWith( "*" ) ) + { + remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1); + calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula); + calcStr := lastCalcStr + "*" + calcStr; + + // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻 + remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan); + PriorityPolicy::GetCalcStr( macroPlan,remindFormula,calcStr); + } + else if( remindFormula.StartsWith( "/" ) ) + { + remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1); + calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula); + calcStr := lastCalcStr + "/" + calcStr; + + // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻 + remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan); + PriorityPolicy::GetCalcStr( macroPlan,remindFormula,calcStr); + } + else if( remindFormula.StartsWith( "(" ) ) + { + remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1); + calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula); + calcStr := lastCalcStr + "{" + calcStr; + + // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻 + remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan); + PriorityPolicy::GetCalcStr( macroPlan,remindFormula,calcStr); + } + else if( remindFormula.StartsWith( ")" ) ) + { + remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1); + calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula); + calcStr := lastCalcStr + ")" + calcStr; + + // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻 + remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan); + PriorityPolicy::GetCalcStr( macroPlan,remindFormula,calcStr); + } + else + { + // 涓嶆槸绗﹀彿 鐩存帴鑾峰彇璁$畻鍚庣殑鏁板�� + calcStr := PriorityPolicy::GetCalcFormula(macroPlan,remindFormula); + + // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻 + remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan); + PriorityPolicy::GetCalcStr( macroPlan,remindFormula,calcStr); + } + + } + + return calcStr; + *] +} diff --git a/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl b/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl index 7c80e98..122b53c 100644 --- a/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl +++ b/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackCalcStr.qbl @@ -28,7 +28,7 @@ } } - nameList := PriorityFactor::GetDataByBusinessType( owner,businessType); + nameList := PriorityFactor::GetDataByBusinessType( owner,""); traverse( nameList,Elements,e) { nameText := e.Name() + "[" + [String]e.Coefficient() + "*L]" diff --git a/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl b/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl index 55e5bd0..129f7d7 100644 --- a/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl +++ b/_Main/BL/Type_PriorityPolicy/StaticMethod_RollBackStr.qbl @@ -10,7 +10,6 @@ [* // NBoTk Sep-21-2023 (created) value := stringData; - symbolList := construct( structured[String]); symbolList.Add( "+") symbolList.Add( "-") @@ -28,7 +27,7 @@ } } - nameList := PriorityFactor::GetDataByBusinessType( owner,businessType); + nameList := PriorityFactor::GetDataByBusinessType( owner,""); traverse( nameList,Elements,e) { if( stringData.EndsWith( e.Name())) @@ -37,7 +36,6 @@ value := stringData.SubString( 0,end); } } - return value; *] } diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl index 93e2b2f..7b59176 100644 --- a/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl +++ b/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl @@ -17,7 +17,6 @@ remindFormula := formula; // 閬嶅巻浼樺厛绾у洜瀛愰厤缃� - if( not remindFormula = '' ) { // 浠庤捣濮嬩綅缃紑濮嬪尮閰� @@ -70,7 +69,7 @@ PriorityResult::CalculateBracketScore(calcStr,customerOrder,businessType,macroPlan,globalOTDTable); // 鎴彇 ) 鍚庣殑瀛楃缁х画杩涜璁$畻 - remindFormula := remindFormula.SubString( rightBracket,remindFormula.Length()); + remindFormula := remindFormula.SubString( rightBracket,remindFormula.Length()-1); } else { @@ -83,6 +82,6 @@ } // 娌℃湁鍖归厤 鍏紡璁$畻瀹屾垚 - return lastScore; + return score; *] } diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_GetRemindFormula.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_GetRemindFormula.qbl index fd4f1f0..3033476 100644 --- a/_Main/BL/Type_PriorityResult/StaticMethod_GetRemindFormula.qbl +++ b/_Main/BL/Type_PriorityResult/StaticMethod_GetRemindFormula.qbl @@ -27,7 +27,6 @@ } } - info( "remindStr = " + str ); return str; *] } diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl index 715b2f8..7cd8770 100644 --- a/_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl +++ b/_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl @@ -16,7 +16,6 @@ { // 浜嬩笟閮ㄤ俊鎭� businessType := e.BusinessType(); - //businessType := "鎵嬫満浜嬩笟閮�"; // 鑾峰彇瀵瑰簲浜嬩笟閮ㄨ绠楀叕寮� priorityPolicys := selectobject( macroPlan,PriorityPolicy,p,p.BusinessType() = businessType and p.Name() = priorityPolicyName); @@ -24,7 +23,6 @@ // 閫掑綊澶勭悊璁$畻鍏紡 鑾峰彇褰撳墠璁㈠崟鐨勫緱鍒� 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(), DemandDate := e.EndDate(),ProductID := e.ProductID(),Quantity := e.Quantity(),SalesSegmentName := e.SalesSegmentName(), @@ -56,6 +54,10 @@ result.PriorityResultScore() ) + // Quintiq浼樺厛绾у垎10绾� 闇�瑕佸垎娈佃绠� + subLevel := resultList.Size() div 10; + subLevelCount := 0; + priorityValue := 1; traverse( resultList,Elements,e) { @@ -70,15 +72,24 @@ // 鍒涘缓浼樺厛绾ф暟鎹� 闇�瑕佸厛娓呴櫎涓婁竴娆$殑璁$畻缁撴灉 // 鍒ゆ柇褰撳墠customerOrder鏄惁瀛樺湪 - oldPriority := selectobject( macroPlan,Priority,p,p.Name() = obj.OrderID()); - if(not isnull( oldPriority ) ) + oldPriority := selectobject( macroPlan,Priority,p,p.Name() = [String]priorityValue); + if(isnull( oldPriority ) ) { - macroPlan.Priority(reldelete, oldPriority); - } - macroPlan.Priority(relnew,Weight := priorityValue,Name := obj.OrderID()); - priorityValue := priorityValue + 1; + macroPlan.Priority(relnew,Weight := priorityValue,Name := [String]priorityValue); + } } + // 鍒ゆ柇璁$畻鍒嗘鏁伴噺涓嶲uintiq鍘熷浼樺厛绾� + subLevelCount := subLevelCount + 1; + if( subLevelCount = subLevel ) + { + // 褰撳埌杈惧垎娈垫暟閲忓悗 浼樺厛绾�+1 鍒嗘璁℃暟浠�0寮�濮� + if( priorityValue < 10 ) + { + priorityValue := priorityValue + 1; + } + subLevelCount := 0; + } } *] } diff --git "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews\043633.def" "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews\043633.def" index 82df44f..b9da9db 100644 --- "a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews\043633.def" +++ "b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupSalesViews\043633.def" @@ -18,5 +18,16 @@ Taborder: 3 ] } + Component ButtonPriority + { + #keys: '[414382.0.587601840]' + BaseType: 'WebButton' + Properties: + [ + Image: 'QUEUE' + Label: '浼樺厛绾у洜瀛�' + Taborder: 4 + ] + } ] } diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonPriority_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonPriority_OnClick.def new file mode 100644 index 0000000..feae35c --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonPriority_OnClick.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: ActionBarGroupSalesViews/ButtonPriority +Response OnClick () id:Response_TIANMA_JITUAN_ActionBarGroupSalesViews_ButtonPriority_OnClick +{ + #keys: '[414382.0.587601951]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + ApplicationScope.ViewManager().ResetUserViewById( "PriorityTest",true); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def index b6cdcbb..07b8549 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def @@ -12,10 +12,35 @@ Properties: [ DataBinding: 'DataHolderBusinessType.Data.BusinessTypeName' - Label: 'Business Type Name' + Description: '浜嬩笟閮ㄥ悕绉拌緭鍏�' + Label: '浜嬩笟閮ㄥ悕绉�' Taborder: 0 ] } + Component editScenarioName + { + #keys: '[412960.0.275480603]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderBusinessType.Data.ScenarioName' + Description: '鍦烘櫙鍚嶇О缂栬緫' + Label: '鍦烘櫙鍚嶇О' + Taborder: 1 + ] + } + Component editDisplayType + { + #keys: '[412960.0.278321833]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderBusinessType.Data.DisplayType' + Description: '鏄剧ず绫诲瀷缂栬緫' + Label: '鏄剧ず绫诲瀷' + Taborder: 2 + ] + } ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def b/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def index fbfa4cc..1f4e6a1 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Method_ClickBtnOk.def @@ -11,12 +11,10 @@ // OnOk this.ApplyChanges(); - - businessType := DataHolderBusinessType.Data().BusinessTypeName(); DataHolderBusinessType.Data().Commit(); - PriorityFactor::InitData( MacroPlan,businessType); + PriorityFactor::InitData( MacroPlan); this.Close(); *] diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_New.def new file mode 100644 index 0000000..a0e37ff --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogEditPriorityFactor/Method_New.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: #root +Method New ( + MacroPlan owner, + String businessType +) id:Method_DialogEditPriorityFactor_New +{ + #keys: '[414382.0.593002251]' + Body: + [* + data := owner.PriorityFactor(relshadow); + data.BusinessType(businessType); + + DataHolderEditPriorityFactor.Data(&data); + + ApplicationMacroPlanner.ShowFormModal( this ); + *] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def new file mode 100644 index 0000000..262d308 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def @@ -0,0 +1,40 @@ +Quintiq file version 2.0 +Component pnlActions +{ + #keys: '[412960.0.278371059]' + BaseType: 'WebPanel' + Children: + [ + Component btnOk + { + #keys: '[412960.0.278371063]' + BaseType: 'WebButton' + Properties: + [ + Label: 'OK' + Taborder: 0 + ] + } + Component btnCancel + { + #keys: '[412960.0.278371065]' + 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_DialogOrganCode/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlContent.def new file mode 100644 index 0000000..459a754 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlContent.def @@ -0,0 +1,26 @@ +Quintiq file version 2.0 +Component pnlContent +{ + #keys: '[412960.0.278371057]' + BaseType: 'WebPanel' + Children: + [ + Component editOrganCodeName + { + #keys: '[412960.0.280135212]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderOrganCode.Data.OrganCodeName' + Description: '缁勭粐缂栫爜鍚嶇О缂栬緫' + Label: '缁勭粐缂栫爜' + Taborder: 0 + ] + } + ] + Properties: + [ + Padding: 'true' + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_ClickBtnOk.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_ClickBtnOk.def new file mode 100644 index 0000000..4e90d83 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_ClickBtnOk.def @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: #root +Method ClickBtnOk () id:Method_DialogOrganCode_ClickBtnOk +{ + #keys: '[412960.0.279955432]' + Body: + [* + // Disabled button to prevent the possibility of multiple firing + + btnOk.Enabled(false,''); + + // OnOk + this.ApplyChanges(); + + DataHolderOrganCode.Data().Commit(); + + this.Close(); + *] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_Edit.def new file mode 100644 index 0000000..299bad9 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_Edit.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: #root +Method Edit ( + OrganCode selection +) id:Method_DialogOrganCode_Edit +{ + #keys: '[412960.0.279955433]' + Body: + [* + // Edits assumption + data := shadow( selection ); + + DataHolderOrganCode.Data( &data ); + + ApplicationMacroPlanner.ShowFormModal( this ); + *] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def new file mode 100644 index 0000000..b312c1c --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: #root +Method New ( + BusinessType owner +) id:Method_DialogOrganCode_New +{ + #keys: '[412960.0.279955435]' + Body: + [* + data := owner.OrganCode(relshadow); + DataHolderOrganCode.Data( &data); + + ApplicationMacroPlanner.ShowFormModal( this ); + *] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnCancel_OnClick.def new file mode 100644 index 0000000..fb27680 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/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: '[412960.0.278371069]' + DefinitionID: 'Responsedef_WebButton_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + Form.Close(); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnOk_OnClick.def new file mode 100644 index 0000000..3ac7bbe --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnOk_OnClick.def @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: pnlActions/btnOk +Response OnClick () id:Response_pnlActions_btnOk_OnClick +{ + #keys: '[412960.0.278371068]' + DefinitionID: 'Responsedef_WebButton_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + Form.ClickBtnOk() + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/_ROOT_Component_DialogOrganCode.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/_ROOT_Component_DialogOrganCode.def new file mode 100644 index 0000000..c681a1b --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/_ROOT_Component_DialogOrganCode.def @@ -0,0 +1,33 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlannerWebApp +OrphanComponent DialogOrganCode +{ + #keys: '[412960.0.278371055]' + BaseType: 'WebForm' + Children: + [ + #child: pnlContent + #child: pnlActions + Component DataHolderOrganCode + { + #keys: '[412960.0.279955517]' + BaseType: 'WebDataHolder' + Databinding: 'shadow[OrganCode]*' + Properties: + [ + Taborder: 2 + ] + } + ] + Properties: + [ + Alignment: 'trailing' + Description: '缁勭粐缂栫爜杈圭晫寮圭獥' + EnterButton: 'btnOk' + EscapeButton: 'btnCancel' + ExcludeFromActiveComponent: true + Padding: 'false' + Title: '缁勭粐缂栫爜缂栬緫' + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def index b0713d9..c7e5490 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def @@ -28,7 +28,7 @@ ] Properties: [ - Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessTypeName","title":"BusinessTypeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessTypeName"}}]' + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessTypeName","title":"BusinessTypeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessTypeName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayType","title":"DisplayType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DisplayType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ScenarioName","title":"ScenarioName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ScenarioName"}}]' ContextMenu: 'listContextMenuBusinessType655' Taborder: 2 ] diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListOrganCode.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListOrganCode.def new file mode 100644 index 0000000..055b426 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListOrganCode.def @@ -0,0 +1,62 @@ +Quintiq file version 2.0 +Component ListOrganCode +{ + #keys: '[412960.0.278370451]' + BaseType: 'WebList' + Children: + [ + Component DataExtractorOrganCode + { + #keys: '[412960.0.278370452]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'BusinessType' + Description: '缁勭粐缂栫爜' + ExtractionMode: 'Selected' + Source: 'ListBusinessType' + Taborder: 0 + Transformation: 'OrganCode' + ] + } + #child: listActionBarPageOrganCode + Component DataSetLevelOrganCode + { + #keys: '[412960.0.278370457]' + BaseType: 'WebDataSetLevel' + Children: + [ + #child: listContextMenuBusinessType + ] + Properties: + [ + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrganCodeName","title":"OrganCodeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrganCodeName"}}]' + ContextMenu: 'listContextMenuBusinessType' + Taborder: 2 + ] + } + ] + Properties: + [ + Description: '缁勭粐缂栫爜' + Taborder: 0 + ] + ResponseDefinitions: + [ + DelegatedResponseDefinition OnClick id:Responsedef_ListOrganCode_WebMenu_OnClick + { + #keys: '[412960.0.280046014]' + Initiator: 'WebMenu' + IsInherited: false + ResponseType: 'OnClick' + Arguments: + [ + ResponseDefinitionArgument selection + { + #keys: '[507.0.16811226]' + Binding: 'this.Selection()' + } + ] + } + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_PanelBusinessType.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_PanelBusinessType.def new file mode 100644 index 0000000..9e8ac81 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_PanelBusinessType.def @@ -0,0 +1,14 @@ +Quintiq file version 2.0 +Component PanelBusinessType +{ + #keys: '[412960.0.278370440]' + BaseType: 'WebPanel' + Children: + [ + #child: ListOrganCode + ] + Properties: + [ + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def new file mode 100644 index 0000000..cc122e0 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component listActionBarPageOrganCode +{ + #keys: '[412960.0.278370454]' + BaseType: 'listActionBarPage' + Properties: + [ + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType.def new file mode 100644 index 0000000..d8d6b3c --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType.def @@ -0,0 +1,35 @@ +Quintiq file version 2.0 +Component listContextMenuBusinessType +{ + #keys: '[412960.0.278370459]' + BaseType: 'listContextMenu' + Children: + [ + Component MenuEdit526 + { + #keys: '[412960.0.278370780]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'PENCIL' + Taborder: 3 + Title: 'Edit' + ] + } + Component MenuDelete267 + { + #keys: '[412960.0.278370833]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'DELETE' + Taborder: 4 + Title: 'Delete' + ] + } + ] + Properties: + [ + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def index 30edf41..6d6b098 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def @@ -38,6 +38,18 @@ Title: 'Delete' ] } + Component MenuNewOrganCode + { + #keys: '[412960.0.280077335]' + BaseType: 'WebMenu' + Properties: + [ + Description: '鏂板缓缁勭粐缂栫爜' + Image: 'EARTH_ADD' + Taborder: 6 + Title: 'Add Organ Code' + ] + } ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNewOrganCode_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNewOrganCode_OnClick.def new file mode 100644 index 0000000..fbc8746 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNewOrganCode_OnClick.def @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: ListBusinessType +Response OnClick ( + BusinessType selection +) id:Response_ListBusinessType_MenuNewOrganCode_OnClick +{ + #keys: '[412960.0.280105097]' + CanBindMultiple: false + DefinitionID => /ListBusinessType/Responsedef_ListBusinessType_WebMenu_OnClick + GroupServerCalls: true + Initiator: 'MenuNewOrganCode' + QuillAction + { + Body: + [* + dlg := construct( DialogOrganCode ); + dlg.New( selection ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuDelete267_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuDelete267_OnClick.def new file mode 100644 index 0000000..cb47729 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuDelete267_OnClick.def @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: ListOrganCode +Response OnClick ( + OrganCode selection +) id:Response_ListOrganCode_MenuDelete267_OnClick +{ + #keys: '[412960.0.280046423]' + CanBindMultiple: false + DefinitionID => /ListOrganCode/Responsedef_ListOrganCode_WebMenu_OnClick + GroupServerCalls: true + Initiator: 'MenuDelete267' + QuillAction + { + Body: + [* + selection.Delete(); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuEdit526_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuEdit526_OnClick.def new file mode 100644 index 0000000..1cbf4e6 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuEdit526_OnClick.def @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: ListOrganCode +Response OnClick ( + OrganCode selection +) id:Response_ListOrganCode_MenuEdit526_OnClick +{ + #keys: '[412960.0.280046170]' + CanBindMultiple: false + DefinitionID => /ListOrganCode/Responsedef_ListOrganCode_WebMenu_OnClick + GroupServerCalls: true + Initiator: 'MenuEdit526' + QuillAction + { + Body: + [* + dlg := construct( DialogOrganCode ); + dlg.Edit( selection ); + *] + } +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType\043367.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType\043367.def" index e23342a..d9814cb 100644 --- "a/_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType\043367.def" +++ "b/_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType\043367.def" @@ -8,9 +8,10 @@ Children: [ #child: ListBusinessType + #child: PanelBusinessType ] Properties: [ - Title: 'Business Type' + Title: '浜嬩笟閮�&缁勭粐缂栫爜缁存姢' ] } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def index 6ac9928..ff1a3b3 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def @@ -12,10 +12,32 @@ Properties: [ Image: 'GEAR_EDIT' - Taborder: 3 + Taborder: 4 Title: '缂栬緫' ] } + Component MenuNew + { + #keys: '[414382.0.593001800]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'GEAR_ADD' + Taborder: 3 + Title: '鏂板' + ] + } + Component MenuDel + { + #keys: '[414382.0.593001811]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'GEAR_DELETE' + Taborder: 5 + Title: '鍒犻櫎' + ] + } ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorSelect_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorSelect_OnDataChanged.def new file mode 100644 index 0000000..ef61871 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorSelect_OnDataChanged.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: DataHolderPriorityFactorSelect +Response OnDataChanged () id:Response_FormPriorityFactor_DataHolderPriorityFactorSelect_OnDataChanged +{ + #keys: '[414382.0.593010798]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnDataChanged' + QuillAction + { + Body: + [* + data := selectset( MacroPlan,PriorityFactor,p,true); + this.Data(&data); + *] + 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 70938b2..0865d17 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def @@ -9,8 +9,9 @@ { Body: [* - //strings := BusinessType::GetBusinessNameStr( GlobalOTDTable ); - //this.Strings(strings); + info( "create" + DropDownStringListBusinessType.Text()); + list := PriorityFactor::GetDataByBusinessType( MacroPlan, DropDownStringListBusinessType.Text()); + DataHolderPriorityFactorSelect.Data(&list); *] GroupServerCalls: false } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def index 2ac7956..a1d8860 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def @@ -9,7 +9,7 @@ { Body: [* - info( "selection" ); + info( "selection" + DropDownStringListBusinessType.Text()); list := PriorityFactor::GetDataByBusinessType( MacroPlan, DropDownStringListBusinessType.Text()); DataHolderPriorityFactorSelect.Data(&list); *] diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuDel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuDel_OnClick.def new file mode 100644 index 0000000..8a86cdf --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuDel_OnClick.def @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: ListPriorityFactor +Response OnClick ( + PriorityFactor selection +) id:Response_ListPriorityFactor_MenuDel_OnClick +{ + #keys: '[414382.0.593002800]' + CanBindMultiple: false + DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick + Initiator: 'MenuDel' + QuillAction + { + Body: + [* + selection.Delete(); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNew_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNew_OnClick.def new file mode 100644 index 0000000..2d18cad --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNew_OnClick.def @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: ListPriorityFactor +Response OnClick () id:Response_ListPriorityFactor_MenuNew_OnClick +{ + #keys: '[414382.0.593002709]' + CanBindMultiple: false + DefinitionID => /ListPriorityFactor/Responsedef_ListPriorityFactor_WebMenu_OnClick + Initiator: 'MenuNew' + QuillAction + { + Body: + [* + dlg := construct( DialogEditPriorityFactor ); + businessType := DropDownStringListBusinessType.Text(); + dlg.New( MacroPlan, businessType); + *] + 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 b3df733..4e4d0d6 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def @@ -25,6 +25,7 @@ [ Label: '浜嬩笟閮�:' Taborder: 0 + Visible: false ] } #child: ListPriorityFactor diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def index b5d4a7b..33cfc53 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_ListPriorityPolicy.def @@ -12,7 +12,7 @@ Properties: [ DataType: 'structured[PriorityPolicy]' - Source: 'DataHolderPriorityPolicy' + Source: 'DataHolderPriorityPolicyShowList' Taborder: 0 Transformation: 'Elements' ] @@ -36,7 +36,7 @@ ] Properties: [ - Taborder: 2 + Taborder: 3 ] ResponseDefinitions: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def index 1923a0f..297e8db 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Component_PanelPriorityPolicyOperation.def @@ -40,7 +40,7 @@ ] Properties: [ - Taborder: 3 + Taborder: 4 Title: '浼樺厛绾х瓥鐣ラ厤缃�' ] } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnCreated.def new file mode 100644 index 0000000..237513d --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnCreated.def @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: DataHolderPriorityPolicy +Response OnCreated () id:Response_FormPriorityPolicy_DataHolderPriorityPolicy_OnCreated +{ + #keys: '[414382.0.594152096]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnCreated' + QuillAction + { + Body: + [* + data := this.Data(); + businessType := PriorityPolicyBusinessType.Text(); + list := selectset( data,Elements,e,e.BusinessType() = businessType); + DataHolderPriorityPolicyShowList.Data(&list); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def index 89b9c11..3388972 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_DataHolderPriorityPolicy_OnDataChanged.def @@ -2,15 +2,17 @@ #parent: DataHolderPriorityPolicy Response OnDataChanged () id:Response_FormPriorityPolicy_DataHolderPriorityPolicy_OnDataChanged { - #keys: '[414382.0.502145694]' + #keys: '[414382.0.595379026]' CanBindMultiple: false DefinitionID: 'Responsedef_WebComponent_OnDataChanged' QuillAction { Body: [* - list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text()); - this.Data(&list); + data := this.Data(); + businessType := PriorityPolicyBusinessType.Text(); + list := selectset( data,Elements,e,e.BusinessType() = businessType); + DataHolderPriorityPolicyShowList.Data(&list); *] GroupServerCalls: false } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def index 4fd7821..e693b84 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnCreated.def @@ -11,6 +11,9 @@ [* strings := BusinessType::GetBusinessNameStr( GlobalOTDTable ); this.Strings(strings); + + list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text()); + DataHolderPriorityPolicyShowList.Data(&list); *] GroupServerCalls: false } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def index 7acc7f0..ffc5263 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def @@ -9,8 +9,8 @@ { Body: [* - //list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text()); - //DataHolderPriorityPolicy.Data(&list); + list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text()); + DataHolderPriorityPolicyShowList.Data(&list); *] GroupServerCalls: false } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def index 72153cd..12068c1 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/_ROOT_Component_FormPriorityPolicy.def @@ -22,9 +22,24 @@ #keys: '[414382.0.487792124]' BaseType: 'WebDataHolder' Databinding: 'structured[PriorityPolicy]*' + Children: + [ + Component DataExtractorPriorityPolicy216 + { + #keys: '[414382.0.593061574]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'MacroPlan' + Source: 'MacroPlan' + Taborder: 0 + Transformation: 'PriorityPolicy' + ] + } + ] Properties: [ - Taborder: 1 + Taborder: 2 ] } #child: ListPriorityPolicy @@ -36,7 +51,7 @@ Databinding: 'shadow[PriorityPolicy]*' Properties: [ - Taborder: 4 + Taborder: 5 ] } Component DataHolderPriorityPolicyBusinessType @@ -61,7 +76,7 @@ ] Properties: [ - Taborder: 5 + Taborder: 6 ] } Component DataHolderPriorityPolicyFactor @@ -86,7 +101,17 @@ ] Properties: [ - Taborder: 6 + Taborder: 7 + ] + } + Component DataHolderPriorityPolicyShowList + { + #keys: '[414382.0.593062135]' + BaseType: 'WebDataHolder' + Databinding: 'structured[PriorityPolicy]*' + Properties: + [ + Taborder: 1 ] } ] diff --git a/_Main/UI/MacroPlannerWebApp/Views/Business_Type_Maintain.vw b/_Main/UI/MacroPlannerWebApp/Views/Business_Type_Maintain.vw new file mode 100644 index 0000000..7903c23 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Views/Business_Type_Maintain.vw @@ -0,0 +1,351 @@ +Quintiq file version 2.0 +{ + viewcontents + { + forms + { + form_legacy_1 + { + title: 'Scenario manager' + shown: true + componentID: 'FormScenarioManager' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 8 + columnPosition: 1 + columnSpan: 5 + } + components + { + FormScenarioManager_ListScenario + { + } + FormScenarioManager_DataSetLevelScenario + { + groupDepth: -1 + column_All_constraints + { + columnId: 'All constraints' + dataPath: 'All constraints' + dataType: 'string' + title: 'All constraints' + index: 0 + subtotals: '' + width: 90 + } + column_Name + { + columnId: 'Name' + dataPath: 'Name' + dataType: 'string' + title: '鍚嶇О' + index: 1 + subtotals: '' + width: 277 + } + column_ChangedBy + { + columnId: 'ChangedBy' + dataPath: 'ChangedBy' + dataType: 'string' + title: 'Changed by' + index: 2 + subtotals: '' + width: 106 + } + column_ChangedOn + { + columnId: 'ChangedOn' + dataPath: 'ChangedOn' + dataType: 'datetime' + title: 'Changed on' + index: 3 + subtotals: '' + width: 99 + } + column_StorageMode + { + columnId: 'StorageMode' + dataPath: 'StorageMode' + dataType: 'string' + title: 'StorageMode' + index: 4 + subtotals: '' + width: 40 + } + } + } + } + form_legacy_2 + { + title: 'Assumptions' + shown: true + componentID: 'FormAssumptions' + layout + { + mode: 'open' + rowPosition: 9 + rowSpan: 8 + columnPosition: 1 + columnSpan: 5 + } + components + { + FormAssumptions_ListAssumptions + { + } + FormAssumptions_DataSetLevelAssumptions + { + groupDepth: -1 + column_All_constraints + { + columnId: 'All constraints' + dataPath: 'All constraints' + dataType: 'string' + title: 'All constraints' + index: 0 + subtotals: '' + width: 32 + } + column_Category + { + columnId: 'Category' + dataPath: 'Category' + dataType: 'string' + title: '绫诲埆' + index: 1 + subtotals: '' + width: 108 + } + column_Importance + { + columnId: 'Importance' + dataPath: 'Importance' + dataType: 'string' + title: '閲嶈鎬�' + index: 2 + subtotals: '' + width: 110 + } + column_Title + { + columnId: 'Title' + dataPath: 'Title' + dataType: 'string' + title: '鏍囬' + index: 3 + subtotals: '' + width: 150 + } + column_ChangedBy + { + columnId: 'ChangedBy' + dataPath: 'ChangedBy' + dataType: 'string' + title: 'Changed by' + index: 4 + subtotals: '' + width: 150 + } + column_CreatedOn + { + columnId: 'CreatedOn' + dataPath: 'CreatedOn' + dataType: 'datetime' + title: 'Created on' + index: 5 + subtotals: '' + width: 150 + } + } + } + } + form_FormScenariosKPIsComparison + { + title: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison' + shown: true + componentID: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 16 + columnPosition: 6 + columnSpan: 7 + } + components + { + FormScenariosKPIsComparison_MatrixEditorFinancialKPIs + { + gridColor: '#c4c4c4' + totalHeaderWidth: 200 + attributeHeaderWidthRatio: 0.6 + nameHeaderWidthRatio: 0.4 + columnWidth: 100 + horizontalGrid: true + verticalGrid: true + backendState + { + componentId: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison.MatrixEditorFinancialKPIs' + state + { + cells + { + attributes + { + attribute_DisplayValue + { + type: 'MatrixEditorWebApiCellDataModelInterest' + index: 0 + rowsubtotal: '' + columnsubtotal: '' + attribute: 'DisplayValue' + } + } + } + columns + { + sorting + { + criteria: '' + } + } + rows + { + sorting + { + criteria: "datamember:'KPISetting.DisplayIndex'" + } + } + } + } + } + } + } + form_FormOptimizerPuzzles + { + title: 'Optimizer Puzzles' + shown: false + componentID: 'FormOptimizerPuzzles' + layout + { + mode: 'dockright' + index: 0 + } + components + { + FormOptimizerPuzzles_ListOptimizerPuzzles + { + } + FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles + { + groupDepth: -1 + column_All_constraints + { + columnId: 'All constraints' + dataPath: 'All constraints' + dataType: 'string' + title: 'All constraints' + index: 0 + subtotals: '' + width: 32 + } + column_Name + { + columnId: 'Name' + dataPath: 'Name' + dataType: 'string' + title: '鍚嶇О' + index: 1 + subtotals: '' + width: 109 + } + column_Description + { + columnId: 'Description' + dataPath: 'Description' + dataType: 'string' + title: '鎻忚堪' + index: 2 + subtotals: '' + width: 207 + } + } + } + } + form_FormKPI + { + title: 'KPI Dashboard' + shown: true + componentID: 'FormKPI' + layout + { + mode: 'dockright' + index: 1 + } + components + { + FormKPI_PanelKPI + { + sizeRatio: 1 + activeChild: 'PanelKPISelection' + } + FormKPI_PanelKPIDashboard + { + sizeRatio: 1 + } + FormKPI_PanelKPISelection + { + sizeRatio: 1 + } + FormKPI_ListKPISelection + { + QuillViewData + { + Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume' + } + } + FormKPI_DataSetLevelKPISelection + { + groupDepth: -1 + column_All_constraints + { + columnId: 'All constraints' + dataPath: 'All constraints' + dataType: 'string' + title: 'All constraints' + index: 0 + subtotals: '' + width: 32 + } + column_Name + { + columnId: 'Name' + dataPath: 'Name' + dataType: 'string' + title: '鍚嶇О' + index: 1 + subtotals: '' + width: 200 + } + } + } + } + } + userconfigurableinformation + { + } + index: 3 + image: 'ELEMENTS_TREE_EDIT' + page: 'applicationDevelopmentActionBarPageDef' + group: '' + description: '' + } + formatversion: 2 + id: 'Business_Type_Maintain' + name: 'Business Type Maintain' + isglobal: false + isroot: true +} -- Gitblit v1.9.3