<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for ModoPagamentoERP StructType
 * Meta informations extracted from the WSDL
 * - nillable: true
 * - type: tns:ModoPagamentoERP
 * @subpackage Structs
 */
class ModoPagamentoERP extends AbstractStructBase
{
    /**
     * The CartaoCredito
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $CartaoCredito;
    /**
     * The Cheque
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Cheque;
    /**
     * The ChequePreDatado
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $ChequePreDatado;
    /**
     * The Comissao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $Comissao;
    /**
     * The DataUltimaActualizacao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DataUltimaActualizacao;
    /**
     * The Descricao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Descricao;
    /**
     * The DocTesouraria
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DocTesouraria;
    /**
     * The EstadoProcesso
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $EstadoProcesso;
    /**
     * The ExportaN68
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $ExportaN68;
    /**
     * The ExportaPS2
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $ExportaPS2;
    /**
     * The Formato
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Formato;
    /**
     * The IncluirRemessas
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $IncluirRemessas;
    /**
     * The Letra
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $Letra;
    /**
     * The LigaProcessos
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $LigaProcessos;
    /**
     * The ModoPag
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $ModoPag;
    /**
     * The ModoRec
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $ModoRec;
    /**
     * The MovInterno
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $MovInterno;
    /**
     * The MovUtilizadoEmPOS
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $MovUtilizadoEmPOS;
    /**
     * The Movim
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Movim;
    /**
     * The MovimNatInversa
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $MovimNatInversa;
    /**
     * The MovimentaEstados
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $MovimentaEstados;
    /**
     * The NumDias
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $NumDias;
    /**
     * The Numerario
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Numerario;
    /**
     * The Outro
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Outro;
    /**
     * The PermiteAltAposExp
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $PermiteAltAposExp;
    /**
     * The Protegida
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $Protegida;
    /**
     * The Recibo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $Recibo;
    /**
     * The SAFTTipoDocumento
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SAFTTipoDocumento;
    /**
     * The SerieAuto
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SerieAuto;
    /**
     * The SerieFixa
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SerieFixa;
    /**
     * The SugereCodProcesso
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $SugereCodProcesso;
    /**
     * The TipoCC
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $TipoCC;
    /**
     * The TipoCX
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $TipoCX;
    /**
     * The TipoDC
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $TipoDC;
    /**
     * The TipoDO
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $TipoDO;
    /**
     * The TipoDP
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $TipoDP;
    /**
     * The TipoMv
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TipoMv;
    /**
     * The TransElectronica
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $TransElectronica;
    /**
     * The Vale
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Vale;
    /**
     * The ValorMaximo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $ValorMaximo;
    /**
     * The ValorMinimo
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var float
     */
    public $ValorMinimo;
    /**
     * The VersaoUltAct
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $VersaoUltAct;
    /**
     * Constructor method for ModoPagamentoERP
     * @uses ModoPagamentoERP::setCartaoCredito()
     * @uses ModoPagamentoERP::setCheque()
     * @uses ModoPagamentoERP::setChequePreDatado()
     * @uses ModoPagamentoERP::setComissao()
     * @uses ModoPagamentoERP::setDataUltimaActualizacao()
     * @uses ModoPagamentoERP::setDescricao()
     * @uses ModoPagamentoERP::setDocTesouraria()
     * @uses ModoPagamentoERP::setEstadoProcesso()
     * @uses ModoPagamentoERP::setExportaN68()
     * @uses ModoPagamentoERP::setExportaPS2()
     * @uses ModoPagamentoERP::setFormato()
     * @uses ModoPagamentoERP::setIncluirRemessas()
     * @uses ModoPagamentoERP::setLetra()
     * @uses ModoPagamentoERP::setLigaProcessos()
     * @uses ModoPagamentoERP::setModoPag()
     * @uses ModoPagamentoERP::setModoRec()
     * @uses ModoPagamentoERP::setMovInterno()
     * @uses ModoPagamentoERP::setMovUtilizadoEmPOS()
     * @uses ModoPagamentoERP::setMovim()
     * @uses ModoPagamentoERP::setMovimNatInversa()
     * @uses ModoPagamentoERP::setMovimentaEstados()
     * @uses ModoPagamentoERP::setNumDias()
     * @uses ModoPagamentoERP::setNumerario()
     * @uses ModoPagamentoERP::setOutro()
     * @uses ModoPagamentoERP::setPermiteAltAposExp()
     * @uses ModoPagamentoERP::setProtegida()
     * @uses ModoPagamentoERP::setRecibo()
     * @uses ModoPagamentoERP::setSAFTTipoDocumento()
     * @uses ModoPagamentoERP::setSerieAuto()
     * @uses ModoPagamentoERP::setSerieFixa()
     * @uses ModoPagamentoERP::setSugereCodProcesso()
     * @uses ModoPagamentoERP::setTipoCC()
     * @uses ModoPagamentoERP::setTipoCX()
     * @uses ModoPagamentoERP::setTipoDC()
     * @uses ModoPagamentoERP::setTipoDO()
     * @uses ModoPagamentoERP::setTipoDP()
     * @uses ModoPagamentoERP::setTipoMv()
     * @uses ModoPagamentoERP::setTransElectronica()
     * @uses ModoPagamentoERP::setVale()
     * @uses ModoPagamentoERP::setValorMaximo()
     * @uses ModoPagamentoERP::setValorMinimo()
     * @uses ModoPagamentoERP::setVersaoUltAct()
     * @param bool $cartaoCredito
     * @param bool $cheque
     * @param bool $chequePreDatado
     * @param float $comissao
     * @param string $dataUltimaActualizacao
     * @param string $descricao
     * @param string $docTesouraria
     * @param string $estadoProcesso
     * @param bool $exportaN68
     * @param bool $exportaPS2
     * @param string $formato
     * @param bool $incluirRemessas
     * @param bool $letra
     * @param bool $ligaProcessos
     * @param bool $modoPag
     * @param bool $modoRec
     * @param bool $movInterno
     * @param bool $movUtilizadoEmPOS
     * @param string $movim
     * @param string $movimNatInversa
     * @param bool $movimentaEstados
     * @param int $numDias
     * @param bool $numerario
     * @param bool $outro
     * @param bool $permiteAltAposExp
     * @param bool $protegida
     * @param bool $recibo
     * @param string $sAFTTipoDocumento
     * @param string $serieAuto
     * @param string $serieFixa
     * @param bool $sugereCodProcesso
     * @param bool $tipoCC
     * @param bool $tipoCX
     * @param bool $tipoDC
     * @param bool $tipoDO
     * @param bool $tipoDP
     * @param string $tipoMv
     * @param bool $transElectronica
     * @param bool $vale
     * @param float $valorMaximo
     * @param float $valorMinimo
     * @param string $versaoUltAct
     */
    public function __construct($cartaoCredito = null, $cheque = null, $chequePreDatado = null, $comissao = null, $dataUltimaActualizacao = null, $descricao = null, $docTesouraria = null, $estadoProcesso = null, $exportaN68 = null, $exportaPS2 = null, $formato = null, $incluirRemessas = null, $letra = null, $ligaProcessos = null, $modoPag = null, $modoRec = null, $movInterno = null, $movUtilizadoEmPOS = null, $movim = null, $movimNatInversa = null, $movimentaEstados = null, $numDias = null, $numerario = null, $outro = null, $permiteAltAposExp = null, $protegida = null, $recibo = null, $sAFTTipoDocumento = null, $serieAuto = null, $serieFixa = null, $sugereCodProcesso = null, $tipoCC = null, $tipoCX = null, $tipoDC = null, $tipoDO = null, $tipoDP = null, $tipoMv = null, $transElectronica = null, $vale = null, $valorMaximo = null, $valorMinimo = null, $versaoUltAct = null)
    {
        $this
            ->setCartaoCredito($cartaoCredito)
            ->setCheque($cheque)
            ->setChequePreDatado($chequePreDatado)
            ->setComissao($comissao)
            ->setDataUltimaActualizacao($dataUltimaActualizacao)
            ->setDescricao($descricao)
            ->setDocTesouraria($docTesouraria)
            ->setEstadoProcesso($estadoProcesso)
            ->setExportaN68($exportaN68)
            ->setExportaPS2($exportaPS2)
            ->setFormato($formato)
            ->setIncluirRemessas($incluirRemessas)
            ->setLetra($letra)
            ->setLigaProcessos($ligaProcessos)
            ->setModoPag($modoPag)
            ->setModoRec($modoRec)
            ->setMovInterno($movInterno)
            ->setMovUtilizadoEmPOS($movUtilizadoEmPOS)
            ->setMovim($movim)
            ->setMovimNatInversa($movimNatInversa)
            ->setMovimentaEstados($movimentaEstados)
            ->setNumDias($numDias)
            ->setNumerario($numerario)
            ->setOutro($outro)
            ->setPermiteAltAposExp($permiteAltAposExp)
            ->setProtegida($protegida)
            ->setRecibo($recibo)
            ->setSAFTTipoDocumento($sAFTTipoDocumento)
            ->setSerieAuto($serieAuto)
            ->setSerieFixa($serieFixa)
            ->setSugereCodProcesso($sugereCodProcesso)
            ->setTipoCC($tipoCC)
            ->setTipoCX($tipoCX)
            ->setTipoDC($tipoDC)
            ->setTipoDO($tipoDO)
            ->setTipoDP($tipoDP)
            ->setTipoMv($tipoMv)
            ->setTransElectronica($transElectronica)
            ->setVale($vale)
            ->setValorMaximo($valorMaximo)
            ->setValorMinimo($valorMinimo)
            ->setVersaoUltAct($versaoUltAct);
    }
    /**
     * Get CartaoCredito value
     * An additional test has been added (isset) before returning the property value as
     * 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 getCartaoCredito()
    {
        return isset($this->CartaoCredito) ? $this->CartaoCredito : null;
    }
    /**
     * Set CartaoCredito value
     * This property is 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 $cartaoCredito
     * @return \StructType\ModoPagamentoERP
     */
    public function setCartaoCredito($cartaoCredito = null)
    {
        // validation for constraint: boolean
        if (!is_null($cartaoCredito) && !is_bool($cartaoCredito)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($cartaoCredito)), __LINE__);
        }
        if (is_null($cartaoCredito) || (is_array($cartaoCredito) && empty($cartaoCredito))) {
            unset($this->CartaoCredito);
        } else {
            $this->CartaoCredito = $cartaoCredito;
        }
        return $this;
    }
    /**
     * Get Cheque value
     * An additional test has been added (isset) before returning the property value as
     * 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 getCheque()
    {
        return isset($this->Cheque) ? $this->Cheque : null;
    }
    /**
     * Set Cheque value
     * This property is 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 $cheque
     * @return \StructType\ModoPagamentoERP
     */
    public function setCheque($cheque = null)
    {
        // validation for constraint: boolean
        if (!is_null($cheque) && !is_bool($cheque)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($cheque)), __LINE__);
        }
        if (is_null($cheque) || (is_array($cheque) && empty($cheque))) {
            unset($this->Cheque);
        } else {
            $this->Cheque = $cheque;
        }
        return $this;
    }
    /**
     * Get ChequePreDatado value
     * @return bool|null
     */
    public function getChequePreDatado()
    {
        return $this->ChequePreDatado;
    }
    /**
     * Set ChequePreDatado value
     * @param bool $chequePreDatado
     * @return \StructType\ModoPagamentoERP
     */
    public function setChequePreDatado($chequePreDatado = null)
    {
        // validation for constraint: boolean
        if (!is_null($chequePreDatado) && !is_bool($chequePreDatado)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($chequePreDatado)), __LINE__);
        }
        $this->ChequePreDatado = $chequePreDatado;
        return $this;
    }
    /**
     * Get Comissao value
     * An additional test has been added (isset) before returning the property value as
     * 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 getComissao()
    {
        return isset($this->Comissao) ? $this->Comissao : null;
    }
    /**
     * Set Comissao value
     * This property is 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 $comissao
     * @return \StructType\ModoPagamentoERP
     */
    public function setComissao($comissao = null)
    {
        if (is_null($comissao) || (is_array($comissao) && empty($comissao))) {
            unset($this->Comissao);
        } else {
            $this->Comissao = $comissao;
        }
        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\ModoPagamentoERP
     */
    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 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\ModoPagamentoERP
     */
    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 DocTesouraria value
     * An additional test has been added (isset) before returning the property value as
     * 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 getDocTesouraria()
    {
        return isset($this->DocTesouraria) ? $this->DocTesouraria : null;
    }
    /**
     * Set DocTesouraria value
     * This property is 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 $docTesouraria
     * @return \StructType\ModoPagamentoERP
     */
    public function setDocTesouraria($docTesouraria = null)
    {
        // validation for constraint: string
        if (!is_null($docTesouraria) && !is_string($docTesouraria)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($docTesouraria)), __LINE__);
        }
        if (is_null($docTesouraria) || (is_array($docTesouraria) && empty($docTesouraria))) {
            unset($this->DocTesouraria);
        } else {
            $this->DocTesouraria = $docTesouraria;
        }
        return $this;
    }
    /**
     * Get EstadoProcesso value
     * An additional test has been added (isset) before returning the property value as
     * 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 getEstadoProcesso()
    {
        return isset($this->EstadoProcesso) ? $this->EstadoProcesso : null;
    }
    /**
     * Set EstadoProcesso value
     * This property is 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 $estadoProcesso
     * @return \StructType\ModoPagamentoERP
     */
    public function setEstadoProcesso($estadoProcesso = null)
    {
        // validation for constraint: string
        if (!is_null($estadoProcesso) && !is_string($estadoProcesso)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($estadoProcesso)), __LINE__);
        }
        if (is_null($estadoProcesso) || (is_array($estadoProcesso) && empty($estadoProcesso))) {
            unset($this->EstadoProcesso);
        } else {
            $this->EstadoProcesso = $estadoProcesso;
        }
        return $this;
    }
    /**
     * Get ExportaN68 value
     * @return bool|null
     */
    public function getExportaN68()
    {
        return $this->ExportaN68;
    }
    /**
     * Set ExportaN68 value
     * @param bool $exportaN68
     * @return \StructType\ModoPagamentoERP
     */
    public function setExportaN68($exportaN68 = null)
    {
        // validation for constraint: boolean
        if (!is_null($exportaN68) && !is_bool($exportaN68)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($exportaN68)), __LINE__);
        }
        $this->ExportaN68 = $exportaN68;
        return $this;
    }
    /**
     * Get ExportaPS2 value
     * An additional test has been added (isset) before returning the property value as
     * 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 getExportaPS2()
    {
        return isset($this->ExportaPS2) ? $this->ExportaPS2 : null;
    }
    /**
     * Set ExportaPS2 value
     * This property is 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 $exportaPS2
     * @return \StructType\ModoPagamentoERP
     */
    public function setExportaPS2($exportaPS2 = null)
    {
        // validation for constraint: boolean
        if (!is_null($exportaPS2) && !is_bool($exportaPS2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($exportaPS2)), __LINE__);
        }
        if (is_null($exportaPS2) || (is_array($exportaPS2) && empty($exportaPS2))) {
            unset($this->ExportaPS2);
        } else {
            $this->ExportaPS2 = $exportaPS2;
        }
        return $this;
    }
    /**
     * Get Formato value
     * An additional test has been added (isset) before returning the property value as
     * 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 getFormato()
    {
        return isset($this->Formato) ? $this->Formato : null;
    }
    /**
     * Set Formato value
     * This property is 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 $formato
     * @return \StructType\ModoPagamentoERP
     */
    public function setFormato($formato = null)
    {
        // validation for constraint: string
        if (!is_null($formato) && !is_string($formato)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($formato)), __LINE__);
        }
        if (is_null($formato) || (is_array($formato) && empty($formato))) {
            unset($this->Formato);
        } else {
            $this->Formato = $formato;
        }
        return $this;
    }
    /**
     * Get IncluirRemessas value
     * An additional test has been added (isset) before returning the property value as
     * 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 getIncluirRemessas()
    {
        return isset($this->IncluirRemessas) ? $this->IncluirRemessas : null;
    }
    /**
     * Set IncluirRemessas value
     * This property is 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 $incluirRemessas
     * @return \StructType\ModoPagamentoERP
     */
    public function setIncluirRemessas($incluirRemessas = null)
    {
        // validation for constraint: boolean
        if (!is_null($incluirRemessas) && !is_bool($incluirRemessas)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($incluirRemessas)), __LINE__);
        }
        if (is_null($incluirRemessas) || (is_array($incluirRemessas) && empty($incluirRemessas))) {
            unset($this->IncluirRemessas);
        } else {
            $this->IncluirRemessas = $incluirRemessas;
        }
        return $this;
    }
    /**
     * Get Letra value
     * @return bool|null
     */
    public function getLetra()
    {
        return $this->Letra;
    }
    /**
     * Set Letra value
     * @param bool $letra
     * @return \StructType\ModoPagamentoERP
     */
    public function setLetra($letra = null)
    {
        // validation for constraint: boolean
        if (!is_null($letra) && !is_bool($letra)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($letra)), __LINE__);
        }
        $this->Letra = $letra;
        return $this;
    }
    /**
     * Get LigaProcessos value
     * An additional test has been added (isset) before returning the property value as
     * 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 getLigaProcessos()
    {
        return isset($this->LigaProcessos) ? $this->LigaProcessos : null;
    }
    /**
     * Set LigaProcessos value
     * This property is 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 $ligaProcessos
     * @return \StructType\ModoPagamentoERP
     */
    public function setLigaProcessos($ligaProcessos = null)
    {
        // validation for constraint: boolean
        if (!is_null($ligaProcessos) && !is_bool($ligaProcessos)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($ligaProcessos)), __LINE__);
        }
        if (is_null($ligaProcessos) || (is_array($ligaProcessos) && empty($ligaProcessos))) {
            unset($this->LigaProcessos);
        } else {
            $this->LigaProcessos = $ligaProcessos;
        }
        return $this;
    }
    /**
     * Get ModoPag value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return bool|null
     */
    public function getModoPag()
    {
        return isset($this->ModoPag) ? $this->ModoPag : null;
    }
    /**
     * Set ModoPag value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param bool $modoPag
     * @return \StructType\ModoPagamentoERP
     */
    public function setModoPag($modoPag = null)
    {
        // validation for constraint: boolean
        if (!is_null($modoPag) && !is_bool($modoPag)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($modoPag)), __LINE__);
        }
        if (is_null($modoPag) || (is_array($modoPag) && empty($modoPag))) {
            unset($this->ModoPag);
        } else {
            $this->ModoPag = $modoPag;
        }
        return $this;
    }
    /**
     * Get ModoRec value
     * An additional test has been added (isset) before returning the property value as
     * 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 getModoRec()
    {
        return isset($this->ModoRec) ? $this->ModoRec : null;
    }
    /**
     * Set ModoRec value
     * This property is 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 $modoRec
     * @return \StructType\ModoPagamentoERP
     */
    public function setModoRec($modoRec = null)
    {
        // validation for constraint: boolean
        if (!is_null($modoRec) && !is_bool($modoRec)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($modoRec)), __LINE__);
        }
        if (is_null($modoRec) || (is_array($modoRec) && empty($modoRec))) {
            unset($this->ModoRec);
        } else {
            $this->ModoRec = $modoRec;
        }
        return $this;
    }
    /**
     * Get MovInterno value
     * An additional test has been added (isset) before returning the property value as
     * 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 getMovInterno()
    {
        return isset($this->MovInterno) ? $this->MovInterno : null;
    }
    /**
     * Set MovInterno value
     * This property is 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 $movInterno
     * @return \StructType\ModoPagamentoERP
     */
    public function setMovInterno($movInterno = null)
    {
        // validation for constraint: boolean
        if (!is_null($movInterno) && !is_bool($movInterno)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($movInterno)), __LINE__);
        }
        if (is_null($movInterno) || (is_array($movInterno) && empty($movInterno))) {
            unset($this->MovInterno);
        } else {
            $this->MovInterno = $movInterno;
        }
        return $this;
    }
    /**
     * Get MovUtilizadoEmPOS value
     * An additional test has been added (isset) before returning the property value as
     * 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 getMovUtilizadoEmPOS()
    {
        return isset($this->MovUtilizadoEmPOS) ? $this->MovUtilizadoEmPOS : null;
    }
    /**
     * Set MovUtilizadoEmPOS value
     * This property is 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 $movUtilizadoEmPOS
     * @return \StructType\ModoPagamentoERP
     */
    public function setMovUtilizadoEmPOS($movUtilizadoEmPOS = null)
    {
        // validation for constraint: boolean
        if (!is_null($movUtilizadoEmPOS) && !is_bool($movUtilizadoEmPOS)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($movUtilizadoEmPOS)), __LINE__);
        }
        if (is_null($movUtilizadoEmPOS) || (is_array($movUtilizadoEmPOS) && empty($movUtilizadoEmPOS))) {
            unset($this->MovUtilizadoEmPOS);
        } else {
            $this->MovUtilizadoEmPOS = $movUtilizadoEmPOS;
        }
        return $this;
    }
    /**
     * Get Movim value
     * An additional test has been added (isset) before returning the property value as
     * 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 getMovim()
    {
        return isset($this->Movim) ? $this->Movim : null;
    }
    /**
     * Set Movim value
     * This property is 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 $movim
     * @return \StructType\ModoPagamentoERP
     */
    public function setMovim($movim = null)
    {
        // validation for constraint: string
        if (!is_null($movim) && !is_string($movim)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($movim)), __LINE__);
        }
        if (is_null($movim) || (is_array($movim) && empty($movim))) {
            unset($this->Movim);
        } else {
            $this->Movim = $movim;
        }
        return $this;
    }
    /**
     * Get MovimNatInversa value
     * An additional test has been added (isset) before returning the property value as
     * 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 getMovimNatInversa()
    {
        return isset($this->MovimNatInversa) ? $this->MovimNatInversa : null;
    }
    /**
     * Set MovimNatInversa value
     * This property is 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 $movimNatInversa
     * @return \StructType\ModoPagamentoERP
     */
    public function setMovimNatInversa($movimNatInversa = null)
    {
        // validation for constraint: string
        if (!is_null($movimNatInversa) && !is_string($movimNatInversa)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($movimNatInversa)), __LINE__);
        }
        if (is_null($movimNatInversa) || (is_array($movimNatInversa) && empty($movimNatInversa))) {
            unset($this->MovimNatInversa);
        } else {
            $this->MovimNatInversa = $movimNatInversa;
        }
        return $this;
    }
    /**
     * Get MovimentaEstados value
     * An additional test has been added (isset) before returning the property value as
     * 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 getMovimentaEstados()
    {
        return isset($this->MovimentaEstados) ? $this->MovimentaEstados : null;
    }
    /**
     * Set MovimentaEstados value
     * This property is 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 $movimentaEstados
     * @return \StructType\ModoPagamentoERP
     */
    public function setMovimentaEstados($movimentaEstados = null)
    {
        // validation for constraint: boolean
        if (!is_null($movimentaEstados) && !is_bool($movimentaEstados)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($movimentaEstados)), __LINE__);
        }
        if (is_null($movimentaEstados) || (is_array($movimentaEstados) && empty($movimentaEstados))) {
            unset($this->MovimentaEstados);
        } else {
            $this->MovimentaEstados = $movimentaEstados;
        }
        return $this;
    }
    /**
     * Get NumDias value
     * An additional test has been added (isset) before returning the property value as
     * 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 getNumDias()
    {
        return isset($this->NumDias) ? $this->NumDias : null;
    }
    /**
     * Set NumDias value
     * This property is 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 $numDias
     * @return \StructType\ModoPagamentoERP
     */
    public function setNumDias($numDias = null)
    {
        // validation for constraint: int
        if (!is_null($numDias) && !is_numeric($numDias)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($numDias)), __LINE__);
        }
        if (is_null($numDias) || (is_array($numDias) && empty($numDias))) {
            unset($this->NumDias);
        } else {
            $this->NumDias = $numDias;
        }
        return $this;
    }
    /**
     * Get Numerario value
     * An additional test has been added (isset) before returning the property value as
     * 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 getNumerario()
    {
        return isset($this->Numerario) ? $this->Numerario : null;
    }
    /**
     * Set Numerario value
     * This property is 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 $numerario
     * @return \StructType\ModoPagamentoERP
     */
    public function setNumerario($numerario = null)
    {
        // validation for constraint: boolean
        if (!is_null($numerario) && !is_bool($numerario)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($numerario)), __LINE__);
        }
        if (is_null($numerario) || (is_array($numerario) && empty($numerario))) {
            unset($this->Numerario);
        } else {
            $this->Numerario = $numerario;
        }
        return $this;
    }
    /**
     * Get Outro value
     * An additional test has been added (isset) before returning the property value as
     * 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 getOutro()
    {
        return isset($this->Outro) ? $this->Outro : null;
    }
    /**
     * Set Outro value
     * This property is 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 $outro
     * @return \StructType\ModoPagamentoERP
     */
    public function setOutro($outro = null)
    {
        // validation for constraint: boolean
        if (!is_null($outro) && !is_bool($outro)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($outro)), __LINE__);
        }
        if (is_null($outro) || (is_array($outro) && empty($outro))) {
            unset($this->Outro);
        } else {
            $this->Outro = $outro;
        }
        return $this;
    }
    /**
     * Get PermiteAltAposExp value
     * @return bool|null
     */
    public function getPermiteAltAposExp()
    {
        return $this->PermiteAltAposExp;
    }
    /**
     * Set PermiteAltAposExp value
     * @param bool $permiteAltAposExp
     * @return \StructType\ModoPagamentoERP
     */
    public function setPermiteAltAposExp($permiteAltAposExp = null)
    {
        // validation for constraint: boolean
        if (!is_null($permiteAltAposExp) && !is_bool($permiteAltAposExp)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($permiteAltAposExp)), __LINE__);
        }
        $this->PermiteAltAposExp = $permiteAltAposExp;
        return $this;
    }
    /**
     * Get Protegida value
     * @return bool|null
     */
    public function getProtegida()
    {
        return $this->Protegida;
    }
    /**
     * Set Protegida value
     * @param bool $protegida
     * @return \StructType\ModoPagamentoERP
     */
    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 Recibo value
     * @return bool|null
     */
    public function getRecibo()
    {
        return $this->Recibo;
    }
    /**
     * Set Recibo value
     * @param bool $recibo
     * @return \StructType\ModoPagamentoERP
     */
    public function setRecibo($recibo = null)
    {
        // validation for constraint: boolean
        if (!is_null($recibo) && !is_bool($recibo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($recibo)), __LINE__);
        }
        $this->Recibo = $recibo;
        return $this;
    }
    /**
     * Get SAFTTipoDocumento value
     * An additional test has been added (isset) before returning the property value as
     * 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 getSAFTTipoDocumento()
    {
        return isset($this->SAFTTipoDocumento) ? $this->SAFTTipoDocumento : null;
    }
    /**
     * Set SAFTTipoDocumento value
     * This property is 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 $sAFTTipoDocumento
     * @return \StructType\ModoPagamentoERP
     */
    public function setSAFTTipoDocumento($sAFTTipoDocumento = null)
    {
        // validation for constraint: string
        if (!is_null($sAFTTipoDocumento) && !is_string($sAFTTipoDocumento)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($sAFTTipoDocumento)), __LINE__);
        }
        if (is_null($sAFTTipoDocumento) || (is_array($sAFTTipoDocumento) && empty($sAFTTipoDocumento))) {
            unset($this->SAFTTipoDocumento);
        } else {
            $this->SAFTTipoDocumento = $sAFTTipoDocumento;
        }
        return $this;
    }
    /**
     * Get SerieAuto value
     * An additional test has been added (isset) before returning the property value as
     * 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 getSerieAuto()
    {
        return isset($this->SerieAuto) ? $this->SerieAuto : null;
    }
    /**
     * Set SerieAuto value
     * This property is 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 $serieAuto
     * @return \StructType\ModoPagamentoERP
     */
    public function setSerieAuto($serieAuto = null)
    {
        // validation for constraint: string
        if (!is_null($serieAuto) && !is_string($serieAuto)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($serieAuto)), __LINE__);
        }
        if (is_null($serieAuto) || (is_array($serieAuto) && empty($serieAuto))) {
            unset($this->SerieAuto);
        } else {
            $this->SerieAuto = $serieAuto;
        }
        return $this;
    }
    /**
     * Get SerieFixa value
     * An additional test has been added (isset) before returning the property value as
     * 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 getSerieFixa()
    {
        return isset($this->SerieFixa) ? $this->SerieFixa : null;
    }
    /**
     * Set SerieFixa value
     * This property is 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 $serieFixa
     * @return \StructType\ModoPagamentoERP
     */
    public function setSerieFixa($serieFixa = null)
    {
        // validation for constraint: string
        if (!is_null($serieFixa) && !is_string($serieFixa)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($serieFixa)), __LINE__);
        }
        if (is_null($serieFixa) || (is_array($serieFixa) && empty($serieFixa))) {
            unset($this->SerieFixa);
        } else {
            $this->SerieFixa = $serieFixa;
        }
        return $this;
    }
    /**
     * Get SugereCodProcesso value
     * An additional test has been added (isset) before returning the property value as
     * 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 getSugereCodProcesso()
    {
        return isset($this->SugereCodProcesso) ? $this->SugereCodProcesso : null;
    }
    /**
     * Set SugereCodProcesso value
     * This property is 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 $sugereCodProcesso
     * @return \StructType\ModoPagamentoERP
     */
    public function setSugereCodProcesso($sugereCodProcesso = null)
    {
        // validation for constraint: boolean
        if (!is_null($sugereCodProcesso) && !is_bool($sugereCodProcesso)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($sugereCodProcesso)), __LINE__);
        }
        if (is_null($sugereCodProcesso) || (is_array($sugereCodProcesso) && empty($sugereCodProcesso))) {
            unset($this->SugereCodProcesso);
        } else {
            $this->SugereCodProcesso = $sugereCodProcesso;
        }
        return $this;
    }
    /**
     * Get TipoCC value
     * An additional test has been added (isset) before returning the property value as
     * 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 getTipoCC()
    {
        return isset($this->TipoCC) ? $this->TipoCC : null;
    }
    /**
     * Set TipoCC value
     * This property is 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 $tipoCC
     * @return \StructType\ModoPagamentoERP
     */
    public function setTipoCC($tipoCC = null)
    {
        // validation for constraint: boolean
        if (!is_null($tipoCC) && !is_bool($tipoCC)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($tipoCC)), __LINE__);
        }
        if (is_null($tipoCC) || (is_array($tipoCC) && empty($tipoCC))) {
            unset($this->TipoCC);
        } else {
            $this->TipoCC = $tipoCC;
        }
        return $this;
    }
    /**
     * Get TipoCX value
     * An additional test has been added (isset) before returning the property value as
     * 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 getTipoCX()
    {
        return isset($this->TipoCX) ? $this->TipoCX : null;
    }
    /**
     * Set TipoCX value
     * This property is 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 $tipoCX
     * @return \StructType\ModoPagamentoERP
     */
    public function setTipoCX($tipoCX = null)
    {
        // validation for constraint: boolean
        if (!is_null($tipoCX) && !is_bool($tipoCX)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($tipoCX)), __LINE__);
        }
        if (is_null($tipoCX) || (is_array($tipoCX) && empty($tipoCX))) {
            unset($this->TipoCX);
        } else {
            $this->TipoCX = $tipoCX;
        }
        return $this;
    }
    /**
     * Get TipoDC value
     * An additional test has been added (isset) before returning the property value as
     * 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 getTipoDC()
    {
        return isset($this->TipoDC) ? $this->TipoDC : null;
    }
    /**
     * Set TipoDC value
     * This property is 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 $tipoDC
     * @return \StructType\ModoPagamentoERP
     */
    public function setTipoDC($tipoDC = null)
    {
        // validation for constraint: boolean
        if (!is_null($tipoDC) && !is_bool($tipoDC)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($tipoDC)), __LINE__);
        }
        if (is_null($tipoDC) || (is_array($tipoDC) && empty($tipoDC))) {
            unset($this->TipoDC);
        } else {
            $this->TipoDC = $tipoDC;
        }
        return $this;
    }
    /**
     * Get TipoDO value
     * An additional test has been added (isset) before returning the property value as
     * 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 getTipoDO()
    {
        return isset($this->TipoDO) ? $this->TipoDO : null;
    }
    /**
     * Set TipoDO value
     * This property is 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 $tipoDO
     * @return \StructType\ModoPagamentoERP
     */
    public function setTipoDO($tipoDO = null)
    {
        // validation for constraint: boolean
        if (!is_null($tipoDO) && !is_bool($tipoDO)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($tipoDO)), __LINE__);
        }
        if (is_null($tipoDO) || (is_array($tipoDO) && empty($tipoDO))) {
            unset($this->TipoDO);
        } else {
            $this->TipoDO = $tipoDO;
        }
        return $this;
    }
    /**
     * Get TipoDP value
     * An additional test has been added (isset) before returning the property value as
     * 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 getTipoDP()
    {
        return isset($this->TipoDP) ? $this->TipoDP : null;
    }
    /**
     * Set TipoDP value
     * This property is 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 $tipoDP
     * @return \StructType\ModoPagamentoERP
     */
    public function setTipoDP($tipoDP = null)
    {
        // validation for constraint: boolean
        if (!is_null($tipoDP) && !is_bool($tipoDP)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($tipoDP)), __LINE__);
        }
        if (is_null($tipoDP) || (is_array($tipoDP) && empty($tipoDP))) {
            unset($this->TipoDP);
        } else {
            $this->TipoDP = $tipoDP;
        }
        return $this;
    }
    /**
     * Get TipoMv value
     * An additional test has been added (isset) before returning the property value as
     * 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 getTipoMv()
    {
        return isset($this->TipoMv) ? $this->TipoMv : null;
    }
    /**
     * Set TipoMv value
     * This property is 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 $tipoMv
     * @return \StructType\ModoPagamentoERP
     */
    public function setTipoMv($tipoMv = null)
    {
        // validation for constraint: string
        if (!is_null($tipoMv) && !is_string($tipoMv)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($tipoMv)), __LINE__);
        }
        if (is_null($tipoMv) || (is_array($tipoMv) && empty($tipoMv))) {
            unset($this->TipoMv);
        } else {
            $this->TipoMv = $tipoMv;
        }
        return $this;
    }
    /**
     * Get TransElectronica value
     * An additional test has been added (isset) before returning the property value as
     * 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 getTransElectronica()
    {
        return isset($this->TransElectronica) ? $this->TransElectronica : null;
    }
    /**
     * Set TransElectronica value
     * This property is 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 $transElectronica
     * @return \StructType\ModoPagamentoERP
     */
    public function setTransElectronica($transElectronica = null)
    {
        // validation for constraint: boolean
        if (!is_null($transElectronica) && !is_bool($transElectronica)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($transElectronica)), __LINE__);
        }
        if (is_null($transElectronica) || (is_array($transElectronica) && empty($transElectronica))) {
            unset($this->TransElectronica);
        } else {
            $this->TransElectronica = $transElectronica;
        }
        return $this;
    }
    /**
     * Get Vale value
     * An additional test has been added (isset) before returning the property value as
     * 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 getVale()
    {
        return isset($this->Vale) ? $this->Vale : null;
    }
    /**
     * Set Vale value
     * This property is 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 $vale
     * @return \StructType\ModoPagamentoERP
     */
    public function setVale($vale = null)
    {
        // validation for constraint: boolean
        if (!is_null($vale) && !is_bool($vale)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($vale)), __LINE__);
        }
        if (is_null($vale) || (is_array($vale) && empty($vale))) {
            unset($this->Vale);
        } else {
            $this->Vale = $vale;
        }
        return $this;
    }
    /**
     * Get ValorMaximo value
     * An additional test has been added (isset) before returning the property value as
     * 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 getValorMaximo()
    {
        return isset($this->ValorMaximo) ? $this->ValorMaximo : null;
    }
    /**
     * Set ValorMaximo value
     * This property is 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 $valorMaximo
     * @return \StructType\ModoPagamentoERP
     */
    public function setValorMaximo($valorMaximo = null)
    {
        if (is_null($valorMaximo) || (is_array($valorMaximo) && empty($valorMaximo))) {
            unset($this->ValorMaximo);
        } else {
            $this->ValorMaximo = $valorMaximo;
        }
        return $this;
    }
    /**
     * Get ValorMinimo value
     * An additional test has been added (isset) before returning the property value as
     * 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 getValorMinimo()
    {
        return isset($this->ValorMinimo) ? $this->ValorMinimo : null;
    }
    /**
     * Set ValorMinimo value
     * This property is 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 $valorMinimo
     * @return \StructType\ModoPagamentoERP
     */
    public function setValorMinimo($valorMinimo = null)
    {
        if (is_null($valorMinimo) || (is_array($valorMinimo) && empty($valorMinimo))) {
            unset($this->ValorMinimo);
        } else {
            $this->ValorMinimo = $valorMinimo;
        }
        return $this;
    }
    /**
     * Get VersaoUltAct value
     * @return string|null
     */
    public function getVersaoUltAct()
    {
        return $this->VersaoUltAct;
    }
    /**
     * Set VersaoUltAct value
     * @param string $versaoUltAct
     * @return \StructType\ModoPagamentoERP
     */
    public function setVersaoUltAct($versaoUltAct = null)
    {
        // validation for constraint: string
        if (!is_null($versaoUltAct) && !is_string($versaoUltAct)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($versaoUltAct)), __LINE__);
        }
        $this->VersaoUltAct = $versaoUltAct;
        return $this;
    }
    /**
     * Method called when an object has been exported with var_export() functions
     * It allows to return an object instantiated with the values
     * @see AbstractStructBase::__set_state()
     * @uses AbstractStructBase::__set_state()
     * @param array $array the exported values
     * @return \StructType\ModoPagamentoERP
     */
    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__;
    }
}
