<?php

namespace Easy\EasyStruct;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for ClsPickUpOrder EasyStruct
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:ClsPickUpOrder
 * @package Easy
 * @subpackage Structs
 */
class EasyClsPickUpOrder extends AbstractStructBase
{
    /**
     * 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 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
     * @var float
     */
    public $ConsigneePostalCode;
    /**
     * 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 PickUpDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $PickUpDate;
    /**
     * The PickUpDescription
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $PickUpDescription;
    /**
     * The PickUpPieces
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $PickUpPieces;
    /**
     * The PickUpRemarks
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $PickUpRemarks;
    /**
     * 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 PrincipalID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $PrincipalID;
    /**
     * The PrincipalSenderConsignee
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $PrincipalSenderConsignee;
    /**
     * The SenderAddress
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SenderAddress;
    /**
     * The SenderArea
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SenderArea;
    /**
     * The SenderCity
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SenderCity;
    /**
     * The SenderName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SenderName;
    /**
     * The SenderPhoneNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SenderPhoneNumber;
    /**
     * The SenderPostalCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $SenderPostalCode;
    /**
     * The ShipmentNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $ShipmentNumber;
    /**
     * Constructor method for ClsPickUpOrder
     * @uses EasyClsPickUpOrder::setConsigneeAddress()
     * @uses EasyClsPickUpOrder::setConsigneeArea()
     * @uses EasyClsPickUpOrder::setConsigneeCity()
     * @uses EasyClsPickUpOrder::setConsigneeName()
     * @uses EasyClsPickUpOrder::setConsigneePhone1()
     * @uses EasyClsPickUpOrder::setConsigneePhone2()
     * @uses EasyClsPickUpOrder::setConsigneePhone3()
     * @uses EasyClsPickUpOrder::setConsigneePostalCode()
     * @uses EasyClsPickUpOrder::setItemID1()
     * @uses EasyClsPickUpOrder::setItemID2()
     * @uses EasyClsPickUpOrder::setItemID3()
     * @uses EasyClsPickUpOrder::setPickUpDate()
     * @uses EasyClsPickUpOrder::setPickUpDescription()
     * @uses EasyClsPickUpOrder::setPickUpPieces()
     * @uses EasyClsPickUpOrder::setPickUpRemarks()
     * @uses EasyClsPickUpOrder::setPickUpTimeFrom()
     * @uses EasyClsPickUpOrder::setPickUpTimeTo()
     * @uses EasyClsPickUpOrder::setPrincipalID()
     * @uses EasyClsPickUpOrder::setPrincipalSenderConsignee()
     * @uses EasyClsPickUpOrder::setSenderAddress()
     * @uses EasyClsPickUpOrder::setSenderArea()
     * @uses EasyClsPickUpOrder::setSenderCity()
     * @uses EasyClsPickUpOrder::setSenderName()
     * @uses EasyClsPickUpOrder::setSenderPhoneNumber()
     * @uses EasyClsPickUpOrder::setSenderPostalCode()
     * @uses EasyClsPickUpOrder::setShipmentNumber()
     * @param string $consigneeAddress
     * @param string $consigneeArea
     * @param string $consigneeCity
     * @param string $consigneeName
     * @param string $consigneePhone1
     * @param string $consigneePhone2
     * @param string $consigneePhone3
     * @param float $consigneePostalCode
     * @param string $itemID1
     * @param string $itemID2
     * @param string $itemID3
     * @param string $pickUpDate
     * @param string $pickUpDescription
     * @param string $pickUpPieces
     * @param string $pickUpRemarks
     * @param string $pickUpTimeFrom
     * @param string $pickUpTimeTo
     * @param int $principalID
     * @param string $principalSenderConsignee
     * @param string $senderAddress
     * @param string $senderArea
     * @param string $senderCity
     * @param string $senderName
     * @param string $senderPhoneNumber
     * @param float $senderPostalCode
     * @param float $shipmentNumber
     */
    public function __construct($consigneeAddress = null, $consigneeArea = null, $consigneeCity = null, $consigneeName = null, $consigneePhone1 = null, $consigneePhone2 = null, $consigneePhone3 = null, $consigneePostalCode = null, $itemID1 = null, $itemID2 = null, $itemID3 = null, $pickUpDate = null, $pickUpDescription = null, $pickUpPieces = null, $pickUpRemarks = null, $pickUpTimeFrom = null, $pickUpTimeTo = null, $principalID = null, $principalSenderConsignee = null, $senderAddress = null, $senderArea = null, $senderCity = null, $senderName = null, $senderPhoneNumber = null, $senderPostalCode = null, $shipmentNumber = null)
    {
        $this
            ->setConsigneeAddress($consigneeAddress)
            ->setConsigneeArea($consigneeArea)
            ->setConsigneeCity($consigneeCity)
            ->setConsigneeName($consigneeName)
            ->setConsigneePhone1($consigneePhone1)
            ->setConsigneePhone2($consigneePhone2)
            ->setConsigneePhone3($consigneePhone3)
            ->setConsigneePostalCode($consigneePostalCode)
            ->setItemID1($itemID1)
            ->setItemID2($itemID2)
            ->setItemID3($itemID3)
            ->setPickUpDate($pickUpDate)
            ->setPickUpDescription($pickUpDescription)
            ->setPickUpPieces($pickUpPieces)
            ->setPickUpRemarks($pickUpRemarks)
            ->setPickUpTimeFrom($pickUpTimeFrom)
            ->setPickUpTimeTo($pickUpTimeTo)
            ->setPrincipalID($principalID)
            ->setPrincipalSenderConsignee($principalSenderConsignee)
            ->setSenderAddress($senderAddress)
            ->setSenderArea($senderArea)
            ->setSenderCity($senderCity)
            ->setSenderName($senderName)
            ->setSenderPhoneNumber($senderPhoneNumber)
            ->setSenderPostalCode($senderPostalCode)
            ->setShipmentNumber($shipmentNumber);
    }
    /**
     * 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\EasyClsPickUpOrder
     */
    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\EasyClsPickUpOrder
     */
    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\EasyClsPickUpOrder
     */
    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 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\EasyClsPickUpOrder
     */
    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\EasyClsPickUpOrder
     */
    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\EasyClsPickUpOrder
     */
    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\EasyClsPickUpOrder
     */
    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
     * @return float|null
     */
    public function getConsigneePostalCode()
    {
        return $this->ConsigneePostalCode;
    }
    /**
     * Set ConsigneePostalCode value
     * @param float $consigneePostalCode
     * @return \Easy\EasyStruct\EasyClsPickUpOrder
     */
    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__);
        }
        $this->ConsigneePostalCode = $consigneePostalCode;
        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\EasyClsPickUpOrder
     */
    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\EasyClsPickUpOrder
     */
    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\EasyClsPickUpOrder
     */
    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 PickUpDate 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 getPickUpDate()
    {
        return isset($this->PickUpDate) ? $this->PickUpDate : null;
    }
    /**
     * Set PickUpDate 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 $pickUpDate
     * @return \Easy\EasyStruct\EasyClsPickUpOrder
     */
    public function setPickUpDate($pickUpDate = null)
    {
        // validation for constraint: string
        if (!is_null($pickUpDate) && !is_string($pickUpDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($pickUpDate, true), gettype($pickUpDate)), __LINE__);
        }
        if (is_null($pickUpDate) || (is_array($pickUpDate) && empty($pickUpDate))) {
            unset($this->PickUpDate);
        } else {
            $this->PickUpDate = $pickUpDate;
        }
        return $this;
    }
    /**
     * Get PickUpDescription 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 getPickUpDescription()
    {
        return isset($this->PickUpDescription) ? $this->PickUpDescription : null;
    }
    /**
     * Set PickUpDescription 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 $pickUpDescription
     * @return \Easy\EasyStruct\EasyClsPickUpOrder
     */
    public function setPickUpDescription($pickUpDescription = null)
    {
        // validation for constraint: string
        if (!is_null($pickUpDescription) && !is_string($pickUpDescription)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($pickUpDescription, true), gettype($pickUpDescription)), __LINE__);
        }
        if (is_null($pickUpDescription) || (is_array($pickUpDescription) && empty($pickUpDescription))) {
            unset($this->PickUpDescription);
        } else {
            $this->PickUpDescription = $pickUpDescription;
        }
        return $this;
    }
    /**
     * Get PickUpPieces value
     * @return string|null
     */
    public function getPickUpPieces()
    {
        return $this->PickUpPieces;
    }
    /**
     * Set PickUpPieces value
     * @param string $pickUpPieces
     * @return \Easy\EasyStruct\EasyClsPickUpOrder
     */
    public function setPickUpPieces($pickUpPieces = null)
    {
        // validation for constraint: string
        if (!is_null($pickUpPieces) && !is_string($pickUpPieces)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($pickUpPieces, true), gettype($pickUpPieces)), __LINE__);
        }
        $this->PickUpPieces = $pickUpPieces;
        return $this;
    }
    /**
     * Get PickUpRemarks 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 getPickUpRemarks()
    {
        return isset($this->PickUpRemarks) ? $this->PickUpRemarks : null;
    }
    /**
     * Set PickUpRemarks 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 $pickUpRemarks
     * @return \Easy\EasyStruct\EasyClsPickUpOrder
     */
    public function setPickUpRemarks($pickUpRemarks = null)
    {
        // validation for constraint: string
        if (!is_null($pickUpRemarks) && !is_string($pickUpRemarks)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($pickUpRemarks, true), gettype($pickUpRemarks)), __LINE__);
        }
        if (is_null($pickUpRemarks) || (is_array($pickUpRemarks) && empty($pickUpRemarks))) {
            unset($this->PickUpRemarks);
        } else {
            $this->PickUpRemarks = $pickUpRemarks;
        }
        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\EasyClsPickUpOrder
     */
    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\EasyClsPickUpOrder
     */
    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 PrincipalID value
     * @return int|null
     */
    public function getPrincipalID()
    {
        return $this->PrincipalID;
    }
    /**
     * Set PrincipalID value
     * @param int $principalID
     * @return \Easy\EasyStruct\EasyClsPickUpOrder
     */
    public function setPrincipalID($principalID = null)
    {
        // validation for constraint: int
        if (!is_null($principalID) && !(is_int($principalID) || ctype_digit($principalID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($principalID, true), gettype($principalID)), __LINE__);
        }
        $this->PrincipalID = $principalID;
        return $this;
    }
    /**
     * Get PrincipalSenderConsignee value
     * @return string|null
     */
    public function getPrincipalSenderConsignee()
    {
        return $this->PrincipalSenderConsignee;
    }
    /**
     * Set PrincipalSenderConsignee value
     * @param string $principalSenderConsignee
     * @return \Easy\EasyStruct\EasyClsPickUpOrder
     */
    public function setPrincipalSenderConsignee($principalSenderConsignee = null)
    {
        // validation for constraint: string
        if (!is_null($principalSenderConsignee) && !is_string($principalSenderConsignee)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($principalSenderConsignee, true), gettype($principalSenderConsignee)), __LINE__);
        }
        $this->PrincipalSenderConsignee = $principalSenderConsignee;
        return $this;
    }
    /**
     * Get SenderAddress 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 getSenderAddress()
    {
        return isset($this->SenderAddress) ? $this->SenderAddress : null;
    }
    /**
     * Set SenderAddress 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 $senderAddress
     * @return \Easy\EasyStruct\EasyClsPickUpOrder
     */
    public function setSenderAddress($senderAddress = null)
    {
        // validation for constraint: string
        if (!is_null($senderAddress) && !is_string($senderAddress)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($senderAddress, true), gettype($senderAddress)), __LINE__);
        }
        if (is_null($senderAddress) || (is_array($senderAddress) && empty($senderAddress))) {
            unset($this->SenderAddress);
        } else {
            $this->SenderAddress = $senderAddress;
        }
        return $this;
    }
    /**
     * Get SenderArea 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 getSenderArea()
    {
        return isset($this->SenderArea) ? $this->SenderArea : null;
    }
    /**
     * Set SenderArea 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 $senderArea
     * @return \Easy\EasyStruct\EasyClsPickUpOrder
     */
    public function setSenderArea($senderArea = null)
    {
        // validation for constraint: string
        if (!is_null($senderArea) && !is_string($senderArea)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($senderArea, true), gettype($senderArea)), __LINE__);
        }
        if (is_null($senderArea) || (is_array($senderArea) && empty($senderArea))) {
            unset($this->SenderArea);
        } else {
            $this->SenderArea = $senderArea;
        }
        return $this;
    }
    /**
     * Get SenderCity 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 getSenderCity()
    {
        return isset($this->SenderCity) ? $this->SenderCity : null;
    }
    /**
     * Set SenderCity 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 $senderCity
     * @return \Easy\EasyStruct\EasyClsPickUpOrder
     */
    public function setSenderCity($senderCity = null)
    {
        // validation for constraint: string
        if (!is_null($senderCity) && !is_string($senderCity)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($senderCity, true), gettype($senderCity)), __LINE__);
        }
        if (is_null($senderCity) || (is_array($senderCity) && empty($senderCity))) {
            unset($this->SenderCity);
        } else {
            $this->SenderCity = $senderCity;
        }
        return $this;
    }
    /**
     * Get SenderName 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 getSenderName()
    {
        return isset($this->SenderName) ? $this->SenderName : null;
    }
    /**
     * Set SenderName 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 $senderName
     * @return \Easy\EasyStruct\EasyClsPickUpOrder
     */
    public function setSenderName($senderName = null)
    {
        // validation for constraint: string
        if (!is_null($senderName) && !is_string($senderName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($senderName, true), gettype($senderName)), __LINE__);
        }
        if (is_null($senderName) || (is_array($senderName) && empty($senderName))) {
            unset($this->SenderName);
        } else {
            $this->SenderName = $senderName;
        }
        return $this;
    }
    /**
     * Get SenderPhoneNumber 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 getSenderPhoneNumber()
    {
        return isset($this->SenderPhoneNumber) ? $this->SenderPhoneNumber : null;
    }
    /**
     * Set SenderPhoneNumber 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 $senderPhoneNumber
     * @return \Easy\EasyStruct\EasyClsPickUpOrder
     */
    public function setSenderPhoneNumber($senderPhoneNumber = null)
    {
        // validation for constraint: string
        if (!is_null($senderPhoneNumber) && !is_string($senderPhoneNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($senderPhoneNumber, true), gettype($senderPhoneNumber)), __LINE__);
        }
        if (is_null($senderPhoneNumber) || (is_array($senderPhoneNumber) && empty($senderPhoneNumber))) {
            unset($this->SenderPhoneNumber);
        } else {
            $this->SenderPhoneNumber = $senderPhoneNumber;
        }
        return $this;
    }
    /**
     * Get SenderPostalCode value
     * @return float|null
     */
    public function getSenderPostalCode()
    {
        return $this->SenderPostalCode;
    }
    /**
     * Set SenderPostalCode value
     * @param float $senderPostalCode
     * @return \Easy\EasyStruct\EasyClsPickUpOrder
     */
    public function setSenderPostalCode($senderPostalCode = null)
    {
        // validation for constraint: float
        if (!is_null($senderPostalCode) && !(is_float($senderPostalCode) || is_numeric($senderPostalCode))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($senderPostalCode, true), gettype($senderPostalCode)), __LINE__);
        }
        $this->SenderPostalCode = $senderPostalCode;
        return $this;
    }
    /**
     * Get ShipmentNumber value
     * @return float|null
     */
    public function getShipmentNumber()
    {
        return $this->ShipmentNumber;
    }
    /**
     * Set ShipmentNumber value
     * @param float $shipmentNumber
     * @return \Easy\EasyStruct\EasyClsPickUpOrder
     */
    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__);
        }
        $this->ShipmentNumber = $shipmentNumber;
        return $this;
    }
}
