<?php

namespace Eurostop\Organisation;

class OrganisationWebServiceInterfacePlugin extends \SoapClient
{

    /**
     * @var array $classmap The defined classes
     */
    private static $classmap = array (
      'Branch' => 'Eurostop\\Organisation\\Branch',
      'ArrayOfBranch' => 'Eurostop\\Organisation\\ArrayOfBranch',
      'Country' => 'Eurostop\\Organisation\\Country',
      'ArrayOfCountry' => 'Eurostop\\Organisation\\ArrayOfCountry',
      'Currency' => 'Eurostop\\Organisation\\Currency',
      'ArrayOfCurrency' => 'Eurostop\\Organisation\\ArrayOfCurrency',
      'CurrencyConversion' => 'Eurostop\\Organisation\\CurrencyConversion',
      'ArrayOfCurrencyConversion' => 'Eurostop\\Organisation\\ArrayOfCurrencyConversion',
      'SubmittedCurrencyConversion' => 'Eurostop\\Organisation\\SubmittedCurrencyConversion',
      'ArrayOfSubmittedCurrencyConversion' => 'Eurostop\\Organisation\\ArrayOfSubmittedCurrencyConversion',
      'TenderType' => 'Eurostop\\Organisation\\TenderType',
      'ArrayOfTenderType' => 'Eurostop\\Organisation\\ArrayOfTenderType',
      'SubmittedTenderType' => 'Eurostop\\Organisation\\SubmittedTenderType',
      'ArrayOfSubmittedTenderType' => 'Eurostop\\Organisation\\ArrayOfSubmittedTenderType',
      'VatRate' => 'Eurostop\\Organisation\\VatRate',
      'ArrayOfVatRate' => 'Eurostop\\Organisation\\ArrayOfVatRate',
      'SubmittedVatRate' => 'Eurostop\\Organisation\\SubmittedVatRate',
      'ArrayOfSubmittedVatRate' => 'Eurostop\\Organisation\\ArrayOfSubmittedVatRate',
      'ReasonType' => 'Eurostop\\Organisation\\ReasonType',
      'ArrayOfReasonType' => 'Eurostop\\Organisation\\ArrayOfReasonType',
      'TransferReasonType' => 'Eurostop\\Organisation\\TransferReasonType',
      'ArrayOfTransferReasonType' => 'Eurostop\\Organisation\\ArrayOfTransferReasonType',
      'WriteOnOffReasonType' => 'Eurostop\\Organisation\\WriteOnOffReasonType',
      'ArrayOfWriteOnOffReasonType' => 'Eurostop\\Organisation\\ArrayOfWriteOnOffReasonType',
      'DataRetrievalResultOfBranchmaxaTWRZ' => 'Eurostop\\Organisation\\DataRetrievalResultOfBranchmaxaTWRZ',
      'CodedRetrievedDataItemOfBranchDtoTPKTiFnX' => 'Eurostop\\Organisation\\CodedRetrievedDataItemOfBranchDtoTPKTiFnX',
      'RetrievedDataItemOfBranchDtoTPKTiFnX' => 'Eurostop\\Organisation\\RetrievedDataItemOfBranchDtoTPKTiFnX',
      'DataRetrievalResultOfCountrymaxaTWRZ' => 'Eurostop\\Organisation\\DataRetrievalResultOfCountrymaxaTWRZ',
      'CodedRetrievedDataItemOfCountryDtoTPKTiFnX' => 'Eurostop\\Organisation\\CodedRetrievedDataItemOfCountryDtoTPKTiFnX',
      'RetrievedDataItemOfCountryDtoTPKTiFnX' => 'Eurostop\\Organisation\\RetrievedDataItemOfCountryDtoTPKTiFnX',
      'DataRetrievalResultOfCurrencymaxaTWRZ' => 'Eurostop\\Organisation\\DataRetrievalResultOfCurrencymaxaTWRZ',
      'CodedRetrievedDataItemOfCurrencyDtoTPKTiFnX' => 'Eurostop\\Organisation\\CodedRetrievedDataItemOfCurrencyDtoTPKTiFnX',
      'RetrievedDataItemOfCurrencyDtoTPKTiFnX' => 'Eurostop\\Organisation\\RetrievedDataItemOfCurrencyDtoTPKTiFnX',
      'DataRetrievalResultOfCurrencyConversionmaxaTWRZ' => 'Eurostop\\Organisation\\DataRetrievalResultOfCurrencyConversionmaxaTWRZ',
      'RetrievedDataItemOfCurrencyConversionDtoTPKTiFnX' => 'Eurostop\\Organisation\\RetrievedDataItemOfCurrencyConversionDtoTPKTiFnX',
      'SubmittedDataItemOfSubmittedCurrencyConversionDtoTPKTiFnX' => 'Eurostop\\Organisation\\SubmittedDataItemOfSubmittedCurrencyConversionDtoTPKTiFnX',
      'DataSubmissionResult' => 'Eurostop\\Organisation\\DataSubmissionResult',
      'ArrayOfValidationError' => 'Eurostop\\Organisation\\ArrayOfValidationError',
      'ValidationError' => 'Eurostop\\Organisation\\ValidationError',
      'DataRetrievalResultOfTenderTypemaxaTWRZ' => 'Eurostop\\Organisation\\DataRetrievalResultOfTenderTypemaxaTWRZ',
      'CodedRetrievedDataItemOfTenderTypeDtoTPKTiFnX' => 'Eurostop\\Organisation\\CodedRetrievedDataItemOfTenderTypeDtoTPKTiFnX',
      'RetrievedDataItemOfTenderTypeDtoTPKTiFnX' => 'Eurostop\\Organisation\\RetrievedDataItemOfTenderTypeDtoTPKTiFnX',
      'SubmittedDataItemOfSubmittedTenderTypeDtoTPKTiFnX' => 'Eurostop\\Organisation\\SubmittedDataItemOfSubmittedTenderTypeDtoTPKTiFnX',
      'DataRetrievalResultOfVatRatemaxaTWRZ' => 'Eurostop\\Organisation\\DataRetrievalResultOfVatRatemaxaTWRZ',
      'CodedRetrievedDataItemOfVatRateDtoTPKTiFnX' => 'Eurostop\\Organisation\\CodedRetrievedDataItemOfVatRateDtoTPKTiFnX',
      'RetrievedDataItemOfVatRateDtoTPKTiFnX' => 'Eurostop\\Organisation\\RetrievedDataItemOfVatRateDtoTPKTiFnX',
      'SubmittedDataItemOfSubmittedVatRateDtoTPKTiFnX' => 'Eurostop\\Organisation\\SubmittedDataItemOfSubmittedVatRateDtoTPKTiFnX',
      'DataRetrievalResultOfReasonTypemaxaTWRZ' => 'Eurostop\\Organisation\\DataRetrievalResultOfReasonTypemaxaTWRZ',
      'CodedRetrievedDataItemOfReasonTypeDtoTPKTiFnX' => 'Eurostop\\Organisation\\CodedRetrievedDataItemOfReasonTypeDtoTPKTiFnX',
      'RetrievedDataItemOfReasonTypeDtoTPKTiFnX' => 'Eurostop\\Organisation\\RetrievedDataItemOfReasonTypeDtoTPKTiFnX',
      'DataRetrievalResultOfTransferReasonTypemaxaTWRZ' => 'Eurostop\\Organisation\\DataRetrievalResultOfTransferReasonTypemaxaTWRZ',
      'CodedRetrievedDataItemOfTransferReasonTypeDtoTPKTiFnX' => 'Eurostop\\Organisation\\CodedRetrievedDataItemOfTransferReasonTypeDtoTPKTiFnX',
      'RetrievedDataItemOfTransferReasonTypeDtoTPKTiFnX' => 'Eurostop\\Organisation\\RetrievedDataItemOfTransferReasonTypeDtoTPKTiFnX',
      'DataRetrievalResultOfWriteOnOffReasonTypemaxaTWRZ' => 'Eurostop\\Organisation\\DataRetrievalResultOfWriteOnOffReasonTypemaxaTWRZ',
      'CodedRetrievedDataItemOfWriteOnOffReasonTypeDtoTPKTiFnX' => 'Eurostop\\Organisation\\CodedRetrievedDataItemOfWriteOnOffReasonTypeDtoTPKTiFnX',
      'RetrievedDataItemOfWriteOnOffReasonTypeDtoTPKTiFnX' => 'Eurostop\\Organisation\\RetrievedDataItemOfWriteOnOffReasonTypeDtoTPKTiFnX',
      'ArrayOfDataProcessingResult' => 'Eurostop\\Organisation\\ArrayOfDataProcessingResult',
      'DataProcessingResult' => 'Eurostop\\Organisation\\DataProcessingResult',
      'ArrayOfDataProcessingStatus' => 'Eurostop\\Organisation\\ArrayOfDataProcessingStatus',
      'DataProcessingStatus' => 'Eurostop\\Organisation\\DataProcessingStatus',
      'GetBranches' => 'Eurostop\\Organisation\\GetBranches',
      'GetBranchesResponse' => 'Eurostop\\Organisation\\GetBranchesResponse',
      'GetCountries' => 'Eurostop\\Organisation\\GetCountries',
      'GetCountriesResponse' => 'Eurostop\\Organisation\\GetCountriesResponse',
      'GetCurrencies' => 'Eurostop\\Organisation\\GetCurrencies',
      'GetCurrenciesResponse' => 'Eurostop\\Organisation\\GetCurrenciesResponse',
      'GetCurrentCurrencyConversionRates' => 'Eurostop\\Organisation\\GetCurrentCurrencyConversionRates',
      'GetCurrentCurrencyConversionRatesResponse' => 'Eurostop\\Organisation\\GetCurrentCurrencyConversionRatesResponse',
      'SubmitCurrencyConversionRate' => 'Eurostop\\Organisation\\SubmitCurrencyConversionRate',
      'SubmitCurrencyConversionRateResponse' => 'Eurostop\\Organisation\\SubmitCurrencyConversionRateResponse',
      'SubmitCurrencyConversionRates' => 'Eurostop\\Organisation\\SubmitCurrencyConversionRates',
      'SubmitCurrencyConversionRatesResponse' => 'Eurostop\\Organisation\\SubmitCurrencyConversionRatesResponse',
      'GetTenderTypes' => 'Eurostop\\Organisation\\GetTenderTypes',
      'GetTenderTypesResponse' => 'Eurostop\\Organisation\\GetTenderTypesResponse',
      'SubmitTenderType' => 'Eurostop\\Organisation\\SubmitTenderType',
      'SubmitTenderTypeResponse' => 'Eurostop\\Organisation\\SubmitTenderTypeResponse',
      'SubmitTenderTypes' => 'Eurostop\\Organisation\\SubmitTenderTypes',
      'SubmitTenderTypesResponse' => 'Eurostop\\Organisation\\SubmitTenderTypesResponse',
      'GetVatRate' => 'Eurostop\\Organisation\\GetVatRate',
      'GetVatRateResponse' => 'Eurostop\\Organisation\\GetVatRateResponse',
      'GetAllVatRates' => 'Eurostop\\Organisation\\GetAllVatRates',
      'GetAllVatRatesResponse' => 'Eurostop\\Organisation\\GetAllVatRatesResponse',
      'SubmitVatRate' => 'Eurostop\\Organisation\\SubmitVatRate',
      'SubmitVatRateResponse' => 'Eurostop\\Organisation\\SubmitVatRateResponse',
      'SubmitVatRates' => 'Eurostop\\Organisation\\SubmitVatRates',
      'SubmitVatRatesResponse' => 'Eurostop\\Organisation\\SubmitVatRatesResponse',
      'GetSaleReasons' => 'Eurostop\\Organisation\\GetSaleReasons',
      'GetSaleReasonsResponse' => 'Eurostop\\Organisation\\GetSaleReasonsResponse',
      'GetRefundReasons' => 'Eurostop\\Organisation\\GetRefundReasons',
      'GetRefundReasonsResponse' => 'Eurostop\\Organisation\\GetRefundReasonsResponse',
      'GetPriceModifierReasons' => 'Eurostop\\Organisation\\GetPriceModifierReasons',
      'GetPriceModifierReasonsResponse' => 'Eurostop\\Organisation\\GetPriceModifierReasonsResponse',
      'GetTransferReasons' => 'Eurostop\\Organisation\\GetTransferReasons',
      'GetTransferReasonsResponse' => 'Eurostop\\Organisation\\GetTransferReasonsResponse',
      'GetWriteOnOffReasons' => 'Eurostop\\Organisation\\GetWriteOnOffReasons',
      'GetWriteOnOffReasonsResponse' => 'Eurostop\\Organisation\\GetWriteOnOffReasonsResponse',
      'FlagDataProcessingToRetryByReference' => 'Eurostop\\Organisation\\FlagDataProcessingToRetryByReference',
      'FlagDataProcessingToRetryByReferenceResponse' => 'Eurostop\\Organisation\\FlagDataProcessingToRetryByReferenceResponse',
      'FlagDataProcessingToRetryByToken' => 'Eurostop\\Organisation\\FlagDataProcessingToRetryByToken',
      'FlagDataProcessingToRetryByTokenResponse' => 'Eurostop\\Organisation\\FlagDataProcessingToRetryByTokenResponse',
      'RunDataProcessingByReference' => 'Eurostop\\Organisation\\RunDataProcessingByReference',
      'RunDataProcessingByReferenceResponse' => 'Eurostop\\Organisation\\RunDataProcessingByReferenceResponse',
      'RunDataProcessingByToken' => 'Eurostop\\Organisation\\RunDataProcessingByToken',
      'RunDataProcessingByTokenResponse' => 'Eurostop\\Organisation\\RunDataProcessingByTokenResponse',
    );

    /**
     * @param array $options A array of config values
     * @param string $wsdl The wsdl file to use
     */
    public function __construct(array $options = array(), $wsdl = null)
    {
      foreach (self::$classmap as $key => $value) {
        if (!isset($options['classmap'][$key])) {
          $options['classmap'][$key] = $value;
        }
      }
      $options = array_merge(array (
      'stream_context' => NULL,
      'features' => 1,
    ), $options);
      if (!$wsdl) {
        $wsdl = 'https://retailtest.trotters.co.uk:6500/e-interface/organisation?wsdl';
      }
      parent::__construct($wsdl, $options);
    }

    /**
     * @param GetBranches $parameters
     * @return GetBranchesResponse
     */
    public function GetBranches(GetBranches $parameters)
    {
      return $this->__soapCall('GetBranches', array($parameters));
    }

    /**
     * @param GetCountries $parameters
     * @return GetCountriesResponse
     */
    public function GetCountries(GetCountries $parameters)
    {
      return $this->__soapCall('GetCountries', array($parameters));
    }

    /**
     * @param GetCurrencies $parameters
     * @return GetCurrenciesResponse
     */
    public function GetCurrencies(GetCurrencies $parameters)
    {
      return $this->__soapCall('GetCurrencies', array($parameters));
    }

    /**
     * @param GetCurrentCurrencyConversionRates $parameters
     * @return GetCurrentCurrencyConversionRatesResponse
     */
    public function GetCurrentCurrencyConversionRates(GetCurrentCurrencyConversionRates $parameters)
    {
      return $this->__soapCall('GetCurrentCurrencyConversionRates', array($parameters));
    }

    /**
     * @param SubmitCurrencyConversionRate $parameters
     * @return SubmitCurrencyConversionRateResponse
     */
    public function SubmitCurrencyConversionRate(SubmitCurrencyConversionRate $parameters)
    {
      return $this->__soapCall('SubmitCurrencyConversionRate', array($parameters));
    }

    /**
     * @param SubmitCurrencyConversionRates $parameters
     * @return SubmitCurrencyConversionRatesResponse
     */
    public function SubmitCurrencyConversionRates(SubmitCurrencyConversionRates $parameters)
    {
      return $this->__soapCall('SubmitCurrencyConversionRates', array($parameters));
    }

    /**
     * @param GetTenderTypes $parameters
     * @return GetTenderTypesResponse
     */
    public function GetTenderTypes(GetTenderTypes $parameters)
    {
      return $this->__soapCall('GetTenderTypes', array($parameters));
    }

    /**
     * @param SubmitTenderType $parameters
     * @return SubmitTenderTypeResponse
     */
    public function SubmitTenderType(SubmitTenderType $parameters)
    {
      return $this->__soapCall('SubmitTenderType', array($parameters));
    }

    /**
     * @param SubmitTenderTypes $parameters
     * @return SubmitTenderTypesResponse
     */
    public function SubmitTenderTypes(SubmitTenderTypes $parameters)
    {
      return $this->__soapCall('SubmitTenderTypes', array($parameters));
    }

    /**
     * @param GetVatRate $parameters
     * @return GetVatRateResponse
     */
    public function GetVatRate(GetVatRate $parameters)
    {
      return $this->__soapCall('GetVatRate', array($parameters));
    }

    /**
     * @param GetAllVatRates $parameters
     * @return GetAllVatRatesResponse
     */
    public function GetAllVatRates(GetAllVatRates $parameters)
    {
      return $this->__soapCall('GetAllVatRates', array($parameters));
    }

    /**
     * @param SubmitVatRate $parameters
     * @return SubmitVatRateResponse
     */
    public function SubmitVatRate(SubmitVatRate $parameters)
    {
      return $this->__soapCall('SubmitVatRate', array($parameters));
    }

    /**
     * @param SubmitVatRates $parameters
     * @return SubmitVatRatesResponse
     */
    public function SubmitVatRates(SubmitVatRates $parameters)
    {
      return $this->__soapCall('SubmitVatRates', array($parameters));
    }

    /**
     * @param GetSaleReasons $parameters
     * @return GetSaleReasonsResponse
     */
    public function GetSaleReasons(GetSaleReasons $parameters)
    {
      return $this->__soapCall('GetSaleReasons', array($parameters));
    }

    /**
     * @param GetRefundReasons $parameters
     * @return GetRefundReasonsResponse
     */
    public function GetRefundReasons(GetRefundReasons $parameters)
    {
      return $this->__soapCall('GetRefundReasons', array($parameters));
    }

    /**
     * @param GetPriceModifierReasons $parameters
     * @return GetPriceModifierReasonsResponse
     */
    public function GetPriceModifierReasons(GetPriceModifierReasons $parameters)
    {
      return $this->__soapCall('GetPriceModifierReasons', array($parameters));
    }

    /**
     * @param GetTransferReasons $parameters
     * @return GetTransferReasonsResponse
     */
    public function GetTransferReasons(GetTransferReasons $parameters)
    {
      return $this->__soapCall('GetTransferReasons', array($parameters));
    }

    /**
     * @param GetWriteOnOffReasons $parameters
     * @return GetWriteOnOffReasonsResponse
     */
    public function GetWriteOnOffReasons(GetWriteOnOffReasons $parameters)
    {
      return $this->__soapCall('GetWriteOnOffReasons', array($parameters));
    }

    /**
     * @param FlagDataProcessingToRetryByReference $parameters
     * @return FlagDataProcessingToRetryByReferenceResponse
     */
    public function FlagDataProcessingToRetryByReference(FlagDataProcessingToRetryByReference $parameters)
    {
      return $this->__soapCall('FlagDataProcessingToRetryByReference', array($parameters));
    }

    /**
     * @param FlagDataProcessingToRetryByToken $parameters
     * @return FlagDataProcessingToRetryByTokenResponse
     */
    public function FlagDataProcessingToRetryByToken(FlagDataProcessingToRetryByToken $parameters)
    {
      return $this->__soapCall('FlagDataProcessingToRetryByToken', array($parameters));
    }

    /**
     * @param RunDataProcessingByReference $parameters
     * @return RunDataProcessingByReferenceResponse
     */
    public function RunDataProcessingByReference(RunDataProcessingByReference $parameters)
    {
      return $this->__soapCall('RunDataProcessingByReference', array($parameters));
    }

    /**
     * @param RunDataProcessingByToken $parameters
     * @return RunDataProcessingByTokenResponse
     */
    public function RunDataProcessingByToken(RunDataProcessingByToken $parameters)
    {
      return $this->__soapCall('RunDataProcessingByToken', array($parameters));
    }

}
