<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for SeriesStocksERP StructType
 * Meta informations extracted from the WSDL
 * - nillable: true
 * - type: tns:SeriesStocksERP
 * @subpackage Structs
 */
class SeriesStocksERP 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 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 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 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 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 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 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 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;
    /**
     * Constructor method for SeriesStocksERP
     * @uses SeriesStocksERP::setAbreGaveta()
     * @uses SeriesStocksERP::setAlterarData()
     * @uses SeriesStocksERP::setArmazemSugestao()
     * @uses SeriesStocksERP::setConfig()
     * @uses SeriesStocksERP::setDataFinal()
     * @uses SeriesStocksERP::setDataInicial()
     * @uses SeriesStocksERP::setDataUltimoDocumento()
     * @uses SeriesStocksERP::setDescricao()
     * @uses SeriesStocksERP::setDescricaoVia01()
     * @uses SeriesStocksERP::setDescricaoVia02()
     * @uses SeriesStocksERP::setDescricaoVia03()
     * @uses SeriesStocksERP::setDescricaoVia04()
     * @uses SeriesStocksERP::setDescricaoVia05()
     * @uses SeriesStocksERP::setDescricaoVia06()
     * @uses SeriesStocksERP::setImpressoraPorDefeito()
     * @uses SeriesStocksERP::setImprimirDirectamente()
     * @uses SeriesStocksERP::setIvaIncluido()
     * @uses SeriesStocksERP::setLimiteInferior()
     * @uses SeriesStocksERP::setLimiteSuperior()
     * @uses SeriesStocksERP::setLocalSugestao()
     * @uses SeriesStocksERP::setModeloPOS()
     * @uses SeriesStocksERP::setNumVias()
     * @uses SeriesStocksERP::setNumeracaoAutomatica()
     * @uses SeriesStocksERP::setNumerador()
     * @uses SeriesStocksERP::setOrdem()
     * @uses SeriesStocksERP::setPrevisao()
     * @uses SeriesStocksERP::setProtegida()
     * @uses SeriesStocksERP::setSerie()
     * @uses SeriesStocksERP::setSerieAutomatica()
     * @uses SeriesStocksERP::setSerieInactiva()
     * @uses SeriesStocksERP::setSeriePorDefeito()
     * @uses SeriesStocksERP::setSugereDataSistema()
     * @uses SeriesStocksERP::setSugereMoradaArmazem()
     * @uses SeriesStocksERP::setTipoDoc()
     * @uses SeriesStocksERP::setTipoLancamento()
     * @uses SeriesStocksERP::setUtilizaDescAbreviada()
     * @uses SeriesStocksERP::setUtilizadoEmPMS()
     * @uses SeriesStocksERP::setUtilizadoEmPOS()
     * @uses SeriesStocksERP::setVersaoUltAct()
     * @param bool $abreGaveta
     * @param bool $alterarData
     * @param string $armazemSugestao
     * @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 string $impressoraPorDefeito
     * @param bool $imprimirDirectamente
     * @param bool $ivaIncluido
     * @param int $limiteInferior
     * @param int $limiteSuperior
     * @param string $localSugestao
     * @param string $modeloPOS
     * @param string $numVias
     * @param bool $numeracaoAutomatica
     * @param int $numerador
     * @param int $ordem
     * @param bool $previsao
     * @param bool $protegida
     * @param string $serie
     * @param bool $serieAutomatica
     * @param bool $serieInactiva
     * @param bool $seriePorDefeito
     * @param bool $sugereDataSistema
     * @param bool $sugereMoradaArmazem
     * @param string $tipoDoc
     * @param string $tipoLancamento
     * @param bool $utilizaDescAbreviada
     * @param bool $utilizadoEmPMS
     * @param bool $utilizadoEmPOS
     * @param string $versaoUltAct
     */
    public function __construct($abreGaveta = null, $alterarData = null, $armazemSugestao = null, $config = null, $dataFinal = null, $dataInicial = null, $dataUltimoDocumento = null, $descricao = null, $descricaoVia01 = null, $descricaoVia02 = null, $descricaoVia03 = null, $descricaoVia04 = null, $descricaoVia05 = null, $descricaoVia06 = null, $impressoraPorDefeito = null, $imprimirDirectamente = null, $ivaIncluido = null, $limiteInferior = null, $limiteSuperior = null, $localSugestao = null, $modeloPOS = null, $numVias = null, $numeracaoAutomatica = null, $numerador = null, $ordem = null, $previsao = null, $protegida = null, $serie = null, $serieAutomatica = null, $serieInactiva = null, $seriePorDefeito = null, $sugereDataSistema = null, $sugereMoradaArmazem = null, $tipoDoc = null, $tipoLancamento = null, $utilizaDescAbreviada = null, $utilizadoEmPMS = null, $utilizadoEmPOS = null, $versaoUltAct = null)
    {
        $this
            ->setAbreGaveta($abreGaveta)
            ->setAlterarData($alterarData)
            ->setArmazemSugestao($armazemSugestao)
            ->setConfig($config)
            ->setDataFinal($dataFinal)
            ->setDataInicial($dataInicial)
            ->setDataUltimoDocumento($dataUltimoDocumento)
            ->setDescricao($descricao)
            ->setDescricaoVia01($descricaoVia01)
            ->setDescricaoVia02($descricaoVia02)
            ->setDescricaoVia03($descricaoVia03)
            ->setDescricaoVia04($descricaoVia04)
            ->setDescricaoVia05($descricaoVia05)
            ->setDescricaoVia06($descricaoVia06)
            ->setImpressoraPorDefeito($impressoraPorDefeito)
            ->setImprimirDirectamente($imprimirDirectamente)
            ->setIvaIncluido($ivaIncluido)
            ->setLimiteInferior($limiteInferior)
            ->setLimiteSuperior($limiteSuperior)
            ->setLocalSugestao($localSugestao)
            ->setModeloPOS($modeloPOS)
            ->setNumVias($numVias)
            ->setNumeracaoAutomatica($numeracaoAutomatica)
            ->setNumerador($numerador)
            ->setOrdem($ordem)
            ->setPrevisao($previsao)
            ->setProtegida($protegida)
            ->setSerie($serie)
            ->setSerieAutomatica($serieAutomatica)
            ->setSerieInactiva($serieInactiva)
            ->setSeriePorDefeito($seriePorDefeito)
            ->setSugereDataSistema($sugereDataSistema)
            ->setSugereMoradaArmazem($sugereMoradaArmazem)
            ->setTipoDoc($tipoDoc)
            ->setTipoLancamento($tipoLancamento)
            ->setUtilizaDescAbreviada($utilizaDescAbreviada)
            ->setUtilizadoEmPMS($utilizadoEmPMS)
            ->setUtilizadoEmPOS($utilizadoEmPOS)
            ->setVersaoUltAct($versaoUltAct);
    }
    /**
     * 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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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 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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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 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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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 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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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 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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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 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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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 SeriePorDefeito value
     * @return bool|null
     */
    public function getSeriePorDefeito()
    {
        return $this->SeriePorDefeito;
    }
    /**
     * Set SeriePorDefeito value
     * @param bool $seriePorDefeito
     * @return \StructType\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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 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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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\SeriesStocksERP
     */
    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__;
    }
}
