<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for SalaryPreCalculationItem StructType
 * @subpackage Structs
 */
class SalaryPreCalculationItem extends AbstractStructBase
{
    /**
     * The Date
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var string
     */
    public $Date;
    /**
     * The BonusSW1
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $BonusSW1;
    /**
     * The BonusSW2
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $BonusSW2;
    /**
     * The BonusSW3
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $BonusSW3;
    /**
     * The BonusSW4
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $BonusSW4;
    /**
     * The BonusSW5
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $BonusSW5;
    /**
     * The BonusSW1Coeff
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $BonusSW1Coeff;
    /**
     * The BonusSW2Coeff
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $BonusSW2Coeff;
    /**
     * The BonusSW3Coeff
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $BonusSW3Coeff;
    /**
     * The BonusSW4Coeff
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $BonusSW4Coeff;
    /**
     * The BonusSW5Coeff
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $BonusSW5Coeff;
    /**
     * The BonusSurplusOfWork
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var float
     */
    public $BonusSurplusOfWork;
    /**
     * The Bonus
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Bonus;
    /**
     * The Break25
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Break25;
    /**
     * The Break50
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Break50;
    /**
     * The Break100
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Break100;
    /**
     * The CRTaken
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var float
     */
    public $CRTaken;
    /**
     * The CREarned
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var float
     */
    public $CREarned;
    /**
     * The DailyRest
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $DailyRest;
    /**
     * The Amplitude
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Amplitude;
    /**
     * The Effective
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Effective;
    /**
     * The Remunerated
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Remunerated;
    /**
     * The Night
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var float
     */
    public $Night;
    /**
     * The Night1
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Night1;
    /**
     * The Night2
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Night2;
    /**
     * The Night3
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Night3;
    /**
     * The NightCoeff
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $NightCoeff;
    /**
     * The Night1Coeff
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Night1Coeff;
    /**
     * The Night2Coeff
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Night2Coeff;
    /**
     * The Night3Coeff
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Night3Coeff;
    /**
     * The OH1
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var float
     */
    public $OH1;
    /**
     * The OH2
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var float
     */
    public $OH2;
    /**
     * The OH3
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var float
     */
    public $OH3;
    /**
     * The OH4
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var float
     */
    public $OH4;
    /**
     * The OH1Coeff
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var float
     */
    public $OH1Coeff;
    /**
     * The OH2Coeff
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var float
     */
    public $OH2Coeff;
    /**
     * The OH3Coeff
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var float
     */
    public $OH3Coeff;
    /**
     * The OH4Coeff
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var float
     */
    public $OH4Coeff;
    /**
     * The Forecast
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var float
     */
    public $Forecast;
    /**
     * The Driving
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Driving;
    /**
     * The Service
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Service;
    /**
     * The Working
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Working;
    /**
     * The Availability
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Availability;
    /**
     * The AvailabilityCoDriver
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $AvailabilityCoDriver;
    /**
     * The Departure
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var string
     */
    public $Departure;
    /**
     * The Arrival
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var string
     */
    public $Arrival;
    /**
     * The Week
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var int
     */
    public $Week;
    /**
     * The Holiday
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var bool
     */
    public $Holiday;
    /**
     * The SundayOrPublicHoliday
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $SundayOrPublicHoliday;
    /**
     * The Kms
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $Kms;
    /**
     * The Driver
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \StructType\IdentifierPerson_V2
     */
    public $Driver;
    /**
     * The Source
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $Source;
    /**
     * The DayType
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $DayType;
    /**
     * Constructor method for SalaryPreCalculationItem
     * @uses SalaryPreCalculationItem::setDate()
     * @uses SalaryPreCalculationItem::setBonusSW1()
     * @uses SalaryPreCalculationItem::setBonusSW2()
     * @uses SalaryPreCalculationItem::setBonusSW3()
     * @uses SalaryPreCalculationItem::setBonusSW4()
     * @uses SalaryPreCalculationItem::setBonusSW5()
     * @uses SalaryPreCalculationItem::setBonusSW1Coeff()
     * @uses SalaryPreCalculationItem::setBonusSW2Coeff()
     * @uses SalaryPreCalculationItem::setBonusSW3Coeff()
     * @uses SalaryPreCalculationItem::setBonusSW4Coeff()
     * @uses SalaryPreCalculationItem::setBonusSW5Coeff()
     * @uses SalaryPreCalculationItem::setBonusSurplusOfWork()
     * @uses SalaryPreCalculationItem::setBonus()
     * @uses SalaryPreCalculationItem::setBreak25()
     * @uses SalaryPreCalculationItem::setBreak50()
     * @uses SalaryPreCalculationItem::setBreak100()
     * @uses SalaryPreCalculationItem::setCRTaken()
     * @uses SalaryPreCalculationItem::setCREarned()
     * @uses SalaryPreCalculationItem::setDailyRest()
     * @uses SalaryPreCalculationItem::setAmplitude()
     * @uses SalaryPreCalculationItem::setEffective()
     * @uses SalaryPreCalculationItem::setRemunerated()
     * @uses SalaryPreCalculationItem::setNight()
     * @uses SalaryPreCalculationItem::setNight1()
     * @uses SalaryPreCalculationItem::setNight2()
     * @uses SalaryPreCalculationItem::setNight3()
     * @uses SalaryPreCalculationItem::setNightCoeff()
     * @uses SalaryPreCalculationItem::setNight1Coeff()
     * @uses SalaryPreCalculationItem::setNight2Coeff()
     * @uses SalaryPreCalculationItem::setNight3Coeff()
     * @uses SalaryPreCalculationItem::setOH1()
     * @uses SalaryPreCalculationItem::setOH2()
     * @uses SalaryPreCalculationItem::setOH3()
     * @uses SalaryPreCalculationItem::setOH4()
     * @uses SalaryPreCalculationItem::setOH1Coeff()
     * @uses SalaryPreCalculationItem::setOH2Coeff()
     * @uses SalaryPreCalculationItem::setOH3Coeff()
     * @uses SalaryPreCalculationItem::setOH4Coeff()
     * @uses SalaryPreCalculationItem::setForecast()
     * @uses SalaryPreCalculationItem::setDriving()
     * @uses SalaryPreCalculationItem::setService()
     * @uses SalaryPreCalculationItem::setWorking()
     * @uses SalaryPreCalculationItem::setAvailability()
     * @uses SalaryPreCalculationItem::setAvailabilityCoDriver()
     * @uses SalaryPreCalculationItem::setDeparture()
     * @uses SalaryPreCalculationItem::setArrival()
     * @uses SalaryPreCalculationItem::setWeek()
     * @uses SalaryPreCalculationItem::setHoliday()
     * @uses SalaryPreCalculationItem::setSundayOrPublicHoliday()
     * @uses SalaryPreCalculationItem::setKms()
     * @uses SalaryPreCalculationItem::setDriver()
     * @uses SalaryPreCalculationItem::setSource()
     * @uses SalaryPreCalculationItem::setDayType()
     * @param string $date
     * @param float $bonusSW1
     * @param float $bonusSW2
     * @param float $bonusSW3
     * @param float $bonusSW4
     * @param float $bonusSW5
     * @param float $bonusSW1Coeff
     * @param float $bonusSW2Coeff
     * @param float $bonusSW3Coeff
     * @param float $bonusSW4Coeff
     * @param float $bonusSW5Coeff
     * @param float $bonusSurplusOfWork
     * @param float $bonus
     * @param float $break25
     * @param float $break50
     * @param float $break100
     * @param float $cRTaken
     * @param float $cREarned
     * @param float $dailyRest
     * @param float $amplitude
     * @param float $effective
     * @param float $remunerated
     * @param float $night
     * @param float $night1
     * @param float $night2
     * @param float $night3
     * @param float $nightCoeff
     * @param float $night1Coeff
     * @param float $night2Coeff
     * @param float $night3Coeff
     * @param float $oH1
     * @param float $oH2
     * @param float $oH3
     * @param float $oH4
     * @param float $oH1Coeff
     * @param float $oH2Coeff
     * @param float $oH3Coeff
     * @param float $oH4Coeff
     * @param float $forecast
     * @param float $driving
     * @param float $service
     * @param float $working
     * @param float $availability
     * @param float $availabilityCoDriver
     * @param string $departure
     * @param string $arrival
     * @param int $week
     * @param bool $holiday
     * @param float $sundayOrPublicHoliday
     * @param float $kms
     * @param \StructType\IdentifierPerson_V2 $driver
     * @param string $source
     * @param string $dayType
     */
    public function __construct($date = null, $bonusSW1 = null, $bonusSW2 = null, $bonusSW3 = null, $bonusSW4 = null, $bonusSW5 = null, $bonusSW1Coeff = null, $bonusSW2Coeff = null, $bonusSW3Coeff = null, $bonusSW4Coeff = null, $bonusSW5Coeff = null, $bonusSurplusOfWork = null, $bonus = null, $break25 = null, $break50 = null, $break100 = null, $cRTaken = null, $cREarned = null, $dailyRest = null, $amplitude = null, $effective = null, $remunerated = null, $night = null, $night1 = null, $night2 = null, $night3 = null, $nightCoeff = null, $night1Coeff = null, $night2Coeff = null, $night3Coeff = null, $oH1 = null, $oH2 = null, $oH3 = null, $oH4 = null, $oH1Coeff = null, $oH2Coeff = null, $oH3Coeff = null, $oH4Coeff = null, $forecast = null, $driving = null, $service = null, $working = null, $availability = null, $availabilityCoDriver = null, $departure = null, $arrival = null, $week = null, $holiday = null, $sundayOrPublicHoliday = null, $kms = null, \StructType\IdentifierPerson_V2 $driver = null, $source = null, $dayType = null)
    {
        $this
            ->setDate($date)
            ->setBonusSW1($bonusSW1)
            ->setBonusSW2($bonusSW2)
            ->setBonusSW3($bonusSW3)
            ->setBonusSW4($bonusSW4)
            ->setBonusSW5($bonusSW5)
            ->setBonusSW1Coeff($bonusSW1Coeff)
            ->setBonusSW2Coeff($bonusSW2Coeff)
            ->setBonusSW3Coeff($bonusSW3Coeff)
            ->setBonusSW4Coeff($bonusSW4Coeff)
            ->setBonusSW5Coeff($bonusSW5Coeff)
            ->setBonusSurplusOfWork($bonusSurplusOfWork)
            ->setBonus($bonus)
            ->setBreak25($break25)
            ->setBreak50($break50)
            ->setBreak100($break100)
            ->setCRTaken($cRTaken)
            ->setCREarned($cREarned)
            ->setDailyRest($dailyRest)
            ->setAmplitude($amplitude)
            ->setEffective($effective)
            ->setRemunerated($remunerated)
            ->setNight($night)
            ->setNight1($night1)
            ->setNight2($night2)
            ->setNight3($night3)
            ->setNightCoeff($nightCoeff)
            ->setNight1Coeff($night1Coeff)
            ->setNight2Coeff($night2Coeff)
            ->setNight3Coeff($night3Coeff)
            ->setOH1($oH1)
            ->setOH2($oH2)
            ->setOH3($oH3)
            ->setOH4($oH4)
            ->setOH1Coeff($oH1Coeff)
            ->setOH2Coeff($oH2Coeff)
            ->setOH3Coeff($oH3Coeff)
            ->setOH4Coeff($oH4Coeff)
            ->setForecast($forecast)
            ->setDriving($driving)
            ->setService($service)
            ->setWorking($working)
            ->setAvailability($availability)
            ->setAvailabilityCoDriver($availabilityCoDriver)
            ->setDeparture($departure)
            ->setArrival($arrival)
            ->setWeek($week)
            ->setHoliday($holiday)
            ->setSundayOrPublicHoliday($sundayOrPublicHoliday)
            ->setKms($kms)
            ->setDriver($driver)
            ->setSource($source)
            ->setDayType($dayType);
    }
    /**
     * Get Date value
     * @return string
     */
    public function getDate()
    {
        return $this->Date;
    }
    /**
     * Set Date value
     * @param string $date
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setDate($date = null)
    {
        // validation for constraint: string
        if (!is_null($date) && !is_string($date)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($date, true), gettype($date)), __LINE__);
        }
        $this->Date = $date;
        return $this;
    }
    /**
     * Get BonusSW1 value
     * @return float
     */
    public function getBonusSW1()
    {
        return $this->BonusSW1;
    }
    /**
     * Set BonusSW1 value
     * @param float $bonusSW1
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setBonusSW1($bonusSW1 = null)
    {
        // validation for constraint: float
        if (!is_null($bonusSW1) && !(is_float($bonusSW1) || is_numeric($bonusSW1))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($bonusSW1, true), gettype($bonusSW1)), __LINE__);
        }
        $this->BonusSW1 = $bonusSW1;
        return $this;
    }
    /**
     * Get BonusSW2 value
     * @return float
     */
    public function getBonusSW2()
    {
        return $this->BonusSW2;
    }
    /**
     * Set BonusSW2 value
     * @param float $bonusSW2
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setBonusSW2($bonusSW2 = null)
    {
        // validation for constraint: float
        if (!is_null($bonusSW2) && !(is_float($bonusSW2) || is_numeric($bonusSW2))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($bonusSW2, true), gettype($bonusSW2)), __LINE__);
        }
        $this->BonusSW2 = $bonusSW2;
        return $this;
    }
    /**
     * Get BonusSW3 value
     * @return float
     */
    public function getBonusSW3()
    {
        return $this->BonusSW3;
    }
    /**
     * Set BonusSW3 value
     * @param float $bonusSW3
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setBonusSW3($bonusSW3 = null)
    {
        // validation for constraint: float
        if (!is_null($bonusSW3) && !(is_float($bonusSW3) || is_numeric($bonusSW3))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($bonusSW3, true), gettype($bonusSW3)), __LINE__);
        }
        $this->BonusSW3 = $bonusSW3;
        return $this;
    }
    /**
     * Get BonusSW4 value
     * @return float
     */
    public function getBonusSW4()
    {
        return $this->BonusSW4;
    }
    /**
     * Set BonusSW4 value
     * @param float $bonusSW4
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setBonusSW4($bonusSW4 = null)
    {
        // validation for constraint: float
        if (!is_null($bonusSW4) && !(is_float($bonusSW4) || is_numeric($bonusSW4))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($bonusSW4, true), gettype($bonusSW4)), __LINE__);
        }
        $this->BonusSW4 = $bonusSW4;
        return $this;
    }
    /**
     * Get BonusSW5 value
     * @return float
     */
    public function getBonusSW5()
    {
        return $this->BonusSW5;
    }
    /**
     * Set BonusSW5 value
     * @param float $bonusSW5
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setBonusSW5($bonusSW5 = null)
    {
        // validation for constraint: float
        if (!is_null($bonusSW5) && !(is_float($bonusSW5) || is_numeric($bonusSW5))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($bonusSW5, true), gettype($bonusSW5)), __LINE__);
        }
        $this->BonusSW5 = $bonusSW5;
        return $this;
    }
    /**
     * Get BonusSW1Coeff value
     * @return float
     */
    public function getBonusSW1Coeff()
    {
        return $this->BonusSW1Coeff;
    }
    /**
     * Set BonusSW1Coeff value
     * @param float $bonusSW1Coeff
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setBonusSW1Coeff($bonusSW1Coeff = null)
    {
        // validation for constraint: float
        if (!is_null($bonusSW1Coeff) && !(is_float($bonusSW1Coeff) || is_numeric($bonusSW1Coeff))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($bonusSW1Coeff, true), gettype($bonusSW1Coeff)), __LINE__);
        }
        $this->BonusSW1Coeff = $bonusSW1Coeff;
        return $this;
    }
    /**
     * Get BonusSW2Coeff value
     * @return float
     */
    public function getBonusSW2Coeff()
    {
        return $this->BonusSW2Coeff;
    }
    /**
     * Set BonusSW2Coeff value
     * @param float $bonusSW2Coeff
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setBonusSW2Coeff($bonusSW2Coeff = null)
    {
        // validation for constraint: float
        if (!is_null($bonusSW2Coeff) && !(is_float($bonusSW2Coeff) || is_numeric($bonusSW2Coeff))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($bonusSW2Coeff, true), gettype($bonusSW2Coeff)), __LINE__);
        }
        $this->BonusSW2Coeff = $bonusSW2Coeff;
        return $this;
    }
    /**
     * Get BonusSW3Coeff value
     * @return float
     */
    public function getBonusSW3Coeff()
    {
        return $this->BonusSW3Coeff;
    }
    /**
     * Set BonusSW3Coeff value
     * @param float $bonusSW3Coeff
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setBonusSW3Coeff($bonusSW3Coeff = null)
    {
        // validation for constraint: float
        if (!is_null($bonusSW3Coeff) && !(is_float($bonusSW3Coeff) || is_numeric($bonusSW3Coeff))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($bonusSW3Coeff, true), gettype($bonusSW3Coeff)), __LINE__);
        }
        $this->BonusSW3Coeff = $bonusSW3Coeff;
        return $this;
    }
    /**
     * Get BonusSW4Coeff value
     * @return float
     */
    public function getBonusSW4Coeff()
    {
        return $this->BonusSW4Coeff;
    }
    /**
     * Set BonusSW4Coeff value
     * @param float $bonusSW4Coeff
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setBonusSW4Coeff($bonusSW4Coeff = null)
    {
        // validation for constraint: float
        if (!is_null($bonusSW4Coeff) && !(is_float($bonusSW4Coeff) || is_numeric($bonusSW4Coeff))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($bonusSW4Coeff, true), gettype($bonusSW4Coeff)), __LINE__);
        }
        $this->BonusSW4Coeff = $bonusSW4Coeff;
        return $this;
    }
    /**
     * Get BonusSW5Coeff value
     * @return float
     */
    public function getBonusSW5Coeff()
    {
        return $this->BonusSW5Coeff;
    }
    /**
     * Set BonusSW5Coeff value
     * @param float $bonusSW5Coeff
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setBonusSW5Coeff($bonusSW5Coeff = null)
    {
        // validation for constraint: float
        if (!is_null($bonusSW5Coeff) && !(is_float($bonusSW5Coeff) || is_numeric($bonusSW5Coeff))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($bonusSW5Coeff, true), gettype($bonusSW5Coeff)), __LINE__);
        }
        $this->BonusSW5Coeff = $bonusSW5Coeff;
        return $this;
    }
    /**
     * Get BonusSurplusOfWork value
     * @return float
     */
    public function getBonusSurplusOfWork()
    {
        return $this->BonusSurplusOfWork;
    }
    /**
     * Set BonusSurplusOfWork value
     * @param float $bonusSurplusOfWork
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setBonusSurplusOfWork($bonusSurplusOfWork = null)
    {
        // validation for constraint: float
        if (!is_null($bonusSurplusOfWork) && !(is_float($bonusSurplusOfWork) || is_numeric($bonusSurplusOfWork))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($bonusSurplusOfWork, true), gettype($bonusSurplusOfWork)), __LINE__);
        }
        $this->BonusSurplusOfWork = $bonusSurplusOfWork;
        return $this;
    }
    /**
     * Get Bonus value
     * @return float
     */
    public function getBonus()
    {
        return $this->Bonus;
    }
    /**
     * Set Bonus value
     * @param float $bonus
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setBonus($bonus = null)
    {
        // validation for constraint: float
        if (!is_null($bonus) && !(is_float($bonus) || is_numeric($bonus))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($bonus, true), gettype($bonus)), __LINE__);
        }
        $this->Bonus = $bonus;
        return $this;
    }
    /**
     * Get Break25 value
     * @return float
     */
    public function getBreak25()
    {
        return $this->Break25;
    }
    /**
     * Set Break25 value
     * @param float $break25
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setBreak25($break25 = null)
    {
        // validation for constraint: float
        if (!is_null($break25) && !(is_float($break25) || is_numeric($break25))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($break25, true), gettype($break25)), __LINE__);
        }
        $this->Break25 = $break25;
        return $this;
    }
    /**
     * Get Break50 value
     * @return float
     */
    public function getBreak50()
    {
        return $this->Break50;
    }
    /**
     * Set Break50 value
     * @param float $break50
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setBreak50($break50 = null)
    {
        // validation for constraint: float
        if (!is_null($break50) && !(is_float($break50) || is_numeric($break50))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($break50, true), gettype($break50)), __LINE__);
        }
        $this->Break50 = $break50;
        return $this;
    }
    /**
     * Get Break100 value
     * @return float
     */
    public function getBreak100()
    {
        return $this->Break100;
    }
    /**
     * Set Break100 value
     * @param float $break100
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setBreak100($break100 = null)
    {
        // validation for constraint: float
        if (!is_null($break100) && !(is_float($break100) || is_numeric($break100))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($break100, true), gettype($break100)), __LINE__);
        }
        $this->Break100 = $break100;
        return $this;
    }
    /**
     * Get CRTaken value
     * @return float
     */
    public function getCRTaken()
    {
        return $this->CRTaken;
    }
    /**
     * Set CRTaken value
     * @param float $cRTaken
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setCRTaken($cRTaken = null)
    {
        // validation for constraint: float
        if (!is_null($cRTaken) && !(is_float($cRTaken) || is_numeric($cRTaken))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($cRTaken, true), gettype($cRTaken)), __LINE__);
        }
        $this->CRTaken = $cRTaken;
        return $this;
    }
    /**
     * Get CREarned value
     * @return float
     */
    public function getCREarned()
    {
        return $this->CREarned;
    }
    /**
     * Set CREarned value
     * @param float $cREarned
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setCREarned($cREarned = null)
    {
        // validation for constraint: float
        if (!is_null($cREarned) && !(is_float($cREarned) || is_numeric($cREarned))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($cREarned, true), gettype($cREarned)), __LINE__);
        }
        $this->CREarned = $cREarned;
        return $this;
    }
    /**
     * Get DailyRest value
     * @return float
     */
    public function getDailyRest()
    {
        return $this->DailyRest;
    }
    /**
     * Set DailyRest value
     * @param float $dailyRest
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setDailyRest($dailyRest = null)
    {
        // validation for constraint: float
        if (!is_null($dailyRest) && !(is_float($dailyRest) || is_numeric($dailyRest))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($dailyRest, true), gettype($dailyRest)), __LINE__);
        }
        $this->DailyRest = $dailyRest;
        return $this;
    }
    /**
     * Get Amplitude value
     * @return float
     */
    public function getAmplitude()
    {
        return $this->Amplitude;
    }
    /**
     * Set Amplitude value
     * @param float $amplitude
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setAmplitude($amplitude = null)
    {
        // validation for constraint: float
        if (!is_null($amplitude) && !(is_float($amplitude) || is_numeric($amplitude))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($amplitude, true), gettype($amplitude)), __LINE__);
        }
        $this->Amplitude = $amplitude;
        return $this;
    }
    /**
     * Get Effective value
     * @return float
     */
    public function getEffective()
    {
        return $this->Effective;
    }
    /**
     * Set Effective value
     * @param float $effective
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setEffective($effective = null)
    {
        // validation for constraint: float
        if (!is_null($effective) && !(is_float($effective) || is_numeric($effective))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($effective, true), gettype($effective)), __LINE__);
        }
        $this->Effective = $effective;
        return $this;
    }
    /**
     * Get Remunerated value
     * @return float
     */
    public function getRemunerated()
    {
        return $this->Remunerated;
    }
    /**
     * Set Remunerated value
     * @param float $remunerated
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setRemunerated($remunerated = null)
    {
        // validation for constraint: float
        if (!is_null($remunerated) && !(is_float($remunerated) || is_numeric($remunerated))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($remunerated, true), gettype($remunerated)), __LINE__);
        }
        $this->Remunerated = $remunerated;
        return $this;
    }
    /**
     * Get Night value
     * @return float
     */
    public function getNight()
    {
        return $this->Night;
    }
    /**
     * Set Night value
     * @param float $night
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setNight($night = null)
    {
        // validation for constraint: float
        if (!is_null($night) && !(is_float($night) || is_numeric($night))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($night, true), gettype($night)), __LINE__);
        }
        $this->Night = $night;
        return $this;
    }
    /**
     * Get Night1 value
     * @return float
     */
    public function getNight1()
    {
        return $this->Night1;
    }
    /**
     * Set Night1 value
     * @param float $night1
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setNight1($night1 = null)
    {
        // validation for constraint: float
        if (!is_null($night1) && !(is_float($night1) || is_numeric($night1))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($night1, true), gettype($night1)), __LINE__);
        }
        $this->Night1 = $night1;
        return $this;
    }
    /**
     * Get Night2 value
     * @return float
     */
    public function getNight2()
    {
        return $this->Night2;
    }
    /**
     * Set Night2 value
     * @param float $night2
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setNight2($night2 = null)
    {
        // validation for constraint: float
        if (!is_null($night2) && !(is_float($night2) || is_numeric($night2))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($night2, true), gettype($night2)), __LINE__);
        }
        $this->Night2 = $night2;
        return $this;
    }
    /**
     * Get Night3 value
     * @return float
     */
    public function getNight3()
    {
        return $this->Night3;
    }
    /**
     * Set Night3 value
     * @param float $night3
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setNight3($night3 = null)
    {
        // validation for constraint: float
        if (!is_null($night3) && !(is_float($night3) || is_numeric($night3))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($night3, true), gettype($night3)), __LINE__);
        }
        $this->Night3 = $night3;
        return $this;
    }
    /**
     * Get NightCoeff value
     * @return float
     */
    public function getNightCoeff()
    {
        return $this->NightCoeff;
    }
    /**
     * Set NightCoeff value
     * @param float $nightCoeff
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setNightCoeff($nightCoeff = null)
    {
        // validation for constraint: float
        if (!is_null($nightCoeff) && !(is_float($nightCoeff) || is_numeric($nightCoeff))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($nightCoeff, true), gettype($nightCoeff)), __LINE__);
        }
        $this->NightCoeff = $nightCoeff;
        return $this;
    }
    /**
     * Get Night1Coeff value
     * @return float
     */
    public function getNight1Coeff()
    {
        return $this->Night1Coeff;
    }
    /**
     * Set Night1Coeff value
     * @param float $night1Coeff
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setNight1Coeff($night1Coeff = null)
    {
        // validation for constraint: float
        if (!is_null($night1Coeff) && !(is_float($night1Coeff) || is_numeric($night1Coeff))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($night1Coeff, true), gettype($night1Coeff)), __LINE__);
        }
        $this->Night1Coeff = $night1Coeff;
        return $this;
    }
    /**
     * Get Night2Coeff value
     * @return float
     */
    public function getNight2Coeff()
    {
        return $this->Night2Coeff;
    }
    /**
     * Set Night2Coeff value
     * @param float $night2Coeff
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setNight2Coeff($night2Coeff = null)
    {
        // validation for constraint: float
        if (!is_null($night2Coeff) && !(is_float($night2Coeff) || is_numeric($night2Coeff))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($night2Coeff, true), gettype($night2Coeff)), __LINE__);
        }
        $this->Night2Coeff = $night2Coeff;
        return $this;
    }
    /**
     * Get Night3Coeff value
     * @return float
     */
    public function getNight3Coeff()
    {
        return $this->Night3Coeff;
    }
    /**
     * Set Night3Coeff value
     * @param float $night3Coeff
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setNight3Coeff($night3Coeff = null)
    {
        // validation for constraint: float
        if (!is_null($night3Coeff) && !(is_float($night3Coeff) || is_numeric($night3Coeff))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($night3Coeff, true), gettype($night3Coeff)), __LINE__);
        }
        $this->Night3Coeff = $night3Coeff;
        return $this;
    }
    /**
     * Get OH1 value
     * @return float
     */
    public function getOH1()
    {
        return $this->OH1;
    }
    /**
     * Set OH1 value
     * @param float $oH1
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setOH1($oH1 = null)
    {
        // validation for constraint: float
        if (!is_null($oH1) && !(is_float($oH1) || is_numeric($oH1))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($oH1, true), gettype($oH1)), __LINE__);
        }
        $this->OH1 = $oH1;
        return $this;
    }
    /**
     * Get OH2 value
     * @return float
     */
    public function getOH2()
    {
        return $this->OH2;
    }
    /**
     * Set OH2 value
     * @param float $oH2
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setOH2($oH2 = null)
    {
        // validation for constraint: float
        if (!is_null($oH2) && !(is_float($oH2) || is_numeric($oH2))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($oH2, true), gettype($oH2)), __LINE__);
        }
        $this->OH2 = $oH2;
        return $this;
    }
    /**
     * Get OH3 value
     * @return float
     */
    public function getOH3()
    {
        return $this->OH3;
    }
    /**
     * Set OH3 value
     * @param float $oH3
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setOH3($oH3 = null)
    {
        // validation for constraint: float
        if (!is_null($oH3) && !(is_float($oH3) || is_numeric($oH3))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($oH3, true), gettype($oH3)), __LINE__);
        }
        $this->OH3 = $oH3;
        return $this;
    }
    /**
     * Get OH4 value
     * @return float
     */
    public function getOH4()
    {
        return $this->OH4;
    }
    /**
     * Set OH4 value
     * @param float $oH4
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setOH4($oH4 = null)
    {
        // validation for constraint: float
        if (!is_null($oH4) && !(is_float($oH4) || is_numeric($oH4))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($oH4, true), gettype($oH4)), __LINE__);
        }
        $this->OH4 = $oH4;
        return $this;
    }
    /**
     * Get OH1Coeff value
     * @return float
     */
    public function getOH1Coeff()
    {
        return $this->OH1Coeff;
    }
    /**
     * Set OH1Coeff value
     * @param float $oH1Coeff
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setOH1Coeff($oH1Coeff = null)
    {
        // validation for constraint: float
        if (!is_null($oH1Coeff) && !(is_float($oH1Coeff) || is_numeric($oH1Coeff))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($oH1Coeff, true), gettype($oH1Coeff)), __LINE__);
        }
        $this->OH1Coeff = $oH1Coeff;
        return $this;
    }
    /**
     * Get OH2Coeff value
     * @return float
     */
    public function getOH2Coeff()
    {
        return $this->OH2Coeff;
    }
    /**
     * Set OH2Coeff value
     * @param float $oH2Coeff
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setOH2Coeff($oH2Coeff = null)
    {
        // validation for constraint: float
        if (!is_null($oH2Coeff) && !(is_float($oH2Coeff) || is_numeric($oH2Coeff))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($oH2Coeff, true), gettype($oH2Coeff)), __LINE__);
        }
        $this->OH2Coeff = $oH2Coeff;
        return $this;
    }
    /**
     * Get OH3Coeff value
     * @return float
     */
    public function getOH3Coeff()
    {
        return $this->OH3Coeff;
    }
    /**
     * Set OH3Coeff value
     * @param float $oH3Coeff
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setOH3Coeff($oH3Coeff = null)
    {
        // validation for constraint: float
        if (!is_null($oH3Coeff) && !(is_float($oH3Coeff) || is_numeric($oH3Coeff))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($oH3Coeff, true), gettype($oH3Coeff)), __LINE__);
        }
        $this->OH3Coeff = $oH3Coeff;
        return $this;
    }
    /**
     * Get OH4Coeff value
     * @return float
     */
    public function getOH4Coeff()
    {
        return $this->OH4Coeff;
    }
    /**
     * Set OH4Coeff value
     * @param float $oH4Coeff
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setOH4Coeff($oH4Coeff = null)
    {
        // validation for constraint: float
        if (!is_null($oH4Coeff) && !(is_float($oH4Coeff) || is_numeric($oH4Coeff))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($oH4Coeff, true), gettype($oH4Coeff)), __LINE__);
        }
        $this->OH4Coeff = $oH4Coeff;
        return $this;
    }
    /**
     * Get Forecast value
     * @return float
     */
    public function getForecast()
    {
        return $this->Forecast;
    }
    /**
     * Set Forecast value
     * @param float $forecast
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setForecast($forecast = null)
    {
        // validation for constraint: float
        if (!is_null($forecast) && !(is_float($forecast) || is_numeric($forecast))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($forecast, true), gettype($forecast)), __LINE__);
        }
        $this->Forecast = $forecast;
        return $this;
    }
    /**
     * Get Driving value
     * @return float
     */
    public function getDriving()
    {
        return $this->Driving;
    }
    /**
     * Set Driving value
     * @param float $driving
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setDriving($driving = null)
    {
        // validation for constraint: float
        if (!is_null($driving) && !(is_float($driving) || is_numeric($driving))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($driving, true), gettype($driving)), __LINE__);
        }
        $this->Driving = $driving;
        return $this;
    }
    /**
     * Get Service value
     * @return float
     */
    public function getService()
    {
        return $this->Service;
    }
    /**
     * Set Service value
     * @param float $service
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setService($service = null)
    {
        // validation for constraint: float
        if (!is_null($service) && !(is_float($service) || is_numeric($service))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($service, true), gettype($service)), __LINE__);
        }
        $this->Service = $service;
        return $this;
    }
    /**
     * Get Working value
     * @return float
     */
    public function getWorking()
    {
        return $this->Working;
    }
    /**
     * Set Working value
     * @param float $working
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setWorking($working = null)
    {
        // validation for constraint: float
        if (!is_null($working) && !(is_float($working) || is_numeric($working))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($working, true), gettype($working)), __LINE__);
        }
        $this->Working = $working;
        return $this;
    }
    /**
     * Get Availability value
     * @return float
     */
    public function getAvailability()
    {
        return $this->Availability;
    }
    /**
     * Set Availability value
     * @param float $availability
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setAvailability($availability = null)
    {
        // validation for constraint: float
        if (!is_null($availability) && !(is_float($availability) || is_numeric($availability))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($availability, true), gettype($availability)), __LINE__);
        }
        $this->Availability = $availability;
        return $this;
    }
    /**
     * Get AvailabilityCoDriver value
     * @return float
     */
    public function getAvailabilityCoDriver()
    {
        return $this->AvailabilityCoDriver;
    }
    /**
     * Set AvailabilityCoDriver value
     * @param float $availabilityCoDriver
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setAvailabilityCoDriver($availabilityCoDriver = null)
    {
        // validation for constraint: float
        if (!is_null($availabilityCoDriver) && !(is_float($availabilityCoDriver) || is_numeric($availabilityCoDriver))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($availabilityCoDriver, true), gettype($availabilityCoDriver)), __LINE__);
        }
        $this->AvailabilityCoDriver = $availabilityCoDriver;
        return $this;
    }
    /**
     * Get Departure value
     * @return string
     */
    public function getDeparture()
    {
        return $this->Departure;
    }
    /**
     * Set Departure value
     * @param string $departure
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setDeparture($departure = null)
    {
        // validation for constraint: string
        if (!is_null($departure) && !is_string($departure)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($departure, true), gettype($departure)), __LINE__);
        }
        $this->Departure = $departure;
        return $this;
    }
    /**
     * Get Arrival value
     * @return string
     */
    public function getArrival()
    {
        return $this->Arrival;
    }
    /**
     * Set Arrival value
     * @param string $arrival
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setArrival($arrival = null)
    {
        // validation for constraint: string
        if (!is_null($arrival) && !is_string($arrival)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($arrival, true), gettype($arrival)), __LINE__);
        }
        $this->Arrival = $arrival;
        return $this;
    }
    /**
     * Get Week value
     * @return int
     */
    public function getWeek()
    {
        return $this->Week;
    }
    /**
     * Set Week value
     * @param int $week
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setWeek($week = null)
    {
        // validation for constraint: int
        if (!is_null($week) && !(is_int($week) || ctype_digit($week))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($week, true), gettype($week)), __LINE__);
        }
        $this->Week = $week;
        return $this;
    }
    /**
     * Get Holiday value
     * @return bool
     */
    public function getHoliday()
    {
        return $this->Holiday;
    }
    /**
     * Set Holiday value
     * @param bool $holiday
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setHoliday($holiday = null)
    {
        // validation for constraint: boolean
        if (!is_null($holiday) && !is_bool($holiday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($holiday, true), gettype($holiday)), __LINE__);
        }
        $this->Holiday = $holiday;
        return $this;
    }
    /**
     * Get SundayOrPublicHoliday value
     * @return float
     */
    public function getSundayOrPublicHoliday()
    {
        return $this->SundayOrPublicHoliday;
    }
    /**
     * Set SundayOrPublicHoliday value
     * @param float $sundayOrPublicHoliday
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setSundayOrPublicHoliday($sundayOrPublicHoliday = null)
    {
        // validation for constraint: float
        if (!is_null($sundayOrPublicHoliday) && !(is_float($sundayOrPublicHoliday) || is_numeric($sundayOrPublicHoliday))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($sundayOrPublicHoliday, true), gettype($sundayOrPublicHoliday)), __LINE__);
        }
        $this->SundayOrPublicHoliday = $sundayOrPublicHoliday;
        return $this;
    }
    /**
     * Get Kms value
     * @return float
     */
    public function getKms()
    {
        return $this->Kms;
    }
    /**
     * Set Kms value
     * @param float $kms
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setKms($kms = null)
    {
        // validation for constraint: float
        if (!is_null($kms) && !(is_float($kms) || is_numeric($kms))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($kms, true), gettype($kms)), __LINE__);
        }
        $this->Kms = $kms;
        return $this;
    }
    /**
     * Get Driver value
     * @return \StructType\IdentifierPerson_V2|null
     */
    public function getDriver()
    {
        return $this->Driver;
    }
    /**
     * Set Driver value
     * @param \StructType\IdentifierPerson_V2 $driver
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setDriver(\StructType\IdentifierPerson_V2 $driver = null)
    {
        $this->Driver = $driver;
        return $this;
    }
    /**
     * Get Source value
     * @return string|null
     */
    public function getSource()
    {
        return $this->Source;
    }
    /**
     * Set Source value
     * @param string $source
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setSource($source = null)
    {
        // validation for constraint: string
        if (!is_null($source) && !is_string($source)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($source, true), gettype($source)), __LINE__);
        }
        $this->Source = $source;
        return $this;
    }
    /**
     * Get DayType value
     * @return string|null
     */
    public function getDayType()
    {
        return $this->DayType;
    }
    /**
     * Set DayType value
     * @param string $dayType
     * @return \StructType\SalaryPreCalculationItem
     */
    public function setDayType($dayType = null)
    {
        // validation for constraint: string
        if (!is_null($dayType) && !is_string($dayType)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($dayType, true), gettype($dayType)), __LINE__);
        }
        $this->DayType = $dayType;
        return $this;
    }
}
