Quintiq file version 2.0
|
#parent: #root
|
StaticMethod GetMinimumManufacturedDate (
|
Product_MP product,
|
StockingPoint_MP stockingpoint,
|
Date actualdate
|
) declarative remote as Date
|
{
|
Description: 'Returns the allowed minimum manufactured date that the product will not expires before/within this period.'
|
TextBody:
|
[*
|
value := Date::MinDate();
|
|
pisp := select( product, PISPSpecification, spec, spec.StockingPoint_MP()= stockingpoint );
|
|
//hasshelf life and not IsExcludeShelfLifeAndMaturation
|
hasshelflife := guard( product.HasShelfLifeOrMaturation(), false )
|
and not guard( pisp.IsExcludeShelfLifeAndMaturation(), false)
|
|
// Check if product has shelf-life
|
if( hasshelflife )
|
{
|
// if only has maturation but no shelflife, set mfg date to the period's end date
|
shelflife := ifexpr( product.HasShelfLife(), round( product.ShelfLife() ), 0 );
|
|
value := actualdate - shelflife;
|
|
if( not product.MacroPlan().GlobalParameters_MP().IsUsableIfExpiredWithinPeriod()
|
and product.HasShelfLife() )
|
{
|
value := value + 1;
|
}
|
}
|
|
return value;
|
*]
|
}
|