From 2237ad24deb34ca1aeaf659ea1d4f523d708cd26 Mon Sep 17 00:00:00 2001 From: yypsybs <yypsybs@foxmail.com> Date: 星期三, 20 九月 2023 14:57:53 +0800 Subject: [PATCH] PRData现场测试用 --- _Main/BL/Type_CapacityAndSaleBudgeChartRow/Attribute_PlaceOfProductionOfArray.qbl | 8 _Main/BL/Type_MappingForecast/StaticMethod_GetQuantityByYear.qbl | 4 _Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRowProduct_CapacityAndSaleBudgeChartRow_Ca.qbl | 23 + _Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetBySeason.qbl | 21 + _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_OnCreated.def | 2 _Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/Attribute_ProductCode.qbl | 8 _Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl | 6 _Main/UI/MacroPlannerWebApp/Component_Form633/Component_listContextMenuPRData#1.def | 11 _Main/UI/MacroPlannerWebApp/Component_Form633/Response_OnCreated.def | 14 _Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl | 2 _Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/_ROOT_Type_CapacityAndSaleBudgeChartRowProduct.qbl | 9 _Main/BL/Type_ProductInStockingPointInPeriod/StaticMethod_GetByMRPCalverNo.qbl | 12 _Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/DefaultValue_ProductCode.qbl | 6 _Main/BL/Type_MappingForecast/StaticMethod_GetBalanceByYear.qbl | 2 _Main/BL/Type_Product_MP/StaticMethod_GetNewSupplyBySeason.qbl | 21 + _Main/BL/Type_CapacityAndSaleBudgeChartRow/Method_GetProductCodes.qbl | 10 _Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_CreateIfNotExist.qbl | 18 + _Main/BL/Type_CapacityAndSaleBudgeChartRow/Attribute_BusinessType.qbl | 8 _Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/StaticMethod_CreateIfNotExist.qbl | 17 + _Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonLoad_OnClick.def | 21 + _Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_Create.qbl | 14 _Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuPrintRequest_OnClick#623.def | 23 + _Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInHalfYear.qbl | 19 + _Main/BL/Type_MappingForecast/StaticMethod_GetQuantityByMonth.qbl | 9 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def | 2 _Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRow_ScenarioManager_ScenarioManager_Capaci.qbl | 23 + _Main/BL/Type_CapacityAndSaleBudgeChartRow/DefaultValue_BusinessType.qbl | 6 _Main/BL/Type_CapacityAndSaleBudgeChartRow/_ROOT_Type_CapacityAndSaleBudgeChartRow.qbl | 9 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def | 4 _Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl | 83 ++-- _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_MenuPrintRequest_OnClick#338.def | 19 + _Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning#662.qbl | 29 + _Main/UI/MacroPlannerWebApp/Component_Form633/Component_PanelPRDataButton.def | 15 _Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInPCSInYear.qbl | 15 _Main/BL/Type_Product_MP/StaticMethod_GetNewSupplyByHalfYear#1.qbl | 21 + _Main/BL/Type_PRHistoryData/Method_PrintCall.qbl | 23 + _Main/BL/Type_ERPRequestOfPR/Method_GetCallJSONString.qbl | 28 + _Main/BL/Type_MappingForecast/StaticMethod_GetQuantityByHalfYear.qbl | 24 + _Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_GetProductCodesByPlaceOfProductionOfArray.qbl | 15 _Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl | 231 +++++++++++++ _Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInSeason.qbl | 19 + _Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByHalfYear#1.qbl | 21 + _Main/BL/Type_MappingForecast/StaticMethod_GetBalanceByMonth.qbl | 6 _Main/BL/Type_PRData/Method_PrintCall.qbl | 47 ++ _Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_listContextMenuPRHistoryData#1.def | 11 _Main/BL/Type_MappingForecast/StaticMethod_GetQuantityBySeason.qbl | 24 + _Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_GetProductCodesByBusinessType.qbl | 15 47 files changed, 891 insertions(+), 87 deletions(-) diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRowProduct_CapacityAndSaleBudgeChartRow_Ca.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRowProduct_CapacityAndSaleBudgeChartRow_Ca.qbl new file mode 100644 index 0000000..5e2a588 --- /dev/null +++ b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRowProduct_CapacityAndSaleBudgeChartRow_Ca.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation CapacityAndSaleBudgeChartRowProduct_CapacityAndSaleBudgeChartRow_CapacityAndSaleBudgeChartRow_CapacityAndSaleBudgeChartRowProduct +{ + #keys: '1[414384.0.852471810]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide CapacityAndSaleBudgeChartRow + { + #keys: '3[414384.0.852471812][414384.0.852471811][414384.0.852471813]' + Cardinality: '0to1' + ObjectDefinition: CapacityAndSaleBudgeChartRowProduct + OwningSide: 'Reference' + } + RelationSide.RightSide CapacityAndSaleBudgeChartRowProduct + { + #keys: '3[414384.0.852471815][414384.0.852471814][414384.0.852471816]' + Cardinality: '1toN' + ObjectDefinition: CapacityAndSaleBudgeChartRow + OwningSide: 'Owned' + } +} diff --git a/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRow_ScenarioManager_ScenarioManager_Capaci.qbl b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRow_ScenarioManager_ScenarioManager_Capaci.qbl new file mode 100644 index 0000000..13e8d6d --- /dev/null +++ b/_Main/BL/Relations/Relation_CapacityAndSaleBudgeChartRow_ScenarioManager_ScenarioManager_Capaci.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation CapacityAndSaleBudgeChartRow_ScenarioManager_ScenarioManager_CapacityAndSaleBudgeChartRow +{ + #keys: '1[414384.0.852471828]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide ScenarioManager + { + #keys: '3[414384.0.852471830][414384.0.852471829][414384.0.852471831]' + Cardinality: '0to1' + ObjectDefinition: CapacityAndSaleBudgeChartRow + OwningSide: 'Reference' + } + RelationSide.RightSide CapacityAndSaleBudgeChartRow + { + #keys: '3[414384.0.852471833][414384.0.852471832][414384.0.852471834]' + Cardinality: '1toN' + ObjectDefinition: ScenarioManager + OwningSide: 'Owned' + } +} diff --git a/_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInPCSInYear.qbl b/_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInPCSInYear.qbl new file mode 100644 index 0000000..8e5ce5e --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInPCSInYear.qbl @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: #root +Method GetCapacityInPCSInYear () as Real +{ + TextBody: + [* + // yypsybs Sep-18-2023 (created) + result := 0.0; + for( i := 1; i <= 12; i := i + 1 ) { + field := Reflection::FindAttribute( "CapacityAndSaleBudge", "CapacityInPCSInMonth" + [String]i ); + result := result + field.GetReal( this ); + } + return result; + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInHalfYear.qbl b/_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInHalfYear.qbl new file mode 100644 index 0000000..54eecdf --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInHalfYear.qbl @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: #root +Method GetCapacityInSheetInHalfYear ( + Number halfNo +) as Real +{ + TextBody: + [* + // yypsybs Sep-18-2023 (created) + result := 0.0; + fromMonth := 1 + ( halfNo - 1 ) * 6; + toMonth := 6 + ( halfNo - 1 ) * 6; + for( i := fromMonth; i <= toMonth; i := i + 1 ) { + field := Reflection::FindAttribute( "CapacityAndSaleBudge", "CapacityInSheetInMonth" + [String]i ); + result := result + field.GetReal( this ); + } + return result; + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInSeason.qbl b/_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInSeason.qbl new file mode 100644 index 0000000..5af224d --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudge/Method_GetCapacityInSheetInSeason.qbl @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: #root +Method GetCapacityInSheetInSeason ( + Number seasonNo +) as Real +{ + TextBody: + [* + // yypsybs Sep-18-2023 (created) + result := 0.0; + fromMonth := 1 + ( seasonNo - 1 ) * 3; + toMonth := 3 + ( seasonNo - 1 ) * 3; + for( i := fromMonth; i <= toMonth; i := i + 1 ) { + field := Reflection::FindAttribute( "CapacityAndSaleBudge", "CapacityInSheetInMonth" + [String]i ); + result := result + field.GetReal( this ); + } + return result; + *] +} diff --git "a/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByHalfYear\0431.qbl" "b/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByHalfYear\0431.qbl" new file mode 100644 index 0000000..7f929c7 --- /dev/null +++ "b/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetByHalfYear\0431.qbl" @@ -0,0 +1,21 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetSheetByHalfYear ( + Strings productNo, + GlobalOTDTable parent, + Number yearNo, + Number halfNo +) as Real +{ + Description: '浜ц兘 - 瀹炴暟澶у紶' + TextBody: + [* + // yypsybs Sep-18-2023 (created) + result := sum( parent, + CapacityAndSaleBudge, + item, + productNo.Find( item.ProductCode() ) > -1, + item.GetCapacityInSheetInHalfYear( halfNo ) ); + return result; + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetBySeason.qbl b/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetBySeason.qbl new file mode 100644 index 0000000..a0193ae --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudge/StaticMethod_GetSheetBySeason.qbl @@ -0,0 +1,21 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetSheetBySeason ( + Strings productNo, + GlobalOTDTable parent, + Number yearNo, + Number seasonNo +) as Real +{ + Description: '浜ц兘 - 瀹炴暟澶у紶' + TextBody: + [* + // yypsybs Sep-18-2023 (created) + result := sum( parent, + CapacityAndSaleBudge, + item, + productNo.Find( item.ProductCode() ) > -1, + item.GetCapacityInSheetInSeason( seasonNo ) ); + return result; + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_Create.qbl b/_Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_Create.qbl new file mode 100644 index 0000000..2acad18 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeChartElement/StaticMethod_Create.qbl @@ -0,0 +1,14 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Create ( + ScenarioManager parent, + String timeStringAndScenarioName, + String businessTypeOrOrgCode, + Real quantity +) +{ + TextBody: + [* + // yypsybs Sep-20-2023 (created) + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeChartRow/Attribute_BusinessType.qbl b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/Attribute_BusinessType.qbl new file mode 100644 index 0000000..3f0eec8 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/Attribute_BusinessType.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute BusinessType +{ + #keys: '3[414384.0.850180080][414384.0.850180079][414384.0.850180081]' + Description: '浜嬩笟閮�' + ValueType: String +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeChartRow/Attribute_PlaceOfProductionOfArray.qbl b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/Attribute_PlaceOfProductionOfArray.qbl new file mode 100644 index 0000000..57beec6 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/Attribute_PlaceOfProductionOfArray.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute PlaceOfProductionOfArray +{ + #keys: '3[414384.0.850180083][414384.0.850180082][414384.0.850180084]' + Description: '缁勭粐缂栫爜' + ValueType: String +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeChartRow/DefaultValue_BusinessType.qbl b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/DefaultValue_BusinessType.qbl new file mode 100644 index 0000000..1672b03 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/DefaultValue_BusinessType.qbl @@ -0,0 +1,6 @@ +Quintiq file version 2.0 +#parent: #root +DefaultValue +{ + TargetAttribute: BusinessType +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeChartRow/Method_GetProductCodes.qbl b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/Method_GetProductCodes.qbl new file mode 100644 index 0000000..facff27 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/Method_GetProductCodes.qbl @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +#parent: #root +Method GetProductCodes () as owning Strings +{ + TextBody: + [* + // yypsybs Sep-18-2023 (created) + return selectuniquevalues( this, CapacityAndSaleBudgeChartRowProduct, item, item.ProductCode() ); + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_CreateIfNotExist.qbl b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_CreateIfNotExist.qbl new file mode 100644 index 0000000..cb76a5f --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_CreateIfNotExist.qbl @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateIfNotExist ( + ScenarioManager scenarioManager, + String businessType, + String placeOfProductionOfArray +) as CapacityAndSaleBudgeChartRow +{ + TextBody: + [* + // yypsybs Sep-18-2023 (created) + value := select( scenarioManager, CapacityAndSaleBudgeChartRow, row, row.BusinessType() = businessType and row.PlaceOfProductionOfArray() = placeOfProductionOfArray ); + if( isnull( value ) ) { + value := scenarioManager.CapacityAndSaleBudgeChartRow( relnew, BusinessType := businessType, PlaceOfProductionOfArray := placeOfProductionOfArray ); + } + return value; + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_GetProductCodesByBusinessType.qbl b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_GetProductCodesByBusinessType.qbl new file mode 100644 index 0000000..a664cdc --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_GetProductCodesByBusinessType.qbl @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetProductCodesByBusinessType ( + CapacityAndSaleBudgeChartRows list, + String businessTyoe +) as owning Strings +{ + TextBody: + [* + // yypsybs Sep-20-2023 (created) + return selectuniquevalues( list, Elements, item, + item.BusinessType() = businessTyoe, + item.BusinessType() ); + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_GetProductCodesByPlaceOfProductionOfArray.qbl b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_GetProductCodesByPlaceOfProductionOfArray.qbl new file mode 100644 index 0000000..109e1d7 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/StaticMethod_GetProductCodesByPlaceOfProductionOfArray.qbl @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetProductCodesByPlaceOfProductionOfArray ( + CapacityAndSaleBudgeChartRows list, + String placeOfProductionOfArray +) as owning Strings +{ + TextBody: + [* + // yypsybs Sep-20-2023 (created) + return selectuniquevalues( list, Elements, item, + item.PlaceOfProductionOfArray() = placeOfProductionOfArray, + item.PlaceOfProductionOfArray() ); + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeChartRow/_ROOT_Type_CapacityAndSaleBudgeChartRow.qbl b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/_ROOT_Type_CapacityAndSaleBudgeChartRow.qbl new file mode 100644 index 0000000..0ecbf2c --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeChartRow/_ROOT_Type_CapacityAndSaleBudgeChartRow.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type CapacityAndSaleBudgeChartRow +{ + #keys: '5[414384.0.852471790][414384.0.852471788][0.0.0][414384.0.852471789][414384.0.852471791]' + BaseType: Object + StructuredName: 'CapacityAndSaleBudgeChartRows' +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/Attribute_ProductCode.qbl b/_Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/Attribute_ProductCode.qbl new file mode 100644 index 0000000..63014d7 --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/Attribute_ProductCode.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ProductCode +{ + #keys: '3[414384.0.852471849][414384.0.852471848][414384.0.852471850]' + Description: '浜у搧缂栫爜' + ValueType: String +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/DefaultValue_ProductCode.qbl b/_Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/DefaultValue_ProductCode.qbl new file mode 100644 index 0000000..73158ab --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/DefaultValue_ProductCode.qbl @@ -0,0 +1,6 @@ +Quintiq file version 2.0 +#parent: #root +DefaultValue +{ + TargetAttribute: ProductCode +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/StaticMethod_CreateIfNotExist.qbl b/_Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/StaticMethod_CreateIfNotExist.qbl new file mode 100644 index 0000000..8d05fbd --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/StaticMethod_CreateIfNotExist.qbl @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateIfNotExist ( + CapacityAndSaleBudgeChartRow parent, + String productCode +) as CapacityAndSaleBudgeChartRowProduct +{ + TextBody: + [* + // yypsybs Sep-18-2023 (created) + value := select( parent, CapacityAndSaleBudgeChartRowProduct, item, item.ProductCode() = productCode ); + if( isnull( value ) ) { + parent.CapacityAndSaleBudgeChartRowProduct( relnew, ProductCode := productCode ); + } + return value; + *] +} diff --git a/_Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/_ROOT_Type_CapacityAndSaleBudgeChartRowProduct.qbl b/_Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/_ROOT_Type_CapacityAndSaleBudgeChartRowProduct.qbl new file mode 100644 index 0000000..f52d6fe --- /dev/null +++ b/_Main/BL/Type_CapacityAndSaleBudgeChartRowProduct/_ROOT_Type_CapacityAndSaleBudgeChartRowProduct.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type CapacityAndSaleBudgeChartRowProduct +{ + #keys: '5[414384.0.852471769][414384.0.852471767][0.0.0][414384.0.852471768][414384.0.852471770]' + BaseType: Object + StructuredName: 'CapacityAndSaleBudgeChartRowProducts' +} diff --git a/_Main/BL/Type_ERPRequestOfPR/Method_GetCallJSONString.qbl b/_Main/BL/Type_ERPRequestOfPR/Method_GetCallJSONString.qbl new file mode 100644 index 0000000..0c9c74e --- /dev/null +++ b/_Main/BL/Type_ERPRequestOfPR/Method_GetCallJSONString.qbl @@ -0,0 +1,28 @@ +Quintiq file version 2.0 +#parent: #root +Method GetCallJSONString () as String +{ + TextBody: + [* + // yypsybs Sep-20-2023 (created) + conv := DateTimeToString::StandardConverter(); + conv.SetCustomConversion(); + conv.CustomFormatString( 'yyyyMMdd' ); + + requestJSON := JSON::Object(); + requestJSON.Add( "BusinessType", this.BusinessType() ); + requestJSON.Add( "DataID", this.DataID() ); + requestJSON.Add( "DeliveryDate", conv.Convert( this.DeliveryDate().DateTime() ) ); + requestJSON.Add( "MRPCalverNo", this.MRPCalverNo() ); + requestJSON.Add( "OrganCode", this.OrganCode() ); + requestJSON.Add( "ProductID", this.ProductID() ); + requestJSON.Add( "ProductName", this.ProductName() ); + requestJSON.Add( "ProvideCode", this.ProviderCode() ); + requestJSON.Add( "ProviderName", this.ProviderName() ); + requestJSON.Add( "Quantity", this.Quantity() ); + requestJSON.Add( "StockingPointID", this.StockingPointID() ); + requestJSON.Add( "UnitOfMeasure", this.UnitOfMeasure() ); + + return requestJSON.AsString(); + *] +} diff --git a/_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl b/_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl index db96b72..f69a011 100644 --- a/_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl +++ b/_Main/BL/Type_GlobalDTOTable/Method_InitTestData.qbl @@ -22,46 +22,49 @@ info( "CapacityAndSaleBudge::InitTestData" ) this.CapacityAndSaleBudge( relflush ); for( i := 1; i < 100; i := i + 1 ) { - this.CapacityAndSaleBudge( relnew, - PlaceOfProductionOfArray := "闈㈡澘鍩哄湴" + [String]Number::Random( 1, 10 ), - BusinessType := "浜嬩笟閮�" + [String]Number::Random( 1, 10 ), - CapacityInPCSInMonth1 := Number::Random( 1, 10000 ), - CapacityInPCSInMonth2 := Number::Random( 1, 10000 ), - CapacityInPCSInMonth3 := Number::Random( 1, 10000 ), - CapacityInPCSInMonth4 := Number::Random( 1, 10000 ), - CapacityInPCSInMonth5 := Number::Random( 1, 10000 ), - CapacityInPCSInMonth6 := Number::Random( 1, 10000 ), - CapacityInPCSInMonth7 := Number::Random( 1, 10000 ), - CapacityInPCSInMonth8 := Number::Random( 1, 10000 ), - CapacityInPCSInMonth9 := Number::Random( 1, 10000 ), - CapacityInPCSInMonth10 := Number::Random( 1, 10000 ), - CapacityInPCSInMonth11 := Number::Random( 1, 10000 ), - CapacityInPCSInMonth12 := Number::Random( 1, 10000 ), - CapacityInSheetInMonth1 := Number::Random( 1, 10000 ), - CapacityInSheetInMonth2 := Number::Random( 1, 10000 ), - CapacityInSheetInMonth3 := Number::Random( 1, 10000 ), - CapacityInSheetInMonth4 := Number::Random( 1, 10000 ), - CapacityInSheetInMonth5 := Number::Random( 1, 10000 ), - CapacityInSheetInMonth6 := Number::Random( 1, 10000 ), - CapacityInSheetInMonth7 := Number::Random( 1, 10000 ), - CapacityInSheetInMonth8 := Number::Random( 1, 10000 ), - CapacityInSheetInMonth9 := Number::Random( 1, 10000 ), - CapacityInSheetInMonth10 := Number::Random( 1, 10000 ), - CapacityInSheetInMonth11 := Number::Random( 1, 10000 ), - CapacityInSheetInMonth12 := Number::Random( 1, 10000 ), - SaleAmountInMonth1 := Number::Random( 1, 10000 ), - SaleAmountInMonth2 := Number::Random( 1, 10000 ), - SaleAmountInMonth3 := Number::Random( 1, 10000 ), - SaleAmountInMonth4 := Number::Random( 1, 10000 ), - SaleAmountInMonth5 := Number::Random( 1, 10000 ), - SaleAmountInMonth6 := Number::Random( 1, 10000 ), - SaleAmountInMonth7 := Number::Random( 1, 10000 ), - SaleAmountInMonth8 := Number::Random( 1, 10000 ), - SaleAmountInMonth9 := Number::Random( 1, 10000 ), - SaleAmountInMonth10 := Number::Random( 1, 10000 ), - SaleAmountInMonth11 := Number::Random( 1, 10000 ), - SaleAmountInMonth12 := Number::Random( 1, 10000 ) - ); + row := this.CapacityAndSaleBudge( relnew, + PlaceOfProductionOfArray := "闈㈡澘鍩哄湴" + [String]Number::Random( 1, 10 ), + BusinessType := "浜嬩笟閮�" + [String]Number::Random( 1, 10 ), + CapacityInPCSInMonth1 := Number::Random( 1, 10000 ), + CapacityInPCSInMonth2 := Number::Random( 1, 10000 ), + CapacityInPCSInMonth3 := Number::Random( 1, 10000 ), + CapacityInPCSInMonth4 := Number::Random( 1, 10000 ), + CapacityInPCSInMonth5 := Number::Random( 1, 10000 ), + CapacityInPCSInMonth6 := Number::Random( 1, 10000 ), + CapacityInPCSInMonth7 := Number::Random( 1, 10000 ), + CapacityInPCSInMonth8 := Number::Random( 1, 10000 ), + CapacityInPCSInMonth9 := Number::Random( 1, 10000 ), + CapacityInPCSInMonth10 := Number::Random( 1, 10000 ), + CapacityInPCSInMonth11 := Number::Random( 1, 10000 ), + CapacityInPCSInMonth12 := Number::Random( 1, 10000 ), + CapacityInSheetInMonth1 := Number::Random( 1, 10000 ), + CapacityInSheetInMonth2 := Number::Random( 1, 10000 ), + CapacityInSheetInMonth3 := Number::Random( 1, 10000 ), + CapacityInSheetInMonth4 := Number::Random( 1, 10000 ), + CapacityInSheetInMonth5 := Number::Random( 1, 10000 ), + CapacityInSheetInMonth6 := Number::Random( 1, 10000 ), + CapacityInSheetInMonth7 := Number::Random( 1, 10000 ), + CapacityInSheetInMonth8 := Number::Random( 1, 10000 ), + CapacityInSheetInMonth9 := Number::Random( 1, 10000 ), + CapacityInSheetInMonth10 := Number::Random( 1, 10000 ), + CapacityInSheetInMonth11 := Number::Random( 1, 10000 ), + CapacityInSheetInMonth12 := Number::Random( 1, 10000 ), + SaleAmountInMonth1 := Number::Random( 1, 10000 ), + SaleAmountInMonth2 := Number::Random( 1, 10000 ), + SaleAmountInMonth3 := Number::Random( 1, 10000 ), + SaleAmountInMonth4 := Number::Random( 1, 10000 ), + SaleAmountInMonth5 := Number::Random( 1, 10000 ), + SaleAmountInMonth6 := Number::Random( 1, 10000 ), + SaleAmountInMonth7 := Number::Random( 1, 10000 ), + SaleAmountInMonth8 := Number::Random( 1, 10000 ), + SaleAmountInMonth9 := Number::Random( 1, 10000 ), + SaleAmountInMonth10 := Number::Random( 1, 10000 ), + SaleAmountInMonth11 := Number::Random( 1, 10000 ), + SaleAmountInMonth12 := Number::Random( 1, 10000 ) + ); + row.CapacityInPCSTotal( row.GetCapacityInPCSInYear() ); + row.CapacityInSheetTotal( row.GetCapacityInSheetInYear() ); + row.SaleAmountTotal( row.GetSaleAmountInYear() ); } *] } diff --git a/_Main/BL/Type_MappingForecast/StaticMethod_GetByMonth.qbl b/_Main/BL/Type_MappingForecast/StaticMethod_GetBalanceByMonth.qbl similarity index 87% rename from _Main/BL/Type_MappingForecast/StaticMethod_GetByMonth.qbl rename to _Main/BL/Type_MappingForecast/StaticMethod_GetBalanceByMonth.qbl index f289073..6b7351c 100644 --- a/_Main/BL/Type_MappingForecast/StaticMethod_GetByMonth.qbl +++ b/_Main/BL/Type_MappingForecast/StaticMethod_GetBalanceByMonth.qbl @@ -1,10 +1,10 @@ Quintiq file version 2.0 #parent: #root -StaticMethod GetByMonth ( +StaticMethod GetBalanceByMonth ( Strings productCodes, MacroPlan parent, - Number monthNo, - Number yearNo + Number yearNo, + Number monthNo ) as Real { Description: 'todo changeParent' diff --git a/_Main/BL/Type_MappingForecast/StaticMethod_GetByYear.qbl b/_Main/BL/Type_MappingForecast/StaticMethod_GetBalanceByYear.qbl similarity index 93% rename from _Main/BL/Type_MappingForecast/StaticMethod_GetByYear.qbl rename to _Main/BL/Type_MappingForecast/StaticMethod_GetBalanceByYear.qbl index ddf0484..dfc4872 100644 --- a/_Main/BL/Type_MappingForecast/StaticMethod_GetByYear.qbl +++ b/_Main/BL/Type_MappingForecast/StaticMethod_GetBalanceByYear.qbl @@ -1,6 +1,6 @@ Quintiq file version 2.0 #parent: #root -StaticMethod GetByYear ( +StaticMethod GetBalanceByYear ( Strings productCodes, MacroPlan parent, Number yearNo diff --git a/_Main/BL/Type_MappingForecast/StaticMethod_GetQuantityByHalfYear.qbl b/_Main/BL/Type_MappingForecast/StaticMethod_GetQuantityByHalfYear.qbl new file mode 100644 index 0000000..ecf844c --- /dev/null +++ b/_Main/BL/Type_MappingForecast/StaticMethod_GetQuantityByHalfYear.qbl @@ -0,0 +1,24 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetQuantityByHalfYear ( + Strings productCodes, + MacroPlan parent, + Number yearNo, + Number halfNo +) as Real +{ + TextBody: + [* + // yypsybs Sep-19-2023 (created) + value := 0.0; + + startMonth := 1 + ( halfNo - 1 ) * 6; + endMonth := 6 + ( halfNo - 1 ) * 6; + + for( monthNo := startMonth; monthNo <= endMonth; monthNo := monthNo + 1 ) { + value := value + MappingForecast::GetQuantityByMonth( productCodes, parent, yearNo, monthNo ); + } + + return value; + *] +} diff --git a/_Main/BL/Type_MappingForecast/StaticMethod_GetByMonth.qbl b/_Main/BL/Type_MappingForecast/StaticMethod_GetQuantityByMonth.qbl similarity index 73% copy from _Main/BL/Type_MappingForecast/StaticMethod_GetByMonth.qbl copy to _Main/BL/Type_MappingForecast/StaticMethod_GetQuantityByMonth.qbl index f289073..d3ae8c1 100644 --- a/_Main/BL/Type_MappingForecast/StaticMethod_GetByMonth.qbl +++ b/_Main/BL/Type_MappingForecast/StaticMethod_GetQuantityByMonth.qbl @@ -1,13 +1,12 @@ Quintiq file version 2.0 #parent: #root -StaticMethod GetByMonth ( +StaticMethod GetQuantityByMonth ( Strings productCodes, MacroPlan parent, - Number monthNo, - Number yearNo + Number yearNo, + Number monthNo ) as Real { - Description: 'todo changeParent' TextBody: [* // yypsybs Sep-19-2023 (created) @@ -15,7 +14,7 @@ MappingForecast, item, productCodes.Find( item.ProductID() ) > -1 and yearNo = item.StartDate().Year() and monthNo = item.StartDate().Month(), - item.Price() * item.Quantity() ); + item.Quantity() ); return value; *] } diff --git a/_Main/BL/Type_MappingForecast/StaticMethod_GetQuantityBySeason.qbl b/_Main/BL/Type_MappingForecast/StaticMethod_GetQuantityBySeason.qbl new file mode 100644 index 0000000..3b4ac41 --- /dev/null +++ b/_Main/BL/Type_MappingForecast/StaticMethod_GetQuantityBySeason.qbl @@ -0,0 +1,24 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetQuantityBySeason ( + Strings productCodes, + MacroPlan parent, + Number yearNo, + Number seasonNo +) as Real +{ + TextBody: + [* + // yypsybs Sep-19-2023 (created) + value := 0.0; + + startMonth := 1 + ( seasonNo - 1 ) * 3; + endMonth := 3 + ( seasonNo - 1 ) * 3; + + for( monthNo := startMonth; monthNo <= endMonth; monthNo := monthNo + 1 ) { + value := value + MappingForecast::GetQuantityByMonth( productCodes, parent, yearNo, monthNo ); + } + + return value; + *] +} diff --git a/_Main/BL/Type_MappingForecast/StaticMethod_GetByYear.qbl b/_Main/BL/Type_MappingForecast/StaticMethod_GetQuantityByYear.qbl similarity index 84% copy from _Main/BL/Type_MappingForecast/StaticMethod_GetByYear.qbl copy to _Main/BL/Type_MappingForecast/StaticMethod_GetQuantityByYear.qbl index ddf0484..31db8aa 100644 --- a/_Main/BL/Type_MappingForecast/StaticMethod_GetByYear.qbl +++ b/_Main/BL/Type_MappingForecast/StaticMethod_GetQuantityByYear.qbl @@ -1,6 +1,6 @@ Quintiq file version 2.0 #parent: #root -StaticMethod GetByYear ( +StaticMethod GetQuantityByYear ( Strings productCodes, MacroPlan parent, Number yearNo @@ -14,7 +14,7 @@ MappingForecast, item, productCodes.Find( item.ProductID() ) > -1 and yearNo = item.StartDate().Year(), - item.Price() * item.Quantity() ); + item.Quantity() ); return value; *] } diff --git a/_Main/BL/Type_PRData/Method_PrintCall.qbl b/_Main/BL/Type_PRData/Method_PrintCall.qbl new file mode 100644 index 0000000..f82b310 --- /dev/null +++ b/_Main/BL/Type_PRData/Method_PrintCall.qbl @@ -0,0 +1,47 @@ +Quintiq file version 2.0 +#parent: #root +Method PrintCall ( + GlobalOTDTable globalData, + String callBy +) as String +{ + TextBody: + [* + // yypsybs Sep-11-2023 (created) + result := globalData.PRHistoryData( relnew ); + + // 鐓ф惉閮ㄥ垎 + result.AuthorizationStatus( this.AuthorizationStatus() ); + result.BusinessType( this.BusinessType() ); + result.DataID( this.DataID() ); + result.DeliverToRequestorId( this.DeliverToRequestorId() ); + result.DestinationOrganizationID( this.DestinationOrganizationID() ); + result.DestinationTypeCode( this.DestinationTypeCode() ); + result.HeaderDescription( this.HeaderDescription() ); + result.LineAttribute1( this.LineAttribute1() ); + result.LineAttribute6( this.LineAttribute6() ); + result.LineType( this.LineType() ); + result.LineTypeId( this.LineTypeId() ); + result.MRPCalverNo( this.MRPCalverNo() ); + result.OrganCode( this.OrganCode() ); + result.OrgId( this.OrgId() ); + result.PlannerCode( this.PlannerCode() ); + result.PreparerId( this.PreparerId() ); + result.ProduceRequiredDate( this.ProduceRequiredDate() ); + result.ProductID( this.ProductID() ); + result.ProductName( this.ProductName() ); + result.ProviderCode( this.ProviderCode() ); + result.ProviderName( this.ProviderName() ); + result.Quantity( this.Quantity() ); + result.RequisitionType( this.RequisitionType() ); + result.StockingPointID( this.StockingPointID() ); + result.UnitOfMeasure( this.UnitOfMeasure() ); + result.UnitPrice( this.UnitPrice() ); + + // 璇锋眰閮ㄥ垎 + request := ERPRequestOfPR::Create( result ); + retult := request.GetCallJSONString(); + request.Delete(); + return retult; + *] +} diff --git "a/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning\043662.qbl" "b/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning\043662.qbl" index c86f3e2..2b88918 100644 --- "a/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning\043662.qbl" +++ "b/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning\043662.qbl" @@ -24,7 +24,7 @@ erpData := "鏆傛棤"; // 鏍规嵁pispip - result.MRPCalverNo( pispip.MRPCalverNo() ); + result.MRPCalverNo( ifexpr( pispip.MRPCalverNo() = "", "鏆傛棤", pispip.MRPCalverNo() ) ); result.Quantity( pispip.NewSupplyQuantity() ); // 鏍规嵁product @@ -40,15 +40,28 @@ Date::Today(), (result.ProduceRequiredDate() - Duration::Days( 7 )).Date() ) ); // 鏍规嵁 鐗╂枡灞炴�ф爣绛捐瀹�&鐗╂枡璁″垝绛栫暐 - result.IsPanelMaterial(); - result.IsGenericMaterial( matAttrSetting.FlagGeneric() ); - result.IsLongLeadItem( matAttrSetting.FlagLongTerm() ); - result.MaterialMRPType( ifexpr( matAttrSetting.PlanningStrategyCustom() <> "", matAttrSetting.PlanningStrategyCustom(), matAttrSetting.PlanningStrategyAuto() ) ); + result.IsPanelMaterial( "鏆傛棤" ); + if( isnull( matAttrSetting ) ) { + result.IsGenericMaterial( "鏆傛棤" ); + result.IsLongLeadItem( "鏆傛棤" ); + result.MaterialMRPType( "鏆傛棤" ); + } else { + result.IsGenericMaterial( matAttrSetting.FlagGeneric() ); + result.IsLongLeadItem( matAttrSetting.FlagLongTerm() ); + result.MaterialMRPType( ifexpr( matAttrSetting.PlanningStrategyCustom() <> "", matAttrSetting.PlanningStrategyCustom(), matAttrSetting.PlanningStrategyAuto() ) ); + } + // 鏍规嵁product涓棿琛� - result.BusinessType( mappingProduct.BusinessType() ); - result.OrganCode( mappingProduct.OrgCode() ); - result.UnitOfMeasure( mappingProduct.UnitOfMeasureName() ); + if( isnull( mappingProduct ) ) { + result.BusinessType( "鏆傛棤" ); + result.OrganCode( "鏆傛棤" ); + result.UnitOfMeasure( "鏆傛棤" ); + } else { + result.BusinessType( mappingProduct.BusinessType() ); + result.OrganCode( mappingProduct.OrgCode() ); + result.UnitOfMeasure( mappingProduct.UnitOfMeasureName() ); + } // 鏍规嵁渚涘簲鍟嗚兘鍔涗腑闂磋〃 result.ProviderCode( mappingProviderCapacity ); diff --git a/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl b/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl index 5b37c1c..f011f1d 100644 --- a/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl +++ b/_Main/BL/Type_PRData/StaticMethod_FromSupplyPlanning.qbl @@ -20,7 +20,7 @@ item.MRPCalverNo() = mrpCalverNo ); if( isnull( oldRecords ) or oldRecords.Size() = 0 ) { pispips := ProductInStockingPointInPeriod::GetByMRPCalverNo( macroPlan, mrpCalverNo ); - traverse( pispips, Elements, item ) { + traverse( pispips, Elements, item, item.NewSupplyQuantity() > 0 ) { PRData::FromSupplyPlanning( otdTable, macroPlan, mappingRoot, item ); } } diff --git a/_Main/BL/Type_PRHistoryData/Method_PrintCall.qbl b/_Main/BL/Type_PRHistoryData/Method_PrintCall.qbl new file mode 100644 index 0000000..736d231 --- /dev/null +++ b/_Main/BL/Type_PRHistoryData/Method_PrintCall.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Method PrintCall ( + String callBy +) as String +{ + TextBody: + [* + // yypsybs Sep-20-2023 (created) + result := this.GlobalOTDTable().PRHistoryData( relcopy, this ); + + // 鏇存柊閮ㄥ垎 + result.PRDataReleaseDate( Date::Today() ); + result.ReleaseBy( callBy ); + result.SendTime( DateTime::Now() ); + + // 璇锋眰 + request := ERPRequestOfPR::Create( result ); + callString := request.GetCallJSONString(); + request.Delete(); + return callString; + *] +} diff --git a/_Main/BL/Type_ProductInStockingPointInPeriod/StaticMethod_GetByMRPCalverNo.qbl b/_Main/BL/Type_ProductInStockingPointInPeriod/StaticMethod_GetByMRPCalverNo.qbl index 10c1f0c..482800c 100644 --- a/_Main/BL/Type_ProductInStockingPointInPeriod/StaticMethod_GetByMRPCalverNo.qbl +++ b/_Main/BL/Type_ProductInStockingPointInPeriod/StaticMethod_GetByMRPCalverNo.qbl @@ -9,9 +9,17 @@ TextBody: [* // yypsybs Sep-12-2023 (created) - result := selectset( parent, Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip, + result := construct( ProductInStockingPointInPeriods ); + if( mrpCalverNo <> "" ) { + result := selectset( parent, Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip, pispip.ProductInStockingPoint_MP().Product_MP().ID().StartsWith( "E" ) - and pispip.MRPCalverNo() = mrpCalverNo ); + and pispip.MRPCalverNo() = mrpCalverNo + ); + } else { + result := selectset( parent, Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip, + true + ); + } return &result; *] } diff --git "a/_Main/BL/Type_Product_MP/StaticMethod_GetNewSupplyByHalfYear\0431.qbl" "b/_Main/BL/Type_Product_MP/StaticMethod_GetNewSupplyByHalfYear\0431.qbl" new file mode 100644 index 0000000..d9e3137 --- /dev/null +++ "b/_Main/BL/Type_Product_MP/StaticMethod_GetNewSupplyByHalfYear\0431.qbl" @@ -0,0 +1,21 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetNewSupplyByHalfYear ( + Strings productNo, + MacroPlan macroPlan, + Number yearNo, + Number halfNo +) as Real +{ + TextBody: + [* + // yypsybs Sep-18-2023 (created) + fromMonth := 1 + ( halfNo - 1 ) * 6; + toMonth := 6 + ( halfNo - 1 ) * 6; + result := 0.0; + for( i := fromMonth; i <= toMonth; i := i + 1 ) { + result := result + Product_MP::GetNewSupplyByMonth( productNo, macroPlan, yearNo, i ); + } + return result; + *] +} diff --git a/_Main/BL/Type_Product_MP/StaticMethod_GetNewSupplyBySeason.qbl b/_Main/BL/Type_Product_MP/StaticMethod_GetNewSupplyBySeason.qbl new file mode 100644 index 0000000..e98eabe --- /dev/null +++ b/_Main/BL/Type_Product_MP/StaticMethod_GetNewSupplyBySeason.qbl @@ -0,0 +1,21 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetNewSupplyBySeason ( + Strings productNo, + MacroPlan macroPlan, + Number yearNo, + Number seasonNo +) as Real +{ + TextBody: + [* + // yypsybs Sep-18-2023 (created) + fromMonth := 1 + ( seasonNo - 1 ) * 3; + toMonth := 3 + ( seasonNo - 1 ) * 3; + result := 0.0; + for( i := fromMonth; i <= toMonth; i := i + 1 ) { + result := result + Product_MP::GetNewSupplyByMonth( productNo, macroPlan, yearNo, i ); + } + return result; + *] +} diff --git a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl index 133fe60..43f414f 100644 --- a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl +++ b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl @@ -4,9 +4,9 @@ MacroPlans macroPlans, Boolean isCapacity, String groupBy, - String byBusinessTypeOrByOrgCodde, - String businessType, - String orgCode, + String byBusinessTypeOrByOrgCode, + String businessTypeChosen, + String placeOfProductionOfArrayChosen, String year, MPSync mpSync, GlobalOTDTable otdTable, @@ -17,13 +17,226 @@ TextBody: [* // yypsybs Sep-19-2023 (created) + // true, false + info( isCapacity ); + // 鏈�;瀛e害;鍗婂勾;骞� + info( groupBy ); + // 闈㈡澘鍩哄湴;浜嬩笟閮� + info( byBusinessTypeOrByOrgCode ); + info( businessTypeChosen ); + info( placeOfProductionOfArrayChosen ); + info( year ); + + // ====娓呯悊鏃ф暟鎹�==== + this.CapacityAndSaleBudgeChartRow( relflush ); this.CapacityAndSaleBudgeChartElement( relflush ); - info( isCapacity ); - info( groupBy ); - info( byBusinessTypeOrByOrgCodde ); - info( businessType ); - info( orgCode ); - info( year ); + // ====鎸夐潰鏉垮熀鍦板拰浜嬩笟閮ㄥ浜у搧杩涜绛涢�夊垎缁�==== + historyData := selectset( otdTable, CapacityAndSaleBudge, item, true ); + if( placeOfProductionOfArrayChosen <> "" ) { + historyData := selectset( historyData, Elements, item, item.PlaceOfProductionOfArray() = placeOfProductionOfArrayChosen ); + } + if( businessTypeChosen <> "" ) { + historyData := selectset( historyData, Elements, item, item.BusinessType() = businessTypeChosen ); + } + traverse( historyData, Elements, item ) { + row := CapacityAndSaleBudgeChartRow::CreateIfNotExist( this, item.BusinessType(), item.PlaceOfProductionOfArray() ); + // 璁板綍姣忚鍖呭惈鍝簺product + CapacityAndSaleBudgeChartRowProduct::CreateIfNotExist( row, item.ProductCode() ); + } + rows := selectset( this, CapacityAndSaleBudgeChartRow, item, true ); + placeOfProductionOfArrayList := selectuniquevalues( historyData, Elements, item, item.PlaceOfProductionOfArray() ); + businessTypeList := selectuniquevalues( historyData, Elements, item, item.BusinessType() ); + // 鐢熸垚鍥捐〃鍏冪礌 + if( byBusinessTypeOrByOrgCode = "闈㈡澘鍩哄湴" and groupBy = "骞�" ) { + // 鐩爣 + traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) { + productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray ); + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-鐩爣", + BusinessTypeOrOrgCode := placeOfProductionOfArray, + Quantity := ifexpr( isCapacity, + CapacityAndSaleBudge::GetSheetByYear( productCodeList, otdTable, [Number]year ), + MappingForecast::GetQuantityByYear( productCodeList, mappingParent, [Number]year ) ) + ); + // S&OP + traverse( macroPlans, Elements, macroPlan ) { + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-" + macroPlan.ScenarioName(), + BusinessTypeOrOrgCode := placeOfProductionOfArray, + Quantity := ifexpr( isCapacity, + Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ), + 0.0 ) + ); + } + } + } + if ( byBusinessTypeOrByOrgCode = "闈㈡澘鍩哄湴" and groupBy = "鍗婂勾" ) { + for( halfNo := 1; halfNo <= 2; halfNo := halfNo + 1 ) { + traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) { + productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray ); + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣", + BusinessTypeOrOrgCode := placeOfProductionOfArray, + Quantity := ifexpr( isCapacity, + CapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, otdTable, [Number]year, halfNo ), + MappingForecast::GetQuantityByHalfYear( productCodeList, mappingParent, [Number]year, halfNo ) ) + ); + // S&OP + traverse( macroPlans, Elements, macroPlan ) { + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(), + BusinessTypeOrOrgCode := placeOfProductionOfArray, + Quantity := ifexpr( isCapacity, + Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ), + 0.0 ) + ); + } + } + } + } + if ( byBusinessTypeOrByOrgCode = "闈㈡澘鍩哄湴" and groupBy = "瀛e害" ) { + for( seasonNo := 1; seasonNo <= 4; seasonNo := seasonNo + 1 ) { + traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) { + productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray ); + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣", + BusinessTypeOrOrgCode := placeOfProductionOfArray, + Quantity := ifexpr( isCapacity, + CapacityAndSaleBudge::GetSheetBySeason( productCodeList, otdTable, [Number]year, seasonNo ), + MappingForecast::GetQuantityBySeason( productCodeList, mappingParent, [Number]year, seasonNo ) ) + ); + // S&OP + traverse( macroPlans, Elements, macroPlan ) { + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(), + BusinessTypeOrOrgCode := placeOfProductionOfArray, + Quantity := ifexpr( isCapacity, + Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ), + 0.0 ) + ); + } + } + } + } + if ( byBusinessTypeOrByOrgCode = "闈㈡澘鍩哄湴" and groupBy = "鏈�" ) { + for( monthNo := 1; monthNo <= 12; monthNo := monthNo + 1 ) { + traverse( placeOfProductionOfArrayList, Elements, placeOfProductionOfArray ) { + productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByPlaceOfProductionOfArray( rows, placeOfProductionOfArray ); + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]monthNo + "鏈�-鐩爣", + BusinessTypeOrOrgCode := placeOfProductionOfArray, + Quantity := ifexpr( isCapacity, + CapacityAndSaleBudge::GetSheetByMonth( productCodeList, otdTable, [Number]year, monthNo ), + MappingForecast::GetQuantityByMonth( productCodeList, mappingParent, [Number]year, monthNo ) ) + ); + // S&OP + traverse( macroPlans, Elements, macroPlan ) { + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]monthNo + "鏈�-" + macroPlan.ScenarioName(), + BusinessTypeOrOrgCode := placeOfProductionOfArray, + Quantity := ifexpr( isCapacity, + Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ), + 0.0 ) + ); + } + } + } + } + if( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "骞�" ) { + // 鐩爣 + traverse( businessTypeList, Elements, businessType ) { + productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType ); + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-鐩爣", + BusinessTypeOrOrgCode := businessType, + Quantity := ifexpr( isCapacity, + CapacityAndSaleBudge::GetSheetByYear( productCodeList, otdTable, [Number]year ), + MappingForecast::GetQuantityByYear( productCodeList, mappingParent, [Number]year ) ) + ); + // S&OP + traverse( macroPlans, Elements, macroPlan ) { + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-" + macroPlan.ScenarioName(), + BusinessTypeOrOrgCode := businessType, + Quantity := ifexpr( isCapacity, + Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ), + 0.0 ) + ); + } + } + } + if ( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "鍗婂勾" ) { + for( halfNo := 1; halfNo <= 2; halfNo := halfNo + 1 ) { + traverse( businessTypeList, Elements, businessType ) { + productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType ); + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣", + BusinessTypeOrOrgCode := businessType, + Quantity := ifexpr( isCapacity, + CapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, otdTable, [Number]year, halfNo ), + MappingForecast::GetQuantityByHalfYear( productCodeList, mappingParent, [Number]year, halfNo ) ) + ); + // S&OP + traverse( macroPlans, Elements, macroPlan ) { + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(), + BusinessTypeOrOrgCode := businessType, + Quantity := ifexpr( isCapacity, + Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ), + 0.0 ) + ); + } + } + } + } + if ( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "瀛e害" ) { + for( seasonNo := 1; seasonNo <= 4; seasonNo := seasonNo + 1 ) { + traverse( businessTypeList, Elements, businessType ) { + productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType ); + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣", + BusinessTypeOrOrgCode := businessType, + Quantity := ifexpr( isCapacity, + CapacityAndSaleBudge::GetSheetBySeason( productCodeList, otdTable, [Number]year, seasonNo ), + MappingForecast::GetQuantityBySeason( productCodeList, mappingParent, [Number]year, seasonNo ) ) + ); + // S&OP + traverse( macroPlans, Elements, macroPlan ) { + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(), + BusinessTypeOrOrgCode := businessType, + Quantity := ifexpr( isCapacity, + Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ), + 0.0 ) + ); + } + } + } + } + if ( byBusinessTypeOrByOrgCode = "浜嬩笟閮�" and groupBy = "鏈�" ) { + for( monthNo := 1; monthNo <= 12; monthNo := monthNo + 1 ) { + traverse( businessTypeList, Elements, businessType ) { + productCodeList := CapacityAndSaleBudgeChartRow::GetProductCodesByBusinessType( rows, businessType ); + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]monthNo + "鏈�-鐩爣", + BusinessTypeOrOrgCode := businessType, + Quantity := ifexpr( isCapacity, + CapacityAndSaleBudge::GetSheetByMonth( productCodeList, otdTable, [Number]year, monthNo ), + MappingForecast::GetQuantityByMonth( productCodeList, mappingParent, [Number]year, monthNo ) ) + ); + // S&OP + traverse( macroPlans, Elements, macroPlan ) { + this.CapacityAndSaleBudgeChartElement( relnew, + TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]monthNo + "鏈�-" + macroPlan.ScenarioName(), + BusinessTypeOrOrgCode := businessType, + Quantity := ifexpr( isCapacity, + Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ), + 0.0 ) + ); + } + } + } + } *] } diff --git a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl index 7451626..a2a5dc7 100644 --- a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl +++ b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeCompare.qbl @@ -72,7 +72,7 @@ cell := columnOrgCode.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.OrgCode() ); cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); } - // 闈㈡澘鍒嗛厤閲� - 骞村害棰勭畻 + // 闈㈡澘鍒嗛厤閲� - 骞村害棰勭畻 (sheets) // 鏍煎紡锛� 闈㈡澘鍒嗛厤閲� - 骞� - 鏈堬紙1-12 & total锛� - 骞村害棰勭畻/scenarioName info( "dealing 闈㈡澘鍒嗛厤閲�" ) if( CapacityAndSaleBudgeFilterItem::Contains( items, "闈㈡澘鍒嗛厤閲�" ) ) { @@ -143,14 +143,14 @@ traverse( months, Elements, month ) { columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-" + macroPlan.ScenarioName() ); traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cellReal := MappingForecast::GetByMonth( row.GetProductCodes(), mappingParent, year.YearNo(), month.MonthNo() ); + cellReal := MappingForecast::GetBalanceByMonth( row.GetProductCodes(), mappingParent, year.YearNo(), month.MonthNo() ); cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); } } columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-total-" + macroPlan.ScenarioName() ); traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { - cellReal := MappingForecast::GetByYear( row.GetProductCodes(), mappingParent, year.YearNo() ); + cellReal := MappingForecast::GetBalanceByYear( row.GetProductCodes(), mappingParent, year.YearNo() ); cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); } diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_PanelPRDataButton.def b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_PanelPRDataButton.def index 97ad3ac..a803cba 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_PanelPRDataButton.def +++ b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_PanelPRDataButton.def @@ -13,7 +13,7 @@ [ Image: 'ARROW_RIGHT' Label: 'Send checked PRs' - Taborder: 0 + Taborder: 1 ] } Component ButtonExportPR @@ -24,7 +24,18 @@ [ Image: 'EXPORT1' Label: '鏁版嵁瀵煎嚭' - Taborder: 1 + Taborder: 2 + ] + } + Component ButtonLoad + { + #keys: '[414384.0.859141085]' + BaseType: 'WebButton' + Properties: + [ + Image: 'THICK_ARROW_DOWN_BLUE' + Label: 'Clean & Load' + Taborder: 0 ] } ] diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_listContextMenuPRData\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_listContextMenuPRData\0431.def" index 204fe6d..b2ba89c 100644 --- "a/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_listContextMenuPRData\0431.def" +++ "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Component_listContextMenuPRData\0431.def" @@ -16,6 +16,17 @@ Title: 'Send selected PRs' ] } + Component MenuPrintRequest + { + #keys: '[414384.0.859180964]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'MEDIA_PLAY_GREEN' + Taborder: 4 + Title: 'Print request' + ] + } ] Properties: [ diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuPrintRequest_OnClick\043623.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuPrintRequest_OnClick\043623.def" new file mode 100644 index 0000000..ca3a5f2 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_ListPRData_844_MenuPrintRequest_OnClick\043623.def" @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: ListPRData_844 +Response OnClick ( + PRData selection +) id:Response_ListPRData_844_MenuPrintRequest_OnClick +{ + #keys: '[414384.0.859160768]' + CanBindMultiple: false + DefinitionID => /ListPRData_844/Responsedef_ListPRData_844_WebMenu_OnClick + Initiator: 'MenuPrintRequest' + Precondition: + [* + + *] + QuillAction + { + Body: + [* + info( selection.PrintCall( GlobalOTDTable, ApplicationMacroPlanner.GetUserName() ) ) + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_OnCreated.def index f626708..a2b42ff 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_OnCreated.def @@ -10,13 +10,13 @@ { Body: [* - if( not isnull( MacroPlan ) ) { - MacroPlan.PRData( relflush ); - PRData::TestData( MacroPlan ); - } - if( not isnull( GlobalOTDTable ) ) { - GlobalOTDTable.PRHistoryData( relflush ); - } + //if( not isnull( MacroPlan ) ) { + // MacroPlan.PRData( relflush ); + // PRData::TestData( MacroPlan ); + //} + //if( not isnull( GlobalOTDTable ) ) { + // GlobalOTDTable.PRHistoryData( relflush ); + //} *] } } diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonLoad_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonLoad_OnClick.def new file mode 100644 index 0000000..5a0a69d --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form633/Response_PanelPRDataButton_ButtonLoad_OnClick.def @@ -0,0 +1,21 @@ +Quintiq file version 2.0 +#parent: PanelPRDataButton/ButtonLoad +Response OnClick () id:Response_PanelPRDataButton_ButtonLoad_OnClick +{ + #keys: '[414384.0.859141084]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + + *] + QuillAction + { + Body: + [* + MacroPlan.PRData( relflush ); + PRData::FromSupplyPlanning( GlobalOTDTable, MacroPlan, MacroPlan, "" ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def index 43d6bba..8011270 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def @@ -17,7 +17,7 @@ DropDownTimeGroup.Text(), DropDownByBusinessTypeOrByOrgCode.Text(), DropDownBusinessTypes.Text(), - DropDownOrgCodes.Text(), + DropDownPlaceOfProductionOfArrays.Text(), DropDownYears.Text(), MPSync, GlobalOTDTable, diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_OnCreated.def index 0cf2128..ea33703 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_OnCreated.def @@ -12,7 +12,7 @@ CapacityAndSaleBudgeChartElement::TestData( ScenarioManager ); DropDownBusinessTypes.Strings( GlobalOTDTable.CapacityAndSaleBudgeBusinessTypeString() ); - DropDownOrgCodes.Strings( GlobalOTDTable.CapacityAndSaleBudgePlaceOfProductionOfArrayString() ); + DropDownPlaceOfProductionOfArrays.Strings( GlobalOTDTable.CapacityAndSaleBudgePlaceOfProductionOfArrayString() ); DropDownYears.Strings( GlobalOTDTable::CapacityAndSaleBudgeYearsString() ); *] GroupServerCalls: false diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def index 26784de..456fb75 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def @@ -14,7 +14,7 @@ BaseType: 'WebButton' Properties: [ - Label: '娴嬭瘯鐢�' + Label: '鐢熸垚' Taborder: 6 ] } @@ -39,7 +39,7 @@ Taborder: 3 ] } - Component DropDownOrgCodes + Component DropDownPlaceOfProductionOfArrays { #keys: '[414384.0.857770736]' BaseType: 'WebDropDownStringList' diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_listContextMenuPRHistoryData\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_listContextMenuPRHistoryData\0431.def" index fd4d7de..f83c6e2 100644 --- "a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_listContextMenuPRHistoryData\0431.def" +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Component_listContextMenuPRHistoryData\0431.def" @@ -16,6 +16,17 @@ Title: 'Call' ] } + Component MenuPrintRequest + { + #keys: '[414384.0.860210718]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'MEDIA_PLAY_GREEN' + Taborder: 4 + Title: 'Print request' + ] + } ] Properties: [ diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_MenuPrintRequest_OnClick\043338.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_MenuPrintRequest_OnClick\043338.def" new file mode 100644 index 0000000..58ad812 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormPRHistoryData/Response_ListPRHistoryData_844_MenuPrintRequest_OnClick\043338.def" @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: ListPRHistoryData_844 +Response OnClick ( + PRHistoryData selection +) id:Response_ListPRHistoryData_844_MenuPrintRequest_OnClick +{ + #keys: '[414384.0.860210608]' + CanBindMultiple: false + DefinitionID => /ListPRHistoryData_844/Responsedef_ListPRHistoryData_844_WebMenu_OnClick + Initiator: 'MenuPrintRequest' + QuillAction + { + Body: + [* + info( selection.PrintCall( ApplicationMacroPlanner.GetUserName() ) ) + *] + GroupServerCalls: false + } +} -- Gitblit v1.9.3