| 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; | 
|   *] | 
| } |