<?php
namespace App\Amadeus\FileParser;

class Line_PFR extends \App\Amadeus\FileParser\LineAbstract
{
	/**
	 * 4.61. PFR Ferry Booking and Pricing Line
	 * see page 198(240)
	 *
	 * Used with a ferry segment that is booked through the ferry server
	 */
	protected $structure = [
		['name'=> 'MSGTAG',  'val' => 'PFR',   'type' => 'AN',   'req' => 'M',  'len' => 3,],                    // 1 : Constant value "PFR"
		['name'=> 'TTONBR',                    'type' => 'N',    'req' => 'M',  'len' => 3,],                    // 2 : Tattoo number in the PNR
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 3 : Constant value ";"
		['name'=> 'FERCOD',                    'type' => 'AN',   'req' => 'M',  'len' => 3,],                    // 4 : Ferry operator code
		['name'=> 'BKNBR',                     'type' => 'AN',   'req' => 'M',],                                 // 5 : Booking number
		['name'=> 'DELIM',   'val' => ' ',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 6 : Constant value " "
		['name'=> 'BKSTS',                     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 7 : Booking status code
		['name'=> 'TKTNBR',                    'type' => 'AN',],                                                 // 8 : TicketNumber
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 9 : Constant value ";"
		['name'=> 'RTCOD',                     'type' => 'AN',],                                                 // 10 : Booking Rate code
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 11 : Constant value ";"
		['name'=> 'CURRY',                     'type' => 'AN',   'req' => 'M',  'len' => 3,],                    // 12 : Currency
		['name'=> 'NTPRC',                     'type' => 'AN',   'req' => 'M',  'len' => 18,],                   // 13 : Net total price
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 14 : Constant value ";"
		['name'=> 'CIPRC',                     'type' => 'AN',],                                                 // 15 : Cancellation insurance price
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 16 : Constant value ";"
		['name'=> 'TFPRC',                     'type' => 'AN',],                                 // 17 : Tax free total price
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 18 : Constant value ";"
		['name'=> 'FUEPRC',                    'type' => 'AN',],                                                 // 19 : Fuel surcharge
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 20 : Constant value ";"
		['name'=> 'OILPRC',                    'type' => 'AN',],                                                 // 21 : Oil surcharge
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 22 : Constant value ";"
		['name'=> 'CURPRC',                    'type' => 'AN',],                                                 // 23 : Currency surcharge
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 24 : Constant value ";"
		['name'=> 'SECPRC',                    'type' => 'AN',],                                                 // 25 : Security
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 26 : Constant value ";"
		['name'=> 'HDLPRC',                    'type' => 'AN',],                                                 // 27 : Handling fee
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 28 : Constant value ";"
		['name'=> 'OCCSUP',                    'type' => 'AN',                  'len' => 18,],                   // 29 : Occupancy supplement
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 30 : Constant value ";"
		['name'=> 'RBKPRC',                    'type' => 'AN',],                                                 // 31 : Rebooking fee
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 32 : Constant value ";"
		['name'=> 'LTBPRC',                    'type' => 'AN',],                                                 // 33 : Late booking
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 34 : Constant value ";"
		['name'=> 'AMDPRC',                    'type' => 'AN',],                                                 // 35 : Amending fee
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 36 : Constant value ";"
		['name'=> 'BRDPRC',                    'type' => 'AN',],                                                 // 37 : Board supplement
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 38 : Constant value ";"
		['name'=> 'CFEPRC',                    'type' => 'AN',],                                                 // 39 : Coach fee commission
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 40 : Constant value ";"
		['name'=> 'SPCRED',                    'type' => 'AN',],                                                 // 41 : Special reduction
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 42 : Constant value ";"
		['name'=> 'INSPRC',                    'type' => 'AN',],                                                 // 43 : Insurance
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 44 : Constant value ";"
		['name'=> 'ADTINS',                    'type' => 'AN',],                                                 // 45 : Adult insurrance
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 46 : Constant value ";"
		['name'=> 'CHDINS',                    'type' => 'AN',                  'len' => 18,],                   // 47 : Child insurrance
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 48 : Constant value ";"
		['name'=> 'PORTAX',                    'type' => 'AN',],                                                 // 49 : Port tax
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 50 : Constant value ";"
		['name'=> 'LOCTAX',                    'type' => 'AN',],                                                 // 51 : Local tax
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 52 : Constant value ";"
		['name'=> 'MISTAX',                    'type' => 'AN',],                                                 // 53 : Miscelaneous Tax
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 54 : Constant value ";"
		['name'=> 'VATTAX',                    'type' => 'AN',],                                                 // 55 : VAT
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 56 : Constant value ";"
		['name'=> 'MDPRC',                     'type' => 'AN',],                                                 // 57 : Modification fee
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],                    // 58 : Constant value ";"
		['name'=> 'CXPRC',                     'type' => 'AN',   'len' => 18],                                                 // 59 : Cancellation fee
		['name'=> 'DELIM',   'val' => ';',     'type' => 'AN',   'req' => 'M',  'len' => 1,],
		['name'=> 'PSGASS',  'val' => 'P',     'type' => 'ASSOC',],
	    ['name'=> 'SEGASS',  'val' => ';S',    'type' => 'ASSOC',],
	];
}
