| Quintiq file version 2.0 | 
| #parent: #root | 
| DeclarativeOwningNMRelation CalcAsBaseProductInStockingPointPeriodInPeriod | 
| { | 
|   #keys: '1[134266.1.22295573]' | 
|   Expression: | 
|   [* | 
|     // soh yee Sep-15-2015 (created) | 
|      | 
|     //           __________________________ | 
|     // Quarter: |__________________________| | 
|     // Month:   |________|________|________| | 
|     // Week:    |_|_|_|_|_|_|_|_|_|_|_|_|_|_| | 
|      | 
|     // System periods will be created as for splitting the week to two months | 
|     // This logic will create the N:M of the system periods to Week, and to Month. | 
|     // By checking that the Month1 can only link to Week1 to Week4 directly, so we will create N:M for Week5 to Month1 and Month2 | 
|     // Month2 can link to Week6 to Week8 week directly, so we will create N:M for Week9 to Month2 and Month3 | 
|     pispips := construct( ProductInStockingPointInPeriods ); | 
|      | 
|     if( this.IsBase() ) | 
|     { | 
|       pispips := selectset( this,ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip, | 
|                             not pispip.Period_MP().IsDeleted() | 
|                             and not pispip.IsBase(), | 
|                             this.Period_MP().IsInPeriod( pispip.Start(), pispip.End() ) | 
|                             and guard( ( this.Start() < pispip.StockingPointInPeriod().ChildOfPeriodStart() | 
|                                          or this.End() > pispip.StockingPointInPeriod().ChildOfPeriodEnd() ), false ) ); | 
|     } | 
|      | 
|      | 
|     return &pispips; | 
|   *] | 
|   HelperRelation: ProductInStockingPointInPeriod | 
|   InstantiationType: ProductInStockingPointPeriodInPeriod | 
|   Relation: AsBaseProductInStockingPointPeriodInPeriod | 
| } |