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_InventorySummarySource/StaticMethod_Initialize.qbl | 45 ++++++++++++++++++++++----------------------- 1 files changed, 22 insertions(+), 23 deletions(-) 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