<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Printing.AuxiliaryDataItem.MembershipCardData StructType
 * @subpackage Structs
 */
class Printing_AuxiliaryDataItem_MembershipCardData extends Printing_AuxiliaryDataItem_Base
{
    /**
     * The AllMembershipCards
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership
     */
    public $AllMembershipCards;
    /**
     * The BoughtAndConfirmedSubscriptionCards
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership
     */
    public $BoughtAndConfirmedSubscriptionCards;
    /**
     * The BoughtSubscriptionCards
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership
     */
    public $BoughtSubscriptionCards;
    /**
     * The ConfirmedSubscriptionCards
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership
     */
    public $ConfirmedSubscriptionCards;
    /**
     * The Printed
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership
     */
    public $Printed;
    /**
     * The ReservedSubscriptionCards
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership
     */
    public $ReservedSubscriptionCards;
    /**
     * The ReturnedSubscriptionCards
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership
     */
    public $ReturnedSubscriptionCards;
    /**
     * Constructor method for Printing.AuxiliaryDataItem.MembershipCardData
     * @uses Printing_AuxiliaryDataItem_MembershipCardData::setAllMembershipCards()
     * @uses Printing_AuxiliaryDataItem_MembershipCardData::setBoughtAndConfirmedSubscriptionCards()
     * @uses Printing_AuxiliaryDataItem_MembershipCardData::setBoughtSubscriptionCards()
     * @uses Printing_AuxiliaryDataItem_MembershipCardData::setConfirmedSubscriptionCards()
     * @uses Printing_AuxiliaryDataItem_MembershipCardData::setPrinted()
     * @uses Printing_AuxiliaryDataItem_MembershipCardData::setReservedSubscriptionCards()
     * @uses Printing_AuxiliaryDataItem_MembershipCardData::setReturnedSubscriptionCards()
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $allMembershipCards
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $boughtAndConfirmedSubscriptionCards
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $boughtSubscriptionCards
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $confirmedSubscriptionCards
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $printed
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $reservedSubscriptionCards
     * @param \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $returnedSubscriptionCards
     */
    public function __construct(\patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $allMembershipCards = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $boughtAndConfirmedSubscriptionCards = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $boughtSubscriptionCards = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $confirmedSubscriptionCards = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $printed = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $reservedSubscriptionCards = null, \patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $returnedSubscriptionCards = null)
    {
        $this
            ->setAllMembershipCards($allMembershipCards)
            ->setBoughtAndConfirmedSubscriptionCards($boughtAndConfirmedSubscriptionCards)
            ->setBoughtSubscriptionCards($boughtSubscriptionCards)
            ->setConfirmedSubscriptionCards($confirmedSubscriptionCards)
            ->setPrinted($printed)
            ->setReservedSubscriptionCards($reservedSubscriptionCards)
            ->setReturnedSubscriptionCards($returnedSubscriptionCards);
    }
    /**
     * Get AllMembershipCards 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_Membership|null
     */
    public function getAllMembershipCards()
    {
        return isset($this->AllMembershipCards) ? $this->AllMembershipCards : null;
    }
    /**
     * Set AllMembershipCards 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_Membership $allMembershipCards
     * @return \patest\StructType\Printing_AuxiliaryDataItem_MembershipCardData
     */
    public function setAllMembershipCards(\patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $allMembershipCards = null)
    {
        if (is_null($allMembershipCards) || (is_array($allMembershipCards) && empty($allMembershipCards))) {
            unset($this->AllMembershipCards);
        } else {
            $this->AllMembershipCards = $allMembershipCards;
        }
        return $this;
    }
    /**
     * Get BoughtAndConfirmedSubscriptionCards 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_Membership|null
     */
    public function getBoughtAndConfirmedSubscriptionCards()
    {
        return isset($this->BoughtAndConfirmedSubscriptionCards) ? $this->BoughtAndConfirmedSubscriptionCards : null;
    }
    /**
     * Set BoughtAndConfirmedSubscriptionCards 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_Membership $boughtAndConfirmedSubscriptionCards
     * @return \patest\StructType\Printing_AuxiliaryDataItem_MembershipCardData
     */
    public function setBoughtAndConfirmedSubscriptionCards(\patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $boughtAndConfirmedSubscriptionCards = null)
    {
        if (is_null($boughtAndConfirmedSubscriptionCards) || (is_array($boughtAndConfirmedSubscriptionCards) && empty($boughtAndConfirmedSubscriptionCards))) {
            unset($this->BoughtAndConfirmedSubscriptionCards);
        } else {
            $this->BoughtAndConfirmedSubscriptionCards = $boughtAndConfirmedSubscriptionCards;
        }
        return $this;
    }
    /**
     * Get BoughtSubscriptionCards 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_Membership|null
     */
    public function getBoughtSubscriptionCards()
    {
        return isset($this->BoughtSubscriptionCards) ? $this->BoughtSubscriptionCards : null;
    }
    /**
     * Set BoughtSubscriptionCards 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_Membership $boughtSubscriptionCards
     * @return \patest\StructType\Printing_AuxiliaryDataItem_MembershipCardData
     */
    public function setBoughtSubscriptionCards(\patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $boughtSubscriptionCards = null)
    {
        if (is_null($boughtSubscriptionCards) || (is_array($boughtSubscriptionCards) && empty($boughtSubscriptionCards))) {
            unset($this->BoughtSubscriptionCards);
        } else {
            $this->BoughtSubscriptionCards = $boughtSubscriptionCards;
        }
        return $this;
    }
    /**
     * Get ConfirmedSubscriptionCards 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_Membership|null
     */
    public function getConfirmedSubscriptionCards()
    {
        return isset($this->ConfirmedSubscriptionCards) ? $this->ConfirmedSubscriptionCards : null;
    }
    /**
     * Set ConfirmedSubscriptionCards 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_Membership $confirmedSubscriptionCards
     * @return \patest\StructType\Printing_AuxiliaryDataItem_MembershipCardData
     */
    public function setConfirmedSubscriptionCards(\patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $confirmedSubscriptionCards = null)
    {
        if (is_null($confirmedSubscriptionCards) || (is_array($confirmedSubscriptionCards) && empty($confirmedSubscriptionCards))) {
            unset($this->ConfirmedSubscriptionCards);
        } else {
            $this->ConfirmedSubscriptionCards = $confirmedSubscriptionCards;
        }
        return $this;
    }
    /**
     * Get Printed 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_Membership|null
     */
    public function getPrinted()
    {
        return isset($this->Printed) ? $this->Printed : null;
    }
    /**
     * Set Printed 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_Membership $printed
     * @return \patest\StructType\Printing_AuxiliaryDataItem_MembershipCardData
     */
    public function setPrinted(\patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $printed = null)
    {
        if (is_null($printed) || (is_array($printed) && empty($printed))) {
            unset($this->Printed);
        } else {
            $this->Printed = $printed;
        }
        return $this;
    }
    /**
     * Get ReservedSubscriptionCards 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_Membership|null
     */
    public function getReservedSubscriptionCards()
    {
        return isset($this->ReservedSubscriptionCards) ? $this->ReservedSubscriptionCards : null;
    }
    /**
     * Set ReservedSubscriptionCards 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_Membership $reservedSubscriptionCards
     * @return \patest\StructType\Printing_AuxiliaryDataItem_MembershipCardData
     */
    public function setReservedSubscriptionCards(\patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $reservedSubscriptionCards = null)
    {
        if (is_null($reservedSubscriptionCards) || (is_array($reservedSubscriptionCards) && empty($reservedSubscriptionCards))) {
            unset($this->ReservedSubscriptionCards);
        } else {
            $this->ReservedSubscriptionCards = $reservedSubscriptionCards;
        }
        return $this;
    }
    /**
     * Get ReturnedSubscriptionCards 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_Membership|null
     */
    public function getReturnedSubscriptionCards()
    {
        return isset($this->ReturnedSubscriptionCards) ? $this->ReturnedSubscriptionCards : null;
    }
    /**
     * Set ReturnedSubscriptionCards 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_Membership $returnedSubscriptionCards
     * @return \patest\StructType\Printing_AuxiliaryDataItem_MembershipCardData
     */
    public function setReturnedSubscriptionCards(\patest\StructType\RecordSetOfPrinting_PrintableItem_Membership $returnedSubscriptionCards = null)
    {
        if (is_null($returnedSubscriptionCards) || (is_array($returnedSubscriptionCards) && empty($returnedSubscriptionCards))) {
            unset($this->ReturnedSubscriptionCards);
        } else {
            $this->ReturnedSubscriptionCards = $returnedSubscriptionCards;
        }
        return $this;
    }
}
