<?php

namespace SelectSiparis;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for SelectEFaturaRequest StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:SelectEFaturaRequest
 * @subpackage Structs
 */
class SelectEFaturaRequest extends AbstractStructBase
{
    /**
     * The Basarili
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $Basarili;
    /**
     * The EFaturaTuru
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $EFaturaTuru;
    /**
     * The Entegrator
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $Entegrator;
    /**
     * The FaturaTipi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $FaturaTipi;
    /**
     * The Id
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $Id;
    /**
     * The IptalEdildi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $IptalEdildi;
    /**
     * The KargoFirmaId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $KargoFirmaId;
    /**
     * The OlusturmaTarihiBaslangic
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $OlusturmaTarihiBaslangic;
    /**
     * The OlusturmaTarihiBitis
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $OlusturmaTarihiBitis;
    /**
     * The SiparisId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $SiparisId;
    /**
     * The SiparisTarihiBaslangic
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SiparisTarihiBaslangic;
    /**
     * The SiparisTarihiBitis
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SiparisTarihiBitis;
    /**
     * Constructor method for SelectEFaturaRequest
     * @uses SelectEFaturaRequest::setBasarili()
     * @uses SelectEFaturaRequest::setEFaturaTuru()
     * @uses SelectEFaturaRequest::setEntegrator()
     * @uses SelectEFaturaRequest::setFaturaTipi()
     * @uses SelectEFaturaRequest::setId()
     * @uses SelectEFaturaRequest::setIptalEdildi()
     * @uses SelectEFaturaRequest::setKargoFirmaId()
     * @uses SelectEFaturaRequest::setOlusturmaTarihiBaslangic()
     * @uses SelectEFaturaRequest::setOlusturmaTarihiBitis()
     * @uses SelectEFaturaRequest::setSiparisId()
     * @uses SelectEFaturaRequest::setSiparisTarihiBaslangic()
     * @uses SelectEFaturaRequest::setSiparisTarihiBitis()
     * @param int $basarili
     * @param int $eFaturaTuru
     * @param int $entegrator
     * @param int $faturaTipi
     * @param int $id
     * @param int $iptalEdildi
     * @param int $kargoFirmaId
     * @param string $olusturmaTarihiBaslangic
     * @param string $olusturmaTarihiBitis
     * @param int $siparisId
     * @param string $siparisTarihiBaslangic
     * @param string $siparisTarihiBitis
     */
    public function __construct($basarili = null, $eFaturaTuru = null, $entegrator = null, $faturaTipi = null, $id = null, $iptalEdildi = null, $kargoFirmaId = null, $olusturmaTarihiBaslangic = null, $olusturmaTarihiBitis = null, $siparisId = null, $siparisTarihiBaslangic = null, $siparisTarihiBitis = null)
    {
        $this
            ->setBasarili($basarili)
            ->setEFaturaTuru($eFaturaTuru)
            ->setEntegrator($entegrator)
            ->setFaturaTipi($faturaTipi)
            ->setId($id)
            ->setIptalEdildi($iptalEdildi)
            ->setKargoFirmaId($kargoFirmaId)
            ->setOlusturmaTarihiBaslangic($olusturmaTarihiBaslangic)
            ->setOlusturmaTarihiBitis($olusturmaTarihiBitis)
            ->setSiparisId($siparisId)
            ->setSiparisTarihiBaslangic($siparisTarihiBaslangic)
            ->setSiparisTarihiBitis($siparisTarihiBitis);
    }
    /**
     * Get Basarili 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 getBasarili()
    {
        return isset($this->Basarili) ? $this->Basarili : null;
    }
    /**
     * Set Basarili 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 $basarili
     * @return \SelectSiparis\SelectEFaturaRequest
     */
    public function setBasarili($basarili = null)
    {
        // validation for constraint: int
        if (!is_null($basarili) && !(is_int($basarili) || ctype_digit($basarili))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($basarili, true), gettype($basarili)), __LINE__);
        }
        if (is_null($basarili) || (is_array($basarili) && empty($basarili))) {
            unset($this->Basarili);
        } else {
            $this->Basarili = $basarili;
        }
        return $this;
    }
    /**
     * Get EFaturaTuru 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 getEFaturaTuru()
    {
        return isset($this->EFaturaTuru) ? $this->EFaturaTuru : null;
    }
    /**
     * Set EFaturaTuru 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 $eFaturaTuru
     * @return \SelectSiparis\SelectEFaturaRequest
     */
    public function setEFaturaTuru($eFaturaTuru = null)
    {
        // validation for constraint: int
        if (!is_null($eFaturaTuru) && !(is_int($eFaturaTuru) || ctype_digit($eFaturaTuru))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($eFaturaTuru, true), gettype($eFaturaTuru)), __LINE__);
        }
        if (is_null($eFaturaTuru) || (is_array($eFaturaTuru) && empty($eFaturaTuru))) {
            unset($this->EFaturaTuru);
        } else {
            $this->EFaturaTuru = $eFaturaTuru;
        }
        return $this;
    }
    /**
     * Get Entegrator 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 getEntegrator()
    {
        return isset($this->Entegrator) ? $this->Entegrator : null;
    }
    /**
     * Set Entegrator 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 $entegrator
     * @return \SelectSiparis\SelectEFaturaRequest
     */
    public function setEntegrator($entegrator = null)
    {
        // validation for constraint: int
        if (!is_null($entegrator) && !(is_int($entegrator) || ctype_digit($entegrator))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($entegrator, true), gettype($entegrator)), __LINE__);
        }
        if (is_null($entegrator) || (is_array($entegrator) && empty($entegrator))) {
            unset($this->Entegrator);
        } else {
            $this->Entegrator = $entegrator;
        }
        return $this;
    }
    /**
     * Get FaturaTipi 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 getFaturaTipi()
    {
        return isset($this->FaturaTipi) ? $this->FaturaTipi : null;
    }
    /**
     * Set FaturaTipi 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 $faturaTipi
     * @return \SelectSiparis\SelectEFaturaRequest
     */
    public function setFaturaTipi($faturaTipi = null)
    {
        // validation for constraint: int
        if (!is_null($faturaTipi) && !(is_int($faturaTipi) || ctype_digit($faturaTipi))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($faturaTipi, true), gettype($faturaTipi)), __LINE__);
        }
        if (is_null($faturaTipi) || (is_array($faturaTipi) && empty($faturaTipi))) {
            unset($this->FaturaTipi);
        } else {
            $this->FaturaTipi = $faturaTipi;
        }
        return $this;
    }
    /**
     * Get Id value
     * @return int|null
     */
    public function getId()
    {
        return $this->Id;
    }
    /**
     * Set Id value
     * @param int $id
     * @return \SelectSiparis\SelectEFaturaRequest
     */
    public function setId($id = null)
    {
        // validation for constraint: int
        if (!is_null($id) && !(is_int($id) || ctype_digit($id))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($id, true), gettype($id)), __LINE__);
        }
        $this->Id = $id;
        return $this;
    }
    /**
     * Get IptalEdildi 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 getIptalEdildi()
    {
        return isset($this->IptalEdildi) ? $this->IptalEdildi : null;
    }
    /**
     * Set IptalEdildi 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 $iptalEdildi
     * @return \SelectSiparis\SelectEFaturaRequest
     */
    public function setIptalEdildi($iptalEdildi = null)
    {
        // validation for constraint: int
        if (!is_null($iptalEdildi) && !(is_int($iptalEdildi) || ctype_digit($iptalEdildi))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($iptalEdildi, true), gettype($iptalEdildi)), __LINE__);
        }
        if (is_null($iptalEdildi) || (is_array($iptalEdildi) && empty($iptalEdildi))) {
            unset($this->IptalEdildi);
        } else {
            $this->IptalEdildi = $iptalEdildi;
        }
        return $this;
    }
    /**
     * Get KargoFirmaId value
     * @return int|null
     */
    public function getKargoFirmaId()
    {
        return $this->KargoFirmaId;
    }
    /**
     * Set KargoFirmaId value
     * @param int $kargoFirmaId
     * @return \SelectSiparis\SelectEFaturaRequest
     */
    public function setKargoFirmaId($kargoFirmaId = null)
    {
        // validation for constraint: int
        if (!is_null($kargoFirmaId) && !(is_int($kargoFirmaId) || ctype_digit($kargoFirmaId))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($kargoFirmaId, true), gettype($kargoFirmaId)), __LINE__);
        }
        $this->KargoFirmaId = $kargoFirmaId;
        return $this;
    }
    /**
     * Get OlusturmaTarihiBaslangic 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 getOlusturmaTarihiBaslangic()
    {
        return isset($this->OlusturmaTarihiBaslangic) ? $this->OlusturmaTarihiBaslangic : null;
    }
    /**
     * Set OlusturmaTarihiBaslangic 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 $olusturmaTarihiBaslangic
     * @return \SelectSiparis\SelectEFaturaRequest
     */
    public function setOlusturmaTarihiBaslangic($olusturmaTarihiBaslangic = null)
    {
        // validation for constraint: string
        if (!is_null($olusturmaTarihiBaslangic) && !is_string($olusturmaTarihiBaslangic)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($olusturmaTarihiBaslangic, true), gettype($olusturmaTarihiBaslangic)), __LINE__);
        }
        if (is_null($olusturmaTarihiBaslangic) || (is_array($olusturmaTarihiBaslangic) && empty($olusturmaTarihiBaslangic))) {
            unset($this->OlusturmaTarihiBaslangic);
        } else {
            $this->OlusturmaTarihiBaslangic = $olusturmaTarihiBaslangic;
        }
        return $this;
    }
    /**
     * Get OlusturmaTarihiBitis 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 getOlusturmaTarihiBitis()
    {
        return isset($this->OlusturmaTarihiBitis) ? $this->OlusturmaTarihiBitis : null;
    }
    /**
     * Set OlusturmaTarihiBitis 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 $olusturmaTarihiBitis
     * @return \SelectSiparis\SelectEFaturaRequest
     */
    public function setOlusturmaTarihiBitis($olusturmaTarihiBitis = null)
    {
        // validation for constraint: string
        if (!is_null($olusturmaTarihiBitis) && !is_string($olusturmaTarihiBitis)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($olusturmaTarihiBitis, true), gettype($olusturmaTarihiBitis)), __LINE__);
        }
        if (is_null($olusturmaTarihiBitis) || (is_array($olusturmaTarihiBitis) && empty($olusturmaTarihiBitis))) {
            unset($this->OlusturmaTarihiBitis);
        } else {
            $this->OlusturmaTarihiBitis = $olusturmaTarihiBitis;
        }
        return $this;
    }
    /**
     * Get SiparisId value
     * @return int|null
     */
    public function getSiparisId()
    {
        return $this->SiparisId;
    }
    /**
     * Set SiparisId value
     * @param int $siparisId
     * @return \SelectSiparis\SelectEFaturaRequest
     */
    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 SiparisTarihiBaslangic 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 getSiparisTarihiBaslangic()
    {
        return isset($this->SiparisTarihiBaslangic) ? $this->SiparisTarihiBaslangic : null;
    }
    /**
     * Set SiparisTarihiBaslangic 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 $siparisTarihiBaslangic
     * @return \SelectSiparis\SelectEFaturaRequest
     */
    public function setSiparisTarihiBaslangic($siparisTarihiBaslangic = null)
    {
        // validation for constraint: string
        if (!is_null($siparisTarihiBaslangic) && !is_string($siparisTarihiBaslangic)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($siparisTarihiBaslangic, true), gettype($siparisTarihiBaslangic)), __LINE__);
        }
        if (is_null($siparisTarihiBaslangic) || (is_array($siparisTarihiBaslangic) && empty($siparisTarihiBaslangic))) {
            unset($this->SiparisTarihiBaslangic);
        } else {
            $this->SiparisTarihiBaslangic = $siparisTarihiBaslangic;
        }
        return $this;
    }
    /**
     * Get SiparisTarihiBitis 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 getSiparisTarihiBitis()
    {
        return isset($this->SiparisTarihiBitis) ? $this->SiparisTarihiBitis : null;
    }
    /**
     * Set SiparisTarihiBitis 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 $siparisTarihiBitis
     * @return \SelectSiparis\SelectEFaturaRequest
     */
    public function setSiparisTarihiBitis($siparisTarihiBitis = null)
    {
        // validation for constraint: string
        if (!is_null($siparisTarihiBitis) && !is_string($siparisTarihiBitis)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($siparisTarihiBitis, true), gettype($siparisTarihiBitis)), __LINE__);
        }
        if (is_null($siparisTarihiBitis) || (is_array($siparisTarihiBitis) && empty($siparisTarihiBitis))) {
            unset($this->SiparisTarihiBitis);
        } else {
            $this->SiparisTarihiBitis = $siparisTarihiBitis;
        }
        return $this;
    }
}
