<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for ref_detail StructType
 * Meta informations extracted from the WSDL
 * - nillable: true
 * - type: tns:ref_detail
 * @subpackage Structs
 */
class Ref_detail extends AbstractStructBase
{
    /**
     * The ConfigEasyPay
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \StructType\ConfigEasyPay
     */
    public $ConfigEasyPay;
    /**
     * The DataCriacao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $DataCriacao;
    /**
     * The DataIntegracaoCRM
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $DataIntegracaoCRM;
    /**
     * The IDDocGerado
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $IDDocGerado;
    /**
     * The Integrado
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $Integrado;
    /**
     * The IntegradoCRM
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $IntegradoCRM;
    /**
     * The ModuloGeradoNotaCredito
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ModuloGeradoNotaCredito;
    /**
     * The NomeUtilizadorCriacao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NomeUtilizadorCriacao;
    /**
     * The NotaCreditoCriada
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $NotaCreditoCriada;
    /**
     * The NumDocGeradoNotaCredito
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $NumDocGeradoNotaCredito;
    /**
     * The PagamentoJaProcessado
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $PagamentoJaProcessado;
    /**
     * The SemContactos
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $SemContactos;
    /**
     * The SerieGeradoNotaCredito
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SerieGeradoNotaCredito;
    /**
     * The TipoDocGeradoNotaCredito
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $TipoDocGeradoNotaCredito;
    /**
     * The TotalACompensarCredito
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $TotalACompensarCredito;
    /**
     * The TotalACompensarDebito
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $TotalACompensarDebito;
    /**
     * The TotalALiquidar
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $TotalALiquidar;
    /**
     * The TotalPendente
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $TotalPendente;
    /**
     * The UtilizadorCriacao
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UtilizadorCriacao;
    /**
     * The UtilizadorIntegracaoCRM
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UtilizadorIntegracaoCRM;
    /**
     * The ValorExcedenteACredito
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $ValorExcedenteACredito;
    /**
     * The ValorExcedenteADebito
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $ValorExcedenteADebito;
    /**
     * The ep_cin
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ep_cin;
    /**
     * The ep_date
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ep_date;
    /**
     * The ep_date_read
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ep_date_read;
    /**
     * The ep_date_transf
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ep_date_transf;
    /**
     * The ep_doc
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ep_doc;
    /**
     * The ep_doc_all
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ep_doc_all;
    /**
     * The ep_entity
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ep_entity;
    /**
     * The ep_key
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ep_key;
    /**
     * The ep_payment_date
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ep_payment_date;
    /**
     * The ep_payment_type
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ep_payment_type;
    /**
     * The ep_reference
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ep_reference;
    /**
     * The ep_status_read
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ep_status_read;
    /**
     * The ep_sum_value
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $ep_sum_value;
    /**
     * The ep_sum_value_fixed
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $ep_sum_value_fixed;
    /**
     * The ep_sum_value_tax
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $ep_sum_value_tax;
    /**
     * The ep_sum_value_transf
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $ep_sum_value_transf;
    /**
     * The ep_sum_value_var
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $ep_sum_value_var;
    /**
     * The ep_user
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ep_user;
    /**
     * The ep_value
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $ep_value;
    /**
     * The ep_value_fixed
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $ep_value_fixed;
    /**
     * The ep_value_tax
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $ep_value_tax;
    /**
     * The ep_value_transf
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $ep_value_transf;
    /**
     * The ep_value_var
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $ep_value_var;
    /**
     * The o_email
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $o_email;
    /**
     * The o_mobile
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $o_mobile;
    /**
     * The o_obs
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $o_obs;
    /**
     * The t_key
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $t_key;
    /**
     * Constructor method for ref_detail
     * @uses Ref_detail::setConfigEasyPay()
     * @uses Ref_detail::setDataCriacao()
     * @uses Ref_detail::setDataIntegracaoCRM()
     * @uses Ref_detail::setIDDocGerado()
     * @uses Ref_detail::setIntegrado()
     * @uses Ref_detail::setIntegradoCRM()
     * @uses Ref_detail::setModuloGeradoNotaCredito()
     * @uses Ref_detail::setNomeUtilizadorCriacao()
     * @uses Ref_detail::setNotaCreditoCriada()
     * @uses Ref_detail::setNumDocGeradoNotaCredito()
     * @uses Ref_detail::setPagamentoJaProcessado()
     * @uses Ref_detail::setSemContactos()
     * @uses Ref_detail::setSerieGeradoNotaCredito()
     * @uses Ref_detail::setTipoDocGeradoNotaCredito()
     * @uses Ref_detail::setTotalACompensarCredito()
     * @uses Ref_detail::setTotalACompensarDebito()
     * @uses Ref_detail::setTotalALiquidar()
     * @uses Ref_detail::setTotalPendente()
     * @uses Ref_detail::setUtilizadorCriacao()
     * @uses Ref_detail::setUtilizadorIntegracaoCRM()
     * @uses Ref_detail::setValorExcedenteACredito()
     * @uses Ref_detail::setValorExcedenteADebito()
     * @uses Ref_detail::setEp_cin()
     * @uses Ref_detail::setEp_date()
     * @uses Ref_detail::setEp_date_read()
     * @uses Ref_detail::setEp_date_transf()
     * @uses Ref_detail::setEp_doc()
     * @uses Ref_detail::setEp_doc_all()
     * @uses Ref_detail::setEp_entity()
     * @uses Ref_detail::setEp_key()
     * @uses Ref_detail::setEp_payment_date()
     * @uses Ref_detail::setEp_payment_type()
     * @uses Ref_detail::setEp_reference()
     * @uses Ref_detail::setEp_status_read()
     * @uses Ref_detail::setEp_sum_value()
     * @uses Ref_detail::setEp_sum_value_fixed()
     * @uses Ref_detail::setEp_sum_value_tax()
     * @uses Ref_detail::setEp_sum_value_transf()
     * @uses Ref_detail::setEp_sum_value_var()
     * @uses Ref_detail::setEp_user()
     * @uses Ref_detail::setEp_value()
     * @uses Ref_detail::setEp_value_fixed()
     * @uses Ref_detail::setEp_value_tax()
     * @uses Ref_detail::setEp_value_transf()
     * @uses Ref_detail::setEp_value_var()
     * @uses Ref_detail::setO_email()
     * @uses Ref_detail::setO_mobile()
     * @uses Ref_detail::setO_obs()
     * @uses Ref_detail::setT_key()
     * @param \StructType\ConfigEasyPay $configEasyPay
     * @param string $dataCriacao
     * @param string $dataIntegracaoCRM
     * @param string $iDDocGerado
     * @param bool $integrado
     * @param bool $integradoCRM
     * @param string $moduloGeradoNotaCredito
     * @param string $nomeUtilizadorCriacao
     * @param bool $notaCreditoCriada
     * @param int $numDocGeradoNotaCredito
     * @param bool $pagamentoJaProcessado
     * @param bool $semContactos
     * @param string $serieGeradoNotaCredito
     * @param string $tipoDocGeradoNotaCredito
     * @param float $totalACompensarCredito
     * @param float $totalACompensarDebito
     * @param float $totalALiquidar
     * @param float $totalPendente
     * @param string $utilizadorCriacao
     * @param string $utilizadorIntegracaoCRM
     * @param float $valorExcedenteACredito
     * @param float $valorExcedenteADebito
     * @param string $ep_cin
     * @param string $ep_date
     * @param string $ep_date_read
     * @param string $ep_date_transf
     * @param string $ep_doc
     * @param string $ep_doc_all
     * @param string $ep_entity
     * @param string $ep_key
     * @param string $ep_payment_date
     * @param string $ep_payment_type
     * @param string $ep_reference
     * @param string $ep_status_read
     * @param float $ep_sum_value
     * @param float $ep_sum_value_fixed
     * @param float $ep_sum_value_tax
     * @param float $ep_sum_value_transf
     * @param float $ep_sum_value_var
     * @param string $ep_user
     * @param float $ep_value
     * @param float $ep_value_fixed
     * @param float $ep_value_tax
     * @param float $ep_value_transf
     * @param float $ep_value_var
     * @param string $o_email
     * @param string $o_mobile
     * @param string $o_obs
     * @param string $t_key
     */
    public function __construct(\StructType\ConfigEasyPay $configEasyPay = null, $dataCriacao = null, $dataIntegracaoCRM = null, $iDDocGerado = null, $integrado = null, $integradoCRM = null, $moduloGeradoNotaCredito = null, $nomeUtilizadorCriacao = null, $notaCreditoCriada = null, $numDocGeradoNotaCredito = null, $pagamentoJaProcessado = null, $semContactos = null, $serieGeradoNotaCredito = null, $tipoDocGeradoNotaCredito = null, $totalACompensarCredito = null, $totalACompensarDebito = null, $totalALiquidar = null, $totalPendente = null, $utilizadorCriacao = null, $utilizadorIntegracaoCRM = null, $valorExcedenteACredito = null, $valorExcedenteADebito = null, $ep_cin = null, $ep_date = null, $ep_date_read = null, $ep_date_transf = null, $ep_doc = null, $ep_doc_all = null, $ep_entity = null, $ep_key = null, $ep_payment_date = null, $ep_payment_type = null, $ep_reference = null, $ep_status_read = null, $ep_sum_value = null, $ep_sum_value_fixed = null, $ep_sum_value_tax = null, $ep_sum_value_transf = null, $ep_sum_value_var = null, $ep_user = null, $ep_value = null, $ep_value_fixed = null, $ep_value_tax = null, $ep_value_transf = null, $ep_value_var = null, $o_email = null, $o_mobile = null, $o_obs = null, $t_key = null)
    {
        $this
            ->setConfigEasyPay($configEasyPay)
            ->setDataCriacao($dataCriacao)
            ->setDataIntegracaoCRM($dataIntegracaoCRM)
            ->setIDDocGerado($iDDocGerado)
            ->setIntegrado($integrado)
            ->setIntegradoCRM($integradoCRM)
            ->setModuloGeradoNotaCredito($moduloGeradoNotaCredito)
            ->setNomeUtilizadorCriacao($nomeUtilizadorCriacao)
            ->setNotaCreditoCriada($notaCreditoCriada)
            ->setNumDocGeradoNotaCredito($numDocGeradoNotaCredito)
            ->setPagamentoJaProcessado($pagamentoJaProcessado)
            ->setSemContactos($semContactos)
            ->setSerieGeradoNotaCredito($serieGeradoNotaCredito)
            ->setTipoDocGeradoNotaCredito($tipoDocGeradoNotaCredito)
            ->setTotalACompensarCredito($totalACompensarCredito)
            ->setTotalACompensarDebito($totalACompensarDebito)
            ->setTotalALiquidar($totalALiquidar)
            ->setTotalPendente($totalPendente)
            ->setUtilizadorCriacao($utilizadorCriacao)
            ->setUtilizadorIntegracaoCRM($utilizadorIntegracaoCRM)
            ->setValorExcedenteACredito($valorExcedenteACredito)
            ->setValorExcedenteADebito($valorExcedenteADebito)
            ->setEp_cin($ep_cin)
            ->setEp_date($ep_date)
            ->setEp_date_read($ep_date_read)
            ->setEp_date_transf($ep_date_transf)
            ->setEp_doc($ep_doc)
            ->setEp_doc_all($ep_doc_all)
            ->setEp_entity($ep_entity)
            ->setEp_key($ep_key)
            ->setEp_payment_date($ep_payment_date)
            ->setEp_payment_type($ep_payment_type)
            ->setEp_reference($ep_reference)
            ->setEp_status_read($ep_status_read)
            ->setEp_sum_value($ep_sum_value)
            ->setEp_sum_value_fixed($ep_sum_value_fixed)
            ->setEp_sum_value_tax($ep_sum_value_tax)
            ->setEp_sum_value_transf($ep_sum_value_transf)
            ->setEp_sum_value_var($ep_sum_value_var)
            ->setEp_user($ep_user)
            ->setEp_value($ep_value)
            ->setEp_value_fixed($ep_value_fixed)
            ->setEp_value_tax($ep_value_tax)
            ->setEp_value_transf($ep_value_transf)
            ->setEp_value_var($ep_value_var)
            ->setO_email($o_email)
            ->setO_mobile($o_mobile)
            ->setO_obs($o_obs)
            ->setT_key($t_key);
    }
    /**
     * Get ConfigEasyPay value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \StructType\ConfigEasyPay|null
     */
    public function getConfigEasyPay()
    {
        return isset($this->ConfigEasyPay) ? $this->ConfigEasyPay : null;
    }
    /**
     * Set ConfigEasyPay value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \StructType\ConfigEasyPay $configEasyPay
     * @return \StructType\Ref_detail
     */
    public function setConfigEasyPay(\StructType\ConfigEasyPay $configEasyPay = null)
    {
        if (is_null($configEasyPay) || (is_array($configEasyPay) && empty($configEasyPay))) {
            unset($this->ConfigEasyPay);
        } else {
            $this->ConfigEasyPay = $configEasyPay;
        }
        return $this;
    }
    /**
     * Get DataCriacao value
     * @return string|null
     */
    public function getDataCriacao()
    {
        return $this->DataCriacao;
    }
    /**
     * Set DataCriacao value
     * @param string $dataCriacao
     * @return \StructType\Ref_detail
     */
    public function setDataCriacao($dataCriacao = null)
    {
        // validation for constraint: string
        if (!is_null($dataCriacao) && !is_string($dataCriacao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataCriacao)), __LINE__);
        }
        $this->DataCriacao = $dataCriacao;
        return $this;
    }
    /**
     * Get DataIntegracaoCRM value
     * @return string|null
     */
    public function getDataIntegracaoCRM()
    {
        return $this->DataIntegracaoCRM;
    }
    /**
     * Set DataIntegracaoCRM value
     * @param string $dataIntegracaoCRM
     * @return \StructType\Ref_detail
     */
    public function setDataIntegracaoCRM($dataIntegracaoCRM = null)
    {
        // validation for constraint: string
        if (!is_null($dataIntegracaoCRM) && !is_string($dataIntegracaoCRM)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($dataIntegracaoCRM)), __LINE__);
        }
        $this->DataIntegracaoCRM = $dataIntegracaoCRM;
        return $this;
    }
    /**
     * Get IDDocGerado value
     * An additional test has been added (isset) before returning the property value as
     * 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 getIDDocGerado()
    {
        return isset($this->IDDocGerado) ? $this->IDDocGerado : null;
    }
    /**
     * Set IDDocGerado value
     * This property is 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 $iDDocGerado
     * @return \StructType\Ref_detail
     */
    public function setIDDocGerado($iDDocGerado = null)
    {
        // validation for constraint: string
        if (!is_null($iDDocGerado) && !is_string($iDDocGerado)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($iDDocGerado)), __LINE__);
        }
        if (is_null($iDDocGerado) || (is_array($iDDocGerado) && empty($iDDocGerado))) {
            unset($this->IDDocGerado);
        } else {
            $this->IDDocGerado = $iDDocGerado;
        }
        return $this;
    }
    /**
     * Get Integrado value
     * @return bool|null
     */
    public function getIntegrado()
    {
        return $this->Integrado;
    }
    /**
     * Set Integrado value
     * @param bool $integrado
     * @return \StructType\Ref_detail
     */
    public function setIntegrado($integrado = null)
    {
        // validation for constraint: boolean
        if (!is_null($integrado) && !is_bool($integrado)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($integrado)), __LINE__);
        }
        $this->Integrado = $integrado;
        return $this;
    }
    /**
     * Get IntegradoCRM value
     * @return bool|null
     */
    public function getIntegradoCRM()
    {
        return $this->IntegradoCRM;
    }
    /**
     * Set IntegradoCRM value
     * @param bool $integradoCRM
     * @return \StructType\Ref_detail
     */
    public function setIntegradoCRM($integradoCRM = null)
    {
        // validation for constraint: boolean
        if (!is_null($integradoCRM) && !is_bool($integradoCRM)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($integradoCRM)), __LINE__);
        }
        $this->IntegradoCRM = $integradoCRM;
        return $this;
    }
    /**
     * Get ModuloGeradoNotaCredito value
     * An additional test has been added (isset) before returning the property value as
     * 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 getModuloGeradoNotaCredito()
    {
        return isset($this->ModuloGeradoNotaCredito) ? $this->ModuloGeradoNotaCredito : null;
    }
    /**
     * Set ModuloGeradoNotaCredito value
     * This property is 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 $moduloGeradoNotaCredito
     * @return \StructType\Ref_detail
     */
    public function setModuloGeradoNotaCredito($moduloGeradoNotaCredito = null)
    {
        // validation for constraint: string
        if (!is_null($moduloGeradoNotaCredito) && !is_string($moduloGeradoNotaCredito)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($moduloGeradoNotaCredito)), __LINE__);
        }
        if (is_null($moduloGeradoNotaCredito) || (is_array($moduloGeradoNotaCredito) && empty($moduloGeradoNotaCredito))) {
            unset($this->ModuloGeradoNotaCredito);
        } else {
            $this->ModuloGeradoNotaCredito = $moduloGeradoNotaCredito;
        }
        return $this;
    }
    /**
     * Get NomeUtilizadorCriacao value
     * An additional test has been added (isset) before returning the property value as
     * 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 getNomeUtilizadorCriacao()
    {
        return isset($this->NomeUtilizadorCriacao) ? $this->NomeUtilizadorCriacao : null;
    }
    /**
     * Set NomeUtilizadorCriacao value
     * This property is 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 $nomeUtilizadorCriacao
     * @return \StructType\Ref_detail
     */
    public function setNomeUtilizadorCriacao($nomeUtilizadorCriacao = null)
    {
        // validation for constraint: string
        if (!is_null($nomeUtilizadorCriacao) && !is_string($nomeUtilizadorCriacao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($nomeUtilizadorCriacao)), __LINE__);
        }
        if (is_null($nomeUtilizadorCriacao) || (is_array($nomeUtilizadorCriacao) && empty($nomeUtilizadorCriacao))) {
            unset($this->NomeUtilizadorCriacao);
        } else {
            $this->NomeUtilizadorCriacao = $nomeUtilizadorCriacao;
        }
        return $this;
    }
    /**
     * Get NotaCreditoCriada value
     * @return bool|null
     */
    public function getNotaCreditoCriada()
    {
        return $this->NotaCreditoCriada;
    }
    /**
     * Set NotaCreditoCriada value
     * @param bool $notaCreditoCriada
     * @return \StructType\Ref_detail
     */
    public function setNotaCreditoCriada($notaCreditoCriada = null)
    {
        // validation for constraint: boolean
        if (!is_null($notaCreditoCriada) && !is_bool($notaCreditoCriada)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($notaCreditoCriada)), __LINE__);
        }
        $this->NotaCreditoCriada = $notaCreditoCriada;
        return $this;
    }
    /**
     * Get NumDocGeradoNotaCredito value
     * @return int|null
     */
    public function getNumDocGeradoNotaCredito()
    {
        return $this->NumDocGeradoNotaCredito;
    }
    /**
     * Set NumDocGeradoNotaCredito value
     * @param int $numDocGeradoNotaCredito
     * @return \StructType\Ref_detail
     */
    public function setNumDocGeradoNotaCredito($numDocGeradoNotaCredito = null)
    {
        // validation for constraint: int
        if (!is_null($numDocGeradoNotaCredito) && !is_numeric($numDocGeradoNotaCredito)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a numeric value, "%s" given', gettype($numDocGeradoNotaCredito)), __LINE__);
        }
        $this->NumDocGeradoNotaCredito = $numDocGeradoNotaCredito;
        return $this;
    }
    /**
     * Get PagamentoJaProcessado value
     * @return bool|null
     */
    public function getPagamentoJaProcessado()
    {
        return $this->PagamentoJaProcessado;
    }
    /**
     * Set PagamentoJaProcessado value
     * @param bool $pagamentoJaProcessado
     * @return \StructType\Ref_detail
     */
    public function setPagamentoJaProcessado($pagamentoJaProcessado = null)
    {
        // validation for constraint: boolean
        if (!is_null($pagamentoJaProcessado) && !is_bool($pagamentoJaProcessado)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($pagamentoJaProcessado)), __LINE__);
        }
        $this->PagamentoJaProcessado = $pagamentoJaProcessado;
        return $this;
    }
    /**
     * Get SemContactos value
     * @return bool|null
     */
    public function getSemContactos()
    {
        return $this->SemContactos;
    }
    /**
     * Set SemContactos value
     * @param bool $semContactos
     * @return \StructType\Ref_detail
     */
    public function setSemContactos($semContactos = null)
    {
        // validation for constraint: boolean
        if (!is_null($semContactos) && !is_bool($semContactos)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a bool, "%s" given', gettype($semContactos)), __LINE__);
        }
        $this->SemContactos = $semContactos;
        return $this;
    }
    /**
     * Get SerieGeradoNotaCredito value
     * An additional test has been added (isset) before returning the property value as
     * 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 getSerieGeradoNotaCredito()
    {
        return isset($this->SerieGeradoNotaCredito) ? $this->SerieGeradoNotaCredito : null;
    }
    /**
     * Set SerieGeradoNotaCredito value
     * This property is 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 $serieGeradoNotaCredito
     * @return \StructType\Ref_detail
     */
    public function setSerieGeradoNotaCredito($serieGeradoNotaCredito = null)
    {
        // validation for constraint: string
        if (!is_null($serieGeradoNotaCredito) && !is_string($serieGeradoNotaCredito)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($serieGeradoNotaCredito)), __LINE__);
        }
        if (is_null($serieGeradoNotaCredito) || (is_array($serieGeradoNotaCredito) && empty($serieGeradoNotaCredito))) {
            unset($this->SerieGeradoNotaCredito);
        } else {
            $this->SerieGeradoNotaCredito = $serieGeradoNotaCredito;
        }
        return $this;
    }
    /**
     * Get TipoDocGeradoNotaCredito value
     * An additional test has been added (isset) before returning the property value as
     * 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 getTipoDocGeradoNotaCredito()
    {
        return isset($this->TipoDocGeradoNotaCredito) ? $this->TipoDocGeradoNotaCredito : null;
    }
    /**
     * Set TipoDocGeradoNotaCredito value
     * This property is 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 $tipoDocGeradoNotaCredito
     * @return \StructType\Ref_detail
     */
    public function setTipoDocGeradoNotaCredito($tipoDocGeradoNotaCredito = null)
    {
        // validation for constraint: string
        if (!is_null($tipoDocGeradoNotaCredito) && !is_string($tipoDocGeradoNotaCredito)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($tipoDocGeradoNotaCredito)), __LINE__);
        }
        if (is_null($tipoDocGeradoNotaCredito) || (is_array($tipoDocGeradoNotaCredito) && empty($tipoDocGeradoNotaCredito))) {
            unset($this->TipoDocGeradoNotaCredito);
        } else {
            $this->TipoDocGeradoNotaCredito = $tipoDocGeradoNotaCredito;
        }
        return $this;
    }
    /**
     * Get TotalACompensarCredito value
     * @return float|null
     */
    public function getTotalACompensarCredito()
    {
        return $this->TotalACompensarCredito;
    }
    /**
     * Set TotalACompensarCredito value
     * @param float $totalACompensarCredito
     * @return \StructType\Ref_detail
     */
    public function setTotalACompensarCredito($totalACompensarCredito = null)
    {
        $this->TotalACompensarCredito = $totalACompensarCredito;
        return $this;
    }
    /**
     * Get TotalACompensarDebito value
     * @return float|null
     */
    public function getTotalACompensarDebito()
    {
        return $this->TotalACompensarDebito;
    }
    /**
     * Set TotalACompensarDebito value
     * @param float $totalACompensarDebito
     * @return \StructType\Ref_detail
     */
    public function setTotalACompensarDebito($totalACompensarDebito = null)
    {
        $this->TotalACompensarDebito = $totalACompensarDebito;
        return $this;
    }
    /**
     * Get TotalALiquidar value
     * @return float|null
     */
    public function getTotalALiquidar()
    {
        return $this->TotalALiquidar;
    }
    /**
     * Set TotalALiquidar value
     * @param float $totalALiquidar
     * @return \StructType\Ref_detail
     */
    public function setTotalALiquidar($totalALiquidar = null)
    {
        $this->TotalALiquidar = $totalALiquidar;
        return $this;
    }
    /**
     * Get TotalPendente value
     * @return float|null
     */
    public function getTotalPendente()
    {
        return $this->TotalPendente;
    }
    /**
     * Set TotalPendente value
     * @param float $totalPendente
     * @return \StructType\Ref_detail
     */
    public function setTotalPendente($totalPendente = null)
    {
        $this->TotalPendente = $totalPendente;
        return $this;
    }
    /**
     * Get UtilizadorCriacao value
     * An additional test has been added (isset) before returning the property value as
     * 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 getUtilizadorCriacao()
    {
        return isset($this->UtilizadorCriacao) ? $this->UtilizadorCriacao : null;
    }
    /**
     * Set UtilizadorCriacao value
     * This property is 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 $utilizadorCriacao
     * @return \StructType\Ref_detail
     */
    public function setUtilizadorCriacao($utilizadorCriacao = null)
    {
        // validation for constraint: string
        if (!is_null($utilizadorCriacao) && !is_string($utilizadorCriacao)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($utilizadorCriacao)), __LINE__);
        }
        if (is_null($utilizadorCriacao) || (is_array($utilizadorCriacao) && empty($utilizadorCriacao))) {
            unset($this->UtilizadorCriacao);
        } else {
            $this->UtilizadorCriacao = $utilizadorCriacao;
        }
        return $this;
    }
    /**
     * Get UtilizadorIntegracaoCRM value
     * An additional test has been added (isset) before returning the property value as
     * 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 getUtilizadorIntegracaoCRM()
    {
        return isset($this->UtilizadorIntegracaoCRM) ? $this->UtilizadorIntegracaoCRM : null;
    }
    /**
     * Set UtilizadorIntegracaoCRM value
     * This property is 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 $utilizadorIntegracaoCRM
     * @return \StructType\Ref_detail
     */
    public function setUtilizadorIntegracaoCRM($utilizadorIntegracaoCRM = null)
    {
        // validation for constraint: string
        if (!is_null($utilizadorIntegracaoCRM) && !is_string($utilizadorIntegracaoCRM)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($utilizadorIntegracaoCRM)), __LINE__);
        }
        if (is_null($utilizadorIntegracaoCRM) || (is_array($utilizadorIntegracaoCRM) && empty($utilizadorIntegracaoCRM))) {
            unset($this->UtilizadorIntegracaoCRM);
        } else {
            $this->UtilizadorIntegracaoCRM = $utilizadorIntegracaoCRM;
        }
        return $this;
    }
    /**
     * Get ValorExcedenteACredito value
     * @return float|null
     */
    public function getValorExcedenteACredito()
    {
        return $this->ValorExcedenteACredito;
    }
    /**
     * Set ValorExcedenteACredito value
     * @param float $valorExcedenteACredito
     * @return \StructType\Ref_detail
     */
    public function setValorExcedenteACredito($valorExcedenteACredito = null)
    {
        $this->ValorExcedenteACredito = $valorExcedenteACredito;
        return $this;
    }
    /**
     * Get ValorExcedenteADebito value
     * @return float|null
     */
    public function getValorExcedenteADebito()
    {
        return $this->ValorExcedenteADebito;
    }
    /**
     * Set ValorExcedenteADebito value
     * @param float $valorExcedenteADebito
     * @return \StructType\Ref_detail
     */
    public function setValorExcedenteADebito($valorExcedenteADebito = null)
    {
        $this->ValorExcedenteADebito = $valorExcedenteADebito;
        return $this;
    }
    /**
     * Get ep_cin value
     * An additional test has been added (isset) before returning the property value as
     * 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 getEp_cin()
    {
        return isset($this->ep_cin) ? $this->ep_cin : null;
    }
    /**
     * Set ep_cin value
     * This property is 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 $ep_cin
     * @return \StructType\Ref_detail
     */
    public function setEp_cin($ep_cin = null)
    {
        // validation for constraint: string
        if (!is_null($ep_cin) && !is_string($ep_cin)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ep_cin)), __LINE__);
        }
        if (is_null($ep_cin) || (is_array($ep_cin) && empty($ep_cin))) {
            unset($this->ep_cin);
        } else {
            $this->ep_cin = $ep_cin;
        }
        return $this;
    }
    /**
     * Get ep_date value
     * @return string|null
     */
    public function getEp_date()
    {
        return $this->ep_date;
    }
    /**
     * Set ep_date value
     * @param string $ep_date
     * @return \StructType\Ref_detail
     */
    public function setEp_date($ep_date = null)
    {
        // validation for constraint: string
        if (!is_null($ep_date) && !is_string($ep_date)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ep_date)), __LINE__);
        }
        $this->ep_date = $ep_date;
        return $this;
    }
    /**
     * Get ep_date_read value
     * @return string|null
     */
    public function getEp_date_read()
    {
        return $this->ep_date_read;
    }
    /**
     * Set ep_date_read value
     * @param string $ep_date_read
     * @return \StructType\Ref_detail
     */
    public function setEp_date_read($ep_date_read = null)
    {
        // validation for constraint: string
        if (!is_null($ep_date_read) && !is_string($ep_date_read)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ep_date_read)), __LINE__);
        }
        $this->ep_date_read = $ep_date_read;
        return $this;
    }
    /**
     * Get ep_date_transf value
     * @return string|null
     */
    public function getEp_date_transf()
    {
        return $this->ep_date_transf;
    }
    /**
     * Set ep_date_transf value
     * @param string $ep_date_transf
     * @return \StructType\Ref_detail
     */
    public function setEp_date_transf($ep_date_transf = null)
    {
        // validation for constraint: string
        if (!is_null($ep_date_transf) && !is_string($ep_date_transf)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ep_date_transf)), __LINE__);
        }
        $this->ep_date_transf = $ep_date_transf;
        return $this;
    }
    /**
     * Get ep_doc value
     * An additional test has been added (isset) before returning the property value as
     * 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 getEp_doc()
    {
        return isset($this->ep_doc) ? $this->ep_doc : null;
    }
    /**
     * Set ep_doc value
     * This property is 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 $ep_doc
     * @return \StructType\Ref_detail
     */
    public function setEp_doc($ep_doc = null)
    {
        // validation for constraint: string
        if (!is_null($ep_doc) && !is_string($ep_doc)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ep_doc)), __LINE__);
        }
        if (is_null($ep_doc) || (is_array($ep_doc) && empty($ep_doc))) {
            unset($this->ep_doc);
        } else {
            $this->ep_doc = $ep_doc;
        }
        return $this;
    }
    /**
     * Get ep_doc_all value
     * An additional test has been added (isset) before returning the property value as
     * 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 getEp_doc_all()
    {
        return isset($this->ep_doc_all) ? $this->ep_doc_all : null;
    }
    /**
     * Set ep_doc_all value
     * This property is 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 $ep_doc_all
     * @return \StructType\Ref_detail
     */
    public function setEp_doc_all($ep_doc_all = null)
    {
        // validation for constraint: string
        if (!is_null($ep_doc_all) && !is_string($ep_doc_all)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ep_doc_all)), __LINE__);
        }
        if (is_null($ep_doc_all) || (is_array($ep_doc_all) && empty($ep_doc_all))) {
            unset($this->ep_doc_all);
        } else {
            $this->ep_doc_all = $ep_doc_all;
        }
        return $this;
    }
    /**
     * Get ep_entity value
     * An additional test has been added (isset) before returning the property value as
     * 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 getEp_entity()
    {
        return isset($this->ep_entity) ? $this->ep_entity : null;
    }
    /**
     * Set ep_entity value
     * This property is 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 $ep_entity
     * @return \StructType\Ref_detail
     */
    public function setEp_entity($ep_entity = null)
    {
        // validation for constraint: string
        if (!is_null($ep_entity) && !is_string($ep_entity)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ep_entity)), __LINE__);
        }
        if (is_null($ep_entity) || (is_array($ep_entity) && empty($ep_entity))) {
            unset($this->ep_entity);
        } else {
            $this->ep_entity = $ep_entity;
        }
        return $this;
    }
    /**
     * Get ep_key value
     * An additional test has been added (isset) before returning the property value as
     * 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 getEp_key()
    {
        return isset($this->ep_key) ? $this->ep_key : null;
    }
    /**
     * Set ep_key value
     * This property is 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 $ep_key
     * @return \StructType\Ref_detail
     */
    public function setEp_key($ep_key = null)
    {
        // validation for constraint: string
        if (!is_null($ep_key) && !is_string($ep_key)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ep_key)), __LINE__);
        }
        if (is_null($ep_key) || (is_array($ep_key) && empty($ep_key))) {
            unset($this->ep_key);
        } else {
            $this->ep_key = $ep_key;
        }
        return $this;
    }
    /**
     * Get ep_payment_date value
     * @return string|null
     */
    public function getEp_payment_date()
    {
        return $this->ep_payment_date;
    }
    /**
     * Set ep_payment_date value
     * @param string $ep_payment_date
     * @return \StructType\Ref_detail
     */
    public function setEp_payment_date($ep_payment_date = null)
    {
        // validation for constraint: string
        if (!is_null($ep_payment_date) && !is_string($ep_payment_date)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ep_payment_date)), __LINE__);
        }
        $this->ep_payment_date = $ep_payment_date;
        return $this;
    }
    /**
     * Get ep_payment_type value
     * An additional test has been added (isset) before returning the property value as
     * 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 getEp_payment_type()
    {
        return isset($this->ep_payment_type) ? $this->ep_payment_type : null;
    }
    /**
     * Set ep_payment_type value
     * This property is 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 $ep_payment_type
     * @return \StructType\Ref_detail
     */
    public function setEp_payment_type($ep_payment_type = null)
    {
        // validation for constraint: string
        if (!is_null($ep_payment_type) && !is_string($ep_payment_type)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ep_payment_type)), __LINE__);
        }
        if (is_null($ep_payment_type) || (is_array($ep_payment_type) && empty($ep_payment_type))) {
            unset($this->ep_payment_type);
        } else {
            $this->ep_payment_type = $ep_payment_type;
        }
        return $this;
    }
    /**
     * Get ep_reference value
     * An additional test has been added (isset) before returning the property value as
     * 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 getEp_reference()
    {
        return isset($this->ep_reference) ? $this->ep_reference : null;
    }
    /**
     * Set ep_reference value
     * This property is 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 $ep_reference
     * @return \StructType\Ref_detail
     */
    public function setEp_reference($ep_reference = null)
    {
        // validation for constraint: string
        if (!is_null($ep_reference) && !is_string($ep_reference)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ep_reference)), __LINE__);
        }
        if (is_null($ep_reference) || (is_array($ep_reference) && empty($ep_reference))) {
            unset($this->ep_reference);
        } else {
            $this->ep_reference = $ep_reference;
        }
        return $this;
    }
    /**
     * Get ep_status_read value
     * An additional test has been added (isset) before returning the property value as
     * 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 getEp_status_read()
    {
        return isset($this->ep_status_read) ? $this->ep_status_read : null;
    }
    /**
     * Set ep_status_read value
     * This property is 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 $ep_status_read
     * @return \StructType\Ref_detail
     */
    public function setEp_status_read($ep_status_read = null)
    {
        // validation for constraint: string
        if (!is_null($ep_status_read) && !is_string($ep_status_read)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ep_status_read)), __LINE__);
        }
        if (is_null($ep_status_read) || (is_array($ep_status_read) && empty($ep_status_read))) {
            unset($this->ep_status_read);
        } else {
            $this->ep_status_read = $ep_status_read;
        }
        return $this;
    }
    /**
     * Get ep_sum_value value
     * @return float|null
     */
    public function getEp_sum_value()
    {
        return $this->ep_sum_value;
    }
    /**
     * Set ep_sum_value value
     * @param float $ep_sum_value
     * @return \StructType\Ref_detail
     */
    public function setEp_sum_value($ep_sum_value = null)
    {
        $this->ep_sum_value = $ep_sum_value;
        return $this;
    }
    /**
     * Get ep_sum_value_fixed value
     * @return float|null
     */
    public function getEp_sum_value_fixed()
    {
        return $this->ep_sum_value_fixed;
    }
    /**
     * Set ep_sum_value_fixed value
     * @param float $ep_sum_value_fixed
     * @return \StructType\Ref_detail
     */
    public function setEp_sum_value_fixed($ep_sum_value_fixed = null)
    {
        $this->ep_sum_value_fixed = $ep_sum_value_fixed;
        return $this;
    }
    /**
     * Get ep_sum_value_tax value
     * @return float|null
     */
    public function getEp_sum_value_tax()
    {
        return $this->ep_sum_value_tax;
    }
    /**
     * Set ep_sum_value_tax value
     * @param float $ep_sum_value_tax
     * @return \StructType\Ref_detail
     */
    public function setEp_sum_value_tax($ep_sum_value_tax = null)
    {
        $this->ep_sum_value_tax = $ep_sum_value_tax;
        return $this;
    }
    /**
     * Get ep_sum_value_transf value
     * @return float|null
     */
    public function getEp_sum_value_transf()
    {
        return $this->ep_sum_value_transf;
    }
    /**
     * Set ep_sum_value_transf value
     * @param float $ep_sum_value_transf
     * @return \StructType\Ref_detail
     */
    public function setEp_sum_value_transf($ep_sum_value_transf = null)
    {
        $this->ep_sum_value_transf = $ep_sum_value_transf;
        return $this;
    }
    /**
     * Get ep_sum_value_var value
     * @return float|null
     */
    public function getEp_sum_value_var()
    {
        return $this->ep_sum_value_var;
    }
    /**
     * Set ep_sum_value_var value
     * @param float $ep_sum_value_var
     * @return \StructType\Ref_detail
     */
    public function setEp_sum_value_var($ep_sum_value_var = null)
    {
        $this->ep_sum_value_var = $ep_sum_value_var;
        return $this;
    }
    /**
     * Get ep_user value
     * An additional test has been added (isset) before returning the property value as
     * 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 getEp_user()
    {
        return isset($this->ep_user) ? $this->ep_user : null;
    }
    /**
     * Set ep_user value
     * This property is 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 $ep_user
     * @return \StructType\Ref_detail
     */
    public function setEp_user($ep_user = null)
    {
        // validation for constraint: string
        if (!is_null($ep_user) && !is_string($ep_user)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($ep_user)), __LINE__);
        }
        if (is_null($ep_user) || (is_array($ep_user) && empty($ep_user))) {
            unset($this->ep_user);
        } else {
            $this->ep_user = $ep_user;
        }
        return $this;
    }
    /**
     * Get ep_value value
     * @return float|null
     */
    public function getEp_value()
    {
        return $this->ep_value;
    }
    /**
     * Set ep_value value
     * @param float $ep_value
     * @return \StructType\Ref_detail
     */
    public function setEp_value($ep_value = null)
    {
        $this->ep_value = $ep_value;
        return $this;
    }
    /**
     * Get ep_value_fixed value
     * @return float|null
     */
    public function getEp_value_fixed()
    {
        return $this->ep_value_fixed;
    }
    /**
     * Set ep_value_fixed value
     * @param float $ep_value_fixed
     * @return \StructType\Ref_detail
     */
    public function setEp_value_fixed($ep_value_fixed = null)
    {
        $this->ep_value_fixed = $ep_value_fixed;
        return $this;
    }
    /**
     * Get ep_value_tax value
     * @return float|null
     */
    public function getEp_value_tax()
    {
        return $this->ep_value_tax;
    }
    /**
     * Set ep_value_tax value
     * @param float $ep_value_tax
     * @return \StructType\Ref_detail
     */
    public function setEp_value_tax($ep_value_tax = null)
    {
        $this->ep_value_tax = $ep_value_tax;
        return $this;
    }
    /**
     * Get ep_value_transf value
     * @return float|null
     */
    public function getEp_value_transf()
    {
        return $this->ep_value_transf;
    }
    /**
     * Set ep_value_transf value
     * @param float $ep_value_transf
     * @return \StructType\Ref_detail
     */
    public function setEp_value_transf($ep_value_transf = null)
    {
        $this->ep_value_transf = $ep_value_transf;
        return $this;
    }
    /**
     * Get ep_value_var value
     * @return float|null
     */
    public function getEp_value_var()
    {
        return $this->ep_value_var;
    }
    /**
     * Set ep_value_var value
     * @param float $ep_value_var
     * @return \StructType\Ref_detail
     */
    public function setEp_value_var($ep_value_var = null)
    {
        $this->ep_value_var = $ep_value_var;
        return $this;
    }
    /**
     * Get o_email value
     * An additional test has been added (isset) before returning the property value as
     * 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 getO_email()
    {
        return isset($this->o_email) ? $this->o_email : null;
    }
    /**
     * Set o_email value
     * This property is 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 $o_email
     * @return \StructType\Ref_detail
     */
    public function setO_email($o_email = null)
    {
        // validation for constraint: string
        if (!is_null($o_email) && !is_string($o_email)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($o_email)), __LINE__);
        }
        if (is_null($o_email) || (is_array($o_email) && empty($o_email))) {
            unset($this->o_email);
        } else {
            $this->o_email = $o_email;
        }
        return $this;
    }
    /**
     * Get o_mobile value
     * An additional test has been added (isset) before returning the property value as
     * 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 getO_mobile()
    {
        return isset($this->o_mobile) ? $this->o_mobile : null;
    }
    /**
     * Set o_mobile value
     * This property is 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 $o_mobile
     * @return \StructType\Ref_detail
     */
    public function setO_mobile($o_mobile = null)
    {
        // validation for constraint: string
        if (!is_null($o_mobile) && !is_string($o_mobile)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($o_mobile)), __LINE__);
        }
        if (is_null($o_mobile) || (is_array($o_mobile) && empty($o_mobile))) {
            unset($this->o_mobile);
        } else {
            $this->o_mobile = $o_mobile;
        }
        return $this;
    }
    /**
     * Get o_obs value
     * An additional test has been added (isset) before returning the property value as
     * 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 getO_obs()
    {
        return isset($this->o_obs) ? $this->o_obs : null;
    }
    /**
     * Set o_obs value
     * This property is 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 $o_obs
     * @return \StructType\Ref_detail
     */
    public function setO_obs($o_obs = null)
    {
        // validation for constraint: string
        if (!is_null($o_obs) && !is_string($o_obs)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($o_obs)), __LINE__);
        }
        if (is_null($o_obs) || (is_array($o_obs) && empty($o_obs))) {
            unset($this->o_obs);
        } else {
            $this->o_obs = $o_obs;
        }
        return $this;
    }
    /**
     * Get t_key value
     * An additional test has been added (isset) before returning the property value as
     * 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 getT_key()
    {
        return isset($this->t_key) ? $this->t_key : null;
    }
    /**
     * Set t_key value
     * This property is 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 $t_key
     * @return \StructType\Ref_detail
     */
    public function setT_key($t_key = null)
    {
        // validation for constraint: string
        if (!is_null($t_key) && !is_string($t_key)) {
            throw new \InvalidArgumentException(sprintf('Invalid value, please provide a string, "%s" given', gettype($t_key)), __LINE__);
        }
        if (is_null($t_key) || (is_array($t_key) && empty($t_key))) {
            unset($this->t_key);
        } else {
            $this->t_key = $t_key;
        }
        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\Ref_detail
     */
    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__;
    }
}
