Quintiq file version 2.0
|
#parent: #root
|
Method VerifyDayInvSpecPISPIPInvLevelEnd (
|
Product_MP product,
|
StockingPoint_MP stockingPoint,
|
DateTime start,
|
DateTime end,
|
Number numberOfPeriods
|
)
|
{
|
Description: 'Verify PISPIP inventory level end (days ) in range of periods is adhered to respective inventory specification configuration.'
|
TextBody:
|
[*
|
// Verify Min Max inventory level calculation
|
/*
|
For the months when min/max inventory level are defined in days, the value is converted from days to quantity. ( days * Demand of the next month / Nr of days in the next month )
|
*/
|
// Setup pispips
|
pisp := product.FindProductInStockingPoint( stockingPoint.ID() );
|
pispips := selectset( pisp, ProductInStockingPointInPeriodPlanning, p, p.Start() >= start and p.Start() < end );
|
|
// Check if all pispips have adhere to settings in UTF
|
this.Run().AssertEqual( numberOfPeriods, pispips.Size() );
|
this.Run().AssertTrue( forallexists( pispips, Elements.InventorySpecification, invSpec, true, invSpec.HasMinLevelInDays() and invSpec.HasMaxLevelInDays() ) );
|
|
// Traverse to check stock level in days
|
traverse( pispips, Elements, pispip )
|
{
|
inventorySpec := pispip.InventorySpecification();
|
minInv := inventorySpec.MinLevelInDays();
|
maxInv := inventorySpec.MaxLevelInDays();
|
|
expectedInventoryLevelEndInDaysIsWithin := pispip.StockLevelInDays() >= minInv and pispip.StockLevelInDays() <= maxInv
|
this.Run().AssertTrue( expectedInventoryLevelEndInDaysIsWithin,
|
'Verify ' + pisp.Name() + ' by ' + [String] pispip.Start().Date()
|
+ ' has inventory level end of [' + [String]pispip.StockLevelInDays()
|
+ ' days] within min [' + [String]minInv + ' days] and max [' + [String]maxInv + ' days]' );
|
}
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|