yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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;
  *]
}