<?php

namespace SelectSiparis;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for WebSiparisSaveOdeme StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:WebSiparisSaveOdeme
 * @subpackage Structs
 */
class WebSiparisSaveOdeme extends AbstractStructBase
{
    /**
     * The BankaKomisyonu
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $BankaKomisyonu;
    /**
     * The HavaleHesapID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $HavaleHesapID;
    /**
     * The KapidaOdemeTutari
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $KapidaOdemeTutari;
    /**
     * The OdemeDurumu
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $OdemeDurumu;
    /**
     * The OdemeIndirimi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $OdemeIndirimi;
    /**
     * The OdemeNotu
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $OdemeNotu;
    /**
     * The OdemeSecenekID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $OdemeSecenekID;
    /**
     * The OdemeTipi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $OdemeTipi;
    /**
     * The TaksitSayisi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $TaksitSayisi;
    /**
     * The Tarih
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $Tarih;
    /**
     * The Tutar
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $Tutar;
    /**
     * Constructor method for WebSiparisSaveOdeme
     * @uses WebSiparisSaveOdeme::setBankaKomisyonu()
     * @uses WebSiparisSaveOdeme::setHavaleHesapID()
     * @uses WebSiparisSaveOdeme::setKapidaOdemeTutari()
     * @uses WebSiparisSaveOdeme::setOdemeDurumu()
     * @uses WebSiparisSaveOdeme::setOdemeIndirimi()
     * @uses WebSiparisSaveOdeme::setOdemeNotu()
     * @uses WebSiparisSaveOdeme::setOdemeSecenekID()
     * @uses WebSiparisSaveOdeme::setOdemeTipi()
     * @uses WebSiparisSaveOdeme::setTaksitSayisi()
     * @uses WebSiparisSaveOdeme::setTarih()
     * @uses WebSiparisSaveOdeme::setTutar()
     * @param float $bankaKomisyonu
     * @param int $havaleHesapID
     * @param float $kapidaOdemeTutari
     * @param int $odemeDurumu
     * @param float $odemeIndirimi
     * @param string $odemeNotu
     * @param int $odemeSecenekID
     * @param int $odemeTipi
     * @param int $taksitSayisi
     * @param string $tarih
     * @param float $tutar
     */
    public function __construct($bankaKomisyonu = null, $havaleHesapID = null, $kapidaOdemeTutari = null, $odemeDurumu = null, $odemeIndirimi = null, $odemeNotu = null, $odemeSecenekID = null, $odemeTipi = null, $taksitSayisi = null, $tarih = null, $tutar = null)
    {
        $this
            ->setBankaKomisyonu($bankaKomisyonu)
            ->setHavaleHesapID($havaleHesapID)
            ->setKapidaOdemeTutari($kapidaOdemeTutari)
            ->setOdemeDurumu($odemeDurumu)
            ->setOdemeIndirimi($odemeIndirimi)
            ->setOdemeNotu($odemeNotu)
            ->setOdemeSecenekID($odemeSecenekID)
            ->setOdemeTipi($odemeTipi)
            ->setTaksitSayisi($taksitSayisi)
            ->setTarih($tarih)
            ->setTutar($tutar);
    }
    /**
     * Get BankaKomisyonu value
     * @return float|null
     */
    public function getBankaKomisyonu()
    {
        return $this->BankaKomisyonu;
    }
    /**
     * Set BankaKomisyonu value
     * @param float $bankaKomisyonu
     * @return \SelectSiparis\WebSiparisSaveOdeme
     */
    public function setBankaKomisyonu($bankaKomisyonu = null)
    {
        // validation for constraint: float
        if (!is_null($bankaKomisyonu) && !(is_float($bankaKomisyonu) || is_numeric($bankaKomisyonu))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($bankaKomisyonu, true), gettype($bankaKomisyonu)), __LINE__);
        }
        $this->BankaKomisyonu = $bankaKomisyonu;
        return $this;
    }
    /**
     * Get HavaleHesapID value
     * @return int|null
     */
    public function getHavaleHesapID()
    {
        return $this->HavaleHesapID;
    }
    /**
     * Set HavaleHesapID value
     * @param int $havaleHesapID
     * @return \SelectSiparis\WebSiparisSaveOdeme
     */
    public function setHavaleHesapID($havaleHesapID = null)
    {
        // validation for constraint: int
        if (!is_null($havaleHesapID) && !(is_int($havaleHesapID) || ctype_digit($havaleHesapID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($havaleHesapID, true), gettype($havaleHesapID)), __LINE__);
        }
        $this->HavaleHesapID = $havaleHesapID;
        return $this;
    }
    /**
     * Get KapidaOdemeTutari value
     * @return float|null
     */
    public function getKapidaOdemeTutari()
    {
        return $this->KapidaOdemeTutari;
    }
    /**
     * Set KapidaOdemeTutari value
     * @param float $kapidaOdemeTutari
     * @return \SelectSiparis\WebSiparisSaveOdeme
     */
    public function setKapidaOdemeTutari($kapidaOdemeTutari = null)
    {
        // validation for constraint: float
        if (!is_null($kapidaOdemeTutari) && !(is_float($kapidaOdemeTutari) || is_numeric($kapidaOdemeTutari))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($kapidaOdemeTutari, true), gettype($kapidaOdemeTutari)), __LINE__);
        }
        $this->KapidaOdemeTutari = $kapidaOdemeTutari;
        return $this;
    }
    /**
     * Get OdemeDurumu value
     * @return int|null
     */
    public function getOdemeDurumu()
    {
        return $this->OdemeDurumu;
    }
    /**
     * Set OdemeDurumu value
     * @param int $odemeDurumu
     * @return \SelectSiparis\WebSiparisSaveOdeme
     */
    public function setOdemeDurumu($odemeDurumu = null)
    {
        // validation for constraint: int
        if (!is_null($odemeDurumu) && !(is_int($odemeDurumu) || ctype_digit($odemeDurumu))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($odemeDurumu, true), gettype($odemeDurumu)), __LINE__);
        }
        $this->OdemeDurumu = $odemeDurumu;
        return $this;
    }
    /**
     * Get OdemeIndirimi value
     * @return float|null
     */
    public function getOdemeIndirimi()
    {
        return $this->OdemeIndirimi;
    }
    /**
     * Set OdemeIndirimi value
     * @param float $odemeIndirimi
     * @return \SelectSiparis\WebSiparisSaveOdeme
     */
    public function setOdemeIndirimi($odemeIndirimi = null)
    {
        // validation for constraint: float
        if (!is_null($odemeIndirimi) && !(is_float($odemeIndirimi) || is_numeric($odemeIndirimi))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($odemeIndirimi, true), gettype($odemeIndirimi)), __LINE__);
        }
        $this->OdemeIndirimi = $odemeIndirimi;
        return $this;
    }
    /**
     * Get OdemeNotu 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 getOdemeNotu()
    {
        return isset($this->OdemeNotu) ? $this->OdemeNotu : null;
    }
    /**
     * Set OdemeNotu 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 $odemeNotu
     * @return \SelectSiparis\WebSiparisSaveOdeme
     */
    public function setOdemeNotu($odemeNotu = null)
    {
        // validation for constraint: string
        if (!is_null($odemeNotu) && !is_string($odemeNotu)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($odemeNotu, true), gettype($odemeNotu)), __LINE__);
        }
        if (is_null($odemeNotu) || (is_array($odemeNotu) && empty($odemeNotu))) {
            unset($this->OdemeNotu);
        } else {
            $this->OdemeNotu = $odemeNotu;
        }
        return $this;
    }
    /**
     * Get OdemeSecenekID value
     * @return int|null
     */
    public function getOdemeSecenekID()
    {
        return $this->OdemeSecenekID;
    }
    /**
     * Set OdemeSecenekID value
     * @param int $odemeSecenekID
     * @return \SelectSiparis\WebSiparisSaveOdeme
     */
    public function setOdemeSecenekID($odemeSecenekID = null)
    {
        // validation for constraint: int
        if (!is_null($odemeSecenekID) && !(is_int($odemeSecenekID) || ctype_digit($odemeSecenekID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($odemeSecenekID, true), gettype($odemeSecenekID)), __LINE__);
        }
        $this->OdemeSecenekID = $odemeSecenekID;
        return $this;
    }
    /**
     * Get OdemeTipi value
     * @return int|null
     */
    public function getOdemeTipi()
    {
        return $this->OdemeTipi;
    }
    /**
     * Set OdemeTipi value
     * @param int $odemeTipi
     * @return \SelectSiparis\WebSiparisSaveOdeme
     */
    public function setOdemeTipi($odemeTipi = null)
    {
        // validation for constraint: int
        if (!is_null($odemeTipi) && !(is_int($odemeTipi) || ctype_digit($odemeTipi))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($odemeTipi, true), gettype($odemeTipi)), __LINE__);
        }
        $this->OdemeTipi = $odemeTipi;
        return $this;
    }
    /**
     * Get TaksitSayisi value
     * @return int|null
     */
    public function getTaksitSayisi()
    {
        return $this->TaksitSayisi;
    }
    /**
     * Set TaksitSayisi value
     * @param int $taksitSayisi
     * @return \SelectSiparis\WebSiparisSaveOdeme
     */
    public function setTaksitSayisi($taksitSayisi = null)
    {
        // validation for constraint: int
        if (!is_null($taksitSayisi) && !(is_int($taksitSayisi) || ctype_digit($taksitSayisi))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($taksitSayisi, true), gettype($taksitSayisi)), __LINE__);
        }
        $this->TaksitSayisi = $taksitSayisi;
        return $this;
    }
    /**
     * Get Tarih value
     * @return string|null
     */
    public function getTarih()
    {
        return $this->Tarih;
    }
    /**
     * Set Tarih value
     * @param string $tarih
     * @return \SelectSiparis\WebSiparisSaveOdeme
     */
    public function setTarih($tarih = null)
    {
        // validation for constraint: string
        if (!is_null($tarih) && !is_string($tarih)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($tarih, true), gettype($tarih)), __LINE__);
        }
        $this->Tarih = $tarih;
        return $this;
    }
    /**
     * Get Tutar value
     * @return float|null
     */
    public function getTutar()
    {
        return $this->Tutar;
    }
    /**
     * Set Tutar value
     * @param float $tutar
     * @return \SelectSiparis\WebSiparisSaveOdeme
     */
    public function setTutar($tutar = null)
    {
        // validation for constraint: float
        if (!is_null($tutar) && !(is_float($tutar) || is_numeric($tutar))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($tutar, true), gettype($tutar)), __LINE__);
        }
        $this->Tutar = $tutar;
        return $this;
    }
}
