<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for CondicaoPagamentoERP StructType
 * Meta informations extracted from the WSDL
 * - nillable: true
 * - type: tns:CondicaoPagamentoERP
 * @subpackage Structs
 */
class CondicaoPagamentoERP extends AbstractStructBase
{
    /**
     * The Clientes
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Clientes;
    /**
     * The CondPag1
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CondPag1;
    /**
     * The DataUltimaActualizacao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DataUltimaActualizacao;
    /**
     * The Desconto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $Desconto;
    /**
     * The DescontoIncluiIVA
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $DescontoIncluiIVA;
    /**
     * The Descricao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Descricao;
    /**
     * The Dias
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $Dias;
    /**
     * The DiasEntrada
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $DiasEntrada;
    /**
     * The EntradaInicial
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $EntradaInicial;
    /**
     * The Fornecedores
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Fornecedores;
    /**
     * The Meses30Dias
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Meses30Dias;
    /**
     * The ModoPag
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ModoPag;
    /**
     * The NumPrestacoes
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $NumPrestacoes;
    /**
     * The OutrosCredores
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $OutrosCredores;
    /**
     * The OutrosDevedores
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $OutrosDevedores;
    /**
     * The PeriodoPrestacoes
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $PeriodoPrestacoes;
    /**
     * The Protegida
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $Protegida;
    /**
     * The SugereDescontosLiquidacao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $SugereDescontosLiquidacao;
    /**
     * The TipoCondicao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TipoCondicao;
    /**
     * The VersaoUltAct
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $VersaoUltAct;
    /**
     * Constructor method for CondicaoPagamentoERP
     * @uses CondicaoPagamentoERP::setClientes()
     * @uses CondicaoPagamentoERP::setCondPag1()
     * @uses CondicaoPagamentoERP::setDataUltimaActualizacao()
     * @uses CondicaoPagamentoERP::setDesconto()
     * @uses CondicaoPagamentoERP::setDescontoIncluiIVA()
     * @uses CondicaoPagamentoERP::setDescricao()
     * @uses CondicaoPagamentoERP::setDias()
     * @uses CondicaoPagamentoERP::setDiasEntrada()
     * @uses CondicaoPagamentoERP::setEntradaInicial()
     * @uses CondicaoPagamentoERP::setFornecedores()
     * @uses CondicaoPagamentoERP::setMeses30Dias()
     * @uses CondicaoPagamentoERP::setModoPag()
     * @uses CondicaoPagamentoERP::setNumPrestacoes()
     * @uses CondicaoPagamentoERP::setOutrosCredores()
     * @uses CondicaoPagamentoERP::setOutrosDevedores()
     * @uses CondicaoPagamentoERP::setPeriodoPrestacoes()
     * @uses CondicaoPagamentoERP::setProtegida()
     * @uses CondicaoPagamentoERP::setSugereDescontosLiquidacao()
     * @uses CondicaoPagamentoERP::setTipoCondicao()
     * @uses CondicaoPagamentoERP::setVersaoUltAct()
     * @param bool $clientes
     * @param string $condPag1
     * @param string $dataUltimaActualizacao
     * @param float $desconto
     * @param bool $descontoIncluiIVA
     * @param string $descricao
     * @param int $dias
     * @param int $diasEntrada
     * @param float $entradaInicial
     * @param bool $fornecedores
     * @param bool $meses30Dias
     * @param string $modoPag
     * @param int $numPrestacoes
     * @param bool $outrosCredores
     * @param bool $outrosDevedores
     * @param int $periodoPrestacoes
     * @param bool $protegida
     * @param bool $sugereDescontosLiquidacao
     * @param string $tipoCondicao
     * @param string $versaoUltAct
     */
    public function __construct($clientes = null, $condPag1 = null, $dataUltimaActualizacao = null, $desconto = null, $descontoIncluiIVA = null, $descricao = null, $dias = null, $diasEntrada = null, $entradaInicial = null, $fornecedores = null, $meses30Dias = null, $modoPag = null, $numPrestacoes = null, $outrosCredores = null, $outrosDevedores = null, $periodoPrestacoes = null, $protegida = null, $sugereDescontosLiquidacao = null, $tipoCondicao = null, $versaoUltAct = null)
    {
        $this
            ->setClientes($clientes)
            ->setCondPag1($condPag1)
            ->setDataUltimaActualizacao($dataUltimaActualizacao)
            ->setDesconto($desconto)
            ->setDescontoIncluiIVA($descontoIncluiIVA)
            ->setDescricao($descricao)
            ->setDias($dias)
            ->setDiasEntrada($diasEntrada)
            ->setEntradaInicial($entradaInicial)
            ->setFornecedores($fornecedores)
            ->setMeses30Dias($meses30Dias)
            ->setModoPag($modoPag)
            ->setNumPrestacoes($numPrestacoes)
            ->setOutrosCredores($outrosCredores)
            ->setOutrosDevedores($outrosDevedores)
            ->setPeriodoPrestacoes($periodoPrestacoes)
            ->setProtegida($protegida)
            ->setSugereDescontosLiquidacao($sugereDescontosLiquidacao)
            ->setTipoCondicao($tipoCondicao)
            ->setVersaoUltAct($versaoUltAct);
    }
    /**
     * Get Clientes 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 bool|null
     */
    public function getClientes()
    {
        return isset($this->Clientes) ? $this->Clientes : null;
    }
    /**
     * Set Clientes 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 bool $clientes
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setClientes($clientes = null)
    {
        // validation for constraint: boolean
        if (!is_null($clientes) && !is_bool($clientes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($clientes)), __LINE__);
        }
        if (is_null($clientes) || (is_array($clientes) && empty($clientes))) {
            unset($this->Clientes);
        } else {
            $this->Clientes = $clientes;
        }
        return $this;
    }
    /**
     * Get CondPag1 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 getCondPag1()
    {
        return isset($this->CondPag1) ? $this->CondPag1 : null;
    }
    /**
     * Set CondPag1 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 $condPag1
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setCondPag1($condPag1 = null)
    {
        // validation for constraint: string
        if (!is_null($condPag1) && !is_string($condPag1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($condPag1)), __LINE__);
        }
        if (is_null($condPag1) || (is_array($condPag1) && empty($condPag1))) {
            unset($this->CondPag1);
        } else {
            $this->CondPag1 = $condPag1;
        }
        return $this;
    }
    /**
     * Get DataUltimaActualizacao 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 getDataUltimaActualizacao()
    {
        return isset($this->DataUltimaActualizacao) ? $this->DataUltimaActualizacao : null;
    }
    /**
     * Set DataUltimaActualizacao 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 $dataUltimaActualizacao
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setDataUltimaActualizacao($dataUltimaActualizacao = null)
    {
        // validation for constraint: string
        if (!is_null($dataUltimaActualizacao) && !is_string($dataUltimaActualizacao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataUltimaActualizacao)), __LINE__);
        }
        if (is_null($dataUltimaActualizacao) || (is_array($dataUltimaActualizacao) && empty($dataUltimaActualizacao))) {
            unset($this->DataUltimaActualizacao);
        } else {
            $this->DataUltimaActualizacao = $dataUltimaActualizacao;
        }
        return $this;
    }
    /**
     * Get Desconto 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 float|null
     */
    public function getDesconto()
    {
        return isset($this->Desconto) ? $this->Desconto : null;
    }
    /**
     * Set Desconto 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 float $desconto
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setDesconto($desconto = null)
    {
        if (is_null($desconto) || (is_array($desconto) && empty($desconto))) {
            unset($this->Desconto);
        } else {
            $this->Desconto = $desconto;
        }
        return $this;
    }
    /**
     * Get DescontoIncluiIVA value
     * @return bool|null
     */
    public function getDescontoIncluiIVA()
    {
        return $this->DescontoIncluiIVA;
    }
    /**
     * Set DescontoIncluiIVA value
     * @param bool $descontoIncluiIVA
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setDescontoIncluiIVA($descontoIncluiIVA = null)
    {
        // validation for constraint: boolean
        if (!is_null($descontoIncluiIVA) && !is_bool($descontoIncluiIVA)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($descontoIncluiIVA)), __LINE__);
        }
        $this->DescontoIncluiIVA = $descontoIncluiIVA;
        return $this;
    }
    /**
     * Get Descricao 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 getDescricao()
    {
        return isset($this->Descricao) ? $this->Descricao : null;
    }
    /**
     * Set Descricao 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 $descricao
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setDescricao($descricao = null)
    {
        // validation for constraint: string
        if (!is_null($descricao) && !is_string($descricao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($descricao)), __LINE__);
        }
        if (is_null($descricao) || (is_array($descricao) && empty($descricao))) {
            unset($this->Descricao);
        } else {
            $this->Descricao = $descricao;
        }
        return $this;
    }
    /**
     * Get Dias 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 getDias()
    {
        return isset($this->Dias) ? $this->Dias : null;
    }
    /**
     * Set Dias 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 $dias
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setDias($dias = null)
    {
        // validation for constraint: int
        if (!is_null($dias) && !is_numeric($dias)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($dias)), __LINE__);
        }
        if (is_null($dias) || (is_array($dias) && empty($dias))) {
            unset($this->Dias);
        } else {
            $this->Dias = $dias;
        }
        return $this;
    }
    /**
     * Get DiasEntrada 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 getDiasEntrada()
    {
        return isset($this->DiasEntrada) ? $this->DiasEntrada : null;
    }
    /**
     * Set DiasEntrada 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 $diasEntrada
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setDiasEntrada($diasEntrada = null)
    {
        // validation for constraint: int
        if (!is_null($diasEntrada) && !is_numeric($diasEntrada)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($diasEntrada)), __LINE__);
        }
        if (is_null($diasEntrada) || (is_array($diasEntrada) && empty($diasEntrada))) {
            unset($this->DiasEntrada);
        } else {
            $this->DiasEntrada = $diasEntrada;
        }
        return $this;
    }
    /**
     * Get EntradaInicial 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 float|null
     */
    public function getEntradaInicial()
    {
        return isset($this->EntradaInicial) ? $this->EntradaInicial : null;
    }
    /**
     * Set EntradaInicial 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 float $entradaInicial
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setEntradaInicial($entradaInicial = null)
    {
        if (is_null($entradaInicial) || (is_array($entradaInicial) && empty($entradaInicial))) {
            unset($this->EntradaInicial);
        } else {
            $this->EntradaInicial = $entradaInicial;
        }
        return $this;
    }
    /**
     * Get Fornecedores 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 bool|null
     */
    public function getFornecedores()
    {
        return isset($this->Fornecedores) ? $this->Fornecedores : null;
    }
    /**
     * Set Fornecedores 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 bool $fornecedores
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setFornecedores($fornecedores = null)
    {
        // validation for constraint: boolean
        if (!is_null($fornecedores) && !is_bool($fornecedores)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($fornecedores)), __LINE__);
        }
        if (is_null($fornecedores) || (is_array($fornecedores) && empty($fornecedores))) {
            unset($this->Fornecedores);
        } else {
            $this->Fornecedores = $fornecedores;
        }
        return $this;
    }
    /**
     * Get Meses30Dias 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 bool|null
     */
    public function getMeses30Dias()
    {
        return isset($this->Meses30Dias) ? $this->Meses30Dias : null;
    }
    /**
     * Set Meses30Dias 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 bool $meses30Dias
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setMeses30Dias($meses30Dias = null)
    {
        // validation for constraint: boolean
        if (!is_null($meses30Dias) && !is_bool($meses30Dias)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($meses30Dias)), __LINE__);
        }
        if (is_null($meses30Dias) || (is_array($meses30Dias) && empty($meses30Dias))) {
            unset($this->Meses30Dias);
        } else {
            $this->Meses30Dias = $meses30Dias;
        }
        return $this;
    }
    /**
     * Get ModoPag 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 getModoPag()
    {
        return isset($this->ModoPag) ? $this->ModoPag : null;
    }
    /**
     * Set ModoPag 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 $modoPag
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setModoPag($modoPag = null)
    {
        // validation for constraint: string
        if (!is_null($modoPag) && !is_string($modoPag)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($modoPag)), __LINE__);
        }
        if (is_null($modoPag) || (is_array($modoPag) && empty($modoPag))) {
            unset($this->ModoPag);
        } else {
            $this->ModoPag = $modoPag;
        }
        return $this;
    }
    /**
     * Get NumPrestacoes 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 getNumPrestacoes()
    {
        return isset($this->NumPrestacoes) ? $this->NumPrestacoes : null;
    }
    /**
     * Set NumPrestacoes 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 $numPrestacoes
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setNumPrestacoes($numPrestacoes = null)
    {
        // validation for constraint: int
        if (!is_null($numPrestacoes) && !is_numeric($numPrestacoes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($numPrestacoes)), __LINE__);
        }
        if (is_null($numPrestacoes) || (is_array($numPrestacoes) && empty($numPrestacoes))) {
            unset($this->NumPrestacoes);
        } else {
            $this->NumPrestacoes = $numPrestacoes;
        }
        return $this;
    }
    /**
     * Get OutrosCredores 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 bool|null
     */
    public function getOutrosCredores()
    {
        return isset($this->OutrosCredores) ? $this->OutrosCredores : null;
    }
    /**
     * Set OutrosCredores 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 bool $outrosCredores
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setOutrosCredores($outrosCredores = null)
    {
        // validation for constraint: boolean
        if (!is_null($outrosCredores) && !is_bool($outrosCredores)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($outrosCredores)), __LINE__);
        }
        if (is_null($outrosCredores) || (is_array($outrosCredores) && empty($outrosCredores))) {
            unset($this->OutrosCredores);
        } else {
            $this->OutrosCredores = $outrosCredores;
        }
        return $this;
    }
    /**
     * Get OutrosDevedores 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 bool|null
     */
    public function getOutrosDevedores()
    {
        return isset($this->OutrosDevedores) ? $this->OutrosDevedores : null;
    }
    /**
     * Set OutrosDevedores 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 bool $outrosDevedores
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setOutrosDevedores($outrosDevedores = null)
    {
        // validation for constraint: boolean
        if (!is_null($outrosDevedores) && !is_bool($outrosDevedores)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($outrosDevedores)), __LINE__);
        }
        if (is_null($outrosDevedores) || (is_array($outrosDevedores) && empty($outrosDevedores))) {
            unset($this->OutrosDevedores);
        } else {
            $this->OutrosDevedores = $outrosDevedores;
        }
        return $this;
    }
    /**
     * Get PeriodoPrestacoes 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 getPeriodoPrestacoes()
    {
        return isset($this->PeriodoPrestacoes) ? $this->PeriodoPrestacoes : null;
    }
    /**
     * Set PeriodoPrestacoes 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 $periodoPrestacoes
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setPeriodoPrestacoes($periodoPrestacoes = null)
    {
        // validation for constraint: int
        if (!is_null($periodoPrestacoes) && !is_numeric($periodoPrestacoes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($periodoPrestacoes)), __LINE__);
        }
        if (is_null($periodoPrestacoes) || (is_array($periodoPrestacoes) && empty($periodoPrestacoes))) {
            unset($this->PeriodoPrestacoes);
        } else {
            $this->PeriodoPrestacoes = $periodoPrestacoes;
        }
        return $this;
    }
    /**
     * Get Protegida value
     * @return bool|null
     */
    public function getProtegida()
    {
        return $this->Protegida;
    }
    /**
     * Set Protegida value
     * @param bool $protegida
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setProtegida($protegida = null)
    {
        // validation for constraint: boolean
        if (!is_null($protegida) && !is_bool($protegida)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($protegida)), __LINE__);
        }
        $this->Protegida = $protegida;
        return $this;
    }
    /**
     * Get SugereDescontosLiquidacao 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 bool|null
     */
    public function getSugereDescontosLiquidacao()
    {
        return isset($this->SugereDescontosLiquidacao) ? $this->SugereDescontosLiquidacao : null;
    }
    /**
     * Set SugereDescontosLiquidacao 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 bool $sugereDescontosLiquidacao
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setSugereDescontosLiquidacao($sugereDescontosLiquidacao = null)
    {
        // validation for constraint: boolean
        if (!is_null($sugereDescontosLiquidacao) && !is_bool($sugereDescontosLiquidacao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($sugereDescontosLiquidacao)), __LINE__);
        }
        if (is_null($sugereDescontosLiquidacao) || (is_array($sugereDescontosLiquidacao) && empty($sugereDescontosLiquidacao))) {
            unset($this->SugereDescontosLiquidacao);
        } else {
            $this->SugereDescontosLiquidacao = $sugereDescontosLiquidacao;
        }
        return $this;
    }
    /**
     * Get TipoCondicao 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 getTipoCondicao()
    {
        return isset($this->TipoCondicao) ? $this->TipoCondicao : null;
    }
    /**
     * Set TipoCondicao 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 $tipoCondicao
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setTipoCondicao($tipoCondicao = null)
    {
        // validation for constraint: string
        if (!is_null($tipoCondicao) && !is_string($tipoCondicao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($tipoCondicao)), __LINE__);
        }
        if (is_null($tipoCondicao) || (is_array($tipoCondicao) && empty($tipoCondicao))) {
            unset($this->TipoCondicao);
        } else {
            $this->TipoCondicao = $tipoCondicao;
        }
        return $this;
    }
    /**
     * Get VersaoUltAct value
     * @return string|null
     */
    public function getVersaoUltAct()
    {
        return $this->VersaoUltAct;
    }
    /**
     * Set VersaoUltAct value
     * @param string $versaoUltAct
     * @return \StructType\CondicaoPagamentoERP
     */
    public function setVersaoUltAct($versaoUltAct = null)
    {
        // validation for constraint: string
        if (!is_null($versaoUltAct) && !is_string($versaoUltAct)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($versaoUltAct)), __LINE__);
        }
        $this->VersaoUltAct = $versaoUltAct;
        return $this;
    }
    /**
     * Method called when an object has been exported with var_export() functions
     * It allows to return an object instantiated with the values
     * @see AbstractStructBase::__set_state()
     * @uses AbstractStructBase::__set_state()
     * @param array $array the exported values
     * @return \StructType\CondicaoPagamentoERP
     */
    public static function __set_state(array $array)
    {
        return parent::__set_state($array);
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
