<?php

namespace Eurostop\Sales;

class SubmittedReceiptOperationCustom extends SubmittedDataItemOfSubmittedReceiptOperationDtonkuuQA70Custom
{

    /**
     * @var TillOperationSubType $SubType
     */
    protected $SubType = null;

    /**
     * @var string $TypeIdentifier
     */
    protected $TypeIdentifier = null;

    /**
     * @var ReasonIdentifierType $TypeIdentifierType
     */
    protected $TypeIdentifierType = null;

    /**
     * @var float $Value
     */
    protected $Value = null;

    /**
     * @var string $VatRateIdentifier
     */
    protected $VatRateIdentifier = null;

    /**
     * @var VatRateIdentifierType $VatRateIdentifierType
     */
    protected $VatRateIdentifierType = null;

    /**
     * @param TillOperationSubType $SubType
     * @param ReasonIdentifierType $TypeIdentifierType
     * @param float $Value
     * @param VatRateIdentifierType $VatRateIdentifierType
     */
    public function __construct($SubType, $TypeIdentifierType, $Value, $VatRateIdentifierType)
    {
      parent::__construct();
      $this->SubType = $SubType;
      $this->TypeIdentifierType = $TypeIdentifierType;
      $this->Value = $Value;
      $this->VatRateIdentifierType = $VatRateIdentifierType;
    }

    /**
     * @return TillOperationSubType
     */
    public function getSubType()
    {
      return $this->SubType;
    }

    /**
     * @param TillOperationSubType $SubType
     * @return \Eurostop\Sales\SubmittedReceiptOperation
     */
    public function setSubType($SubType)
    {
      $this->SubType = $SubType;
      return $this;
    }

    /**
     * @return string
     */
    public function getTypeIdentifier()
    {
      return $this->TypeIdentifier;
    }

    /**
     * @param string $TypeIdentifier
     * @return \Eurostop\Sales\SubmittedReceiptOperation
     */
    public function setTypeIdentifier($TypeIdentifier)
    {
      $this->TypeIdentifier = $TypeIdentifier;
      return $this;
    }

    /**
     * @return ReasonIdentifierType
     */
    public function getTypeIdentifierType()
    {
      return $this->TypeIdentifierType;
    }

    /**
     * @param ReasonIdentifierType $TypeIdentifierType
     * @return \Eurostop\Sales\SubmittedReceiptOperation
     */
    public function setTypeIdentifierType($TypeIdentifierType)
    {
      $this->TypeIdentifierType = $TypeIdentifierType;
      return $this;
    }

    /**
     * @return float
     */
    public function getValue()
    {
      return $this->Value;
    }

    /**
     * @param float $Value
     * @return \Eurostop\Sales\SubmittedReceiptOperation
     */
    public function setValue($Value)
    {
      $this->Value = $Value;
      return $this;
    }

    /**
     * @return string
     */
    public function getVatRateIdentifier()
    {
      return $this->VatRateIdentifier;
    }

    /**
     * @param string $VatRateIdentifier
     * @return \Eurostop\Sales\SubmittedReceiptOperation
     */
    public function setVatRateIdentifier($VatRateIdentifier)
    {
      $this->VatRateIdentifier = $VatRateIdentifier;
      return $this;
    }

    /**
     * @return VatRateIdentifierType
     */
    public function getVatRateIdentifierType()
    {
      return $this->VatRateIdentifierType;
    }

    /**
     * @param VatRateIdentifierType $VatRateIdentifierType
     * @return \Eurostop\Sales\SubmittedReceiptOperation
     */
    public function setVatRateIdentifierType($VatRateIdentifierType)
    {
      $this->VatRateIdentifierType = $VatRateIdentifierType;
      return $this;
    }

}
