<?php
namespace App\Amadeus\FileParser; class Line_MFP extends \App\Amadeus\FileParser\Line_FPAbstract { protected $structure_RO = [ ['name'=> 'MSGTAG', 'val' => 'MFP', 'type' => 'AN', 'req' => 'M', 'len' => 3,], ['name'=> 'PAYMNT', 'type' => 'AN',], ['name'=> 'LINEASS', 'val' => 'L', 'type' => 'ASSOC:loose', 'len' => 1,], ['name'=> 'PSGASS', 'val' => 'P', 'type' => 'ASSOC:loose', 'len' => 1,], ['name'=> 'TSMASS', 'val' => 'D', 'type' => 'ASSOC:loose', 'len' => 1,], ]; protected $structure_EE_Nautilus = [ ['name'=> 'MSGTAG', 'val' => 'MFP', 'type' => 'AN', 'req' => 'M', 'len' => 3,], ['name'=> 'PAYMNT', 'type' => 'AN',], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'req' => 'M', 'len' => 1,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'req' => 'M', 'len' => 1,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'req' => 'M', 'len' => 1,], ['name'=> 'TSMASS', 'val' => 'D', 'type' => 'ASSOC:loose', 'len' => 1,], ]; protected $structure_full = [ ['name'=> 'MSGTAG', 'val' => 'MFP', 'type' => 'AN', 'req' => 'M', 'len' => 3,], ['name'=> 'PAYMNT', 'type' => 'AN',], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'ECI', 'type' => 'AN',], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'XID', 'type' => 'AN',], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'CCAV', 'type' => 'AN',], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'CRYPCOMP', 'type' => 'AN', 'len' => 1,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'VADRES', 'type' => 'AN', 'len' => 6,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'SECMODE', 'type' => 'N', 'len' => 2,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'SECTYPE', 'type' => 'N', 'len' => 2,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'TECHENV', 'type' => 'N', 'len' => 2,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'CUSTINST', 'type' => 'AN', 'len' => 1,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'ACI', 'type' => 'AN', 'len' => 1,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'CAT', 'type' => 'AN', 'len' => 1,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'BKNETREF', 'type' => 'AN', 'len_min' => 1, 'len_max' => 9,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'BKNETDTE', 'type' => 'AN', 'len' => 4,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'VALCODE', 'type' => 'AN', 'len' => 4,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'TRANSID', 'type' => 'N', 'len' => 15,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'RESPCODE', 'type' => 'AN', 'len' => 2,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'LINEASS', 'val' => 'L', 'type' => 'ASSOC:loose',], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'PSGASS', 'val' => 'P', 'type' => 'ASSOC:loose',], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'len' => 1,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'req' => 'M', 'len' => 1,], ['name'=> 'DELIM', 'val' => ';', 'type' => 'AN', 'req' => 'M', 'len' => 1,], ['name'=> 'TSMID', 'val' => 'D', 'type' => 'AN', 'len' => 1,], ['name'=> 'TSMNBR', 'type' => 'N', 'req' => 'M', 'requires' => ['TSMID',],], ]; public function isValid() { if(strpos($this->content, "MFP")===0){ return $this; } return false; } public function parse() { $parsed = false; $exception = null; if(!$parsed){ try{ $this->tree = $this->parseFromStructure($this->structure_RO, $this->content); $this->postParse(); $parsed = true; }catch(\App\Amadeus\FileParser\ParserException $ex){ $parsed = false; } } if(!$parsed){ try{ $this->tree = $this->parseFromStructure($this->structure_EE_Nautilus, $this->content); $this->postParse(); $parsed = true; }catch(\App\Amadeus\FileParser\ParserException $ex){ $parsed = false; } } if(!$parsed){ try{ $this->tree = $this->parseFromStructure($this->structure_full, $this->content); $this->postParse(); $parsed = true; }catch(\App\Amadeus\FileParser\ParserException $ex){ $exception = $ex; $parsed = false; } } if(!$parsed){ throw new \App\Amadeus\FileParser\ParserException(sprintf("Unknown line structure for the MFP line: %s", $exception->getMessage()), null, $exception); } return $this; } protected function postParse() { parent::postParse(); $this->FP_autoParse(); } } 