<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Printing.AuxDataItem.PaymentItemsData StructType
 * @subpackage Structs
 */
class Printing_AuxDataItem_PaymentItemsData extends Printing_AuxiliaryDataItem_Base
{
    /**
     * The AllPaymentItems
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentItem
     */
    public $AllPaymentItems;
    /**
     * The BankTransferPaymentItems
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_BankTransferPaymentItem
     */
    public $BankTransferPaymentItems;
    /**
     * The CashPaymentItems
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase
     */
    public $CashPaymentItems;
    /**
     * The ChequePaymentItems
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_ChequePayment
     */
    public $ChequePaymentItems;
    /**
     * The CouponPaymentItems
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase
     */
    public $CouponPaymentItems;
    /**
     * The CreditCardPaymentItems
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPayment_Printing_CreditCardPayment
     */
    public $CreditCardPaymentItems;
    /**
     * The CustomPaymentItems
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase
     */
    public $CustomPaymentItems;
    /**
     * The DebitCardPaymentItems
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase
     */
    public $DebitCardPaymentItems;
    /**
     * The DirectDebitPaymentItems
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_DirectDebitPaymentItem
     */
    public $DirectDebitPaymentItems;
    /**
     * The GiftCardPaymentItems
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_GiftCardPayment
     */
    public $GiftCardPaymentItems;
    /**
     * The LoyaltyPointsPaymentItems
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_LoyaltyPointsPayment
     */
    public $LoyaltyPointsPaymentItems;
    /**
     * The OnlinePaymentItems
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_OnlinePaymentItem
     */
    public $OnlinePaymentItems;
    /**
     * The PaymentsPlanItems
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentsPlan
     */
    public $PaymentsPlanItems;
    /**
     * The RefundVoucherPaymentItems
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase
     */
    public $RefundVoucherPaymentItems;
    /**
     * The SettlementPaymentItems
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase
     */
    public $SettlementPaymentItems;
    /**
     * The SummaryByPaymentMethod
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\Printing_DataItem_PaymentItemsSummaryByMethod
     */
    public $SummaryByPaymentMethod;
    /**
     * The TradeInPaymentItems
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase
     */
    public $TradeInPaymentItems;
    /**
     * The UnionSubsidyPaymentItems
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_UnionSubsidyPaymentItem
     */
    public $UnionSubsidyPaymentItems;
    /**
     * Constructor method for Printing.AuxDataItem.PaymentItemsData
     * @uses Printing_AuxDataItem_PaymentItemsData::setAllPaymentItems()
     * @uses Printing_AuxDataItem_PaymentItemsData::setBankTransferPaymentItems()
     * @uses Printing_AuxDataItem_PaymentItemsData::setCashPaymentItems()
     * @uses Printing_AuxDataItem_PaymentItemsData::setChequePaymentItems()
     * @uses Printing_AuxDataItem_PaymentItemsData::setCouponPaymentItems()
     * @uses Printing_AuxDataItem_PaymentItemsData::setCreditCardPaymentItems()
     * @uses Printing_AuxDataItem_PaymentItemsData::setCustomPaymentItems()
     * @uses Printing_AuxDataItem_PaymentItemsData::setDebitCardPaymentItems()
     * @uses Printing_AuxDataItem_PaymentItemsData::setDirectDebitPaymentItems()
     * @uses Printing_AuxDataItem_PaymentItemsData::setGiftCardPaymentItems()
     * @uses Printing_AuxDataItem_PaymentItemsData::setLoyaltyPointsPaymentItems()
     * @uses Printing_AuxDataItem_PaymentItemsData::setOnlinePaymentItems()
     * @uses Printing_AuxDataItem_PaymentItemsData::setPaymentsPlanItems()
     * @uses Printing_AuxDataItem_PaymentItemsData::setRefundVoucherPaymentItems()
     * @uses Printing_AuxDataItem_PaymentItemsData::setSettlementPaymentItems()
     * @uses Printing_AuxDataItem_PaymentItemsData::setSummaryByPaymentMethod()
     * @uses Printing_AuxDataItem_PaymentItemsData::setTradeInPaymentItems()
     * @uses Printing_AuxDataItem_PaymentItemsData::setUnionSubsidyPaymentItems()
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentItem $allPaymentItems
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_BankTransferPaymentItem $bankTransferPaymentItems
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $cashPaymentItems
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_ChequePayment $chequePaymentItems
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $couponPaymentItems
     * @param \patest\StructType\RecordSetOfPayment_Printing_CreditCardPayment $creditCardPaymentItems
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $customPaymentItems
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $debitCardPaymentItems
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_DirectDebitPaymentItem $directDebitPaymentItems
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_GiftCardPayment $giftCardPaymentItems
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_LoyaltyPointsPayment $loyaltyPointsPaymentItems
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_OnlinePaymentItem $onlinePaymentItems
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentsPlan $paymentsPlanItems
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $refundVoucherPaymentItems
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $settlementPaymentItems
     * @param \patest\StructType\Printing_DataItem_PaymentItemsSummaryByMethod $summaryByPaymentMethod
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $tradeInPaymentItems
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_UnionSubsidyPaymentItem $unionSubsidyPaymentItems
     */
    public function __construct(\patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentItem $allPaymentItems = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_BankTransferPaymentItem $bankTransferPaymentItems = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $cashPaymentItems = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_ChequePayment $chequePaymentItems = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $couponPaymentItems = null, \patest\StructType\RecordSetOfPayment_Printing_CreditCardPayment $creditCardPaymentItems = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $customPaymentItems = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $debitCardPaymentItems = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_DirectDebitPaymentItem $directDebitPaymentItems = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_GiftCardPayment $giftCardPaymentItems = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_LoyaltyPointsPayment $loyaltyPointsPaymentItems = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_OnlinePaymentItem $onlinePaymentItems = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentsPlan $paymentsPlanItems = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $refundVoucherPaymentItems = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $settlementPaymentItems = null, \patest\StructType\Printing_DataItem_PaymentItemsSummaryByMethod $summaryByPaymentMethod = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $tradeInPaymentItems = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_UnionSubsidyPaymentItem $unionSubsidyPaymentItems = null)
    {
        $this
            ->setAllPaymentItems($allPaymentItems)
            ->setBankTransferPaymentItems($bankTransferPaymentItems)
            ->setCashPaymentItems($cashPaymentItems)
            ->setChequePaymentItems($chequePaymentItems)
            ->setCouponPaymentItems($couponPaymentItems)
            ->setCreditCardPaymentItems($creditCardPaymentItems)
            ->setCustomPaymentItems($customPaymentItems)
            ->setDebitCardPaymentItems($debitCardPaymentItems)
            ->setDirectDebitPaymentItems($directDebitPaymentItems)
            ->setGiftCardPaymentItems($giftCardPaymentItems)
            ->setLoyaltyPointsPaymentItems($loyaltyPointsPaymentItems)
            ->setOnlinePaymentItems($onlinePaymentItems)
            ->setPaymentsPlanItems($paymentsPlanItems)
            ->setRefundVoucherPaymentItems($refundVoucherPaymentItems)
            ->setSettlementPaymentItems($settlementPaymentItems)
            ->setSummaryByPaymentMethod($summaryByPaymentMethod)
            ->setTradeInPaymentItems($tradeInPaymentItems)
            ->setUnionSubsidyPaymentItems($unionSubsidyPaymentItems);
    }
    /**
     * Get AllPaymentItems 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_AnyPaymentItem|null
     */
    public function getAllPaymentItems()
    {
        return isset($this->AllPaymentItems) ? $this->AllPaymentItems : null;
    }
    /**
     * Set AllPaymentItems 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_AnyPaymentItem $allPaymentItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setAllPaymentItems(\patest\StructType\RecordSetOfPrinting_PrintableItem_AnyPaymentItem $allPaymentItems = null)
    {
        if (is_null($allPaymentItems) || (is_array($allPaymentItems) && empty($allPaymentItems))) {
            unset($this->AllPaymentItems);
        } else {
            $this->AllPaymentItems = $allPaymentItems;
        }
        return $this;
    }
    /**
     * Get BankTransferPaymentItems 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_BankTransferPaymentItem|null
     */
    public function getBankTransferPaymentItems()
    {
        return isset($this->BankTransferPaymentItems) ? $this->BankTransferPaymentItems : null;
    }
    /**
     * Set BankTransferPaymentItems 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_BankTransferPaymentItem $bankTransferPaymentItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setBankTransferPaymentItems(\patest\StructType\RecordSetOfPrinting_PrintableItem_BankTransferPaymentItem $bankTransferPaymentItems = null)
    {
        if (is_null($bankTransferPaymentItems) || (is_array($bankTransferPaymentItems) && empty($bankTransferPaymentItems))) {
            unset($this->BankTransferPaymentItems);
        } else {
            $this->BankTransferPaymentItems = $bankTransferPaymentItems;
        }
        return $this;
    }
    /**
     * Get CashPaymentItems 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_PaymentItemBase|null
     */
    public function getCashPaymentItems()
    {
        return isset($this->CashPaymentItems) ? $this->CashPaymentItems : null;
    }
    /**
     * Set CashPaymentItems 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_PaymentItemBase $cashPaymentItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setCashPaymentItems(\patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $cashPaymentItems = null)
    {
        if (is_null($cashPaymentItems) || (is_array($cashPaymentItems) && empty($cashPaymentItems))) {
            unset($this->CashPaymentItems);
        } else {
            $this->CashPaymentItems = $cashPaymentItems;
        }
        return $this;
    }
    /**
     * Get ChequePaymentItems 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_ChequePayment|null
     */
    public function getChequePaymentItems()
    {
        return isset($this->ChequePaymentItems) ? $this->ChequePaymentItems : null;
    }
    /**
     * Set ChequePaymentItems 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_ChequePayment $chequePaymentItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setChequePaymentItems(\patest\StructType\RecordSetOfPrinting_PrintableItem_ChequePayment $chequePaymentItems = null)
    {
        if (is_null($chequePaymentItems) || (is_array($chequePaymentItems) && empty($chequePaymentItems))) {
            unset($this->ChequePaymentItems);
        } else {
            $this->ChequePaymentItems = $chequePaymentItems;
        }
        return $this;
    }
    /**
     * Get CouponPaymentItems 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_PaymentItemBase|null
     */
    public function getCouponPaymentItems()
    {
        return isset($this->CouponPaymentItems) ? $this->CouponPaymentItems : null;
    }
    /**
     * Set CouponPaymentItems 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_PaymentItemBase $couponPaymentItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setCouponPaymentItems(\patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $couponPaymentItems = null)
    {
        if (is_null($couponPaymentItems) || (is_array($couponPaymentItems) && empty($couponPaymentItems))) {
            unset($this->CouponPaymentItems);
        } else {
            $this->CouponPaymentItems = $couponPaymentItems;
        }
        return $this;
    }
    /**
     * Get CreditCardPaymentItems 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\RecordSetOfPayment_Printing_CreditCardPayment|null
     */
    public function getCreditCardPaymentItems()
    {
        return isset($this->CreditCardPaymentItems) ? $this->CreditCardPaymentItems : null;
    }
    /**
     * Set CreditCardPaymentItems 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\RecordSetOfPayment_Printing_CreditCardPayment $creditCardPaymentItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setCreditCardPaymentItems(\patest\StructType\RecordSetOfPayment_Printing_CreditCardPayment $creditCardPaymentItems = null)
    {
        if (is_null($creditCardPaymentItems) || (is_array($creditCardPaymentItems) && empty($creditCardPaymentItems))) {
            unset($this->CreditCardPaymentItems);
        } else {
            $this->CreditCardPaymentItems = $creditCardPaymentItems;
        }
        return $this;
    }
    /**
     * Get CustomPaymentItems 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_PaymentItemBase|null
     */
    public function getCustomPaymentItems()
    {
        return isset($this->CustomPaymentItems) ? $this->CustomPaymentItems : null;
    }
    /**
     * Set CustomPaymentItems 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_PaymentItemBase $customPaymentItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setCustomPaymentItems(\patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $customPaymentItems = null)
    {
        if (is_null($customPaymentItems) || (is_array($customPaymentItems) && empty($customPaymentItems))) {
            unset($this->CustomPaymentItems);
        } else {
            $this->CustomPaymentItems = $customPaymentItems;
        }
        return $this;
    }
    /**
     * Get DebitCardPaymentItems 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_PaymentItemBase|null
     */
    public function getDebitCardPaymentItems()
    {
        return isset($this->DebitCardPaymentItems) ? $this->DebitCardPaymentItems : null;
    }
    /**
     * Set DebitCardPaymentItems 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_PaymentItemBase $debitCardPaymentItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setDebitCardPaymentItems(\patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $debitCardPaymentItems = null)
    {
        if (is_null($debitCardPaymentItems) || (is_array($debitCardPaymentItems) && empty($debitCardPaymentItems))) {
            unset($this->DebitCardPaymentItems);
        } else {
            $this->DebitCardPaymentItems = $debitCardPaymentItems;
        }
        return $this;
    }
    /**
     * Get DirectDebitPaymentItems 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_DirectDebitPaymentItem|null
     */
    public function getDirectDebitPaymentItems()
    {
        return isset($this->DirectDebitPaymentItems) ? $this->DirectDebitPaymentItems : null;
    }
    /**
     * Set DirectDebitPaymentItems 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_DirectDebitPaymentItem $directDebitPaymentItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setDirectDebitPaymentItems(\patest\StructType\RecordSetOfPrinting_PrintableItem_DirectDebitPaymentItem $directDebitPaymentItems = null)
    {
        if (is_null($directDebitPaymentItems) || (is_array($directDebitPaymentItems) && empty($directDebitPaymentItems))) {
            unset($this->DirectDebitPaymentItems);
        } else {
            $this->DirectDebitPaymentItems = $directDebitPaymentItems;
        }
        return $this;
    }
    /**
     * Get GiftCardPaymentItems 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_GiftCardPayment|null
     */
    public function getGiftCardPaymentItems()
    {
        return isset($this->GiftCardPaymentItems) ? $this->GiftCardPaymentItems : null;
    }
    /**
     * Set GiftCardPaymentItems 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_GiftCardPayment $giftCardPaymentItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setGiftCardPaymentItems(\patest\StructType\RecordSetOfPrinting_PrintableItem_GiftCardPayment $giftCardPaymentItems = null)
    {
        if (is_null($giftCardPaymentItems) || (is_array($giftCardPaymentItems) && empty($giftCardPaymentItems))) {
            unset($this->GiftCardPaymentItems);
        } else {
            $this->GiftCardPaymentItems = $giftCardPaymentItems;
        }
        return $this;
    }
    /**
     * Get LoyaltyPointsPaymentItems 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_LoyaltyPointsPayment|null
     */
    public function getLoyaltyPointsPaymentItems()
    {
        return isset($this->LoyaltyPointsPaymentItems) ? $this->LoyaltyPointsPaymentItems : null;
    }
    /**
     * Set LoyaltyPointsPaymentItems 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_LoyaltyPointsPayment $loyaltyPointsPaymentItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setLoyaltyPointsPaymentItems(\patest\StructType\RecordSetOfPrinting_PrintableItem_LoyaltyPointsPayment $loyaltyPointsPaymentItems = null)
    {
        if (is_null($loyaltyPointsPaymentItems) || (is_array($loyaltyPointsPaymentItems) && empty($loyaltyPointsPaymentItems))) {
            unset($this->LoyaltyPointsPaymentItems);
        } else {
            $this->LoyaltyPointsPaymentItems = $loyaltyPointsPaymentItems;
        }
        return $this;
    }
    /**
     * Get OnlinePaymentItems 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_OnlinePaymentItem|null
     */
    public function getOnlinePaymentItems()
    {
        return isset($this->OnlinePaymentItems) ? $this->OnlinePaymentItems : null;
    }
    /**
     * Set OnlinePaymentItems 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_OnlinePaymentItem $onlinePaymentItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setOnlinePaymentItems(\patest\StructType\RecordSetOfPrinting_PrintableItem_OnlinePaymentItem $onlinePaymentItems = null)
    {
        if (is_null($onlinePaymentItems) || (is_array($onlinePaymentItems) && empty($onlinePaymentItems))) {
            unset($this->OnlinePaymentItems);
        } else {
            $this->OnlinePaymentItems = $onlinePaymentItems;
        }
        return $this;
    }
    /**
     * Get PaymentsPlanItems 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_PaymentsPlan|null
     */
    public function getPaymentsPlanItems()
    {
        return isset($this->PaymentsPlanItems) ? $this->PaymentsPlanItems : null;
    }
    /**
     * Set PaymentsPlanItems 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_PaymentsPlan $paymentsPlanItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setPaymentsPlanItems(\patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentsPlan $paymentsPlanItems = null)
    {
        if (is_null($paymentsPlanItems) || (is_array($paymentsPlanItems) && empty($paymentsPlanItems))) {
            unset($this->PaymentsPlanItems);
        } else {
            $this->PaymentsPlanItems = $paymentsPlanItems;
        }
        return $this;
    }
    /**
     * Get RefundVoucherPaymentItems 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_PaymentItemBase|null
     */
    public function getRefundVoucherPaymentItems()
    {
        return isset($this->RefundVoucherPaymentItems) ? $this->RefundVoucherPaymentItems : null;
    }
    /**
     * Set RefundVoucherPaymentItems 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_PaymentItemBase $refundVoucherPaymentItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setRefundVoucherPaymentItems(\patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $refundVoucherPaymentItems = null)
    {
        if (is_null($refundVoucherPaymentItems) || (is_array($refundVoucherPaymentItems) && empty($refundVoucherPaymentItems))) {
            unset($this->RefundVoucherPaymentItems);
        } else {
            $this->RefundVoucherPaymentItems = $refundVoucherPaymentItems;
        }
        return $this;
    }
    /**
     * Get SettlementPaymentItems 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_PaymentItemBase|null
     */
    public function getSettlementPaymentItems()
    {
        return isset($this->SettlementPaymentItems) ? $this->SettlementPaymentItems : null;
    }
    /**
     * Set SettlementPaymentItems 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_PaymentItemBase $settlementPaymentItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setSettlementPaymentItems(\patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $settlementPaymentItems = null)
    {
        if (is_null($settlementPaymentItems) || (is_array($settlementPaymentItems) && empty($settlementPaymentItems))) {
            unset($this->SettlementPaymentItems);
        } else {
            $this->SettlementPaymentItems = $settlementPaymentItems;
        }
        return $this;
    }
    /**
     * Get SummaryByPaymentMethod 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\Printing_DataItem_PaymentItemsSummaryByMethod|null
     */
    public function getSummaryByPaymentMethod()
    {
        return isset($this->SummaryByPaymentMethod) ? $this->SummaryByPaymentMethod : null;
    }
    /**
     * Set SummaryByPaymentMethod 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\Printing_DataItem_PaymentItemsSummaryByMethod $summaryByPaymentMethod
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setSummaryByPaymentMethod(\patest\StructType\Printing_DataItem_PaymentItemsSummaryByMethod $summaryByPaymentMethod = null)
    {
        if (is_null($summaryByPaymentMethod) || (is_array($summaryByPaymentMethod) && empty($summaryByPaymentMethod))) {
            unset($this->SummaryByPaymentMethod);
        } else {
            $this->SummaryByPaymentMethod = $summaryByPaymentMethod;
        }
        return $this;
    }
    /**
     * Get TradeInPaymentItems 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_PaymentItemBase|null
     */
    public function getTradeInPaymentItems()
    {
        return isset($this->TradeInPaymentItems) ? $this->TradeInPaymentItems : null;
    }
    /**
     * Set TradeInPaymentItems 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_PaymentItemBase $tradeInPaymentItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setTradeInPaymentItems(\patest\StructType\RecordSetOfPrinting_PrintableItem_PaymentItemBase $tradeInPaymentItems = null)
    {
        if (is_null($tradeInPaymentItems) || (is_array($tradeInPaymentItems) && empty($tradeInPaymentItems))) {
            unset($this->TradeInPaymentItems);
        } else {
            $this->TradeInPaymentItems = $tradeInPaymentItems;
        }
        return $this;
    }
    /**
     * Get UnionSubsidyPaymentItems 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_UnionSubsidyPaymentItem|null
     */
    public function getUnionSubsidyPaymentItems()
    {
        return isset($this->UnionSubsidyPaymentItems) ? $this->UnionSubsidyPaymentItems : null;
    }
    /**
     * Set UnionSubsidyPaymentItems 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_UnionSubsidyPaymentItem $unionSubsidyPaymentItems
     * @return \patest\StructType\Printing_AuxDataItem_PaymentItemsData
     */
    public function setUnionSubsidyPaymentItems(\patest\StructType\RecordSetOfPrinting_PrintableItem_UnionSubsidyPaymentItem $unionSubsidyPaymentItems = null)
    {
        if (is_null($unionSubsidyPaymentItems) || (is_array($unionSubsidyPaymentItems) && empty($unionSubsidyPaymentItems))) {
            unset($this->UnionSubsidyPaymentItems);
        } else {
            $this->UnionSubsidyPaymentItems = $unionSubsidyPaymentItems;
        }
        return $this;
    }
}
