<?php

namespace SelectSiparis;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for IadeOdemeRequest StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:IadeOdemeRequest
 * @subpackage Structs
 */
class IadeOdemeRequest extends AbstractStructBase
{
    /**
     * The Not
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Not;
    /**
     * The OdemeId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $OdemeId;
    /**
     * The PosIade
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $PosIade;
    /**
     * The SiparisId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $SiparisId;
    /**
     * The Tutar
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $Tutar;
    /**
     * Constructor method for IadeOdemeRequest
     * @uses IadeOdemeRequest::setNot()
     * @uses IadeOdemeRequest::setOdemeId()
     * @uses IadeOdemeRequest::setPosIade()
     * @uses IadeOdemeRequest::setSiparisId()
     * @uses IadeOdemeRequest::setTutar()
     * @param string $not
     * @param int $odemeId
     * @param bool $posIade
     * @param int $siparisId
     * @param float $tutar
     */
    public function __construct($not = null, $odemeId = null, $posIade = null, $siparisId = null, $tutar = null)
    {
        $this
            ->setNot($not)
            ->setOdemeId($odemeId)
            ->setPosIade($posIade)
            ->setSiparisId($siparisId)
            ->setTutar($tutar);
    }
    /**
     * Get Not 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 getNot()
    {
        return isset($this->Not) ? $this->Not : null;
    }
    /**
     * Set Not 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 $not
     * @return \SelectSiparis\IadeOdemeRequest
     */
    public function setNot($not = null)
    {
        // validation for constraint: string
        if (!is_null($not) && !is_string($not)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($not, true), gettype($not)), __LINE__);
        }
        if (is_null($not) || (is_array($not) && empty($not))) {
            unset($this->Not);
        } else {
            $this->Not = $not;
        }
        return $this;
    }
    /**
     * Get OdemeId value
     * @return int|null
     */
    public function getOdemeId()
    {
        return $this->OdemeId;
    }
    /**
     * Set OdemeId value
     * @param int $odemeId
     * @return \SelectSiparis\IadeOdemeRequest
     */
    public function setOdemeId($odemeId = null)
    {
        // validation for constraint: int
        if (!is_null($odemeId) && !(is_int($odemeId) || ctype_digit($odemeId))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($odemeId, true), gettype($odemeId)), __LINE__);
        }
        $this->OdemeId = $odemeId;
        return $this;
    }
    /**
     * Get PosIade value
     * @return bool|null
     */
    public function getPosIade()
    {
        return $this->PosIade;
    }
    /**
     * Set PosIade value
     * @param bool $posIade
     * @return \SelectSiparis\IadeOdemeRequest
     */
    public function setPosIade($posIade = null)
    {
        // validation for constraint: boolean
        if (!is_null($posIade) && !is_bool($posIade)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($posIade, true), gettype($posIade)), __LINE__);
        }
        $this->PosIade = $posIade;
        return $this;
    }
    /**
     * Get SiparisId value
     * @return int|null
     */
    public function getSiparisId()
    {
        return $this->SiparisId;
    }
    /**
     * Set SiparisId value
     * @param int $siparisId
     * @return \SelectSiparis\IadeOdemeRequest
     */
    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 Tutar value
     * @return float|null
     */
    public function getTutar()
    {
        return $this->Tutar;
    }
    /**
     * Set Tutar value
     * @param float $tutar
     * @return \SelectSiparis\IadeOdemeRequest
     */
    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;
    }
}
