<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for SeriesComprasERP StructType
 * Meta informations extracted from the WSDL
 * - nillable: true
 * - type: tns:SeriesComprasERP
 * @subpackage Structs
 */
class SeriesComprasERP extends AbstractStructBase
{
    /**
     * The AbreGaveta
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $AbreGaveta;
    /**
     * The AlterarData
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $AlterarData;
    /**
     * The ArmazemSugestao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ArmazemSugestao;
    /**
     * The AutoFacturacao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $AutoFacturacao;
    /**
     * The CAESugerido
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CAESugerido;
    /**
     * The CDU_CTT
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CDU_CTT;
    /**
     * The CDU_DebitoDireto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CDU_DebitoDireto;
    /**
     * The CDU_PagamentoSEPA
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CDU_PagamentoSEPA;
    /**
     * The Config
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Config;
    /**
     * The DataFinal
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $DataFinal;
    /**
     * The DataInicial
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $DataInicial;
    /**
     * The DataUltimoDocumento
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DataUltimoDocumento;
    /**
     * The Descricao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Descricao;
    /**
     * The DescricaoVia01
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DescricaoVia01;
    /**
     * The DescricaoVia02
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DescricaoVia02;
    /**
     * The DescricaoVia03
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DescricaoVia03;
    /**
     * The DescricaoVia04
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DescricaoVia04;
    /**
     * The DescricaoVia05
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DescricaoVia05;
    /**
     * The DescricaoVia06
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DescricaoVia06;
    /**
     * The DisponivelNoEditor
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $DisponivelNoEditor;
    /**
     * The Entidade
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Entidade;
    /**
     * The EntidadeTipo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $EntidadeTipo;
    /**
     * The ImpressoraPorDefeito
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ImpressoraPorDefeito;
    /**
     * The ImprimirDirectamente
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $ImprimirDirectamente;
    /**
     * The IvaIncluido
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $IvaIncluido;
    /**
     * The LimiteInferior
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $LimiteInferior;
    /**
     * The LimiteSuperior
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $LimiteSuperior;
    /**
     * The LocalSugestao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $LocalSugestao;
    /**
     * The ModeloPOS
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ModeloPOS;
    /**
     * The MostraEcovalor
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $MostraEcovalor;
    /**
     * The NumVias
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NumVias;
    /**
     * The NumeracaoAutomatica
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $NumeracaoAutomatica;
    /**
     * The Numerador
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $Numerador;
    /**
     * The Ordem
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $Ordem;
    /**
     * The Origem
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $Origem;
    /**
     * The Previsao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Previsao;
    /**
     * The Protegida
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $Protegida;
    /**
     * The SemActividadeEmpresarial
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $SemActividadeEmpresarial;
    /**
     * The Serie
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Serie;
    /**
     * The SerieAutomatica
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $SerieAutomatica;
    /**
     * The SerieInactiva
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $SerieInactiva;
    /**
     * The SerieIntegracao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $SerieIntegracao;
    /**
     * The SeriePorDefeito
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $SeriePorDefeito;
    /**
     * The SugereDataSistema
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $SugereDataSistema;
    /**
     * The SugereMoradaArmazem
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $SugereMoradaArmazem;
    /**
     * The TipoComunicacao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $TipoComunicacao;
    /**
     * The TipoDoc
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TipoDoc;
    /**
     * The TipoLancamento
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TipoLancamento;
    /**
     * The UtilizaDescAbreviada
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $UtilizaDescAbreviada;
    /**
     * The UtilizadoEmPMS
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $UtilizadoEmPMS;
    /**
     * The UtilizadoEmPOS
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $UtilizadoEmPOS;
    /**
     * The VersaoUltAct
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $VersaoUltAct;
    /**
     * The eGAR_Comunica
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $eGAR_Comunica;
    /**
     * Constructor method for SeriesComprasERP
     * @uses SeriesComprasERP::setAbreGaveta()
     * @uses SeriesComprasERP::setAlterarData()
     * @uses SeriesComprasERP::setArmazemSugestao()
     * @uses SeriesComprasERP::setAutoFacturacao()
     * @uses SeriesComprasERP::setCAESugerido()
     * @uses SeriesComprasERP::setCDU_CTT()
     * @uses SeriesComprasERP::setCDU_DebitoDireto()
     * @uses SeriesComprasERP::setCDU_PagamentoSEPA()
     * @uses SeriesComprasERP::setConfig()
     * @uses SeriesComprasERP::setDataFinal()
     * @uses SeriesComprasERP::setDataInicial()
     * @uses SeriesComprasERP::setDataUltimoDocumento()
     * @uses SeriesComprasERP::setDescricao()
     * @uses SeriesComprasERP::setDescricaoVia01()
     * @uses SeriesComprasERP::setDescricaoVia02()
     * @uses SeriesComprasERP::setDescricaoVia03()
     * @uses SeriesComprasERP::setDescricaoVia04()
     * @uses SeriesComprasERP::setDescricaoVia05()
     * @uses SeriesComprasERP::setDescricaoVia06()
     * @uses SeriesComprasERP::setDisponivelNoEditor()
     * @uses SeriesComprasERP::setEntidade()
     * @uses SeriesComprasERP::setEntidadeTipo()
     * @uses SeriesComprasERP::setImpressoraPorDefeito()
     * @uses SeriesComprasERP::setImprimirDirectamente()
     * @uses SeriesComprasERP::setIvaIncluido()
     * @uses SeriesComprasERP::setLimiteInferior()
     * @uses SeriesComprasERP::setLimiteSuperior()
     * @uses SeriesComprasERP::setLocalSugestao()
     * @uses SeriesComprasERP::setModeloPOS()
     * @uses SeriesComprasERP::setMostraEcovalor()
     * @uses SeriesComprasERP::setNumVias()
     * @uses SeriesComprasERP::setNumeracaoAutomatica()
     * @uses SeriesComprasERP::setNumerador()
     * @uses SeriesComprasERP::setOrdem()
     * @uses SeriesComprasERP::setOrigem()
     * @uses SeriesComprasERP::setPrevisao()
     * @uses SeriesComprasERP::setProtegida()
     * @uses SeriesComprasERP::setSemActividadeEmpresarial()
     * @uses SeriesComprasERP::setSerie()
     * @uses SeriesComprasERP::setSerieAutomatica()
     * @uses SeriesComprasERP::setSerieInactiva()
     * @uses SeriesComprasERP::setSerieIntegracao()
     * @uses SeriesComprasERP::setSeriePorDefeito()
     * @uses SeriesComprasERP::setSugereDataSistema()
     * @uses SeriesComprasERP::setSugereMoradaArmazem()
     * @uses SeriesComprasERP::setTipoComunicacao()
     * @uses SeriesComprasERP::setTipoDoc()
     * @uses SeriesComprasERP::setTipoLancamento()
     * @uses SeriesComprasERP::setUtilizaDescAbreviada()
     * @uses SeriesComprasERP::setUtilizadoEmPMS()
     * @uses SeriesComprasERP::setUtilizadoEmPOS()
     * @uses SeriesComprasERP::setVersaoUltAct()
     * @uses SeriesComprasERP::setEGAR_Comunica()
     * @param bool $abreGaveta
     * @param bool $alterarData
     * @param string $armazemSugestao
     * @param bool $autoFacturacao
     * @param string $cAESugerido
     * @param bool $cDU_CTT
     * @param bool $cDU_DebitoDireto
     * @param bool $cDU_PagamentoSEPA
     * @param string $config
     * @param string $dataFinal
     * @param string $dataInicial
     * @param string $dataUltimoDocumento
     * @param string $descricao
     * @param string $descricaoVia01
     * @param string $descricaoVia02
     * @param string $descricaoVia03
     * @param string $descricaoVia04
     * @param string $descricaoVia05
     * @param string $descricaoVia06
     * @param bool $disponivelNoEditor
     * @param string $entidade
     * @param string $entidadeTipo
     * @param string $impressoraPorDefeito
     * @param bool $imprimirDirectamente
     * @param bool $ivaIncluido
     * @param int $limiteInferior
     * @param int $limiteSuperior
     * @param string $localSugestao
     * @param string $modeloPOS
     * @param bool $mostraEcovalor
     * @param string $numVias
     * @param bool $numeracaoAutomatica
     * @param int $numerador
     * @param int $ordem
     * @param int $origem
     * @param bool $previsao
     * @param bool $protegida
     * @param bool $semActividadeEmpresarial
     * @param string $serie
     * @param bool $serieAutomatica
     * @param bool $serieInactiva
     * @param bool $serieIntegracao
     * @param bool $seriePorDefeito
     * @param bool $sugereDataSistema
     * @param bool $sugereMoradaArmazem
     * @param int $tipoComunicacao
     * @param string $tipoDoc
     * @param string $tipoLancamento
     * @param bool $utilizaDescAbreviada
     * @param bool $utilizadoEmPMS
     * @param bool $utilizadoEmPOS
     * @param string $versaoUltAct
     * @param bool $eGAR_Comunica
     */
    public function __construct($abreGaveta = null, $alterarData = null, $armazemSugestao = null, $autoFacturacao = null, $cAESugerido = null, $cDU_CTT = null, $cDU_DebitoDireto = null, $cDU_PagamentoSEPA = null, $config = null, $dataFinal = null, $dataInicial = null, $dataUltimoDocumento = null, $descricao = null, $descricaoVia01 = null, $descricaoVia02 = null, $descricaoVia03 = null, $descricaoVia04 = null, $descricaoVia05 = null, $descricaoVia06 = null, $disponivelNoEditor = null, $entidade = null, $entidadeTipo = null, $impressoraPorDefeito = null, $imprimirDirectamente = null, $ivaIncluido = null, $limiteInferior = null, $limiteSuperior = null, $localSugestao = null, $modeloPOS = null, $mostraEcovalor = null, $numVias = null, $numeracaoAutomatica = null, $numerador = null, $ordem = null, $origem = null, $previsao = null, $protegida = null, $semActividadeEmpresarial = null, $serie = null, $serieAutomatica = null, $serieInactiva = null, $serieIntegracao = null, $seriePorDefeito = null, $sugereDataSistema = null, $sugereMoradaArmazem = null, $tipoComunicacao = null, $tipoDoc = null, $tipoLancamento = null, $utilizaDescAbreviada = null, $utilizadoEmPMS = null, $utilizadoEmPOS = null, $versaoUltAct = null, $eGAR_Comunica = null)
    {
        $this
            ->setAbreGaveta($abreGaveta)
            ->setAlterarData($alterarData)
            ->setArmazemSugestao($armazemSugestao)
            ->setAutoFacturacao($autoFacturacao)
            ->setCAESugerido($cAESugerido)
            ->setCDU_CTT($cDU_CTT)
            ->setCDU_DebitoDireto($cDU_DebitoDireto)
            ->setCDU_PagamentoSEPA($cDU_PagamentoSEPA)
            ->setConfig($config)
            ->setDataFinal($dataFinal)
            ->setDataInicial($dataInicial)
            ->setDataUltimoDocumento($dataUltimoDocumento)
            ->setDescricao($descricao)
            ->setDescricaoVia01($descricaoVia01)
            ->setDescricaoVia02($descricaoVia02)
            ->setDescricaoVia03($descricaoVia03)
            ->setDescricaoVia04($descricaoVia04)
            ->setDescricaoVia05($descricaoVia05)
            ->setDescricaoVia06($descricaoVia06)
            ->setDisponivelNoEditor($disponivelNoEditor)
            ->setEntidade($entidade)
            ->setEntidadeTipo($entidadeTipo)
            ->setImpressoraPorDefeito($impressoraPorDefeito)
            ->setImprimirDirectamente($imprimirDirectamente)
            ->setIvaIncluido($ivaIncluido)
            ->setLimiteInferior($limiteInferior)
            ->setLimiteSuperior($limiteSuperior)
            ->setLocalSugestao($localSugestao)
            ->setModeloPOS($modeloPOS)
            ->setMostraEcovalor($mostraEcovalor)
            ->setNumVias($numVias)
            ->setNumeracaoAutomatica($numeracaoAutomatica)
            ->setNumerador($numerador)
            ->setOrdem($ordem)
            ->setOrigem($origem)
            ->setPrevisao($previsao)
            ->setProtegida($protegida)
            ->setSemActividadeEmpresarial($semActividadeEmpresarial)
            ->setSerie($serie)
            ->setSerieAutomatica($serieAutomatica)
            ->setSerieInactiva($serieInactiva)
            ->setSerieIntegracao($serieIntegracao)
            ->setSeriePorDefeito($seriePorDefeito)
            ->setSugereDataSistema($sugereDataSistema)
            ->setSugereMoradaArmazem($sugereMoradaArmazem)
            ->setTipoComunicacao($tipoComunicacao)
            ->setTipoDoc($tipoDoc)
            ->setTipoLancamento($tipoLancamento)
            ->setUtilizaDescAbreviada($utilizaDescAbreviada)
            ->setUtilizadoEmPMS($utilizadoEmPMS)
            ->setUtilizadoEmPOS($utilizadoEmPOS)
            ->setVersaoUltAct($versaoUltAct)
            ->setEGAR_Comunica($eGAR_Comunica);
    }
    /**
     * Get AbreGaveta 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 getAbreGaveta()
    {
        return isset($this->AbreGaveta) ? $this->AbreGaveta : null;
    }
    /**
     * Set AbreGaveta 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 $abreGaveta
     * @return \StructType\SeriesComprasERP
     */
    public function setAbreGaveta($abreGaveta = null)
    {
        // validation for constraint: boolean
        if (!is_null($abreGaveta) && !is_bool($abreGaveta)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($abreGaveta)), __LINE__);
        }
        if (is_null($abreGaveta) || (is_array($abreGaveta) && empty($abreGaveta))) {
            unset($this->AbreGaveta);
        } else {
            $this->AbreGaveta = $abreGaveta;
        }
        return $this;
    }
    /**
     * Get AlterarData 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 getAlterarData()
    {
        return isset($this->AlterarData) ? $this->AlterarData : null;
    }
    /**
     * Set AlterarData 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 $alterarData
     * @return \StructType\SeriesComprasERP
     */
    public function setAlterarData($alterarData = null)
    {
        // validation for constraint: boolean
        if (!is_null($alterarData) && !is_bool($alterarData)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($alterarData)), __LINE__);
        }
        if (is_null($alterarData) || (is_array($alterarData) && empty($alterarData))) {
            unset($this->AlterarData);
        } else {
            $this->AlterarData = $alterarData;
        }
        return $this;
    }
    /**
     * Get ArmazemSugestao 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 getArmazemSugestao()
    {
        return isset($this->ArmazemSugestao) ? $this->ArmazemSugestao : null;
    }
    /**
     * Set ArmazemSugestao 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 $armazemSugestao
     * @return \StructType\SeriesComprasERP
     */
    public function setArmazemSugestao($armazemSugestao = null)
    {
        // validation for constraint: string
        if (!is_null($armazemSugestao) && !is_string($armazemSugestao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($armazemSugestao)), __LINE__);
        }
        if (is_null($armazemSugestao) || (is_array($armazemSugestao) && empty($armazemSugestao))) {
            unset($this->ArmazemSugestao);
        } else {
            $this->ArmazemSugestao = $armazemSugestao;
        }
        return $this;
    }
    /**
     * Get AutoFacturacao value
     * @return bool|null
     */
    public function getAutoFacturacao()
    {
        return $this->AutoFacturacao;
    }
    /**
     * Set AutoFacturacao value
     * @param bool $autoFacturacao
     * @return \StructType\SeriesComprasERP
     */
    public function setAutoFacturacao($autoFacturacao = null)
    {
        // validation for constraint: boolean
        if (!is_null($autoFacturacao) && !is_bool($autoFacturacao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($autoFacturacao)), __LINE__);
        }
        $this->AutoFacturacao = $autoFacturacao;
        return $this;
    }
    /**
     * Get CAESugerido 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 getCAESugerido()
    {
        return isset($this->CAESugerido) ? $this->CAESugerido : null;
    }
    /**
     * Set CAESugerido 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 $cAESugerido
     * @return \StructType\SeriesComprasERP
     */
    public function setCAESugerido($cAESugerido = null)
    {
        // validation for constraint: string
        if (!is_null($cAESugerido) && !is_string($cAESugerido)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cAESugerido)), __LINE__);
        }
        if (is_null($cAESugerido) || (is_array($cAESugerido) && empty($cAESugerido))) {
            unset($this->CAESugerido);
        } else {
            $this->CAESugerido = $cAESugerido;
        }
        return $this;
    }
    /**
     * Get CDU_CTT 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 getCDU_CTT()
    {
        return isset($this->CDU_CTT) ? $this->CDU_CTT : null;
    }
    /**
     * Set CDU_CTT 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 $cDU_CTT
     * @return \StructType\SeriesComprasERP
     */
    public function setCDU_CTT($cDU_CTT = null)
    {
        // validation for constraint: boolean
        if (!is_null($cDU_CTT) && !is_bool($cDU_CTT)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($cDU_CTT)), __LINE__);
        }
        if (is_null($cDU_CTT) || (is_array($cDU_CTT) && empty($cDU_CTT))) {
            unset($this->CDU_CTT);
        } else {
            $this->CDU_CTT = $cDU_CTT;
        }
        return $this;
    }
    /**
     * Get CDU_DebitoDireto 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 getCDU_DebitoDireto()
    {
        return isset($this->CDU_DebitoDireto) ? $this->CDU_DebitoDireto : null;
    }
    /**
     * Set CDU_DebitoDireto 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 $cDU_DebitoDireto
     * @return \StructType\SeriesComprasERP
     */
    public function setCDU_DebitoDireto($cDU_DebitoDireto = null)
    {
        // validation for constraint: boolean
        if (!is_null($cDU_DebitoDireto) && !is_bool($cDU_DebitoDireto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($cDU_DebitoDireto)), __LINE__);
        }
        if (is_null($cDU_DebitoDireto) || (is_array($cDU_DebitoDireto) && empty($cDU_DebitoDireto))) {
            unset($this->CDU_DebitoDireto);
        } else {
            $this->CDU_DebitoDireto = $cDU_DebitoDireto;
        }
        return $this;
    }
    /**
     * Get CDU_PagamentoSEPA 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 getCDU_PagamentoSEPA()
    {
        return isset($this->CDU_PagamentoSEPA) ? $this->CDU_PagamentoSEPA : null;
    }
    /**
     * Set CDU_PagamentoSEPA 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 $cDU_PagamentoSEPA
     * @return \StructType\SeriesComprasERP
     */
    public function setCDU_PagamentoSEPA($cDU_PagamentoSEPA = null)
    {
        // validation for constraint: boolean
        if (!is_null($cDU_PagamentoSEPA) && !is_bool($cDU_PagamentoSEPA)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($cDU_PagamentoSEPA)), __LINE__);
        }
        if (is_null($cDU_PagamentoSEPA) || (is_array($cDU_PagamentoSEPA) && empty($cDU_PagamentoSEPA))) {
            unset($this->CDU_PagamentoSEPA);
        } else {
            $this->CDU_PagamentoSEPA = $cDU_PagamentoSEPA;
        }
        return $this;
    }
    /**
     * Get Config 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 getConfig()
    {
        return isset($this->Config) ? $this->Config : null;
    }
    /**
     * Set Config 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 $config
     * @return \StructType\SeriesComprasERP
     */
    public function setConfig($config = null)
    {
        // validation for constraint: string
        if (!is_null($config) && !is_string($config)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($config)), __LINE__);
        }
        if (is_null($config) || (is_array($config) && empty($config))) {
            unset($this->Config);
        } else {
            $this->Config = $config;
        }
        return $this;
    }
    /**
     * Get DataFinal value
     * @return string|null
     */
    public function getDataFinal()
    {
        return $this->DataFinal;
    }
    /**
     * Set DataFinal value
     * @param string $dataFinal
     * @return \StructType\SeriesComprasERP
     */
    public function setDataFinal($dataFinal = null)
    {
        // validation for constraint: string
        if (!is_null($dataFinal) && !is_string($dataFinal)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataFinal)), __LINE__);
        }
        $this->DataFinal = $dataFinal;
        return $this;
    }
    /**
     * Get DataInicial value
     * @return string|null
     */
    public function getDataInicial()
    {
        return $this->DataInicial;
    }
    /**
     * Set DataInicial value
     * @param string $dataInicial
     * @return \StructType\SeriesComprasERP
     */
    public function setDataInicial($dataInicial = null)
    {
        // validation for constraint: string
        if (!is_null($dataInicial) && !is_string($dataInicial)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataInicial)), __LINE__);
        }
        $this->DataInicial = $dataInicial;
        return $this;
    }
    /**
     * Get DataUltimoDocumento 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 getDataUltimoDocumento()
    {
        return isset($this->DataUltimoDocumento) ? $this->DataUltimoDocumento : null;
    }
    /**
     * Set DataUltimoDocumento 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 $dataUltimoDocumento
     * @return \StructType\SeriesComprasERP
     */
    public function setDataUltimoDocumento($dataUltimoDocumento = null)
    {
        // validation for constraint: string
        if (!is_null($dataUltimoDocumento) && !is_string($dataUltimoDocumento)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataUltimoDocumento)), __LINE__);
        }
        if (is_null($dataUltimoDocumento) || (is_array($dataUltimoDocumento) && empty($dataUltimoDocumento))) {
            unset($this->DataUltimoDocumento);
        } else {
            $this->DataUltimoDocumento = $dataUltimoDocumento;
        }
        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\SeriesComprasERP
     */
    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 DescricaoVia01 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 getDescricaoVia01()
    {
        return isset($this->DescricaoVia01) ? $this->DescricaoVia01 : null;
    }
    /**
     * Set DescricaoVia01 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 $descricaoVia01
     * @return \StructType\SeriesComprasERP
     */
    public function setDescricaoVia01($descricaoVia01 = null)
    {
        // validation for constraint: string
        if (!is_null($descricaoVia01) && !is_string($descricaoVia01)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($descricaoVia01)), __LINE__);
        }
        if (is_null($descricaoVia01) || (is_array($descricaoVia01) && empty($descricaoVia01))) {
            unset($this->DescricaoVia01);
        } else {
            $this->DescricaoVia01 = $descricaoVia01;
        }
        return $this;
    }
    /**
     * Get DescricaoVia02 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 getDescricaoVia02()
    {
        return isset($this->DescricaoVia02) ? $this->DescricaoVia02 : null;
    }
    /**
     * Set DescricaoVia02 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 $descricaoVia02
     * @return \StructType\SeriesComprasERP
     */
    public function setDescricaoVia02($descricaoVia02 = null)
    {
        // validation for constraint: string
        if (!is_null($descricaoVia02) && !is_string($descricaoVia02)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($descricaoVia02)), __LINE__);
        }
        if (is_null($descricaoVia02) || (is_array($descricaoVia02) && empty($descricaoVia02))) {
            unset($this->DescricaoVia02);
        } else {
            $this->DescricaoVia02 = $descricaoVia02;
        }
        return $this;
    }
    /**
     * Get DescricaoVia03 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 getDescricaoVia03()
    {
        return isset($this->DescricaoVia03) ? $this->DescricaoVia03 : null;
    }
    /**
     * Set DescricaoVia03 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 $descricaoVia03
     * @return \StructType\SeriesComprasERP
     */
    public function setDescricaoVia03($descricaoVia03 = null)
    {
        // validation for constraint: string
        if (!is_null($descricaoVia03) && !is_string($descricaoVia03)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($descricaoVia03)), __LINE__);
        }
        if (is_null($descricaoVia03) || (is_array($descricaoVia03) && empty($descricaoVia03))) {
            unset($this->DescricaoVia03);
        } else {
            $this->DescricaoVia03 = $descricaoVia03;
        }
        return $this;
    }
    /**
     * Get DescricaoVia04 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 getDescricaoVia04()
    {
        return isset($this->DescricaoVia04) ? $this->DescricaoVia04 : null;
    }
    /**
     * Set DescricaoVia04 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 $descricaoVia04
     * @return \StructType\SeriesComprasERP
     */
    public function setDescricaoVia04($descricaoVia04 = null)
    {
        // validation for constraint: string
        if (!is_null($descricaoVia04) && !is_string($descricaoVia04)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($descricaoVia04)), __LINE__);
        }
        if (is_null($descricaoVia04) || (is_array($descricaoVia04) && empty($descricaoVia04))) {
            unset($this->DescricaoVia04);
        } else {
            $this->DescricaoVia04 = $descricaoVia04;
        }
        return $this;
    }
    /**
     * Get DescricaoVia05 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 getDescricaoVia05()
    {
        return isset($this->DescricaoVia05) ? $this->DescricaoVia05 : null;
    }
    /**
     * Set DescricaoVia05 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 $descricaoVia05
     * @return \StructType\SeriesComprasERP
     */
    public function setDescricaoVia05($descricaoVia05 = null)
    {
        // validation for constraint: string
        if (!is_null($descricaoVia05) && !is_string($descricaoVia05)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($descricaoVia05)), __LINE__);
        }
        if (is_null($descricaoVia05) || (is_array($descricaoVia05) && empty($descricaoVia05))) {
            unset($this->DescricaoVia05);
        } else {
            $this->DescricaoVia05 = $descricaoVia05;
        }
        return $this;
    }
    /**
     * Get DescricaoVia06 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 getDescricaoVia06()
    {
        return isset($this->DescricaoVia06) ? $this->DescricaoVia06 : null;
    }
    /**
     * Set DescricaoVia06 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 $descricaoVia06
     * @return \StructType\SeriesComprasERP
     */
    public function setDescricaoVia06($descricaoVia06 = null)
    {
        // validation for constraint: string
        if (!is_null($descricaoVia06) && !is_string($descricaoVia06)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($descricaoVia06)), __LINE__);
        }
        if (is_null($descricaoVia06) || (is_array($descricaoVia06) && empty($descricaoVia06))) {
            unset($this->DescricaoVia06);
        } else {
            $this->DescricaoVia06 = $descricaoVia06;
        }
        return $this;
    }
    /**
     * Get DisponivelNoEditor value
     * @return bool|null
     */
    public function getDisponivelNoEditor()
    {
        return $this->DisponivelNoEditor;
    }
    /**
     * Set DisponivelNoEditor value
     * @param bool $disponivelNoEditor
     * @return \StructType\SeriesComprasERP
     */
    public function setDisponivelNoEditor($disponivelNoEditor = null)
    {
        // validation for constraint: boolean
        if (!is_null($disponivelNoEditor) && !is_bool($disponivelNoEditor)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($disponivelNoEditor)), __LINE__);
        }
        $this->DisponivelNoEditor = $disponivelNoEditor;
        return $this;
    }
    /**
     * Get Entidade 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 getEntidade()
    {
        return isset($this->Entidade) ? $this->Entidade : null;
    }
    /**
     * Set Entidade 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 $entidade
     * @return \StructType\SeriesComprasERP
     */
    public function setEntidade($entidade = null)
    {
        // validation for constraint: string
        if (!is_null($entidade) && !is_string($entidade)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($entidade)), __LINE__);
        }
        if (is_null($entidade) || (is_array($entidade) && empty($entidade))) {
            unset($this->Entidade);
        } else {
            $this->Entidade = $entidade;
        }
        return $this;
    }
    /**
     * Get EntidadeTipo 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 getEntidadeTipo()
    {
        return isset($this->EntidadeTipo) ? $this->EntidadeTipo : null;
    }
    /**
     * Set EntidadeTipo 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 $entidadeTipo
     * @return \StructType\SeriesComprasERP
     */
    public function setEntidadeTipo($entidadeTipo = null)
    {
        // validation for constraint: string
        if (!is_null($entidadeTipo) && !is_string($entidadeTipo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($entidadeTipo)), __LINE__);
        }
        if (is_null($entidadeTipo) || (is_array($entidadeTipo) && empty($entidadeTipo))) {
            unset($this->EntidadeTipo);
        } else {
            $this->EntidadeTipo = $entidadeTipo;
        }
        return $this;
    }
    /**
     * Get ImpressoraPorDefeito 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 getImpressoraPorDefeito()
    {
        return isset($this->ImpressoraPorDefeito) ? $this->ImpressoraPorDefeito : null;
    }
    /**
     * Set ImpressoraPorDefeito 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 $impressoraPorDefeito
     * @return \StructType\SeriesComprasERP
     */
    public function setImpressoraPorDefeito($impressoraPorDefeito = null)
    {
        // validation for constraint: string
        if (!is_null($impressoraPorDefeito) && !is_string($impressoraPorDefeito)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($impressoraPorDefeito)), __LINE__);
        }
        if (is_null($impressoraPorDefeito) || (is_array($impressoraPorDefeito) && empty($impressoraPorDefeito))) {
            unset($this->ImpressoraPorDefeito);
        } else {
            $this->ImpressoraPorDefeito = $impressoraPorDefeito;
        }
        return $this;
    }
    /**
     * Get ImprimirDirectamente 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 getImprimirDirectamente()
    {
        return isset($this->ImprimirDirectamente) ? $this->ImprimirDirectamente : null;
    }
    /**
     * Set ImprimirDirectamente 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 $imprimirDirectamente
     * @return \StructType\SeriesComprasERP
     */
    public function setImprimirDirectamente($imprimirDirectamente = null)
    {
        // validation for constraint: boolean
        if (!is_null($imprimirDirectamente) && !is_bool($imprimirDirectamente)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($imprimirDirectamente)), __LINE__);
        }
        if (is_null($imprimirDirectamente) || (is_array($imprimirDirectamente) && empty($imprimirDirectamente))) {
            unset($this->ImprimirDirectamente);
        } else {
            $this->ImprimirDirectamente = $imprimirDirectamente;
        }
        return $this;
    }
    /**
     * Get IvaIncluido 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 getIvaIncluido()
    {
        return isset($this->IvaIncluido) ? $this->IvaIncluido : null;
    }
    /**
     * Set IvaIncluido 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 $ivaIncluido
     * @return \StructType\SeriesComprasERP
     */
    public function setIvaIncluido($ivaIncluido = null)
    {
        // validation for constraint: boolean
        if (!is_null($ivaIncluido) && !is_bool($ivaIncluido)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($ivaIncluido)), __LINE__);
        }
        if (is_null($ivaIncluido) || (is_array($ivaIncluido) && empty($ivaIncluido))) {
            unset($this->IvaIncluido);
        } else {
            $this->IvaIncluido = $ivaIncluido;
        }
        return $this;
    }
    /**
     * Get LimiteInferior 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 getLimiteInferior()
    {
        return isset($this->LimiteInferior) ? $this->LimiteInferior : null;
    }
    /**
     * Set LimiteInferior 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 $limiteInferior
     * @return \StructType\SeriesComprasERP
     */
    public function setLimiteInferior($limiteInferior = null)
    {
        // validation for constraint: int
        if (!is_null($limiteInferior) && !is_numeric($limiteInferior)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($limiteInferior)), __LINE__);
        }
        if (is_null($limiteInferior) || (is_array($limiteInferior) && empty($limiteInferior))) {
            unset($this->LimiteInferior);
        } else {
            $this->LimiteInferior = $limiteInferior;
        }
        return $this;
    }
    /**
     * Get LimiteSuperior 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 getLimiteSuperior()
    {
        return isset($this->LimiteSuperior) ? $this->LimiteSuperior : null;
    }
    /**
     * Set LimiteSuperior 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 $limiteSuperior
     * @return \StructType\SeriesComprasERP
     */
    public function setLimiteSuperior($limiteSuperior = null)
    {
        // validation for constraint: int
        if (!is_null($limiteSuperior) && !is_numeric($limiteSuperior)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($limiteSuperior)), __LINE__);
        }
        if (is_null($limiteSuperior) || (is_array($limiteSuperior) && empty($limiteSuperior))) {
            unset($this->LimiteSuperior);
        } else {
            $this->LimiteSuperior = $limiteSuperior;
        }
        return $this;
    }
    /**
     * Get LocalSugestao 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 getLocalSugestao()
    {
        return isset($this->LocalSugestao) ? $this->LocalSugestao : null;
    }
    /**
     * Set LocalSugestao 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 $localSugestao
     * @return \StructType\SeriesComprasERP
     */
    public function setLocalSugestao($localSugestao = null)
    {
        // validation for constraint: string
        if (!is_null($localSugestao) && !is_string($localSugestao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($localSugestao)), __LINE__);
        }
        if (is_null($localSugestao) || (is_array($localSugestao) && empty($localSugestao))) {
            unset($this->LocalSugestao);
        } else {
            $this->LocalSugestao = $localSugestao;
        }
        return $this;
    }
    /**
     * Get ModeloPOS 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 getModeloPOS()
    {
        return isset($this->ModeloPOS) ? $this->ModeloPOS : null;
    }
    /**
     * Set ModeloPOS 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 $modeloPOS
     * @return \StructType\SeriesComprasERP
     */
    public function setModeloPOS($modeloPOS = null)
    {
        // validation for constraint: string
        if (!is_null($modeloPOS) && !is_string($modeloPOS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($modeloPOS)), __LINE__);
        }
        if (is_null($modeloPOS) || (is_array($modeloPOS) && empty($modeloPOS))) {
            unset($this->ModeloPOS);
        } else {
            $this->ModeloPOS = $modeloPOS;
        }
        return $this;
    }
    /**
     * Get MostraEcovalor value
     * @return bool|null
     */
    public function getMostraEcovalor()
    {
        return $this->MostraEcovalor;
    }
    /**
     * Set MostraEcovalor value
     * @param bool $mostraEcovalor
     * @return \StructType\SeriesComprasERP
     */
    public function setMostraEcovalor($mostraEcovalor = null)
    {
        // validation for constraint: boolean
        if (!is_null($mostraEcovalor) && !is_bool($mostraEcovalor)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($mostraEcovalor)), __LINE__);
        }
        $this->MostraEcovalor = $mostraEcovalor;
        return $this;
    }
    /**
     * Get NumVias 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 getNumVias()
    {
        return isset($this->NumVias) ? $this->NumVias : null;
    }
    /**
     * Set NumVias 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 $numVias
     * @return \StructType\SeriesComprasERP
     */
    public function setNumVias($numVias = null)
    {
        // validation for constraint: string
        if (!is_null($numVias) && !is_string($numVias)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($numVias)), __LINE__);
        }
        if (is_null($numVias) || (is_array($numVias) && empty($numVias))) {
            unset($this->NumVias);
        } else {
            $this->NumVias = $numVias;
        }
        return $this;
    }
    /**
     * Get NumeracaoAutomatica 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 getNumeracaoAutomatica()
    {
        return isset($this->NumeracaoAutomatica) ? $this->NumeracaoAutomatica : null;
    }
    /**
     * Set NumeracaoAutomatica 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 $numeracaoAutomatica
     * @return \StructType\SeriesComprasERP
     */
    public function setNumeracaoAutomatica($numeracaoAutomatica = null)
    {
        // validation for constraint: boolean
        if (!is_null($numeracaoAutomatica) && !is_bool($numeracaoAutomatica)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($numeracaoAutomatica)), __LINE__);
        }
        if (is_null($numeracaoAutomatica) || (is_array($numeracaoAutomatica) && empty($numeracaoAutomatica))) {
            unset($this->NumeracaoAutomatica);
        } else {
            $this->NumeracaoAutomatica = $numeracaoAutomatica;
        }
        return $this;
    }
    /**
     * Get Numerador 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 getNumerador()
    {
        return isset($this->Numerador) ? $this->Numerador : null;
    }
    /**
     * Set Numerador 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 $numerador
     * @return \StructType\SeriesComprasERP
     */
    public function setNumerador($numerador = null)
    {
        // validation for constraint: int
        if (!is_null($numerador) && !is_numeric($numerador)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($numerador)), __LINE__);
        }
        if (is_null($numerador) || (is_array($numerador) && empty($numerador))) {
            unset($this->Numerador);
        } else {
            $this->Numerador = $numerador;
        }
        return $this;
    }
    /**
     * Get Ordem 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 getOrdem()
    {
        return isset($this->Ordem) ? $this->Ordem : null;
    }
    /**
     * Set Ordem 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 $ordem
     * @return \StructType\SeriesComprasERP
     */
    public function setOrdem($ordem = null)
    {
        // validation for constraint: int
        if (!is_null($ordem) && !is_numeric($ordem)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($ordem)), __LINE__);
        }
        if (is_null($ordem) || (is_array($ordem) && empty($ordem))) {
            unset($this->Ordem);
        } else {
            $this->Ordem = $ordem;
        }
        return $this;
    }
    /**
     * Get Origem value
     * @return int|null
     */
    public function getOrigem()
    {
        return $this->Origem;
    }
    /**
     * Set Origem value
     * @param int $origem
     * @return \StructType\SeriesComprasERP
     */
    public function setOrigem($origem = null)
    {
        // validation for constraint: int
        if (!is_null($origem) && !is_numeric($origem)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($origem)), __LINE__);
        }
        $this->Origem = $origem;
        return $this;
    }
    /**
     * Get Previsao 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 getPrevisao()
    {
        return isset($this->Previsao) ? $this->Previsao : null;
    }
    /**
     * Set Previsao 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 $previsao
     * @return \StructType\SeriesComprasERP
     */
    public function setPrevisao($previsao = null)
    {
        // validation for constraint: boolean
        if (!is_null($previsao) && !is_bool($previsao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($previsao)), __LINE__);
        }
        if (is_null($previsao) || (is_array($previsao) && empty($previsao))) {
            unset($this->Previsao);
        } else {
            $this->Previsao = $previsao;
        }
        return $this;
    }
    /**
     * Get Protegida value
     * @return bool|null
     */
    public function getProtegida()
    {
        return $this->Protegida;
    }
    /**
     * Set Protegida value
     * @param bool $protegida
     * @return \StructType\SeriesComprasERP
     */
    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 SemActividadeEmpresarial value
     * @return bool|null
     */
    public function getSemActividadeEmpresarial()
    {
        return $this->SemActividadeEmpresarial;
    }
    /**
     * Set SemActividadeEmpresarial value
     * @param bool $semActividadeEmpresarial
     * @return \StructType\SeriesComprasERP
     */
    public function setSemActividadeEmpresarial($semActividadeEmpresarial = null)
    {
        // validation for constraint: boolean
        if (!is_null($semActividadeEmpresarial) && !is_bool($semActividadeEmpresarial)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($semActividadeEmpresarial)), __LINE__);
        }
        $this->SemActividadeEmpresarial = $semActividadeEmpresarial;
        return $this;
    }
    /**
     * Get Serie 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 getSerie()
    {
        return isset($this->Serie) ? $this->Serie : null;
    }
    /**
     * Set Serie 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 $serie
     * @return \StructType\SeriesComprasERP
     */
    public function setSerie($serie = null)
    {
        // validation for constraint: string
        if (!is_null($serie) && !is_string($serie)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($serie)), __LINE__);
        }
        if (is_null($serie) || (is_array($serie) && empty($serie))) {
            unset($this->Serie);
        } else {
            $this->Serie = $serie;
        }
        return $this;
    }
    /**
     * Get SerieAutomatica 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 getSerieAutomatica()
    {
        return isset($this->SerieAutomatica) ? $this->SerieAutomatica : null;
    }
    /**
     * Set SerieAutomatica 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 $serieAutomatica
     * @return \StructType\SeriesComprasERP
     */
    public function setSerieAutomatica($serieAutomatica = null)
    {
        // validation for constraint: boolean
        if (!is_null($serieAutomatica) && !is_bool($serieAutomatica)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($serieAutomatica)), __LINE__);
        }
        if (is_null($serieAutomatica) || (is_array($serieAutomatica) && empty($serieAutomatica))) {
            unset($this->SerieAutomatica);
        } else {
            $this->SerieAutomatica = $serieAutomatica;
        }
        return $this;
    }
    /**
     * Get SerieInactiva 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 getSerieInactiva()
    {
        return isset($this->SerieInactiva) ? $this->SerieInactiva : null;
    }
    /**
     * Set SerieInactiva 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 $serieInactiva
     * @return \StructType\SeriesComprasERP
     */
    public function setSerieInactiva($serieInactiva = null)
    {
        // validation for constraint: boolean
        if (!is_null($serieInactiva) && !is_bool($serieInactiva)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($serieInactiva)), __LINE__);
        }
        if (is_null($serieInactiva) || (is_array($serieInactiva) && empty($serieInactiva))) {
            unset($this->SerieInactiva);
        } else {
            $this->SerieInactiva = $serieInactiva;
        }
        return $this;
    }
    /**
     * Get SerieIntegracao value
     * @return bool|null
     */
    public function getSerieIntegracao()
    {
        return $this->SerieIntegracao;
    }
    /**
     * Set SerieIntegracao value
     * @param bool $serieIntegracao
     * @return \StructType\SeriesComprasERP
     */
    public function setSerieIntegracao($serieIntegracao = null)
    {
        // validation for constraint: boolean
        if (!is_null($serieIntegracao) && !is_bool($serieIntegracao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($serieIntegracao)), __LINE__);
        }
        $this->SerieIntegracao = $serieIntegracao;
        return $this;
    }
    /**
     * Get SeriePorDefeito value
     * @return bool|null
     */
    public function getSeriePorDefeito()
    {
        return $this->SeriePorDefeito;
    }
    /**
     * Set SeriePorDefeito value
     * @param bool $seriePorDefeito
     * @return \StructType\SeriesComprasERP
     */
    public function setSeriePorDefeito($seriePorDefeito = null)
    {
        // validation for constraint: boolean
        if (!is_null($seriePorDefeito) && !is_bool($seriePorDefeito)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($seriePorDefeito)), __LINE__);
        }
        $this->SeriePorDefeito = $seriePorDefeito;
        return $this;
    }
    /**
     * Get SugereDataSistema 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 getSugereDataSistema()
    {
        return isset($this->SugereDataSistema) ? $this->SugereDataSistema : null;
    }
    /**
     * Set SugereDataSistema 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 $sugereDataSistema
     * @return \StructType\SeriesComprasERP
     */
    public function setSugereDataSistema($sugereDataSistema = null)
    {
        // validation for constraint: boolean
        if (!is_null($sugereDataSistema) && !is_bool($sugereDataSistema)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($sugereDataSistema)), __LINE__);
        }
        if (is_null($sugereDataSistema) || (is_array($sugereDataSistema) && empty($sugereDataSistema))) {
            unset($this->SugereDataSistema);
        } else {
            $this->SugereDataSistema = $sugereDataSistema;
        }
        return $this;
    }
    /**
     * Get SugereMoradaArmazem 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 getSugereMoradaArmazem()
    {
        return isset($this->SugereMoradaArmazem) ? $this->SugereMoradaArmazem : null;
    }
    /**
     * Set SugereMoradaArmazem 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 $sugereMoradaArmazem
     * @return \StructType\SeriesComprasERP
     */
    public function setSugereMoradaArmazem($sugereMoradaArmazem = null)
    {
        // validation for constraint: boolean
        if (!is_null($sugereMoradaArmazem) && !is_bool($sugereMoradaArmazem)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($sugereMoradaArmazem)), __LINE__);
        }
        if (is_null($sugereMoradaArmazem) || (is_array($sugereMoradaArmazem) && empty($sugereMoradaArmazem))) {
            unset($this->SugereMoradaArmazem);
        } else {
            $this->SugereMoradaArmazem = $sugereMoradaArmazem;
        }
        return $this;
    }
    /**
     * Get TipoComunicacao value
     * @return int|null
     */
    public function getTipoComunicacao()
    {
        return $this->TipoComunicacao;
    }
    /**
     * Set TipoComunicacao value
     * @param int $tipoComunicacao
     * @return \StructType\SeriesComprasERP
     */
    public function setTipoComunicacao($tipoComunicacao = null)
    {
        // validation for constraint: int
        if (!is_null($tipoComunicacao) && !is_numeric($tipoComunicacao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($tipoComunicacao)), __LINE__);
        }
        $this->TipoComunicacao = $tipoComunicacao;
        return $this;
    }
    /**
     * Get TipoDoc 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 getTipoDoc()
    {
        return isset($this->TipoDoc) ? $this->TipoDoc : null;
    }
    /**
     * Set TipoDoc 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 $tipoDoc
     * @return \StructType\SeriesComprasERP
     */
    public function setTipoDoc($tipoDoc = null)
    {
        // validation for constraint: string
        if (!is_null($tipoDoc) && !is_string($tipoDoc)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($tipoDoc)), __LINE__);
        }
        if (is_null($tipoDoc) || (is_array($tipoDoc) && empty($tipoDoc))) {
            unset($this->TipoDoc);
        } else {
            $this->TipoDoc = $tipoDoc;
        }
        return $this;
    }
    /**
     * Get TipoLancamento 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 getTipoLancamento()
    {
        return isset($this->TipoLancamento) ? $this->TipoLancamento : null;
    }
    /**
     * Set TipoLancamento 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 $tipoLancamento
     * @return \StructType\SeriesComprasERP
     */
    public function setTipoLancamento($tipoLancamento = null)
    {
        // validation for constraint: string
        if (!is_null($tipoLancamento) && !is_string($tipoLancamento)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($tipoLancamento)), __LINE__);
        }
        if (is_null($tipoLancamento) || (is_array($tipoLancamento) && empty($tipoLancamento))) {
            unset($this->TipoLancamento);
        } else {
            $this->TipoLancamento = $tipoLancamento;
        }
        return $this;
    }
    /**
     * Get UtilizaDescAbreviada 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 getUtilizaDescAbreviada()
    {
        return isset($this->UtilizaDescAbreviada) ? $this->UtilizaDescAbreviada : null;
    }
    /**
     * Set UtilizaDescAbreviada 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 $utilizaDescAbreviada
     * @return \StructType\SeriesComprasERP
     */
    public function setUtilizaDescAbreviada($utilizaDescAbreviada = null)
    {
        // validation for constraint: boolean
        if (!is_null($utilizaDescAbreviada) && !is_bool($utilizaDescAbreviada)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($utilizaDescAbreviada)), __LINE__);
        }
        if (is_null($utilizaDescAbreviada) || (is_array($utilizaDescAbreviada) && empty($utilizaDescAbreviada))) {
            unset($this->UtilizaDescAbreviada);
        } else {
            $this->UtilizaDescAbreviada = $utilizaDescAbreviada;
        }
        return $this;
    }
    /**
     * Get UtilizadoEmPMS value
     * @return bool|null
     */
    public function getUtilizadoEmPMS()
    {
        return $this->UtilizadoEmPMS;
    }
    /**
     * Set UtilizadoEmPMS value
     * @param bool $utilizadoEmPMS
     * @return \StructType\SeriesComprasERP
     */
    public function setUtilizadoEmPMS($utilizadoEmPMS = null)
    {
        // validation for constraint: boolean
        if (!is_null($utilizadoEmPMS) && !is_bool($utilizadoEmPMS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($utilizadoEmPMS)), __LINE__);
        }
        $this->UtilizadoEmPMS = $utilizadoEmPMS;
        return $this;
    }
    /**
     * Get UtilizadoEmPOS 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 getUtilizadoEmPOS()
    {
        return isset($this->UtilizadoEmPOS) ? $this->UtilizadoEmPOS : null;
    }
    /**
     * Set UtilizadoEmPOS 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 $utilizadoEmPOS
     * @return \StructType\SeriesComprasERP
     */
    public function setUtilizadoEmPOS($utilizadoEmPOS = null)
    {
        // validation for constraint: boolean
        if (!is_null($utilizadoEmPOS) && !is_bool($utilizadoEmPOS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($utilizadoEmPOS)), __LINE__);
        }
        if (is_null($utilizadoEmPOS) || (is_array($utilizadoEmPOS) && empty($utilizadoEmPOS))) {
            unset($this->UtilizadoEmPOS);
        } else {
            $this->UtilizadoEmPOS = $utilizadoEmPOS;
        }
        return $this;
    }
    /**
     * Get VersaoUltAct value
     * @return string|null
     */
    public function getVersaoUltAct()
    {
        return $this->VersaoUltAct;
    }
    /**
     * Set VersaoUltAct value
     * @param string $versaoUltAct
     * @return \StructType\SeriesComprasERP
     */
    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;
    }
    /**
     * Get eGAR_Comunica value
     * @return bool|null
     */
    public function getEGAR_Comunica()
    {
        return $this->eGAR_Comunica;
    }
    /**
     * Set eGAR_Comunica value
     * @param bool $eGAR_Comunica
     * @return \StructType\SeriesComprasERP
     */
    public function setEGAR_Comunica($eGAR_Comunica = null)
    {
        // validation for constraint: boolean
        if (!is_null($eGAR_Comunica) && !is_bool($eGAR_Comunica)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($eGAR_Comunica)), __LINE__);
        }
        $this->eGAR_Comunica = $eGAR_Comunica;
        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\SeriesComprasERP
     */
    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__;
    }
}
