<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for ArtigoERP StructType
 * Meta informations extracted from the WSDL
 * - nillable: true
 * - type: tns:ArtigoERP
 * @subpackage Structs
 */
class ArtigoERP extends AbstractStructBase
{
    /**
     * The AfectaPCM
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $AfectaPCM;
    /**
     * The ArmazemSugestao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ArmazemSugestao;
    /**
     * The ArtAssociado
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ArtAssociado;
    /**
     * The ArtSubstituto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ArtSubstituto;
    /**
     * The Artigo1
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Artigo1;
    /**
     * The ArtigoAnulado
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $ArtigoAnulado;
    /**
     * The ArtigoPai
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ArtigoPai;
    /**
     * The ArtigosArmazem
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \ArrayType\ArrayOfArtigoArmazemERP
     */
    public $ArtigosArmazem;
    /**
     * The ArtigosFornecedor
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \ArrayType\ArrayOfArtigoFornecedorERP
     */
    public $ArtigosFornecedor;
    /**
     * The ArtigosMoeda
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \ArrayType\ArrayOfArtigoMoedaERP
     */
    public $ArtigosMoeda;
    /**
     * The CDU_Altura
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $CDU_Altura;
    /**
     * The CDU_Comprimento
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $CDU_Comprimento;
    /**
     * The CDU_ExtensaoFoto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_ExtensaoFoto;
    /**
     * The CDU_Foto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_Foto;
    /**
     * The CDU_Largura
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $CDU_Largura;
    /**
     * The CDU_NomeFoto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CDU_NomeFoto;
    /**
     * The CalcNecessidadesGPR
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $CalcNecessidadesGPR;
    /**
     * The CapacidadeEmbIEC
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $CapacidadeEmbIEC;
    /**
     * The CategoriaIEC
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CategoriaIEC;
    /**
     * The ClasseArtigoTaxFree
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ClasseArtigoTaxFree;
    /**
     * The CodBarras
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodBarras;
    /**
     * The CodigoAdicionalAltIEC
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $CodigoAdicionalAltIEC;
    /**
     * The CodigoBebidaEspirituosa
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodigoBebidaEspirituosa;
    /**
     * The CodigoEstampilha
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodigoEstampilha;
    /**
     * The CodigoIsentoIEC
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodigoIsentoIEC;
    /**
     * The CodigoPautal
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodigoPautal;
    /**
     * The CodigoTaric
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $CodigoTaric;
    /**
     * The DataDesactivacaoGPR
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DataDesactivacaoGPR;
    /**
     * The DataUltEntrada
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DataUltEntrada;
    /**
     * The DataUltSaida
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DataUltSaida;
    /**
     * The DataUltimaActualizacao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DataUltimaActualizacao;
    /**
     * The DeduzIvaNoImo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $DeduzIvaNoImo;
    /**
     * The DesactivadoGPR
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $DesactivadoGPR;
    /**
     * The Desconto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $Desconto;
    /**
     * The Descricao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Descricao;
    /**
     * The DesperdicioGPR
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $DesperdicioGPR;
    /**
     * The Dim1
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Dim1;
    /**
     * The Dim2
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Dim2;
    /**
     * The Dim3
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Dim3;
    /**
     * The DimLote
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $DimLote;
    /**
     * The Ecovalor
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $Ecovalor;
    /**
     * The EmbalagemIEC
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $EmbalagemIEC;
    /**
     * The EntidadeOPTesouraria
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $EntidadeOPTesouraria;
    /**
     * The Etiqueta
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Etiqueta;
    /**
     * The FabCompAutoGPR
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $FabCompAutoGPR;
    /**
     * The FactConvIEC
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $FactConvIEC;
    /**
     * The FactorUnidadeSup
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $FactorUnidadeSup;
    /**
     * The Familia
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Familia;
    /**
     * The FormulaCompras
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $FormulaCompras;
    /**
     * The FormulaGPR
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $FormulaGPR;
    /**
     * The FormulaVendas
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $FormulaVendas;
    /**
     * The Fornecedor
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Fornecedor;
    /**
     * The Garantia
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Garantia;
    /**
     * The GestaoSingular
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $GestaoSingular;
    /**
     * The GrupoCenariosCompras
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $GrupoCenariosCompras;
    /**
     * The GrupoEmbalagem
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $GrupoEmbalagem;
    /**
     * The IDTipoOrigemGPR
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $IDTipoOrigemGPR;
    /**
     * The IDTipoProducaoGPR
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $IDTipoProducaoGPR;
    /**
     * The IdClassificacao
     * 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 $IdClassificacao;
    /**
     * 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 Imposto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $Imposto;
    /**
     * The IntrastatPautal
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $IntrastatPautal;
    /**
     * The IntrastatPeso
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $IntrastatPeso;
    /**
     * The IsentoIEC
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $IsentoIEC;
    /**
     * The IsentoPagDireitos
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $IsentoPagDireitos;
    /**
     * The Iva
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Iva;
    /**
     * The LocalizacaoSugestao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $LocalizacaoSugestao;
    /**
     * The LoteEntradas
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $LoteEntradas;
    /**
     * The LoteFormulaEntradas
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $LoteFormulaEntradas;
    /**
     * The LoteFormulaSaidas
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $LoteFormulaSaidas;
    /**
     * The LoteSaidas
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $LoteSaidas;
    /**
     * The Marca
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Marca;
    /**
     * The Modelo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Modelo;
    /**
     * The MovStock
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $MovStock;
    /**
     * The NaturezaAnalitica
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $NaturezaAnalitica;
    /**
     * The NecessarioRecalcPCM
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $NecessarioRecalcPCM;
    /**
     * The NumeroONU
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NumeroONU;
    /**
     * The Observacoes
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Observacoes;
    /**
     * The OperacaoTesouraria
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $OperacaoTesouraria;
    /**
     * The OrdemDim
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $OrdemDim;
    /**
     * The PCMedio
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $PCMedio;
    /**
     * The PCPadrao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $PCPadrao;
    /**
     * The PCUltimo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $PCUltimo;
    /**
     * The PercIncidenciaIVA
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $PercIncidenciaIVA;
    /**
     * The PercIvaDedutivel
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $PercIvaDedutivel;
    /**
     * The PermiteDevolucao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $PermiteDevolucao;
    /**
     * The Pesar
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $Pesar;
    /**
     * The Peso
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $Peso;
    /**
     * The PesoLiquido
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $PesoLiquido;
    /**
     * The PrazoEntrega
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $PrazoEntrega;
    /**
     * The Protegida
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $Protegida;
    /**
     * The QtReceberGPR
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $QtReceberGPR;
    /**
     * The QtReservadaGPR
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $QtReservadaGPR;
    /**
     * The QtdEconomica
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $QtdEconomica;
    /**
     * The RetencaoArtigoTipoValor
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $RetencaoArtigoTipoValor;
    /**
     * The RetencaoArtigoValor
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $RetencaoArtigoValor;
    /**
     * The RubDim1
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $RubDim1;
    /**
     * The RubDim2
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $RubDim2;
    /**
     * The RubDim3
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $RubDim3;
    /**
     * The STKActual
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $STKActual;
    /**
     * The STKMaximo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $STKMaximo;
    /**
     * The STKMinimo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $STKMinimo;
    /**
     * The STKReposicao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $STKReposicao;
    /**
     * The Selo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Selo;
    /**
     * The SequenciaGPR
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $SequenciaGPR;
    /**
     * The SubFamilia
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SubFamilia;
    /**
     * The SugestaoPrComposto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $SugestaoPrComposto;
    /**
     * The SujeitoEcotaxa
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $SujeitoEcotaxa;
    /**
     * The SujeitoIEC
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $SujeitoIEC;
    /**
     * The SujeitoProRata
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $SujeitoProRata;
    /**
     * The SujeitoRetencao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $SujeitoRetencao;
    /**
     * The SujeitoRetencaoArtigo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $SujeitoRetencaoArtigo;
    /**
     * The TaxaAlcool
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $TaxaAlcool;
    /**
     * The TestaNumSerie
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $TestaNumSerie;
    /**
     * The TipoArtigo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TipoArtigo;
    /**
     * The TipoComponente
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $TipoComponente;
    /**
     * The TipoDim1
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TipoDim1;
    /**
     * The TipoDim2
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TipoDim2;
    /**
     * The TipoDim3
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TipoDim3;
    /**
     * The TipoDocOpTesouraria
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TipoDocOpTesouraria;
    /**
     * The TipoEntidadeOpTesouraria
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TipoEntidadeOpTesouraria;
    /**
     * The TratamentoDim
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $TratamentoDim;
    /**
     * The TratamentoLotes
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $TratamentoLotes;
    /**
     * The TratamentoSeries
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $TratamentoSeries;
    /**
     * The UltDescontoComercialCompra
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $UltDescontoComercialCompra;
    /**
     * The UltDespesaAdicionalCompra
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $UltDespesaAdicionalCompra;
    /**
     * The UltimaSerieDoc
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UltimaSerieDoc;
    /**
     * The UltimoFornecedor
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UltimoFornecedor;
    /**
     * The UltimoLote
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UltimoLote;
    /**
     * The UltimoNumDoc
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $UltimoNumDoc;
    /**
     * The UltimoNumSerie
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UltimoNumSerie;
    /**
     * The UltimoTipoDoc
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UltimoTipoDoc;
    /**
     * The UnidadeBase
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UnidadeBase;
    /**
     * The UnidadeCompra
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UnidadeCompra;
    /**
     * The UnidadeEntrada
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UnidadeEntrada;
    /**
     * The UnidadeSaida
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UnidadeSaida;
    /**
     * The UnidadeTaric
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UnidadeTaric;
    /**
     * The UnidadeVenda
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UnidadeVenda;
    /**
     * The UtilManutencao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $UtilManutencao;
    /**
     * The UtilizadoCCOP
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $UtilizadoCCOP;
    /**
     * The UtilizadoGPR
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $UtilizadoGPR;
    /**
     * The ValorIEC
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $ValorIEC;
    /**
     * The VersaoUltAct
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $VersaoUltAct;
    /**
     * The Volume
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $Volume;
    /**
     * The eGAR_Grupo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $eGAR_Grupo;
    /**
     * The eGAR_LER
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $eGAR_LER;
    /**
     * Constructor method for ArtigoERP
     * @uses ArtigoERP::setAfectaPCM()
     * @uses ArtigoERP::setArmazemSugestao()
     * @uses ArtigoERP::setArtAssociado()
     * @uses ArtigoERP::setArtSubstituto()
     * @uses ArtigoERP::setArtigo1()
     * @uses ArtigoERP::setArtigoAnulado()
     * @uses ArtigoERP::setArtigoPai()
     * @uses ArtigoERP::setArtigosArmazem()
     * @uses ArtigoERP::setArtigosFornecedor()
     * @uses ArtigoERP::setArtigosMoeda()
     * @uses ArtigoERP::setCDU_Altura()
     * @uses ArtigoERP::setCDU_Comprimento()
     * @uses ArtigoERP::setCDU_ExtensaoFoto()
     * @uses ArtigoERP::setCDU_Foto()
     * @uses ArtigoERP::setCDU_Largura()
     * @uses ArtigoERP::setCDU_NomeFoto()
     * @uses ArtigoERP::setCalcNecessidadesGPR()
     * @uses ArtigoERP::setCapacidadeEmbIEC()
     * @uses ArtigoERP::setCategoriaIEC()
     * @uses ArtigoERP::setClasseArtigoTaxFree()
     * @uses ArtigoERP::setCodBarras()
     * @uses ArtigoERP::setCodigoAdicionalAltIEC()
     * @uses ArtigoERP::setCodigoBebidaEspirituosa()
     * @uses ArtigoERP::setCodigoEstampilha()
     * @uses ArtigoERP::setCodigoIsentoIEC()
     * @uses ArtigoERP::setCodigoPautal()
     * @uses ArtigoERP::setCodigoTaric()
     * @uses ArtigoERP::setDataDesactivacaoGPR()
     * @uses ArtigoERP::setDataUltEntrada()
     * @uses ArtigoERP::setDataUltSaida()
     * @uses ArtigoERP::setDataUltimaActualizacao()
     * @uses ArtigoERP::setDeduzIvaNoImo()
     * @uses ArtigoERP::setDesactivadoGPR()
     * @uses ArtigoERP::setDesconto()
     * @uses ArtigoERP::setDescricao()
     * @uses ArtigoERP::setDesperdicioGPR()
     * @uses ArtigoERP::setDim1()
     * @uses ArtigoERP::setDim2()
     * @uses ArtigoERP::setDim3()
     * @uses ArtigoERP::setDimLote()
     * @uses ArtigoERP::setEcovalor()
     * @uses ArtigoERP::setEmbalagemIEC()
     * @uses ArtigoERP::setEntidadeOPTesouraria()
     * @uses ArtigoERP::setEtiqueta()
     * @uses ArtigoERP::setFabCompAutoGPR()
     * @uses ArtigoERP::setFactConvIEC()
     * @uses ArtigoERP::setFactorUnidadeSup()
     * @uses ArtigoERP::setFamilia()
     * @uses ArtigoERP::setFormulaCompras()
     * @uses ArtigoERP::setFormulaGPR()
     * @uses ArtigoERP::setFormulaVendas()
     * @uses ArtigoERP::setFornecedor()
     * @uses ArtigoERP::setGarantia()
     * @uses ArtigoERP::setGestaoSingular()
     * @uses ArtigoERP::setGrupoCenariosCompras()
     * @uses ArtigoERP::setGrupoEmbalagem()
     * @uses ArtigoERP::setIDTipoOrigemGPR()
     * @uses ArtigoERP::setIDTipoProducaoGPR()
     * @uses ArtigoERP::setIdClassificacao()
     * @uses ArtigoERP::setIdGDOC()
     * @uses ArtigoERP::setImposto()
     * @uses ArtigoERP::setIntrastatPautal()
     * @uses ArtigoERP::setIntrastatPeso()
     * @uses ArtigoERP::setIsentoIEC()
     * @uses ArtigoERP::setIsentoPagDireitos()
     * @uses ArtigoERP::setIva()
     * @uses ArtigoERP::setLocalizacaoSugestao()
     * @uses ArtigoERP::setLoteEntradas()
     * @uses ArtigoERP::setLoteFormulaEntradas()
     * @uses ArtigoERP::setLoteFormulaSaidas()
     * @uses ArtigoERP::setLoteSaidas()
     * @uses ArtigoERP::setMarca()
     * @uses ArtigoERP::setModelo()
     * @uses ArtigoERP::setMovStock()
     * @uses ArtigoERP::setNaturezaAnalitica()
     * @uses ArtigoERP::setNecessarioRecalcPCM()
     * @uses ArtigoERP::setNumeroONU()
     * @uses ArtigoERP::setObservacoes()
     * @uses ArtigoERP::setOperacaoTesouraria()
     * @uses ArtigoERP::setOrdemDim()
     * @uses ArtigoERP::setPCMedio()
     * @uses ArtigoERP::setPCPadrao()
     * @uses ArtigoERP::setPCUltimo()
     * @uses ArtigoERP::setPercIncidenciaIVA()
     * @uses ArtigoERP::setPercIvaDedutivel()
     * @uses ArtigoERP::setPermiteDevolucao()
     * @uses ArtigoERP::setPesar()
     * @uses ArtigoERP::setPeso()
     * @uses ArtigoERP::setPesoLiquido()
     * @uses ArtigoERP::setPrazoEntrega()
     * @uses ArtigoERP::setProtegida()
     * @uses ArtigoERP::setQtReceberGPR()
     * @uses ArtigoERP::setQtReservadaGPR()
     * @uses ArtigoERP::setQtdEconomica()
     * @uses ArtigoERP::setRetencaoArtigoTipoValor()
     * @uses ArtigoERP::setRetencaoArtigoValor()
     * @uses ArtigoERP::setRubDim1()
     * @uses ArtigoERP::setRubDim2()
     * @uses ArtigoERP::setRubDim3()
     * @uses ArtigoERP::setSTKActual()
     * @uses ArtigoERP::setSTKMaximo()
     * @uses ArtigoERP::setSTKMinimo()
     * @uses ArtigoERP::setSTKReposicao()
     * @uses ArtigoERP::setSelo()
     * @uses ArtigoERP::setSequenciaGPR()
     * @uses ArtigoERP::setSubFamilia()
     * @uses ArtigoERP::setSugestaoPrComposto()
     * @uses ArtigoERP::setSujeitoEcotaxa()
     * @uses ArtigoERP::setSujeitoIEC()
     * @uses ArtigoERP::setSujeitoProRata()
     * @uses ArtigoERP::setSujeitoRetencao()
     * @uses ArtigoERP::setSujeitoRetencaoArtigo()
     * @uses ArtigoERP::setTaxaAlcool()
     * @uses ArtigoERP::setTestaNumSerie()
     * @uses ArtigoERP::setTipoArtigo()
     * @uses ArtigoERP::setTipoComponente()
     * @uses ArtigoERP::setTipoDim1()
     * @uses ArtigoERP::setTipoDim2()
     * @uses ArtigoERP::setTipoDim3()
     * @uses ArtigoERP::setTipoDocOpTesouraria()
     * @uses ArtigoERP::setTipoEntidadeOpTesouraria()
     * @uses ArtigoERP::setTratamentoDim()
     * @uses ArtigoERP::setTratamentoLotes()
     * @uses ArtigoERP::setTratamentoSeries()
     * @uses ArtigoERP::setUltDescontoComercialCompra()
     * @uses ArtigoERP::setUltDespesaAdicionalCompra()
     * @uses ArtigoERP::setUltimaSerieDoc()
     * @uses ArtigoERP::setUltimoFornecedor()
     * @uses ArtigoERP::setUltimoLote()
     * @uses ArtigoERP::setUltimoNumDoc()
     * @uses ArtigoERP::setUltimoNumSerie()
     * @uses ArtigoERP::setUltimoTipoDoc()
     * @uses ArtigoERP::setUnidadeBase()
     * @uses ArtigoERP::setUnidadeCompra()
     * @uses ArtigoERP::setUnidadeEntrada()
     * @uses ArtigoERP::setUnidadeSaida()
     * @uses ArtigoERP::setUnidadeTaric()
     * @uses ArtigoERP::setUnidadeVenda()
     * @uses ArtigoERP::setUtilManutencao()
     * @uses ArtigoERP::setUtilizadoCCOP()
     * @uses ArtigoERP::setUtilizadoGPR()
     * @uses ArtigoERP::setValorIEC()
     * @uses ArtigoERP::setVersaoUltAct()
     * @uses ArtigoERP::setVolume()
     * @uses ArtigoERP::setEGAR_Grupo()
     * @uses ArtigoERP::setEGAR_LER()
     * @param bool $afectaPCM
     * @param string $armazemSugestao
     * @param string $artAssociado
     * @param string $artSubstituto
     * @param string $artigo1
     * @param bool $artigoAnulado
     * @param string $artigoPai
     * @param \ArrayType\ArrayOfArtigoArmazemERP $artigosArmazem
     * @param \ArrayType\ArrayOfArtigoFornecedorERP $artigosFornecedor
     * @param \ArrayType\ArrayOfArtigoMoedaERP $artigosMoeda
     * @param float $cDU_Altura
     * @param float $cDU_Comprimento
     * @param string $cDU_ExtensaoFoto
     * @param string $cDU_Foto
     * @param float $cDU_Largura
     * @param string $cDU_NomeFoto
     * @param bool $calcNecessidadesGPR
     * @param float $capacidadeEmbIEC
     * @param string $categoriaIEC
     * @param string $classeArtigoTaxFree
     * @param string $codBarras
     * @param int $codigoAdicionalAltIEC
     * @param string $codigoBebidaEspirituosa
     * @param string $codigoEstampilha
     * @param string $codigoIsentoIEC
     * @param string $codigoPautal
     * @param string $codigoTaric
     * @param string $dataDesactivacaoGPR
     * @param string $dataUltEntrada
     * @param string $dataUltSaida
     * @param string $dataUltimaActualizacao
     * @param bool $deduzIvaNoImo
     * @param bool $desactivadoGPR
     * @param float $desconto
     * @param string $descricao
     * @param float $desperdicioGPR
     * @param string $dim1
     * @param string $dim2
     * @param string $dim3
     * @param bool $dimLote
     * @param float $ecovalor
     * @param string $embalagemIEC
     * @param string $entidadeOPTesouraria
     * @param string $etiqueta
     * @param bool $fabCompAutoGPR
     * @param float $factConvIEC
     * @param float $factorUnidadeSup
     * @param string $familia
     * @param string $formulaCompras
     * @param string $formulaGPR
     * @param string $formulaVendas
     * @param string $fornecedor
     * @param string $garantia
     * @param bool $gestaoSingular
     * @param string $grupoCenariosCompras
     * @param string $grupoEmbalagem
     * @param string $iDTipoOrigemGPR
     * @param string $iDTipoProducaoGPR
     * @param string $idClassificacao
     * @param string $idGDOC
     * @param bool $imposto
     * @param string $intrastatPautal
     * @param float $intrastatPeso
     * @param bool $isentoIEC
     * @param bool $isentoPagDireitos
     * @param string $iva
     * @param string $localizacaoSugestao
     * @param string $loteEntradas
     * @param bool $loteFormulaEntradas
     * @param bool $loteFormulaSaidas
     * @param string $loteSaidas
     * @param string $marca
     * @param string $modelo
     * @param string $movStock
     * @param int $naturezaAnalitica
     * @param bool $necessarioRecalcPCM
     * @param string $numeroONU
     * @param string $observacoes
     * @param bool $operacaoTesouraria
     * @param int $ordemDim
     * @param float $pCMedio
     * @param float $pCPadrao
     * @param float $pCUltimo
     * @param float $percIncidenciaIVA
     * @param float $percIvaDedutivel
     * @param bool $permiteDevolucao
     * @param bool $pesar
     * @param float $peso
     * @param float $pesoLiquido
     * @param int $prazoEntrega
     * @param bool $protegida
     * @param float $qtReceberGPR
     * @param float $qtReservadaGPR
     * @param float $qtdEconomica
     * @param bool $retencaoArtigoTipoValor
     * @param float $retencaoArtigoValor
     * @param string $rubDim1
     * @param string $rubDim2
     * @param string $rubDim3
     * @param float $sTKActual
     * @param float $sTKMaximo
     * @param float $sTKMinimo
     * @param float $sTKReposicao
     * @param string $selo
     * @param int $sequenciaGPR
     * @param string $subFamilia
     * @param int $sugestaoPrComposto
     * @param bool $sujeitoEcotaxa
     * @param bool $sujeitoIEC
     * @param bool $sujeitoProRata
     * @param bool $sujeitoRetencao
     * @param bool $sujeitoRetencaoArtigo
     * @param float $taxaAlcool
     * @param bool $testaNumSerie
     * @param string $tipoArtigo
     * @param int $tipoComponente
     * @param string $tipoDim1
     * @param string $tipoDim2
     * @param string $tipoDim3
     * @param string $tipoDocOpTesouraria
     * @param string $tipoEntidadeOpTesouraria
     * @param int $tratamentoDim
     * @param bool $tratamentoLotes
     * @param bool $tratamentoSeries
     * @param float $ultDescontoComercialCompra
     * @param float $ultDespesaAdicionalCompra
     * @param string $ultimaSerieDoc
     * @param string $ultimoFornecedor
     * @param string $ultimoLote
     * @param int $ultimoNumDoc
     * @param string $ultimoNumSerie
     * @param string $ultimoTipoDoc
     * @param string $unidadeBase
     * @param string $unidadeCompra
     * @param string $unidadeEntrada
     * @param string $unidadeSaida
     * @param string $unidadeTaric
     * @param string $unidadeVenda
     * @param bool $utilManutencao
     * @param bool $utilizadoCCOP
     * @param bool $utilizadoGPR
     * @param float $valorIEC
     * @param string $versaoUltAct
     * @param float $volume
     * @param string $eGAR_Grupo
     * @param string $eGAR_LER
     */
    public function __construct($afectaPCM = null, $armazemSugestao = null, $artAssociado = null, $artSubstituto = null, $artigo1 = null, $artigoAnulado = null, $artigoPai = null, \ArrayType\ArrayOfArtigoArmazemERP $artigosArmazem = null, \ArrayType\ArrayOfArtigoFornecedorERP $artigosFornecedor = null, \ArrayType\ArrayOfArtigoMoedaERP $artigosMoeda = null, $cDU_Altura = null, $cDU_Comprimento = null, $cDU_ExtensaoFoto = null, $cDU_Foto = null, $cDU_Largura = null, $cDU_NomeFoto = null, $calcNecessidadesGPR = null, $capacidadeEmbIEC = null, $categoriaIEC = null, $classeArtigoTaxFree = null, $codBarras = null, $codigoAdicionalAltIEC = null, $codigoBebidaEspirituosa = null, $codigoEstampilha = null, $codigoIsentoIEC = null, $codigoPautal = null, $codigoTaric = null, $dataDesactivacaoGPR = null, $dataUltEntrada = null, $dataUltSaida = null, $dataUltimaActualizacao = null, $deduzIvaNoImo = null, $desactivadoGPR = null, $desconto = null, $descricao = null, $desperdicioGPR = null, $dim1 = null, $dim2 = null, $dim3 = null, $dimLote = null, $ecovalor = null, $embalagemIEC = null, $entidadeOPTesouraria = null, $etiqueta = null, $fabCompAutoGPR = null, $factConvIEC = null, $factorUnidadeSup = null, $familia = null, $formulaCompras = null, $formulaGPR = null, $formulaVendas = null, $fornecedor = null, $garantia = null, $gestaoSingular = null, $grupoCenariosCompras = null, $grupoEmbalagem = null, $iDTipoOrigemGPR = null, $iDTipoProducaoGPR = null, $idClassificacao = null, $idGDOC = null, $imposto = null, $intrastatPautal = null, $intrastatPeso = null, $isentoIEC = null, $isentoPagDireitos = null, $iva = null, $localizacaoSugestao = null, $loteEntradas = null, $loteFormulaEntradas = null, $loteFormulaSaidas = null, $loteSaidas = null, $marca = null, $modelo = null, $movStock = null, $naturezaAnalitica = null, $necessarioRecalcPCM = null, $numeroONU = null, $observacoes = null, $operacaoTesouraria = null, $ordemDim = null, $pCMedio = null, $pCPadrao = null, $pCUltimo = null, $percIncidenciaIVA = null, $percIvaDedutivel = null, $permiteDevolucao = null, $pesar = null, $peso = null, $pesoLiquido = null, $prazoEntrega = null, $protegida = null, $qtReceberGPR = null, $qtReservadaGPR = null, $qtdEconomica = null, $retencaoArtigoTipoValor = null, $retencaoArtigoValor = null, $rubDim1 = null, $rubDim2 = null, $rubDim3 = null, $sTKActual = null, $sTKMaximo = null, $sTKMinimo = null, $sTKReposicao = null, $selo = null, $sequenciaGPR = null, $subFamilia = null, $sugestaoPrComposto = null, $sujeitoEcotaxa = null, $sujeitoIEC = null, $sujeitoProRata = null, $sujeitoRetencao = null, $sujeitoRetencaoArtigo = null, $taxaAlcool = null, $testaNumSerie = null, $tipoArtigo = null, $tipoComponente = null, $tipoDim1 = null, $tipoDim2 = null, $tipoDim3 = null, $tipoDocOpTesouraria = null, $tipoEntidadeOpTesouraria = null, $tratamentoDim = null, $tratamentoLotes = null, $tratamentoSeries = null, $ultDescontoComercialCompra = null, $ultDespesaAdicionalCompra = null, $ultimaSerieDoc = null, $ultimoFornecedor = null, $ultimoLote = null, $ultimoNumDoc = null, $ultimoNumSerie = null, $ultimoTipoDoc = null, $unidadeBase = null, $unidadeCompra = null, $unidadeEntrada = null, $unidadeSaida = null, $unidadeTaric = null, $unidadeVenda = null, $utilManutencao = null, $utilizadoCCOP = null, $utilizadoGPR = null, $valorIEC = null, $versaoUltAct = null, $volume = null, $eGAR_Grupo = null, $eGAR_LER = null)
    {
        $this
            ->setAfectaPCM($afectaPCM)
            ->setArmazemSugestao($armazemSugestao)
            ->setArtAssociado($artAssociado)
            ->setArtSubstituto($artSubstituto)
            ->setArtigo1($artigo1)
            ->setArtigoAnulado($artigoAnulado)
            ->setArtigoPai($artigoPai)
            ->setArtigosArmazem($artigosArmazem)
            ->setArtigosFornecedor($artigosFornecedor)
            ->setArtigosMoeda($artigosMoeda)
            ->setCDU_Altura($cDU_Altura)
            ->setCDU_Comprimento($cDU_Comprimento)
            ->setCDU_ExtensaoFoto($cDU_ExtensaoFoto)
            ->setCDU_Foto($cDU_Foto)
            ->setCDU_Largura($cDU_Largura)
            ->setCDU_NomeFoto($cDU_NomeFoto)
            ->setCalcNecessidadesGPR($calcNecessidadesGPR)
            ->setCapacidadeEmbIEC($capacidadeEmbIEC)
            ->setCategoriaIEC($categoriaIEC)
            ->setClasseArtigoTaxFree($classeArtigoTaxFree)
            ->setCodBarras($codBarras)
            ->setCodigoAdicionalAltIEC($codigoAdicionalAltIEC)
            ->setCodigoBebidaEspirituosa($codigoBebidaEspirituosa)
            ->setCodigoEstampilha($codigoEstampilha)
            ->setCodigoIsentoIEC($codigoIsentoIEC)
            ->setCodigoPautal($codigoPautal)
            ->setCodigoTaric($codigoTaric)
            ->setDataDesactivacaoGPR($dataDesactivacaoGPR)
            ->setDataUltEntrada($dataUltEntrada)
            ->setDataUltSaida($dataUltSaida)
            ->setDataUltimaActualizacao($dataUltimaActualizacao)
            ->setDeduzIvaNoImo($deduzIvaNoImo)
            ->setDesactivadoGPR($desactivadoGPR)
            ->setDesconto($desconto)
            ->setDescricao($descricao)
            ->setDesperdicioGPR($desperdicioGPR)
            ->setDim1($dim1)
            ->setDim2($dim2)
            ->setDim3($dim3)
            ->setDimLote($dimLote)
            ->setEcovalor($ecovalor)
            ->setEmbalagemIEC($embalagemIEC)
            ->setEntidadeOPTesouraria($entidadeOPTesouraria)
            ->setEtiqueta($etiqueta)
            ->setFabCompAutoGPR($fabCompAutoGPR)
            ->setFactConvIEC($factConvIEC)
            ->setFactorUnidadeSup($factorUnidadeSup)
            ->setFamilia($familia)
            ->setFormulaCompras($formulaCompras)
            ->setFormulaGPR($formulaGPR)
            ->setFormulaVendas($formulaVendas)
            ->setFornecedor($fornecedor)
            ->setGarantia($garantia)
            ->setGestaoSingular($gestaoSingular)
            ->setGrupoCenariosCompras($grupoCenariosCompras)
            ->setGrupoEmbalagem($grupoEmbalagem)
            ->setIDTipoOrigemGPR($iDTipoOrigemGPR)
            ->setIDTipoProducaoGPR($iDTipoProducaoGPR)
            ->setIdClassificacao($idClassificacao)
            ->setIdGDOC($idGDOC)
            ->setImposto($imposto)
            ->setIntrastatPautal($intrastatPautal)
            ->setIntrastatPeso($intrastatPeso)
            ->setIsentoIEC($isentoIEC)
            ->setIsentoPagDireitos($isentoPagDireitos)
            ->setIva($iva)
            ->setLocalizacaoSugestao($localizacaoSugestao)
            ->setLoteEntradas($loteEntradas)
            ->setLoteFormulaEntradas($loteFormulaEntradas)
            ->setLoteFormulaSaidas($loteFormulaSaidas)
            ->setLoteSaidas($loteSaidas)
            ->setMarca($marca)
            ->setModelo($modelo)
            ->setMovStock($movStock)
            ->setNaturezaAnalitica($naturezaAnalitica)
            ->setNecessarioRecalcPCM($necessarioRecalcPCM)
            ->setNumeroONU($numeroONU)
            ->setObservacoes($observacoes)
            ->setOperacaoTesouraria($operacaoTesouraria)
            ->setOrdemDim($ordemDim)
            ->setPCMedio($pCMedio)
            ->setPCPadrao($pCPadrao)
            ->setPCUltimo($pCUltimo)
            ->setPercIncidenciaIVA($percIncidenciaIVA)
            ->setPercIvaDedutivel($percIvaDedutivel)
            ->setPermiteDevolucao($permiteDevolucao)
            ->setPesar($pesar)
            ->setPeso($peso)
            ->setPesoLiquido($pesoLiquido)
            ->setPrazoEntrega($prazoEntrega)
            ->setProtegida($protegida)
            ->setQtReceberGPR($qtReceberGPR)
            ->setQtReservadaGPR($qtReservadaGPR)
            ->setQtdEconomica($qtdEconomica)
            ->setRetencaoArtigoTipoValor($retencaoArtigoTipoValor)
            ->setRetencaoArtigoValor($retencaoArtigoValor)
            ->setRubDim1($rubDim1)
            ->setRubDim2($rubDim2)
            ->setRubDim3($rubDim3)
            ->setSTKActual($sTKActual)
            ->setSTKMaximo($sTKMaximo)
            ->setSTKMinimo($sTKMinimo)
            ->setSTKReposicao($sTKReposicao)
            ->setSelo($selo)
            ->setSequenciaGPR($sequenciaGPR)
            ->setSubFamilia($subFamilia)
            ->setSugestaoPrComposto($sugestaoPrComposto)
            ->setSujeitoEcotaxa($sujeitoEcotaxa)
            ->setSujeitoIEC($sujeitoIEC)
            ->setSujeitoProRata($sujeitoProRata)
            ->setSujeitoRetencao($sujeitoRetencao)
            ->setSujeitoRetencaoArtigo($sujeitoRetencaoArtigo)
            ->setTaxaAlcool($taxaAlcool)
            ->setTestaNumSerie($testaNumSerie)
            ->setTipoArtigo($tipoArtigo)
            ->setTipoComponente($tipoComponente)
            ->setTipoDim1($tipoDim1)
            ->setTipoDim2($tipoDim2)
            ->setTipoDim3($tipoDim3)
            ->setTipoDocOpTesouraria($tipoDocOpTesouraria)
            ->setTipoEntidadeOpTesouraria($tipoEntidadeOpTesouraria)
            ->setTratamentoDim($tratamentoDim)
            ->setTratamentoLotes($tratamentoLotes)
            ->setTratamentoSeries($tratamentoSeries)
            ->setUltDescontoComercialCompra($ultDescontoComercialCompra)
            ->setUltDespesaAdicionalCompra($ultDespesaAdicionalCompra)
            ->setUltimaSerieDoc($ultimaSerieDoc)
            ->setUltimoFornecedor($ultimoFornecedor)
            ->setUltimoLote($ultimoLote)
            ->setUltimoNumDoc($ultimoNumDoc)
            ->setUltimoNumSerie($ultimoNumSerie)
            ->setUltimoTipoDoc($ultimoTipoDoc)
            ->setUnidadeBase($unidadeBase)
            ->setUnidadeCompra($unidadeCompra)
            ->setUnidadeEntrada($unidadeEntrada)
            ->setUnidadeSaida($unidadeSaida)
            ->setUnidadeTaric($unidadeTaric)
            ->setUnidadeVenda($unidadeVenda)
            ->setUtilManutencao($utilManutencao)
            ->setUtilizadoCCOP($utilizadoCCOP)
            ->setUtilizadoGPR($utilizadoGPR)
            ->setValorIEC($valorIEC)
            ->setVersaoUltAct($versaoUltAct)
            ->setVolume($volume)
            ->setEGAR_Grupo($eGAR_Grupo)
            ->setEGAR_LER($eGAR_LER);
    }
    /**
     * Get AfectaPCM value
     * @return bool|null
     */
    public function getAfectaPCM()
    {
        return $this->AfectaPCM;
    }
    /**
     * Set AfectaPCM value
     * @param bool $afectaPCM
     * @return \StructType\ArtigoERP
     */
    public function setAfectaPCM($afectaPCM = null)
    {
        // validation for constraint: boolean
        if (!is_null($afectaPCM) && !is_bool($afectaPCM)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($afectaPCM)), __LINE__);
        }
        $this->AfectaPCM = $afectaPCM;
        return $this;
    }
    /**
     * Get ArmazemSugestao value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getArmazemSugestao()
    {
        return isset($this->ArmazemSugestao) ? $this->ArmazemSugestao : null;
    }
    /**
     * Set ArmazemSugestao value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $armazemSugestao
     * @return \StructType\ArtigoERP
     */
    public function setArmazemSugestao($armazemSugestao = null)
    {
        // validation for constraint: string
        if (!is_null($armazemSugestao) && !is_string($armazemSugestao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($armazemSugestao)), __LINE__);
        }
        if (is_null($armazemSugestao) || (is_array($armazemSugestao) && empty($armazemSugestao))) {
            unset($this->ArmazemSugestao);
        } else {
            $this->ArmazemSugestao = $armazemSugestao;
        }
        return $this;
    }
    /**
     * Get ArtAssociado 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 getArtAssociado()
    {
        return isset($this->ArtAssociado) ? $this->ArtAssociado : null;
    }
    /**
     * Set ArtAssociado 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 $artAssociado
     * @return \StructType\ArtigoERP
     */
    public function setArtAssociado($artAssociado = null)
    {
        // validation for constraint: string
        if (!is_null($artAssociado) && !is_string($artAssociado)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($artAssociado)), __LINE__);
        }
        if (is_null($artAssociado) || (is_array($artAssociado) && empty($artAssociado))) {
            unset($this->ArtAssociado);
        } else {
            $this->ArtAssociado = $artAssociado;
        }
        return $this;
    }
    /**
     * Get ArtSubstituto 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 getArtSubstituto()
    {
        return isset($this->ArtSubstituto) ? $this->ArtSubstituto : null;
    }
    /**
     * Set ArtSubstituto 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 $artSubstituto
     * @return \StructType\ArtigoERP
     */
    public function setArtSubstituto($artSubstituto = null)
    {
        // validation for constraint: string
        if (!is_null($artSubstituto) && !is_string($artSubstituto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($artSubstituto)), __LINE__);
        }
        if (is_null($artSubstituto) || (is_array($artSubstituto) && empty($artSubstituto))) {
            unset($this->ArtSubstituto);
        } else {
            $this->ArtSubstituto = $artSubstituto;
        }
        return $this;
    }
    /**
     * Get Artigo1 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 getArtigo1()
    {
        return isset($this->Artigo1) ? $this->Artigo1 : null;
    }
    /**
     * Set Artigo1 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 $artigo1
     * @return \StructType\ArtigoERP
     */
    public function setArtigo1($artigo1 = null)
    {
        // validation for constraint: string
        if (!is_null($artigo1) && !is_string($artigo1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($artigo1)), __LINE__);
        }
        if (is_null($artigo1) || (is_array($artigo1) && empty($artigo1))) {
            unset($this->Artigo1);
        } else {
            $this->Artigo1 = $artigo1;
        }
        return $this;
    }
    /**
     * Get ArtigoAnulado value
     * @return bool|null
     */
    public function getArtigoAnulado()
    {
        return $this->ArtigoAnulado;
    }
    /**
     * Set ArtigoAnulado value
     * @param bool $artigoAnulado
     * @return \StructType\ArtigoERP
     */
    public function setArtigoAnulado($artigoAnulado = null)
    {
        // validation for constraint: boolean
        if (!is_null($artigoAnulado) && !is_bool($artigoAnulado)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($artigoAnulado)), __LINE__);
        }
        $this->ArtigoAnulado = $artigoAnulado;
        return $this;
    }
    /**
     * Get ArtigoPai 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 getArtigoPai()
    {
        return isset($this->ArtigoPai) ? $this->ArtigoPai : null;
    }
    /**
     * Set ArtigoPai 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 $artigoPai
     * @return \StructType\ArtigoERP
     */
    public function setArtigoPai($artigoPai = null)
    {
        // validation for constraint: string
        if (!is_null($artigoPai) && !is_string($artigoPai)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($artigoPai)), __LINE__);
        }
        if (is_null($artigoPai) || (is_array($artigoPai) && empty($artigoPai))) {
            unset($this->ArtigoPai);
        } else {
            $this->ArtigoPai = $artigoPai;
        }
        return $this;
    }
    /**
     * Get ArtigosArmazem 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 \ArrayType\ArrayOfArtigoArmazemERP|null
     */
    public function getArtigosArmazem()
    {
        return isset($this->ArtigosArmazem) ? $this->ArtigosArmazem : null;
    }
    /**
     * Set ArtigosArmazem 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 \ArrayType\ArrayOfArtigoArmazemERP $artigosArmazem
     * @return \StructType\ArtigoERP
     */
    public function setArtigosArmazem(\ArrayType\ArrayOfArtigoArmazemERP $artigosArmazem = null)
    {
        if (is_null($artigosArmazem) || (is_array($artigosArmazem) && empty($artigosArmazem))) {
            unset($this->ArtigosArmazem);
        } else {
            $this->ArtigosArmazem = $artigosArmazem;
        }
        return $this;
    }
    /**
     * Get ArtigosFornecedor 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 \ArrayType\ArrayOfArtigoFornecedorERP|null
     */
    public function getArtigosFornecedor()
    {
        return isset($this->ArtigosFornecedor) ? $this->ArtigosFornecedor : null;
    }
    /**
     * Set ArtigosFornecedor 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 \ArrayType\ArrayOfArtigoFornecedorERP $artigosFornecedor
     * @return \StructType\ArtigoERP
     */
    public function setArtigosFornecedor(\ArrayType\ArrayOfArtigoFornecedorERP $artigosFornecedor = null)
    {
        if (is_null($artigosFornecedor) || (is_array($artigosFornecedor) && empty($artigosFornecedor))) {
            unset($this->ArtigosFornecedor);
        } else {
            $this->ArtigosFornecedor = $artigosFornecedor;
        }
        return $this;
    }
    /**
     * Get ArtigosMoeda 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 \ArrayType\ArrayOfArtigoMoedaERP|null
     */
    public function getArtigosMoeda()
    {
        return isset($this->ArtigosMoeda) ? $this->ArtigosMoeda : null;
    }
    /**
     * Set ArtigosMoeda 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 \ArrayType\ArrayOfArtigoMoedaERP $artigosMoeda
     * @return \StructType\ArtigoERP
     */
    public function setArtigosMoeda(\ArrayType\ArrayOfArtigoMoedaERP $artigosMoeda = null)
    {
        if (is_null($artigosMoeda) || (is_array($artigosMoeda) && empty($artigosMoeda))) {
            unset($this->ArtigosMoeda);
        } else {
            $this->ArtigosMoeda = $artigosMoeda;
        }
        return $this;
    }
    /**
     * Get CDU_Altura 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 getCDU_Altura()
    {
        return isset($this->CDU_Altura) ? $this->CDU_Altura : null;
    }
    /**
     * Set CDU_Altura 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 $cDU_Altura
     * @return \StructType\ArtigoERP
     */
    public function setCDU_Altura($cDU_Altura = null)
    {
        if (is_null($cDU_Altura) || (is_array($cDU_Altura) && empty($cDU_Altura))) {
            unset($this->CDU_Altura);
        } else {
            $this->CDU_Altura = $cDU_Altura;
        }
        return $this;
    }
    /**
     * Get CDU_Comprimento 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 getCDU_Comprimento()
    {
        return isset($this->CDU_Comprimento) ? $this->CDU_Comprimento : null;
    }
    /**
     * Set CDU_Comprimento 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 $cDU_Comprimento
     * @return \StructType\ArtigoERP
     */
    public function setCDU_Comprimento($cDU_Comprimento = null)
    {
        if (is_null($cDU_Comprimento) || (is_array($cDU_Comprimento) && empty($cDU_Comprimento))) {
            unset($this->CDU_Comprimento);
        } else {
            $this->CDU_Comprimento = $cDU_Comprimento;
        }
        return $this;
    }
    /**
     * Get CDU_ExtensaoFoto 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 getCDU_ExtensaoFoto()
    {
        return isset($this->CDU_ExtensaoFoto) ? $this->CDU_ExtensaoFoto : null;
    }
    /**
     * Set CDU_ExtensaoFoto 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 $cDU_ExtensaoFoto
     * @return \StructType\ArtigoERP
     */
    public function setCDU_ExtensaoFoto($cDU_ExtensaoFoto = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_ExtensaoFoto) && !is_string($cDU_ExtensaoFoto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_ExtensaoFoto)), __LINE__);
        }
        if (is_null($cDU_ExtensaoFoto) || (is_array($cDU_ExtensaoFoto) && empty($cDU_ExtensaoFoto))) {
            unset($this->CDU_ExtensaoFoto);
        } else {
            $this->CDU_ExtensaoFoto = $cDU_ExtensaoFoto;
        }
        return $this;
    }
    /**
     * Get CDU_Foto 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 getCDU_Foto()
    {
        return isset($this->CDU_Foto) ? $this->CDU_Foto : null;
    }
    /**
     * Set CDU_Foto 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 $cDU_Foto
     * @return \StructType\ArtigoERP
     */
    public function setCDU_Foto($cDU_Foto = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_Foto) && !is_string($cDU_Foto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_Foto)), __LINE__);
        }
        if (is_null($cDU_Foto) || (is_array($cDU_Foto) && empty($cDU_Foto))) {
            unset($this->CDU_Foto);
        } else {
            $this->CDU_Foto = $cDU_Foto;
        }
        return $this;
    }
    /**
     * Get CDU_Largura 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 getCDU_Largura()
    {
        return isset($this->CDU_Largura) ? $this->CDU_Largura : null;
    }
    /**
     * Set CDU_Largura 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 $cDU_Largura
     * @return \StructType\ArtigoERP
     */
    public function setCDU_Largura($cDU_Largura = null)
    {
        if (is_null($cDU_Largura) || (is_array($cDU_Largura) && empty($cDU_Largura))) {
            unset($this->CDU_Largura);
        } else {
            $this->CDU_Largura = $cDU_Largura;
        }
        return $this;
    }
    /**
     * Get CDU_NomeFoto 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 getCDU_NomeFoto()
    {
        return isset($this->CDU_NomeFoto) ? $this->CDU_NomeFoto : null;
    }
    /**
     * Set CDU_NomeFoto 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 $cDU_NomeFoto
     * @return \StructType\ArtigoERP
     */
    public function setCDU_NomeFoto($cDU_NomeFoto = null)
    {
        // validation for constraint: string
        if (!is_null($cDU_NomeFoto) && !is_string($cDU_NomeFoto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($cDU_NomeFoto)), __LINE__);
        }
        if (is_null($cDU_NomeFoto) || (is_array($cDU_NomeFoto) && empty($cDU_NomeFoto))) {
            unset($this->CDU_NomeFoto);
        } else {
            $this->CDU_NomeFoto = $cDU_NomeFoto;
        }
        return $this;
    }
    /**
     * Get CalcNecessidadesGPR value
     * @return bool|null
     */
    public function getCalcNecessidadesGPR()
    {
        return $this->CalcNecessidadesGPR;
    }
    /**
     * Set CalcNecessidadesGPR value
     * @param bool $calcNecessidadesGPR
     * @return \StructType\ArtigoERP
     */
    public function setCalcNecessidadesGPR($calcNecessidadesGPR = null)
    {
        // validation for constraint: boolean
        if (!is_null($calcNecessidadesGPR) && !is_bool($calcNecessidadesGPR)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($calcNecessidadesGPR)), __LINE__);
        }
        $this->CalcNecessidadesGPR = $calcNecessidadesGPR;
        return $this;
    }
    /**
     * Get CapacidadeEmbIEC 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 getCapacidadeEmbIEC()
    {
        return isset($this->CapacidadeEmbIEC) ? $this->CapacidadeEmbIEC : null;
    }
    /**
     * Set CapacidadeEmbIEC 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 $capacidadeEmbIEC
     * @return \StructType\ArtigoERP
     */
    public function setCapacidadeEmbIEC($capacidadeEmbIEC = null)
    {
        if (is_null($capacidadeEmbIEC) || (is_array($capacidadeEmbIEC) && empty($capacidadeEmbIEC))) {
            unset($this->CapacidadeEmbIEC);
        } else {
            $this->CapacidadeEmbIEC = $capacidadeEmbIEC;
        }
        return $this;
    }
    /**
     * Get CategoriaIEC 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 getCategoriaIEC()
    {
        return isset($this->CategoriaIEC) ? $this->CategoriaIEC : null;
    }
    /**
     * Set CategoriaIEC 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 $categoriaIEC
     * @return \StructType\ArtigoERP
     */
    public function setCategoriaIEC($categoriaIEC = null)
    {
        // validation for constraint: string
        if (!is_null($categoriaIEC) && !is_string($categoriaIEC)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($categoriaIEC)), __LINE__);
        }
        if (is_null($categoriaIEC) || (is_array($categoriaIEC) && empty($categoriaIEC))) {
            unset($this->CategoriaIEC);
        } else {
            $this->CategoriaIEC = $categoriaIEC;
        }
        return $this;
    }
    /**
     * Get ClasseArtigoTaxFree 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 getClasseArtigoTaxFree()
    {
        return isset($this->ClasseArtigoTaxFree) ? $this->ClasseArtigoTaxFree : null;
    }
    /**
     * Set ClasseArtigoTaxFree 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 $classeArtigoTaxFree
     * @return \StructType\ArtigoERP
     */
    public function setClasseArtigoTaxFree($classeArtigoTaxFree = null)
    {
        // validation for constraint: string
        if (!is_null($classeArtigoTaxFree) && !is_string($classeArtigoTaxFree)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($classeArtigoTaxFree)), __LINE__);
        }
        if (is_null($classeArtigoTaxFree) || (is_array($classeArtigoTaxFree) && empty($classeArtigoTaxFree))) {
            unset($this->ClasseArtigoTaxFree);
        } else {
            $this->ClasseArtigoTaxFree = $classeArtigoTaxFree;
        }
        return $this;
    }
    /**
     * Get CodBarras 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 getCodBarras()
    {
        return isset($this->CodBarras) ? $this->CodBarras : null;
    }
    /**
     * Set CodBarras 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 $codBarras
     * @return \StructType\ArtigoERP
     */
    public function setCodBarras($codBarras = null)
    {
        // validation for constraint: string
        if (!is_null($codBarras) && !is_string($codBarras)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codBarras)), __LINE__);
        }
        if (is_null($codBarras) || (is_array($codBarras) && empty($codBarras))) {
            unset($this->CodBarras);
        } else {
            $this->CodBarras = $codBarras;
        }
        return $this;
    }
    /**
     * Get CodigoAdicionalAltIEC 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 getCodigoAdicionalAltIEC()
    {
        return isset($this->CodigoAdicionalAltIEC) ? $this->CodigoAdicionalAltIEC : null;
    }
    /**
     * Set CodigoAdicionalAltIEC 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 $codigoAdicionalAltIEC
     * @return \StructType\ArtigoERP
     */
    public function setCodigoAdicionalAltIEC($codigoAdicionalAltIEC = null)
    {
        // validation for constraint: int
        if (!is_null($codigoAdicionalAltIEC) && !is_numeric($codigoAdicionalAltIEC)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($codigoAdicionalAltIEC)), __LINE__);
        }
        if (is_null($codigoAdicionalAltIEC) || (is_array($codigoAdicionalAltIEC) && empty($codigoAdicionalAltIEC))) {
            unset($this->CodigoAdicionalAltIEC);
        } else {
            $this->CodigoAdicionalAltIEC = $codigoAdicionalAltIEC;
        }
        return $this;
    }
    /**
     * Get CodigoBebidaEspirituosa 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 getCodigoBebidaEspirituosa()
    {
        return isset($this->CodigoBebidaEspirituosa) ? $this->CodigoBebidaEspirituosa : null;
    }
    /**
     * Set CodigoBebidaEspirituosa 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 $codigoBebidaEspirituosa
     * @return \StructType\ArtigoERP
     */
    public function setCodigoBebidaEspirituosa($codigoBebidaEspirituosa = null)
    {
        // validation for constraint: string
        if (!is_null($codigoBebidaEspirituosa) && !is_string($codigoBebidaEspirituosa)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codigoBebidaEspirituosa)), __LINE__);
        }
        if (is_null($codigoBebidaEspirituosa) || (is_array($codigoBebidaEspirituosa) && empty($codigoBebidaEspirituosa))) {
            unset($this->CodigoBebidaEspirituosa);
        } else {
            $this->CodigoBebidaEspirituosa = $codigoBebidaEspirituosa;
        }
        return $this;
    }
    /**
     * Get CodigoEstampilha 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 getCodigoEstampilha()
    {
        return isset($this->CodigoEstampilha) ? $this->CodigoEstampilha : null;
    }
    /**
     * Set CodigoEstampilha 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 $codigoEstampilha
     * @return \StructType\ArtigoERP
     */
    public function setCodigoEstampilha($codigoEstampilha = null)
    {
        // validation for constraint: string
        if (!is_null($codigoEstampilha) && !is_string($codigoEstampilha)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codigoEstampilha)), __LINE__);
        }
        if (is_null($codigoEstampilha) || (is_array($codigoEstampilha) && empty($codigoEstampilha))) {
            unset($this->CodigoEstampilha);
        } else {
            $this->CodigoEstampilha = $codigoEstampilha;
        }
        return $this;
    }
    /**
     * Get CodigoIsentoIEC 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 getCodigoIsentoIEC()
    {
        return isset($this->CodigoIsentoIEC) ? $this->CodigoIsentoIEC : null;
    }
    /**
     * Set CodigoIsentoIEC 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 $codigoIsentoIEC
     * @return \StructType\ArtigoERP
     */
    public function setCodigoIsentoIEC($codigoIsentoIEC = null)
    {
        // validation for constraint: string
        if (!is_null($codigoIsentoIEC) && !is_string($codigoIsentoIEC)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codigoIsentoIEC)), __LINE__);
        }
        if (is_null($codigoIsentoIEC) || (is_array($codigoIsentoIEC) && empty($codigoIsentoIEC))) {
            unset($this->CodigoIsentoIEC);
        } else {
            $this->CodigoIsentoIEC = $codigoIsentoIEC;
        }
        return $this;
    }
    /**
     * Get CodigoPautal 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 getCodigoPautal()
    {
        return isset($this->CodigoPautal) ? $this->CodigoPautal : null;
    }
    /**
     * Set CodigoPautal 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 $codigoPautal
     * @return \StructType\ArtigoERP
     */
    public function setCodigoPautal($codigoPautal = null)
    {
        // validation for constraint: string
        if (!is_null($codigoPautal) && !is_string($codigoPautal)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codigoPautal)), __LINE__);
        }
        if (is_null($codigoPautal) || (is_array($codigoPautal) && empty($codigoPautal))) {
            unset($this->CodigoPautal);
        } else {
            $this->CodigoPautal = $codigoPautal;
        }
        return $this;
    }
    /**
     * Get CodigoTaric 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 getCodigoTaric()
    {
        return isset($this->CodigoTaric) ? $this->CodigoTaric : null;
    }
    /**
     * Set CodigoTaric 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 $codigoTaric
     * @return \StructType\ArtigoERP
     */
    public function setCodigoTaric($codigoTaric = null)
    {
        // validation for constraint: string
        if (!is_null($codigoTaric) && !is_string($codigoTaric)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($codigoTaric)), __LINE__);
        }
        if (is_null($codigoTaric) || (is_array($codigoTaric) && empty($codigoTaric))) {
            unset($this->CodigoTaric);
        } else {
            $this->CodigoTaric = $codigoTaric;
        }
        return $this;
    }
    /**
     * Get DataDesactivacaoGPR 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 getDataDesactivacaoGPR()
    {
        return isset($this->DataDesactivacaoGPR) ? $this->DataDesactivacaoGPR : null;
    }
    /**
     * Set DataDesactivacaoGPR 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 $dataDesactivacaoGPR
     * @return \StructType\ArtigoERP
     */
    public function setDataDesactivacaoGPR($dataDesactivacaoGPR = null)
    {
        // validation for constraint: string
        if (!is_null($dataDesactivacaoGPR) && !is_string($dataDesactivacaoGPR)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataDesactivacaoGPR)), __LINE__);
        }
        if (is_null($dataDesactivacaoGPR) || (is_array($dataDesactivacaoGPR) && empty($dataDesactivacaoGPR))) {
            unset($this->DataDesactivacaoGPR);
        } else {
            $this->DataDesactivacaoGPR = $dataDesactivacaoGPR;
        }
        return $this;
    }
    /**
     * Get DataUltEntrada 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 getDataUltEntrada()
    {
        return isset($this->DataUltEntrada) ? $this->DataUltEntrada : null;
    }
    /**
     * Set DataUltEntrada 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 $dataUltEntrada
     * @return \StructType\ArtigoERP
     */
    public function setDataUltEntrada($dataUltEntrada = null)
    {
        // validation for constraint: string
        if (!is_null($dataUltEntrada) && !is_string($dataUltEntrada)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataUltEntrada)), __LINE__);
        }
        if (is_null($dataUltEntrada) || (is_array($dataUltEntrada) && empty($dataUltEntrada))) {
            unset($this->DataUltEntrada);
        } else {
            $this->DataUltEntrada = $dataUltEntrada;
        }
        return $this;
    }
    /**
     * Get DataUltSaida 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 getDataUltSaida()
    {
        return isset($this->DataUltSaida) ? $this->DataUltSaida : null;
    }
    /**
     * Set DataUltSaida 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 $dataUltSaida
     * @return \StructType\ArtigoERP
     */
    public function setDataUltSaida($dataUltSaida = null)
    {
        // validation for constraint: string
        if (!is_null($dataUltSaida) && !is_string($dataUltSaida)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataUltSaida)), __LINE__);
        }
        if (is_null($dataUltSaida) || (is_array($dataUltSaida) && empty($dataUltSaida))) {
            unset($this->DataUltSaida);
        } else {
            $this->DataUltSaida = $dataUltSaida;
        }
        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\ArtigoERP
     */
    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 DeduzIvaNoImo value
     * @return bool|null
     */
    public function getDeduzIvaNoImo()
    {
        return $this->DeduzIvaNoImo;
    }
    /**
     * Set DeduzIvaNoImo value
     * @param bool $deduzIvaNoImo
     * @return \StructType\ArtigoERP
     */
    public function setDeduzIvaNoImo($deduzIvaNoImo = null)
    {
        // validation for constraint: boolean
        if (!is_null($deduzIvaNoImo) && !is_bool($deduzIvaNoImo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($deduzIvaNoImo)), __LINE__);
        }
        $this->DeduzIvaNoImo = $deduzIvaNoImo;
        return $this;
    }
    /**
     * Get DesactivadoGPR 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 getDesactivadoGPR()
    {
        return isset($this->DesactivadoGPR) ? $this->DesactivadoGPR : null;
    }
    /**
     * Set DesactivadoGPR 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 $desactivadoGPR
     * @return \StructType\ArtigoERP
     */
    public function setDesactivadoGPR($desactivadoGPR = null)
    {
        // validation for constraint: boolean
        if (!is_null($desactivadoGPR) && !is_bool($desactivadoGPR)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($desactivadoGPR)), __LINE__);
        }
        if (is_null($desactivadoGPR) || (is_array($desactivadoGPR) && empty($desactivadoGPR))) {
            unset($this->DesactivadoGPR);
        } else {
            $this->DesactivadoGPR = $desactivadoGPR;
        }
        return $this;
    }
    /**
     * Get Desconto value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return float|null
     */
    public function getDesconto()
    {
        return isset($this->Desconto) ? $this->Desconto : null;
    }
    /**
     * Set Desconto value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param float $desconto
     * @return \StructType\ArtigoERP
     */
    public function setDesconto($desconto = null)
    {
        if (is_null($desconto) || (is_array($desconto) && empty($desconto))) {
            unset($this->Desconto);
        } else {
            $this->Desconto = $desconto;
        }
        return $this;
    }
    /**
     * Get Descricao value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return string|null
     */
    public function getDescricao()
    {
        return isset($this->Descricao) ? $this->Descricao : null;
    }
    /**
     * Set Descricao value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param string $descricao
     * @return \StructType\ArtigoERP
     */
    public function setDescricao($descricao = null)
    {
        // validation for constraint: string
        if (!is_null($descricao) && !is_string($descricao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($descricao)), __LINE__);
        }
        if (is_null($descricao) || (is_array($descricao) && empty($descricao))) {
            unset($this->Descricao);
        } else {
            $this->Descricao = $descricao;
        }
        return $this;
    }
    /**
     * Get DesperdicioGPR 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 getDesperdicioGPR()
    {
        return isset($this->DesperdicioGPR) ? $this->DesperdicioGPR : null;
    }
    /**
     * Set DesperdicioGPR 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 $desperdicioGPR
     * @return \StructType\ArtigoERP
     */
    public function setDesperdicioGPR($desperdicioGPR = null)
    {
        if (is_null($desperdicioGPR) || (is_array($desperdicioGPR) && empty($desperdicioGPR))) {
            unset($this->DesperdicioGPR);
        } else {
            $this->DesperdicioGPR = $desperdicioGPR;
        }
        return $this;
    }
    /**
     * Get Dim1 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 getDim1()
    {
        return isset($this->Dim1) ? $this->Dim1 : null;
    }
    /**
     * Set Dim1 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 $dim1
     * @return \StructType\ArtigoERP
     */
    public function setDim1($dim1 = null)
    {
        // validation for constraint: string
        if (!is_null($dim1) && !is_string($dim1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dim1)), __LINE__);
        }
        if (is_null($dim1) || (is_array($dim1) && empty($dim1))) {
            unset($this->Dim1);
        } else {
            $this->Dim1 = $dim1;
        }
        return $this;
    }
    /**
     * Get Dim2 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 getDim2()
    {
        return isset($this->Dim2) ? $this->Dim2 : null;
    }
    /**
     * Set Dim2 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 $dim2
     * @return \StructType\ArtigoERP
     */
    public function setDim2($dim2 = null)
    {
        // validation for constraint: string
        if (!is_null($dim2) && !is_string($dim2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dim2)), __LINE__);
        }
        if (is_null($dim2) || (is_array($dim2) && empty($dim2))) {
            unset($this->Dim2);
        } else {
            $this->Dim2 = $dim2;
        }
        return $this;
    }
    /**
     * Get Dim3 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 getDim3()
    {
        return isset($this->Dim3) ? $this->Dim3 : null;
    }
    /**
     * Set Dim3 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 $dim3
     * @return \StructType\ArtigoERP
     */
    public function setDim3($dim3 = null)
    {
        // validation for constraint: string
        if (!is_null($dim3) && !is_string($dim3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dim3)), __LINE__);
        }
        if (is_null($dim3) || (is_array($dim3) && empty($dim3))) {
            unset($this->Dim3);
        } else {
            $this->Dim3 = $dim3;
        }
        return $this;
    }
    /**
     * Get DimLote value
     * @return bool|null
     */
    public function getDimLote()
    {
        return $this->DimLote;
    }
    /**
     * Set DimLote value
     * @param bool $dimLote
     * @return \StructType\ArtigoERP
     */
    public function setDimLote($dimLote = null)
    {
        // validation for constraint: boolean
        if (!is_null($dimLote) && !is_bool($dimLote)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($dimLote)), __LINE__);
        }
        $this->DimLote = $dimLote;
        return $this;
    }
    /**
     * Get Ecovalor 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 getEcovalor()
    {
        return isset($this->Ecovalor) ? $this->Ecovalor : null;
    }
    /**
     * Set Ecovalor 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 $ecovalor
     * @return \StructType\ArtigoERP
     */
    public function setEcovalor($ecovalor = null)
    {
        if (is_null($ecovalor) || (is_array($ecovalor) && empty($ecovalor))) {
            unset($this->Ecovalor);
        } else {
            $this->Ecovalor = $ecovalor;
        }
        return $this;
    }
    /**
     * Get EmbalagemIEC 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 getEmbalagemIEC()
    {
        return isset($this->EmbalagemIEC) ? $this->EmbalagemIEC : null;
    }
    /**
     * Set EmbalagemIEC 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 $embalagemIEC
     * @return \StructType\ArtigoERP
     */
    public function setEmbalagemIEC($embalagemIEC = null)
    {
        // validation for constraint: string
        if (!is_null($embalagemIEC) && !is_string($embalagemIEC)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($embalagemIEC)), __LINE__);
        }
        if (is_null($embalagemIEC) || (is_array($embalagemIEC) && empty($embalagemIEC))) {
            unset($this->EmbalagemIEC);
        } else {
            $this->EmbalagemIEC = $embalagemIEC;
        }
        return $this;
    }
    /**
     * Get EntidadeOPTesouraria 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 getEntidadeOPTesouraria()
    {
        return isset($this->EntidadeOPTesouraria) ? $this->EntidadeOPTesouraria : null;
    }
    /**
     * Set EntidadeOPTesouraria 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 $entidadeOPTesouraria
     * @return \StructType\ArtigoERP
     */
    public function setEntidadeOPTesouraria($entidadeOPTesouraria = null)
    {
        // validation for constraint: string
        if (!is_null($entidadeOPTesouraria) && !is_string($entidadeOPTesouraria)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($entidadeOPTesouraria)), __LINE__);
        }
        if (is_null($entidadeOPTesouraria) || (is_array($entidadeOPTesouraria) && empty($entidadeOPTesouraria))) {
            unset($this->EntidadeOPTesouraria);
        } else {
            $this->EntidadeOPTesouraria = $entidadeOPTesouraria;
        }
        return $this;
    }
    /**
     * Get Etiqueta 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 getEtiqueta()
    {
        return isset($this->Etiqueta) ? $this->Etiqueta : null;
    }
    /**
     * Set Etiqueta 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 $etiqueta
     * @return \StructType\ArtigoERP
     */
    public function setEtiqueta($etiqueta = null)
    {
        // validation for constraint: string
        if (!is_null($etiqueta) && !is_string($etiqueta)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($etiqueta)), __LINE__);
        }
        if (is_null($etiqueta) || (is_array($etiqueta) && empty($etiqueta))) {
            unset($this->Etiqueta);
        } else {
            $this->Etiqueta = $etiqueta;
        }
        return $this;
    }
    /**
     * Get FabCompAutoGPR value
     * @return bool|null
     */
    public function getFabCompAutoGPR()
    {
        return $this->FabCompAutoGPR;
    }
    /**
     * Set FabCompAutoGPR value
     * @param bool $fabCompAutoGPR
     * @return \StructType\ArtigoERP
     */
    public function setFabCompAutoGPR($fabCompAutoGPR = null)
    {
        // validation for constraint: boolean
        if (!is_null($fabCompAutoGPR) && !is_bool($fabCompAutoGPR)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($fabCompAutoGPR)), __LINE__);
        }
        $this->FabCompAutoGPR = $fabCompAutoGPR;
        return $this;
    }
    /**
     * Get FactConvIEC 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 getFactConvIEC()
    {
        return isset($this->FactConvIEC) ? $this->FactConvIEC : null;
    }
    /**
     * Set FactConvIEC 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 $factConvIEC
     * @return \StructType\ArtigoERP
     */
    public function setFactConvIEC($factConvIEC = null)
    {
        if (is_null($factConvIEC) || (is_array($factConvIEC) && empty($factConvIEC))) {
            unset($this->FactConvIEC);
        } else {
            $this->FactConvIEC = $factConvIEC;
        }
        return $this;
    }
    /**
     * Get FactorUnidadeSup value
     * @return float|null
     */
    public function getFactorUnidadeSup()
    {
        return $this->FactorUnidadeSup;
    }
    /**
     * Set FactorUnidadeSup value
     * @param float $factorUnidadeSup
     * @return \StructType\ArtigoERP
     */
    public function setFactorUnidadeSup($factorUnidadeSup = null)
    {
        $this->FactorUnidadeSup = $factorUnidadeSup;
        return $this;
    }
    /**
     * Get Familia 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 getFamilia()
    {
        return isset($this->Familia) ? $this->Familia : null;
    }
    /**
     * Set Familia 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 $familia
     * @return \StructType\ArtigoERP
     */
    public function setFamilia($familia = null)
    {
        // validation for constraint: string
        if (!is_null($familia) && !is_string($familia)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($familia)), __LINE__);
        }
        if (is_null($familia) || (is_array($familia) && empty($familia))) {
            unset($this->Familia);
        } else {
            $this->Familia = $familia;
        }
        return $this;
    }
    /**
     * Get FormulaCompras 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 getFormulaCompras()
    {
        return isset($this->FormulaCompras) ? $this->FormulaCompras : null;
    }
    /**
     * Set FormulaCompras 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 $formulaCompras
     * @return \StructType\ArtigoERP
     */
    public function setFormulaCompras($formulaCompras = null)
    {
        // validation for constraint: string
        if (!is_null($formulaCompras) && !is_string($formulaCompras)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($formulaCompras)), __LINE__);
        }
        if (is_null($formulaCompras) || (is_array($formulaCompras) && empty($formulaCompras))) {
            unset($this->FormulaCompras);
        } else {
            $this->FormulaCompras = $formulaCompras;
        }
        return $this;
    }
    /**
     * Get FormulaGPR 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 getFormulaGPR()
    {
        return isset($this->FormulaGPR) ? $this->FormulaGPR : null;
    }
    /**
     * Set FormulaGPR 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 $formulaGPR
     * @return \StructType\ArtigoERP
     */
    public function setFormulaGPR($formulaGPR = null)
    {
        // validation for constraint: string
        if (!is_null($formulaGPR) && !is_string($formulaGPR)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($formulaGPR)), __LINE__);
        }
        if (is_null($formulaGPR) || (is_array($formulaGPR) && empty($formulaGPR))) {
            unset($this->FormulaGPR);
        } else {
            $this->FormulaGPR = $formulaGPR;
        }
        return $this;
    }
    /**
     * Get FormulaVendas 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 getFormulaVendas()
    {
        return isset($this->FormulaVendas) ? $this->FormulaVendas : null;
    }
    /**
     * Set FormulaVendas 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 $formulaVendas
     * @return \StructType\ArtigoERP
     */
    public function setFormulaVendas($formulaVendas = null)
    {
        // validation for constraint: string
        if (!is_null($formulaVendas) && !is_string($formulaVendas)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($formulaVendas)), __LINE__);
        }
        if (is_null($formulaVendas) || (is_array($formulaVendas) && empty($formulaVendas))) {
            unset($this->FormulaVendas);
        } else {
            $this->FormulaVendas = $formulaVendas;
        }
        return $this;
    }
    /**
     * Get Fornecedor 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 getFornecedor()
    {
        return isset($this->Fornecedor) ? $this->Fornecedor : null;
    }
    /**
     * Set Fornecedor 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 $fornecedor
     * @return \StructType\ArtigoERP
     */
    public function setFornecedor($fornecedor = null)
    {
        // validation for constraint: string
        if (!is_null($fornecedor) && !is_string($fornecedor)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($fornecedor)), __LINE__);
        }
        if (is_null($fornecedor) || (is_array($fornecedor) && empty($fornecedor))) {
            unset($this->Fornecedor);
        } else {
            $this->Fornecedor = $fornecedor;
        }
        return $this;
    }
    /**
     * Get Garantia 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 getGarantia()
    {
        return isset($this->Garantia) ? $this->Garantia : null;
    }
    /**
     * Set Garantia 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 $garantia
     * @return \StructType\ArtigoERP
     */
    public function setGarantia($garantia = null)
    {
        // validation for constraint: string
        if (!is_null($garantia) && !is_string($garantia)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($garantia)), __LINE__);
        }
        if (is_null($garantia) || (is_array($garantia) && empty($garantia))) {
            unset($this->Garantia);
        } else {
            $this->Garantia = $garantia;
        }
        return $this;
    }
    /**
     * Get GestaoSingular value
     * @return bool|null
     */
    public function getGestaoSingular()
    {
        return $this->GestaoSingular;
    }
    /**
     * Set GestaoSingular value
     * @param bool $gestaoSingular
     * @return \StructType\ArtigoERP
     */
    public function setGestaoSingular($gestaoSingular = null)
    {
        // validation for constraint: boolean
        if (!is_null($gestaoSingular) && !is_bool($gestaoSingular)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($gestaoSingular)), __LINE__);
        }
        $this->GestaoSingular = $gestaoSingular;
        return $this;
    }
    /**
     * Get GrupoCenariosCompras 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 getGrupoCenariosCompras()
    {
        return isset($this->GrupoCenariosCompras) ? $this->GrupoCenariosCompras : null;
    }
    /**
     * Set GrupoCenariosCompras 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 $grupoCenariosCompras
     * @return \StructType\ArtigoERP
     */
    public function setGrupoCenariosCompras($grupoCenariosCompras = null)
    {
        // validation for constraint: string
        if (!is_null($grupoCenariosCompras) && !is_string($grupoCenariosCompras)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($grupoCenariosCompras)), __LINE__);
        }
        if (is_null($grupoCenariosCompras) || (is_array($grupoCenariosCompras) && empty($grupoCenariosCompras))) {
            unset($this->GrupoCenariosCompras);
        } else {
            $this->GrupoCenariosCompras = $grupoCenariosCompras;
        }
        return $this;
    }
    /**
     * Get GrupoEmbalagem 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 getGrupoEmbalagem()
    {
        return isset($this->GrupoEmbalagem) ? $this->GrupoEmbalagem : null;
    }
    /**
     * Set GrupoEmbalagem 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 $grupoEmbalagem
     * @return \StructType\ArtigoERP
     */
    public function setGrupoEmbalagem($grupoEmbalagem = null)
    {
        // validation for constraint: string
        if (!is_null($grupoEmbalagem) && !is_string($grupoEmbalagem)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($grupoEmbalagem)), __LINE__);
        }
        if (is_null($grupoEmbalagem) || (is_array($grupoEmbalagem) && empty($grupoEmbalagem))) {
            unset($this->GrupoEmbalagem);
        } else {
            $this->GrupoEmbalagem = $grupoEmbalagem;
        }
        return $this;
    }
    /**
     * Get IDTipoOrigemGPR 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 getIDTipoOrigemGPR()
    {
        return isset($this->IDTipoOrigemGPR) ? $this->IDTipoOrigemGPR : null;
    }
    /**
     * Set IDTipoOrigemGPR 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 $iDTipoOrigemGPR
     * @return \StructType\ArtigoERP
     */
    public function setIDTipoOrigemGPR($iDTipoOrigemGPR = null)
    {
        // validation for constraint: string
        if (!is_null($iDTipoOrigemGPR) && !is_string($iDTipoOrigemGPR)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($iDTipoOrigemGPR)), __LINE__);
        }
        if (is_null($iDTipoOrigemGPR) || (is_array($iDTipoOrigemGPR) && empty($iDTipoOrigemGPR))) {
            unset($this->IDTipoOrigemGPR);
        } else {
            $this->IDTipoOrigemGPR = $iDTipoOrigemGPR;
        }
        return $this;
    }
    /**
     * Get IDTipoProducaoGPR 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 getIDTipoProducaoGPR()
    {
        return isset($this->IDTipoProducaoGPR) ? $this->IDTipoProducaoGPR : null;
    }
    /**
     * Set IDTipoProducaoGPR 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 $iDTipoProducaoGPR
     * @return \StructType\ArtigoERP
     */
    public function setIDTipoProducaoGPR($iDTipoProducaoGPR = null)
    {
        // validation for constraint: string
        if (!is_null($iDTipoProducaoGPR) && !is_string($iDTipoProducaoGPR)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($iDTipoProducaoGPR)), __LINE__);
        }
        if (is_null($iDTipoProducaoGPR) || (is_array($iDTipoProducaoGPR) && empty($iDTipoProducaoGPR))) {
            unset($this->IDTipoProducaoGPR);
        } else {
            $this->IDTipoProducaoGPR = $iDTipoProducaoGPR;
        }
        return $this;
    }
    /**
     * Get IdClassificacao 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 getIdClassificacao()
    {
        return isset($this->IdClassificacao) ? $this->IdClassificacao : null;
    }
    /**
     * Set IdClassificacao 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 $idClassificacao
     * @return \StructType\ArtigoERP
     */
    public function setIdClassificacao($idClassificacao = null)
    {
        // validation for constraint: pattern
        if (is_scalar($idClassificacao) && !preg_match('/[\\da-fA-F]{8}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{4}-[\\da-fA-F]{12}/', $idClassificacao)) {
            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($idClassificacao, true)), __LINE__);
        }
        // validation for constraint: string
        if (!is_null($idClassificacao) && !is_string($idClassificacao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($idClassificacao)), __LINE__);
        }
        if (is_null($idClassificacao) || (is_array($idClassificacao) && empty($idClassificacao))) {
            unset($this->IdClassificacao);
        } else {
            $this->IdClassificacao = $idClassificacao;
        }
        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\ArtigoERP
     */
    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 Imposto value
     * @return bool|null
     */
    public function getImposto()
    {
        return $this->Imposto;
    }
    /**
     * Set Imposto value
     * @param bool $imposto
     * @return \StructType\ArtigoERP
     */
    public function setImposto($imposto = null)
    {
        // validation for constraint: boolean
        if (!is_null($imposto) && !is_bool($imposto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($imposto)), __LINE__);
        }
        $this->Imposto = $imposto;
        return $this;
    }
    /**
     * Get IntrastatPautal 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 getIntrastatPautal()
    {
        return isset($this->IntrastatPautal) ? $this->IntrastatPautal : null;
    }
    /**
     * Set IntrastatPautal 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 $intrastatPautal
     * @return \StructType\ArtigoERP
     */
    public function setIntrastatPautal($intrastatPautal = null)
    {
        // validation for constraint: string
        if (!is_null($intrastatPautal) && !is_string($intrastatPautal)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($intrastatPautal)), __LINE__);
        }
        if (is_null($intrastatPautal) || (is_array($intrastatPautal) && empty($intrastatPautal))) {
            unset($this->IntrastatPautal);
        } else {
            $this->IntrastatPautal = $intrastatPautal;
        }
        return $this;
    }
    /**
     * Get IntrastatPeso 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 getIntrastatPeso()
    {
        return isset($this->IntrastatPeso) ? $this->IntrastatPeso : null;
    }
    /**
     * Set IntrastatPeso 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 $intrastatPeso
     * @return \StructType\ArtigoERP
     */
    public function setIntrastatPeso($intrastatPeso = null)
    {
        if (is_null($intrastatPeso) || (is_array($intrastatPeso) && empty($intrastatPeso))) {
            unset($this->IntrastatPeso);
        } else {
            $this->IntrastatPeso = $intrastatPeso;
        }
        return $this;
    }
    /**
     * Get IsentoIEC value
     * @return bool|null
     */
    public function getIsentoIEC()
    {
        return $this->IsentoIEC;
    }
    /**
     * Set IsentoIEC value
     * @param bool $isentoIEC
     * @return \StructType\ArtigoERP
     */
    public function setIsentoIEC($isentoIEC = null)
    {
        // validation for constraint: boolean
        if (!is_null($isentoIEC) && !is_bool($isentoIEC)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($isentoIEC)), __LINE__);
        }
        $this->IsentoIEC = $isentoIEC;
        return $this;
    }
    /**
     * Get IsentoPagDireitos value
     * @return bool|null
     */
    public function getIsentoPagDireitos()
    {
        return $this->IsentoPagDireitos;
    }
    /**
     * Set IsentoPagDireitos value
     * @param bool $isentoPagDireitos
     * @return \StructType\ArtigoERP
     */
    public function setIsentoPagDireitos($isentoPagDireitos = null)
    {
        // validation for constraint: boolean
        if (!is_null($isentoPagDireitos) && !is_bool($isentoPagDireitos)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($isentoPagDireitos)), __LINE__);
        }
        $this->IsentoPagDireitos = $isentoPagDireitos;
        return $this;
    }
    /**
     * Get Iva 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 getIva()
    {
        return isset($this->Iva) ? $this->Iva : null;
    }
    /**
     * Set Iva 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 $iva
     * @return \StructType\ArtigoERP
     */
    public function setIva($iva = null)
    {
        // validation for constraint: string
        if (!is_null($iva) && !is_string($iva)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($iva)), __LINE__);
        }
        if (is_null($iva) || (is_array($iva) && empty($iva))) {
            unset($this->Iva);
        } else {
            $this->Iva = $iva;
        }
        return $this;
    }
    /**
     * Get LocalizacaoSugestao 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 getLocalizacaoSugestao()
    {
        return isset($this->LocalizacaoSugestao) ? $this->LocalizacaoSugestao : null;
    }
    /**
     * Set LocalizacaoSugestao 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 $localizacaoSugestao
     * @return \StructType\ArtigoERP
     */
    public function setLocalizacaoSugestao($localizacaoSugestao = null)
    {
        // validation for constraint: string
        if (!is_null($localizacaoSugestao) && !is_string($localizacaoSugestao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($localizacaoSugestao)), __LINE__);
        }
        if (is_null($localizacaoSugestao) || (is_array($localizacaoSugestao) && empty($localizacaoSugestao))) {
            unset($this->LocalizacaoSugestao);
        } else {
            $this->LocalizacaoSugestao = $localizacaoSugestao;
        }
        return $this;
    }
    /**
     * Get LoteEntradas 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 getLoteEntradas()
    {
        return isset($this->LoteEntradas) ? $this->LoteEntradas : null;
    }
    /**
     * Set LoteEntradas 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 $loteEntradas
     * @return \StructType\ArtigoERP
     */
    public function setLoteEntradas($loteEntradas = null)
    {
        // validation for constraint: string
        if (!is_null($loteEntradas) && !is_string($loteEntradas)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($loteEntradas)), __LINE__);
        }
        if (is_null($loteEntradas) || (is_array($loteEntradas) && empty($loteEntradas))) {
            unset($this->LoteEntradas);
        } else {
            $this->LoteEntradas = $loteEntradas;
        }
        return $this;
    }
    /**
     * Get LoteFormulaEntradas value
     * @return bool|null
     */
    public function getLoteFormulaEntradas()
    {
        return $this->LoteFormulaEntradas;
    }
    /**
     * Set LoteFormulaEntradas value
     * @param bool $loteFormulaEntradas
     * @return \StructType\ArtigoERP
     */
    public function setLoteFormulaEntradas($loteFormulaEntradas = null)
    {
        // validation for constraint: boolean
        if (!is_null($loteFormulaEntradas) && !is_bool($loteFormulaEntradas)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($loteFormulaEntradas)), __LINE__);
        }
        $this->LoteFormulaEntradas = $loteFormulaEntradas;
        return $this;
    }
    /**
     * Get LoteFormulaSaidas value
     * @return bool|null
     */
    public function getLoteFormulaSaidas()
    {
        return $this->LoteFormulaSaidas;
    }
    /**
     * Set LoteFormulaSaidas value
     * @param bool $loteFormulaSaidas
     * @return \StructType\ArtigoERP
     */
    public function setLoteFormulaSaidas($loteFormulaSaidas = null)
    {
        // validation for constraint: boolean
        if (!is_null($loteFormulaSaidas) && !is_bool($loteFormulaSaidas)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($loteFormulaSaidas)), __LINE__);
        }
        $this->LoteFormulaSaidas = $loteFormulaSaidas;
        return $this;
    }
    /**
     * Get LoteSaidas 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 getLoteSaidas()
    {
        return isset($this->LoteSaidas) ? $this->LoteSaidas : null;
    }
    /**
     * Set LoteSaidas 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 $loteSaidas
     * @return \StructType\ArtigoERP
     */
    public function setLoteSaidas($loteSaidas = null)
    {
        // validation for constraint: string
        if (!is_null($loteSaidas) && !is_string($loteSaidas)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($loteSaidas)), __LINE__);
        }
        if (is_null($loteSaidas) || (is_array($loteSaidas) && empty($loteSaidas))) {
            unset($this->LoteSaidas);
        } else {
            $this->LoteSaidas = $loteSaidas;
        }
        return $this;
    }
    /**
     * Get Marca 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 getMarca()
    {
        return isset($this->Marca) ? $this->Marca : null;
    }
    /**
     * Set Marca 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 $marca
     * @return \StructType\ArtigoERP
     */
    public function setMarca($marca = null)
    {
        // validation for constraint: string
        if (!is_null($marca) && !is_string($marca)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($marca)), __LINE__);
        }
        if (is_null($marca) || (is_array($marca) && empty($marca))) {
            unset($this->Marca);
        } else {
            $this->Marca = $marca;
        }
        return $this;
    }
    /**
     * Get Modelo 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 getModelo()
    {
        return isset($this->Modelo) ? $this->Modelo : null;
    }
    /**
     * Set Modelo 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 $modelo
     * @return \StructType\ArtigoERP
     */
    public function setModelo($modelo = null)
    {
        // validation for constraint: string
        if (!is_null($modelo) && !is_string($modelo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($modelo)), __LINE__);
        }
        if (is_null($modelo) || (is_array($modelo) && empty($modelo))) {
            unset($this->Modelo);
        } else {
            $this->Modelo = $modelo;
        }
        return $this;
    }
    /**
     * Get MovStock 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 getMovStock()
    {
        return isset($this->MovStock) ? $this->MovStock : null;
    }
    /**
     * Set MovStock 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 $movStock
     * @return \StructType\ArtigoERP
     */
    public function setMovStock($movStock = null)
    {
        // validation for constraint: string
        if (!is_null($movStock) && !is_string($movStock)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($movStock)), __LINE__);
        }
        if (is_null($movStock) || (is_array($movStock) && empty($movStock))) {
            unset($this->MovStock);
        } else {
            $this->MovStock = $movStock;
        }
        return $this;
    }
    /**
     * Get NaturezaAnalitica 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 getNaturezaAnalitica()
    {
        return isset($this->NaturezaAnalitica) ? $this->NaturezaAnalitica : null;
    }
    /**
     * Set NaturezaAnalitica 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 $naturezaAnalitica
     * @return \StructType\ArtigoERP
     */
    public function setNaturezaAnalitica($naturezaAnalitica = null)
    {
        // validation for constraint: int
        if (!is_null($naturezaAnalitica) && !is_numeric($naturezaAnalitica)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($naturezaAnalitica)), __LINE__);
        }
        if (is_null($naturezaAnalitica) || (is_array($naturezaAnalitica) && empty($naturezaAnalitica))) {
            unset($this->NaturezaAnalitica);
        } else {
            $this->NaturezaAnalitica = $naturezaAnalitica;
        }
        return $this;
    }
    /**
     * Get NecessarioRecalcPCM value
     * @return bool|null
     */
    public function getNecessarioRecalcPCM()
    {
        return $this->NecessarioRecalcPCM;
    }
    /**
     * Set NecessarioRecalcPCM value
     * @param bool $necessarioRecalcPCM
     * @return \StructType\ArtigoERP
     */
    public function setNecessarioRecalcPCM($necessarioRecalcPCM = null)
    {
        // validation for constraint: boolean
        if (!is_null($necessarioRecalcPCM) && !is_bool($necessarioRecalcPCM)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($necessarioRecalcPCM)), __LINE__);
        }
        $this->NecessarioRecalcPCM = $necessarioRecalcPCM;
        return $this;
    }
    /**
     * Get NumeroONU 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 getNumeroONU()
    {
        return isset($this->NumeroONU) ? $this->NumeroONU : null;
    }
    /**
     * Set NumeroONU 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 $numeroONU
     * @return \StructType\ArtigoERP
     */
    public function setNumeroONU($numeroONU = null)
    {
        // validation for constraint: string
        if (!is_null($numeroONU) && !is_string($numeroONU)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($numeroONU)), __LINE__);
        }
        if (is_null($numeroONU) || (is_array($numeroONU) && empty($numeroONU))) {
            unset($this->NumeroONU);
        } else {
            $this->NumeroONU = $numeroONU;
        }
        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\ArtigoERP
     */
    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 OperacaoTesouraria value
     * @return bool|null
     */
    public function getOperacaoTesouraria()
    {
        return $this->OperacaoTesouraria;
    }
    /**
     * Set OperacaoTesouraria value
     * @param bool $operacaoTesouraria
     * @return \StructType\ArtigoERP
     */
    public function setOperacaoTesouraria($operacaoTesouraria = null)
    {
        // validation for constraint: boolean
        if (!is_null($operacaoTesouraria) && !is_bool($operacaoTesouraria)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($operacaoTesouraria)), __LINE__);
        }
        $this->OperacaoTesouraria = $operacaoTesouraria;
        return $this;
    }
    /**
     * Get OrdemDim 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 getOrdemDim()
    {
        return isset($this->OrdemDim) ? $this->OrdemDim : null;
    }
    /**
     * Set OrdemDim 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 $ordemDim
     * @return \StructType\ArtigoERP
     */
    public function setOrdemDim($ordemDim = null)
    {
        // validation for constraint: int
        if (!is_null($ordemDim) && !is_numeric($ordemDim)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($ordemDim)), __LINE__);
        }
        if (is_null($ordemDim) || (is_array($ordemDim) && empty($ordemDim))) {
            unset($this->OrdemDim);
        } else {
            $this->OrdemDim = $ordemDim;
        }
        return $this;
    }
    /**
     * Get PCMedio 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 getPCMedio()
    {
        return isset($this->PCMedio) ? $this->PCMedio : null;
    }
    /**
     * Set PCMedio 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 $pCMedio
     * @return \StructType\ArtigoERP
     */
    public function setPCMedio($pCMedio = null)
    {
        if (is_null($pCMedio) || (is_array($pCMedio) && empty($pCMedio))) {
            unset($this->PCMedio);
        } else {
            $this->PCMedio = $pCMedio;
        }
        return $this;
    }
    /**
     * Get PCPadrao 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 getPCPadrao()
    {
        return isset($this->PCPadrao) ? $this->PCPadrao : null;
    }
    /**
     * Set PCPadrao 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 $pCPadrao
     * @return \StructType\ArtigoERP
     */
    public function setPCPadrao($pCPadrao = null)
    {
        if (is_null($pCPadrao) || (is_array($pCPadrao) && empty($pCPadrao))) {
            unset($this->PCPadrao);
        } else {
            $this->PCPadrao = $pCPadrao;
        }
        return $this;
    }
    /**
     * Get PCUltimo 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 getPCUltimo()
    {
        return isset($this->PCUltimo) ? $this->PCUltimo : null;
    }
    /**
     * Set PCUltimo 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 $pCUltimo
     * @return \StructType\ArtigoERP
     */
    public function setPCUltimo($pCUltimo = null)
    {
        if (is_null($pCUltimo) || (is_array($pCUltimo) && empty($pCUltimo))) {
            unset($this->PCUltimo);
        } else {
            $this->PCUltimo = $pCUltimo;
        }
        return $this;
    }
    /**
     * Get PercIncidenciaIVA 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 getPercIncidenciaIVA()
    {
        return isset($this->PercIncidenciaIVA) ? $this->PercIncidenciaIVA : null;
    }
    /**
     * Set PercIncidenciaIVA 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 $percIncidenciaIVA
     * @return \StructType\ArtigoERP
     */
    public function setPercIncidenciaIVA($percIncidenciaIVA = null)
    {
        if (is_null($percIncidenciaIVA) || (is_array($percIncidenciaIVA) && empty($percIncidenciaIVA))) {
            unset($this->PercIncidenciaIVA);
        } else {
            $this->PercIncidenciaIVA = $percIncidenciaIVA;
        }
        return $this;
    }
    /**
     * Get PercIvaDedutivel 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 getPercIvaDedutivel()
    {
        return isset($this->PercIvaDedutivel) ? $this->PercIvaDedutivel : null;
    }
    /**
     * Set PercIvaDedutivel 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 $percIvaDedutivel
     * @return \StructType\ArtigoERP
     */
    public function setPercIvaDedutivel($percIvaDedutivel = null)
    {
        if (is_null($percIvaDedutivel) || (is_array($percIvaDedutivel) && empty($percIvaDedutivel))) {
            unset($this->PercIvaDedutivel);
        } else {
            $this->PercIvaDedutivel = $percIvaDedutivel;
        }
        return $this;
    }
    /**
     * Get PermiteDevolucao value
     * @return bool|null
     */
    public function getPermiteDevolucao()
    {
        return $this->PermiteDevolucao;
    }
    /**
     * Set PermiteDevolucao value
     * @param bool $permiteDevolucao
     * @return \StructType\ArtigoERP
     */
    public function setPermiteDevolucao($permiteDevolucao = null)
    {
        // validation for constraint: boolean
        if (!is_null($permiteDevolucao) && !is_bool($permiteDevolucao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($permiteDevolucao)), __LINE__);
        }
        $this->PermiteDevolucao = $permiteDevolucao;
        return $this;
    }
    /**
     * Get Pesar value
     * @return bool|null
     */
    public function getPesar()
    {
        return $this->Pesar;
    }
    /**
     * Set Pesar value
     * @param bool $pesar
     * @return \StructType\ArtigoERP
     */
    public function setPesar($pesar = null)
    {
        // validation for constraint: boolean
        if (!is_null($pesar) && !is_bool($pesar)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($pesar)), __LINE__);
        }
        $this->Pesar = $pesar;
        return $this;
    }
    /**
     * Get Peso 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 getPeso()
    {
        return isset($this->Peso) ? $this->Peso : null;
    }
    /**
     * Set Peso 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 $peso
     * @return \StructType\ArtigoERP
     */
    public function setPeso($peso = null)
    {
        if (is_null($peso) || (is_array($peso) && empty($peso))) {
            unset($this->Peso);
        } else {
            $this->Peso = $peso;
        }
        return $this;
    }
    /**
     * Get PesoLiquido 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 getPesoLiquido()
    {
        return isset($this->PesoLiquido) ? $this->PesoLiquido : null;
    }
    /**
     * Set PesoLiquido 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 $pesoLiquido
     * @return \StructType\ArtigoERP
     */
    public function setPesoLiquido($pesoLiquido = null)
    {
        if (is_null($pesoLiquido) || (is_array($pesoLiquido) && empty($pesoLiquido))) {
            unset($this->PesoLiquido);
        } else {
            $this->PesoLiquido = $pesoLiquido;
        }
        return $this;
    }
    /**
     * Get PrazoEntrega 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 getPrazoEntrega()
    {
        return isset($this->PrazoEntrega) ? $this->PrazoEntrega : null;
    }
    /**
     * Set PrazoEntrega 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 $prazoEntrega
     * @return \StructType\ArtigoERP
     */
    public function setPrazoEntrega($prazoEntrega = null)
    {
        // validation for constraint: int
        if (!is_null($prazoEntrega) && !is_numeric($prazoEntrega)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($prazoEntrega)), __LINE__);
        }
        if (is_null($prazoEntrega) || (is_array($prazoEntrega) && empty($prazoEntrega))) {
            unset($this->PrazoEntrega);
        } else {
            $this->PrazoEntrega = $prazoEntrega;
        }
        return $this;
    }
    /**
     * Get Protegida value
     * @return bool|null
     */
    public function getProtegida()
    {
        return $this->Protegida;
    }
    /**
     * Set Protegida value
     * @param bool $protegida
     * @return \StructType\ArtigoERP
     */
    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 QtReceberGPR 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 getQtReceberGPR()
    {
        return isset($this->QtReceberGPR) ? $this->QtReceberGPR : null;
    }
    /**
     * Set QtReceberGPR 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 $qtReceberGPR
     * @return \StructType\ArtigoERP
     */
    public function setQtReceberGPR($qtReceberGPR = null)
    {
        if (is_null($qtReceberGPR) || (is_array($qtReceberGPR) && empty($qtReceberGPR))) {
            unset($this->QtReceberGPR);
        } else {
            $this->QtReceberGPR = $qtReceberGPR;
        }
        return $this;
    }
    /**
     * Get QtReservadaGPR 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 getQtReservadaGPR()
    {
        return isset($this->QtReservadaGPR) ? $this->QtReservadaGPR : null;
    }
    /**
     * Set QtReservadaGPR 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 $qtReservadaGPR
     * @return \StructType\ArtigoERP
     */
    public function setQtReservadaGPR($qtReservadaGPR = null)
    {
        if (is_null($qtReservadaGPR) || (is_array($qtReservadaGPR) && empty($qtReservadaGPR))) {
            unset($this->QtReservadaGPR);
        } else {
            $this->QtReservadaGPR = $qtReservadaGPR;
        }
        return $this;
    }
    /**
     * Get QtdEconomica 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 getQtdEconomica()
    {
        return isset($this->QtdEconomica) ? $this->QtdEconomica : null;
    }
    /**
     * Set QtdEconomica 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 $qtdEconomica
     * @return \StructType\ArtigoERP
     */
    public function setQtdEconomica($qtdEconomica = null)
    {
        if (is_null($qtdEconomica) || (is_array($qtdEconomica) && empty($qtdEconomica))) {
            unset($this->QtdEconomica);
        } else {
            $this->QtdEconomica = $qtdEconomica;
        }
        return $this;
    }
    /**
     * Get RetencaoArtigoTipoValor 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 getRetencaoArtigoTipoValor()
    {
        return isset($this->RetencaoArtigoTipoValor) ? $this->RetencaoArtigoTipoValor : null;
    }
    /**
     * Set RetencaoArtigoTipoValor 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 $retencaoArtigoTipoValor
     * @return \StructType\ArtigoERP
     */
    public function setRetencaoArtigoTipoValor($retencaoArtigoTipoValor = null)
    {
        // validation for constraint: boolean
        if (!is_null($retencaoArtigoTipoValor) && !is_bool($retencaoArtigoTipoValor)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($retencaoArtigoTipoValor)), __LINE__);
        }
        if (is_null($retencaoArtigoTipoValor) || (is_array($retencaoArtigoTipoValor) && empty($retencaoArtigoTipoValor))) {
            unset($this->RetencaoArtigoTipoValor);
        } else {
            $this->RetencaoArtigoTipoValor = $retencaoArtigoTipoValor;
        }
        return $this;
    }
    /**
     * Get RetencaoArtigoValor 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 getRetencaoArtigoValor()
    {
        return isset($this->RetencaoArtigoValor) ? $this->RetencaoArtigoValor : null;
    }
    /**
     * Set RetencaoArtigoValor 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 $retencaoArtigoValor
     * @return \StructType\ArtigoERP
     */
    public function setRetencaoArtigoValor($retencaoArtigoValor = null)
    {
        if (is_null($retencaoArtigoValor) || (is_array($retencaoArtigoValor) && empty($retencaoArtigoValor))) {
            unset($this->RetencaoArtigoValor);
        } else {
            $this->RetencaoArtigoValor = $retencaoArtigoValor;
        }
        return $this;
    }
    /**
     * Get RubDim1 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 getRubDim1()
    {
        return isset($this->RubDim1) ? $this->RubDim1 : null;
    }
    /**
     * Set RubDim1 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 $rubDim1
     * @return \StructType\ArtigoERP
     */
    public function setRubDim1($rubDim1 = null)
    {
        // validation for constraint: string
        if (!is_null($rubDim1) && !is_string($rubDim1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($rubDim1)), __LINE__);
        }
        if (is_null($rubDim1) || (is_array($rubDim1) && empty($rubDim1))) {
            unset($this->RubDim1);
        } else {
            $this->RubDim1 = $rubDim1;
        }
        return $this;
    }
    /**
     * Get RubDim2 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 getRubDim2()
    {
        return isset($this->RubDim2) ? $this->RubDim2 : null;
    }
    /**
     * Set RubDim2 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 $rubDim2
     * @return \StructType\ArtigoERP
     */
    public function setRubDim2($rubDim2 = null)
    {
        // validation for constraint: string
        if (!is_null($rubDim2) && !is_string($rubDim2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($rubDim2)), __LINE__);
        }
        if (is_null($rubDim2) || (is_array($rubDim2) && empty($rubDim2))) {
            unset($this->RubDim2);
        } else {
            $this->RubDim2 = $rubDim2;
        }
        return $this;
    }
    /**
     * Get RubDim3 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 getRubDim3()
    {
        return isset($this->RubDim3) ? $this->RubDim3 : null;
    }
    /**
     * Set RubDim3 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 $rubDim3
     * @return \StructType\ArtigoERP
     */
    public function setRubDim3($rubDim3 = null)
    {
        // validation for constraint: string
        if (!is_null($rubDim3) && !is_string($rubDim3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($rubDim3)), __LINE__);
        }
        if (is_null($rubDim3) || (is_array($rubDim3) && empty($rubDim3))) {
            unset($this->RubDim3);
        } else {
            $this->RubDim3 = $rubDim3;
        }
        return $this;
    }
    /**
     * Get STKActual 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 getSTKActual()
    {
        return isset($this->STKActual) ? $this->STKActual : null;
    }
    /**
     * Set STKActual 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 $sTKActual
     * @return \StructType\ArtigoERP
     */
    public function setSTKActual($sTKActual = null)
    {
        if (is_null($sTKActual) || (is_array($sTKActual) && empty($sTKActual))) {
            unset($this->STKActual);
        } else {
            $this->STKActual = $sTKActual;
        }
        return $this;
    }
    /**
     * Get STKMaximo 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 getSTKMaximo()
    {
        return isset($this->STKMaximo) ? $this->STKMaximo : null;
    }
    /**
     * Set STKMaximo 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 $sTKMaximo
     * @return \StructType\ArtigoERP
     */
    public function setSTKMaximo($sTKMaximo = null)
    {
        if (is_null($sTKMaximo) || (is_array($sTKMaximo) && empty($sTKMaximo))) {
            unset($this->STKMaximo);
        } else {
            $this->STKMaximo = $sTKMaximo;
        }
        return $this;
    }
    /**
     * Get STKMinimo 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 getSTKMinimo()
    {
        return isset($this->STKMinimo) ? $this->STKMinimo : null;
    }
    /**
     * Set STKMinimo 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 $sTKMinimo
     * @return \StructType\ArtigoERP
     */
    public function setSTKMinimo($sTKMinimo = null)
    {
        if (is_null($sTKMinimo) || (is_array($sTKMinimo) && empty($sTKMinimo))) {
            unset($this->STKMinimo);
        } else {
            $this->STKMinimo = $sTKMinimo;
        }
        return $this;
    }
    /**
     * Get STKReposicao 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 getSTKReposicao()
    {
        return isset($this->STKReposicao) ? $this->STKReposicao : null;
    }
    /**
     * Set STKReposicao 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 $sTKReposicao
     * @return \StructType\ArtigoERP
     */
    public function setSTKReposicao($sTKReposicao = null)
    {
        if (is_null($sTKReposicao) || (is_array($sTKReposicao) && empty($sTKReposicao))) {
            unset($this->STKReposicao);
        } else {
            $this->STKReposicao = $sTKReposicao;
        }
        return $this;
    }
    /**
     * Get Selo 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 getSelo()
    {
        return isset($this->Selo) ? $this->Selo : null;
    }
    /**
     * Set Selo 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 $selo
     * @return \StructType\ArtigoERP
     */
    public function setSelo($selo = null)
    {
        // validation for constraint: string
        if (!is_null($selo) && !is_string($selo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($selo)), __LINE__);
        }
        if (is_null($selo) || (is_array($selo) && empty($selo))) {
            unset($this->Selo);
        } else {
            $this->Selo = $selo;
        }
        return $this;
    }
    /**
     * Get SequenciaGPR 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 getSequenciaGPR()
    {
        return isset($this->SequenciaGPR) ? $this->SequenciaGPR : null;
    }
    /**
     * Set SequenciaGPR 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 $sequenciaGPR
     * @return \StructType\ArtigoERP
     */
    public function setSequenciaGPR($sequenciaGPR = null)
    {
        // validation for constraint: int
        if (!is_null($sequenciaGPR) && !is_numeric($sequenciaGPR)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($sequenciaGPR)), __LINE__);
        }
        if (is_null($sequenciaGPR) || (is_array($sequenciaGPR) && empty($sequenciaGPR))) {
            unset($this->SequenciaGPR);
        } else {
            $this->SequenciaGPR = $sequenciaGPR;
        }
        return $this;
    }
    /**
     * Get SubFamilia 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 getSubFamilia()
    {
        return isset($this->SubFamilia) ? $this->SubFamilia : null;
    }
    /**
     * Set SubFamilia 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 $subFamilia
     * @return \StructType\ArtigoERP
     */
    public function setSubFamilia($subFamilia = null)
    {
        // validation for constraint: string
        if (!is_null($subFamilia) && !is_string($subFamilia)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($subFamilia)), __LINE__);
        }
        if (is_null($subFamilia) || (is_array($subFamilia) && empty($subFamilia))) {
            unset($this->SubFamilia);
        } else {
            $this->SubFamilia = $subFamilia;
        }
        return $this;
    }
    /**
     * Get SugestaoPrComposto 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 getSugestaoPrComposto()
    {
        return isset($this->SugestaoPrComposto) ? $this->SugestaoPrComposto : null;
    }
    /**
     * Set SugestaoPrComposto 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 $sugestaoPrComposto
     * @return \StructType\ArtigoERP
     */
    public function setSugestaoPrComposto($sugestaoPrComposto = null)
    {
        // validation for constraint: int
        if (!is_null($sugestaoPrComposto) && !is_numeric($sugestaoPrComposto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($sugestaoPrComposto)), __LINE__);
        }
        if (is_null($sugestaoPrComposto) || (is_array($sugestaoPrComposto) && empty($sugestaoPrComposto))) {
            unset($this->SugestaoPrComposto);
        } else {
            $this->SugestaoPrComposto = $sugestaoPrComposto;
        }
        return $this;
    }
    /**
     * Get SujeitoEcotaxa value
     * @return bool|null
     */
    public function getSujeitoEcotaxa()
    {
        return $this->SujeitoEcotaxa;
    }
    /**
     * Set SujeitoEcotaxa value
     * @param bool $sujeitoEcotaxa
     * @return \StructType\ArtigoERP
     */
    public function setSujeitoEcotaxa($sujeitoEcotaxa = null)
    {
        // validation for constraint: boolean
        if (!is_null($sujeitoEcotaxa) && !is_bool($sujeitoEcotaxa)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($sujeitoEcotaxa)), __LINE__);
        }
        $this->SujeitoEcotaxa = $sujeitoEcotaxa;
        return $this;
    }
    /**
     * Get SujeitoIEC 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 getSujeitoIEC()
    {
        return isset($this->SujeitoIEC) ? $this->SujeitoIEC : null;
    }
    /**
     * Set SujeitoIEC 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 $sujeitoIEC
     * @return \StructType\ArtigoERP
     */
    public function setSujeitoIEC($sujeitoIEC = null)
    {
        // validation for constraint: boolean
        if (!is_null($sujeitoIEC) && !is_bool($sujeitoIEC)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($sujeitoIEC)), __LINE__);
        }
        if (is_null($sujeitoIEC) || (is_array($sujeitoIEC) && empty($sujeitoIEC))) {
            unset($this->SujeitoIEC);
        } else {
            $this->SujeitoIEC = $sujeitoIEC;
        }
        return $this;
    }
    /**
     * Get SujeitoProRata value
     * @return bool|null
     */
    public function getSujeitoProRata()
    {
        return $this->SujeitoProRata;
    }
    /**
     * Set SujeitoProRata value
     * @param bool $sujeitoProRata
     * @return \StructType\ArtigoERP
     */
    public function setSujeitoProRata($sujeitoProRata = null)
    {
        // validation for constraint: boolean
        if (!is_null($sujeitoProRata) && !is_bool($sujeitoProRata)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($sujeitoProRata)), __LINE__);
        }
        $this->SujeitoProRata = $sujeitoProRata;
        return $this;
    }
    /**
     * Get SujeitoRetencao value
     * @return bool|null
     */
    public function getSujeitoRetencao()
    {
        return $this->SujeitoRetencao;
    }
    /**
     * Set SujeitoRetencao value
     * @param bool $sujeitoRetencao
     * @return \StructType\ArtigoERP
     */
    public function setSujeitoRetencao($sujeitoRetencao = null)
    {
        // validation for constraint: boolean
        if (!is_null($sujeitoRetencao) && !is_bool($sujeitoRetencao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($sujeitoRetencao)), __LINE__);
        }
        $this->SujeitoRetencao = $sujeitoRetencao;
        return $this;
    }
    /**
     * Get SujeitoRetencaoArtigo 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 getSujeitoRetencaoArtigo()
    {
        return isset($this->SujeitoRetencaoArtigo) ? $this->SujeitoRetencaoArtigo : null;
    }
    /**
     * Set SujeitoRetencaoArtigo 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 $sujeitoRetencaoArtigo
     * @return \StructType\ArtigoERP
     */
    public function setSujeitoRetencaoArtigo($sujeitoRetencaoArtigo = null)
    {
        // validation for constraint: boolean
        if (!is_null($sujeitoRetencaoArtigo) && !is_bool($sujeitoRetencaoArtigo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($sujeitoRetencaoArtigo)), __LINE__);
        }
        if (is_null($sujeitoRetencaoArtigo) || (is_array($sujeitoRetencaoArtigo) && empty($sujeitoRetencaoArtigo))) {
            unset($this->SujeitoRetencaoArtigo);
        } else {
            $this->SujeitoRetencaoArtigo = $sujeitoRetencaoArtigo;
        }
        return $this;
    }
    /**
     * Get TaxaAlcool 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 getTaxaAlcool()
    {
        return isset($this->TaxaAlcool) ? $this->TaxaAlcool : null;
    }
    /**
     * Set TaxaAlcool 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 $taxaAlcool
     * @return \StructType\ArtigoERP
     */
    public function setTaxaAlcool($taxaAlcool = null)
    {
        if (is_null($taxaAlcool) || (is_array($taxaAlcool) && empty($taxaAlcool))) {
            unset($this->TaxaAlcool);
        } else {
            $this->TaxaAlcool = $taxaAlcool;
        }
        return $this;
    }
    /**
     * Get TestaNumSerie value
     * @return bool|null
     */
    public function getTestaNumSerie()
    {
        return $this->TestaNumSerie;
    }
    /**
     * Set TestaNumSerie value
     * @param bool $testaNumSerie
     * @return \StructType\ArtigoERP
     */
    public function setTestaNumSerie($testaNumSerie = null)
    {
        // validation for constraint: boolean
        if (!is_null($testaNumSerie) && !is_bool($testaNumSerie)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($testaNumSerie)), __LINE__);
        }
        $this->TestaNumSerie = $testaNumSerie;
        return $this;
    }
    /**
     * Get TipoArtigo 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 getTipoArtigo()
    {
        return isset($this->TipoArtigo) ? $this->TipoArtigo : null;
    }
    /**
     * Set TipoArtigo 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 $tipoArtigo
     * @return \StructType\ArtigoERP
     */
    public function setTipoArtigo($tipoArtigo = null)
    {
        // validation for constraint: string
        if (!is_null($tipoArtigo) && !is_string($tipoArtigo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($tipoArtigo)), __LINE__);
        }
        if (is_null($tipoArtigo) || (is_array($tipoArtigo) && empty($tipoArtigo))) {
            unset($this->TipoArtigo);
        } else {
            $this->TipoArtigo = $tipoArtigo;
        }
        return $this;
    }
    /**
     * Get TipoComponente 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 getTipoComponente()
    {
        return isset($this->TipoComponente) ? $this->TipoComponente : null;
    }
    /**
     * Set TipoComponente 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 $tipoComponente
     * @return \StructType\ArtigoERP
     */
    public function setTipoComponente($tipoComponente = null)
    {
        // validation for constraint: int
        if (!is_null($tipoComponente) && !is_numeric($tipoComponente)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($tipoComponente)), __LINE__);
        }
        if (is_null($tipoComponente) || (is_array($tipoComponente) && empty($tipoComponente))) {
            unset($this->TipoComponente);
        } else {
            $this->TipoComponente = $tipoComponente;
        }
        return $this;
    }
    /**
     * Get TipoDim1 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 getTipoDim1()
    {
        return isset($this->TipoDim1) ? $this->TipoDim1 : null;
    }
    /**
     * Set TipoDim1 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 $tipoDim1
     * @return \StructType\ArtigoERP
     */
    public function setTipoDim1($tipoDim1 = null)
    {
        // validation for constraint: string
        if (!is_null($tipoDim1) && !is_string($tipoDim1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($tipoDim1)), __LINE__);
        }
        if (is_null($tipoDim1) || (is_array($tipoDim1) && empty($tipoDim1))) {
            unset($this->TipoDim1);
        } else {
            $this->TipoDim1 = $tipoDim1;
        }
        return $this;
    }
    /**
     * Get TipoDim2 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 getTipoDim2()
    {
        return isset($this->TipoDim2) ? $this->TipoDim2 : null;
    }
    /**
     * Set TipoDim2 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 $tipoDim2
     * @return \StructType\ArtigoERP
     */
    public function setTipoDim2($tipoDim2 = null)
    {
        // validation for constraint: string
        if (!is_null($tipoDim2) && !is_string($tipoDim2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($tipoDim2)), __LINE__);
        }
        if (is_null($tipoDim2) || (is_array($tipoDim2) && empty($tipoDim2))) {
            unset($this->TipoDim2);
        } else {
            $this->TipoDim2 = $tipoDim2;
        }
        return $this;
    }
    /**
     * Get TipoDim3 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 getTipoDim3()
    {
        return isset($this->TipoDim3) ? $this->TipoDim3 : null;
    }
    /**
     * Set TipoDim3 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 $tipoDim3
     * @return \StructType\ArtigoERP
     */
    public function setTipoDim3($tipoDim3 = null)
    {
        // validation for constraint: string
        if (!is_null($tipoDim3) && !is_string($tipoDim3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($tipoDim3)), __LINE__);
        }
        if (is_null($tipoDim3) || (is_array($tipoDim3) && empty($tipoDim3))) {
            unset($this->TipoDim3);
        } else {
            $this->TipoDim3 = $tipoDim3;
        }
        return $this;
    }
    /**
     * Get TipoDocOpTesouraria 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 getTipoDocOpTesouraria()
    {
        return isset($this->TipoDocOpTesouraria) ? $this->TipoDocOpTesouraria : null;
    }
    /**
     * Set TipoDocOpTesouraria 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 $tipoDocOpTesouraria
     * @return \StructType\ArtigoERP
     */
    public function setTipoDocOpTesouraria($tipoDocOpTesouraria = null)
    {
        // validation for constraint: string
        if (!is_null($tipoDocOpTesouraria) && !is_string($tipoDocOpTesouraria)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($tipoDocOpTesouraria)), __LINE__);
        }
        if (is_null($tipoDocOpTesouraria) || (is_array($tipoDocOpTesouraria) && empty($tipoDocOpTesouraria))) {
            unset($this->TipoDocOpTesouraria);
        } else {
            $this->TipoDocOpTesouraria = $tipoDocOpTesouraria;
        }
        return $this;
    }
    /**
     * Get TipoEntidadeOpTesouraria 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 getTipoEntidadeOpTesouraria()
    {
        return isset($this->TipoEntidadeOpTesouraria) ? $this->TipoEntidadeOpTesouraria : null;
    }
    /**
     * Set TipoEntidadeOpTesouraria 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 $tipoEntidadeOpTesouraria
     * @return \StructType\ArtigoERP
     */
    public function setTipoEntidadeOpTesouraria($tipoEntidadeOpTesouraria = null)
    {
        // validation for constraint: string
        if (!is_null($tipoEntidadeOpTesouraria) && !is_string($tipoEntidadeOpTesouraria)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($tipoEntidadeOpTesouraria)), __LINE__);
        }
        if (is_null($tipoEntidadeOpTesouraria) || (is_array($tipoEntidadeOpTesouraria) && empty($tipoEntidadeOpTesouraria))) {
            unset($this->TipoEntidadeOpTesouraria);
        } else {
            $this->TipoEntidadeOpTesouraria = $tipoEntidadeOpTesouraria;
        }
        return $this;
    }
    /**
     * Get TratamentoDim value
     * @return int|null
     */
    public function getTratamentoDim()
    {
        return $this->TratamentoDim;
    }
    /**
     * Set TratamentoDim value
     * @param int $tratamentoDim
     * @return \StructType\ArtigoERP
     */
    public function setTratamentoDim($tratamentoDim = null)
    {
        // validation for constraint: int
        if (!is_null($tratamentoDim) && !is_numeric($tratamentoDim)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($tratamentoDim)), __LINE__);
        }
        $this->TratamentoDim = $tratamentoDim;
        return $this;
    }
    /**
     * Get TratamentoLotes value
     * @return bool|null
     */
    public function getTratamentoLotes()
    {
        return $this->TratamentoLotes;
    }
    /**
     * Set TratamentoLotes value
     * @param bool $tratamentoLotes
     * @return \StructType\ArtigoERP
     */
    public function setTratamentoLotes($tratamentoLotes = null)
    {
        // validation for constraint: boolean
        if (!is_null($tratamentoLotes) && !is_bool($tratamentoLotes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($tratamentoLotes)), __LINE__);
        }
        $this->TratamentoLotes = $tratamentoLotes;
        return $this;
    }
    /**
     * Get TratamentoSeries value
     * @return bool|null
     */
    public function getTratamentoSeries()
    {
        return $this->TratamentoSeries;
    }
    /**
     * Set TratamentoSeries value
     * @param bool $tratamentoSeries
     * @return \StructType\ArtigoERP
     */
    public function setTratamentoSeries($tratamentoSeries = null)
    {
        // validation for constraint: boolean
        if (!is_null($tratamentoSeries) && !is_bool($tratamentoSeries)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($tratamentoSeries)), __LINE__);
        }
        $this->TratamentoSeries = $tratamentoSeries;
        return $this;
    }
    /**
     * Get UltDescontoComercialCompra 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 getUltDescontoComercialCompra()
    {
        return isset($this->UltDescontoComercialCompra) ? $this->UltDescontoComercialCompra : null;
    }
    /**
     * Set UltDescontoComercialCompra 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 $ultDescontoComercialCompra
     * @return \StructType\ArtigoERP
     */
    public function setUltDescontoComercialCompra($ultDescontoComercialCompra = null)
    {
        if (is_null($ultDescontoComercialCompra) || (is_array($ultDescontoComercialCompra) && empty($ultDescontoComercialCompra))) {
            unset($this->UltDescontoComercialCompra);
        } else {
            $this->UltDescontoComercialCompra = $ultDescontoComercialCompra;
        }
        return $this;
    }
    /**
     * Get UltDespesaAdicionalCompra 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 getUltDespesaAdicionalCompra()
    {
        return isset($this->UltDespesaAdicionalCompra) ? $this->UltDespesaAdicionalCompra : null;
    }
    /**
     * Set UltDespesaAdicionalCompra 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 $ultDespesaAdicionalCompra
     * @return \StructType\ArtigoERP
     */
    public function setUltDespesaAdicionalCompra($ultDespesaAdicionalCompra = null)
    {
        if (is_null($ultDespesaAdicionalCompra) || (is_array($ultDespesaAdicionalCompra) && empty($ultDespesaAdicionalCompra))) {
            unset($this->UltDespesaAdicionalCompra);
        } else {
            $this->UltDespesaAdicionalCompra = $ultDespesaAdicionalCompra;
        }
        return $this;
    }
    /**
     * Get UltimaSerieDoc 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 getUltimaSerieDoc()
    {
        return isset($this->UltimaSerieDoc) ? $this->UltimaSerieDoc : null;
    }
    /**
     * Set UltimaSerieDoc 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 $ultimaSerieDoc
     * @return \StructType\ArtigoERP
     */
    public function setUltimaSerieDoc($ultimaSerieDoc = null)
    {
        // validation for constraint: string
        if (!is_null($ultimaSerieDoc) && !is_string($ultimaSerieDoc)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ultimaSerieDoc)), __LINE__);
        }
        if (is_null($ultimaSerieDoc) || (is_array($ultimaSerieDoc) && empty($ultimaSerieDoc))) {
            unset($this->UltimaSerieDoc);
        } else {
            $this->UltimaSerieDoc = $ultimaSerieDoc;
        }
        return $this;
    }
    /**
     * Get UltimoFornecedor 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 getUltimoFornecedor()
    {
        return isset($this->UltimoFornecedor) ? $this->UltimoFornecedor : null;
    }
    /**
     * Set UltimoFornecedor 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 $ultimoFornecedor
     * @return \StructType\ArtigoERP
     */
    public function setUltimoFornecedor($ultimoFornecedor = null)
    {
        // validation for constraint: string
        if (!is_null($ultimoFornecedor) && !is_string($ultimoFornecedor)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ultimoFornecedor)), __LINE__);
        }
        if (is_null($ultimoFornecedor) || (is_array($ultimoFornecedor) && empty($ultimoFornecedor))) {
            unset($this->UltimoFornecedor);
        } else {
            $this->UltimoFornecedor = $ultimoFornecedor;
        }
        return $this;
    }
    /**
     * Get UltimoLote 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 getUltimoLote()
    {
        return isset($this->UltimoLote) ? $this->UltimoLote : null;
    }
    /**
     * Set UltimoLote 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 $ultimoLote
     * @return \StructType\ArtigoERP
     */
    public function setUltimoLote($ultimoLote = null)
    {
        // validation for constraint: string
        if (!is_null($ultimoLote) && !is_string($ultimoLote)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ultimoLote)), __LINE__);
        }
        if (is_null($ultimoLote) || (is_array($ultimoLote) && empty($ultimoLote))) {
            unset($this->UltimoLote);
        } else {
            $this->UltimoLote = $ultimoLote;
        }
        return $this;
    }
    /**
     * Get UltimoNumDoc 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 getUltimoNumDoc()
    {
        return isset($this->UltimoNumDoc) ? $this->UltimoNumDoc : null;
    }
    /**
     * Set UltimoNumDoc 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 $ultimoNumDoc
     * @return \StructType\ArtigoERP
     */
    public function setUltimoNumDoc($ultimoNumDoc = null)
    {
        // validation for constraint: int
        if (!is_null($ultimoNumDoc) && !is_numeric($ultimoNumDoc)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($ultimoNumDoc)), __LINE__);
        }
        if (is_null($ultimoNumDoc) || (is_array($ultimoNumDoc) && empty($ultimoNumDoc))) {
            unset($this->UltimoNumDoc);
        } else {
            $this->UltimoNumDoc = $ultimoNumDoc;
        }
        return $this;
    }
    /**
     * Get UltimoNumSerie 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 getUltimoNumSerie()
    {
        return isset($this->UltimoNumSerie) ? $this->UltimoNumSerie : null;
    }
    /**
     * Set UltimoNumSerie 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 $ultimoNumSerie
     * @return \StructType\ArtigoERP
     */
    public function setUltimoNumSerie($ultimoNumSerie = null)
    {
        // validation for constraint: string
        if (!is_null($ultimoNumSerie) && !is_string($ultimoNumSerie)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ultimoNumSerie)), __LINE__);
        }
        if (is_null($ultimoNumSerie) || (is_array($ultimoNumSerie) && empty($ultimoNumSerie))) {
            unset($this->UltimoNumSerie);
        } else {
            $this->UltimoNumSerie = $ultimoNumSerie;
        }
        return $this;
    }
    /**
     * Get UltimoTipoDoc 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 getUltimoTipoDoc()
    {
        return isset($this->UltimoTipoDoc) ? $this->UltimoTipoDoc : null;
    }
    /**
     * Set UltimoTipoDoc 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 $ultimoTipoDoc
     * @return \StructType\ArtigoERP
     */
    public function setUltimoTipoDoc($ultimoTipoDoc = null)
    {
        // validation for constraint: string
        if (!is_null($ultimoTipoDoc) && !is_string($ultimoTipoDoc)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ultimoTipoDoc)), __LINE__);
        }
        if (is_null($ultimoTipoDoc) || (is_array($ultimoTipoDoc) && empty($ultimoTipoDoc))) {
            unset($this->UltimoTipoDoc);
        } else {
            $this->UltimoTipoDoc = $ultimoTipoDoc;
        }
        return $this;
    }
    /**
     * Get UnidadeBase 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 getUnidadeBase()
    {
        return isset($this->UnidadeBase) ? $this->UnidadeBase : null;
    }
    /**
     * Set UnidadeBase 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 $unidadeBase
     * @return \StructType\ArtigoERP
     */
    public function setUnidadeBase($unidadeBase = null)
    {
        // validation for constraint: string
        if (!is_null($unidadeBase) && !is_string($unidadeBase)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($unidadeBase)), __LINE__);
        }
        if (is_null($unidadeBase) || (is_array($unidadeBase) && empty($unidadeBase))) {
            unset($this->UnidadeBase);
        } else {
            $this->UnidadeBase = $unidadeBase;
        }
        return $this;
    }
    /**
     * Get UnidadeCompra 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 getUnidadeCompra()
    {
        return isset($this->UnidadeCompra) ? $this->UnidadeCompra : null;
    }
    /**
     * Set UnidadeCompra 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 $unidadeCompra
     * @return \StructType\ArtigoERP
     */
    public function setUnidadeCompra($unidadeCompra = null)
    {
        // validation for constraint: string
        if (!is_null($unidadeCompra) && !is_string($unidadeCompra)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($unidadeCompra)), __LINE__);
        }
        if (is_null($unidadeCompra) || (is_array($unidadeCompra) && empty($unidadeCompra))) {
            unset($this->UnidadeCompra);
        } else {
            $this->UnidadeCompra = $unidadeCompra;
        }
        return $this;
    }
    /**
     * Get UnidadeEntrada 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 getUnidadeEntrada()
    {
        return isset($this->UnidadeEntrada) ? $this->UnidadeEntrada : null;
    }
    /**
     * Set UnidadeEntrada 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 $unidadeEntrada
     * @return \StructType\ArtigoERP
     */
    public function setUnidadeEntrada($unidadeEntrada = null)
    {
        // validation for constraint: string
        if (!is_null($unidadeEntrada) && !is_string($unidadeEntrada)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($unidadeEntrada)), __LINE__);
        }
        if (is_null($unidadeEntrada) || (is_array($unidadeEntrada) && empty($unidadeEntrada))) {
            unset($this->UnidadeEntrada);
        } else {
            $this->UnidadeEntrada = $unidadeEntrada;
        }
        return $this;
    }
    /**
     * Get UnidadeSaida 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 getUnidadeSaida()
    {
        return isset($this->UnidadeSaida) ? $this->UnidadeSaida : null;
    }
    /**
     * Set UnidadeSaida 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 $unidadeSaida
     * @return \StructType\ArtigoERP
     */
    public function setUnidadeSaida($unidadeSaida = null)
    {
        // validation for constraint: string
        if (!is_null($unidadeSaida) && !is_string($unidadeSaida)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($unidadeSaida)), __LINE__);
        }
        if (is_null($unidadeSaida) || (is_array($unidadeSaida) && empty($unidadeSaida))) {
            unset($this->UnidadeSaida);
        } else {
            $this->UnidadeSaida = $unidadeSaida;
        }
        return $this;
    }
    /**
     * Get UnidadeTaric 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 getUnidadeTaric()
    {
        return isset($this->UnidadeTaric) ? $this->UnidadeTaric : null;
    }
    /**
     * Set UnidadeTaric 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 $unidadeTaric
     * @return \StructType\ArtigoERP
     */
    public function setUnidadeTaric($unidadeTaric = null)
    {
        // validation for constraint: string
        if (!is_null($unidadeTaric) && !is_string($unidadeTaric)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($unidadeTaric)), __LINE__);
        }
        if (is_null($unidadeTaric) || (is_array($unidadeTaric) && empty($unidadeTaric))) {
            unset($this->UnidadeTaric);
        } else {
            $this->UnidadeTaric = $unidadeTaric;
        }
        return $this;
    }
    /**
     * Get UnidadeVenda 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 getUnidadeVenda()
    {
        return isset($this->UnidadeVenda) ? $this->UnidadeVenda : null;
    }
    /**
     * Set UnidadeVenda 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 $unidadeVenda
     * @return \StructType\ArtigoERP
     */
    public function setUnidadeVenda($unidadeVenda = null)
    {
        // validation for constraint: string
        if (!is_null($unidadeVenda) && !is_string($unidadeVenda)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($unidadeVenda)), __LINE__);
        }
        if (is_null($unidadeVenda) || (is_array($unidadeVenda) && empty($unidadeVenda))) {
            unset($this->UnidadeVenda);
        } else {
            $this->UnidadeVenda = $unidadeVenda;
        }
        return $this;
    }
    /**
     * Get UtilManutencao 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 getUtilManutencao()
    {
        return isset($this->UtilManutencao) ? $this->UtilManutencao : null;
    }
    /**
     * Set UtilManutencao 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 $utilManutencao
     * @return \StructType\ArtigoERP
     */
    public function setUtilManutencao($utilManutencao = null)
    {
        // validation for constraint: boolean
        if (!is_null($utilManutencao) && !is_bool($utilManutencao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($utilManutencao)), __LINE__);
        }
        if (is_null($utilManutencao) || (is_array($utilManutencao) && empty($utilManutencao))) {
            unset($this->UtilManutencao);
        } else {
            $this->UtilManutencao = $utilManutencao;
        }
        return $this;
    }
    /**
     * Get UtilizadoCCOP value
     * @return bool|null
     */
    public function getUtilizadoCCOP()
    {
        return $this->UtilizadoCCOP;
    }
    /**
     * Set UtilizadoCCOP value
     * @param bool $utilizadoCCOP
     * @return \StructType\ArtigoERP
     */
    public function setUtilizadoCCOP($utilizadoCCOP = null)
    {
        // validation for constraint: boolean
        if (!is_null($utilizadoCCOP) && !is_bool($utilizadoCCOP)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($utilizadoCCOP)), __LINE__);
        }
        $this->UtilizadoCCOP = $utilizadoCCOP;
        return $this;
    }
    /**
     * Get UtilizadoGPR value
     * @return bool|null
     */
    public function getUtilizadoGPR()
    {
        return $this->UtilizadoGPR;
    }
    /**
     * Set UtilizadoGPR value
     * @param bool $utilizadoGPR
     * @return \StructType\ArtigoERP
     */
    public function setUtilizadoGPR($utilizadoGPR = null)
    {
        // validation for constraint: boolean
        if (!is_null($utilizadoGPR) && !is_bool($utilizadoGPR)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($utilizadoGPR)), __LINE__);
        }
        $this->UtilizadoGPR = $utilizadoGPR;
        return $this;
    }
    /**
     * Get ValorIEC 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 getValorIEC()
    {
        return isset($this->ValorIEC) ? $this->ValorIEC : null;
    }
    /**
     * Set ValorIEC 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 $valorIEC
     * @return \StructType\ArtigoERP
     */
    public function setValorIEC($valorIEC = null)
    {
        if (is_null($valorIEC) || (is_array($valorIEC) && empty($valorIEC))) {
            unset($this->ValorIEC);
        } else {
            $this->ValorIEC = $valorIEC;
        }
        return $this;
    }
    /**
     * Get VersaoUltAct value
     * @return string|null
     */
    public function getVersaoUltAct()
    {
        return $this->VersaoUltAct;
    }
    /**
     * Set VersaoUltAct value
     * @param string $versaoUltAct
     * @return \StructType\ArtigoERP
     */
    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 Volume 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 getVolume()
    {
        return isset($this->Volume) ? $this->Volume : null;
    }
    /**
     * Set Volume 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 $volume
     * @return \StructType\ArtigoERP
     */
    public function setVolume($volume = null)
    {
        if (is_null($volume) || (is_array($volume) && empty($volume))) {
            unset($this->Volume);
        } else {
            $this->Volume = $volume;
        }
        return $this;
    }
    /**
     * Get eGAR_Grupo 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 getEGAR_Grupo()
    {
        return isset($this->eGAR_Grupo) ? $this->eGAR_Grupo : null;
    }
    /**
     * Set eGAR_Grupo 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 $eGAR_Grupo
     * @return \StructType\ArtigoERP
     */
    public function setEGAR_Grupo($eGAR_Grupo = null)
    {
        // validation for constraint: string
        if (!is_null($eGAR_Grupo) && !is_string($eGAR_Grupo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($eGAR_Grupo)), __LINE__);
        }
        if (is_null($eGAR_Grupo) || (is_array($eGAR_Grupo) && empty($eGAR_Grupo))) {
            unset($this->eGAR_Grupo);
        } else {
            $this->eGAR_Grupo = $eGAR_Grupo;
        }
        return $this;
    }
    /**
     * Get eGAR_LER 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 getEGAR_LER()
    {
        return isset($this->eGAR_LER) ? $this->eGAR_LER : null;
    }
    /**
     * Set eGAR_LER 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 $eGAR_LER
     * @return \StructType\ArtigoERP
     */
    public function setEGAR_LER($eGAR_LER = null)
    {
        // validation for constraint: string
        if (!is_null($eGAR_LER) && !is_string($eGAR_LER)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($eGAR_LER)), __LINE__);
        }
        if (is_null($eGAR_LER) || (is_array($eGAR_LER) && empty($eGAR_LER))) {
            unset($this->eGAR_LER);
        } else {
            $this->eGAR_LER = $eGAR_LER;
        }
        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\ArtigoERP
     */
    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__;
    }
}
