<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for CabecInternosERP StructType
 * Meta informations extracted from the WSDL
 * - nillable: true
 * - type: tns:CabecInternosERP
 * @subpackage Structs
 */
class CabecInternosERP extends AbstractStructBase
{
    /**
     * The AnoCBL
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $AnoCBL;
    /**
     * The Anulado
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Anulado;
    /**
     * The Arredondamento
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $Arredondamento;
    /**
     * The ArredondamentoIva
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $ArredondamentoIva;
    /**
     * The Cambio
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $Cambio;
    /**
     * The CambioMAlt
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $CambioMAlt;
    /**
     * The CambioMBase
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $CambioMBase;
    /**
     * The CodPostal
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodPostal;
    /**
     * The CodPostalLocalidade
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodPostalLocalidade;
    /**
     * The CondPag
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CondPag;
    /**
     * The ContaDomiciliacao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ContaDomiciliacao;
    /**
     * The Data
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Data;
    /**
     * The DataCarga
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DataCarga;
    /**
     * The DataDescarga
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DataDescarga;
    /**
     * The DataEntrega
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DataEntrega;
    /**
     * The DataUltimaActualizacao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DataUltimaActualizacao;
    /**
     * The DataVencimento
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DataVencimento;
    /**
     * The DescEntidade
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $DescEntidade;
    /**
     * The DescPag
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $DescPag;
    /**
     * The Destinatario
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Destinatario;
    /**
     * The Diario
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Diario;
    /**
     * The Distrito
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Distrito;
    /**
     * The DocImp
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $DocImp;
    /**
     * The Entidade
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Entidade;
    /**
     * The EspacoFiscal
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $EspacoFiscal;
    /**
     * The Estado
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Estado;
    /**
     * The Fechado
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Fechado;
    /**
     * The Filial
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Filial;
    /**
     * The Fluxo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Fluxo;
    /**
     * The HoraCarga
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $HoraCarga;
    /**
     * The HoraDescarga
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $HoraDescarga;
    /**
     * The Id
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * - pattern: [\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}
     * - type: tns:guid
     * @var string
     */
    public $Id;
    /**
     * The IdCabecEstorno
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true | true
     * - pattern: [\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}
     * - type: tns:guid
     * @var string
     */
    public $IdCabecEstorno;
    /**
     * The IdCabecMovCbl
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true | true
     * - pattern: [\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}
     * - type: tns:guid
     * @var string
     */
    public $IdCabecMovCbl;
    /**
     * The IdGDOC
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true | true
     * - pattern: [\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}
     * - type: tns:guid
     * @var string
     */
    public $IdGDOC;
    /**
     * The LocalCarga
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $LocalCarga;
    /**
     * The LocalDescarga
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $LocalDescarga;
    /**
     * The LocalOperacao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $LocalOperacao;
    /**
     * The Localidade
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Localidade;
    /**
     * The Matricula
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Matricula;
    /**
     * The ModoExp
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ModoExp;
    /**
     * The ModoPag
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ModoPag;
    /**
     * The Moeda
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Moeda;
    /**
     * The MoedaDaUEM
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $MoedaDaUEM;
    /**
     * The Morada
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Morada;
    /**
     * The Morada2
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Morada2;
    /**
     * The MoradaAltEntrega
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $MoradaAltEntrega;
    /**
     * The MovContab
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $MovContab;
    /**
     * The Nome
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Nome;
    /**
     * The NumContribuinte
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NumContribuinte;
    /**
     * The NumDiario
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $NumDiario;
    /**
     * The NumDoc
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $NumDoc;
    /**
     * The ObraId
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true | true
     * - pattern: [\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}
     * - type: tns:guid
     * @var string
     */
    public $ObraId;
    /**
     * The Observacoes
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Observacoes;
    /**
     * The Pais
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Pais;
    /**
     * The Posto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Posto;
    /**
     * The Protegida
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $Protegida;
    /**
     * The Referencia
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Referencia;
    /**
     * The RegimeIva
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $RegimeIva;
    /**
     * The RegimeIvaReembolsos
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $RegimeIvaReembolsos;
    /**
     * The Requisitante
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Requisitante;
    /**
     * The Serie
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Serie;
    /**
     * The TipoDoc
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TipoDoc;
    /**
     * The TipoEntidade
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TipoEntidade;
    /**
     * The TipoLancamento
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TipoLancamento;
    /**
     * The TotalDesc
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $TotalDesc;
    /**
     * The TotalEcotaxa
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $TotalEcotaxa;
    /**
     * The TotalIva
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $TotalIva;
    /**
     * The TotalMerc
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $TotalMerc;
    /**
     * The TotalRecargo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $TotalRecargo;
    /**
     * The UtilizaMoradaAltEntrega
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $UtilizaMoradaAltEntrega;
    /**
     * The Utilizador
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Utilizador;
    /**
     * The VersaoUltAct
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $VersaoUltAct;
    /**
     * The WBSItem
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $WBSItem;
    /**
     * The ePriApprovalInstanceId
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true | true
     * - pattern: [\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}
     * - type: tns:guid
     * @var string
     */
    public $ePriApprovalInstanceId;
    /**
     * Constructor method for CabecInternosERP
     * @uses CabecInternosERP::setAnoCBL()
     * @uses CabecInternosERP::setAnulado()
     * @uses CabecInternosERP::setArredondamento()
     * @uses CabecInternosERP::setArredondamentoIva()
     * @uses CabecInternosERP::setCambio()
     * @uses CabecInternosERP::setCambioMAlt()
     * @uses CabecInternosERP::setCambioMBase()
     * @uses CabecInternosERP::setCodPostal()
     * @uses CabecInternosERP::setCodPostalLocalidade()
     * @uses CabecInternosERP::setCondPag()
     * @uses CabecInternosERP::setContaDomiciliacao()
     * @uses CabecInternosERP::setData()
     * @uses CabecInternosERP::setDataCarga()
     * @uses CabecInternosERP::setDataDescarga()
     * @uses CabecInternosERP::setDataEntrega()
     * @uses CabecInternosERP::setDataUltimaActualizacao()
     * @uses CabecInternosERP::setDataVencimento()
     * @uses CabecInternosERP::setDescEntidade()
     * @uses CabecInternosERP::setDescPag()
     * @uses CabecInternosERP::setDestinatario()
     * @uses CabecInternosERP::setDiario()
     * @uses CabecInternosERP::setDistrito()
     * @uses CabecInternosERP::setDocImp()
     * @uses CabecInternosERP::setEntidade()
     * @uses CabecInternosERP::setEspacoFiscal()
     * @uses CabecInternosERP::setEstado()
     * @uses CabecInternosERP::setFechado()
     * @uses CabecInternosERP::setFilial()
     * @uses CabecInternosERP::setFluxo()
     * @uses CabecInternosERP::setHoraCarga()
     * @uses CabecInternosERP::setHoraDescarga()
     * @uses CabecInternosERP::setId()
     * @uses CabecInternosERP::setIdCabecEstorno()
     * @uses CabecInternosERP::setIdCabecMovCbl()
     * @uses CabecInternosERP::setIdGDOC()
     * @uses CabecInternosERP::setLocalCarga()
     * @uses CabecInternosERP::setLocalDescarga()
     * @uses CabecInternosERP::setLocalOperacao()
     * @uses CabecInternosERP::setLocalidade()
     * @uses CabecInternosERP::setMatricula()
     * @uses CabecInternosERP::setModoExp()
     * @uses CabecInternosERP::setModoPag()
     * @uses CabecInternosERP::setMoeda()
     * @uses CabecInternosERP::setMoedaDaUEM()
     * @uses CabecInternosERP::setMorada()
     * @uses CabecInternosERP::setMorada2()
     * @uses CabecInternosERP::setMoradaAltEntrega()
     * @uses CabecInternosERP::setMovContab()
     * @uses CabecInternosERP::setNome()
     * @uses CabecInternosERP::setNumContribuinte()
     * @uses CabecInternosERP::setNumDiario()
     * @uses CabecInternosERP::setNumDoc()
     * @uses CabecInternosERP::setObraId()
     * @uses CabecInternosERP::setObservacoes()
     * @uses CabecInternosERP::setPais()
     * @uses CabecInternosERP::setPosto()
     * @uses CabecInternosERP::setProtegida()
     * @uses CabecInternosERP::setReferencia()
     * @uses CabecInternosERP::setRegimeIva()
     * @uses CabecInternosERP::setRegimeIvaReembolsos()
     * @uses CabecInternosERP::setRequisitante()
     * @uses CabecInternosERP::setSerie()
     * @uses CabecInternosERP::setTipoDoc()
     * @uses CabecInternosERP::setTipoEntidade()
     * @uses CabecInternosERP::setTipoLancamento()
     * @uses CabecInternosERP::setTotalDesc()
     * @uses CabecInternosERP::setTotalEcotaxa()
     * @uses CabecInternosERP::setTotalIva()
     * @uses CabecInternosERP::setTotalMerc()
     * @uses CabecInternosERP::setTotalRecargo()
     * @uses CabecInternosERP::setUtilizaMoradaAltEntrega()
     * @uses CabecInternosERP::setUtilizador()
     * @uses CabecInternosERP::setVersaoUltAct()
     * @uses CabecInternosERP::setWBSItem()
     * @uses CabecInternosERP::setEPriApprovalInstanceId()
     * @param int $anoCBL
     * @param bool $anulado
     * @param int $arredondamento
     * @param int $arredondamentoIva
     * @param float $cambio
     * @param float $cambioMAlt
     * @param float $cambioMBase
     * @param string $codPostal
     * @param string $codPostalLocalidade
     * @param string $condPag
     * @param string $contaDomiciliacao
     * @param string $data
     * @param string $dataCarga
     * @param string $dataDescarga
     * @param string $dataEntrega
     * @param string $dataUltimaActualizacao
     * @param string $dataVencimento
     * @param float $descEntidade
     * @param float $descPag
     * @param string $destinatario
     * @param string $diario
     * @param string $distrito
     * @param bool $docImp
     * @param string $entidade
     * @param int $espacoFiscal
     * @param string $estado
     * @param bool $fechado
     * @param string $filial
     * @param string $fluxo
     * @param string $horaCarga
     * @param string $horaDescarga
     * @param string $id
     * @param string $idCabecEstorno
     * @param string $idCabecMovCbl
     * @param string $idGDOC
     * @param string $localCarga
     * @param string $localDescarga
     * @param string $localOperacao
     * @param string $localidade
     * @param string $matricula
     * @param string $modoExp
     * @param string $modoPag
     * @param string $moeda
     * @param bool $moedaDaUEM
     * @param string $morada
     * @param string $morada2
     * @param string $moradaAltEntrega
     * @param int $movContab
     * @param string $nome
     * @param string $numContribuinte
     * @param int $numDiario
     * @param int $numDoc
     * @param string $obraId
     * @param string $observacoes
     * @param string $pais
     * @param string $posto
     * @param bool $protegida
     * @param string $referencia
     * @param string $regimeIva
     * @param int $regimeIvaReembolsos
     * @param string $requisitante
     * @param string $serie
     * @param string $tipoDoc
     * @param string $tipoEntidade
     * @param string $tipoLancamento
     * @param float $totalDesc
     * @param float $totalEcotaxa
     * @param float $totalIva
     * @param float $totalMerc
     * @param float $totalRecargo
     * @param bool $utilizaMoradaAltEntrega
     * @param string $utilizador
     * @param string $versaoUltAct
     * @param string $wBSItem
     * @param string $ePriApprovalInstanceId
     */
    public function __construct($anoCBL = null, $anulado = null, $arredondamento = null, $arredondamentoIva = null, $cambio = null, $cambioMAlt = null, $cambioMBase = null, $codPostal = null, $codPostalLocalidade = null, $condPag = null, $contaDomiciliacao = null, $data = null, $dataCarga = null, $dataDescarga = null, $dataEntrega = null, $dataUltimaActualizacao = null, $dataVencimento = null, $descEntidade = null, $descPag = null, $destinatario = null, $diario = null, $distrito = null, $docImp = null, $entidade = null, $espacoFiscal = null, $estado = null, $fechado = null, $filial = null, $fluxo = null, $horaCarga = null, $horaDescarga = null, $id = null, $idCabecEstorno = null, $idCabecMovCbl = null, $idGDOC = null, $localCarga = null, $localDescarga = null, $localOperacao = null, $localidade = null, $matricula = null, $modoExp = null, $modoPag = null, $moeda = null, $moedaDaUEM = null, $morada = null, $morada2 = null, $moradaAltEntrega = null, $movContab = null, $nome = null, $numContribuinte = null, $numDiario = null, $numDoc = null, $obraId = null, $observacoes = null, $pais = null, $posto = null, $protegida = null, $referencia = null, $regimeIva = null, $regimeIvaReembolsos = null, $requisitante = null, $serie = null, $tipoDoc = null, $tipoEntidade = null, $tipoLancamento = null, $totalDesc = null, $totalEcotaxa = null, $totalIva = null, $totalMerc = null, $totalRecargo = null, $utilizaMoradaAltEntrega = null, $utilizador = null, $versaoUltAct = null, $wBSItem = null, $ePriApprovalInstanceId = null)
    {
        $this
            ->setAnoCBL($anoCBL)
            ->setAnulado($anulado)
            ->setArredondamento($arredondamento)
            ->setArredondamentoIva($arredondamentoIva)
            ->setCambio($cambio)
            ->setCambioMAlt($cambioMAlt)
            ->setCambioMBase($cambioMBase)
            ->setCodPostal($codPostal)
            ->setCodPostalLocalidade($codPostalLocalidade)
            ->setCondPag($condPag)
            ->setContaDomiciliacao($contaDomiciliacao)
            ->setData($data)
            ->setDataCarga($dataCarga)
            ->setDataDescarga($dataDescarga)
            ->setDataEntrega($dataEntrega)
            ->setDataUltimaActualizacao($dataUltimaActualizacao)
            ->setDataVencimento($dataVencimento)
            ->setDescEntidade($descEntidade)
            ->setDescPag($descPag)
            ->setDestinatario($destinatario)
            ->setDiario($diario)
            ->setDistrito($distrito)
            ->setDocImp($docImp)
            ->setEntidade($entidade)
            ->setEspacoFiscal($espacoFiscal)
            ->setEstado($estado)
            ->setFechado($fechado)
            ->setFilial($filial)
            ->setFluxo($fluxo)
            ->setHoraCarga($horaCarga)
            ->setHoraDescarga($horaDescarga)
            ->setId($id)
            ->setIdCabecEstorno($idCabecEstorno)
            ->setIdCabecMovCbl($idCabecMovCbl)
            ->setIdGDOC($idGDOC)
            ->setLocalCarga($localCarga)
            ->setLocalDescarga($localDescarga)
            ->setLocalOperacao($localOperacao)
            ->setLocalidade($localidade)
            ->setMatricula($matricula)
            ->setModoExp($modoExp)
            ->setModoPag($modoPag)
            ->setMoeda($moeda)
            ->setMoedaDaUEM($moedaDaUEM)
            ->setMorada($morada)
            ->setMorada2($morada2)
            ->setMoradaAltEntrega($moradaAltEntrega)
            ->setMovContab($movContab)
            ->setNome($nome)
            ->setNumContribuinte($numContribuinte)
            ->setNumDiario($numDiario)
            ->setNumDoc($numDoc)
            ->setObraId($obraId)
            ->setObservacoes($observacoes)
            ->setPais($pais)
            ->setPosto($posto)
            ->setProtegida($protegida)
            ->setReferencia($referencia)
            ->setRegimeIva($regimeIva)
            ->setRegimeIvaReembolsos($regimeIvaReembolsos)
            ->setRequisitante($requisitante)
            ->setSerie($serie)
            ->setTipoDoc($tipoDoc)
            ->setTipoEntidade($tipoEntidade)
            ->setTipoLancamento($tipoLancamento)
            ->setTotalDesc($totalDesc)
            ->setTotalEcotaxa($totalEcotaxa)
            ->setTotalIva($totalIva)
            ->setTotalMerc($totalMerc)
            ->setTotalRecargo($totalRecargo)
            ->setUtilizaMoradaAltEntrega($utilizaMoradaAltEntrega)
            ->setUtilizador($utilizador)
            ->setVersaoUltAct($versaoUltAct)
            ->setWBSItem($wBSItem)
            ->setEPriApprovalInstanceId($ePriApprovalInstanceId);
    }
    /**
     * Get AnoCBL 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 getAnoCBL()
    {
        return isset($this->AnoCBL) ? $this->AnoCBL : null;
    }
    /**
     * Set AnoCBL 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 $anoCBL
     * @return \StructType\CabecInternosERP
     */
    public function setAnoCBL($anoCBL = null)
    {
        // validation for constraint: int
        if (!is_null($anoCBL) && !is_numeric($anoCBL)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($anoCBL)), __LINE__);
        }
        if (is_null($anoCBL) || (is_array($anoCBL) && empty($anoCBL))) {
            unset($this->AnoCBL);
        } else {
            $this->AnoCBL = $anoCBL;
        }
        return $this;
    }
    /**
     * Get Anulado 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 getAnulado()
    {
        return isset($this->Anulado) ? $this->Anulado : null;
    }
    /**
     * Set Anulado 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 $anulado
     * @return \StructType\CabecInternosERP
     */
    public function setAnulado($anulado = null)
    {
        // validation for constraint: boolean
        if (!is_null($anulado) && !is_bool($anulado)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($anulado)), __LINE__);
        }
        if (is_null($anulado) || (is_array($anulado) && empty($anulado))) {
            unset($this->Anulado);
        } else {
            $this->Anulado = $anulado;
        }
        return $this;
    }
    /**
     * Get Arredondamento 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 getArredondamento()
    {
        return isset($this->Arredondamento) ? $this->Arredondamento : null;
    }
    /**
     * Set Arredondamento 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 $arredondamento
     * @return \StructType\CabecInternosERP
     */
    public function setArredondamento($arredondamento = null)
    {
        // validation for constraint: int
        if (!is_null($arredondamento) && !is_numeric($arredondamento)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($arredondamento)), __LINE__);
        }
        if (is_null($arredondamento) || (is_array($arredondamento) && empty($arredondamento))) {
            unset($this->Arredondamento);
        } else {
            $this->Arredondamento = $arredondamento;
        }
        return $this;
    }
    /**
     * Get ArredondamentoIva 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 getArredondamentoIva()
    {
        return isset($this->ArredondamentoIva) ? $this->ArredondamentoIva : null;
    }
    /**
     * Set ArredondamentoIva 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 $arredondamentoIva
     * @return \StructType\CabecInternosERP
     */
    public function setArredondamentoIva($arredondamentoIva = null)
    {
        // validation for constraint: int
        if (!is_null($arredondamentoIva) && !is_numeric($arredondamentoIva)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($arredondamentoIva)), __LINE__);
        }
        if (is_null($arredondamentoIva) || (is_array($arredondamentoIva) && empty($arredondamentoIva))) {
            unset($this->ArredondamentoIva);
        } else {
            $this->ArredondamentoIva = $arredondamentoIva;
        }
        return $this;
    }
    /**
     * Get Cambio value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return float|null
     */
    public function getCambio()
    {
        return isset($this->Cambio) ? $this->Cambio : null;
    }
    /**
     * Set Cambio value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param float $cambio
     * @return \StructType\CabecInternosERP
     */
    public function setCambio($cambio = null)
    {
        if (is_null($cambio) || (is_array($cambio) && empty($cambio))) {
            unset($this->Cambio);
        } else {
            $this->Cambio = $cambio;
        }
        return $this;
    }
    /**
     * Get CambioMAlt value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return float|null
     */
    public function getCambioMAlt()
    {
        return isset($this->CambioMAlt) ? $this->CambioMAlt : null;
    }
    /**
     * Set CambioMAlt value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param float $cambioMAlt
     * @return \StructType\CabecInternosERP
     */
    public function setCambioMAlt($cambioMAlt = null)
    {
        if (is_null($cambioMAlt) || (is_array($cambioMAlt) && empty($cambioMAlt))) {
            unset($this->CambioMAlt);
        } else {
            $this->CambioMAlt = $cambioMAlt;
        }
        return $this;
    }
    /**
     * Get CambioMBase value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return float|null
     */
    public function getCambioMBase()
    {
        return isset($this->CambioMBase) ? $this->CambioMBase : null;
    }
    /**
     * Set CambioMBase value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param float $cambioMBase
     * @return \StructType\CabecInternosERP
     */
    public function setCambioMBase($cambioMBase = null)
    {
        if (is_null($cambioMBase) || (is_array($cambioMBase) && empty($cambioMBase))) {
            unset($this->CambioMBase);
        } else {
            $this->CambioMBase = $cambioMBase;
        }
        return $this;
    }
    /**
     * Get CodPostal 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 getCodPostal()
    {
        return isset($this->CodPostal) ? $this->CodPostal : null;
    }
    /**
     * Set CodPostal 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 $codPostal
     * @return \StructType\CabecInternosERP
     */
    public function setCodPostal($codPostal = null)
    {
        // validation for constraint: string
        if (!is_null($codPostal) && !is_string($codPostal)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codPostal)), __LINE__);
        }
        if (is_null($codPostal) || (is_array($codPostal) && empty($codPostal))) {
            unset($this->CodPostal);
        } else {
            $this->CodPostal = $codPostal;
        }
        return $this;
    }
    /**
     * Get CodPostalLocalidade 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 getCodPostalLocalidade()
    {
        return isset($this->CodPostalLocalidade) ? $this->CodPostalLocalidade : null;
    }
    /**
     * Set CodPostalLocalidade 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 $codPostalLocalidade
     * @return \StructType\CabecInternosERP
     */
    public function setCodPostalLocalidade($codPostalLocalidade = null)
    {
        // validation for constraint: string
        if (!is_null($codPostalLocalidade) && !is_string($codPostalLocalidade)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codPostalLocalidade)), __LINE__);
        }
        if (is_null($codPostalLocalidade) || (is_array($codPostalLocalidade) && empty($codPostalLocalidade))) {
            unset($this->CodPostalLocalidade);
        } else {
            $this->CodPostalLocalidade = $codPostalLocalidade;
        }
        return $this;
    }
    /**
     * Get CondPag 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 getCondPag()
    {
        return isset($this->CondPag) ? $this->CondPag : null;
    }
    /**
     * Set CondPag 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 $condPag
     * @return \StructType\CabecInternosERP
     */
    public function setCondPag($condPag = null)
    {
        // validation for constraint: string
        if (!is_null($condPag) && !is_string($condPag)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($condPag)), __LINE__);
        }
        if (is_null($condPag) || (is_array($condPag) && empty($condPag))) {
            unset($this->CondPag);
        } else {
            $this->CondPag = $condPag;
        }
        return $this;
    }
    /**
     * Get ContaDomiciliacao 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 getContaDomiciliacao()
    {
        return isset($this->ContaDomiciliacao) ? $this->ContaDomiciliacao : null;
    }
    /**
     * Set ContaDomiciliacao 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 $contaDomiciliacao
     * @return \StructType\CabecInternosERP
     */
    public function setContaDomiciliacao($contaDomiciliacao = null)
    {
        // validation for constraint: string
        if (!is_null($contaDomiciliacao) && !is_string($contaDomiciliacao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($contaDomiciliacao)), __LINE__);
        }
        if (is_null($contaDomiciliacao) || (is_array($contaDomiciliacao) && empty($contaDomiciliacao))) {
            unset($this->ContaDomiciliacao);
        } else {
            $this->ContaDomiciliacao = $contaDomiciliacao;
        }
        return $this;
    }
    /**
     * Get Data 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 getData()
    {
        return isset($this->Data) ? $this->Data : null;
    }
    /**
     * Set Data 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 $data
     * @return \StructType\CabecInternosERP
     */
    public function setData($data = null)
    {
        // validation for constraint: string
        if (!is_null($data) && !is_string($data)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($data)), __LINE__);
        }
        if (is_null($data) || (is_array($data) && empty($data))) {
            unset($this->Data);
        } else {
            $this->Data = $data;
        }
        return $this;
    }
    /**
     * Get DataCarga 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 getDataCarga()
    {
        return isset($this->DataCarga) ? $this->DataCarga : null;
    }
    /**
     * Set DataCarga 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 $dataCarga
     * @return \StructType\CabecInternosERP
     */
    public function setDataCarga($dataCarga = null)
    {
        // validation for constraint: string
        if (!is_null($dataCarga) && !is_string($dataCarga)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataCarga)), __LINE__);
        }
        if (is_null($dataCarga) || (is_array($dataCarga) && empty($dataCarga))) {
            unset($this->DataCarga);
        } else {
            $this->DataCarga = $dataCarga;
        }
        return $this;
    }
    /**
     * Get DataDescarga 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 getDataDescarga()
    {
        return isset($this->DataDescarga) ? $this->DataDescarga : null;
    }
    /**
     * Set DataDescarga 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 $dataDescarga
     * @return \StructType\CabecInternosERP
     */
    public function setDataDescarga($dataDescarga = null)
    {
        // validation for constraint: string
        if (!is_null($dataDescarga) && !is_string($dataDescarga)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataDescarga)), __LINE__);
        }
        if (is_null($dataDescarga) || (is_array($dataDescarga) && empty($dataDescarga))) {
            unset($this->DataDescarga);
        } else {
            $this->DataDescarga = $dataDescarga;
        }
        return $this;
    }
    /**
     * Get DataEntrega 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 getDataEntrega()
    {
        return isset($this->DataEntrega) ? $this->DataEntrega : null;
    }
    /**
     * Set DataEntrega 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 $dataEntrega
     * @return \StructType\CabecInternosERP
     */
    public function setDataEntrega($dataEntrega = null)
    {
        // validation for constraint: string
        if (!is_null($dataEntrega) && !is_string($dataEntrega)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataEntrega)), __LINE__);
        }
        if (is_null($dataEntrega) || (is_array($dataEntrega) && empty($dataEntrega))) {
            unset($this->DataEntrega);
        } else {
            $this->DataEntrega = $dataEntrega;
        }
        return $this;
    }
    /**
     * Get DataUltimaActualizacao value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getDataUltimaActualizacao()
    {
        return isset($this->DataUltimaActualizacao) ? $this->DataUltimaActualizacao : null;
    }
    /**
     * Set DataUltimaActualizacao value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $dataUltimaActualizacao
     * @return \StructType\CabecInternosERP
     */
    public function setDataUltimaActualizacao($dataUltimaActualizacao = null)
    {
        // validation for constraint: string
        if (!is_null($dataUltimaActualizacao) && !is_string($dataUltimaActualizacao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataUltimaActualizacao)), __LINE__);
        }
        if (is_null($dataUltimaActualizacao) || (is_array($dataUltimaActualizacao) && empty($dataUltimaActualizacao))) {
            unset($this->DataUltimaActualizacao);
        } else {
            $this->DataUltimaActualizacao = $dataUltimaActualizacao;
        }
        return $this;
    }
    /**
     * Get DataVencimento 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 getDataVencimento()
    {
        return isset($this->DataVencimento) ? $this->DataVencimento : null;
    }
    /**
     * Set DataVencimento 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 $dataVencimento
     * @return \StructType\CabecInternosERP
     */
    public function setDataVencimento($dataVencimento = null)
    {
        // validation for constraint: string
        if (!is_null($dataVencimento) && !is_string($dataVencimento)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataVencimento)), __LINE__);
        }
        if (is_null($dataVencimento) || (is_array($dataVencimento) && empty($dataVencimento))) {
            unset($this->DataVencimento);
        } else {
            $this->DataVencimento = $dataVencimento;
        }
        return $this;
    }
    /**
     * Get DescEntidade value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return float|null
     */
    public function getDescEntidade()
    {
        return isset($this->DescEntidade) ? $this->DescEntidade : null;
    }
    /**
     * Set DescEntidade value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param float $descEntidade
     * @return \StructType\CabecInternosERP
     */
    public function setDescEntidade($descEntidade = null)
    {
        if (is_null($descEntidade) || (is_array($descEntidade) && empty($descEntidade))) {
            unset($this->DescEntidade);
        } else {
            $this->DescEntidade = $descEntidade;
        }
        return $this;
    }
    /**
     * Get DescPag value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return float|null
     */
    public function getDescPag()
    {
        return isset($this->DescPag) ? $this->DescPag : null;
    }
    /**
     * Set DescPag value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param float $descPag
     * @return \StructType\CabecInternosERP
     */
    public function setDescPag($descPag = null)
    {
        if (is_null($descPag) || (is_array($descPag) && empty($descPag))) {
            unset($this->DescPag);
        } else {
            $this->DescPag = $descPag;
        }
        return $this;
    }
    /**
     * Get Destinatario 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 getDestinatario()
    {
        return isset($this->Destinatario) ? $this->Destinatario : null;
    }
    /**
     * Set Destinatario 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 $destinatario
     * @return \StructType\CabecInternosERP
     */
    public function setDestinatario($destinatario = null)
    {
        // validation for constraint: string
        if (!is_null($destinatario) && !is_string($destinatario)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($destinatario)), __LINE__);
        }
        if (is_null($destinatario) || (is_array($destinatario) && empty($destinatario))) {
            unset($this->Destinatario);
        } else {
            $this->Destinatario = $destinatario;
        }
        return $this;
    }
    /**
     * Get Diario 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 getDiario()
    {
        return isset($this->Diario) ? $this->Diario : null;
    }
    /**
     * Set Diario 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 $diario
     * @return \StructType\CabecInternosERP
     */
    public function setDiario($diario = null)
    {
        // validation for constraint: string
        if (!is_null($diario) && !is_string($diario)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($diario)), __LINE__);
        }
        if (is_null($diario) || (is_array($diario) && empty($diario))) {
            unset($this->Diario);
        } else {
            $this->Diario = $diario;
        }
        return $this;
    }
    /**
     * Get Distrito 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 getDistrito()
    {
        return isset($this->Distrito) ? $this->Distrito : null;
    }
    /**
     * Set Distrito 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 $distrito
     * @return \StructType\CabecInternosERP
     */
    public function setDistrito($distrito = null)
    {
        // validation for constraint: string
        if (!is_null($distrito) && !is_string($distrito)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($distrito)), __LINE__);
        }
        if (is_null($distrito) || (is_array($distrito) && empty($distrito))) {
            unset($this->Distrito);
        } else {
            $this->Distrito = $distrito;
        }
        return $this;
    }
    /**
     * Get DocImp 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 getDocImp()
    {
        return isset($this->DocImp) ? $this->DocImp : null;
    }
    /**
     * Set DocImp 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 $docImp
     * @return \StructType\CabecInternosERP
     */
    public function setDocImp($docImp = null)
    {
        // validation for constraint: boolean
        if (!is_null($docImp) && !is_bool($docImp)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($docImp)), __LINE__);
        }
        if (is_null($docImp) || (is_array($docImp) && empty($docImp))) {
            unset($this->DocImp);
        } else {
            $this->DocImp = $docImp;
        }
        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\CabecInternosERP
     */
    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 EspacoFiscal value
     * @return int|null
     */
    public function getEspacoFiscal()
    {
        return $this->EspacoFiscal;
    }
    /**
     * Set EspacoFiscal value
     * @param int $espacoFiscal
     * @return \StructType\CabecInternosERP
     */
    public function setEspacoFiscal($espacoFiscal = null)
    {
        // validation for constraint: int
        if (!is_null($espacoFiscal) && !is_numeric($espacoFiscal)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($espacoFiscal)), __LINE__);
        }
        $this->EspacoFiscal = $espacoFiscal;
        return $this;
    }
    /**
     * Get Estado 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 getEstado()
    {
        return isset($this->Estado) ? $this->Estado : null;
    }
    /**
     * Set Estado 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 $estado
     * @return \StructType\CabecInternosERP
     */
    public function setEstado($estado = null)
    {
        // validation for constraint: string
        if (!is_null($estado) && !is_string($estado)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($estado)), __LINE__);
        }
        if (is_null($estado) || (is_array($estado) && empty($estado))) {
            unset($this->Estado);
        } else {
            $this->Estado = $estado;
        }
        return $this;
    }
    /**
     * Get Fechado 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 getFechado()
    {
        return isset($this->Fechado) ? $this->Fechado : null;
    }
    /**
     * Set Fechado 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 $fechado
     * @return \StructType\CabecInternosERP
     */
    public function setFechado($fechado = null)
    {
        // validation for constraint: boolean
        if (!is_null($fechado) && !is_bool($fechado)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($fechado)), __LINE__);
        }
        if (is_null($fechado) || (is_array($fechado) && empty($fechado))) {
            unset($this->Fechado);
        } else {
            $this->Fechado = $fechado;
        }
        return $this;
    }
    /**
     * Get Filial 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 getFilial()
    {
        return isset($this->Filial) ? $this->Filial : null;
    }
    /**
     * Set Filial 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 $filial
     * @return \StructType\CabecInternosERP
     */
    public function setFilial($filial = null)
    {
        // validation for constraint: string
        if (!is_null($filial) && !is_string($filial)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($filial)), __LINE__);
        }
        if (is_null($filial) || (is_array($filial) && empty($filial))) {
            unset($this->Filial);
        } else {
            $this->Filial = $filial;
        }
        return $this;
    }
    /**
     * Get Fluxo 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 getFluxo()
    {
        return isset($this->Fluxo) ? $this->Fluxo : null;
    }
    /**
     * Set Fluxo 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 $fluxo
     * @return \StructType\CabecInternosERP
     */
    public function setFluxo($fluxo = null)
    {
        // validation for constraint: string
        if (!is_null($fluxo) && !is_string($fluxo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($fluxo)), __LINE__);
        }
        if (is_null($fluxo) || (is_array($fluxo) && empty($fluxo))) {
            unset($this->Fluxo);
        } else {
            $this->Fluxo = $fluxo;
        }
        return $this;
    }
    /**
     * Get HoraCarga 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 getHoraCarga()
    {
        return isset($this->HoraCarga) ? $this->HoraCarga : null;
    }
    /**
     * Set HoraCarga 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 $horaCarga
     * @return \StructType\CabecInternosERP
     */
    public function setHoraCarga($horaCarga = null)
    {
        // validation for constraint: string
        if (!is_null($horaCarga) && !is_string($horaCarga)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($horaCarga)), __LINE__);
        }
        if (is_null($horaCarga) || (is_array($horaCarga) && empty($horaCarga))) {
            unset($this->HoraCarga);
        } else {
            $this->HoraCarga = $horaCarga;
        }
        return $this;
    }
    /**
     * Get HoraDescarga 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 getHoraDescarga()
    {
        return isset($this->HoraDescarga) ? $this->HoraDescarga : null;
    }
    /**
     * Set HoraDescarga 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 $horaDescarga
     * @return \StructType\CabecInternosERP
     */
    public function setHoraDescarga($horaDescarga = null)
    {
        // validation for constraint: string
        if (!is_null($horaDescarga) && !is_string($horaDescarga)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($horaDescarga)), __LINE__);
        }
        if (is_null($horaDescarga) || (is_array($horaDescarga) && empty($horaDescarga))) {
            unset($this->HoraDescarga);
        } else {
            $this->HoraDescarga = $horaDescarga;
        }
        return $this;
    }
    /**
     * Get Id value
     * @return string|null
     */
    public function getId()
    {
        return $this->Id;
    }
    /**
     * Set Id value
     * @param string $id
     * @return \StructType\CabecInternosERP
     */
    public function setId($id = null)
    {
        // validation for constraint: pattern
        if (is_scalar($id) && !preg_match('/[\\da-fA-F]{8}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{12}/', $id)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a scalar value that matches "[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}", "%s" given', var_export($id, true)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($id) && !is_string($id)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($id)), __LINE__);
        }
        $this->Id = $id;
        return $this;
    }
    /**
     * Get IdCabecEstorno 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 getIdCabecEstorno()
    {
        return isset($this->IdCabecEstorno) ? $this->IdCabecEstorno : null;
    }
    /**
     * Set IdCabecEstorno 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 $idCabecEstorno
     * @return \StructType\CabecInternosERP
     */
    public function setIdCabecEstorno($idCabecEstorno = null)
    {
        // validation for constraint: pattern
        if (is_scalar($idCabecEstorno) && !preg_match('/[\\da-fA-F]{8}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{12}/', $idCabecEstorno)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a scalar value that matches "[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}", "%s" given', var_export($idCabecEstorno, true)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($idCabecEstorno) && !is_string($idCabecEstorno)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($idCabecEstorno)), __LINE__);
        }
        if (is_null($idCabecEstorno) || (is_array($idCabecEstorno) && empty($idCabecEstorno))) {
            unset($this->IdCabecEstorno);
        } else {
            $this->IdCabecEstorno = $idCabecEstorno;
        }
        return $this;
    }
    /**
     * Get IdCabecMovCbl 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 getIdCabecMovCbl()
    {
        return isset($this->IdCabecMovCbl) ? $this->IdCabecMovCbl : null;
    }
    /**
     * Set IdCabecMovCbl 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 $idCabecMovCbl
     * @return \StructType\CabecInternosERP
     */
    public function setIdCabecMovCbl($idCabecMovCbl = null)
    {
        // validation for constraint: pattern
        if (is_scalar($idCabecMovCbl) && !preg_match('/[\\da-fA-F]{8}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{12}/', $idCabecMovCbl)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a scalar value that matches "[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}", "%s" given', var_export($idCabecMovCbl, true)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($idCabecMovCbl) && !is_string($idCabecMovCbl)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($idCabecMovCbl)), __LINE__);
        }
        if (is_null($idCabecMovCbl) || (is_array($idCabecMovCbl) && empty($idCabecMovCbl))) {
            unset($this->IdCabecMovCbl);
        } else {
            $this->IdCabecMovCbl = $idCabecMovCbl;
        }
        return $this;
    }
    /**
     * Get IdGDOC 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 getIdGDOC()
    {
        return isset($this->IdGDOC) ? $this->IdGDOC : null;
    }
    /**
     * Set IdGDOC 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 $idGDOC
     * @return \StructType\CabecInternosERP
     */
    public function setIdGDOC($idGDOC = null)
    {
        // validation for constraint: pattern
        if (is_scalar($idGDOC) && !preg_match('/[\\da-fA-F]{8}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{12}/', $idGDOC)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a scalar value that matches "[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}", "%s" given', var_export($idGDOC, true)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($idGDOC) && !is_string($idGDOC)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($idGDOC)), __LINE__);
        }
        if (is_null($idGDOC) || (is_array($idGDOC) && empty($idGDOC))) {
            unset($this->IdGDOC);
        } else {
            $this->IdGDOC = $idGDOC;
        }
        return $this;
    }
    /**
     * Get LocalCarga 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 getLocalCarga()
    {
        return isset($this->LocalCarga) ? $this->LocalCarga : null;
    }
    /**
     * Set LocalCarga 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 $localCarga
     * @return \StructType\CabecInternosERP
     */
    public function setLocalCarga($localCarga = null)
    {
        // validation for constraint: string
        if (!is_null($localCarga) && !is_string($localCarga)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($localCarga)), __LINE__);
        }
        if (is_null($localCarga) || (is_array($localCarga) && empty($localCarga))) {
            unset($this->LocalCarga);
        } else {
            $this->LocalCarga = $localCarga;
        }
        return $this;
    }
    /**
     * Get LocalDescarga 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 getLocalDescarga()
    {
        return isset($this->LocalDescarga) ? $this->LocalDescarga : null;
    }
    /**
     * Set LocalDescarga 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 $localDescarga
     * @return \StructType\CabecInternosERP
     */
    public function setLocalDescarga($localDescarga = null)
    {
        // validation for constraint: string
        if (!is_null($localDescarga) && !is_string($localDescarga)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($localDescarga)), __LINE__);
        }
        if (is_null($localDescarga) || (is_array($localDescarga) && empty($localDescarga))) {
            unset($this->LocalDescarga);
        } else {
            $this->LocalDescarga = $localDescarga;
        }
        return $this;
    }
    /**
     * Get LocalOperacao 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 getLocalOperacao()
    {
        return isset($this->LocalOperacao) ? $this->LocalOperacao : null;
    }
    /**
     * Set LocalOperacao 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 $localOperacao
     * @return \StructType\CabecInternosERP
     */
    public function setLocalOperacao($localOperacao = null)
    {
        // validation for constraint: string
        if (!is_null($localOperacao) && !is_string($localOperacao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($localOperacao)), __LINE__);
        }
        if (is_null($localOperacao) || (is_array($localOperacao) && empty($localOperacao))) {
            unset($this->LocalOperacao);
        } else {
            $this->LocalOperacao = $localOperacao;
        }
        return $this;
    }
    /**
     * Get Localidade 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 getLocalidade()
    {
        return isset($this->Localidade) ? $this->Localidade : null;
    }
    /**
     * Set Localidade 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 $localidade
     * @return \StructType\CabecInternosERP
     */
    public function setLocalidade($localidade = null)
    {
        // validation for constraint: string
        if (!is_null($localidade) && !is_string($localidade)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($localidade)), __LINE__);
        }
        if (is_null($localidade) || (is_array($localidade) && empty($localidade))) {
            unset($this->Localidade);
        } else {
            $this->Localidade = $localidade;
        }
        return $this;
    }
    /**
     * Get Matricula 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 getMatricula()
    {
        return isset($this->Matricula) ? $this->Matricula : null;
    }
    /**
     * Set Matricula 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 $matricula
     * @return \StructType\CabecInternosERP
     */
    public function setMatricula($matricula = null)
    {
        // validation for constraint: string
        if (!is_null($matricula) && !is_string($matricula)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($matricula)), __LINE__);
        }
        if (is_null($matricula) || (is_array($matricula) && empty($matricula))) {
            unset($this->Matricula);
        } else {
            $this->Matricula = $matricula;
        }
        return $this;
    }
    /**
     * Get ModoExp 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 getModoExp()
    {
        return isset($this->ModoExp) ? $this->ModoExp : null;
    }
    /**
     * Set ModoExp 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 $modoExp
     * @return \StructType\CabecInternosERP
     */
    public function setModoExp($modoExp = null)
    {
        // validation for constraint: string
        if (!is_null($modoExp) && !is_string($modoExp)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($modoExp)), __LINE__);
        }
        if (is_null($modoExp) || (is_array($modoExp) && empty($modoExp))) {
            unset($this->ModoExp);
        } else {
            $this->ModoExp = $modoExp;
        }
        return $this;
    }
    /**
     * Get ModoPag value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getModoPag()
    {
        return isset($this->ModoPag) ? $this->ModoPag : null;
    }
    /**
     * Set ModoPag value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $modoPag
     * @return \StructType\CabecInternosERP
     */
    public function setModoPag($modoPag = null)
    {
        // validation for constraint: string
        if (!is_null($modoPag) && !is_string($modoPag)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($modoPag)), __LINE__);
        }
        if (is_null($modoPag) || (is_array($modoPag) && empty($modoPag))) {
            unset($this->ModoPag);
        } else {
            $this->ModoPag = $modoPag;
        }
        return $this;
    }
    /**
     * Get Moeda 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 getMoeda()
    {
        return isset($this->Moeda) ? $this->Moeda : null;
    }
    /**
     * Set Moeda 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 $moeda
     * @return \StructType\CabecInternosERP
     */
    public function setMoeda($moeda = null)
    {
        // validation for constraint: string
        if (!is_null($moeda) && !is_string($moeda)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($moeda)), __LINE__);
        }
        if (is_null($moeda) || (is_array($moeda) && empty($moeda))) {
            unset($this->Moeda);
        } else {
            $this->Moeda = $moeda;
        }
        return $this;
    }
    /**
     * Get MoedaDaUEM 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 getMoedaDaUEM()
    {
        return isset($this->MoedaDaUEM) ? $this->MoedaDaUEM : null;
    }
    /**
     * Set MoedaDaUEM 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 $moedaDaUEM
     * @return \StructType\CabecInternosERP
     */
    public function setMoedaDaUEM($moedaDaUEM = null)
    {
        // validation for constraint: boolean
        if (!is_null($moedaDaUEM) && !is_bool($moedaDaUEM)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($moedaDaUEM)), __LINE__);
        }
        if (is_null($moedaDaUEM) || (is_array($moedaDaUEM) && empty($moedaDaUEM))) {
            unset($this->MoedaDaUEM);
        } else {
            $this->MoedaDaUEM = $moedaDaUEM;
        }
        return $this;
    }
    /**
     * Get Morada 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 getMorada()
    {
        return isset($this->Morada) ? $this->Morada : null;
    }
    /**
     * Set Morada 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 $morada
     * @return \StructType\CabecInternosERP
     */
    public function setMorada($morada = null)
    {
        // validation for constraint: string
        if (!is_null($morada) && !is_string($morada)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($morada)), __LINE__);
        }
        if (is_null($morada) || (is_array($morada) && empty($morada))) {
            unset($this->Morada);
        } else {
            $this->Morada = $morada;
        }
        return $this;
    }
    /**
     * Get Morada2 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 getMorada2()
    {
        return isset($this->Morada2) ? $this->Morada2 : null;
    }
    /**
     * Set Morada2 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 $morada2
     * @return \StructType\CabecInternosERP
     */
    public function setMorada2($morada2 = null)
    {
        // validation for constraint: string
        if (!is_null($morada2) && !is_string($morada2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($morada2)), __LINE__);
        }
        if (is_null($morada2) || (is_array($morada2) && empty($morada2))) {
            unset($this->Morada2);
        } else {
            $this->Morada2 = $morada2;
        }
        return $this;
    }
    /**
     * Get MoradaAltEntrega 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 getMoradaAltEntrega()
    {
        return isset($this->MoradaAltEntrega) ? $this->MoradaAltEntrega : null;
    }
    /**
     * Set MoradaAltEntrega 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 $moradaAltEntrega
     * @return \StructType\CabecInternosERP
     */
    public function setMoradaAltEntrega($moradaAltEntrega = null)
    {
        // validation for constraint: string
        if (!is_null($moradaAltEntrega) && !is_string($moradaAltEntrega)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($moradaAltEntrega)), __LINE__);
        }
        if (is_null($moradaAltEntrega) || (is_array($moradaAltEntrega) && empty($moradaAltEntrega))) {
            unset($this->MoradaAltEntrega);
        } else {
            $this->MoradaAltEntrega = $moradaAltEntrega;
        }
        return $this;
    }
    /**
     * Get MovContab 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 getMovContab()
    {
        return isset($this->MovContab) ? $this->MovContab : null;
    }
    /**
     * Set MovContab 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 $movContab
     * @return \StructType\CabecInternosERP
     */
    public function setMovContab($movContab = null)
    {
        // validation for constraint: int
        if (!is_null($movContab) && !is_numeric($movContab)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($movContab)), __LINE__);
        }
        if (is_null($movContab) || (is_array($movContab) && empty($movContab))) {
            unset($this->MovContab);
        } else {
            $this->MovContab = $movContab;
        }
        return $this;
    }
    /**
     * Get Nome 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 getNome()
    {
        return isset($this->Nome) ? $this->Nome : null;
    }
    /**
     * Set Nome 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 $nome
     * @return \StructType\CabecInternosERP
     */
    public function setNome($nome = null)
    {
        // validation for constraint: string
        if (!is_null($nome) && !is_string($nome)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($nome)), __LINE__);
        }
        if (is_null($nome) || (is_array($nome) && empty($nome))) {
            unset($this->Nome);
        } else {
            $this->Nome = $nome;
        }
        return $this;
    }
    /**
     * Get NumContribuinte 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 getNumContribuinte()
    {
        return isset($this->NumContribuinte) ? $this->NumContribuinte : null;
    }
    /**
     * Set NumContribuinte 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 $numContribuinte
     * @return \StructType\CabecInternosERP
     */
    public function setNumContribuinte($numContribuinte = null)
    {
        // validation for constraint: string
        if (!is_null($numContribuinte) && !is_string($numContribuinte)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($numContribuinte)), __LINE__);
        }
        if (is_null($numContribuinte) || (is_array($numContribuinte) && empty($numContribuinte))) {
            unset($this->NumContribuinte);
        } else {
            $this->NumContribuinte = $numContribuinte;
        }
        return $this;
    }
    /**
     * Get NumDiario 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 getNumDiario()
    {
        return isset($this->NumDiario) ? $this->NumDiario : null;
    }
    /**
     * Set NumDiario 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 $numDiario
     * @return \StructType\CabecInternosERP
     */
    public function setNumDiario($numDiario = null)
    {
        // validation for constraint: int
        if (!is_null($numDiario) && !is_numeric($numDiario)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($numDiario)), __LINE__);
        }
        if (is_null($numDiario) || (is_array($numDiario) && empty($numDiario))) {
            unset($this->NumDiario);
        } else {
            $this->NumDiario = $numDiario;
        }
        return $this;
    }
    /**
     * Get NumDoc value
     * @return int|null
     */
    public function getNumDoc()
    {
        return $this->NumDoc;
    }
    /**
     * Set NumDoc value
     * @param int $numDoc
     * @return \StructType\CabecInternosERP
     */
    public function setNumDoc($numDoc = null)
    {
        // validation for constraint: int
        if (!is_null($numDoc) && !is_numeric($numDoc)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($numDoc)), __LINE__);
        }
        $this->NumDoc = $numDoc;
        return $this;
    }
    /**
     * Get ObraId 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 getObraId()
    {
        return isset($this->ObraId) ? $this->ObraId : null;
    }
    /**
     * Set ObraId 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 $obraId
     * @return \StructType\CabecInternosERP
     */
    public function setObraId($obraId = null)
    {
        // validation for constraint: pattern
        if (is_scalar($obraId) && !preg_match('/[\\da-fA-F]{8}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{12}/', $obraId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a scalar value that matches "[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}", "%s" given', var_export($obraId, true)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($obraId) && !is_string($obraId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($obraId)), __LINE__);
        }
        if (is_null($obraId) || (is_array($obraId) && empty($obraId))) {
            unset($this->ObraId);
        } else {
            $this->ObraId = $obraId;
        }
        return $this;
    }
    /**
     * Get Observacoes 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 getObservacoes()
    {
        return isset($this->Observacoes) ? $this->Observacoes : null;
    }
    /**
     * Set Observacoes 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 $observacoes
     * @return \StructType\CabecInternosERP
     */
    public function setObservacoes($observacoes = null)
    {
        // validation for constraint: string
        if (!is_null($observacoes) && !is_string($observacoes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($observacoes)), __LINE__);
        }
        if (is_null($observacoes) || (is_array($observacoes) && empty($observacoes))) {
            unset($this->Observacoes);
        } else {
            $this->Observacoes = $observacoes;
        }
        return $this;
    }
    /**
     * Get Pais 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 getPais()
    {
        return isset($this->Pais) ? $this->Pais : null;
    }
    /**
     * Set Pais 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 $pais
     * @return \StructType\CabecInternosERP
     */
    public function setPais($pais = null)
    {
        // validation for constraint: string
        if (!is_null($pais) && !is_string($pais)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($pais)), __LINE__);
        }
        if (is_null($pais) || (is_array($pais) && empty($pais))) {
            unset($this->Pais);
        } else {
            $this->Pais = $pais;
        }
        return $this;
    }
    /**
     * Get Posto 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 getPosto()
    {
        return isset($this->Posto) ? $this->Posto : null;
    }
    /**
     * Set Posto 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 $posto
     * @return \StructType\CabecInternosERP
     */
    public function setPosto($posto = null)
    {
        // validation for constraint: string
        if (!is_null($posto) && !is_string($posto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($posto)), __LINE__);
        }
        if (is_null($posto) || (is_array($posto) && empty($posto))) {
            unset($this->Posto);
        } else {
            $this->Posto = $posto;
        }
        return $this;
    }
    /**
     * Get Protegida value
     * @return bool|null
     */
    public function getProtegida()
    {
        return $this->Protegida;
    }
    /**
     * Set Protegida value
     * @param bool $protegida
     * @return \StructType\CabecInternosERP
     */
    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 Referencia 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 getReferencia()
    {
        return isset($this->Referencia) ? $this->Referencia : null;
    }
    /**
     * Set Referencia 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 $referencia
     * @return \StructType\CabecInternosERP
     */
    public function setReferencia($referencia = null)
    {
        // validation for constraint: string
        if (!is_null($referencia) && !is_string($referencia)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($referencia)), __LINE__);
        }
        if (is_null($referencia) || (is_array($referencia) && empty($referencia))) {
            unset($this->Referencia);
        } else {
            $this->Referencia = $referencia;
        }
        return $this;
    }
    /**
     * Get RegimeIva 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 getRegimeIva()
    {
        return isset($this->RegimeIva) ? $this->RegimeIva : null;
    }
    /**
     * Set RegimeIva 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 $regimeIva
     * @return \StructType\CabecInternosERP
     */
    public function setRegimeIva($regimeIva = null)
    {
        // validation for constraint: string
        if (!is_null($regimeIva) && !is_string($regimeIva)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($regimeIva)), __LINE__);
        }
        if (is_null($regimeIva) || (is_array($regimeIva) && empty($regimeIva))) {
            unset($this->RegimeIva);
        } else {
            $this->RegimeIva = $regimeIva;
        }
        return $this;
    }
    /**
     * Get RegimeIvaReembolsos value
     * @return int|null
     */
    public function getRegimeIvaReembolsos()
    {
        return $this->RegimeIvaReembolsos;
    }
    /**
     * Set RegimeIvaReembolsos value
     * @param int $regimeIvaReembolsos
     * @return \StructType\CabecInternosERP
     */
    public function setRegimeIvaReembolsos($regimeIvaReembolsos = null)
    {
        // validation for constraint: int
        if (!is_null($regimeIvaReembolsos) && !is_numeric($regimeIvaReembolsos)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($regimeIvaReembolsos)), __LINE__);
        }
        $this->RegimeIvaReembolsos = $regimeIvaReembolsos;
        return $this;
    }
    /**
     * Get Requisitante 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 getRequisitante()
    {
        return isset($this->Requisitante) ? $this->Requisitante : null;
    }
    /**
     * Set Requisitante 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 $requisitante
     * @return \StructType\CabecInternosERP
     */
    public function setRequisitante($requisitante = null)
    {
        // validation for constraint: string
        if (!is_null($requisitante) && !is_string($requisitante)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($requisitante)), __LINE__);
        }
        if (is_null($requisitante) || (is_array($requisitante) && empty($requisitante))) {
            unset($this->Requisitante);
        } else {
            $this->Requisitante = $requisitante;
        }
        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\CabecInternosERP
     */
    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 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\CabecInternosERP
     */
    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 TipoEntidade 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 getTipoEntidade()
    {
        return isset($this->TipoEntidade) ? $this->TipoEntidade : null;
    }
    /**
     * Set TipoEntidade 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 $tipoEntidade
     * @return \StructType\CabecInternosERP
     */
    public function setTipoEntidade($tipoEntidade = null)
    {
        // validation for constraint: string
        if (!is_null($tipoEntidade) && !is_string($tipoEntidade)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($tipoEntidade)), __LINE__);
        }
        if (is_null($tipoEntidade) || (is_array($tipoEntidade) && empty($tipoEntidade))) {
            unset($this->TipoEntidade);
        } else {
            $this->TipoEntidade = $tipoEntidade;
        }
        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\CabecInternosERP
     */
    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 TotalDesc value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return float|null
     */
    public function getTotalDesc()
    {
        return isset($this->TotalDesc) ? $this->TotalDesc : null;
    }
    /**
     * Set TotalDesc value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param float $totalDesc
     * @return \StructType\CabecInternosERP
     */
    public function setTotalDesc($totalDesc = null)
    {
        if (is_null($totalDesc) || (is_array($totalDesc) && empty($totalDesc))) {
            unset($this->TotalDesc);
        } else {
            $this->TotalDesc = $totalDesc;
        }
        return $this;
    }
    /**
     * Get TotalEcotaxa value
     * @return float|null
     */
    public function getTotalEcotaxa()
    {
        return $this->TotalEcotaxa;
    }
    /**
     * Set TotalEcotaxa value
     * @param float $totalEcotaxa
     * @return \StructType\CabecInternosERP
     */
    public function setTotalEcotaxa($totalEcotaxa = null)
    {
        $this->TotalEcotaxa = $totalEcotaxa;
        return $this;
    }
    /**
     * Get TotalIva value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return float|null
     */
    public function getTotalIva()
    {
        return isset($this->TotalIva) ? $this->TotalIva : null;
    }
    /**
     * Set TotalIva value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param float $totalIva
     * @return \StructType\CabecInternosERP
     */
    public function setTotalIva($totalIva = null)
    {
        if (is_null($totalIva) || (is_array($totalIva) && empty($totalIva))) {
            unset($this->TotalIva);
        } else {
            $this->TotalIva = $totalIva;
        }
        return $this;
    }
    /**
     * Get TotalMerc value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return float|null
     */
    public function getTotalMerc()
    {
        return isset($this->TotalMerc) ? $this->TotalMerc : null;
    }
    /**
     * Set TotalMerc value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param float $totalMerc
     * @return \StructType\CabecInternosERP
     */
    public function setTotalMerc($totalMerc = null)
    {
        if (is_null($totalMerc) || (is_array($totalMerc) && empty($totalMerc))) {
            unset($this->TotalMerc);
        } else {
            $this->TotalMerc = $totalMerc;
        }
        return $this;
    }
    /**
     * Get TotalRecargo value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return float|null
     */
    public function getTotalRecargo()
    {
        return isset($this->TotalRecargo) ? $this->TotalRecargo : null;
    }
    /**
     * Set TotalRecargo value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param float $totalRecargo
     * @return \StructType\CabecInternosERP
     */
    public function setTotalRecargo($totalRecargo = null)
    {
        if (is_null($totalRecargo) || (is_array($totalRecargo) && empty($totalRecargo))) {
            unset($this->TotalRecargo);
        } else {
            $this->TotalRecargo = $totalRecargo;
        }
        return $this;
    }
    /**
     * Get UtilizaMoradaAltEntrega 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 getUtilizaMoradaAltEntrega()
    {
        return isset($this->UtilizaMoradaAltEntrega) ? $this->UtilizaMoradaAltEntrega : null;
    }
    /**
     * Set UtilizaMoradaAltEntrega 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 $utilizaMoradaAltEntrega
     * @return \StructType\CabecInternosERP
     */
    public function setUtilizaMoradaAltEntrega($utilizaMoradaAltEntrega = null)
    {
        // validation for constraint: boolean
        if (!is_null($utilizaMoradaAltEntrega) && !is_bool($utilizaMoradaAltEntrega)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($utilizaMoradaAltEntrega)), __LINE__);
        }
        if (is_null($utilizaMoradaAltEntrega) || (is_array($utilizaMoradaAltEntrega) && empty($utilizaMoradaAltEntrega))) {
            unset($this->UtilizaMoradaAltEntrega);
        } else {
            $this->UtilizaMoradaAltEntrega = $utilizaMoradaAltEntrega;
        }
        return $this;
    }
    /**
     * Get Utilizador 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 getUtilizador()
    {
        return isset($this->Utilizador) ? $this->Utilizador : null;
    }
    /**
     * Set Utilizador 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 $utilizador
     * @return \StructType\CabecInternosERP
     */
    public function setUtilizador($utilizador = null)
    {
        // validation for constraint: string
        if (!is_null($utilizador) && !is_string($utilizador)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($utilizador)), __LINE__);
        }
        if (is_null($utilizador) || (is_array($utilizador) && empty($utilizador))) {
            unset($this->Utilizador);
        } else {
            $this->Utilizador = $utilizador;
        }
        return $this;
    }
    /**
     * Get VersaoUltAct value
     * @return string|null
     */
    public function getVersaoUltAct()
    {
        return $this->VersaoUltAct;
    }
    /**
     * Set VersaoUltAct value
     * @param string $versaoUltAct
     * @return \StructType\CabecInternosERP
     */
    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 WBSItem 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 getWBSItem()
    {
        return isset($this->WBSItem) ? $this->WBSItem : null;
    }
    /**
     * Set WBSItem 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 $wBSItem
     * @return \StructType\CabecInternosERP
     */
    public function setWBSItem($wBSItem = null)
    {
        // validation for constraint: string
        if (!is_null($wBSItem) && !is_string($wBSItem)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($wBSItem)), __LINE__);
        }
        if (is_null($wBSItem) || (is_array($wBSItem) && empty($wBSItem))) {
            unset($this->WBSItem);
        } else {
            $this->WBSItem = $wBSItem;
        }
        return $this;
    }
    /**
     * Get ePriApprovalInstanceId 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 getEPriApprovalInstanceId()
    {
        return isset($this->ePriApprovalInstanceId) ? $this->ePriApprovalInstanceId : null;
    }
    /**
     * Set ePriApprovalInstanceId 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 $ePriApprovalInstanceId
     * @return \StructType\CabecInternosERP
     */
    public function setEPriApprovalInstanceId($ePriApprovalInstanceId = null)
    {
        // validation for constraint: pattern
        if (is_scalar($ePriApprovalInstanceId) && !preg_match('/[\\da-fA-F]{8}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{12}/', $ePriApprovalInstanceId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a scalar value that matches "[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}", "%s" given', var_export($ePriApprovalInstanceId, true)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($ePriApprovalInstanceId) && !is_string($ePriApprovalInstanceId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ePriApprovalInstanceId)), __LINE__);
        }
        if (is_null($ePriApprovalInstanceId) || (is_array($ePriApprovalInstanceId) && empty($ePriApprovalInstanceId))) {
            unset($this->ePriApprovalInstanceId);
        } else {
            $this->ePriApprovalInstanceId = $ePriApprovalInstanceId;
        }
        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\CabecInternosERP
     */
    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__;
    }
}
