<?php

namespace SelectSiparis;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for WebSiparisKargoPaketFiltre StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:WebSiparisKargoPaketFiltre
 * @subpackage Structs
 */
class WebSiparisKargoPaketFiltre extends AbstractStructBase
{
    /**
     * The KargoEntegrasyonID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $KargoEntegrasyonID;
    /**
     * The KargoTakipNoDurum
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $KargoTakipNoDurum;
    /**
     * The PaketlenmeTarihBas
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $PaketlenmeTarihBas;
    /**
     * The PaketlenmeTarihBit
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $PaketlenmeTarihBit;
    /**
     * The SiparisDurumIptal
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $SiparisDurumIptal;
    /**
     * The SiparisID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $SiparisID;
    /**
     * The SiparisIDList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \SelectSiparis\ArrayOfint
     */
    public $SiparisIDList;
    /**
     * The SiparisKargoPaketID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $SiparisKargoPaketID;
    /**
     * Constructor method for WebSiparisKargoPaketFiltre
     * @uses WebSiparisKargoPaketFiltre::setKargoEntegrasyonID()
     * @uses WebSiparisKargoPaketFiltre::setKargoTakipNoDurum()
     * @uses WebSiparisKargoPaketFiltre::setPaketlenmeTarihBas()
     * @uses WebSiparisKargoPaketFiltre::setPaketlenmeTarihBit()
     * @uses WebSiparisKargoPaketFiltre::setSiparisDurumIptal()
     * @uses WebSiparisKargoPaketFiltre::setSiparisID()
     * @uses WebSiparisKargoPaketFiltre::setSiparisIDList()
     * @uses WebSiparisKargoPaketFiltre::setSiparisKargoPaketID()
     * @param int $kargoEntegrasyonID
     * @param int $kargoTakipNoDurum
     * @param string $paketlenmeTarihBas
     * @param string $paketlenmeTarihBit
     * @param bool $siparisDurumIptal
     * @param int $siparisID
     * @param \SelectSiparis\ArrayOfint $siparisIDList
     * @param int $siparisKargoPaketID
     */
    public function __construct($kargoEntegrasyonID = null, $kargoTakipNoDurum = null, $paketlenmeTarihBas = null, $paketlenmeTarihBit = null, $siparisDurumIptal = null, $siparisID = null, \SelectSiparis\ArrayOfint $siparisIDList = null, $siparisKargoPaketID = null)
    {
        $this
            ->setKargoEntegrasyonID($kargoEntegrasyonID)
            ->setKargoTakipNoDurum($kargoTakipNoDurum)
            ->setPaketlenmeTarihBas($paketlenmeTarihBas)
            ->setPaketlenmeTarihBit($paketlenmeTarihBit)
            ->setSiparisDurumIptal($siparisDurumIptal)
            ->setSiparisID($siparisID)
            ->setSiparisIDList($siparisIDList)
            ->setSiparisKargoPaketID($siparisKargoPaketID);
    }
    /**
     * Get KargoEntegrasyonID value
     * @return int|null
     */
    public function getKargoEntegrasyonID()
    {
        return $this->KargoEntegrasyonID;
    }
    /**
     * Set KargoEntegrasyonID value
     * @param int $kargoEntegrasyonID
     * @return \SelectSiparis\WebSiparisKargoPaketFiltre
     */
    public function setKargoEntegrasyonID($kargoEntegrasyonID = null)
    {
        // validation for constraint: int
        if (!is_null($kargoEntegrasyonID) && !(is_int($kargoEntegrasyonID) || ctype_digit($kargoEntegrasyonID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($kargoEntegrasyonID, true), gettype($kargoEntegrasyonID)), __LINE__);
        }
        $this->KargoEntegrasyonID = $kargoEntegrasyonID;
        return $this;
    }
    /**
     * Get KargoTakipNoDurum value
     * @return int|null
     */
    public function getKargoTakipNoDurum()
    {
        return $this->KargoTakipNoDurum;
    }
    /**
     * Set KargoTakipNoDurum value
     * @param int $kargoTakipNoDurum
     * @return \SelectSiparis\WebSiparisKargoPaketFiltre
     */
    public function setKargoTakipNoDurum($kargoTakipNoDurum = null)
    {
        // validation for constraint: int
        if (!is_null($kargoTakipNoDurum) && !(is_int($kargoTakipNoDurum) || ctype_digit($kargoTakipNoDurum))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($kargoTakipNoDurum, true), gettype($kargoTakipNoDurum)), __LINE__);
        }
        $this->KargoTakipNoDurum = $kargoTakipNoDurum;
        return $this;
    }
    /**
     * Get PaketlenmeTarihBas 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 getPaketlenmeTarihBas()
    {
        return isset($this->PaketlenmeTarihBas) ? $this->PaketlenmeTarihBas : null;
    }
    /**
     * Set PaketlenmeTarihBas 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 $paketlenmeTarihBas
     * @return \SelectSiparis\WebSiparisKargoPaketFiltre
     */
    public function setPaketlenmeTarihBas($paketlenmeTarihBas = null)
    {
        // validation for constraint: string
        if (!is_null($paketlenmeTarihBas) && !is_string($paketlenmeTarihBas)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($paketlenmeTarihBas, true), gettype($paketlenmeTarihBas)), __LINE__);
        }
        if (is_null($paketlenmeTarihBas) || (is_array($paketlenmeTarihBas) && empty($paketlenmeTarihBas))) {
            unset($this->PaketlenmeTarihBas);
        } else {
            $this->PaketlenmeTarihBas = $paketlenmeTarihBas;
        }
        return $this;
    }
    /**
     * Get PaketlenmeTarihBit 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 getPaketlenmeTarihBit()
    {
        return isset($this->PaketlenmeTarihBit) ? $this->PaketlenmeTarihBit : null;
    }
    /**
     * Set PaketlenmeTarihBit 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 $paketlenmeTarihBit
     * @return \SelectSiparis\WebSiparisKargoPaketFiltre
     */
    public function setPaketlenmeTarihBit($paketlenmeTarihBit = null)
    {
        // validation for constraint: string
        if (!is_null($paketlenmeTarihBit) && !is_string($paketlenmeTarihBit)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($paketlenmeTarihBit, true), gettype($paketlenmeTarihBit)), __LINE__);
        }
        if (is_null($paketlenmeTarihBit) || (is_array($paketlenmeTarihBit) && empty($paketlenmeTarihBit))) {
            unset($this->PaketlenmeTarihBit);
        } else {
            $this->PaketlenmeTarihBit = $paketlenmeTarihBit;
        }
        return $this;
    }
    /**
     * Get SiparisDurumIptal value
     * @return bool|null
     */
    public function getSiparisDurumIptal()
    {
        return $this->SiparisDurumIptal;
    }
    /**
     * Set SiparisDurumIptal value
     * @param bool $siparisDurumIptal
     * @return \SelectSiparis\WebSiparisKargoPaketFiltre
     */
    public function setSiparisDurumIptal($siparisDurumIptal = null)
    {
        // validation for constraint: boolean
        if (!is_null($siparisDurumIptal) && !is_bool($siparisDurumIptal)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($siparisDurumIptal, true), gettype($siparisDurumIptal)), __LINE__);
        }
        $this->SiparisDurumIptal = $siparisDurumIptal;
        return $this;
    }
    /**
     * Get SiparisID value
     * @return int|null
     */
    public function getSiparisID()
    {
        return $this->SiparisID;
    }
    /**
     * Set SiparisID value
     * @param int $siparisID
     * @return \SelectSiparis\WebSiparisKargoPaketFiltre
     */
    public function setSiparisID($siparisID = null)
    {
        // validation for constraint: int
        if (!is_null($siparisID) && !(is_int($siparisID) || ctype_digit($siparisID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($siparisID, true), gettype($siparisID)), __LINE__);
        }
        $this->SiparisID = $siparisID;
        return $this;
    }
    /**
     * Get SiparisIDList 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 \SelectSiparis\ArrayOfint|null
     */
    public function getSiparisIDList()
    {
        return isset($this->SiparisIDList) ? $this->SiparisIDList : null;
    }
    /**
     * Set SiparisIDList 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 \SelectSiparis\ArrayOfint $siparisIDList
     * @return \SelectSiparis\WebSiparisKargoPaketFiltre
     */
    public function setSiparisIDList(\SelectSiparis\ArrayOfint $siparisIDList = null)
    {
        if (is_null($siparisIDList) || (is_array($siparisIDList) && empty($siparisIDList))) {
            unset($this->SiparisIDList);
        } else {
            $this->SiparisIDList = $siparisIDList;
        }
        return $this;
    }
    /**
     * Get SiparisKargoPaketID value
     * @return int|null
     */
    public function getSiparisKargoPaketID()
    {
        return $this->SiparisKargoPaketID;
    }
    /**
     * Set SiparisKargoPaketID value
     * @param int $siparisKargoPaketID
     * @return \SelectSiparis\WebSiparisKargoPaketFiltre
     */
    public function setSiparisKargoPaketID($siparisKargoPaketID = null)
    {
        // validation for constraint: int
        if (!is_null($siparisKargoPaketID) && !(is_int($siparisKargoPaketID) || ctype_digit($siparisKargoPaketID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($siparisKargoPaketID, true), gettype($siparisKargoPaketID)), __LINE__);
        }
        $this->SiparisKargoPaketID = $siparisKargoPaketID;
        return $this;
    }
}
