Quintiq file version 2.0
|
#parent: #root
|
StaticMethod UpdateFirstLastPISPIP (
|
ProductInStockingPoint_MP pisp,
|
Period_MP firstperiod,
|
Period_MP lastperiod
|
)
|
{
|
TextBody:
|
[*
|
/*
|
firstpispip := select( pisp, ProductInStockingPointInPeriodPlanning, pispip, true, pispip.Period_MP() = firstperiod ).astype( ProductInStockingPointInPeriodPlanningLeaf );
|
lastpispip := select( pisp, ProductInStockingPointInPeriodPlanning, pispip, true, pispip.Period_MP() = lastperiod ).astype( ProductInStockingPointInPeriodPlanningLeaf );
|
|
|
pisp.FirstPISPIPRectangleMeta( relset, firstpispip );
|
pisp.LastPISPIPRectangleMeta( relset, lastpispip );
|
if ( isnull( firstpispip ) or isnull( lastpispip ) )
|
{
|
debuginfo( firstperiod.Start(), firstperiod.End(), firstperiod.IsPlanning() );
|
debuginfo( lastperiod.Start(), lastperiod.End(), lastperiod.IsPlanning() );
|
debuginfo( pisp.Name() );
|
|
debuginfo( guard( [String]firstpispip.Key(), 'null key' ), guard( [String]lastpispip.Key(), 'null key' ) );
|
}
|
|
*/
|
|
firstpispip := pisp.FirstPlanningPISPIP();
|
first := firstperiod.Start();
|
while( not isnull( firstpispip ) and firstpispip.Start() < first )
|
{
|
firstpispip := firstpispip.NextPlanningPISPIP();
|
}
|
firstp := firstpispip.astype( ProductInStockingPointInPeriodPlanningLeaf );
|
|
lastpispip := pisp.LastPlanningPISPIP();
|
last := lastperiod.Start();
|
while( not isnull( lastpispip ) and lastpispip.Start() > last )
|
{
|
lastpispip := lastpispip.PreviousPlanningPISPIP();
|
}
|
lastp := lastpispip.astype( ProductInStockingPointInPeriodPlanningLeaf );
|
|
pisp.FirstPISPIPRectangleMeta( relset, firstp );
|
pisp.LastPISPIPRectangleMeta( relset, lastp );
|
if ( isnull( firstp) or isnull( lastp ) )
|
{
|
debuginfo( guard( [String]firstpispip.Key(), 'null key' ), guard( [String]lastpispip.Key(), 'null key' ) );
|
debuginfo( 'firstp null=', isnull( firstp), 'lastp null=', isnull( lastp ) );
|
}
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|