Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod Assign ( 
 | 
  Account_MP owner, 
 | 
  StockingPoint_MP sp, 
 | 
  String costdriver 
 | 
) as StockingPointAccount 
 | 
{ 
 | 
  Description: 'Create assignment between account and stocking point' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // ying ying Nov-4-2013 (created) 
 | 
    // Find any stocking point acount that has the same account and cost driver 
 | 
    stockingpointaccount := select( sp, StockingPointAccount, spa, 
 | 
                                    spa.Account_MP() = owner 
 | 
                                    and spa.CostDriver() = costdriver ); 
 | 
     
 | 
    // If we cannot find any, create a new unit account 
 | 
    if( isnull( stockingpointaccount ) ) 
 | 
    { 
 | 
      stockingpointaccount := owner.AccountAssignment( relnew, 
 | 
                                                       StockingPointAccount, 
 | 
                                                       StockingPoint_MP := sp, // To prevent calling propagate when creating cost 
 | 
                                                       StockingPointID :=  sp.ID(), 
 | 
                                                       CostDriver := costdriver ); 
 | 
     
 | 
      stockingpointaccount.Update( owner, costdriver ); 
 | 
    } 
 | 
     
 | 
    return stockingpointaccount; 
 | 
  *] 
 | 
} 
 |