Quintiq file version 2.0
|
#parent: #root
|
StaticMethod Update (
|
SalesDemandBases salesdemands,
|
Boolean hasproduct,
|
Product_MP owner,
|
Boolean hasstockingpoint,
|
StockingPoint_MP stockingpoint,
|
Boolean hasstart,
|
Date start,
|
Boolean hasend,
|
Date end,
|
Boolean hasquantity,
|
Real quantity,
|
Boolean hasprice,
|
Real price,
|
Boolean haspriority,
|
Priority priority,
|
Boolean hasdemanduncertaintypercentage,
|
Real demanduncertaintypercentage,
|
Boolean hassalessegment,
|
SalesSegment_MP salessegment,
|
Boolean hascurrency,
|
Currency_MP currency,
|
Boolean hasuom,
|
UnitOfMeasure_MP unitofmeasure,
|
Boolean hasisexcludedfromfulfillmentkpi,
|
Boolean isexcludedfromfulfillmentkpi,
|
Boolean ismanualupdate
|
)
|
{
|
Description: 'Batch update of sales demands'
|
TextBody:
|
[*
|
// Traverse the selected set of SalesDemands to batch update them
|
traverse( salesdemands, Elements, e )
|
{
|
quantityadjusted := quantity;
|
|
// Check which fields are selected for batch editing
|
// If the field is not selected, use the current SalesDemand's value instead of the passed in value
|
if( not hasproduct )
|
{
|
owner := e.Product_MP();
|
}
|
if( not hasstockingpoint )
|
{
|
stockingpoint := e.StockingPoint_MP();
|
}
|
if( not hasstart )
|
{
|
start := e.StartDate();
|
}
|
if( not hasend )
|
{
|
end := e.EndDate();
|
}
|
if( not hasquantity )
|
{
|
quantityadjusted := e.Quantity();
|
}
|
if( not hasprice )
|
{
|
price := e.Price();
|
}
|
if( not haspriority )
|
{
|
priority := e.Priority();
|
}
|
if( not hasdemanduncertaintypercentage )
|
{
|
demanduncertaintypercentage := e.DemandUncertaintyPercentage();
|
}
|
if( not hassalessegment )
|
{
|
salessegment := e.SalesSegment_MP();
|
}
|
if( not hascurrency )
|
{
|
currency := e.Currency_MP();
|
}
|
if( not hasuom )
|
{
|
unitofmeasure := e.UnitOfMeasure_MP();
|
}
|
if( not hasisexcludedfromfulfillmentkpi )
|
{
|
isexcludedfromfulfillmentkpi := e.IsExcludedFromFulfillmentKPI();
|
}
|
|
//Keep history quantity
|
historicalquantity := e.Quantity();
|
decimalpoint := e.MacroPlan().GlobalParameters_MP().NumberOfDecimals(); // Get the number of decimal points to round off to
|
|
// If the current quantity is not the same as the new quantity,
|
// create a log for audit purposes
|
if( historicalquantity <> quantityadjusted )
|
{
|
description := Translations::MP_SalesDemand_Update_Description( e,
|
historicalquantity.Round( decimalpoint ),
|
quantityadjusted.Round( decimalpoint ) );
|
e.MacroPlan().CreateDecisionLog( description, ismanualupdate );
|
}
|
|
// Update attributes of SalesDemand
|
e.Update( owner, stockingpoint, start, end, quantityadjusted, price, priority, demanduncertaintypercentage, salessegment, currency, unitofmeasure, isexcludedfromfulfillmentkpi, false );
|
}
|
*]
|
}
|