<?php

namespace Easy\EasyStruct;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for ClsVoucher EasyStruct
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:ClsVoucher
 * @package Easy
 * @subpackage Structs
 */
class EasyClsVoucher extends AbstractStructBase
{
    /**
     * The COD_Cash
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $COD_Cash;
    /**
     * The COD_Cheques
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $COD_Cheques;
    /**
     * The CollectMoney
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CollectMoney;
    /**
     * The Collected
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $Collected;
    /**
     * The ConsigneeAddress
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ConsigneeAddress;
    /**
     * The ConsigneeArea
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ConsigneeArea;
    /**
     * The ConsigneeCity
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ConsigneeCity;
    /**
     * The ConsigneeEMail
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ConsigneeEMail;
    /**
     * The ConsigneeName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ConsigneeName;
    /**
     * The ConsigneePhone1
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ConsigneePhone1;
    /**
     * The ConsigneePhone2
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ConsigneePhone2;
    /**
     * The ConsigneePhone3
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ConsigneePhone3;
    /**
     * The ConsigneePostalCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $ConsigneePostalCode;
    /**
     * The ConsigneeVat
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ConsigneeVat;
    /**
     * The CreateReturnNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CreateReturnNumber;
    /**
     * The CustomerID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $CustomerID;
    /**
     * The DeliveryEarly
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $DeliveryEarly;
    /**
     * The DeliveryFromTime
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DeliveryFromTime;
    /**
     * The DeliveryPoint
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DeliveryPoint;
    /**
     * The DeliverySaturday
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $DeliverySaturday;
    /**
     * The DeliverySunday
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $DeliverySunday;
    /**
     * The DeliveryToTime
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DeliveryToTime;
    /**
     * The Insurance
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $Insurance;
    /**
     * The ItemID1
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ItemID1;
    /**
     * The ItemID2
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ItemID2;
    /**
     * The ItemID3
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ItemID3;
    /**
     * The MasterShipmentNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $MasterShipmentNumber;
    /**
     * The PickUpDeclaration
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $PickUpDeclaration;
    /**
     * The PickUpProtocol
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $PickUpProtocol;
    /**
     * The PickUpTimeFrom
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $PickUpTimeFrom;
    /**
     * The PickUpTimeTo
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $PickUpTimeTo;
    /**
     * The Piecies
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $Piecies;
    /**
     * The PreferredPicUpDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $PreferredPicUpDate;
    /**
     * The ReturnDocumentary
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $ReturnDocumentary;
    /**
     * The ReturnItemID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ReturnItemID;
    /**
     * The ReturnShipmentNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $ReturnShipmentNumber;
    /**
     * The SameDay
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $SameDay;
    /**
     * The ShipmentNotes
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ShipmentNotes;
    /**
     * The ShipmentNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $ShipmentNumber;
    /**
     * The SubmitDocumentary
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $SubmitDocumentary;
    /**
     * The Weight
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $Weight;
    /**
     * Constructor method for ClsVoucher
     * @uses EasyClsVoucher::setCOD_Cash()
     * @uses EasyClsVoucher::setCOD_Cheques()
     * @uses EasyClsVoucher::setCollectMoney()
     * @uses EasyClsVoucher::setCollected()
     * @uses EasyClsVoucher::setConsigneeAddress()
     * @uses EasyClsVoucher::setConsigneeArea()
     * @uses EasyClsVoucher::setConsigneeCity()
     * @uses EasyClsVoucher::setConsigneeEMail()
     * @uses EasyClsVoucher::setConsigneeName()
     * @uses EasyClsVoucher::setConsigneePhone1()
     * @uses EasyClsVoucher::setConsigneePhone2()
     * @uses EasyClsVoucher::setConsigneePhone3()
     * @uses EasyClsVoucher::setConsigneePostalCode()
     * @uses EasyClsVoucher::setConsigneeVat()
     * @uses EasyClsVoucher::setCreateReturnNumber()
     * @uses EasyClsVoucher::setCustomerID()
     * @uses EasyClsVoucher::setDeliveryEarly()
     * @uses EasyClsVoucher::setDeliveryFromTime()
     * @uses EasyClsVoucher::setDeliveryPoint()
     * @uses EasyClsVoucher::setDeliverySaturday()
     * @uses EasyClsVoucher::setDeliverySunday()
     * @uses EasyClsVoucher::setDeliveryToTime()
     * @uses EasyClsVoucher::setInsurance()
     * @uses EasyClsVoucher::setItemID1()
     * @uses EasyClsVoucher::setItemID2()
     * @uses EasyClsVoucher::setItemID3()
     * @uses EasyClsVoucher::setMasterShipmentNumber()
     * @uses EasyClsVoucher::setPickUpDeclaration()
     * @uses EasyClsVoucher::setPickUpProtocol()
     * @uses EasyClsVoucher::setPickUpTimeFrom()
     * @uses EasyClsVoucher::setPickUpTimeTo()
     * @uses EasyClsVoucher::setPiecies()
     * @uses EasyClsVoucher::setPreferredPicUpDate()
     * @uses EasyClsVoucher::setReturnDocumentary()
     * @uses EasyClsVoucher::setReturnItemID()
     * @uses EasyClsVoucher::setReturnShipmentNumber()
     * @uses EasyClsVoucher::setSameDay()
     * @uses EasyClsVoucher::setShipmentNotes()
     * @uses EasyClsVoucher::setShipmentNumber()
     * @uses EasyClsVoucher::setSubmitDocumentary()
     * @uses EasyClsVoucher::setWeight()
     * @param float $cOD_Cash
     * @param float $cOD_Cheques
     * @param bool $collectMoney
     * @param bool $collected
     * @param string $consigneeAddress
     * @param string $consigneeArea
     * @param string $consigneeCity
     * @param string $consigneeEMail
     * @param string $consigneeName
     * @param string $consigneePhone1
     * @param string $consigneePhone2
     * @param string $consigneePhone3
     * @param float $consigneePostalCode
     * @param string $consigneeVat
     * @param bool $createReturnNumber
     * @param int $customerID
     * @param bool $deliveryEarly
     * @param string $deliveryFromTime
     * @param string $deliveryPoint
     * @param bool $deliverySaturday
     * @param bool $deliverySunday
     * @param string $deliveryToTime
     * @param float $insurance
     * @param string $itemID1
     * @param string $itemID2
     * @param string $itemID3
     * @param float $masterShipmentNumber
     * @param bool $pickUpDeclaration
     * @param bool $pickUpProtocol
     * @param string $pickUpTimeFrom
     * @param string $pickUpTimeTo
     * @param int $piecies
     * @param string $preferredPicUpDate
     * @param bool $returnDocumentary
     * @param string $returnItemID
     * @param float $returnShipmentNumber
     * @param bool $sameDay
     * @param string $shipmentNotes
     * @param float $shipmentNumber
     * @param bool $submitDocumentary
     * @param float $weight
     */
    public function __construct($cOD_Cash = null, $cOD_Cheques = null, $collectMoney = null, $collected = null, $consigneeAddress = null, $consigneeArea = null, $consigneeCity = null, $consigneeEMail = null, $consigneeName = null, $consigneePhone1 = null, $consigneePhone2 = null, $consigneePhone3 = null, $consigneePostalCode = null, $consigneeVat = null, $createReturnNumber = null, $customerID = null, $deliveryEarly = null, $deliveryFromTime = null, $deliveryPoint = null, $deliverySaturday = null, $deliverySunday = null, $deliveryToTime = null, $insurance = null, $itemID1 = null, $itemID2 = null, $itemID3 = null, $masterShipmentNumber = null, $pickUpDeclaration = null, $pickUpProtocol = null, $pickUpTimeFrom = null, $pickUpTimeTo = null, $piecies = null, $preferredPicUpDate = null, $returnDocumentary = null, $returnItemID = null, $returnShipmentNumber = null, $sameDay = null, $shipmentNotes = null, $shipmentNumber = null, $submitDocumentary = null, $weight = null)
    {
        $this
            ->setCOD_Cash($cOD_Cash)
            ->setCOD_Cheques($cOD_Cheques)
            ->setCollectMoney($collectMoney)
            ->setCollected($collected)
            ->setConsigneeAddress($consigneeAddress)
            ->setConsigneeArea($consigneeArea)
            ->setConsigneeCity($consigneeCity)
            ->setConsigneeEMail($consigneeEMail)
            ->setConsigneeName($consigneeName)
            ->setConsigneePhone1($consigneePhone1)
            ->setConsigneePhone2($consigneePhone2)
            ->setConsigneePhone3($consigneePhone3)
            ->setConsigneePostalCode($consigneePostalCode)
            ->setConsigneeVat($consigneeVat)
            ->setCreateReturnNumber($createReturnNumber)
            ->setCustomerID($customerID)
            ->setDeliveryEarly($deliveryEarly)
            ->setDeliveryFromTime($deliveryFromTime)
            ->setDeliveryPoint($deliveryPoint)
            ->setDeliverySaturday($deliverySaturday)
            ->setDeliverySunday($deliverySunday)
            ->setDeliveryToTime($deliveryToTime)
            ->setInsurance($insurance)
            ->setItemID1($itemID1)
            ->setItemID2($itemID2)
            ->setItemID3($itemID3)
            ->setMasterShipmentNumber($masterShipmentNumber)
            ->setPickUpDeclaration($pickUpDeclaration)
            ->setPickUpProtocol($pickUpProtocol)
            ->setPickUpTimeFrom($pickUpTimeFrom)
            ->setPickUpTimeTo($pickUpTimeTo)
            ->setPiecies($piecies)
            ->setPreferredPicUpDate($preferredPicUpDate)
            ->setReturnDocumentary($returnDocumentary)
            ->setReturnItemID($returnItemID)
            ->setReturnShipmentNumber($returnShipmentNumber)
            ->setSameDay($sameDay)
            ->setShipmentNotes($shipmentNotes)
            ->setShipmentNumber($shipmentNumber)
            ->setSubmitDocumentary($submitDocumentary)
            ->setWeight($weight);
    }
    /**
     * Get COD_Cash 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 float|null
     */
    public function getCOD_Cash()
    {
        return isset($this->COD_Cash) ? $this->COD_Cash : null;
    }
    /**
     * Set COD_Cash 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 float $cOD_Cash
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setCOD_Cash($cOD_Cash = null)
    {
        // validation for constraint: float
        if (!is_null($cOD_Cash) && !(is_float($cOD_Cash) || is_numeric($cOD_Cash))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($cOD_Cash, true), gettype($cOD_Cash)), __LINE__);
        }
        if (is_null($cOD_Cash) || (is_array($cOD_Cash) && empty($cOD_Cash))) {
            unset($this->COD_Cash);
        } else {
            $this->COD_Cash = $cOD_Cash;
        }
        return $this;
    }
    /**
     * Get COD_Cheques 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 float|null
     */
    public function getCOD_Cheques()
    {
        return isset($this->COD_Cheques) ? $this->COD_Cheques : null;
    }
    /**
     * Set COD_Cheques 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 float $cOD_Cheques
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setCOD_Cheques($cOD_Cheques = null)
    {
        // validation for constraint: float
        if (!is_null($cOD_Cheques) && !(is_float($cOD_Cheques) || is_numeric($cOD_Cheques))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($cOD_Cheques, true), gettype($cOD_Cheques)), __LINE__);
        }
        if (is_null($cOD_Cheques) || (is_array($cOD_Cheques) && empty($cOD_Cheques))) {
            unset($this->COD_Cheques);
        } else {
            $this->COD_Cheques = $cOD_Cheques;
        }
        return $this;
    }
    /**
     * Get CollectMoney 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 bool|null
     */
    public function getCollectMoney()
    {
        return isset($this->CollectMoney) ? $this->CollectMoney : null;
    }
    /**
     * Set CollectMoney 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 bool $collectMoney
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setCollectMoney($collectMoney = null)
    {
        // validation for constraint: boolean
        if (!is_null($collectMoney) && !is_bool($collectMoney)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($collectMoney, true), gettype($collectMoney)), __LINE__);
        }
        if (is_null($collectMoney) || (is_array($collectMoney) && empty($collectMoney))) {
            unset($this->CollectMoney);
        } else {
            $this->CollectMoney = $collectMoney;
        }
        return $this;
    }
    /**
     * Get Collected value
     * @return bool|null
     */
    public function getCollected()
    {
        return $this->Collected;
    }
    /**
     * Set Collected value
     * @param bool $collected
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setCollected($collected = null)
    {
        // validation for constraint: boolean
        if (!is_null($collected) && !is_bool($collected)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($collected, true), gettype($collected)), __LINE__);
        }
        $this->Collected = $collected;
        return $this;
    }
    /**
     * Get ConsigneeAddress 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 string|null
     */
    public function getConsigneeAddress()
    {
        return isset($this->ConsigneeAddress) ? $this->ConsigneeAddress : null;
    }
    /**
     * Set ConsigneeAddress 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 string $consigneeAddress
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setConsigneeAddress($consigneeAddress = null)
    {
        // validation for constraint: string
        if (!is_null($consigneeAddress) && !is_string($consigneeAddress)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($consigneeAddress, true), gettype($consigneeAddress)), __LINE__);
        }
        if (is_null($consigneeAddress) || (is_array($consigneeAddress) && empty($consigneeAddress))) {
            unset($this->ConsigneeAddress);
        } else {
            $this->ConsigneeAddress = $consigneeAddress;
        }
        return $this;
    }
    /**
     * Get ConsigneeArea 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 string|null
     */
    public function getConsigneeArea()
    {
        return isset($this->ConsigneeArea) ? $this->ConsigneeArea : null;
    }
    /**
     * Set ConsigneeArea 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 string $consigneeArea
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setConsigneeArea($consigneeArea = null)
    {
        // validation for constraint: string
        if (!is_null($consigneeArea) && !is_string($consigneeArea)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($consigneeArea, true), gettype($consigneeArea)), __LINE__);
        }
        if (is_null($consigneeArea) || (is_array($consigneeArea) && empty($consigneeArea))) {
            unset($this->ConsigneeArea);
        } else {
            $this->ConsigneeArea = $consigneeArea;
        }
        return $this;
    }
    /**
     * Get ConsigneeCity 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 string|null
     */
    public function getConsigneeCity()
    {
        return isset($this->ConsigneeCity) ? $this->ConsigneeCity : null;
    }
    /**
     * Set ConsigneeCity 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 string $consigneeCity
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setConsigneeCity($consigneeCity = null)
    {
        // validation for constraint: string
        if (!is_null($consigneeCity) && !is_string($consigneeCity)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($consigneeCity, true), gettype($consigneeCity)), __LINE__);
        }
        if (is_null($consigneeCity) || (is_array($consigneeCity) && empty($consigneeCity))) {
            unset($this->ConsigneeCity);
        } else {
            $this->ConsigneeCity = $consigneeCity;
        }
        return $this;
    }
    /**
     * Get ConsigneeEMail 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 string|null
     */
    public function getConsigneeEMail()
    {
        return isset($this->ConsigneeEMail) ? $this->ConsigneeEMail : null;
    }
    /**
     * Set ConsigneeEMail 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 string $consigneeEMail
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setConsigneeEMail($consigneeEMail = null)
    {
        // validation for constraint: string
        if (!is_null($consigneeEMail) && !is_string($consigneeEMail)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($consigneeEMail, true), gettype($consigneeEMail)), __LINE__);
        }
        if (is_null($consigneeEMail) || (is_array($consigneeEMail) && empty($consigneeEMail))) {
            unset($this->ConsigneeEMail);
        } else {
            $this->ConsigneeEMail = $consigneeEMail;
        }
        return $this;
    }
    /**
     * Get ConsigneeName 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 string|null
     */
    public function getConsigneeName()
    {
        return isset($this->ConsigneeName) ? $this->ConsigneeName : null;
    }
    /**
     * Set ConsigneeName 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 string $consigneeName
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setConsigneeName($consigneeName = null)
    {
        // validation for constraint: string
        if (!is_null($consigneeName) && !is_string($consigneeName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($consigneeName, true), gettype($consigneeName)), __LINE__);
        }
        if (is_null($consigneeName) || (is_array($consigneeName) && empty($consigneeName))) {
            unset($this->ConsigneeName);
        } else {
            $this->ConsigneeName = $consigneeName;
        }
        return $this;
    }
    /**
     * Get ConsigneePhone1 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 string|null
     */
    public function getConsigneePhone1()
    {
        return isset($this->ConsigneePhone1) ? $this->ConsigneePhone1 : null;
    }
    /**
     * Set ConsigneePhone1 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 string $consigneePhone1
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setConsigneePhone1($consigneePhone1 = null)
    {
        // validation for constraint: string
        if (!is_null($consigneePhone1) && !is_string($consigneePhone1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($consigneePhone1, true), gettype($consigneePhone1)), __LINE__);
        }
        if (is_null($consigneePhone1) || (is_array($consigneePhone1) && empty($consigneePhone1))) {
            unset($this->ConsigneePhone1);
        } else {
            $this->ConsigneePhone1 = $consigneePhone1;
        }
        return $this;
    }
    /**
     * Get ConsigneePhone2 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 string|null
     */
    public function getConsigneePhone2()
    {
        return isset($this->ConsigneePhone2) ? $this->ConsigneePhone2 : null;
    }
    /**
     * Set ConsigneePhone2 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 string $consigneePhone2
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setConsigneePhone2($consigneePhone2 = null)
    {
        // validation for constraint: string
        if (!is_null($consigneePhone2) && !is_string($consigneePhone2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($consigneePhone2, true), gettype($consigneePhone2)), __LINE__);
        }
        if (is_null($consigneePhone2) || (is_array($consigneePhone2) && empty($consigneePhone2))) {
            unset($this->ConsigneePhone2);
        } else {
            $this->ConsigneePhone2 = $consigneePhone2;
        }
        return $this;
    }
    /**
     * Get ConsigneePhone3 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 string|null
     */
    public function getConsigneePhone3()
    {
        return isset($this->ConsigneePhone3) ? $this->ConsigneePhone3 : null;
    }
    /**
     * Set ConsigneePhone3 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 string $consigneePhone3
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setConsigneePhone3($consigneePhone3 = null)
    {
        // validation for constraint: string
        if (!is_null($consigneePhone3) && !is_string($consigneePhone3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($consigneePhone3, true), gettype($consigneePhone3)), __LINE__);
        }
        if (is_null($consigneePhone3) || (is_array($consigneePhone3) && empty($consigneePhone3))) {
            unset($this->ConsigneePhone3);
        } else {
            $this->ConsigneePhone3 = $consigneePhone3;
        }
        return $this;
    }
    /**
     * Get ConsigneePostalCode 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 float|null
     */
    public function getConsigneePostalCode()
    {
        return isset($this->ConsigneePostalCode) ? $this->ConsigneePostalCode : null;
    }
    /**
     * Set ConsigneePostalCode 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 float $consigneePostalCode
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setConsigneePostalCode($consigneePostalCode = null)
    {
        // validation for constraint: float
        if (!is_null($consigneePostalCode) && !(is_float($consigneePostalCode) || is_numeric($consigneePostalCode))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($consigneePostalCode, true), gettype($consigneePostalCode)), __LINE__);
        }
        if (is_null($consigneePostalCode) || (is_array($consigneePostalCode) && empty($consigneePostalCode))) {
            unset($this->ConsigneePostalCode);
        } else {
            $this->ConsigneePostalCode = $consigneePostalCode;
        }
        return $this;
    }
    /**
     * Get ConsigneeVat 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 string|null
     */
    public function getConsigneeVat()
    {
        return isset($this->ConsigneeVat) ? $this->ConsigneeVat : null;
    }
    /**
     * Set ConsigneeVat 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 string $consigneeVat
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setConsigneeVat($consigneeVat = null)
    {
        // validation for constraint: string
        if (!is_null($consigneeVat) && !is_string($consigneeVat)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($consigneeVat, true), gettype($consigneeVat)), __LINE__);
        }
        if (is_null($consigneeVat) || (is_array($consigneeVat) && empty($consigneeVat))) {
            unset($this->ConsigneeVat);
        } else {
            $this->ConsigneeVat = $consigneeVat;
        }
        return $this;
    }
    /**
     * Get CreateReturnNumber 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 bool|null
     */
    public function getCreateReturnNumber()
    {
        return isset($this->CreateReturnNumber) ? $this->CreateReturnNumber : null;
    }
    /**
     * Set CreateReturnNumber 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 bool $createReturnNumber
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setCreateReturnNumber($createReturnNumber = null)
    {
        // validation for constraint: boolean
        if (!is_null($createReturnNumber) && !is_bool($createReturnNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($createReturnNumber, true), gettype($createReturnNumber)), __LINE__);
        }
        if (is_null($createReturnNumber) || (is_array($createReturnNumber) && empty($createReturnNumber))) {
            unset($this->CreateReturnNumber);
        } else {
            $this->CreateReturnNumber = $createReturnNumber;
        }
        return $this;
    }
    /**
     * Get CustomerID 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 int|null
     */
    public function getCustomerID()
    {
        return isset($this->CustomerID) ? $this->CustomerID : null;
    }
    /**
     * Set CustomerID 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 int $customerID
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setCustomerID($customerID = null)
    {
        // validation for constraint: int
        if (!is_null($customerID) && !(is_int($customerID) || ctype_digit($customerID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($customerID, true), gettype($customerID)), __LINE__);
        }
        if (is_null($customerID) || (is_array($customerID) && empty($customerID))) {
            unset($this->CustomerID);
        } else {
            $this->CustomerID = $customerID;
        }
        return $this;
    }
    /**
     * Get DeliveryEarly 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 bool|null
     */
    public function getDeliveryEarly()
    {
        return isset($this->DeliveryEarly) ? $this->DeliveryEarly : null;
    }
    /**
     * Set DeliveryEarly 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 bool $deliveryEarly
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setDeliveryEarly($deliveryEarly = null)
    {
        // validation for constraint: boolean
        if (!is_null($deliveryEarly) && !is_bool($deliveryEarly)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($deliveryEarly, true), gettype($deliveryEarly)), __LINE__);
        }
        if (is_null($deliveryEarly) || (is_array($deliveryEarly) && empty($deliveryEarly))) {
            unset($this->DeliveryEarly);
        } else {
            $this->DeliveryEarly = $deliveryEarly;
        }
        return $this;
    }
    /**
     * Get DeliveryFromTime 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 string|null
     */
    public function getDeliveryFromTime()
    {
        return isset($this->DeliveryFromTime) ? $this->DeliveryFromTime : null;
    }
    /**
     * Set DeliveryFromTime 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 string $deliveryFromTime
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setDeliveryFromTime($deliveryFromTime = null)
    {
        // validation for constraint: string
        if (!is_null($deliveryFromTime) && !is_string($deliveryFromTime)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($deliveryFromTime, true), gettype($deliveryFromTime)), __LINE__);
        }
        if (is_null($deliveryFromTime) || (is_array($deliveryFromTime) && empty($deliveryFromTime))) {
            unset($this->DeliveryFromTime);
        } else {
            $this->DeliveryFromTime = $deliveryFromTime;
        }
        return $this;
    }
    /**
     * Get DeliveryPoint 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 string|null
     */
    public function getDeliveryPoint()
    {
        return isset($this->DeliveryPoint) ? $this->DeliveryPoint : null;
    }
    /**
     * Set DeliveryPoint 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 string $deliveryPoint
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setDeliveryPoint($deliveryPoint = null)
    {
        // validation for constraint: string
        if (!is_null($deliveryPoint) && !is_string($deliveryPoint)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($deliveryPoint, true), gettype($deliveryPoint)), __LINE__);
        }
        if (is_null($deliveryPoint) || (is_array($deliveryPoint) && empty($deliveryPoint))) {
            unset($this->DeliveryPoint);
        } else {
            $this->DeliveryPoint = $deliveryPoint;
        }
        return $this;
    }
    /**
     * Get DeliverySaturday 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 bool|null
     */
    public function getDeliverySaturday()
    {
        return isset($this->DeliverySaturday) ? $this->DeliverySaturday : null;
    }
    /**
     * Set DeliverySaturday 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 bool $deliverySaturday
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setDeliverySaturday($deliverySaturday = null)
    {
        // validation for constraint: boolean
        if (!is_null($deliverySaturday) && !is_bool($deliverySaturday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($deliverySaturday, true), gettype($deliverySaturday)), __LINE__);
        }
        if (is_null($deliverySaturday) || (is_array($deliverySaturday) && empty($deliverySaturday))) {
            unset($this->DeliverySaturday);
        } else {
            $this->DeliverySaturday = $deliverySaturday;
        }
        return $this;
    }
    /**
     * Get DeliverySunday 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 bool|null
     */
    public function getDeliverySunday()
    {
        return isset($this->DeliverySunday) ? $this->DeliverySunday : null;
    }
    /**
     * Set DeliverySunday 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 bool $deliverySunday
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setDeliverySunday($deliverySunday = null)
    {
        // validation for constraint: boolean
        if (!is_null($deliverySunday) && !is_bool($deliverySunday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($deliverySunday, true), gettype($deliverySunday)), __LINE__);
        }
        if (is_null($deliverySunday) || (is_array($deliverySunday) && empty($deliverySunday))) {
            unset($this->DeliverySunday);
        } else {
            $this->DeliverySunday = $deliverySunday;
        }
        return $this;
    }
    /**
     * Get DeliveryToTime 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 string|null
     */
    public function getDeliveryToTime()
    {
        return isset($this->DeliveryToTime) ? $this->DeliveryToTime : null;
    }
    /**
     * Set DeliveryToTime 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 string $deliveryToTime
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setDeliveryToTime($deliveryToTime = null)
    {
        // validation for constraint: string
        if (!is_null($deliveryToTime) && !is_string($deliveryToTime)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($deliveryToTime, true), gettype($deliveryToTime)), __LINE__);
        }
        if (is_null($deliveryToTime) || (is_array($deliveryToTime) && empty($deliveryToTime))) {
            unset($this->DeliveryToTime);
        } else {
            $this->DeliveryToTime = $deliveryToTime;
        }
        return $this;
    }
    /**
     * Get Insurance 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 float|null
     */
    public function getInsurance()
    {
        return isset($this->Insurance) ? $this->Insurance : null;
    }
    /**
     * Set Insurance 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 float $insurance
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setInsurance($insurance = null)
    {
        // validation for constraint: float
        if (!is_null($insurance) && !(is_float($insurance) || is_numeric($insurance))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($insurance, true), gettype($insurance)), __LINE__);
        }
        if (is_null($insurance) || (is_array($insurance) && empty($insurance))) {
            unset($this->Insurance);
        } else {
            $this->Insurance = $insurance;
        }
        return $this;
    }
    /**
     * Get ItemID1 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 string|null
     */
    public function getItemID1()
    {
        return isset($this->ItemID1) ? $this->ItemID1 : null;
    }
    /**
     * Set ItemID1 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 string $itemID1
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setItemID1($itemID1 = null)
    {
        // validation for constraint: string
        if (!is_null($itemID1) && !is_string($itemID1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($itemID1, true), gettype($itemID1)), __LINE__);
        }
        if (is_null($itemID1) || (is_array($itemID1) && empty($itemID1))) {
            unset($this->ItemID1);
        } else {
            $this->ItemID1 = $itemID1;
        }
        return $this;
    }
    /**
     * Get ItemID2 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 string|null
     */
    public function getItemID2()
    {
        return isset($this->ItemID2) ? $this->ItemID2 : null;
    }
    /**
     * Set ItemID2 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 string $itemID2
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setItemID2($itemID2 = null)
    {
        // validation for constraint: string
        if (!is_null($itemID2) && !is_string($itemID2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($itemID2, true), gettype($itemID2)), __LINE__);
        }
        if (is_null($itemID2) || (is_array($itemID2) && empty($itemID2))) {
            unset($this->ItemID2);
        } else {
            $this->ItemID2 = $itemID2;
        }
        return $this;
    }
    /**
     * Get ItemID3 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 string|null
     */
    public function getItemID3()
    {
        return isset($this->ItemID3) ? $this->ItemID3 : null;
    }
    /**
     * Set ItemID3 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 string $itemID3
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setItemID3($itemID3 = null)
    {
        // validation for constraint: string
        if (!is_null($itemID3) && !is_string($itemID3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($itemID3, true), gettype($itemID3)), __LINE__);
        }
        if (is_null($itemID3) || (is_array($itemID3) && empty($itemID3))) {
            unset($this->ItemID3);
        } else {
            $this->ItemID3 = $itemID3;
        }
        return $this;
    }
    /**
     * Get MasterShipmentNumber 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 float|null
     */
    public function getMasterShipmentNumber()
    {
        return isset($this->MasterShipmentNumber) ? $this->MasterShipmentNumber : null;
    }
    /**
     * Set MasterShipmentNumber 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 float $masterShipmentNumber
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setMasterShipmentNumber($masterShipmentNumber = null)
    {
        // validation for constraint: float
        if (!is_null($masterShipmentNumber) && !(is_float($masterShipmentNumber) || is_numeric($masterShipmentNumber))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($masterShipmentNumber, true), gettype($masterShipmentNumber)), __LINE__);
        }
        if (is_null($masterShipmentNumber) || (is_array($masterShipmentNumber) && empty($masterShipmentNumber))) {
            unset($this->MasterShipmentNumber);
        } else {
            $this->MasterShipmentNumber = $masterShipmentNumber;
        }
        return $this;
    }
    /**
     * Get PickUpDeclaration 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 bool|null
     */
    public function getPickUpDeclaration()
    {
        return isset($this->PickUpDeclaration) ? $this->PickUpDeclaration : null;
    }
    /**
     * Set PickUpDeclaration 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 bool $pickUpDeclaration
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setPickUpDeclaration($pickUpDeclaration = null)
    {
        // validation for constraint: boolean
        if (!is_null($pickUpDeclaration) && !is_bool($pickUpDeclaration)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($pickUpDeclaration, true), gettype($pickUpDeclaration)), __LINE__);
        }
        if (is_null($pickUpDeclaration) || (is_array($pickUpDeclaration) && empty($pickUpDeclaration))) {
            unset($this->PickUpDeclaration);
        } else {
            $this->PickUpDeclaration = $pickUpDeclaration;
        }
        return $this;
    }
    /**
     * Get PickUpProtocol 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 bool|null
     */
    public function getPickUpProtocol()
    {
        return isset($this->PickUpProtocol) ? $this->PickUpProtocol : null;
    }
    /**
     * Set PickUpProtocol 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 bool $pickUpProtocol
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setPickUpProtocol($pickUpProtocol = null)
    {
        // validation for constraint: boolean
        if (!is_null($pickUpProtocol) && !is_bool($pickUpProtocol)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($pickUpProtocol, true), gettype($pickUpProtocol)), __LINE__);
        }
        if (is_null($pickUpProtocol) || (is_array($pickUpProtocol) && empty($pickUpProtocol))) {
            unset($this->PickUpProtocol);
        } else {
            $this->PickUpProtocol = $pickUpProtocol;
        }
        return $this;
    }
    /**
     * Get PickUpTimeFrom 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 string|null
     */
    public function getPickUpTimeFrom()
    {
        return isset($this->PickUpTimeFrom) ? $this->PickUpTimeFrom : null;
    }
    /**
     * Set PickUpTimeFrom 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 string $pickUpTimeFrom
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setPickUpTimeFrom($pickUpTimeFrom = null)
    {
        // validation for constraint: string
        if (!is_null($pickUpTimeFrom) && !is_string($pickUpTimeFrom)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($pickUpTimeFrom, true), gettype($pickUpTimeFrom)), __LINE__);
        }
        if (is_null($pickUpTimeFrom) || (is_array($pickUpTimeFrom) && empty($pickUpTimeFrom))) {
            unset($this->PickUpTimeFrom);
        } else {
            $this->PickUpTimeFrom = $pickUpTimeFrom;
        }
        return $this;
    }
    /**
     * Get PickUpTimeTo 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 string|null
     */
    public function getPickUpTimeTo()
    {
        return isset($this->PickUpTimeTo) ? $this->PickUpTimeTo : null;
    }
    /**
     * Set PickUpTimeTo 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 string $pickUpTimeTo
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setPickUpTimeTo($pickUpTimeTo = null)
    {
        // validation for constraint: string
        if (!is_null($pickUpTimeTo) && !is_string($pickUpTimeTo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($pickUpTimeTo, true), gettype($pickUpTimeTo)), __LINE__);
        }
        if (is_null($pickUpTimeTo) || (is_array($pickUpTimeTo) && empty($pickUpTimeTo))) {
            unset($this->PickUpTimeTo);
        } else {
            $this->PickUpTimeTo = $pickUpTimeTo;
        }
        return $this;
    }
    /**
     * Get Piecies 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 int|null
     */
    public function getPiecies()
    {
        return isset($this->Piecies) ? $this->Piecies : null;
    }
    /**
     * Set Piecies 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 int $piecies
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setPiecies($piecies = null)
    {
        // validation for constraint: int
        if (!is_null($piecies) && !(is_int($piecies) || ctype_digit($piecies))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($piecies, true), gettype($piecies)), __LINE__);
        }
        if (is_null($piecies) || (is_array($piecies) && empty($piecies))) {
            unset($this->Piecies);
        } else {
            $this->Piecies = $piecies;
        }
        return $this;
    }
    /**
     * Get PreferredPicUpDate 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 string|null
     */
    public function getPreferredPicUpDate()
    {
        return isset($this->PreferredPicUpDate) ? $this->PreferredPicUpDate : null;
    }
    /**
     * Set PreferredPicUpDate 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 string $preferredPicUpDate
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setPreferredPicUpDate($preferredPicUpDate = null)
    {
        // validation for constraint: string
        if (!is_null($preferredPicUpDate) && !is_string($preferredPicUpDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($preferredPicUpDate, true), gettype($preferredPicUpDate)), __LINE__);
        }
        if (is_null($preferredPicUpDate) || (is_array($preferredPicUpDate) && empty($preferredPicUpDate))) {
            unset($this->PreferredPicUpDate);
        } else {
            $this->PreferredPicUpDate = $preferredPicUpDate;
        }
        return $this;
    }
    /**
     * Get ReturnDocumentary 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 bool|null
     */
    public function getReturnDocumentary()
    {
        return isset($this->ReturnDocumentary) ? $this->ReturnDocumentary : null;
    }
    /**
     * Set ReturnDocumentary 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 bool $returnDocumentary
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setReturnDocumentary($returnDocumentary = null)
    {
        // validation for constraint: boolean
        if (!is_null($returnDocumentary) && !is_bool($returnDocumentary)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($returnDocumentary, true), gettype($returnDocumentary)), __LINE__);
        }
        if (is_null($returnDocumentary) || (is_array($returnDocumentary) && empty($returnDocumentary))) {
            unset($this->ReturnDocumentary);
        } else {
            $this->ReturnDocumentary = $returnDocumentary;
        }
        return $this;
    }
    /**
     * Get ReturnItemID 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 string|null
     */
    public function getReturnItemID()
    {
        return isset($this->ReturnItemID) ? $this->ReturnItemID : null;
    }
    /**
     * Set ReturnItemID 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 string $returnItemID
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setReturnItemID($returnItemID = null)
    {
        // validation for constraint: string
        if (!is_null($returnItemID) && !is_string($returnItemID)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($returnItemID, true), gettype($returnItemID)), __LINE__);
        }
        if (is_null($returnItemID) || (is_array($returnItemID) && empty($returnItemID))) {
            unset($this->ReturnItemID);
        } else {
            $this->ReturnItemID = $returnItemID;
        }
        return $this;
    }
    /**
     * Get ReturnShipmentNumber value
     * @return float|null
     */
    public function getReturnShipmentNumber()
    {
        return $this->ReturnShipmentNumber;
    }
    /**
     * Set ReturnShipmentNumber value
     * @param float $returnShipmentNumber
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setReturnShipmentNumber($returnShipmentNumber = null)
    {
        // validation for constraint: float
        if (!is_null($returnShipmentNumber) && !(is_float($returnShipmentNumber) || is_numeric($returnShipmentNumber))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($returnShipmentNumber, true), gettype($returnShipmentNumber)), __LINE__);
        }
        $this->ReturnShipmentNumber = $returnShipmentNumber;
        return $this;
    }
    /**
     * Get SameDay 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 bool|null
     */
    public function getSameDay()
    {
        return isset($this->SameDay) ? $this->SameDay : null;
    }
    /**
     * Set SameDay 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 bool $sameDay
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setSameDay($sameDay = null)
    {
        // validation for constraint: boolean
        if (!is_null($sameDay) && !is_bool($sameDay)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($sameDay, true), gettype($sameDay)), __LINE__);
        }
        if (is_null($sameDay) || (is_array($sameDay) && empty($sameDay))) {
            unset($this->SameDay);
        } else {
            $this->SameDay = $sameDay;
        }
        return $this;
    }
    /**
     * Get ShipmentNotes 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 string|null
     */
    public function getShipmentNotes()
    {
        return isset($this->ShipmentNotes) ? $this->ShipmentNotes : null;
    }
    /**
     * Set ShipmentNotes 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 string $shipmentNotes
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setShipmentNotes($shipmentNotes = null)
    {
        // validation for constraint: string
        if (!is_null($shipmentNotes) && !is_string($shipmentNotes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($shipmentNotes, true), gettype($shipmentNotes)), __LINE__);
        }
        if (is_null($shipmentNotes) || (is_array($shipmentNotes) && empty($shipmentNotes))) {
            unset($this->ShipmentNotes);
        } else {
            $this->ShipmentNotes = $shipmentNotes;
        }
        return $this;
    }
    /**
     * Get ShipmentNumber 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 float|null
     */
    public function getShipmentNumber()
    {
        return isset($this->ShipmentNumber) ? $this->ShipmentNumber : null;
    }
    /**
     * Set ShipmentNumber 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 float $shipmentNumber
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setShipmentNumber($shipmentNumber = null)
    {
        // validation for constraint: float
        if (!is_null($shipmentNumber) && !(is_float($shipmentNumber) || is_numeric($shipmentNumber))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($shipmentNumber, true), gettype($shipmentNumber)), __LINE__);
        }
        if (is_null($shipmentNumber) || (is_array($shipmentNumber) && empty($shipmentNumber))) {
            unset($this->ShipmentNumber);
        } else {
            $this->ShipmentNumber = $shipmentNumber;
        }
        return $this;
    }
    /**
     * Get SubmitDocumentary 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 bool|null
     */
    public function getSubmitDocumentary()
    {
        return isset($this->SubmitDocumentary) ? $this->SubmitDocumentary : null;
    }
    /**
     * Set SubmitDocumentary 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 bool $submitDocumentary
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setSubmitDocumentary($submitDocumentary = null)
    {
        // validation for constraint: boolean
        if (!is_null($submitDocumentary) && !is_bool($submitDocumentary)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($submitDocumentary, true), gettype($submitDocumentary)), __LINE__);
        }
        if (is_null($submitDocumentary) || (is_array($submitDocumentary) && empty($submitDocumentary))) {
            unset($this->SubmitDocumentary);
        } else {
            $this->SubmitDocumentary = $submitDocumentary;
        }
        return $this;
    }
    /**
     * Get Weight 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 float|null
     */
    public function getWeight()
    {
        return isset($this->Weight) ? $this->Weight : null;
    }
    /**
     * Set Weight 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 float $weight
     * @return \Easy\EasyStruct\EasyClsVoucher
     */
    public function setWeight($weight = null)
    {
        // validation for constraint: float
        if (!is_null($weight) && !(is_float($weight) || is_numeric($weight))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($weight, true), gettype($weight)), __LINE__);
        }
        if (is_null($weight) || (is_array($weight) && empty($weight))) {
            unset($this->Weight);
        } else {
            $this->Weight = $weight;
        }
        return $this;
    }
}
