From 744ece58704eabc06b44d3df45216bcced80ed96 Mon Sep 17 00:00:00 2001
From: yypsybs <yypsybs@foxmail.com>
Date: 星期五, 22 九月 2023 22:52:01 +0800
Subject: [PATCH] 处理测试问题
---
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def | 22 +
_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl | 2
_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeExport.qbl | 143 +++++++++++++
_Main/BL/Type_MappingSaleBudge/StaticMethod_ExpectedHeaders.qbl | 64 +++++
_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl | 73 ++++++
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def | 11 +
_Main/BL/Type_MPSync/StaticMethod_TestData.qbl | 4
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def | 1
_Main/BL/Type_MappingSaleBudge/StaticMethod_ExportFields.qbl | 64 +++++
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def | 23 ++
_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart#95.qbl | 100 ++++----
_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl | 102 ++++----
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def | 2
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def | 2
14 files changed, 496 insertions(+), 117 deletions(-)
diff --git a/_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl b/_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl
index 822bde4..7fa388c 100644
--- a/_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl
+++ b/_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl
@@ -10,7 +10,7 @@
// yypsybs Sep-15-2023 (created)
existList := selectuniquevalues( parent, CapacityAndSaleBudgeFilterYear, item, item.YearNo() );
nowYear := Date::Today().Year();
- for( i := nowYear - 10; i <= nowYear; i++ ) {
+ for( i := nowYear - 10; i <= nowYear + 5; i++ ) {
if( existList.Find( i ) = -1 ) {
parent.CapacityAndSaleBudgeFilterYear( relnew,
YearNo := i );
diff --git a/_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeExport.qbl b/_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeExport.qbl
new file mode 100644
index 0000000..0048b94
--- /dev/null
+++ b/_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeExport.qbl
@@ -0,0 +1,143 @@
+Quintiq file version 2.0
+#parent: #root
+Method CapacityAndSaleBudgeExport () as BinaryValue
+{
+ Description: '瀵煎嚭姣旇緝缁撴灉'
+ TextBody:
+ [*
+ // generate by generate_export.py
+ info( "export start" );
+ text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>骞村害浜ч攢棰勭畻</name>
+ <column><name>鍒犻櫎鏍囪</name><type>String</type></column>
+ <column><name>骞翠唤</name><type>Number</type></column>
+ <column><name>涓氬姟閮ㄩ棬</name><type>String</type></column>
+ <column><name>鏄剧ず鎶�鏈垎绫�</name><type>String</type></column>
+ <column><name>涓氬姟鍒嗙被</name><type>String</type></column>
+ <column><name>浜у搧绾�/浜у搧瑙勬牸</name><type>String</type></column>
+ <column><name>浜у搧鏂欏彿</name><type>String</type></column>
+ <column><name>Array浜у湴</name><type>String</type></column>
+ <column><name>钂搁晙浜у湴</name><type>String</type></column>
+ <column><name>鍒嗚鲸鐜�</name><type>String</type></column>
+ <column><name>鍑鸿揣褰㈡��</name><type>String</type></column>
+ <column><name>鍒囧壊鏁�</name><type>String</type></column>
+ <column><name>浜ц兘褰撻噺</name><type>String</type></column>
+ <column><name>mask鏁�</name><type>String</type></column>
+ <column><name>1鏈堜骇鑳�(PCS)</name><type>Real</type></column>
+ <column><name>2鏈堜骇鑳�(PCS)</name><type>Real</type></column>
+ <column><name>3鏈堜骇鑳�(PCS)</name><type>Real</type></column>
+ <column><name>4鏈堜骇鑳�(PCS)</name><type>Real</type></column>
+ <column><name>5鏈堜骇鑳�(PCS)</name><type>Real</type></column>
+ <column><name>6鏈堜骇鑳�(PCS)</name><type>Real</type></column>
+ <column><name>7鏈堜骇鑳�(PCS)</name><type>Real</type></column>
+ <column><name>8鏈堜骇鑳�(PCS)</name><type>Real</type></column>
+ <column><name>9鏈堜骇鑳�(PCS)</name><type>Real</type></column>
+ <column><name>10鏈堜骇鑳�(PCS)</name><type>Real</type></column>
+ <column><name>11鏈堜骇鑳�(PCS)</name><type>Real</type></column>
+ <column><name>12鏈堜骇鑳�(PCS)</name><type>Real</type></column>
+ <column><name>骞翠骇鑳�(PCS)</name><type>Real</type></column>
+ <column><name>1鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column>
+ <column><name>2鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column>
+ <column><name>3鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column>
+ <column><name>4鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column>
+ <column><name>5鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column>
+ <column><name>6鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column>
+ <column><name>7鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column>
+ <column><name>8鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column>
+ <column><name>9鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column>
+ <column><name>10鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column>
+ <column><name>11鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column>
+ <column><name>12鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column>
+ <column><name>骞翠骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column>
+ <column><name>1鏈堥攢鍞(W)</name><type>Real</type></column>
+ <column><name>2鏈堥攢鍞(W)</name><type>Real</type></column>
+ <column><name>3鏈堥攢鍞(W)</name><type>Real</type></column>
+ <column><name>4鏈堥攢鍞(W)</name><type>Real</type></column>
+ <column><name>5鏈堥攢鍞(W)</name><type>Real</type></column>
+ <column><name>6鏈堥攢鍞(W)</name><type>Real</type></column>
+ <column><name>7鏈堥攢鍞(W)</name><type>Real</type></column>
+ <column><name>8鏈堥攢鍞(W)</name><type>Real</type></column>
+ <column><name>9鏈堥攢鍞(W)</name><type>Real</type></column>
+ <column><name>10鏈堥攢鍞(W)</name><type>Real</type></column>
+ <column><name>11鏈堥攢鍞(W)</name><type>Real</type></column>
+ <column><name>12鏈堥攢鍞(W)</name><type>Real</type></column>
+ <column><name>骞撮攢鍞(W)</name><type>Real</type></column>
+ </table>';
+ xmlDOMImplementation := XMLDOMImplementation::Create();
+ xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text );
+
+ tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 );
+
+ toExportList := selectsortedset( this, MappingCapacityAndSaleBudge, item, true, item.OrgCode() + "_" + item.PlaceOfProductionOfArray() );
+ info( "export size : " + [String]toExportList.Size() );
+ nowNo := 1;
+ traverse ( toExportList, Elements, toExport ) {
+ info( "nowNo : " + [String]nowNo );
+ nowNo := nowNo + 1;
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.Deleted(), "Y", "N"), "鍒犻櫎鏍囪" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.YearNo(), "骞翠唤" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.OrgCode(), "涓氬姟閮ㄩ棬" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.DisplayTechnology(), "鏄剧ず鎶�鏈垎绫�" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.BusinessType(), "涓氬姟鍒嗙被" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.LineAndSpecification(), "浜у搧绾�/浜у搧瑙勬牸" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductCode(), "浜у搧鏂欏彿" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.PlaceOfProductionOfArray(), "Array浜у湴" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.PlaceOfProductionOfEvaporation(), "钂搁晙浜у湴" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.Resolution(), "鍒嗚鲸鐜�" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ShippingForm(), "鍑鸿揣褰㈡��" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.NumberOfCut(), "鍒囧壊鏁�" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.CapacityEquivalent(), "浜ц兘褰撻噺" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.NumberOfMask(), "mask鏁�" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth1(), "1鏈堜骇鑳�(PCS)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth2(), "2鏈堜骇鑳�(PCS)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth3(), "3鏈堜骇鑳�(PCS)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth4(), "4鏈堜骇鑳�(PCS)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth5(), "5鏈堜骇鑳�(PCS)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth6(), "6鏈堜骇鑳�(PCS)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth7(), "7鏈堜骇鑳�(PCS)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth8(), "8鏈堜骇鑳�(PCS)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth9(), "9鏈堜骇鑳�(PCS)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth10(), "10鏈堜骇鑳�(PCS)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth11(), "11鏈堜骇鑳�(PCS)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth12(), "12鏈堜骇鑳�(PCS)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSTotal(), "骞翠骇鑳�(PCS)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth1(), "1鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth2(), "2鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth3(), "3鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth4(), "4鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth5(), "5鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth6(), "6鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth7(), "7鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth8(), "8鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth9(), "9鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth10(), "10鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth11(), "11鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth12(), "12鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetTotal(), "骞翠骇鑳�(瀹炴暟澶у紶)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth1(), "1鏈堥攢鍞(W)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth2(), "2鏈堥攢鍞(W)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth3(), "3鏈堥攢鍞(W)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth5(), "4鏈堥攢鍞(W)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth4(), "5鏈堥攢鍞(W)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth6(), "6鏈堥攢鍞(W)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth7(), "7鏈堥攢鍞(W)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth8(), "8鏈堥攢鍞(W)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth9(), "9鏈堥攢鍞(W)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth10(), "10鏈堥攢鍞(W)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth11(), "11鏈堥攢鍞(W)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth12(), "12鏈堥攢鍞(W)" );
+ ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountTotal(), "骞撮攢鍞(W)" );
+ }
+
+ xmlDOMSerializer := xmlDOMImplementation.CreateSerializer();
+ xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument );
+
+ tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) );
+ tableGroupHandle := TableGroupHandle::Create( "骞村害浜ч攢棰勭畻" );
+ tableGroupHandle.Add( tableHandle );
+ tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
+
+ info( "export end" );
+
+ return tableBinaryData.AsBinaryValue();
+ *]
+}
diff --git a/_Main/BL/Type_MPSync/StaticMethod_TestData.qbl b/_Main/BL/Type_MPSync/StaticMethod_TestData.qbl
index 87c2b27..541ab96 100644
--- a/_Main/BL/Type_MPSync/StaticMethod_TestData.qbl
+++ b/_Main/BL/Type_MPSync/StaticMethod_TestData.qbl
@@ -15,7 +15,7 @@
info( "productCodeList : " + [String]productCodeList.Size() );
mpSync.MappingCapacityAndSaleBudge( relflush );
- for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year(); year := year + 1 ) {
+ for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) {
for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
productCode := productCodeList.Element( i - 1 );
mappingCapacityAndSaleBudge := mpSync.MappingCapacityAndSaleBudge( relnew,
@@ -41,7 +41,7 @@
info( "test MappingCapacityAndSaleBudge size : " + [String]result1.Size() );
mpSync.MappingAnnualBudget( relflush );
- for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year(); year := year + 1 ) {
+ for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) {
for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
productCode := productCodeList.Element( i - 1 );
mappingAnnualBudget := mpSync.MappingAnnualBudget( relnew,
diff --git a/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExpectedHeaders.qbl b/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExpectedHeaders.qbl
new file mode 100644
index 0000000..d7275ba
--- /dev/null
+++ b/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExpectedHeaders.qbl
@@ -0,0 +1,64 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ExpectedHeaders () as owning Strings
+{
+ TextBody:
+ [*
+ // yypsybs Jun-30-2023 (created)
+ value := construct( structured[String] );
+ value.Add( "鍒犻櫎鏍囪" );
+ value.Add( "骞翠唤" );
+ value.Add( "涓氬姟閮ㄩ棬" );
+ value.Add( "鏄剧ず鎶�鏈垎绫�" );
+ value.Add( "涓氬姟鍒嗙被" );
+ value.Add( "浜у搧绾�/浜у搧瑙勬牸" );
+ value.Add( "浜у搧鏂欏彿" );
+ value.Add( "Array浜у湴" );
+ value.Add( "钂搁晙浜у湴" );
+ value.Add( "鍒嗚鲸鐜�" );
+ value.Add( "鍑鸿揣褰㈡��" );
+ value.Add( "鍒囧壊鏁�" );
+ value.Add( "浜ц兘褰撻噺" );
+ value.Add( "mask鏁�" );
+ value.Add( "1鏈堜骇鑳�(PCS)" );
+ value.Add( "2鏈堜骇鑳�(PCS)" );
+ value.Add( "3鏈堜骇鑳�(PCS)" );
+ value.Add( "4鏈堜骇鑳�(PCS)" );
+ value.Add( "5鏈堜骇鑳�(PCS)" );
+ value.Add( "6鏈堜骇鑳�(PCS)" );
+ value.Add( "7鏈堜骇鑳�(PCS)" );
+ value.Add( "8鏈堜骇鑳�(PCS)" );
+ value.Add( "9鏈堜骇鑳�(PCS)" );
+ value.Add( "10鏈堜骇鑳�(PCS)" );
+ value.Add( "11鏈堜骇鑳�(PCS)" );
+ value.Add( "12鏈堜骇鑳�(PCS)" );
+ value.Add( "骞翠骇鑳�(PCS)" );
+ value.Add( "1鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ value.Add( "2鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ value.Add( "3鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ value.Add( "4鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ value.Add( "5鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ value.Add( "6鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ value.Add( "7鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ value.Add( "8鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ value.Add( "9鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ value.Add( "10鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ value.Add( "11鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ value.Add( "12鏈堜骇鑳�(瀹炴暟澶у紶)" );
+ value.Add( "骞翠骇鑳�(瀹炴暟澶у紶)" );
+ value.Add( "1鏈堥攢鍞(W)" );
+ value.Add( "2鏈堥攢鍞(W)" );
+ value.Add( "3鏈堥攢鍞(W)" );
+ value.Add( "4鏈堥攢鍞(W)" );
+ value.Add( "5鏈堥攢鍞(W)" );
+ value.Add( "6鏈堥攢鍞(W)" );
+ value.Add( "7鏈堥攢鍞(W)" );
+ value.Add( "8鏈堥攢鍞(W)" );
+ value.Add( "9鏈堥攢鍞(W)" );
+ value.Add( "10鏈堥攢鍞(W)" );
+ value.Add( "11鏈堥攢鍞(W)" );
+ value.Add( "12鏈堥攢鍞(W)" );
+ value.Add( "骞撮攢鍞(W)" );
+ return &value;
+ *]
+}
diff --git a/_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl b/_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl
new file mode 100644
index 0000000..c469165
--- /dev/null
+++ b/_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl
@@ -0,0 +1,73 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod Export (
+ MPSync parent
+) as String
+{
+ TextBody:
+ [*
+ // yypsybs Jul-1-2023 (created)
+ xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?>
+ <table>
+ <name>MappingCapacityAndSaleBudge</name>
+ ';
+ //---------------------------------------------------------------------------------------------
+ exportFields := MappingCapacityAndSaleBudge::ExportFields();
+ exportHeaders := MappingCapacityAndSaleBudge::ExpectedHeaders();
+ if( exportFields.Size() <> exportHeaders.Size() ) {
+ error( "fields and headers not match" );
+ }
+ info( "export start" );
+ for( i := 0; i < exportFields.Size() ; i++ ) {
+ header := exportHeaders.Element( i );
+ fieldName := exportFields.Element( i );
+ info( "header : " + header )
+ info( "fieldName : " + fieldName )
+ columnStr := "<column><name>" + header + "</name><type>String</type>";
+ traverse( parent, MappingCapacityAndSaleBudge, oldRecord ) {
+ field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", fieldName);
+ if( not isnull( field ) ) {
+ fieldValue := "";
+ if( fieldValue = "" ) {
+ fieldValue := guard( field.GetString( oldRecord ), "" );
+ }
+ if( fieldValue = "" ) {
+ fieldValue := guard( [String]field.GetNumber( oldRecord ), "" );
+ }
+ if( fieldValue = "" ) {
+ fieldValue := guard( [String]field.GetReal( oldRecord ), "" );
+ }
+ if( fieldValue = "" ) {
+ fieldValue := guard( ifexpr( field.GetBoolean( oldRecord ), "Y", "N" ), "" );
+ }
+ if( fieldValue = "" ) {
+ fileDateValue := guard( field.GetDate( oldRecord ), Date::MinDate() );
+ if( fileDateValue <> Date::MinDate() ) {
+ conv := DateTimeToString::StandardConverter();
+ conv.SetCustomConversion();
+ conv.CustomFormatString( 'yyyyMMdd' );
+ fieldValue := conv.Convert( fileDateValue.DateTime() );
+ }
+ }
+ cellStr := '<cell value="' + fieldValue + '"/>';
+
+ columnStr := columnStr + cellStr;
+ } else {
+ error( "no field " + fieldName + " in type MappingCapacityAndSaleBudge");
+ }
+ }
+ columnStr := columnStr + "</column>";
+ xmlTemplate := xmlTemplate + columnStr;
+ }
+ //---------------------------------------------------------------------------------------------
+ xmlTemplate := xmlTemplate + "</table>";
+ info( xmlTemplate );
+ tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) );
+ XLS::SaveTable( tableHandle, OS::TempPath() + "MappingCapacityAndSaleBudge.xlsx" );
+ file := OSFile::Construct();
+ file.Open( OS::TempPath() + "MappingCapacityAndSaleBudge.xlsx", "Read", true );
+ data := file.ReadBinary()
+ info( "export end" );
+ return data.AsBase64EncodedString();
+ *]
+}
diff --git a/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExportFields.qbl b/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExportFields.qbl
new file mode 100644
index 0000000..58b6447
--- /dev/null
+++ b/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExportFields.qbl
@@ -0,0 +1,64 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod ExportFields () as owning Strings
+{
+ TextBody:
+ [*
+ // yypsybs Jun-30-2023 (created)
+ value := construct( structured[String] );
+ value.Add( "Deleted" );
+ value.Add( "YearNo" );
+ value.Add( "OrgCode" );
+ value.Add( "DisplayTechnology" );
+ value.Add( "BusinessType" );
+ value.Add( "LineAndSpecification" );
+ value.Add( "ProductCode" );
+ value.Add( "PlaceOfProductionOfArray" );
+ value.Add( "PlaceOfProductionOfEvaporation" );
+ value.Add( "Resolution" );
+ value.Add( "ShippingForm" );
+ value.Add( "NumberOfCut" );
+ value.Add( "CapacityEquivalent" );
+ value.Add( "NumberOfMask" );
+ value.Add( "CapacityInPCSInMonth1" );
+ value.Add( "CapacityInPCSInMonth2" );
+ value.Add( "CapacityInPCSInMonth3" );
+ value.Add( "CapacityInPCSInMonth4" );
+ value.Add( "CapacityInPCSInMonth5" );
+ value.Add( "CapacityInPCSInMonth6" );
+ value.Add( "CapacityInPCSInMonth7" );
+ value.Add( "CapacityInPCSInMonth8" );
+ value.Add( "CapacityInPCSInMonth9" );
+ value.Add( "CapacityInPCSInMonth10" );
+ value.Add( "CapacityInPCSInMonth11" );
+ value.Add( "CapacityInPCSInMonth12" );
+ value.Add( "CapacityInPCSTotal" );
+ value.Add( "CapacityInSheetInMonth1" );
+ value.Add( "CapacityInSheetInMonth2" );
+ value.Add( "CapacityInSheetInMonth3" );
+ value.Add( "CapacityInSheetInMonth4" );
+ value.Add( "CapacityInSheetInMonth5" );
+ value.Add( "CapacityInSheetInMonth6" );
+ value.Add( "CapacityInSheetInMonth7" );
+ value.Add( "CapacityInSheetInMonth8" );
+ value.Add( "CapacityInSheetInMonth9" );
+ value.Add( "CapacityInSheetInMonth10" );
+ value.Add( "CapacityInSheetInMonth11" );
+ value.Add( "CapacityInSheetInMonth12" );
+ value.Add( "CapacityInSheetTotal" );
+ value.Add( "SaleAmountInMonth1" );
+ value.Add( "SaleAmountInMonth2" );
+ value.Add( "SaleAmountInMonth3" );
+ value.Add( "SaleAmountInMonth5" );
+ value.Add( "SaleAmountInMonth4" );
+ value.Add( "SaleAmountInMonth6" );
+ value.Add( "SaleAmountInMonth7" );
+ value.Add( "SaleAmountInMonth8" );
+ value.Add( "SaleAmountInMonth9" );
+ value.Add( "SaleAmountInMonth10" );
+ value.Add( "SaleAmountInMonth11" );
+ value.Add( "SaleAmountInMonth12" );
+ value.Add( "SaleAmountTotal" );
+ return &value;
+ *]
+}
diff --git "a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart\04395.qbl" "b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart\04395.qbl"
index 2c07b9d..c543694 100644
--- "a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart\04395.qbl"
+++ "b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart\04395.qbl"
@@ -2,7 +2,7 @@
#parent: #root
Method CapacityAndSaleBudgeChart (
MacroPlans macroPlans,
- Boolean isCapacity,
+ String saleOrCapacity,
String groupBy,
String byBusinessTypeOrByOrgCode,
CapacityAndSaleBudgeFilterBusinessTypes businessTypes,
@@ -19,7 +19,7 @@
[*
// yypsybs Sep-19-2023 (created)
// true, false
- info( isCapacity );
+ info( saleOrCapacity );
// 鏈�;瀛e害;鍗婂勾;骞�
info( groupBy );
// 闈㈡澘鍩哄湴;浜嬩笟閮�
@@ -82,18 +82,18 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year.YearNo() + "骞�-鐩爣",
BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( isCapacity,
- MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ),
- MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ),
+ MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) )
);
// S&OP
traverse( macroPlans, Elements, macroPlan ) {
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName(),
BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( isCapacity,
- Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ),
- MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ),
+ Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() )
)
);
}
@@ -106,18 +106,18 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣",
BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( isCapacity,
- MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ),
- MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ),
+ MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) )
);
// S&OP
traverse( macroPlans, Elements, macroPlan ) {
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(),
BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( isCapacity,
- Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ),
- MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ),
+ Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo )
)
);
}
@@ -134,9 +134,9 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣",
BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( isCapacity,
- MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ),
- MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ),
+ MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) )
);
// info( "productCodeList : " + [String]productCodeList.Size() );
// S&OP
@@ -144,9 +144,9 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(),
BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( isCapacity,
- Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ),
- MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ) ,
+ Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo )
)
);
}
@@ -162,18 +162,18 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + monthNoString + "鏈�-鐩爣",
BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( isCapacity,
- MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ),
- MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ),
+ MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) )
);
// S&OP
traverse( macroPlans, Elements, macroPlan ) {
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + monthNoString + "鏈�-" + macroPlan.ScenarioName(),
BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( isCapacity,
- Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ),
- MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ),
+ Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() )
)
);
}
@@ -188,18 +188,18 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year.YearNo() + "骞�-鐩爣",
BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( isCapacity,
- MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ),
- MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ),
+ MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) )
);
// S&OP
traverse( macroPlans, Elements, macroPlan ) {
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName(),
BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( isCapacity,
- Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ),
- MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ) ,
+ Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() )
)
);
}
@@ -212,18 +212,18 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣",
BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( isCapacity,
- MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ),
- MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ),
+ MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) )
);
// S&OP
traverse( macroPlans, Elements, macroPlan ) {
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(),
BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( isCapacity,
- Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ),
- MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ) ,
+ Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo )
)
);
}
@@ -238,18 +238,18 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣",
BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( isCapacity,
- MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ),
- MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ),
+ MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) )
);
// S&OP
traverse( macroPlans, Elements, macroPlan ) {
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(),
BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( isCapacity,
- Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ),
- MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ),
+ Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo )
)
);
}
@@ -266,18 +266,18 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + monthNoString + "鏈�-鐩爣",
BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( isCapacity,
- MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ),
- MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ),
+ MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) )
);
// S&OP
traverse( macroPlans, Elements, macroPlan ) {
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + monthNoString + "鏈�-" + macroPlan.ScenarioName(),
BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( isCapacity,
- Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ),
- MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ) ,
+ Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() )
)
);
}
diff --git a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl
index 2f62201..fbb2caf 100644
--- a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl
+++ b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl
@@ -2,7 +2,7 @@
#parent: #root
Method CapacityAndSaleBudgeChart (
MacroPlans macroPlans,
- Boolean isCapacity,
+ String saleOrCapacity,
String groupBy,
String byBusinessTypeOrByOrgCode,
String businessTypeChosen,
@@ -22,7 +22,7 @@
[*
// yypsybs Sep-19-2023 (created)
// true, false
- info( isCapacity );
+ info( saleOrCapacity );
// 鏈�;瀛e害;鍗婂勾;骞�
info( groupBy );
// 闈㈡澘鍩哄湴;浜嬩笟閮�
@@ -61,20 +61,18 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year + "骞�-鐩爣",
BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( isCapacity,
- MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ),
- // todo QID 23
- MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ) )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ),
+ MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ) )
);
// S&OP
traverse( macroPlans, Elements, macroPlan ) {
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year + "骞�-" + macroPlan.ScenarioName(),
BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( isCapacity,
- Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ),
- // todo
- 0.0 )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ 0.0,
+ Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ) )
);
}
}
@@ -86,18 +84,18 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣",
BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( isCapacity,
- MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ),
- MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ),
+ MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) )
);
// S&OP
traverse( macroPlans, Elements, macroPlan ) {
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(),
BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( isCapacity,
- Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ),
- 0.0 )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ 0.0,
+ Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ) )
);
}
}
@@ -113,9 +111,9 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣",
BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( isCapacity,
- MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ),
- MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ),
+ MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) )
);
// info( "productCodeList : " + [String]productCodeList.Size() );
// S&OP
@@ -123,9 +121,9 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(),
BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( isCapacity,
- Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ),
- 0.0 )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ 0.0,
+ Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ) )
);
}
}
@@ -139,18 +137,18 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year + "骞�-绗�" + monthNoString + "鏈�-鐩爣",
BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( isCapacity,
- MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ),
- MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ),
+ MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) )
);
// S&OP
traverse( macroPlans, Elements, macroPlan ) {
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year + "骞�-绗�" + monthNoString + "鏈�-" + macroPlan.ScenarioName(),
BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray,
- Quantity := ifexpr( isCapacity,
- Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ),
- 0.0 )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ 0.0,
+ Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ) )
);
}
}
@@ -163,18 +161,18 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year + "骞�-鐩爣",
BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( isCapacity,
- MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ),
- MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ) )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ),
+ MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ) )
);
// S&OP
traverse( macroPlans, Elements, macroPlan ) {
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year + "骞�-" + macroPlan.ScenarioName(),
BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( isCapacity,
- Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ),
- 0.0 )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ 0.0,
+ Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ) )
);
}
}
@@ -186,18 +184,18 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣",
BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( isCapacity,
- MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ),
- MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ),
+ MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) )
);
// S&OP
traverse( macroPlans, Elements, macroPlan ) {
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(),
BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( isCapacity,
- Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ),
- 0.0 )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ 0.0,
+ Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ) )
);
}
}
@@ -210,18 +208,18 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣",
BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( isCapacity,
- MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ),
- MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ),
+ MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) )
);
// S&OP
traverse( macroPlans, Elements, macroPlan ) {
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(),
BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( isCapacity,
- Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ),
- 0.0 )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ 0.0,
+ Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ) )
);
}
}
@@ -235,18 +233,18 @@
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year + "骞�-绗�" + monthNoString + "鏈�-鐩爣",
BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( isCapacity,
- MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ),
- MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ),
+ MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) )
);
// S&OP
traverse( macroPlans, Elements, macroPlan ) {
this.CapacityAndSaleBudgeChartElement( relnew,
TimeStringAndScenarioName := [String]year + "骞�-绗�" + monthNoString + "鏈�-" + macroPlan.ScenarioName(),
BusinessTypeOrPlaceOfProductionOfArray := businessType,
- Quantity := ifexpr( isCapacity,
- Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ),
- 0.0 )
+ Quantity := ifexpr( saleOrCapacity = "閿�鍞",
+ 0.0,
+ Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ) )
);
}
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def
index 1e5e82c..984c1f6 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def
@@ -38,6 +38,6 @@
]
Properties:
[
- Taborder: 0
+ Taborder: 1
]
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def
new file mode 100644
index 0000000..4f195d5
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def
@@ -0,0 +1,23 @@
+Quintiq file version 2.0
+#parent: ButtonExportDetail
+Response OnClick () id:Response_FormCapacityAndSaleBudge_ButtonExportDetail_OnClick
+{
+ #keys: '[414384.0.887310502]'
+ CanBindMultiple: false
+ DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ return not isnull( MPSync );
+ *]
+ QuillAction
+ {
+ Body:
+ [*
+ //Application.Download( "骞村害浜ч攢棰勭畻璇︽儏.xlsx", MPSync.CapacityAndSaleBudgeExport().AsBinaryData() );
+
+ base64 := MappingCapacityAndSaleBudge::Export( MPSync );
+ Application.Download( "骞村害浜ч攢棰勭畻璇︽儏.xlsx", base64 );
+ *]
+ GroupServerCalls: false
+ }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def
index 2b3f638..d4df714 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def
@@ -12,6 +12,7 @@
[*
MPSync::TestData( MPSync, MacroPlan );
GlobalOTDTable.InitTestData();
+ MPSync.RefreshCapacityAndSaleBudgeFilter();
*]
}
}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def
index 168d51b..8758502 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def
@@ -8,6 +8,17 @@
Children:
[
#child: ListCapacityAndSaleBudge
+ Component ButtonExportDetail
+ {
+ #keys: '[414384.0.887310503]'
+ BaseType: 'WebButton'
+ Properties:
+ [
+ Image: 'EXPORT1'
+ Label: '瀵煎嚭'
+ Taborder: 0
+ ]
+ }
]
Properties:
[
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def
index ccb0ea2..53e33ba 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def
@@ -13,7 +13,7 @@
CapacityAndSaleBudgeChartElement::TestData( ScenarioManager );
ScenarioManager.CapacityAndSaleBudgeChart( DataHolderMacroPlansForScenarioComparison.Data(),
- CheckboxIsCapacity.Checked(),
+ DropDownSaleOrCapacity.Text(),
DropDownTimeGroup.Text(),
DropDownByBusinessTypeOrByOrgCode.Text(),
DataHolderCapacityAndSaleBudgeFilterBusinessType.Data(),
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def
index 3684ed8..237e0c6 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def
@@ -53,16 +53,6 @@
Visible: false
]
}
- Component CheckboxIsCapacity
- {
- #keys: '[414384.0.857770765]'
- BaseType: 'WebCheckbox'
- Properties:
- [
- Label: '浜ц兘'
- Taborder: 5
- ]
- }
Component DropDownTimeGroup
{
#keys: '[414384.0.857771238]'
@@ -87,6 +77,18 @@
Taborder: 0
]
}
+ Component DropDownSaleOrCapacity
+ {
+ #keys: '[414384.0.886240556]'
+ BaseType: 'WebDropDownStringList'
+ Properties:
+ [
+ InitialValue: '閿�鍞'
+ Label: '閿�鍞/浜ц兘'
+ Strings: '閿�鍞;浜ц兘'
+ Taborder: 5
+ ]
+ }
]
Properties:
[
--
Gitblit v1.9.3