<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for TransactionCriteria StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:TransactionCriteria
 * @subpackage Structs
 */
class TransactionCriteria extends AbstractCriteria
{
    /**
     * The AffiliateAccountId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $AffiliateAccountId;
    /**
     * The ApplicationChannel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfstring
     */
    public $ApplicationChannel;
    /**
     * The ContactId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $ContactId;
    /**
     * The ContainsDonations
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfboolean
     */
    public $ContainsDonations;
    /**
     * The ContainsGiftVouchers
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfboolean
     */
    public $ContainsGiftVouchers;
    /**
     * The ContainsMemberships
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfboolean
     */
    public $ContainsMemberships;
    /**
     * The ContainsMerchandise
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfboolean
     */
    public $ContainsMerchandise;
    /**
     * The ContainsPayments
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfboolean
     */
    public $ContainsPayments;
    /**
     * The ContainsReservations
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfboolean
     */
    public $ContainsReservations;
    /**
     * The ContainsSubscriptions
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfboolean
     */
    public $ContainsSubscriptions;
    /**
     * The ContainsTickets
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfboolean
     */
    public $ContainsTickets;
    /**
     * The EventId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $EventId;
    /**
     * The ExpiresOn
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfSearchReservationInfo8Q8HnG_P7
     */
    public $ExpiresOn;
    /**
     * The FilterOutGroupSale
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfboolean
     */
    public $FilterOutGroupSale;
    /**
     * The FromDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfdateTime
     */
    public $FromDate;
    /**
     * The GroupOrderId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfint
     */
    public $GroupOrderId;
    /**
     * The ItemType
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfint
     */
    public $ItemType;
    /**
     * The OnBehalfOfAccountId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $OnBehalfOfAccountId;
    /**
     * The PackageId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $PackageId;
    /**
     * The ReservationExpiryDateFrom
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfdateTime
     */
    public $ReservationExpiryDateFrom;
    /**
     * The ReservationExpiryDateTo
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfdateTime
     */
    public $ReservationExpiryDateTo;
    /**
     * The SGOrderId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfstring
     */
    public $SGOrderId;
    /**
     * The SaleModeId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $SaleModeId;
    /**
     * The SalesRepId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $SalesRepId;
    /**
     * The SellerBranchId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $SellerBranchId;
    /**
     * The SiteId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $SiteId;
    /**
     * The TransactionGuid
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $TransactionGuid;
    /**
     * The TransactionIds
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfstring
     */
    public $TransactionIds;
    /**
     * The TransactionNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfint
     */
    public $TransactionNumber;
    /**
     * The TransactionReferenceNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOflong
     */
    public $TransactionReferenceNumber;
    /**
     * The TransactionState
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfTransactionState8Q8HnG_P7
     */
    public $TransactionState;
    /**
     * The TransactionStateList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfstring
     */
    public $TransactionStateList;
    /**
     * The UntilDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfdateTime
     */
    public $UntilDate;
    /**
     * The UserId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $UserId;
    /**
     * The Active
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfboolean
     */
    public $Active;
    /**
     * The TransactionAmountFrom
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfdouble
     */
    public $TransactionAmountFrom;
    /**
     * The TransactionAmountTo
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfdouble
     */
    public $TransactionAmountTo;
    /**
     * Constructor method for TransactionCriteria
     * @uses TransactionCriteria::setAffiliateAccountId()
     * @uses TransactionCriteria::setApplicationChannel()
     * @uses TransactionCriteria::setContactId()
     * @uses TransactionCriteria::setContainsDonations()
     * @uses TransactionCriteria::setContainsGiftVouchers()
     * @uses TransactionCriteria::setContainsMemberships()
     * @uses TransactionCriteria::setContainsMerchandise()
     * @uses TransactionCriteria::setContainsPayments()
     * @uses TransactionCriteria::setContainsReservations()
     * @uses TransactionCriteria::setContainsSubscriptions()
     * @uses TransactionCriteria::setContainsTickets()
     * @uses TransactionCriteria::setEventId()
     * @uses TransactionCriteria::setExpiresOn()
     * @uses TransactionCriteria::setFilterOutGroupSale()
     * @uses TransactionCriteria::setFromDate()
     * @uses TransactionCriteria::setGroupOrderId()
     * @uses TransactionCriteria::setItemType()
     * @uses TransactionCriteria::setOnBehalfOfAccountId()
     * @uses TransactionCriteria::setPackageId()
     * @uses TransactionCriteria::setReservationExpiryDateFrom()
     * @uses TransactionCriteria::setReservationExpiryDateTo()
     * @uses TransactionCriteria::setSGOrderId()
     * @uses TransactionCriteria::setSaleModeId()
     * @uses TransactionCriteria::setSalesRepId()
     * @uses TransactionCriteria::setSellerBranchId()
     * @uses TransactionCriteria::setSiteId()
     * @uses TransactionCriteria::setTransactionGuid()
     * @uses TransactionCriteria::setTransactionIds()
     * @uses TransactionCriteria::setTransactionNumber()
     * @uses TransactionCriteria::setTransactionReferenceNumber()
     * @uses TransactionCriteria::setTransactionState()
     * @uses TransactionCriteria::setTransactionStateList()
     * @uses TransactionCriteria::setUntilDate()
     * @uses TransactionCriteria::setUserId()
     * @uses TransactionCriteria::setActive()
     * @uses TransactionCriteria::setTransactionAmountFrom()
     * @uses TransactionCriteria::setTransactionAmountTo()
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $affiliateAccountId
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $applicationChannel
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $contactId
     * @param \patest\StructType\SinglePropertyCriteriaOfboolean $containsDonations
     * @param \patest\StructType\SinglePropertyCriteriaOfboolean $containsGiftVouchers
     * @param \patest\StructType\SinglePropertyCriteriaOfboolean $containsMemberships
     * @param \patest\StructType\SinglePropertyCriteriaOfboolean $containsMerchandise
     * @param \patest\StructType\SinglePropertyCriteriaOfboolean $containsPayments
     * @param \patest\StructType\SinglePropertyCriteriaOfboolean $containsReservations
     * @param \patest\StructType\SinglePropertyCriteriaOfboolean $containsSubscriptions
     * @param \patest\StructType\SinglePropertyCriteriaOfboolean $containsTickets
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $eventId
     * @param \patest\StructType\SinglePropertyCriteriaOfSearchReservationInfo8Q8HnG_P7 $expiresOn
     * @param \patest\StructType\SinglePropertyCriteriaOfboolean $filterOutGroupSale
     * @param \patest\StructType\SinglePropertyCriteriaOfdateTime $fromDate
     * @param \patest\StructType\SinglePropertyCriteriaOfint $groupOrderId
     * @param \patest\StructType\SinglePropertyCriteriaOfint $itemType
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $onBehalfOfAccountId
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $packageId
     * @param \patest\StructType\SinglePropertyCriteriaOfdateTime $reservationExpiryDateFrom
     * @param \patest\StructType\SinglePropertyCriteriaOfdateTime $reservationExpiryDateTo
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $sGOrderId
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $saleModeId
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $salesRepId
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $sellerBranchId
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $siteId
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $transactionGuid
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $transactionIds
     * @param \patest\StructType\SinglePropertyCriteriaOfint $transactionNumber
     * @param \patest\StructType\SinglePropertyCriteriaOflong $transactionReferenceNumber
     * @param \patest\StructType\SinglePropertyCriteriaOfTransactionState8Q8HnG_P7 $transactionState
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $transactionStateList
     * @param \patest\StructType\SinglePropertyCriteriaOfdateTime $untilDate
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $userId
     * @param \patest\StructType\SinglePropertyCriteriaOfboolean $active
     * @param \patest\StructType\SinglePropertyCriteriaOfdouble $transactionAmountFrom
     * @param \patest\StructType\SinglePropertyCriteriaOfdouble $transactionAmountTo
     */
    public function __construct(\patest\StructType\SinglePropertyCriteriaOfguid $affiliateAccountId = null, \patest\StructType\SinglePropertyCriteriaOfstring $applicationChannel = null, \patest\StructType\SinglePropertyCriteriaOfguid $contactId = null, \patest\StructType\SinglePropertyCriteriaOfboolean $containsDonations = null, \patest\StructType\SinglePropertyCriteriaOfboolean $containsGiftVouchers = null, \patest\StructType\SinglePropertyCriteriaOfboolean $containsMemberships = null, \patest\StructType\SinglePropertyCriteriaOfboolean $containsMerchandise = null, \patest\StructType\SinglePropertyCriteriaOfboolean $containsPayments = null, \patest\StructType\SinglePropertyCriteriaOfboolean $containsReservations = null, \patest\StructType\SinglePropertyCriteriaOfboolean $containsSubscriptions = null, \patest\StructType\SinglePropertyCriteriaOfboolean $containsTickets = null, \patest\StructType\SinglePropertyCriteriaOfguid $eventId = null, \patest\StructType\SinglePropertyCriteriaOfSearchReservationInfo8Q8HnG_P7 $expiresOn = null, \patest\StructType\SinglePropertyCriteriaOfboolean $filterOutGroupSale = null, \patest\StructType\SinglePropertyCriteriaOfdateTime $fromDate = null, \patest\StructType\SinglePropertyCriteriaOfint $groupOrderId = null, \patest\StructType\SinglePropertyCriteriaOfint $itemType = null, \patest\StructType\SinglePropertyCriteriaOfguid $onBehalfOfAccountId = null, \patest\StructType\SinglePropertyCriteriaOfguid $packageId = null, \patest\StructType\SinglePropertyCriteriaOfdateTime $reservationExpiryDateFrom = null, \patest\StructType\SinglePropertyCriteriaOfdateTime $reservationExpiryDateTo = null, \patest\StructType\SinglePropertyCriteriaOfstring $sGOrderId = null, \patest\StructType\SinglePropertyCriteriaOfguid $saleModeId = null, \patest\StructType\SinglePropertyCriteriaOfguid $salesRepId = null, \patest\StructType\SinglePropertyCriteriaOfguid $sellerBranchId = null, \patest\StructType\SinglePropertyCriteriaOfguid $siteId = null, \patest\StructType\SinglePropertyCriteriaOfguid $transactionGuid = null, \patest\StructType\SinglePropertyCriteriaOfstring $transactionIds = null, \patest\StructType\SinglePropertyCriteriaOfint $transactionNumber = null, \patest\StructType\SinglePropertyCriteriaOflong $transactionReferenceNumber = null, \patest\StructType\SinglePropertyCriteriaOfTransactionState8Q8HnG_P7 $transactionState = null, \patest\StructType\SinglePropertyCriteriaOfstring $transactionStateList = null, \patest\StructType\SinglePropertyCriteriaOfdateTime $untilDate = null, \patest\StructType\SinglePropertyCriteriaOfguid $userId = null, \patest\StructType\SinglePropertyCriteriaOfboolean $active = null, \patest\StructType\SinglePropertyCriteriaOfdouble $transactionAmountFrom = null, \patest\StructType\SinglePropertyCriteriaOfdouble $transactionAmountTo = null)
    {
        $this
            ->setAffiliateAccountId($affiliateAccountId)
            ->setApplicationChannel($applicationChannel)
            ->setContactId($contactId)
            ->setContainsDonations($containsDonations)
            ->setContainsGiftVouchers($containsGiftVouchers)
            ->setContainsMemberships($containsMemberships)
            ->setContainsMerchandise($containsMerchandise)
            ->setContainsPayments($containsPayments)
            ->setContainsReservations($containsReservations)
            ->setContainsSubscriptions($containsSubscriptions)
            ->setContainsTickets($containsTickets)
            ->setEventId($eventId)
            ->setExpiresOn($expiresOn)
            ->setFilterOutGroupSale($filterOutGroupSale)
            ->setFromDate($fromDate)
            ->setGroupOrderId($groupOrderId)
            ->setItemType($itemType)
            ->setOnBehalfOfAccountId($onBehalfOfAccountId)
            ->setPackageId($packageId)
            ->setReservationExpiryDateFrom($reservationExpiryDateFrom)
            ->setReservationExpiryDateTo($reservationExpiryDateTo)
            ->setSGOrderId($sGOrderId)
            ->setSaleModeId($saleModeId)
            ->setSalesRepId($salesRepId)
            ->setSellerBranchId($sellerBranchId)
            ->setSiteId($siteId)
            ->setTransactionGuid($transactionGuid)
            ->setTransactionIds($transactionIds)
            ->setTransactionNumber($transactionNumber)
            ->setTransactionReferenceNumber($transactionReferenceNumber)
            ->setTransactionState($transactionState)
            ->setTransactionStateList($transactionStateList)
            ->setUntilDate($untilDate)
            ->setUserId($userId)
            ->setActive($active)
            ->setTransactionAmountFrom($transactionAmountFrom)
            ->setTransactionAmountTo($transactionAmountTo);
    }
    /**
     * Get AffiliateAccountId 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\SinglePropertyCriteriaOfguid|null
     */
    public function getAffiliateAccountId()
    {
        return isset($this->AffiliateAccountId) ? $this->AffiliateAccountId : null;
    }
    /**
     * Set AffiliateAccountId 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\SinglePropertyCriteriaOfguid $affiliateAccountId
     * @return \patest\StructType\TransactionCriteria
     */
    public function setAffiliateAccountId(\patest\StructType\SinglePropertyCriteriaOfguid $affiliateAccountId = null)
    {
        if (is_null($affiliateAccountId) || (is_array($affiliateAccountId) && empty($affiliateAccountId))) {
            unset($this->AffiliateAccountId);
        } else {
            $this->AffiliateAccountId = $affiliateAccountId;
        }
        return $this;
    }
    /**
     * Get ApplicationChannel 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\SinglePropertyCriteriaOfstring|null
     */
    public function getApplicationChannel()
    {
        return isset($this->ApplicationChannel) ? $this->ApplicationChannel : null;
    }
    /**
     * Set ApplicationChannel 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\SinglePropertyCriteriaOfstring $applicationChannel
     * @return \patest\StructType\TransactionCriteria
     */
    public function setApplicationChannel(\patest\StructType\SinglePropertyCriteriaOfstring $applicationChannel = null)
    {
        if (is_null($applicationChannel) || (is_array($applicationChannel) && empty($applicationChannel))) {
            unset($this->ApplicationChannel);
        } else {
            $this->ApplicationChannel = $applicationChannel;
        }
        return $this;
    }
    /**
     * Get ContactId 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\SinglePropertyCriteriaOfguid|null
     */
    public function getContactId()
    {
        return isset($this->ContactId) ? $this->ContactId : null;
    }
    /**
     * Set ContactId 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\SinglePropertyCriteriaOfguid $contactId
     * @return \patest\StructType\TransactionCriteria
     */
    public function setContactId(\patest\StructType\SinglePropertyCriteriaOfguid $contactId = null)
    {
        if (is_null($contactId) || (is_array($contactId) && empty($contactId))) {
            unset($this->ContactId);
        } else {
            $this->ContactId = $contactId;
        }
        return $this;
    }
    /**
     * Get ContainsDonations 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\SinglePropertyCriteriaOfboolean|null
     */
    public function getContainsDonations()
    {
        return isset($this->ContainsDonations) ? $this->ContainsDonations : null;
    }
    /**
     * Set ContainsDonations 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\SinglePropertyCriteriaOfboolean $containsDonations
     * @return \patest\StructType\TransactionCriteria
     */
    public function setContainsDonations(\patest\StructType\SinglePropertyCriteriaOfboolean $containsDonations = null)
    {
        if (is_null($containsDonations) || (is_array($containsDonations) && empty($containsDonations))) {
            unset($this->ContainsDonations);
        } else {
            $this->ContainsDonations = $containsDonations;
        }
        return $this;
    }
    /**
     * Get ContainsGiftVouchers 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\SinglePropertyCriteriaOfboolean|null
     */
    public function getContainsGiftVouchers()
    {
        return isset($this->ContainsGiftVouchers) ? $this->ContainsGiftVouchers : null;
    }
    /**
     * Set ContainsGiftVouchers 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\SinglePropertyCriteriaOfboolean $containsGiftVouchers
     * @return \patest\StructType\TransactionCriteria
     */
    public function setContainsGiftVouchers(\patest\StructType\SinglePropertyCriteriaOfboolean $containsGiftVouchers = null)
    {
        if (is_null($containsGiftVouchers) || (is_array($containsGiftVouchers) && empty($containsGiftVouchers))) {
            unset($this->ContainsGiftVouchers);
        } else {
            $this->ContainsGiftVouchers = $containsGiftVouchers;
        }
        return $this;
    }
    /**
     * Get ContainsMemberships 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\SinglePropertyCriteriaOfboolean|null
     */
    public function getContainsMemberships()
    {
        return isset($this->ContainsMemberships) ? $this->ContainsMemberships : null;
    }
    /**
     * Set ContainsMemberships 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\SinglePropertyCriteriaOfboolean $containsMemberships
     * @return \patest\StructType\TransactionCriteria
     */
    public function setContainsMemberships(\patest\StructType\SinglePropertyCriteriaOfboolean $containsMemberships = null)
    {
        if (is_null($containsMemberships) || (is_array($containsMemberships) && empty($containsMemberships))) {
            unset($this->ContainsMemberships);
        } else {
            $this->ContainsMemberships = $containsMemberships;
        }
        return $this;
    }
    /**
     * Get ContainsMerchandise 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\SinglePropertyCriteriaOfboolean|null
     */
    public function getContainsMerchandise()
    {
        return isset($this->ContainsMerchandise) ? $this->ContainsMerchandise : null;
    }
    /**
     * Set ContainsMerchandise 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\SinglePropertyCriteriaOfboolean $containsMerchandise
     * @return \patest\StructType\TransactionCriteria
     */
    public function setContainsMerchandise(\patest\StructType\SinglePropertyCriteriaOfboolean $containsMerchandise = null)
    {
        if (is_null($containsMerchandise) || (is_array($containsMerchandise) && empty($containsMerchandise))) {
            unset($this->ContainsMerchandise);
        } else {
            $this->ContainsMerchandise = $containsMerchandise;
        }
        return $this;
    }
    /**
     * Get ContainsPayments 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\SinglePropertyCriteriaOfboolean|null
     */
    public function getContainsPayments()
    {
        return isset($this->ContainsPayments) ? $this->ContainsPayments : null;
    }
    /**
     * Set ContainsPayments 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\SinglePropertyCriteriaOfboolean $containsPayments
     * @return \patest\StructType\TransactionCriteria
     */
    public function setContainsPayments(\patest\StructType\SinglePropertyCriteriaOfboolean $containsPayments = null)
    {
        if (is_null($containsPayments) || (is_array($containsPayments) && empty($containsPayments))) {
            unset($this->ContainsPayments);
        } else {
            $this->ContainsPayments = $containsPayments;
        }
        return $this;
    }
    /**
     * Get ContainsReservations 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\SinglePropertyCriteriaOfboolean|null
     */
    public function getContainsReservations()
    {
        return isset($this->ContainsReservations) ? $this->ContainsReservations : null;
    }
    /**
     * Set ContainsReservations 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\SinglePropertyCriteriaOfboolean $containsReservations
     * @return \patest\StructType\TransactionCriteria
     */
    public function setContainsReservations(\patest\StructType\SinglePropertyCriteriaOfboolean $containsReservations = null)
    {
        if (is_null($containsReservations) || (is_array($containsReservations) && empty($containsReservations))) {
            unset($this->ContainsReservations);
        } else {
            $this->ContainsReservations = $containsReservations;
        }
        return $this;
    }
    /**
     * Get ContainsSubscriptions 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\SinglePropertyCriteriaOfboolean|null
     */
    public function getContainsSubscriptions()
    {
        return isset($this->ContainsSubscriptions) ? $this->ContainsSubscriptions : null;
    }
    /**
     * Set ContainsSubscriptions 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\SinglePropertyCriteriaOfboolean $containsSubscriptions
     * @return \patest\StructType\TransactionCriteria
     */
    public function setContainsSubscriptions(\patest\StructType\SinglePropertyCriteriaOfboolean $containsSubscriptions = null)
    {
        if (is_null($containsSubscriptions) || (is_array($containsSubscriptions) && empty($containsSubscriptions))) {
            unset($this->ContainsSubscriptions);
        } else {
            $this->ContainsSubscriptions = $containsSubscriptions;
        }
        return $this;
    }
    /**
     * Get ContainsTickets 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\SinglePropertyCriteriaOfboolean|null
     */
    public function getContainsTickets()
    {
        return isset($this->ContainsTickets) ? $this->ContainsTickets : null;
    }
    /**
     * Set ContainsTickets 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\SinglePropertyCriteriaOfboolean $containsTickets
     * @return \patest\StructType\TransactionCriteria
     */
    public function setContainsTickets(\patest\StructType\SinglePropertyCriteriaOfboolean $containsTickets = null)
    {
        if (is_null($containsTickets) || (is_array($containsTickets) && empty($containsTickets))) {
            unset($this->ContainsTickets);
        } else {
            $this->ContainsTickets = $containsTickets;
        }
        return $this;
    }
    /**
     * Get EventId 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\SinglePropertyCriteriaOfguid|null
     */
    public function getEventId()
    {
        return isset($this->EventId) ? $this->EventId : null;
    }
    /**
     * Set EventId 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\SinglePropertyCriteriaOfguid $eventId
     * @return \patest\StructType\TransactionCriteria
     */
    public function setEventId(\patest\StructType\SinglePropertyCriteriaOfguid $eventId = null)
    {
        if (is_null($eventId) || (is_array($eventId) && empty($eventId))) {
            unset($this->EventId);
        } else {
            $this->EventId = $eventId;
        }
        return $this;
    }
    /**
     * Get ExpiresOn 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\SinglePropertyCriteriaOfSearchReservationInfo8Q8HnG_P7|null
     */
    public function getExpiresOn()
    {
        return isset($this->ExpiresOn) ? $this->ExpiresOn : null;
    }
    /**
     * Set ExpiresOn 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\SinglePropertyCriteriaOfSearchReservationInfo8Q8HnG_P7 $expiresOn
     * @return \patest\StructType\TransactionCriteria
     */
    public function setExpiresOn(\patest\StructType\SinglePropertyCriteriaOfSearchReservationInfo8Q8HnG_P7 $expiresOn = null)
    {
        if (is_null($expiresOn) || (is_array($expiresOn) && empty($expiresOn))) {
            unset($this->ExpiresOn);
        } else {
            $this->ExpiresOn = $expiresOn;
        }
        return $this;
    }
    /**
     * Get FilterOutGroupSale 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\SinglePropertyCriteriaOfboolean|null
     */
    public function getFilterOutGroupSale()
    {
        return isset($this->FilterOutGroupSale) ? $this->FilterOutGroupSale : null;
    }
    /**
     * Set FilterOutGroupSale 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\SinglePropertyCriteriaOfboolean $filterOutGroupSale
     * @return \patest\StructType\TransactionCriteria
     */
    public function setFilterOutGroupSale(\patest\StructType\SinglePropertyCriteriaOfboolean $filterOutGroupSale = null)
    {
        if (is_null($filterOutGroupSale) || (is_array($filterOutGroupSale) && empty($filterOutGroupSale))) {
            unset($this->FilterOutGroupSale);
        } else {
            $this->FilterOutGroupSale = $filterOutGroupSale;
        }
        return $this;
    }
    /**
     * Get FromDate 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\SinglePropertyCriteriaOfdateTime|null
     */
    public function getFromDate()
    {
        return isset($this->FromDate) ? $this->FromDate : null;
    }
    /**
     * Set FromDate 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\SinglePropertyCriteriaOfdateTime $fromDate
     * @return \patest\StructType\TransactionCriteria
     */
    public function setFromDate(\patest\StructType\SinglePropertyCriteriaOfdateTime $fromDate = null)
    {
        if (is_null($fromDate) || (is_array($fromDate) && empty($fromDate))) {
            unset($this->FromDate);
        } else {
            $this->FromDate = $fromDate;
        }
        return $this;
    }
    /**
     * Get GroupOrderId 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\SinglePropertyCriteriaOfint|null
     */
    public function getGroupOrderId()
    {
        return isset($this->GroupOrderId) ? $this->GroupOrderId : null;
    }
    /**
     * Set GroupOrderId 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\SinglePropertyCriteriaOfint $groupOrderId
     * @return \patest\StructType\TransactionCriteria
     */
    public function setGroupOrderId(\patest\StructType\SinglePropertyCriteriaOfint $groupOrderId = null)
    {
        if (is_null($groupOrderId) || (is_array($groupOrderId) && empty($groupOrderId))) {
            unset($this->GroupOrderId);
        } else {
            $this->GroupOrderId = $groupOrderId;
        }
        return $this;
    }
    /**
     * Get ItemType 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\SinglePropertyCriteriaOfint|null
     */
    public function getItemType()
    {
        return isset($this->ItemType) ? $this->ItemType : null;
    }
    /**
     * Set ItemType 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\SinglePropertyCriteriaOfint $itemType
     * @return \patest\StructType\TransactionCriteria
     */
    public function setItemType(\patest\StructType\SinglePropertyCriteriaOfint $itemType = null)
    {
        if (is_null($itemType) || (is_array($itemType) && empty($itemType))) {
            unset($this->ItemType);
        } else {
            $this->ItemType = $itemType;
        }
        return $this;
    }
    /**
     * Get OnBehalfOfAccountId 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\SinglePropertyCriteriaOfguid|null
     */
    public function getOnBehalfOfAccountId()
    {
        return isset($this->OnBehalfOfAccountId) ? $this->OnBehalfOfAccountId : null;
    }
    /**
     * Set OnBehalfOfAccountId 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\SinglePropertyCriteriaOfguid $onBehalfOfAccountId
     * @return \patest\StructType\TransactionCriteria
     */
    public function setOnBehalfOfAccountId(\patest\StructType\SinglePropertyCriteriaOfguid $onBehalfOfAccountId = null)
    {
        if (is_null($onBehalfOfAccountId) || (is_array($onBehalfOfAccountId) && empty($onBehalfOfAccountId))) {
            unset($this->OnBehalfOfAccountId);
        } else {
            $this->OnBehalfOfAccountId = $onBehalfOfAccountId;
        }
        return $this;
    }
    /**
     * Get PackageId 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\SinglePropertyCriteriaOfguid|null
     */
    public function getPackageId()
    {
        return isset($this->PackageId) ? $this->PackageId : null;
    }
    /**
     * Set PackageId 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\SinglePropertyCriteriaOfguid $packageId
     * @return \patest\StructType\TransactionCriteria
     */
    public function setPackageId(\patest\StructType\SinglePropertyCriteriaOfguid $packageId = null)
    {
        if (is_null($packageId) || (is_array($packageId) && empty($packageId))) {
            unset($this->PackageId);
        } else {
            $this->PackageId = $packageId;
        }
        return $this;
    }
    /**
     * Get ReservationExpiryDateFrom 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\SinglePropertyCriteriaOfdateTime|null
     */
    public function getReservationExpiryDateFrom()
    {
        return isset($this->ReservationExpiryDateFrom) ? $this->ReservationExpiryDateFrom : null;
    }
    /**
     * Set ReservationExpiryDateFrom 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\SinglePropertyCriteriaOfdateTime $reservationExpiryDateFrom
     * @return \patest\StructType\TransactionCriteria
     */
    public function setReservationExpiryDateFrom(\patest\StructType\SinglePropertyCriteriaOfdateTime $reservationExpiryDateFrom = null)
    {
        if (is_null($reservationExpiryDateFrom) || (is_array($reservationExpiryDateFrom) && empty($reservationExpiryDateFrom))) {
            unset($this->ReservationExpiryDateFrom);
        } else {
            $this->ReservationExpiryDateFrom = $reservationExpiryDateFrom;
        }
        return $this;
    }
    /**
     * Get ReservationExpiryDateTo 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\SinglePropertyCriteriaOfdateTime|null
     */
    public function getReservationExpiryDateTo()
    {
        return isset($this->ReservationExpiryDateTo) ? $this->ReservationExpiryDateTo : null;
    }
    /**
     * Set ReservationExpiryDateTo 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\SinglePropertyCriteriaOfdateTime $reservationExpiryDateTo
     * @return \patest\StructType\TransactionCriteria
     */
    public function setReservationExpiryDateTo(\patest\StructType\SinglePropertyCriteriaOfdateTime $reservationExpiryDateTo = null)
    {
        if (is_null($reservationExpiryDateTo) || (is_array($reservationExpiryDateTo) && empty($reservationExpiryDateTo))) {
            unset($this->ReservationExpiryDateTo);
        } else {
            $this->ReservationExpiryDateTo = $reservationExpiryDateTo;
        }
        return $this;
    }
    /**
     * Get SGOrderId 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\SinglePropertyCriteriaOfstring|null
     */
    public function getSGOrderId()
    {
        return isset($this->SGOrderId) ? $this->SGOrderId : null;
    }
    /**
     * Set SGOrderId 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\SinglePropertyCriteriaOfstring $sGOrderId
     * @return \patest\StructType\TransactionCriteria
     */
    public function setSGOrderId(\patest\StructType\SinglePropertyCriteriaOfstring $sGOrderId = null)
    {
        if (is_null($sGOrderId) || (is_array($sGOrderId) && empty($sGOrderId))) {
            unset($this->SGOrderId);
        } else {
            $this->SGOrderId = $sGOrderId;
        }
        return $this;
    }
    /**
     * Get SaleModeId 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\SinglePropertyCriteriaOfguid|null
     */
    public function getSaleModeId()
    {
        return isset($this->SaleModeId) ? $this->SaleModeId : null;
    }
    /**
     * Set SaleModeId 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\SinglePropertyCriteriaOfguid $saleModeId
     * @return \patest\StructType\TransactionCriteria
     */
    public function setSaleModeId(\patest\StructType\SinglePropertyCriteriaOfguid $saleModeId = null)
    {
        if (is_null($saleModeId) || (is_array($saleModeId) && empty($saleModeId))) {
            unset($this->SaleModeId);
        } else {
            $this->SaleModeId = $saleModeId;
        }
        return $this;
    }
    /**
     * Get SalesRepId 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\SinglePropertyCriteriaOfguid|null
     */
    public function getSalesRepId()
    {
        return isset($this->SalesRepId) ? $this->SalesRepId : null;
    }
    /**
     * Set SalesRepId 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\SinglePropertyCriteriaOfguid $salesRepId
     * @return \patest\StructType\TransactionCriteria
     */
    public function setSalesRepId(\patest\StructType\SinglePropertyCriteriaOfguid $salesRepId = null)
    {
        if (is_null($salesRepId) || (is_array($salesRepId) && empty($salesRepId))) {
            unset($this->SalesRepId);
        } else {
            $this->SalesRepId = $salesRepId;
        }
        return $this;
    }
    /**
     * Get SellerBranchId 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\SinglePropertyCriteriaOfguid|null
     */
    public function getSellerBranchId()
    {
        return isset($this->SellerBranchId) ? $this->SellerBranchId : null;
    }
    /**
     * Set SellerBranchId 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\SinglePropertyCriteriaOfguid $sellerBranchId
     * @return \patest\StructType\TransactionCriteria
     */
    public function setSellerBranchId(\patest\StructType\SinglePropertyCriteriaOfguid $sellerBranchId = null)
    {
        if (is_null($sellerBranchId) || (is_array($sellerBranchId) && empty($sellerBranchId))) {
            unset($this->SellerBranchId);
        } else {
            $this->SellerBranchId = $sellerBranchId;
        }
        return $this;
    }
    /**
     * Get SiteId 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\SinglePropertyCriteriaOfguid|null
     */
    public function getSiteId()
    {
        return isset($this->SiteId) ? $this->SiteId : null;
    }
    /**
     * Set SiteId 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\SinglePropertyCriteriaOfguid $siteId
     * @return \patest\StructType\TransactionCriteria
     */
    public function setSiteId(\patest\StructType\SinglePropertyCriteriaOfguid $siteId = null)
    {
        if (is_null($siteId) || (is_array($siteId) && empty($siteId))) {
            unset($this->SiteId);
        } else {
            $this->SiteId = $siteId;
        }
        return $this;
    }
    /**
     * Get TransactionGuid 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\SinglePropertyCriteriaOfguid|null
     */
    public function getTransactionGuid()
    {
        return isset($this->TransactionGuid) ? $this->TransactionGuid : null;
    }
    /**
     * Set TransactionGuid 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\SinglePropertyCriteriaOfguid $transactionGuid
     * @return \patest\StructType\TransactionCriteria
     */
    public function setTransactionGuid(\patest\StructType\SinglePropertyCriteriaOfguid $transactionGuid = null)
    {
        if (is_null($transactionGuid) || (is_array($transactionGuid) && empty($transactionGuid))) {
            unset($this->TransactionGuid);
        } else {
            $this->TransactionGuid = $transactionGuid;
        }
        return $this;
    }
    /**
     * Get TransactionIds 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\SinglePropertyCriteriaOfstring|null
     */
    public function getTransactionIds()
    {
        return isset($this->TransactionIds) ? $this->TransactionIds : null;
    }
    /**
     * Set TransactionIds 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\SinglePropertyCriteriaOfstring $transactionIds
     * @return \patest\StructType\TransactionCriteria
     */
    public function setTransactionIds(\patest\StructType\SinglePropertyCriteriaOfstring $transactionIds = null)
    {
        if (is_null($transactionIds) || (is_array($transactionIds) && empty($transactionIds))) {
            unset($this->TransactionIds);
        } else {
            $this->TransactionIds = $transactionIds;
        }
        return $this;
    }
    /**
     * Get TransactionNumber 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\SinglePropertyCriteriaOfint|null
     */
    public function getTransactionNumber()
    {
        return isset($this->TransactionNumber) ? $this->TransactionNumber : null;
    }
    /**
     * Set TransactionNumber 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\SinglePropertyCriteriaOfint $transactionNumber
     * @return \patest\StructType\TransactionCriteria
     */
    public function setTransactionNumber(\patest\StructType\SinglePropertyCriteriaOfint $transactionNumber = null)
    {
        if (is_null($transactionNumber) || (is_array($transactionNumber) && empty($transactionNumber))) {
            unset($this->TransactionNumber);
        } else {
            $this->TransactionNumber = $transactionNumber;
        }
        return $this;
    }
    /**
     * Get TransactionReferenceNumber 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\SinglePropertyCriteriaOflong|null
     */
    public function getTransactionReferenceNumber()
    {
        return isset($this->TransactionReferenceNumber) ? $this->TransactionReferenceNumber : null;
    }
    /**
     * Set TransactionReferenceNumber 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\SinglePropertyCriteriaOflong $transactionReferenceNumber
     * @return \patest\StructType\TransactionCriteria
     */
    public function setTransactionReferenceNumber(\patest\StructType\SinglePropertyCriteriaOflong $transactionReferenceNumber = null)
    {
        if (is_null($transactionReferenceNumber) || (is_array($transactionReferenceNumber) && empty($transactionReferenceNumber))) {
            unset($this->TransactionReferenceNumber);
        } else {
            $this->TransactionReferenceNumber = $transactionReferenceNumber;
        }
        return $this;
    }
    /**
     * Get TransactionState 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\SinglePropertyCriteriaOfTransactionState8Q8HnG_P7|null
     */
    public function getTransactionState()
    {
        return isset($this->TransactionState) ? $this->TransactionState : null;
    }
    /**
     * Set TransactionState 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\SinglePropertyCriteriaOfTransactionState8Q8HnG_P7 $transactionState
     * @return \patest\StructType\TransactionCriteria
     */
    public function setTransactionState(\patest\StructType\SinglePropertyCriteriaOfTransactionState8Q8HnG_P7 $transactionState = null)
    {
        if (is_null($transactionState) || (is_array($transactionState) && empty($transactionState))) {
            unset($this->TransactionState);
        } else {
            $this->TransactionState = $transactionState;
        }
        return $this;
    }
    /**
     * Get TransactionStateList 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\SinglePropertyCriteriaOfstring|null
     */
    public function getTransactionStateList()
    {
        return isset($this->TransactionStateList) ? $this->TransactionStateList : null;
    }
    /**
     * Set TransactionStateList 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\SinglePropertyCriteriaOfstring $transactionStateList
     * @return \patest\StructType\TransactionCriteria
     */
    public function setTransactionStateList(\patest\StructType\SinglePropertyCriteriaOfstring $transactionStateList = null)
    {
        if (is_null($transactionStateList) || (is_array($transactionStateList) && empty($transactionStateList))) {
            unset($this->TransactionStateList);
        } else {
            $this->TransactionStateList = $transactionStateList;
        }
        return $this;
    }
    /**
     * Get UntilDate 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\SinglePropertyCriteriaOfdateTime|null
     */
    public function getUntilDate()
    {
        return isset($this->UntilDate) ? $this->UntilDate : null;
    }
    /**
     * Set UntilDate 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\SinglePropertyCriteriaOfdateTime $untilDate
     * @return \patest\StructType\TransactionCriteria
     */
    public function setUntilDate(\patest\StructType\SinglePropertyCriteriaOfdateTime $untilDate = null)
    {
        if (is_null($untilDate) || (is_array($untilDate) && empty($untilDate))) {
            unset($this->UntilDate);
        } else {
            $this->UntilDate = $untilDate;
        }
        return $this;
    }
    /**
     * Get UserId 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\SinglePropertyCriteriaOfguid|null
     */
    public function getUserId()
    {
        return isset($this->UserId) ? $this->UserId : null;
    }
    /**
     * Set UserId 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\SinglePropertyCriteriaOfguid $userId
     * @return \patest\StructType\TransactionCriteria
     */
    public function setUserId(\patest\StructType\SinglePropertyCriteriaOfguid $userId = null)
    {
        if (is_null($userId) || (is_array($userId) && empty($userId))) {
            unset($this->UserId);
        } else {
            $this->UserId = $userId;
        }
        return $this;
    }
    /**
     * Get Active 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\SinglePropertyCriteriaOfboolean|null
     */
    public function getActive()
    {
        return isset($this->Active) ? $this->Active : null;
    }
    /**
     * Set Active 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\SinglePropertyCriteriaOfboolean $active
     * @return \patest\StructType\TransactionCriteria
     */
    public function setActive(\patest\StructType\SinglePropertyCriteriaOfboolean $active = null)
    {
        if (is_null($active) || (is_array($active) && empty($active))) {
            unset($this->Active);
        } else {
            $this->Active = $active;
        }
        return $this;
    }
    /**
     * Get TransactionAmountFrom 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\SinglePropertyCriteriaOfdouble|null
     */
    public function getTransactionAmountFrom()
    {
        return isset($this->TransactionAmountFrom) ? $this->TransactionAmountFrom : null;
    }
    /**
     * Set TransactionAmountFrom 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\SinglePropertyCriteriaOfdouble $transactionAmountFrom
     * @return \patest\StructType\TransactionCriteria
     */
    public function setTransactionAmountFrom(\patest\StructType\SinglePropertyCriteriaOfdouble $transactionAmountFrom = null)
    {
        if (is_null($transactionAmountFrom) || (is_array($transactionAmountFrom) && empty($transactionAmountFrom))) {
            unset($this->TransactionAmountFrom);
        } else {
            $this->TransactionAmountFrom = $transactionAmountFrom;
        }
        return $this;
    }
    /**
     * Get TransactionAmountTo 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\SinglePropertyCriteriaOfdouble|null
     */
    public function getTransactionAmountTo()
    {
        return isset($this->TransactionAmountTo) ? $this->TransactionAmountTo : null;
    }
    /**
     * Set TransactionAmountTo 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\SinglePropertyCriteriaOfdouble $transactionAmountTo
     * @return \patest\StructType\TransactionCriteria
     */
    public function setTransactionAmountTo(\patest\StructType\SinglePropertyCriteriaOfdouble $transactionAmountTo = null)
    {
        if (is_null($transactionAmountTo) || (is_array($transactionAmountTo) && empty($transactionAmountTo))) {
            unset($this->TransactionAmountTo);
        } else {
            $this->TransactionAmountTo = $transactionAmountTo;
        }
        return $this;
    }
}
