<?php
namespace App\Amadeus\FileParser;

/**
 * NOTE: La ce se foloseste aceasta linie si cu ce difera ea de linia T?
 * [Alina Popescu] este un numar de bilet care a fost introdus manual (fie cand biletul n-a fost emis automat de catre sistema, fie a fost emis automat dar trebuie sa-l reintroduc manual).
 * 	Atunci cand emit biletul automat, acesta o sa-mi ajunga pe linia T. Vei observa ca linia FH poate sa apara uneori la momentul la care biletul este reemis (de regula cand agentul creeaza
 * 	un nou PNR si introduce de manuta biletul la care se raporteaza atunci cand va face reemiterea); in acest caz, biletul la care s-a raportat ajunge in linia FH, iar noul bilet ajunge pe linia T.
 */

class Line_FH extends \App\Amadeus\FileParser\LineAbstract
{
	/**
	 * 4.123. FH Hand Ticket Number
	 * see page 314(356)
	 *
	 * DETAILS
	 */
	protected $structure = [
		['name'=> 'MSGTAG',  'val' => 'FH',    'type' => 'AN',      'req' => 'M',  'len' => 2,],                          // 1 : Message Tag (FH)
		['name'=> 'HANDTKT',                   'type' => 'AN',      'req' => 'M',  'len_min' => 1,   'len_max' => 127,],  // 2 : Hand Ticket Number
		['name'=> 'SEGASS',  'val' => ';S',    'type' => 'ASSOC',],
		['name'=> 'PSGASS',  'val' => ';P',    'type' => 'ASSOC',],
	];

	/**
	 * (non-PHPdoc)
	 * @see \App\Amadeus\FileParser\LineAbstract::postParse()
	 */
	protected function postParse()
	{
		parent::postParse();
		$matches = [];
		preg_match("/^(?P<airline>[0-9]{3})-(?P<tktNo>[0-9]+)(\/C[0-9-]+)?$/", $this->tree['HANDTKT'], $matches);
		$this->tree['HANDTKT_']['airline'] = $matches['airline'];
		$this->tree['HANDTKT_']['tktNo'] = $matches['tktNo'];
	}
}
