chenqinghong
2024-05-07 3ec06a830367465068963156dcc1d8e522571c13
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
63
64
65
66
67
68
69
70
71
Quintiq file version 2.0
#parent: #root
StaticMethod Create (
  Product_MP owner,
  StockingPoint_MP stockingpoint,
  String id,
  Date startdate,
  Real quantity,
  Real price,
  String priorityname,
  String salessegmentname,
  String currencyname,
  String unitofmeasurename,
  Boolean isexcludedfromfulfillmentkpi,
  String customername,
  String customerid,
  String orderid,
  String orderlineid,
  Boolean isfornetting,
  Boolean isfirmed,
  Boolean isfromdb
) as CustomerOrder
{
  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 Customer order
    co := CustomerOrder::Create(  id,
                                  owner,
                                  stockingpoint,
                                  startdate,
                                  quantity,
                                  price,
                                  priority,
                                  salessegment,
                                  currency,
                                  unitofmeasure,
                                  false,
                                  false,
                                  isexcludedfromfulfillmentkpi,
                                  customername,
                                  customerid,
                                  orderid,
                                  orderlineid,
                                  isfornetting,
                                  isfirmed,
                                  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 ) )
    {
      co.UpdateForeignKey(  owner.ID(),
                            stockingpoint.ID(),
                            salessegmentname,
                            priorityname,
                            currencyname,
                            unitofmeasurename );
    }
    
    return co;
  *]
}