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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Quintiq file version 2.0
#parent: #root
StaticMethod Create (
  Product_MP owner,
  StockingPoint_MP stockingpoint,
  String id,
  Date startdate,
  Date enddate,
  Real quantity,
  Real price,
  String priorityname,
  String salessegmentname,
  String currencyname,
  String unitofmeasurename,
  Real demanduncertaintypercentage,
  Boolean isexcludedfromfulfillmentkpi,
  Boolean isfromdb
) as Forecast
{
  Description: 'Create sales demand from the given arguments.'
  TextBody:
  [*
    priority := owner.MacroPlan().FindPriority( priorityname ); // Get Priority
    salessegment := owner.MacroPlan().FindSalesSegment( salessegmentname ); // Get SalesSegment_MP
    currency := owner.MacroPlan().FindCurrency( currencyname ); // Get Currency_MP
    unitofmeasure := owner.MacroPlan().FindUnitOfMeasure( unitofmeasurename ); // Get UnitOfMeasure_MP
    
    // Create SalesDemand
    salesdemand := Forecast::Create( id,
                                        owner,
                                        stockingpoint,
                                        startdate,
                                        enddate,
                                        quantity,
                                        price,
                                        priority,
                                        salessegment,
                                        currency,
                                        unitofmeasure,
                                        false,
                                        false,
                                        demanduncertaintypercentage,
                                        isexcludedfromfulfillmentkpi,
                                        isfromdb);
    
    // If the given instance is not exists in the model, update the attribute with the given string.
    if( isnull( priority )
        or isnull( salessegment )
        or isnull( currency )
        or isnull( unitofmeasure ) )
    {
      salesdemand.UpdateForeignKey( owner.ID(),
                                    stockingpoint.ID(),
                                    salessegmentname,
                                    priorityname,
                                    currencyname,
                                    unitofmeasurename );
    }
    
    return salesdemand;
  *]
}