Skip to content

Commit

Permalink
PNR_Cancel - support for cancelling PNR segments.
Browse files Browse the repository at this point in the history
  • Loading branch information
DerMika committed May 20, 2016
1 parent 1c7a100 commit bfab01c
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/Amadeus/Client/RequestOptions/PnrCancelOptions.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ class PnrCancelOptions extends PnrBase
*/
public $recordLocator;


/**
* How to handle the PNR after doing the Cancel operation
*
Expand Down Expand Up @@ -95,4 +94,11 @@ class PnrCancelOptions extends PnrBase
* @var int[]
*/
public $groupPassengers = [];

/**
* All tattoos of PNR Segments to be removed
*
* @var int[]
*/
public $segments = [];
}
10 changes: 10 additions & 0 deletions src/Amadeus/Client/Struct/Pnr/Cancel.php
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,16 @@ public function __construct(PnrCancelOptions $params)
$this->cancelElements[] = $tmp;
}

if (!empty($params->segments)) {
$tmp = new Cancel\Elements(Elements::ENTRY_ELEMENT);

foreach ($params->segments as $tatoo) {
$tmp->element[] = new Element($tatoo, Element::IDENT_SEGMENT_TATOO);
}

$this->cancelElements[] = $tmp;
}

if (!empty($params->groupPassengers)) {
$tmp = new Cancel\Elements(Elements::ENTRY_NAME_INTEGRATION);

Expand Down
16 changes: 16 additions & 0 deletions tests/Amadeus/Client/Struct/Pnr/CancelTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -129,5 +129,21 @@ public function testCanMakeCancelGroupPassengerMessage()
$this->assertEquals(6, $message->cancelElements[0]->element[1]->number);
}

public function testCanMakeCancelSegmentsMessage()
{
$message = new Cancel(
new PnrCancelOptions([
'actionCode' => 0,
'segments' => [3,4]
])
);

$this->assertEquals(1, count($message->cancelElements));
$this->assertEquals(Cancel\Elements::ENTRY_ELEMENT, $message->cancelElements[0]->entryType);
$this->assertEquals(2, count($message->cancelElements[0]->element));
$this->assertEquals(Cancel\Element::IDENT_SEGMENT_TATOO, $message->cancelElements[0]->element[0]->identifier);
$this->assertEquals(3, $message->cancelElements[0]->element[0]->number);
$this->assertEquals(Cancel\Element::IDENT_SEGMENT_TATOO, $message->cancelElements[0]->element[1]->identifier);
$this->assertEquals(4, $message->cancelElements[0]->element[1]->number);
}
}

0 comments on commit bfab01c

Please sign in to comment.