<?php

namespace Eurostop\Sales;

class SalesWebServiceInterfacePlugin extends \SoapClient
{

    /**
     * @var array $classmap The defined classes
     */
    private static $classmap = array (
      'DateTimeOffset' => 'Eurostop\\Sales\\DateTimeOffset',
      'ReceiptHeader' => 'Eurostop\\Sales\\ReceiptHeader',
      'ArrayOfReceiptGiftCardTransaction' => 'Eurostop\\Sales\\ArrayOfReceiptGiftCardTransaction',
      'ReceiptGiftCardTransaction' => 'Eurostop\\Sales\\ReceiptGiftCardTransaction',
      'ArrayOfReceiptLineSku' => 'Eurostop\\Sales\\ArrayOfReceiptLineSku',
      'ReceiptLineSku' => 'Eurostop\\Sales\\ReceiptLineSku',
      'ArrayOfReceiptLinePriceModifier' => 'Eurostop\\Sales\\ArrayOfReceiptLinePriceModifier',
      'ReceiptLinePriceModifier' => 'Eurostop\\Sales\\ReceiptLinePriceModifier',
      'ArrayOfReceiptOperation' => 'Eurostop\\Sales\\ArrayOfReceiptOperation',
      'ReceiptOperation' => 'Eurostop\\Sales\\ReceiptOperation',
      'ArrayOfReceiptTender' => 'Eurostop\\Sales\\ArrayOfReceiptTender',
      'ReceiptTender' => 'Eurostop\\Sales\\ReceiptTender',
      'ArrayOfReceiptAccountTransaction' => 'Eurostop\\Sales\\ArrayOfReceiptAccountTransaction',
      'ReceiptAccountTransaction' => 'Eurostop\\Sales\\ReceiptAccountTransaction',
      'ArrayOfReceiptVoucherPurchase' => 'Eurostop\\Sales\\ArrayOfReceiptVoucherPurchase',
      'ReceiptVoucherPurchase' => 'Eurostop\\Sales\\ReceiptVoucherPurchase',
      'ArrayOfReceiptHeader' => 'Eurostop\\Sales\\ArrayOfReceiptHeader',
      'SubmittedReceiptHeader' => 'Eurostop\\Sales\\SubmittedReceiptHeader',
      'ArrayOfSubmittedReceiptGiftCardTransaction' => 'Eurostop\\Sales\\ArrayOfSubmittedReceiptGiftCardTransaction',
      'SubmittedReceiptGiftCardTransaction' => 'Eurostop\\Sales\\SubmittedReceiptGiftCardTransaction',
      'ArrayOfSubmittedReceiptLineSku' => 'Eurostop\\Sales\\ArrayOfSubmittedReceiptLineSku',
      'SubmittedReceiptLineSku' => 'Eurostop\\Sales\\SubmittedReceiptLineSku',
      'ArrayOfSubmittedReceiptOperation' => 'Eurostop\\Sales\\ArrayOfSubmittedReceiptOperation',
      'SubmittedReceiptOperation' => 'Eurostop\\Sales\\SubmittedReceiptOperation',
      'ArrayOfSubmittedReceiptPriceModifier' => 'Eurostop\\Sales\\ArrayOfSubmittedReceiptPriceModifier',
      'SubmittedReceiptPriceModifier' => 'Eurostop\\Sales\\SubmittedReceiptPriceModifier',
      'ArrayOfSubmittedReceiptTender' => 'Eurostop\\Sales\\ArrayOfSubmittedReceiptTender',
      'SubmittedReceiptTender' => 'Eurostop\\Sales\\SubmittedReceiptTender',
      'ArrayOfSubmittedReceiptVoucherPurchase' => 'Eurostop\\Sales\\ArrayOfSubmittedReceiptVoucherPurchase',
      'SubmittedReceiptVoucherPurchase' => 'Eurostop\\Sales\\SubmittedReceiptVoucherPurchase',
      'ArrayOfSubmittedReceiptHeader' => 'Eurostop\\Sales\\ArrayOfSubmittedReceiptHeader',
      'DataRetrievalResultOfReceiptHeader31Wk0GWA' => 'Eurostop\\Sales\\DataRetrievalResultOfReceiptHeader31Wk0GWA',
      'CodedRetrievedDataItemOfReceiptHeaderDtonkuuQA70' => 'Eurostop\\Sales\\CodedRetrievedDataItemOfReceiptHeaderDtonkuuQA70',
      'RetrievedDataItemOfReceiptHeaderDtonkuuQA70' => 'Eurostop\\Sales\\RetrievedDataItemOfReceiptHeaderDtonkuuQA70',
      'RetrievedDataItemOfReceiptGiftCardTransactionDtonkuuQA70' => 'Eurostop\\Sales\\RetrievedDataItemOfReceiptGiftCardTransactionDtonkuuQA70',
      'RetrievedDataItemOfReceiptLineSkuDtonkuuQA70' => 'Eurostop\\Sales\\RetrievedDataItemOfReceiptLineSkuDtonkuuQA70',
      'RetrievedDataItemOfReceiptLinePriceModifierDtonkuuQA70' => 'Eurostop\\Sales\\RetrievedDataItemOfReceiptLinePriceModifierDtonkuuQA70',
      'RetrievedDataItemOfReceiptOperationDtonkuuQA70' => 'Eurostop\\Sales\\RetrievedDataItemOfReceiptOperationDtonkuuQA70',
      'RetrievedDataItemOfReceiptTenderDtonkuuQA70' => 'Eurostop\\Sales\\RetrievedDataItemOfReceiptTenderDtonkuuQA70',
      'RetrievedDataItemOfReceiptAccountTransactionDtonkuuQA70' => 'Eurostop\\Sales\\RetrievedDataItemOfReceiptAccountTransactionDtonkuuQA70',
      'RetrievedDataItemOfReceiptVoucherPurchaseDtonkuuQA70' => 'Eurostop\\Sales\\RetrievedDataItemOfReceiptVoucherPurchaseDtonkuuQA70',
      'SubmittedDataItemOfSubmittedReceiptHeaderDtonkuuQA70' => 'Eurostop\\Sales\\SubmittedDataItemOfSubmittedReceiptHeaderDtonkuuQA70',
      'SubmittedDataItemOfSubmittedReceiptGiftCardTransactionDtonkuuQA70' => 'Eurostop\\Sales\\SubmittedDataItemOfSubmittedReceiptGiftCardTransactionDtonkuuQA70',
      'SubmittedDataItemOfSubmittedReceiptLineSkuDtonkuuQA70' => 'Eurostop\\Sales\\SubmittedDataItemOfSubmittedReceiptLineSkuDtonkuuQA70',
      'SubmittedDataItemOfSubmittedReceiptOperationDtonkuuQA70' => 'Eurostop\\Sales\\SubmittedDataItemOfSubmittedReceiptOperationDtonkuuQA70',
      'SubmittedDataItemOfSubmittedReceiptPriceModifierDtonkuuQA70' => 'Eurostop\\Sales\\SubmittedDataItemOfSubmittedReceiptPriceModifierDtonkuuQA70',
      'SubmittedDataItemOfSubmittedReceiptTenderDtonkuuQA70' => 'Eurostop\\Sales\\SubmittedDataItemOfSubmittedReceiptTenderDtonkuuQA70',
      'SubmittedDataItemOfSubmittedReceiptVoucherPurchaseDtonkuuQA70' => 'Eurostop\\Sales\\SubmittedDataItemOfSubmittedReceiptVoucherPurchaseDtonkuuQA70',
      'DataSubmissionResult' => 'Eurostop\\Sales\\DataSubmissionResult',
      'ArrayOfValidationError' => 'Eurostop\\Sales\\ArrayOfValidationError',
      'ValidationError' => 'Eurostop\\Sales\\ValidationError',
      'ArrayOfDataProcessingResult' => 'Eurostop\\Sales\\ArrayOfDataProcessingResult',
      'DataProcessingResult' => 'Eurostop\\Sales\\DataProcessingResult',
      'ArrayOfDataProcessingStatus' => 'Eurostop\\Sales\\ArrayOfDataProcessingStatus',
      'DataProcessingStatus' => 'Eurostop\\Sales\\DataProcessingStatus',
      'GetReceiptsByTransactionDate' => 'Eurostop\\Sales\\GetReceiptsByTransactionDate',
      'GetReceiptsByTransactionDateResponse' => 'Eurostop\\Sales\\GetReceiptsByTransactionDateResponse',
      'GetReceiptsByBranchTransactionDate' => 'Eurostop\\Sales\\GetReceiptsByBranchTransactionDate',
      'GetReceiptsByBranchTransactionDateResponse' => 'Eurostop\\Sales\\GetReceiptsByBranchTransactionDateResponse',
      'GetReceiptsByBranchTillTransactionDate' => 'Eurostop\\Sales\\GetReceiptsByBranchTillTransactionDate',
      'GetReceiptsByBranchTillTransactionDateResponse' => 'Eurostop\\Sales\\GetReceiptsByBranchTillTransactionDateResponse',
      'GetReceiptsByResolvedDate' => 'Eurostop\\Sales\\GetReceiptsByResolvedDate',
      'GetReceiptsByResolvedDateResponse' => 'Eurostop\\Sales\\GetReceiptsByResolvedDateResponse',
      'GetReceiptsByBranchResolvedDate' => 'Eurostop\\Sales\\GetReceiptsByBranchResolvedDate',
      'GetReceiptsByBranchResolvedDateResponse' => 'Eurostop\\Sales\\GetReceiptsByBranchResolvedDateResponse',
      'GetReceiptsByBranchTillResolvedDate' => 'Eurostop\\Sales\\GetReceiptsByBranchTillResolvedDate',
      'GetReceiptsByBranchTillResolvedDateResponse' => 'Eurostop\\Sales\\GetReceiptsByBranchTillResolvedDateResponse',
      'GetReceiptsByReceiptNumber' => 'Eurostop\\Sales\\GetReceiptsByReceiptNumber',
      'GetReceiptsByReceiptNumberResponse' => 'Eurostop\\Sales\\GetReceiptsByReceiptNumberResponse',
      'GetReceiptByReceiptIdentifier' => 'Eurostop\\Sales\\GetReceiptByReceiptIdentifier',
      'GetReceiptByReceiptIdentifierResponse' => 'Eurostop\\Sales\\GetReceiptByReceiptIdentifierResponse',
      'GetReceiptsByReceiptIdentifier' => 'Eurostop\\Sales\\GetReceiptsByReceiptIdentifier',
      'GetReceiptsByReceiptIdentifierResponse' => 'Eurostop\\Sales\\GetReceiptsByReceiptIdentifierResponse',
      'GetReceiptsByReceiptId' => 'Eurostop\\Sales\\GetReceiptsByReceiptId',
      'GetReceiptsByReceiptIdResponse' => 'Eurostop\\Sales\\GetReceiptsByReceiptIdResponse',
      'SubmitReceipt' => 'Eurostop\\Sales\\SubmitReceipt',
      'SubmitReceiptResponse' => 'Eurostop\\Sales\\SubmitReceiptResponse',
      'SubmitReceipts' => 'Eurostop\\Sales\\SubmitReceipts',
      'SubmitReceiptsResponse' => 'Eurostop\\Sales\\SubmitReceiptsResponse',
      'FlagDataProcessingToRetryByReference' => 'Eurostop\\Sales\\FlagDataProcessingToRetryByReference',
      'FlagDataProcessingToRetryByReferenceResponse' => 'Eurostop\\Sales\\FlagDataProcessingToRetryByReferenceResponse',
      'FlagDataProcessingToRetryByToken' => 'Eurostop\\Sales\\FlagDataProcessingToRetryByToken',
      'FlagDataProcessingToRetryByTokenResponse' => 'Eurostop\\Sales\\FlagDataProcessingToRetryByTokenResponse',
      'RunDataProcessingByReference' => 'Eurostop\\Sales\\RunDataProcessingByReference',
      'RunDataProcessingByReferenceResponse' => 'Eurostop\\Sales\\RunDataProcessingByReferenceResponse',
      'RunDataProcessingByToken' => 'Eurostop\\Sales\\RunDataProcessingByToken',
      'RunDataProcessingByTokenResponse' => 'Eurostop\\Sales\\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/sales?wsdl';
      }
      parent::__construct($wsdl, $options);
    }

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

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

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

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

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

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

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

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

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

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

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

    /**
     * @param SubmitReceipts $parameters
     * @return SubmitReceiptsResponse
     */
    public function SubmitReceipts(SubmitReceipts $parameters)
    {
      return $this->__soapCall('SubmitReceipts', 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));
    }

}
