Quintiq file version 2.0
|
#parent: #root
|
StaticMethod GetMinimumManufacturedDate (
|
Product_MP product,
|
MacroPlan macroplan,
|
Date date
|
) declarative remote as Date
|
{
|
TextBody:
|
[*
|
// This is the same logic with InventorySupply.CalcProductInStockingPointInPeriodPlanningLeaf relation
|
period := select( macroplan, Period_MP, p,
|
p.IsPlanning(),
|
ifexpr( p.IsInHour(),
|
p.IsFirstPeriodOfDay() // If period is in hours, choose the one that is the first period of the same day
|
and p.StartDate() = date,
|
p.StartDate() <= date
|
and p.EndDate() > date ) );
|
|
value := Date::MinDate();
|
// Check if product has shelf-life
|
if( not isnull( period )
|
and product.HasShelfLifeOrMaturation() )
|
{
|
periodstartdate := period.StartDate();
|
|
shelflife := ifexpr( product.HasShelfLife(), round( product.ShelfLife() ), 0 );
|
value := periodstartdate - shelflife
|
|
if( not macroplan.GlobalParameters_MP().IsUsableIfExpiredWithinPeriod()
|
and product.HasShelfLife() )
|
{
|
value := value + 1;
|
}
|
|
}
|
|
return value;
|
*]
|
}
|