From ea1c035b2abbbf99b05eb95ccc5293b8490412cf Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期四, 15 八月 2024 16:44:52 +0800
Subject: [PATCH] 涉及到调拨计划的报表调整
---
_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl | 48 +++++++++++++++++++++++++++---------------------
1 files changed, 27 insertions(+), 21 deletions(-)
diff --git a/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl b/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl
index c6a9c85..70676a9 100644
--- a/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl
+++ b/_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl
@@ -76,8 +76,6 @@
if( iscc or isdl ){
row.SetCellInventoryValue( daycolumn, iscc, [Real]inventoryquantity );
if( weekcolumn.EndDate() = pispip.Start().Date() or pispip.Period_MP() = endperiod ){
- // if( pispip.Start() = weekstart + Duration::Days( 6 ) or pispip.Period_MP() = endperiod ){
- // weekstart := ( weekstart + Duration::Days( 7 ) ).Date();
row.SetCellInventoryValue( weekcolumn, iscc, [Real]inventoryquantity );
}
}
@@ -88,25 +86,33 @@
}
//鐢熸垚璋冩嫧鏁版嵁
- traverse( owner, TransferPlanRow, tprow, ( tprow.SourceStockpoingPointID() = 'CC' and tprow.TargetStockpoingPointID() = 'DL' ) or ( tprow.SourceStockpoingPointID() = 'DL' and tprow.TargetStockpoingPointID() = 'CC' ) ){
- row := selectobject( table, Row, row, row.Name() = tprow.Name() );
- traverse( table, Column, column ){
- cell := selectobject( row, Cell, cell, cell.Column() = column );
- if( column.TimeUnit() = Translations::MP_GlobalParameters_Day() ){
- tpcell := selectobject( tprow, TransferPlanCell, tpcell, tpcell.TransferPlanColumn().ColumnDate() = column.StartDate() );
- if( tprow.SourceStockpoingPointID() = 'CC' and tprow.TargetStockpoingPointID() = 'DL' ){
- cell.CCTransferQty( [Real]tpcell.Value() );
- }else if( tprow.SourceStockpoingPointID() = 'DL' and tprow.TargetStockpoingPointID() = 'CC' ){
- cell.DLTransferQty( [Real]tpcell.Value() );
- }
- }else if( column.TimeUnit() = Translations::MP_GlobalParameters_Week() ){
- period := column.StartDate() + Duration::Days( 6 );
- tpcell := selectobject( tprow, TransferPlanCell, tpcell, tpcell.TransferPlanColumn().ColumnDate() = period.Date() );
-
- if( tprow.SourceStockpoingPointID() = 'CC' and tprow.TargetStockpoingPointID() = 'DL' ){
- cell.CCTransferQty( [Real]tpcell.Value() );
- }else if( tprow.SourceStockpoingPointID() = 'DL' and tprow.TargetStockpoingPointID() = 'CC' ){
- cell.DLTransferQty( [Real]tpcell.Value() );
+ traverse( owner, TransferPlanRow, tprow ){
+ product := selectobject( owner, Product_MP, product, product.ID() = tprow.ProductID() );
+ productparents := product.GetAllParent();
+ if( exists( productparents, Elements, e, e.ID() = productparent ) ){//鏌ヨ浜у搧绫诲瀷鏄彂鍔ㄦ満
+ //璧峰搴撳瓨鐐规槸鍚︽槸澶ц繛or闀挎槬
+ originsp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.SourceStockpoingPointID() );
+ originunit := originsp.Unit();
+ originparentunits := originunit.GetAllParent();
+ originiscc := originsp.ID() = ccunit or originunit.ID() = ccunit or exists( originparentunits, Elements, punit, punit.ID() = ccunit );
+ originisdl := originsp.ID() = dlunit or originunit.ID() = dlunit or exists( originparentunits, Elements, punit, punit.ID() = dlunit );
+ //鐩殑鍦版槸鍚︽槸闀挎槬澶栫搴�
+ destisp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.TargetStockpoingPointID() );
+ destiunit := originsp.Unit();
+ destiparentunits := destiunit.GetAllParent();
+ destiiscc := destisp.ID() = ccunit or destiunit.ID() = ccunit or exists( destiparentunits, Elements, punit, punit.ID() = ccunit );
+ destiisdl := destisp.ID() = dlunit or destiunit.ID() = dlunit or exists( destiparentunits, Elements, punit, punit.ID() = dlunit );
+ if( ( originiscc and destiisdl ) or ( originisdl and destiiscc ) ){
+ row := selectobject( table, Row, row, row.Name() = tprow.Name() );
+ traverse( tprow, TransferPlanCell, tpcell ){
+ //澶�
+ daycolumn := table.GetColumnByUnit( Translations::MP_GlobalParameters_Day(), tpcell.TransferPlanColumn().ColumnDate() );
+ //鍛�
+ weekcolumn := table.GetColumnByUnit( Translations::MP_GlobalParameters_Week(), tpcell.TransferPlanColumn().ColumnDate() );
+ quantity := [Real]tpcell.Value();//鍥涜垗浜斿叆
+
+ row.SetCellTransferValue( daycolumn, ( originiscc and destiisdl ), quantity );
+ row.SetCellTransferValue( weekcolumn, ( originiscc and destiisdl ), quantity );
}
}
}
--
Gitblit v1.9.3