From adfa4e3c3a15bbdfb634b49a552505d40742d046 Mon Sep 17 00:00:00 2001
From: lazhen <17772815105@139.com>
Date: 星期四, 19 九月 2024 16:25:09 +0800
Subject: [PATCH] 财务产量/销量报表改动
---
_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl | 106 +++++++++++++++++++++++++++++------------------------
1 files changed, 58 insertions(+), 48 deletions(-)
diff --git a/_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl b/_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl
index 500883e..2ac9f43 100644
--- a/_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl
+++ b/_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl
@@ -16,9 +16,9 @@
ccsalessegment := FinancialSalesReport::GetSalesSegmentCC();
tjsalessegment := FinancialSalesReport::GetSalesSegmentTJ();
fssalessegment := FinancialSalesReport::GetSalesSegmentFS();
- ccspline := FinancialSalesReport::GetStockingPointCCLine();
- dlspline := FinancialSalesReport::GetStockingPointDLLine();
- ccrent := FinancialSalesReport::GetStockingPointCCRent();
+ //ccspline := FinancialSalesReport::GetStockingPointCCLine();
+ //dlspline := FinancialSalesReport::GetStockingPointDLLine();
+ //ccrent := FinancialSalesReport::GetStockingPointCCRent();
source := owner.FinancialSalesSource( relnew, IsImport := false, Name := FinancialSalesReport::GetDefaultName() );
table := source.FinancialSalesReport( relnew, ID := source.Name(), Name := source.Name(), IsImport := false );
@@ -37,11 +37,15 @@
salessegment := forecast.SalesSegment_MP();
parentsalessegments := salessegment.GetAllParent();
//鏄惁灞炰簬闀挎槬
- iscc := salessegment.Name() = ccsalessegment or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name() = ccsalessegment );
+ // iscc := salessegment.Name() = ccsalessegment or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name() = ccsalessegment );
+ iscc := salessegment.Name().StartsWith( ccsalessegment ) or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name().StartsWith( ccsalessegment ) );
//鏄惁灞炰簬澶ц繛, 鍗冲ぉ娲ュ拰浣涘北
- isdl := salessegment.Name() = tjsalessegment or salessegment.Name() = fssalessegment
- or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name() = tjsalessegment )
- or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name() = fssalessegment );
+ // isdl := salessegment.Name() = tjsalessegment or salessegment.Name() = fssalessegment
+ // or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name() = tjsalessegment )
+ // or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name() = fssalessegment );
+ isdl := salessegment.Name().StartsWith( tjsalessegment ) or salessegment.Name().StartsWith( fssalessegment )
+ or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name().StartsWith( tjsalessegment ) )
+ or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name().StartsWith( fssalessegment ) );
//Forecast鐨凷ales Segment涓洪暱鏄ワ紝璇嗗埆鍑篗LB鐨勬墍鏈変骇鍝佹眹鎬�
//澶ц繛璐㈠姟閿�閲忥細棣栧厛鍦╢orecast鐣岄潰鏌ユ壘Sales Segment鏄ぉ娲ュ拰浣涘北鐨勬墍鏈夐渶姹傦紝姣忎釜浜у搧鎸夋湀姹囨�婚渶姹傛暟閲�
if( ( iscc and forecast.Product_MP().MQBMLB() = 'MLB' ) or isdl ){
@@ -69,70 +73,76 @@
}
}
}
- //浠嶱roduct planning鏌ユ壘搴撳瓨鐐逛负闀挎槬瑁呴厤绾胯竟搴撶殑鎵�鏈塎QB浜у搧锛屽彇Total Demand瀛楁鎸夋湀姹囨�婚渶姹傛暟閲�
- traverse( owner, StockingPoint_MP, stockingpoint ){
+ //浠嶱roduct planning鏌ユ壘搴撳瓨鐐逛负闀挎槬瑁呴厤绾胯竟搴�(CC鍘傚唴搴�)鐨勬墍鏈塎QB浜у搧锛屽彇Total Demand瀛楁鎸夋湀姹囨�婚渶姹傛暟閲�
+ //浠嶱roduct planning鏌ユ壘搴撳瓨鐐逛负澶ц繛鍙戝姩鏈虹殑闀挎槬澶栫搴擄紝鍙朜ew supply瀛楁鎸夋湀姹囨�婚渶姹傛暟閲�
+ //traverse( owner, StockingPoint_MP, stockingpoint ){
+ traverse( owner, StockingPoint_MP, stockingpoint, ( stockingpoint.ID().StartsWith( 'CC' ) and stockingpoint.ID().EndsWith( '鍘傚唴搴�' ) ) or stockingpoint.ID() = '澶ц繛鍙戝姩鏈虹殑闀挎槬澶栫搴�' ){
+ isdl := stockingpoint.ID() = '澶ц繛鍙戝姩鏈虹殑闀挎槬澶栫搴�';
// unit := stockingpoint.Unit();
// parentunits := unit.GetAllParent();
//鏄惁灞炰簬闀挎槬瑁呴厤绾�
// iscc := unit.ID() = ccspline or exists( parentunits, Elements, punit, punit.ID() = ccspline );
- if( table.IsInUnit( stockingpoint, ccspline ) ){
+ // if( table.IsInUnit( stockingpoint, ccspline ) ){
traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf() and pisp.Product_MP().MQBMLB() = 'MQB'
- and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.DependentDemandAndSalesDemandQuantity() <> 0 ) ){//浜у搧涓篗QB
+ and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear
+ and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ) ){//浜у搧涓篗QB
product := pisp.Product_MP();
allrow := table.GetRow( allunit, product );
ccrow := table.GetRow( ccunit, product );
products.Add( product );
- traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.DependentDemandAndSalesDemandQuantity() <> 0 ){
+ traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical()
+ and pispip.Period_MP().StartDate() < startofnextyear
+ and ( pispip.DependentDemandAndSalesDemandQuantity() <> 0 or pispip.NewSupplyQuantity() <> 0 ) ){
dayperiodtime := pispip.Start().Date();
dayperiodname := dayperiodtime.Format( "M2/D2/Y" );
periodtime := pispip.Start().StartOfMonth().Date();
periodname := periodtime.Format( "M2/D2/Y" );
daycolumn := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() );
column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() );
- quantity := [Number]pispip.DependentDemandAndSalesDemandQuantity();//鍥涜垗浜斿叆
+ quantity := ifexpr( isdl, [Number]pispip.NewSupplyQuantity(), [Number]pispip.DependentDemandAndSalesDemandQuantity() );//鍥涜垗浜斿叆
ccrow.Initialize( column, quantity );//鍙朤otal Demand瀛楁鎸夋湀姹囨�婚渶姹傛暟閲�
ccrow.Initialize( daycolumn, quantity );
allrow.Initialize( column, quantity );
}
}
- }
+ // }
}
- startofnextyearlead := startofplanning.StartOfNextYear() + FinancialSalesReport::GetDefaultTripLeadingTime();
+ //startofnextyearlead := startofplanning.StartOfNextYear() + FinancialSalesReport::GetDefaultTripLeadingTime();
//澶ц繛璐㈠姟閿�閲忥細闀挎槬鐨勯渶姹傞渶瑕佸湪trip plan閲岄潰鎵惧埌璧峰搴撳瓨鐐逛负澶ц繛瑁呴厤绾胯竟搴擄紝鐩殑鍦颁负闀挎槬澶栫搴撶殑浜у搧锛岀敱浜庨渶瑕佽�冭檻浜у搧杩愯緭lead time锛屾瘡涓湀鐨勬眹鎬绘暟鎹渶瑕佹帹杩熶袱澶╄繘琛岃绠�
- traverse( owner, Unit.Lane.LaneLeg, laneleg ){
- //璧峰搴撳瓨鐐规槸鍚︽槸澶ц繛瑁呴厤绾胯竟搴�
- originsp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.OriginStockingPointID() );
- isdlspline := table.IsInUnit( originsp, dlspline );
- //鐩殑鍦版槸鍚︽槸闀挎槬澶栫搴�
- destisp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.DestinationStockingPointID() );
- isccrent := table.IsInUnit( destisp, ccrent );
- if( isdlspline and isccrent ){
- traverse( laneleg, Trip, trip, trip.Arrival() < startofnextyearlead and exists( trip, ProductInTrip, pit, pit.Quantity() <> 0 ) ){
- // periodtime := ( trip.Arrival() - FinancialSalesReport::GetDefaultTripLeadingTime() ).StartOfMonth().Date();
- dayperiodtime := trip.Departure().Date();
- dayperiodname := dayperiodtime.Format( "M2/D2/Y" );
- periodtime := trip.Departure().StartOfMonth().Date();
- periodname := periodtime.Format( "M2/D2/Y" );
-
- daycolumn := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() );
- column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() );
- if( not isnull( column ) ){
- traverse( trip, ProductInTrip, pit, pit.Quantity() <> 0 ){
- product := pit.Product_MP();
- products.Add( product );
- quantity := [Number]pit.Quantity();//鍥涜垗浜斿叆
- dlrow := table.GetRow( dlunit, pit.Product_MP() );
- dlrow.Initialize( column, quantity );//姹囨�绘暟閲�
- dlrow.Initialize( daycolumn, quantity );
-
- allrow := table.GetRow( allunit, pit.Product_MP() );
- allrow.Initialize( column, quantity );
- }
- }
- }
- }
- }
+ //traverse( owner, Unit.Lane.LaneLeg, laneleg ){
+ // //璧峰搴撳瓨鐐规槸鍚︽槸澶ц繛瑁呴厤绾胯竟搴�
+ // originsp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.OriginStockingPointID() );
+ // isdlspline := table.IsInUnit( originsp, dlspline );
+ // //鐩殑鍦版槸鍚︽槸闀挎槬澶栫搴�
+ // destisp := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.DestinationStockingPointID() );
+ // isccrent := table.IsInUnit( destisp, ccrent );
+ // if( isdlspline and isccrent ){
+ // traverse( laneleg, Trip, trip, trip.Arrival() < startofnextyearlead and exists( trip, ProductInTrip, pit, pit.Quantity() <> 0 ) ){
+ //// periodtime := ( trip.Arrival() - FinancialSalesReport::GetDefaultTripLeadingTime() ).StartOfMonth().Date();
+ // dayperiodtime := trip.Departure().Date();
+ // dayperiodname := dayperiodtime.Format( "M2/D2/Y" );
+ // periodtime := trip.Departure().StartOfMonth().Date();
+ // periodname := periodtime.Format( "M2/D2/Y" );
+ //
+ // daycolumn := selectobject( table, FinancialSalesColumn, column, column.Name() = dayperiodname and column.Period() = dayperiodtime and column.IsDay() );
+ // column := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime and not column.IsDay() );
+ // if( not isnull( column ) ){
+ // traverse( trip, ProductInTrip, pit, pit.Quantity() <> 0 ){
+ // product := pit.Product_MP();
+ // products.Add( product );
+ // quantity := [Number]pit.Quantity();//鍥涜垗浜斿叆
+ // dlrow := table.GetRow( dlunit, pit.Product_MP() );
+ // dlrow.Initialize( column, quantity );//姹囨�绘暟閲�
+ // dlrow.Initialize( daycolumn, quantity );
+ //
+ // allrow := table.GetRow( allunit, pit.Product_MP() );
+ // allrow.Initialize( column, quantity );
+ // }
+ // }
+ // }
+ // }
+ //}
rows := selectsortedset( table, FinancialSalesRow, row, row.Name() );
i := 0;
--
Gitblit v1.9.3