<?php

namespace Geniki\GenikiStruct;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VoucherJob GenikiStruct
 * @package Geniki
 * @subpackage Structs
 */
class GenikiVoucherJob extends GenikiBaseJob
{
    /**
     * The Voucher
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \Geniki\GenikiStruct\GenikiRecord
     */
    public $Voucher;
    /**
     * The ReturningVoucher
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \Geniki\GenikiStruct\GenikiRecord
     */
    public $ReturningVoucher;
    /**
     * The SubVouchers
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \Geniki\GenikiArray\GenikiArrayOfRecord
     */
    public $SubVouchers;
    /**
     * Constructor method for VoucherJob
     * @uses GenikiVoucherJob::setVoucher()
     * @uses GenikiVoucherJob::setReturningVoucher()
     * @uses GenikiVoucherJob::setSubVouchers()
     * @param \Geniki\GenikiStruct\GenikiRecord $voucher
     * @param \Geniki\GenikiStruct\GenikiRecord $returningVoucher
     * @param \Geniki\GenikiArray\GenikiArrayOfRecord $subVouchers
     */
    public function __construct(\Geniki\GenikiStruct\GenikiRecord $voucher = null, \Geniki\GenikiStruct\GenikiRecord $returningVoucher = null, \Geniki\GenikiArray\GenikiArrayOfRecord $subVouchers = null)
    {
        $this
            ->setVoucher($voucher)
            ->setReturningVoucher($returningVoucher)
            ->setSubVouchers($subVouchers);
    }
    /**
     * Get Voucher value
     * @return \Geniki\GenikiStruct\GenikiRecord|null
     */
    public function getVoucher()
    {
        return $this->Voucher;
    }
    /**
     * Set Voucher value
     * @param \Geniki\GenikiStruct\GenikiRecord $voucher
     * @return \Geniki\GenikiStruct\GenikiVoucherJob
     */
    public function setVoucher(\Geniki\GenikiStruct\GenikiRecord $voucher = null)
    {
        $this->Voucher = $voucher;
        return $this;
    }
    /**
     * Get ReturningVoucher value
     * @return \Geniki\GenikiStruct\GenikiRecord|null
     */
    public function getReturningVoucher()
    {
        return $this->ReturningVoucher;
    }
    /**
     * Set ReturningVoucher value
     * @param \Geniki\GenikiStruct\GenikiRecord $returningVoucher
     * @return \Geniki\GenikiStruct\GenikiVoucherJob
     */
    public function setReturningVoucher(\Geniki\GenikiStruct\GenikiRecord $returningVoucher = null)
    {
        $this->ReturningVoucher = $returningVoucher;
        return $this;
    }
    /**
     * Get SubVouchers value
     * @return \Geniki\GenikiArray\GenikiArrayOfRecord|null
     */
    public function getSubVouchers()
    {
        return $this->SubVouchers;
    }
    /**
     * Set SubVouchers value
     * @param \Geniki\GenikiArray\GenikiArrayOfRecord $subVouchers
     * @return \Geniki\GenikiStruct\GenikiVoucherJob
     */
    public function setSubVouchers(\Geniki\GenikiArray\GenikiArrayOfRecord $subVouchers = null)
    {
        $this->SubVouchers = $subVouchers;
        return $this;
    }
}
