Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod Assign ( 
 | 
  Account_MP owner, 
 | 
  Product_MP product, 
 | 
  StockingPoint_MP stockingpoint, 
 | 
  String costdriver 
 | 
) as PISPAccount 
 | 
{ 
 | 
  Description: 'Create assignment between account and pisp' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // ying ying Nov-4-2013 (created) 
 | 
    pispaccount := null( PISPAccount ); 
 | 
     
 | 
    if( not isnull( stockingpoint ) ) 
 | 
    { 
 | 
      pisp := product.AddToStockingPoint( stockingpoint ); 
 | 
       
 | 
      // Find any stocking point acount that has the same account and cost driver 
 | 
      pispaccount := select( pisp, PISPAccount, pispa, 
 | 
                             pispa.Account_MP() = owner 
 | 
                             and pispa.CostDriver() = costdriver ); 
 | 
       
 | 
      // If we cannot find any, create a new unit account 
 | 
      if( isnull( pispaccount ) ) 
 | 
      { 
 | 
        pispaccount := owner.AccountAssignment( relnew, 
 | 
                                                PISPAccount, 
 | 
                                                ProductInStockingPoint_MP := pisp, 
 | 
                                                ProductID := product.ID(), 
 | 
                                                StockingPointID := stockingpoint.ID(), 
 | 
                                                CostDriver := costdriver ); 
 | 
       
 | 
        pispaccount.Update( owner, costdriver ); 
 | 
      } 
 | 
    } 
 | 
     
 | 
    return pispaccount; 
 | 
  *] 
 | 
} 
 |