From 8fe535effe8ad184a82e565c3c066a94a8525606 Mon Sep 17 00:00:00 2001
From: hongji.li <hongji.a.li@capgemini.com>
Date: 星期三, 01 十一月 2023 17:44:53 +0800
Subject: [PATCH] 产能分配Bug fix
---
_Main/BL/Type_Forecast/StaticMethod_GetFulfilledBalanceByMonth.qbl | 10
_var/_Main/Data/.keep | 0
_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationByScenario.qbl | 30 ++++
_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl | 2
_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolume.qbl | 28 ++++
_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationBudget.qbl | 28 ++++
_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl | 4
_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def | 6
_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateData.qbl | 25 +++
_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolumeByScenario.qbl | 30 ++++
_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl | 243 +++++-----------------------------
11 files changed, 194 insertions(+), 212 deletions(-)
diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl
index 571fce9..f201682 100644
--- a/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl
+++ b/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl
@@ -2,7 +2,7 @@
#parent: #root
EDIBroker GlobalOTDTable_CAR_Export
{
- MDSDefinition: GlobalOTDTable
+ MDSDefinition: GlobalOTDSOP
TimeZone: 'ACT'
UseOSTimeZone: false
EDIModelLink.Source Source13
diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl
index 14045dd..1b8028f 100644
--- a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl
+++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl
@@ -1,12 +1,12 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Export (
- GlobalOTDTable globalOTDTable
+ GlobalOTDSOP globalOTDSOP
) as BinaryValue
{
TextBody:
[*
- binaryData := globalOTDTable.GlobalOTDTable_CAR_Export().ExecuteToXLS( true );
+ binaryData := globalOTDSOP.GlobalOTDTable_CAR_Export().ExecuteToXLS( true );
return binaryData.AsBinaryValue();
*]
diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateData.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateData.qbl
new file mode 100644
index 0000000..51e9eb4
--- /dev/null
+++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateData.qbl
@@ -0,0 +1,25 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateData (
+ const GlobalOTDTable globalOTDTable,
+ GlobalOTDSOP this
+)
+{
+ TextBody:
+ [*
+ traverse ( globalOTDTable, Global_MappingAnnualBudgetData, gmabd ) {
+ productCode := gmabd.ProductID();
+ row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, gmabd.BusinessType(), gmabd.OrganCode() );
+ CapacityAndSaleBudgeCompareItemRowProduct::CreateIfNotExist( row, productCode );
+ }
+
+ columnBusinessType := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜嬩笟閮�" );
+ columnPlaceOfProductionOfArray := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍩哄湴" );
+ traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ cell := columnBusinessType.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.BusinessType() );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ cell := columnPlaceOfProductionOfArray.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.PlaceOfProductionOfArray() );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ }
+ *]
+}
diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationBudget.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationBudget.qbl
new file mode 100644
index 0000000..da29213
--- /dev/null
+++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationBudget.qbl
@@ -0,0 +1,28 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreatePanelAllocationBudget (
+ GlobalOTDSOP this,
+ CapacityAndSaleBudgeFilterMonths months,
+ CapacityAndSaleBudgeFilterYear year,
+ const GlobalOTDTable globalOTDTable
+)
+{
+ TextBody:
+ [*
+ traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) {
+ total := 0.0;
+ traverse ( months, Elements, m ) {
+ columnName := "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]m.MonthNo() + "鏈�-骞村害棰勭畻";
+ columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName );
+ cellReal := Global_MappingForecast::GetQuantityByMonth( casbcir.GetProductCodes(), globalOTDTable, DateTime::Now().Year(), m.MonthNo() );
+ cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
+ total := total + cellReal;
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
+ }
+ columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-total-骞村害棰勭畻" );
+ cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total );
+ columnYear.TotalIdentification( year.YearNo() );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
+ }
+ *]
+}
diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationByScenario.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationByScenario.qbl
new file mode 100644
index 0000000..4cf1bf3
--- /dev/null
+++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreatePanelAllocationByScenario.qbl
@@ -0,0 +1,30 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreatePanelAllocationByScenario (
+ MacroPlans macroPlans,
+ GlobalOTDSOP this,
+ CapacityAndSaleBudgeFilterMonths months,
+ CapacityAndSaleBudgeFilterYear year
+)
+{
+ TextBody:
+ [*
+ traverse ( macroPlans, Elements, mp ) {
+ traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) {
+ total := 0.0;
+ traverse ( months, Elements, m ) {
+ columnName := "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]m.MonthNo() + "鏈�-" + mp.ScenarioName();
+ columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName );
+ cellReal := Product_MP::GetNewSupplyByMonth( casbcir.GetProductCodes(), mp, year.YearNo(), m.MonthNo() );
+ cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
+ total := total + cellReal;
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
+ }
+ columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-total-" + mp.ScenarioName() );
+ cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total );
+ columnYear.TotalIdentification( year.YearNo() );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
+ }
+ }
+ *]
+}
diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolume.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolume.qbl
new file mode 100644
index 0000000..6741062
--- /dev/null
+++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolume.qbl
@@ -0,0 +1,28 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateSalesVolume (
+ GlobalOTDSOP this,
+ CapacityAndSaleBudgeFilterMonths months,
+ CapacityAndSaleBudgeFilterYear year,
+ const GlobalOTDTable globalOTDTable
+)
+{
+ TextBody:
+ [*
+ traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) {
+ total := 0.0;
+ traverse ( months, Elements, m ) {
+ columnName := "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]m.MonthNo() + "鏈�-骞村害棰勭畻";
+ columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName );
+ cellReal := Global_MappingAnnualBudgetData::GetSaleByMonth( casbcir.GetProductCodes(), globalOTDTable, year.YearNo(), m.MonthNo() );
+ cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
+ total := total + cellReal;
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
+ }
+ columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-total-骞村害棰勭畻" );
+ cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total );
+ columnYear.TotalIdentification( year.YearNo() );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
+ }
+ *]
+}
diff --git a/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolumeByScenario.qbl b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolumeByScenario.qbl
new file mode 100644
index 0000000..4335178
--- /dev/null
+++ b/_Main/BL/Type_CapacityAndSaleBudgeCompareItemCell/StaticMethod_CreateSalesVolumeByScenario.qbl
@@ -0,0 +1,30 @@
+Quintiq file version 2.0
+#parent: #root
+StaticMethod CreateSalesVolumeByScenario (
+ MacroPlans macroPlans,
+ GlobalOTDSOP this,
+ CapacityAndSaleBudgeFilterMonths months,
+ CapacityAndSaleBudgeFilterYear year
+)
+{
+ TextBody:
+ [*
+ traverse ( macroPlans, Elements, mp ) {
+ traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) {
+ total := 0.0;
+ traverse ( months, Elements, m ) {
+ columnName := "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]m.MonthNo() + "鏈�-" + mp.ScenarioName();
+ columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName );
+ cellReal := Forecast::GetFulfilledBalanceByMonth( casbcir.GetProductCodes(), mp, year.YearNo(), m.MonthNo() );
+ cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
+ total := total + cellReal;
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
+ }
+ columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-total-" + mp.ScenarioName() );
+ cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total );
+ columnYear.TotalIdentification( year.YearNo() );
+ cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
+ }
+ }
+ *]
+}
diff --git a/_Main/BL/Type_Forecast/StaticMethod_GetFulfilledBalanceByMonth.qbl b/_Main/BL/Type_Forecast/StaticMethod_GetFulfilledBalanceByMonth.qbl
index 2d3b108..ac48151 100644
--- a/_Main/BL/Type_Forecast/StaticMethod_GetFulfilledBalanceByMonth.qbl
+++ b/_Main/BL/Type_Forecast/StaticMethod_GetFulfilledBalanceByMonth.qbl
@@ -12,11 +12,11 @@
// yypsybs Sep-18-2023 (created)
result := sum( macroPlan,
Product_MP.SalesDemand,
- item,
- item.istype( Forecast ) and productNo.Find( item.ProductID() ) > -1
- and item.StartDate().Year() = yearNo
- and item.StartDate().Month() = monthNo,
- item.FulfilledQuantity() * item.Price() );
+ tempSD,
+ productNo.Find( tempSD.ProductID() ) > -1
+ and tempSD.StartDate().Year() = yearNo
+ and tempSD.StartDate().Month() = monthNo,
+ tempSD.FulfilledQuantity() * tempSD.Price() );
return result;
*]
}
diff --git a/_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl b/_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl
index 0ba67ec..8b53f33 100644
--- a/_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl
+++ b/_Main/BL/Type_GlobalOTDSOP/Method_CapacityAndSaleBudgeCompare.qbl
@@ -5,13 +5,12 @@
CapacityAndSaleBudgeFilterItems items,
CapacityAndSaleBudgeFilterYears years,
CapacityAndSaleBudgeFilterMonths months,
- const GlobalOTDTable otdTable
+ const GlobalOTDTable globalOTDTable
)
{
Description: 'todo : mappingParent鏀逛负mpSync, random鍒犱簡'
TextBody:
[*
- // ====涓嶉�夋椂榛樿鍏ㄩ��====
if ( years.Size() = 0 ) {
years := selectset( this, CapacityAndSaleBudgeFilterYear, tempCASBFY, tempCASBFY.YearNo() = Date::ActualDate().Year() );
}
@@ -22,219 +21,57 @@
this.CapacityAndSaleBudgeCompareItemRow( relflush );
this.CapacityAndSaleBudgeCompareItemColumn( relflush );
- // ====姹囨�绘墍鏈夊嚭鐜扮殑浜у搧====
- targetglobal_MappingAnnualBudgetData := selectset( otdTable, Global_MappingAnnualBudgetData, item, true );
+ CapacityAndSaleBudgeCompareItemCell::CreateData( globalOTDTable, this );
- traverse ( targetglobal_MappingAnnualBudgetData, Elements, gmabd ) {
- productCode := gmabd.ProductID();
- // Global_MappingOperationBOM::CreateTestData( otdTable, "浜嬩笟閮�" + [String](productCode.Length() mod 3), "闈㈡澘鍩哄湴" + [String](productCode.Length() mod 4), productCode );
- // boms := selectset( otdTable, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode );
- // if( boms.Size() > 0 ) {
- // bom := boms.First();
- // businessType := bom.BusinessType();
- // placeOfProductionOfArray := bom.OrganCode();
- // 鐩稿悓闈㈡澘鍩哄湴鍜屼簨涓氶儴鐨勬斁涓�琛�
- row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, gmabd.BusinessType(), gmabd.OrganCode() );
- // 璁板綍姣忚鍖呭惈鍝簺product
- CapacityAndSaleBudgeCompareItemRowProduct::CreateIfNotExist( row, productCode );
- // } else {
- // debuginfo( "no boms for product : " + productCode );
- // }
- }
-
- // ====浠庡乏鍚戝彸鐢熸垚鍒楀ご涓庡唴瀹�====
- // 浜嬩笟閮紝闈㈡澘鍩哄湴
- columnBusinessType := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜嬩笟閮�" );
- columnPlaceOfProductionOfArray := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍩哄湴" );
- traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- cell := columnBusinessType.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.BusinessType() );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- cell := columnPlaceOfProductionOfArray.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.PlaceOfProductionOfArray() );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
-
- // 闈㈡澘鍒嗛厤閲� - 骞村害棰勭畻 (sheets)
- // 鏍煎紡锛� 闈㈡澘鍒嗛厤閲� - 骞� - 鏈堬紙1-12 & total锛� - 骞村害棰勭畻/scenarioName
if ( CapacityAndSaleBudgeFilterItem::Contains( items, "闈㈡澘鍒嗛厤閲�" ) ) {
traverse ( years, Elements, year ) {
- // 鍘嗗彶鏁版嵁
- // traverse ( months, Elements, month ) {
- // columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-骞村害棰勭畻" );
- // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- // cellReal := Global_MappingForecast::GetQuantityByMonth( row.GetProductCodes(), otdTable, DateTime::Now().Year(), month.MonthNo() );
- // cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- // cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- // }
- // }
- // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-total-骞村害棰勭畻" );
- // traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- // cellReal := Global_MappingForecast::GetQuantityByYear( row.GetProductCodes(), otdTable, year.YearNo() );
- // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- // cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- // }
-
- traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) {
- total := 0.0;
- traverse ( months, Elements, m ) {
- columnName := "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]m.MonthNo() + "鏈�-骞村害棰勭畻";
- columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName );
- cellReal := Global_MappingForecast::GetQuantityByMonth( casbcir.GetProductCodes(), otdTable, DateTime::Now().Year(), m.MonthNo() );
- cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- total := total + cellReal;
- cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
- }
- columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-total-骞村害棰勭畻" );
- cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total );
- columnYear.TotalIdentification( year.YearNo() );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
- }
-
- // S&OP鏁版嵁
- // traverse ( macroPlans, Elements, macroPlan ) {
- // traverse ( months, Elements, month ) {
- // columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this,
- // "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-" + macroPlan.ScenarioName() );
- // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- // cellReal := Product_MP::GetNewSupplyByMonth( row.GetProductCodes(), macroPlan, 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 := Product_MP::GetNewSupplyByYear( row.GetProductCodes(), macroPlan, year.YearNo() );
- // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- // cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- // }
- // }
- traverse ( macroPlans, Elements, mp ) {
- traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) {
- total := 0.0;
- traverse ( months, Elements, m ) {
- columnName := "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-" + [String]m.MonthNo() + "鏈�-" + mp.ScenarioName();
- columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName );
- cellReal := Product_MP::GetNewSupplyByMonth( casbcir.GetProductCodes(), mp, year.YearNo(), m.MonthNo() );
- cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- total := total + cellReal;
- cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
- }
- columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "闈㈡澘鍒嗛厤閲�-" + [String]year.YearNo() + "骞�-total-" + mp.ScenarioName() );
- cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total );
- columnYear.TotalIdentification( year.YearNo() );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
- }
- }
+ CapacityAndSaleBudgeCompareItemCell::CreatePanelAllocationBudget( this, months, year, globalOTDTable );
+ CapacityAndSaleBudgeCompareItemCell::CreatePanelAllocationByScenario( macroPlans, this, months, year );
}
}
- // 骞村害閿�鍞
if ( CapacityAndSaleBudgeFilterItem::Contains( items, "閿�鍞" ) ) {
traverse ( years, Elements, year ) {
- // 鍘嗗彶鏁版嵁
- // traverse ( months, Elements, month ) {
- // columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-骞村害棰勭畻" );
- // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- // cellReal := Global_MappingAnnualBudgetData::GetSaleByMonth( row.GetProductCodes(), otdTable, year.YearNo(), month.MonthNo() );
- // cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- // cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- // }
- // }
- // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" );
- // traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- // cellReal := Global_MappingAnnualBudgetData::GetSaleByYear( row.GetProductCodes(), otdTable, year.YearNo() );
- // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- // cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- // }
- traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) {
- total := 0.0;
- traverse ( months, Elements, m ) {
- columnName := "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]m.MonthNo() + "鏈�-骞村害棰勭畻";
- columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName );
- cellReal := Global_MappingAnnualBudgetData::GetSaleByMonth( casbcir.GetProductCodes(), otdTable, year.YearNo(), m.MonthNo() );
- cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- total := total + cellReal;
- cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
- }
- columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-total-骞村害棰勭畻" );
- cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total );
- columnYear.TotalIdentification( year.YearNo() );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
- }
-
- // S&OP鏁版嵁
- // traverse ( macroPlans, Elements, macroPlan ) {
- // traverse ( months, Elements, month ) {
- // columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]month.MonthNo() + "鏈�-" + macroPlan.ScenarioName() );
- // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- // cellReal := Forecast::GetFulfilledBalanceByMonth( row.GetProductCodes(), macroPlan, 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 ) {
- // // QID 23
- // cellReal := Forecast::GetFulfilledBalanceByYear( row.GetProductCodes(), macroPlan, year.YearNo() );
- // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- // cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- // }
- // }
- traverse ( macroPlans, Elements, mp ) {
- traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) {
- total := 0.0;
- traverse ( months, Elements, m ) {
- columnName := "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-" + [String]m.MonthNo() + "鏈�-" + mp.ScenarioName();
- columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName );
- cellReal := Forecast::GetFulfilledBalanceByMonth( casbcir.GetProductCodes(), mp, year.YearNo(), m.MonthNo() );
- cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal );
- total := total + cellReal;
- cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
- }
- columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "瀵瑰閿�鍞-" + [String]year.YearNo() + "骞�-total-" + mp.ScenarioName() );
- cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total );
- columnYear.TotalIdentification( year.YearNo() );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir );
- }
- }
+ CapacityAndSaleBudgeCompareItemCell::CreateSalesVolume( this, months, year, globalOTDTable );
+ CapacityAndSaleBudgeCompareItemCell::CreateSalesVolumeByScenario( macroPlans, this, months, year );
}
}
// 澶у紶鐩堝埄棰�
- traverse ( years, Elements, year ) {
- // 鍘嗗彶鏁版嵁
- columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" );
- traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- // S&OP鏁版嵁
- traverse( macroPlans, Elements, macroPlan ) {
- columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName() );
- traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- }
- }
- // 浜у搧鐩堝埄棰�
- traverse ( years, Elements, year ) {
- // 鍘嗗彶鏁版嵁
- columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" );
- traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- // S&OP鏁版嵁
- traverse ( macroPlans, Elements, macroPlan ) {
- columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName() );
- traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) {
- // todo
- cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
- cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
- }
- }
- }
+ //traverse ( years, Elements, year ) {
+ // // 鍘嗗彶鏁版嵁
+ // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" );
+ // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
+ // cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ // }
+ // // S&OP鏁版嵁
+ // traverse( macroPlans, Elements, macroPlan ) {
+ // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "澶у紶鐩堝埄棰�-" + [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName() );
+ // traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
+ // cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ // }
+ // }
+ //}
+ //// 浜у搧鐩堝埄棰�
+ //traverse ( years, Elements, year ) {
+ // // 鍘嗗彶鏁版嵁
+ // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�-骞村害棰勭畻" );
+ // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
+ // cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ // }
+ // // S&OP鏁版嵁
+ // traverse ( macroPlans, Elements, macroPlan ) {
+ // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "浜у搧鐩堝埄棰�-" + [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName() );
+ // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) {
+ // // todo
+ // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) );
+ // cell.CapacityAndSaleBudgeCompareItemRow( relset, row );
+ // }
+ // }
+ //}
// 璁剧疆rowNo鍜宑olumnNo
rowNo := 1;
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def
index 4428575..fd5f58b 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def
@@ -5,11 +5,15 @@
#keys: '[414702.0.391791234]'
CanBindMultiple: false
DefinitionID: 'Responsedef_WebButton_OnClick'
+ Precondition:
+ [*
+ return not isnull( GlobalOTDSOP );
+ *]
QuillAction
{
Body:
[*
- Application.Download( "浜ц兘鍒嗛厤缁撴灉.xlsx", CapacityAllocationResults::Export( GlobalOTDTable ).AsBinaryData() );
+ Application.Download( "浜ц兘鍒嗛厤缁撴灉.xlsx", CapacityAllocationResults::Export( GlobalOTDSOP ).AsBinaryData() );
*]
GroupServerCalls: false
}
diff --git a/_var/_Main/Data/.keep b/_var/_Main/Data/.keep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/_var/_Main/Data/.keep
--
Gitblit v1.9.3