| Quintiq file version 2.0 | 
| #parent: #root | 
| Method CheckFulfillmentForManualPostponedSalesDemand ( | 
|   MacroPlan macroplan | 
| ) | 
| { | 
|   TextBody: | 
|   [* | 
|     salessegmentname := 'Carrefour Austria';  | 
|     salessegment := select( macroplan, SalesSegment_MP, s, true, s.Name() = salessegmentname );  | 
|      | 
|     sopyear := macroplan.StartOfPlanning().Year();  | 
|     startdate := Date::Construct( sopyear, 1, 1 );   | 
|     postponeddate := Date::Construct( sopyear, 2, 1 );  | 
|     product := select( macroplan, Product_MP, p, true, p.Name() = 'Lowfat Vanilla 6 pk' );  | 
|      | 
|     sd := select( salessegment, SalesDemand, sd, true, sd.StartDate() = startdate and sd.Product_MP() = product );  | 
|      | 
|     // Verify 100% fulfillment for sales demand with manual postponement | 
|     this.Run().AssertEqual( sd.Quantity(), sd.FulfilledQuantity(), 'Expecting complete fulfillment for ' + salessegmentname + ' ' + product.ID() + [String] startdate ); | 
|      | 
|     // Verify manual postponed sdip is still present | 
|     this.Run().AssertEqual( 1,  | 
|                             counter( sd, SalesDemandInPeriod, sdip, sdip.StartDate() = postponeddate and sdip.ProductID() = product.ID() and sdip.IsManuallyPostponed() ),  | 
|                             'Expecting manual postponed sales demand to be kept in place' ); | 
|     // Verify it is the only manual postponed sales demand  | 
|     this.Run().AssertEqual( 1,  | 
|                             counter( macroplan, SalesDemand.SalesDemandInPeriod, sdip, sdip.IsManuallyPostponed() ),  | 
|                             'Expecting only 1 manually postponed sales demand, namely the single one created for the test' ); | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |