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
| Quintiq file version 2.0
| #parent: #root
| MethodOverride OnCreatedUTFDataset
| {
| Description: 'On UTF dataset created, remove all forecasts & customer orders then create those needed by UI automation (for easy verification).'
| TextBody:
| [*
| opt := DatasetFindOptions::Construct( this.GetUTFDatasetname() );
| mp := MDSMacroPlan::Find( opt );
| mp->( macroplan )
| {
| sopyear := macroplan.StartOfPlanning().Year();
| currency := "EUR";
| price := 2280.0;
| priority := "Normal";
| segmentCanManChina := "CanMan China"; // NOTE: Use different segment/product/sp for Forecast and CO (for easy verification in UI)
| segmentAllOrganics := "All Organics";
| segmentAudiA8 := "Audi A8";
| uom := "Ton";
| product_bc_cb_wide := macroplan.FindProduct( "BC CB wide" );
| product_bc_ct_clearcoated := macroplan.FindProduct( "BC CT clear coated" );
| product_cpn_coil := macroplan.FindProduct( "CPN coil" );
| sp_northamerica := macroplan.FindStockingPoint( "North America" );
| sp_asia := macroplan.FindStockingPoint( "Asia" );
| sp_europe := macroplan.FindStockingPoint( "Europe" );
|
| isfromdb := false;
| isfornetting := true;
| isfirmed := true;
| isexcludefromfulfillmentKPI := false;
| janstart := Date::Construct( sopyear, 1, 1 );
| febstart := janstart.StartOfNextMonth();
|
| /*
| Data setup for UI automation
| ADSO-50251 - customer order needs 1 with invalid stocking point (to have constraint/sanity check)
| ADSO-50252 - visualize only customer order in customer order view (re-use that 1 invalid customer order from ADSO-50251 + forecast & customer order have non-overlapping values for SP/product/sales segment)
| ADSO-50247 - adjust 2 customers (multiply quantity)
| ADSO-50239 - Visualize/navigate customer orders
| ADSO-50253 - Postpone customer order in period (uses the Europe stocking point customer orders as the quantity are not touched by other test cases)
| */
| // Clear all customer orders and just create those that UI automation needs
| toDeleteCOs := selectset( macroplan, SalesDemand.astype( CustomerOrder ), co, true );
| CustomerOrder::Delete( toDeleteCOs );
|
| co := CustomerOrder::Create( product_bc_cb_wide, null( StockingPoint_MP ), "CO1_invalidSP", janstart, 100.0, price, priority, segmentCanManChina, currency, uom, isexcludefromfulfillmentKPI,"", "","","", isfornetting, isfirmed, isfromdb );
| co.StockingPointID( 'Invalid_SP_ID' ); // Set invalid SP ID so that sanity check gets flagged on CustomerOrder for invalid PISP
|
| CustomerOrder::Create( product_bc_cb_wide, sp_asia, "CO2", janstart, 300.0, 10.0, priority, segmentCanManChina, currency, uom, isexcludefromfulfillmentKPI,"", "","","", isfornetting, isfirmed, isfromdb );
| CustomerOrder::Create( product_bc_cb_wide, sp_asia, "CO3", janstart, 400.0, 10.0, priority, segmentCanManChina, currency, uom, isexcludefromfulfillmentKPI,"", "","","", isfornetting, isfirmed, isfromdb );
| CustomerOrder::Create( product_bc_ct_clearcoated, sp_asia, "CO4", janstart, 100.0, 10.0, priority, segmentCanManChina, currency, uom, isexcludefromfulfillmentKPI,"", "","","", isfornetting, isfirmed, isfromdb );
| CustomerOrder::Create( product_bc_cb_wide, sp_europe, "CO5", janstart, 100.0, 10.0, priority, segmentAudiA8, currency, uom, isexcludefromfulfillmentKPI,"", "","","", isfornetting, false, isfromdb );
| CustomerOrder::Create( product_bc_cb_wide, sp_europe, "CO6", febstart, 100.0, 10.0, priority, segmentAudiA8, currency, uom, isexcludefromfulfillmentKPI,"", "","","", isfornetting, isfirmed, isfromdb );
| CustomerOrder::Create( product_bc_cb_wide, sp_europe, "CO7_batchedit", janstart, 999.0, 10.0, priority, segmentAudiA8, currency, uom, isexcludefromfulfillmentKPI,"", "","","", isfornetting, isfirmed, isfromdb );
| CustomerOrder::Create( product_bc_cb_wide, sp_europe, "CO8_batchedit", febstart, 999.0, 10.0, priority, segmentAudiA8, currency, uom, isexcludefromfulfillmentKPI,"", "","","", isfornetting, isfirmed, isfromdb );
|
| // Clear all forecast and just create those that UI automation needs
| toDeleteForecasts := selectset( macroplan, SalesDemand.astype( Forecast ), f, true );
| Forecast::Delete( toDeleteForecasts );
|
| Forecast::Create( product_cpn_coil, sp_northamerica, "FC1", janstart, febstart, 10000.0, 8888.0, priority, segmentAllOrganics, currency, uom, 0.0, isexcludefromfulfillmentKPI, isfromdb );
|
| // ADSO-50253 - Create postponement spec for customer order
| months := Translations::MP_GlobalParameters_Month();
| PostponementSpecification::Create( macroplan.FindSalesSegment( segmentAudiA8 ), months, 6, months, 3, false );
| }
| *]
| }
|
|