<?php
use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for MontantTotalSouscriptionData StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:MontantTotalSouscriptionData
 * @subpackage Structs
 */
class MontantTotalSouscriptionData extends AbstractStructBase
{
    /**
     * The FraisDossierCompagnie
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $FraisDossierCompagnie;
    /**
     * The FraisDossierIntermediaire
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $FraisDossierIntermediaire;
    /**
     * The MontantFraisDossierTTC
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $MontantFraisDossierTTC;
    /**
     * The MontantPremierePrimeTTC
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $MontantPremierePrimeTTC;
    /**
     * The MontantTotalTTC
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $MontantTotalTTC;
    /**
     * The TaxeFraisDossier
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $TaxeFraisDossier;
    /**
     * Constructor method for MontantTotalSouscriptionData
     * @uses MontantTotalSouscriptionData::setFraisDossierCompagnie()
     * @uses MontantTotalSouscriptionData::setFraisDossierIntermediaire()
     * @uses MontantTotalSouscriptionData::setMontantFraisDossierTTC()
     * @uses MontantTotalSouscriptionData::setMontantPremierePrimeTTC()
     * @uses MontantTotalSouscriptionData::setMontantTotalTTC()
     * @uses MontantTotalSouscriptionData::setTaxeFraisDossier()
     * @param float $fraisDossierCompagnie
     * @param float $fraisDossierIntermediaire
     * @param float $montantFraisDossierTTC
     * @param float $montantPremierePrimeTTC
     * @param float $montantTotalTTC
     * @param float $taxeFraisDossier
     */
    public function __construct($fraisDossierCompagnie = null, $fraisDossierIntermediaire = null, $montantFraisDossierTTC = null, $montantPremierePrimeTTC = null, $montantTotalTTC = null, $taxeFraisDossier = null)
    {
        $this
            ->setFraisDossierCompagnie($fraisDossierCompagnie)
            ->setFraisDossierIntermediaire($fraisDossierIntermediaire)
            ->setMontantFraisDossierTTC($montantFraisDossierTTC)
            ->setMontantPremierePrimeTTC($montantPremierePrimeTTC)
            ->setMontantTotalTTC($montantTotalTTC)
            ->setTaxeFraisDossier($taxeFraisDossier);
    }
    /**
     * Get FraisDossierCompagnie value
     * @return float|null
     */
    public function getFraisDossierCompagnie()
    {
        return $this->FraisDossierCompagnie;
    }
    /**
     * Set FraisDossierCompagnie value
     * @param float $fraisDossierCompagnie
     * @return MontantTotalSouscriptionData
     */
    public function setFraisDossierCompagnie($fraisDossierCompagnie = null)
    {
        // validation for constraint: float
        if (!is_null($fraisDossierCompagnie) && !(is_float($fraisDossierCompagnie) || is_numeric($fraisDossierCompagnie))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($fraisDossierCompagnie, true), gettype($fraisDossierCompagnie)), __LINE__);
        }
        $this->FraisDossierCompagnie = $fraisDossierCompagnie;
        return $this;
    }
    /**
     * Get FraisDossierIntermediaire value
     * @return float|null
     */
    public function getFraisDossierIntermediaire()
    {
        return $this->FraisDossierIntermediaire;
    }
    /**
     * Set FraisDossierIntermediaire value
     * @param float $fraisDossierIntermediaire
     * @return MontantTotalSouscriptionData
     */
    public function setFraisDossierIntermediaire($fraisDossierIntermediaire = null)
    {
        // validation for constraint: float
        if (!is_null($fraisDossierIntermediaire) && !(is_float($fraisDossierIntermediaire) || is_numeric($fraisDossierIntermediaire))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($fraisDossierIntermediaire, true), gettype($fraisDossierIntermediaire)), __LINE__);
        }
        $this->FraisDossierIntermediaire = $fraisDossierIntermediaire;
        return $this;
    }
    /**
     * Get MontantFraisDossierTTC value
     * @return float|null
     */
    public function getMontantFraisDossierTTC()
    {
        return $this->MontantFraisDossierTTC;
    }
    /**
     * Set MontantFraisDossierTTC value
     * @param float $montantFraisDossierTTC
     * @return MontantTotalSouscriptionData
     */
    public function setMontantFraisDossierTTC($montantFraisDossierTTC = null)
    {
        // validation for constraint: float
        if (!is_null($montantFraisDossierTTC) && !(is_float($montantFraisDossierTTC) || is_numeric($montantFraisDossierTTC))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($montantFraisDossierTTC, true), gettype($montantFraisDossierTTC)), __LINE__);
        }
        $this->MontantFraisDossierTTC = $montantFraisDossierTTC;
        return $this;
    }
    /**
     * Get MontantPremierePrimeTTC value
     * @return float|null
     */
    public function getMontantPremierePrimeTTC()
    {
        return $this->MontantPremierePrimeTTC;
    }
    /**
     * Set MontantPremierePrimeTTC value
     * @param float $montantPremierePrimeTTC
     * @return MontantTotalSouscriptionData
     */
    public function setMontantPremierePrimeTTC($montantPremierePrimeTTC = null)
    {
        // validation for constraint: float
        if (!is_null($montantPremierePrimeTTC) && !(is_float($montantPremierePrimeTTC) || is_numeric($montantPremierePrimeTTC))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($montantPremierePrimeTTC, true), gettype($montantPremierePrimeTTC)), __LINE__);
        }
        $this->MontantPremierePrimeTTC = $montantPremierePrimeTTC;
        return $this;
    }
    /**
     * Get MontantTotalTTC value
     * @return float|null
     */
    public function getMontantTotalTTC()
    {
        return $this->MontantTotalTTC;
    }
    /**
     * Set MontantTotalTTC value
     * @param float $montantTotalTTC
     * @return MontantTotalSouscriptionData
     */
    public function setMontantTotalTTC($montantTotalTTC = null)
    {
        // validation for constraint: float
        if (!is_null($montantTotalTTC) && !(is_float($montantTotalTTC) || is_numeric($montantTotalTTC))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($montantTotalTTC, true), gettype($montantTotalTTC)), __LINE__);
        }
        $this->MontantTotalTTC = $montantTotalTTC;
        return $this;
    }
    /**
     * Get TaxeFraisDossier value
     * @return float|null
     */
    public function getTaxeFraisDossier()
    {
        return $this->TaxeFraisDossier;
    }
    /**
     * Set TaxeFraisDossier value
     * @param float $taxeFraisDossier
     * @return MontantTotalSouscriptionData
     */
    public function setTaxeFraisDossier($taxeFraisDossier = null)
    {
        // validation for constraint: float
        if (!is_null($taxeFraisDossier) && !(is_float($taxeFraisDossier) || is_numeric($taxeFraisDossier))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($taxeFraisDossier, true), gettype($taxeFraisDossier)), __LINE__);
        }
        $this->TaxeFraisDossier = $taxeFraisDossier;
        return $this;
    }
}
