<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Printing.PrintableItem.PaymentRecords StructType
 * @subpackage Structs
 */
class Printing_PrintableItem_PaymentRecords extends Printing_PrintableItem_Base
{
    /**
     * The AnyPayments
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord
     */
    public $AnyPayments;
    /**
     * The BankTransferPayments
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_BankTransferPaymentItemForInvoice
     */
    public $BankTransferPayments;
    /**
     * The CashPayments
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord
     */
    public $CashPayments;
    /**
     * The ChequePayments
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_ChequePaymentItemForInvoice
     */
    public $ChequePayments;
    /**
     * The CouponPayments
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_CouponPaymentItemForInvoice
     */
    public $CouponPayments;
    /**
     * The CreditCardPayments
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_CreditCardPaymentItemForInvoice
     */
    public $CreditCardPayments;
    /**
     * The CustomPayments
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord
     */
    public $CustomPayments;
    /**
     * The DirectDebitPayments
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_DirectDebitPaymentItemForInvoice
     */
    public $DirectDebitPayments;
    /**
     * The GiftVoucherPayments
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_GiftVoucherPaymentItemForInvoice
     */
    public $GiftVoucherPayments;
    /**
     * The OnlinePayments
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_OnlinePaymentItemForInvoice
     */
    public $OnlinePayments;
    /**
     * The RefundVoucherPayments
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_RefundVoucherPaymentItemForInvoice
     */
    public $RefundVoucherPayments;
    /**
     * The WithdrawDepositPaymentd
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_WithdrawDepositPaymentItemForInvoice
     */
    public $WithdrawDepositPaymentd;
    /**
     * Constructor method for Printing.PrintableItem.PaymentRecords
     * @uses Printing_PrintableItem_PaymentRecords::setAnyPayments()
     * @uses Printing_PrintableItem_PaymentRecords::setBankTransferPayments()
     * @uses Printing_PrintableItem_PaymentRecords::setCashPayments()
     * @uses Printing_PrintableItem_PaymentRecords::setChequePayments()
     * @uses Printing_PrintableItem_PaymentRecords::setCouponPayments()
     * @uses Printing_PrintableItem_PaymentRecords::setCreditCardPayments()
     * @uses Printing_PrintableItem_PaymentRecords::setCustomPayments()
     * @uses Printing_PrintableItem_PaymentRecords::setDirectDebitPayments()
     * @uses Printing_PrintableItem_PaymentRecords::setGiftVoucherPayments()
     * @uses Printing_PrintableItem_PaymentRecords::setOnlinePayments()
     * @uses Printing_PrintableItem_PaymentRecords::setRefundVoucherPayments()
     * @uses Printing_PrintableItem_PaymentRecords::setWithdrawDepositPaymentd()
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord $anyPayments
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_BankTransferPaymentItemForInvoice $bankTransferPayments
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord $cashPayments
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_ChequePaymentItemForInvoice $chequePayments
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_CouponPaymentItemForInvoice $couponPayments
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_CreditCardPaymentItemForInvoice $creditCardPayments
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord $customPayments
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_DirectDebitPaymentItemForInvoice $directDebitPayments
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_GiftVoucherPaymentItemForInvoice $giftVoucherPayments
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_OnlinePaymentItemForInvoice $onlinePayments
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_RefundVoucherPaymentItemForInvoice $refundVoucherPayments
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_WithdrawDepositPaymentItemForInvoice $withdrawDepositPaymentd
     */
    public function __construct(\patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord $anyPayments = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_BankTransferPaymentItemForInvoice $bankTransferPayments = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord $cashPayments = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_ChequePaymentItemForInvoice $chequePayments = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_CouponPaymentItemForInvoice $couponPayments = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_CreditCardPaymentItemForInvoice $creditCardPayments = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord $customPayments = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_DirectDebitPaymentItemForInvoice $directDebitPayments = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_GiftVoucherPaymentItemForInvoice $giftVoucherPayments = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_OnlinePaymentItemForInvoice $onlinePayments = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_RefundVoucherPaymentItemForInvoice $refundVoucherPayments = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_WithdrawDepositPaymentItemForInvoice $withdrawDepositPaymentd = null)
    {
        $this
            ->setAnyPayments($anyPayments)
            ->setBankTransferPayments($bankTransferPayments)
            ->setCashPayments($cashPayments)
            ->setChequePayments($chequePayments)
            ->setCouponPayments($couponPayments)
            ->setCreditCardPayments($creditCardPayments)
            ->setCustomPayments($customPayments)
            ->setDirectDebitPayments($directDebitPayments)
            ->setGiftVoucherPayments($giftVoucherPayments)
            ->setOnlinePayments($onlinePayments)
            ->setRefundVoucherPayments($refundVoucherPayments)
            ->setWithdrawDepositPaymentd($withdrawDepositPaymentd);
    }
    /**
     * Get AnyPayments value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord|null
     */
    public function getAnyPayments()
    {
        return isset($this->AnyPayments) ? $this->AnyPayments : null;
    }
    /**
     * Set AnyPayments value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord $anyPayments
     * @return \patest\StructType\Printing_PrintableItem_PaymentRecords
     */
    public function setAnyPayments(\patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord $anyPayments = null)
    {
        if (is_null($anyPayments) || (is_array($anyPayments) && empty($anyPayments))) {
            unset($this->AnyPayments);
        } else {
            $this->AnyPayments = $anyPayments;
        }
        return $this;
    }
    /**
     * Get BankTransferPayments value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\RecordSetOfPrinting_PrintableItem_BankTransferPaymentItemForInvoice|null
     */
    public function getBankTransferPayments()
    {
        return isset($this->BankTransferPayments) ? $this->BankTransferPayments : null;
    }
    /**
     * Set BankTransferPayments value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_BankTransferPaymentItemForInvoice $bankTransferPayments
     * @return \patest\StructType\Printing_PrintableItem_PaymentRecords
     */
    public function setBankTransferPayments(\patest\StructType\RecordSetOfPrinting_PrintableItem_BankTransferPaymentItemForInvoice $bankTransferPayments = null)
    {
        if (is_null($bankTransferPayments) || (is_array($bankTransferPayments) && empty($bankTransferPayments))) {
            unset($this->BankTransferPayments);
        } else {
            $this->BankTransferPayments = $bankTransferPayments;
        }
        return $this;
    }
    /**
     * Get CashPayments value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord|null
     */
    public function getCashPayments()
    {
        return isset($this->CashPayments) ? $this->CashPayments : null;
    }
    /**
     * Set CashPayments value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord $cashPayments
     * @return \patest\StructType\Printing_PrintableItem_PaymentRecords
     */
    public function setCashPayments(\patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord $cashPayments = null)
    {
        if (is_null($cashPayments) || (is_array($cashPayments) && empty($cashPayments))) {
            unset($this->CashPayments);
        } else {
            $this->CashPayments = $cashPayments;
        }
        return $this;
    }
    /**
     * Get ChequePayments value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\RecordSetOfPrinting_PrintableItem_ChequePaymentItemForInvoice|null
     */
    public function getChequePayments()
    {
        return isset($this->ChequePayments) ? $this->ChequePayments : null;
    }
    /**
     * Set ChequePayments value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_ChequePaymentItemForInvoice $chequePayments
     * @return \patest\StructType\Printing_PrintableItem_PaymentRecords
     */
    public function setChequePayments(\patest\StructType\RecordSetOfPrinting_PrintableItem_ChequePaymentItemForInvoice $chequePayments = null)
    {
        if (is_null($chequePayments) || (is_array($chequePayments) && empty($chequePayments))) {
            unset($this->ChequePayments);
        } else {
            $this->ChequePayments = $chequePayments;
        }
        return $this;
    }
    /**
     * Get CouponPayments value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\RecordSetOfPrinting_PrintableItem_CouponPaymentItemForInvoice|null
     */
    public function getCouponPayments()
    {
        return isset($this->CouponPayments) ? $this->CouponPayments : null;
    }
    /**
     * Set CouponPayments value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_CouponPaymentItemForInvoice $couponPayments
     * @return \patest\StructType\Printing_PrintableItem_PaymentRecords
     */
    public function setCouponPayments(\patest\StructType\RecordSetOfPrinting_PrintableItem_CouponPaymentItemForInvoice $couponPayments = null)
    {
        if (is_null($couponPayments) || (is_array($couponPayments) && empty($couponPayments))) {
            unset($this->CouponPayments);
        } else {
            $this->CouponPayments = $couponPayments;
        }
        return $this;
    }
    /**
     * Get CreditCardPayments value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\RecordSetOfPrinting_PrintableItem_CreditCardPaymentItemForInvoice|null
     */
    public function getCreditCardPayments()
    {
        return isset($this->CreditCardPayments) ? $this->CreditCardPayments : null;
    }
    /**
     * Set CreditCardPayments value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_CreditCardPaymentItemForInvoice $creditCardPayments
     * @return \patest\StructType\Printing_PrintableItem_PaymentRecords
     */
    public function setCreditCardPayments(\patest\StructType\RecordSetOfPrinting_PrintableItem_CreditCardPaymentItemForInvoice $creditCardPayments = null)
    {
        if (is_null($creditCardPayments) || (is_array($creditCardPayments) && empty($creditCardPayments))) {
            unset($this->CreditCardPayments);
        } else {
            $this->CreditCardPayments = $creditCardPayments;
        }
        return $this;
    }
    /**
     * Get CustomPayments value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord|null
     */
    public function getCustomPayments()
    {
        return isset($this->CustomPayments) ? $this->CustomPayments : null;
    }
    /**
     * Set CustomPayments value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord $customPayments
     * @return \patest\StructType\Printing_PrintableItem_PaymentRecords
     */
    public function setCustomPayments(\patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentRecord $customPayments = null)
    {
        if (is_null($customPayments) || (is_array($customPayments) && empty($customPayments))) {
            unset($this->CustomPayments);
        } else {
            $this->CustomPayments = $customPayments;
        }
        return $this;
    }
    /**
     * Get DirectDebitPayments value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\RecordSetOfPrinting_PrintableItem_DirectDebitPaymentItemForInvoice|null
     */
    public function getDirectDebitPayments()
    {
        return isset($this->DirectDebitPayments) ? $this->DirectDebitPayments : null;
    }
    /**
     * Set DirectDebitPayments value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_DirectDebitPaymentItemForInvoice $directDebitPayments
     * @return \patest\StructType\Printing_PrintableItem_PaymentRecords
     */
    public function setDirectDebitPayments(\patest\StructType\RecordSetOfPrinting_PrintableItem_DirectDebitPaymentItemForInvoice $directDebitPayments = null)
    {
        if (is_null($directDebitPayments) || (is_array($directDebitPayments) && empty($directDebitPayments))) {
            unset($this->DirectDebitPayments);
        } else {
            $this->DirectDebitPayments = $directDebitPayments;
        }
        return $this;
    }
    /**
     * Get GiftVoucherPayments value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\RecordSetOfPrinting_PrintableItem_GiftVoucherPaymentItemForInvoice|null
     */
    public function getGiftVoucherPayments()
    {
        return isset($this->GiftVoucherPayments) ? $this->GiftVoucherPayments : null;
    }
    /**
     * Set GiftVoucherPayments value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_GiftVoucherPaymentItemForInvoice $giftVoucherPayments
     * @return \patest\StructType\Printing_PrintableItem_PaymentRecords
     */
    public function setGiftVoucherPayments(\patest\StructType\RecordSetOfPrinting_PrintableItem_GiftVoucherPaymentItemForInvoice $giftVoucherPayments = null)
    {
        if (is_null($giftVoucherPayments) || (is_array($giftVoucherPayments) && empty($giftVoucherPayments))) {
            unset($this->GiftVoucherPayments);
        } else {
            $this->GiftVoucherPayments = $giftVoucherPayments;
        }
        return $this;
    }
    /**
     * Get OnlinePayments value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\RecordSetOfPrinting_PrintableItem_OnlinePaymentItemForInvoice|null
     */
    public function getOnlinePayments()
    {
        return isset($this->OnlinePayments) ? $this->OnlinePayments : null;
    }
    /**
     * Set OnlinePayments value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_OnlinePaymentItemForInvoice $onlinePayments
     * @return \patest\StructType\Printing_PrintableItem_PaymentRecords
     */
    public function setOnlinePayments(\patest\StructType\RecordSetOfPrinting_PrintableItem_OnlinePaymentItemForInvoice $onlinePayments = null)
    {
        if (is_null($onlinePayments) || (is_array($onlinePayments) && empty($onlinePayments))) {
            unset($this->OnlinePayments);
        } else {
            $this->OnlinePayments = $onlinePayments;
        }
        return $this;
    }
    /**
     * Get RefundVoucherPayments value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\RecordSetOfPrinting_PrintableItem_RefundVoucherPaymentItemForInvoice|null
     */
    public function getRefundVoucherPayments()
    {
        return isset($this->RefundVoucherPayments) ? $this->RefundVoucherPayments : null;
    }
    /**
     * Set RefundVoucherPayments value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_RefundVoucherPaymentItemForInvoice $refundVoucherPayments
     * @return \patest\StructType\Printing_PrintableItem_PaymentRecords
     */
    public function setRefundVoucherPayments(\patest\StructType\RecordSetOfPrinting_PrintableItem_RefundVoucherPaymentItemForInvoice $refundVoucherPayments = null)
    {
        if (is_null($refundVoucherPayments) || (is_array($refundVoucherPayments) && empty($refundVoucherPayments))) {
            unset($this->RefundVoucherPayments);
        } else {
            $this->RefundVoucherPayments = $refundVoucherPayments;
        }
        return $this;
    }
    /**
     * Get WithdrawDepositPaymentd value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\RecordSetOfPrinting_PrintableItem_WithdrawDepositPaymentItemForInvoice|null
     */
    public function getWithdrawDepositPaymentd()
    {
        return isset($this->WithdrawDepositPaymentd) ? $this->WithdrawDepositPaymentd : null;
    }
    /**
     * Set WithdrawDepositPaymentd value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_WithdrawDepositPaymentItemForInvoice $withdrawDepositPaymentd
     * @return \patest\StructType\Printing_PrintableItem_PaymentRecords
     */
    public function setWithdrawDepositPaymentd(\patest\StructType\RecordSetOfPrinting_PrintableItem_WithdrawDepositPaymentItemForInvoice $withdrawDepositPaymentd = null)
    {
        if (is_null($withdrawDepositPaymentd) || (is_array($withdrawDepositPaymentd) && empty($withdrawDepositPaymentd))) {
            unset($this->WithdrawDepositPaymentd);
        } else {
            $this->WithdrawDepositPaymentd = $withdrawDepositPaymentd;
        }
        return $this;
    }
}
