Quintiq file version 2.0
|
#parent: #root
|
StaticMethod Create (
|
MacroPlan owner,
|
String verno,
|
Date importdate,
|
String orgcode,
|
String scheduledateid,
|
String productid
|
) as SRMLine
|
{
|
Description: 'Instantiate product with only primitive-type arguments'
|
TextBody:
|
[*
|
srmline := owner.SRMLine( relnew, Attribute1 := verno );
|
srmline.ImportDate( importdate );
|
srmline.OrganizationCode( orgcode );
|
srmline.ScheduleDateID( scheduledateid );
|
srmline.ComponentItem( productid );
|
|
timezone := TimeZone::UTCTimeZone();
|
|
productinstockingpoint := ProductInStockingPoint_MP::FindProductInStockingPointTypeIndex( productid, orgcode );
|
|
// Get the list to deal
|
listtodeal := selectset( productinstockingpoint, ProductInStockingPointInPeriod.astype( ProductInStockingPointInPeriodPlanningLeaf ), ppp, true );
|
|
// Get the Extend date
|
extend1date := importdate.Add( timezone ,Duration::Days( 119 ) ).Date().StartOfNextMonth();
|
extend2date := extend1date.StartOfNextMonth();
|
extend3date := extend2date.StartOfNextMonth();
|
extend4date := extend3date.StartOfNextMonth();
|
extend5date := extend4date.StartOfNextMonth();
|
extend6date := extend5date.StartOfNextMonth();
|
extend7date := extend6date.StartOfNextMonth();
|
extend8date := extend7date.StartOfNextMonth();
|
extend9date := extend8date.StartOfNextMonth();
|
extend10date := extend9date.StartOfNextMonth();
|
|
dateqtydict := JSON::Object().Build();
|
traverse( listtodeal, Elements, ppp ){
|
demanddate := ppp.Start().Date();
|
demandqty := ppp.DependentDemandQuantity();
|
if( demanddate >= importdate and demanddate <= importdate.Add( timezone ,Duration::Days( 89 ) ).Date() ){
|
deltadays := ( demanddate - importdate );
|
dateqtydict.Builder().Add( [String]deltadays, [String]demandqty ).Build();
|
}
|
|
if( demanddate > importdate.Add( timezone ,Duration::Days( 89 ) ).Date() and demanddate <= extend1date ){
|
extenddemandqty := demandqty + guard( dateqtydict.Get( "Extend1" ).GetNumber(), 0 );
|
dateqtydict.Builder().Add( "Extend1", [String]extenddemandqty ).Build();
|
}
|
|
if( demanddate > extend1date and demanddate <= extend2date ){
|
extenddemandqty := demandqty + guard( dateqtydict.Get( "Extend2" ).GetNumber(), 0 );
|
dateqtydict.Builder().Add( "Extend2", [String]extenddemandqty ).Build();
|
}
|
|
if( demanddate > extend2date and demanddate <= extend3date ){
|
extenddemandqty := demandqty + guard( dateqtydict.Get( "Extend3" ).GetNumber(), 0 );
|
dateqtydict.Builder().Add( "Extend3", [String]extenddemandqty ).Build();
|
}
|
|
if( demanddate > extend3date and demanddate <= extend4date ){
|
extenddemandqty := demandqty + guard( dateqtydict.Get( "Extend4" ).GetNumber(), 0 );
|
dateqtydict.Builder().Add( "Extend4", [String]extenddemandqty ).Build();
|
}
|
|
if( demanddate > extend4date and demanddate <= extend5date ){
|
extenddemandqty := demandqty + guard( dateqtydict.Get( "Extend5" ).GetNumber(), 0 );
|
dateqtydict.Builder().Add( "Extend5", [String]extenddemandqty ).Build();
|
}
|
|
if( demanddate > extend5date and demanddate <= extend6date ){
|
extenddemandqty := demandqty + guard( dateqtydict.Get( "Extend6" ).GetNumber(), 0 );
|
dateqtydict.Builder().Add( "Extend6", [String]extenddemandqty ).Build();
|
}
|
|
if( demanddate > extend6date and demanddate <= extend7date ){
|
extenddemandqty := demandqty + guard( dateqtydict.Get( "Extend7" ).GetNumber(), 0 );
|
dateqtydict.Builder().Add( "Extend7", [String]extenddemandqty ).Build();
|
}
|
|
if( demanddate > extend7date and demanddate <= extend8date ){
|
extenddemandqty := demandqty + guard( dateqtydict.Get( "Extend8" ).GetNumber(), 0 );
|
dateqtydict.Builder().Add( "Extend8", [String]extenddemandqty ).Build();
|
}
|
|
if( demanddate > extend8date and demanddate <= extend9date ){
|
extenddemandqty := demandqty + guard( dateqtydict.Get( "Extend9" ).GetNumber(), 0 );
|
dateqtydict.Builder().Add( "Extend9", [String]extenddemandqty ).Build();
|
}
|
|
if( demanddate > extend9date and demanddate <= extend10date ){
|
extenddemandqty := demandqty + guard( dateqtydict.Get( "Extend10" ).GetNumber(), 0 );
|
dateqtydict.Builder().Add( "Extend10", [String]extenddemandqty ).Build();
|
}
|
}
|
// Set attribute Days value
|
srmline.Day1( guard( dateqtydict.Get( "0" ).GetNumber(), 0 ) );
|
srmline.Day2( guard( dateqtydict.Get( "1" ).GetNumber(), 0 ) );
|
srmline.Day3( guard( dateqtydict.Get( "2" ).GetNumber(), 0 ) );
|
srmline.Day4( guard( dateqtydict.Get( "3" ).GetNumber(), 0 ) );
|
srmline.Day5( guard( dateqtydict.Get( "4" ).GetNumber(), 0 ) );
|
srmline.Day6( guard( dateqtydict.Get( "5" ).GetNumber(), 0 ) );
|
srmline.Day7( guard( dateqtydict.Get( "6" ).GetNumber(), 0 ) );
|
srmline.Day8( guard( dateqtydict.Get( "7" ).GetNumber(), 0 ) );
|
srmline.Day9( guard( dateqtydict.Get( "8" ).GetNumber(), 0 ) );
|
srmline.Day10( guard( dateqtydict.Get( "9" ).GetNumber(), 0 ) );
|
srmline.Day11( guard( dateqtydict.Get( "10" ).GetNumber(), 0 ) );
|
srmline.Day12( guard( dateqtydict.Get( "11" ).GetNumber(), 0 ) );
|
srmline.Day13( guard( dateqtydict.Get( "12" ).GetNumber(), 0 ) );
|
srmline.Day14( guard( dateqtydict.Get( "13" ).GetNumber(), 0 ) );
|
srmline.Day15( guard( dateqtydict.Get( "14" ).GetNumber(), 0 ) );
|
srmline.Day16( guard( dateqtydict.Get( "15" ).GetNumber(), 0 ) );
|
srmline.Day17( guard( dateqtydict.Get( "16" ).GetNumber(), 0 ) );
|
srmline.Day18( guard( dateqtydict.Get( "17" ).GetNumber(), 0 ) );
|
srmline.Day19( guard( dateqtydict.Get( "18" ).GetNumber(), 0 ) );
|
srmline.Day20( guard( dateqtydict.Get( "19" ).GetNumber(), 0 ) );
|
srmline.Day21( guard( dateqtydict.Get( "20" ).GetNumber(), 0 ) );
|
srmline.Day22( guard( dateqtydict.Get( "21" ).GetNumber(), 0 ) );
|
srmline.Day23( guard( dateqtydict.Get( "22" ).GetNumber(), 0 ) );
|
srmline.Day24( guard( dateqtydict.Get( "23" ).GetNumber(), 0 ) );
|
srmline.Day25( guard( dateqtydict.Get( "24" ).GetNumber(), 0 ) );
|
srmline.Day26( guard( dateqtydict.Get( "25" ).GetNumber(), 0 ) );
|
srmline.Day27( guard( dateqtydict.Get( "26" ).GetNumber(), 0 ) );
|
srmline.Day28( guard( dateqtydict.Get( "27" ).GetNumber(), 0 ) );
|
srmline.Day29( guard( dateqtydict.Get( "28" ).GetNumber(), 0 ) );
|
srmline.Day30( guard( dateqtydict.Get( "29" ).GetNumber(), 0 ) );
|
srmline.Day31( guard( dateqtydict.Get( "30" ).GetNumber(), 0 ) );
|
srmline.Day32( guard( dateqtydict.Get( "31" ).GetNumber(), 0 ) );
|
srmline.Day33( guard( dateqtydict.Get( "32" ).GetNumber(), 0 ) );
|
srmline.Day34( guard( dateqtydict.Get( "33" ).GetNumber(), 0 ) );
|
srmline.Day35( guard( dateqtydict.Get( "34" ).GetNumber(), 0 ) );
|
srmline.Day36( guard( dateqtydict.Get( "35" ).GetNumber(), 0 ) );
|
srmline.Day37( guard( dateqtydict.Get( "36" ).GetNumber(), 0 ) );
|
srmline.Day38( guard( dateqtydict.Get( "37" ).GetNumber(), 0 ) );
|
srmline.Day39( guard( dateqtydict.Get( "38" ).GetNumber(), 0 ) );
|
srmline.Day40( guard( dateqtydict.Get( "39" ).GetNumber(), 0 ) );
|
srmline.Day41( guard( dateqtydict.Get( "40" ).GetNumber(), 0 ) );
|
srmline.Day42( guard( dateqtydict.Get( "41" ).GetNumber(), 0 ) );
|
srmline.Day43( guard( dateqtydict.Get( "42" ).GetNumber(), 0 ) );
|
srmline.Day44( guard( dateqtydict.Get( "43" ).GetNumber(), 0 ) );
|
srmline.Day45( guard( dateqtydict.Get( "44" ).GetNumber(), 0 ) );
|
srmline.Day46( guard( dateqtydict.Get( "45" ).GetNumber(), 0 ) );
|
srmline.Day47( guard( dateqtydict.Get( "46" ).GetNumber(), 0 ) );
|
srmline.Day48( guard( dateqtydict.Get( "47" ).GetNumber(), 0 ) );
|
srmline.Day49( guard( dateqtydict.Get( "48" ).GetNumber(), 0 ) );
|
srmline.Day50( guard( dateqtydict.Get( "49" ).GetNumber(), 0 ) );
|
srmline.Day51( guard( dateqtydict.Get( "50" ).GetNumber(), 0 ) );
|
srmline.Day52( guard( dateqtydict.Get( "51" ).GetNumber(), 0 ) );
|
srmline.Day53( guard( dateqtydict.Get( "52" ).GetNumber(), 0 ) );
|
srmline.Day54( guard( dateqtydict.Get( "53" ).GetNumber(), 0 ) );
|
srmline.Day55( guard( dateqtydict.Get( "54" ).GetNumber(), 0 ) );
|
srmline.Day56( guard( dateqtydict.Get( "55" ).GetNumber(), 0 ) );
|
srmline.Day57( guard( dateqtydict.Get( "56" ).GetNumber(), 0 ) );
|
srmline.Day58( guard( dateqtydict.Get( "57" ).GetNumber(), 0 ) );
|
srmline.Day59( guard( dateqtydict.Get( "58" ).GetNumber(), 0 ) );
|
srmline.Day60( guard( dateqtydict.Get( "59" ).GetNumber(), 0 ) );
|
srmline.Day61( guard( dateqtydict.Get( "60" ).GetNumber(), 0 ) );
|
srmline.Day62( guard( dateqtydict.Get( "61" ).GetNumber(), 0 ) );
|
srmline.Day63( guard( dateqtydict.Get( "62" ).GetNumber(), 0 ) );
|
srmline.Day64( guard( dateqtydict.Get( "63" ).GetNumber(), 0 ) );
|
srmline.Day65( guard( dateqtydict.Get( "64" ).GetNumber(), 0 ) );
|
srmline.Day66( guard( dateqtydict.Get( "65" ).GetNumber(), 0 ) );
|
srmline.Day67( guard( dateqtydict.Get( "66" ).GetNumber(), 0 ) );
|
srmline.Day68( guard( dateqtydict.Get( "67" ).GetNumber(), 0 ) );
|
srmline.Day69( guard( dateqtydict.Get( "68" ).GetNumber(), 0 ) );
|
srmline.Day70( guard( dateqtydict.Get( "69" ).GetNumber(), 0 ) );
|
srmline.Day71( guard( dateqtydict.Get( "70" ).GetNumber(), 0 ) );
|
srmline.Day72( guard( dateqtydict.Get( "71" ).GetNumber(), 0 ) );
|
srmline.Day73( guard( dateqtydict.Get( "72" ).GetNumber(), 0 ) );
|
srmline.Day74( guard( dateqtydict.Get( "73" ).GetNumber(), 0 ) );
|
srmline.Day75( guard( dateqtydict.Get( "74" ).GetNumber(), 0 ) );
|
srmline.Day76( guard( dateqtydict.Get( "75" ).GetNumber(), 0 ) );
|
srmline.Day77( guard( dateqtydict.Get( "76" ).GetNumber(), 0 ) );
|
srmline.Day78( guard( dateqtydict.Get( "77" ).GetNumber(), 0 ) );
|
srmline.Day79( guard( dateqtydict.Get( "78" ).GetNumber(), 0 ) );
|
srmline.Day80( guard( dateqtydict.Get( "79" ).GetNumber(), 0 ) );
|
srmline.Day81( guard( dateqtydict.Get( "80" ).GetNumber(), 0 ) );
|
srmline.Day82( guard( dateqtydict.Get( "81" ).GetNumber(), 0 ) );
|
srmline.Day83( guard( dateqtydict.Get( "82" ).GetNumber(), 0 ) );
|
srmline.Day84( guard( dateqtydict.Get( "83" ).GetNumber(), 0 ) );
|
srmline.Day85( guard( dateqtydict.Get( "84" ).GetNumber(), 0 ) );
|
srmline.Day86( guard( dateqtydict.Get( "85" ).GetNumber(), 0 ) );
|
srmline.Day87( guard( dateqtydict.Get( "86" ).GetNumber(), 0 ) );
|
srmline.Day88( guard( dateqtydict.Get( "87" ).GetNumber(), 0 ) );
|
srmline.Day89( guard( dateqtydict.Get( "88" ).GetNumber(), 0 ) );
|
srmline.Day90( guard( dateqtydict.Get( "89" ).GetNumber(), 0 ) );
|
|
// Set Extends value
|
srmline.Extend1( guard( dateqtydict.Get( "Extend1" ).GetNumber(), 0 ) );
|
srmline.Extend2( guard( dateqtydict.Get( "Extend2" ).GetNumber(), 0 ) );
|
srmline.Extend3( guard( dateqtydict.Get( "Extend3" ).GetNumber(), 0 ) );
|
srmline.Extend4( guard( dateqtydict.Get( "Extend4" ).GetNumber(), 0 ) );
|
srmline.Extend5( guard( dateqtydict.Get( "Extend5" ).GetNumber(), 0 ) );
|
srmline.Extend6( guard( dateqtydict.Get( "Extend6" ).GetNumber(), 0 ) );
|
srmline.Extend7( guard( dateqtydict.Get( "Extend7" ).GetNumber(), 0 ) );
|
srmline.Extend8( guard( dateqtydict.Get( "Extend8" ).GetNumber(), 0 ) );
|
srmline.Extend9( guard( dateqtydict.Get( "Extend9" ).GetNumber(), 0 ) );
|
srmline.Extend10( guard( dateqtydict.Get( "Extend10" ).GetNumber(), 0 ) );
|
|
return srmline;
|
*]
|
}
|