Quintiq file version 2.0
#parent: #root
Method NewTripWithProduct (
  internal[GUIComponent] parent,
  ProductInStockingPointInPeriodPlanningLeaf pispip
) as Trip id:Method_DialogCreateEditTrip_NewTripWithProduct
{
  #keys: '[110880.9.504905322]'
  Body:
  [*
    // New trip with given pispip
    
    data := construct( shadow [Trip], ID := OS::GenerateGUIDAsString() );// assign with temporary id
    
    Dialog.Data( data );
    DataHolderTargetPISPIP.Data( pispip );
    Dialog.SetDefaultValue();
    
    result := this.DoModal( parent );
    trip := null( Trip );
    
    if( result > 0 )
    {
       // To cater for case user change the arrival date
       if( pispip.Start() <> SelectionPeriodArrival.Data().Start() )
       {
         pispip := select( pispip, 
                           ProductInStockingPoint_MP.ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ),
                           pispipleaf,
                           pispipleaf.Start() = SelectionPeriodArrival.Data().Start() );
       }
       
       trip := Trip::CreateWithProductInTrip( data.LaneLeg(),
                                              pispip );
    }
    
    return trip;
  *]
}
