From c75cd6f6eb1e06a27e28c26ca9df0324b7ed675f Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期二, 08 十月 2024 16:59:51 +0800
Subject: [PATCH] 库存汇总报表数据问题bug
---
_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl | 2 +-
_Main/BL/Type_InventorySummaryReport/Method_Generate.qbl | 2 +-
_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl | 45 ++++++++++++++++++++++-----------------------
3 files changed, 24 insertions(+), 25 deletions(-)
diff --git a/_Main/BL/Type_InventorySummaryReport/Method_Generate.qbl b/_Main/BL/Type_InventorySummaryReport/Method_Generate.qbl
index a7c66eb..56611da 100644
--- a/_Main/BL/Type_InventorySummaryReport/Method_Generate.qbl
+++ b/_Main/BL/Type_InventorySummaryReport/Method_Generate.qbl
@@ -9,7 +9,7 @@
[*
// 鐢勫叞楦� Jun-25-2024 (created)
startofplanning := search.MacroPlan().StartOfPlanning();
- startofyear := startofplanning.StartOfYear();
+ startofyear := startofplanning.StartOfYear() - Duration::Days( 1 );
startofendyear := startofplanning.StartOfNextYear() - Duration::Days( 1 );
//鏌ヨ鏃ユ湡杩斿洖闇�瑕佸湪璁″垝鏃ユ湡涔嬪唴
if( search.StartDate().DateTime() < startofendyear and search.EndDate().DateTime() > startofyear ){
diff --git a/_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl b/_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl
index 8bdba43..4484691 100644
--- a/_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl
+++ b/_Main/BL/Type_InventorySummaryReport/Method_GenerateColumn.qbl
@@ -11,7 +11,7 @@
[*
// 鐢勫叞楦� Jun-25-2024 (created)
startofplanning := owner.StartOfPlanning();
- startofyear := startofplanning.StartOfYear();
+ startofyear := startofplanning.StartOfYear() - Duration::Days( 1 );
startofendyear := startofplanning.StartOfNextYear() - Duration::Days( 1 );
//鏌ヨ鏃ユ湡杩斿洖闇�瑕佸湪璁″垝鏃ユ湡涔嬪唴
if( starttime < startofendyear and endtime > startofyear ){
diff --git a/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl b/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl
index ec32de3..cc7d847 100644
--- a/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl
+++ b/_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl
@@ -23,8 +23,8 @@
table := source.InventorySummaryReport( relnew, ID := source.Name(), Name := source.Name() );
showtable := source.InventorySummaryReport( relnew, ID := source.Name() + 'Show', Name := source.Name(), IsShow := true );
startofplanning := owner.StartOfPlanning();
- startofyear := startofplanning.StartOfYear();
- startofnextyear := startofplanning.StartOfNextYear();
+ startofyear := startofplanning.StartOfYear() - Duration::Days( 1 );
+ startofnextyear := startofplanning.StartOfNextYear() - Duration::Days( 1 );
search := owner.InventorySummarySearch( relnew, Unit := allunit, Generation := allunit, MqbMlb := allunit, Power := allunit, Category := Translations::MP_GlobalParameters_Day(), StartDate := Date::MinDate(), EndDate := Date::MaxDate() );
@@ -33,14 +33,14 @@
//搴撳瓨鏁伴噺涓篈ctual inventories閲岄潰鐨勭偣Planned inventories瀛楁搴撳瓨閲忓姞鎬�
traverse( owner, StockingPoint_MP, stockingpoint ){
//traverse( owner, StockingPoint_MP, stockingpoint, stockingpoint.ID().EndsWith( '鍘傚唴搴�' ) ){
- // unit := stockingpoint.Unit();
- // parentunits := unit.GetAllParent();
+ unit := stockingpoint.Unit();
+ parentunits := unit.GetAllParent();
//鏄惁灞炰簬闀挎槬宸ュ巶
- iscc := stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID() = '闀挎槬' ;//unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit );
- // iscc := stockingpoint.ID().StartsWith( 'CC' ) or unit.ID().StartsWith( 'CC' ) or exists( parentunits, Elements, punit, punit.ID().StartsWith( 'CC' ) );
+ // iscc := stockingpoint.ID().StartsWith( 'CC' ) or stockingpoint.ID() = '闀挎槬' ;//unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit );
+ iscc := exists( parentunits, Elements, punit, punit.ID().StartsWith( 'VWED CC' ) );
//鏄惁灞炰簬澶ц繛宸ュ巶
- isdl := stockingpoint.ID().StartsWith( '澶ц繛' );//unit.ID() = dlalienunit or unit.ID() = dlmplineunit or exists( parentunits, Elements, punit, punit.ID() = dlalienunit or punit.ID() = dlmplineunit );
- // isdl := stockingpoint.ID().StartsWith( 'DL' ) or unit.ID().StartsWith( 'DL' ) or exists( parentunits, Elements, punit, punit.ID().StartsWith( 'DL' ) );
+ // isdl := stockingpoint.ID().StartsWith( '澶ц繛' );//unit.ID() = dlalienunit or unit.ID() = dlmplineunit or exists( parentunits, Elements, punit, punit.ID() = dlalienunit or punit.ID() = dlmplineunit );
+ isdl := exists( parentunits, Elements, punit, punit.ID().StartsWith( 'VWED DL' ) );
if( iscc or isdl ){
traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf() ){
//鑾峰彇宸ュ巶琛�
@@ -54,8 +54,7 @@
nextweek := startofplanning.StartOfNextWeek();
nextmonth := startofplanning.StartOfNextMonth();
- pispips := selectsortedset( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical()
- and pispip.Start() < startofnextyear
+ pispips := selectsortedset( pisp, ProductInStockingPointInPeriod, pispip, pispip.Start() < startofnextyear
and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day(), pispip.Start() );
traverse( pispips, Elements, pispip ){
@@ -66,9 +65,9 @@
//澶╋紝閫夋嫨鏃ラ绮掑害鏃讹紝鏈熸湯搴撳瓨锛屾渶灏忓簱瀛橈紝鏈�澶у簱瀛樺拰骞冲潎搴撳瓨鐨勬暟鍊间繚鎸佷竴鑷�
daycolumn := selectobject( table, InventorySummaryColumn, column, column.Name() = periodname, column.Period() = periodtime, column.TimeUnit() = Translations::MP_GlobalParameters_Day() );
- info( daycolumn.Name(), daycolumn.Period(), daycolumn.TimeUnit() );
- factoryrow.SetCellValue( daycolumn, [Number]pispip.PlannedInventoryLevelEnd() );
- allrow.SetCellValue( daycolumn, [Number]pispip.PlannedInventoryLevelEnd() );
+ quantity := ifexpr( pispip.Period_MP().IsHistorical(), [Number]pispip.ActualInventoryLevelEnd(), [Number]pispip.PlannedInventoryLevelEnd() );
+ factoryrow.SetCellValue( daycolumn, quantity );
+ allrow.SetCellValue( daycolumn, quantity );
//鍛紝閫夋嫨鍛ㄦ椂锛屾湡鏈簱瀛樹负姣忎竴鍛ㄦ渶鍚庝竴澶╃殑姹囨�诲簱瀛樹俊鎭紝鏈�灏忓簱瀛樹负杩欎竴鍛ㄥ簱瀛橀噺鏈�灏忕殑涓�澶╃殑鏁板�硷紝鏈�澶у簱瀛樹负杩欎竴鍛ㄥ簱瀛橀噺鏈�澶х殑涓�澶╃殑鏁板�硷紝骞冲潎搴撳瓨涓鸿鍛ㄧ殑骞冲潎鍊�
if( period.Start() < nextweek ){
@@ -78,11 +77,11 @@
if( period.Start() = weekend ){
weekcolumn := selectobject( table, InventorySummaryColumn, column, column.Name() = periodname, column.Period() = periodtime, column.TimeUnit() = Translations::MP_GlobalParameters_Week() );
- maxinventory := max( weekpispips, Elements, e, [Number]e.PlannedInventoryLevelEnd() );
- mininventory := min( weekpispips, Elements, e, [Number]e.PlannedInventoryLevelEnd() );
- aveinventory := average( weekpispips, Elements, e, [Number]e.PlannedInventoryLevelEnd() );
- factoryrow.SetCellValue( weekcolumn, [Number]pispip.PlannedInventoryLevelEnd(), mininventory, maxinventory, [Number]aveinventory );
- allrow.SetCellValue( weekcolumn, [Number]pispip.PlannedInventoryLevelEnd(), mininventory, maxinventory, [Number]aveinventory );
+ maxinventory := max( weekpispips, Elements, e, ifexpr( pispip.Period_MP().IsHistorical(), [Number]e.ActualInventoryLevelEnd(), [Number]e.PlannedInventoryLevelEnd() ) );
+ mininventory := min( weekpispips, Elements, e, ifexpr( pispip.Period_MP().IsHistorical(), [Number]e.ActualInventoryLevelEnd(), [Number]e.PlannedInventoryLevelEnd() ) );
+ aveinventory := average( weekpispips, Elements, e, ifexpr( pispip.Period_MP().IsHistorical(), [Number]e.ActualInventoryLevelEnd(), [Number]e.PlannedInventoryLevelEnd() ) );
+ factoryrow.SetCellValue( weekcolumn, quantity, mininventory, maxinventory, [Number]aveinventory );
+ allrow.SetCellValue( weekcolumn, quantity, mininventory, maxinventory, [Number]aveinventory );
}
}else{
weekpispips.Flush();
@@ -98,11 +97,11 @@
if( period.Start() = monthend ){
monthcolumn := selectobject( table, InventorySummaryColumn, column, column.Name() = periodname, column.Period() = periodtime, column.TimeUnit() = Translations::MP_GlobalParameters_Month() );
- maxinventory := max( monthpispips, Elements, e, [Number]e.PlannedInventoryLevelEnd() );
- mininventory := min( monthpispips, Elements, e, [Number]e.PlannedInventoryLevelEnd() );
- aveinventory := average( monthpispips, Elements, e, [Number]e.PlannedInventoryLevelEnd() );
- factoryrow.SetCellValue( monthcolumn, [Number]pispip.PlannedInventoryLevelEnd(), mininventory, maxinventory, [Number]aveinventory );
- allrow.SetCellValue( monthcolumn, [Number]pispip.PlannedInventoryLevelEnd(), mininventory, maxinventory, [Number]aveinventory );
+ maxinventory := max( monthpispips, Elements, e, ifexpr( pispip.Period_MP().IsHistorical(), [Number]e.ActualInventoryLevelEnd(), [Number]e.PlannedInventoryLevelEnd() ) );
+ mininventory := min( monthpispips, Elements, e, ifexpr( pispip.Period_MP().IsHistorical(), [Number]e.ActualInventoryLevelEnd(), [Number]e.PlannedInventoryLevelEnd() ) );
+ aveinventory := average( monthpispips, Elements, e, ifexpr( pispip.Period_MP().IsHistorical(), [Number]e.ActualInventoryLevelEnd(), [Number]e.PlannedInventoryLevelEnd() ) );
+ factoryrow.SetCellValue( monthcolumn, quantity, mininventory, maxinventory, [Number]aveinventory );
+ allrow.SetCellValue( monthcolumn, quantity, mininventory, maxinventory, [Number]aveinventory );
}
}else{
monthpispips.Flush();
--
Gitblit v1.9.3