<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VehicleInfoOnDateItem StructType
 * @subpackage Structs
 */
class VehicleInfoOnDateItem extends AbstractStructBase
{
    /**
     * The Loaded
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var int
     */
    public $Loaded;
    /**
     * The Consumption
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var float
     */
    public $Consumption;
    /**
     * The DurationEngineRunning
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var int
     */
    public $DurationEngineRunning;
    /**
     * The CanbusFuelCounter
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var float
     */
    public $CanbusFuelCounter;
    /**
     * The BeginDate
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $BeginDate;
    /**
     * The EndDate
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var string
     */
    public $EndDate;
    /**
     * The KmsBegin
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var int
     */
    public $KmsBegin;
    /**
     * The kmsEnd
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var int
     */
    public $kmsEnd;
    /**
     * The Distance
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var int
     */
    public $Distance;
    /**
     * The Duration
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var float
     */
    public $Duration;
    /**
     * The Place
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \StructType\PlaceIdentifier
     */
    public $Place;
    /**
     * The Trip
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \StructType\TripIdentifier
     */
    public $Trip;
    /**
     * The Driver
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \StructType\IdentifierPerson
     */
    public $Driver;
    /**
     * The CoDriver
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \StructType\IdentifierPerson
     */
    public $CoDriver;
    /**
     * The Vehicle
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \StructType\IdentifierVehicleResult
     */
    public $Vehicle;
    /**
     * The Trailer
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \StructType\IdentifierVehicleResult
     */
    public $Trailer;
    /**
     * The TrailerCode
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $TrailerCode;
    /**
     * The Dossier
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $Dossier;
    /**
     * The Position
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \StructType\PositionResult
     */
    public $Position;
    /**
     * The Activity
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \StructType\ActivityInfo
     */
    public $Activity;
    /**
     * The WorkingCodeTacho
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $WorkingCodeTacho;
    /**
     * Constructor method for VehicleInfoOnDateItem
     * @uses VehicleInfoOnDateItem::setLoaded()
     * @uses VehicleInfoOnDateItem::setConsumption()
     * @uses VehicleInfoOnDateItem::setDurationEngineRunning()
     * @uses VehicleInfoOnDateItem::setCanbusFuelCounter()
     * @uses VehicleInfoOnDateItem::setBeginDate()
     * @uses VehicleInfoOnDateItem::setEndDate()
     * @uses VehicleInfoOnDateItem::setKmsBegin()
     * @uses VehicleInfoOnDateItem::setKmsEnd()
     * @uses VehicleInfoOnDateItem::setDistance()
     * @uses VehicleInfoOnDateItem::setDuration()
     * @uses VehicleInfoOnDateItem::setPlace()
     * @uses VehicleInfoOnDateItem::setTrip()
     * @uses VehicleInfoOnDateItem::setDriver()
     * @uses VehicleInfoOnDateItem::setCoDriver()
     * @uses VehicleInfoOnDateItem::setVehicle()
     * @uses VehicleInfoOnDateItem::setTrailer()
     * @uses VehicleInfoOnDateItem::setTrailerCode()
     * @uses VehicleInfoOnDateItem::setDossier()
     * @uses VehicleInfoOnDateItem::setPosition()
     * @uses VehicleInfoOnDateItem::setActivity()
     * @uses VehicleInfoOnDateItem::setWorkingCodeTacho()
     * @param int $loaded
     * @param float $consumption
     * @param int $durationEngineRunning
     * @param float $canbusFuelCounter
     * @param string $beginDate
     * @param string $endDate
     * @param int $kmsBegin
     * @param int $kmsEnd
     * @param int $distance
     * @param float $duration
     * @param \StructType\PlaceIdentifier $place
     * @param \StructType\TripIdentifier $trip
     * @param \StructType\IdentifierPerson $driver
     * @param \StructType\IdentifierPerson $coDriver
     * @param \StructType\IdentifierVehicleResult $vehicle
     * @param \StructType\IdentifierVehicleResult $trailer
     * @param string $trailerCode
     * @param string $dossier
     * @param \StructType\PositionResult $position
     * @param \StructType\ActivityInfo $activity
     * @param string $workingCodeTacho
     */
    public function __construct($loaded = null, $consumption = null, $durationEngineRunning = null, $canbusFuelCounter = null, $beginDate = null, $endDate = null, $kmsBegin = null, $kmsEnd = null, $distance = null, $duration = null, \StructType\PlaceIdentifier $place = null, \StructType\TripIdentifier $trip = null, \StructType\IdentifierPerson $driver = null, \StructType\IdentifierPerson $coDriver = null, \StructType\IdentifierVehicleResult $vehicle = null, \StructType\IdentifierVehicleResult $trailer = null, $trailerCode = null, $dossier = null, \StructType\PositionResult $position = null, \StructType\ActivityInfo $activity = null, $workingCodeTacho = null)
    {
        $this
            ->setLoaded($loaded)
            ->setConsumption($consumption)
            ->setDurationEngineRunning($durationEngineRunning)
            ->setCanbusFuelCounter($canbusFuelCounter)
            ->setBeginDate($beginDate)
            ->setEndDate($endDate)
            ->setKmsBegin($kmsBegin)
            ->setKmsEnd($kmsEnd)
            ->setDistance($distance)
            ->setDuration($duration)
            ->setPlace($place)
            ->setTrip($trip)
            ->setDriver($driver)
            ->setCoDriver($coDriver)
            ->setVehicle($vehicle)
            ->setTrailer($trailer)
            ->setTrailerCode($trailerCode)
            ->setDossier($dossier)
            ->setPosition($position)
            ->setActivity($activity)
            ->setWorkingCodeTacho($workingCodeTacho);
    }
    /**
     * Get Loaded value
     * @return int
     */
    public function getLoaded()
    {
        return $this->Loaded;
    }
    /**
     * Set Loaded value
     * @param int $loaded
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setLoaded($loaded = null)
    {
        // validation for constraint: int
        if (!is_null($loaded) && !(is_int($loaded) || ctype_digit($loaded))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($loaded, true), gettype($loaded)), __LINE__);
        }
        $this->Loaded = $loaded;
        return $this;
    }
    /**
     * Get Consumption value
     * @return float
     */
    public function getConsumption()
    {
        return $this->Consumption;
    }
    /**
     * Set Consumption value
     * @param float $consumption
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setConsumption($consumption = null)
    {
        // validation for constraint: float
        if (!is_null($consumption) && !(is_float($consumption) || is_numeric($consumption))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($consumption, true), gettype($consumption)), __LINE__);
        }
        $this->Consumption = $consumption;
        return $this;
    }
    /**
     * Get DurationEngineRunning value
     * @return int
     */
    public function getDurationEngineRunning()
    {
        return $this->DurationEngineRunning;
    }
    /**
     * Set DurationEngineRunning value
     * @param int $durationEngineRunning
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setDurationEngineRunning($durationEngineRunning = null)
    {
        // validation for constraint: int
        if (!is_null($durationEngineRunning) && !(is_int($durationEngineRunning) || ctype_digit($durationEngineRunning))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($durationEngineRunning, true), gettype($durationEngineRunning)), __LINE__);
        }
        $this->DurationEngineRunning = $durationEngineRunning;
        return $this;
    }
    /**
     * Get CanbusFuelCounter value
     * @return float
     */
    public function getCanbusFuelCounter()
    {
        return $this->CanbusFuelCounter;
    }
    /**
     * Set CanbusFuelCounter value
     * @param float $canbusFuelCounter
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setCanbusFuelCounter($canbusFuelCounter = null)
    {
        // validation for constraint: float
        if (!is_null($canbusFuelCounter) && !(is_float($canbusFuelCounter) || is_numeric($canbusFuelCounter))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($canbusFuelCounter, true), gettype($canbusFuelCounter)), __LINE__);
        }
        $this->CanbusFuelCounter = $canbusFuelCounter;
        return $this;
    }
    /**
     * Get BeginDate value
     * @return string
     */
    public function getBeginDate()
    {
        return $this->BeginDate;
    }
    /**
     * Set BeginDate value
     * @param string $beginDate
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setBeginDate($beginDate = null)
    {
        // validation for constraint: string
        if (!is_null($beginDate) && !is_string($beginDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($beginDate, true), gettype($beginDate)), __LINE__);
        }
        $this->BeginDate = $beginDate;
        return $this;
    }
    /**
     * Get EndDate value
     * @return string
     */
    public function getEndDate()
    {
        return $this->EndDate;
    }
    /**
     * Set EndDate value
     * @param string $endDate
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setEndDate($endDate = null)
    {
        // validation for constraint: string
        if (!is_null($endDate) && !is_string($endDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($endDate, true), gettype($endDate)), __LINE__);
        }
        $this->EndDate = $endDate;
        return $this;
    }
    /**
     * Get KmsBegin value
     * @return int
     */
    public function getKmsBegin()
    {
        return $this->KmsBegin;
    }
    /**
     * Set KmsBegin value
     * @param int $kmsBegin
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setKmsBegin($kmsBegin = null)
    {
        // validation for constraint: int
        if (!is_null($kmsBegin) && !(is_int($kmsBegin) || ctype_digit($kmsBegin))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($kmsBegin, true), gettype($kmsBegin)), __LINE__);
        }
        $this->KmsBegin = $kmsBegin;
        return $this;
    }
    /**
     * Get kmsEnd value
     * @return int
     */
    public function getKmsEnd()
    {
        return $this->kmsEnd;
    }
    /**
     * Set kmsEnd value
     * @param int $kmsEnd
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setKmsEnd($kmsEnd = null)
    {
        // validation for constraint: int
        if (!is_null($kmsEnd) && !(is_int($kmsEnd) || ctype_digit($kmsEnd))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($kmsEnd, true), gettype($kmsEnd)), __LINE__);
        }
        $this->kmsEnd = $kmsEnd;
        return $this;
    }
    /**
     * Get Distance value
     * @return int
     */
    public function getDistance()
    {
        return $this->Distance;
    }
    /**
     * Set Distance value
     * @param int $distance
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setDistance($distance = null)
    {
        // validation for constraint: int
        if (!is_null($distance) && !(is_int($distance) || ctype_digit($distance))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($distance, true), gettype($distance)), __LINE__);
        }
        $this->Distance = $distance;
        return $this;
    }
    /**
     * Get Duration value
     * @return float
     */
    public function getDuration()
    {
        return $this->Duration;
    }
    /**
     * Set Duration value
     * @param float $duration
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setDuration($duration = null)
    {
        // validation for constraint: float
        if (!is_null($duration) && !(is_float($duration) || is_numeric($duration))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($duration, true), gettype($duration)), __LINE__);
        }
        $this->Duration = $duration;
        return $this;
    }
    /**
     * Get Place value
     * @return \StructType\PlaceIdentifier|null
     */
    public function getPlace()
    {
        return $this->Place;
    }
    /**
     * Set Place value
     * @param \StructType\PlaceIdentifier $place
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setPlace(\StructType\PlaceIdentifier $place = null)
    {
        $this->Place = $place;
        return $this;
    }
    /**
     * Get Trip value
     * @return \StructType\TripIdentifier|null
     */
    public function getTrip()
    {
        return $this->Trip;
    }
    /**
     * Set Trip value
     * @param \StructType\TripIdentifier $trip
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setTrip(\StructType\TripIdentifier $trip = null)
    {
        $this->Trip = $trip;
        return $this;
    }
    /**
     * Get Driver value
     * @return \StructType\IdentifierPerson|null
     */
    public function getDriver()
    {
        return $this->Driver;
    }
    /**
     * Set Driver value
     * @param \StructType\IdentifierPerson $driver
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setDriver(\StructType\IdentifierPerson $driver = null)
    {
        $this->Driver = $driver;
        return $this;
    }
    /**
     * Get CoDriver value
     * @return \StructType\IdentifierPerson|null
     */
    public function getCoDriver()
    {
        return $this->CoDriver;
    }
    /**
     * Set CoDriver value
     * @param \StructType\IdentifierPerson $coDriver
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setCoDriver(\StructType\IdentifierPerson $coDriver = null)
    {
        $this->CoDriver = $coDriver;
        return $this;
    }
    /**
     * Get Vehicle value
     * @return \StructType\IdentifierVehicleResult|null
     */
    public function getVehicle()
    {
        return $this->Vehicle;
    }
    /**
     * Set Vehicle value
     * @param \StructType\IdentifierVehicleResult $vehicle
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setVehicle(\StructType\IdentifierVehicleResult $vehicle = null)
    {
        $this->Vehicle = $vehicle;
        return $this;
    }
    /**
     * Get Trailer value
     * @return \StructType\IdentifierVehicleResult|null
     */
    public function getTrailer()
    {
        return $this->Trailer;
    }
    /**
     * Set Trailer value
     * @param \StructType\IdentifierVehicleResult $trailer
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setTrailer(\StructType\IdentifierVehicleResult $trailer = null)
    {
        $this->Trailer = $trailer;
        return $this;
    }
    /**
     * Get TrailerCode value
     * @return string|null
     */
    public function getTrailerCode()
    {
        return $this->TrailerCode;
    }
    /**
     * Set TrailerCode value
     * @param string $trailerCode
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setTrailerCode($trailerCode = null)
    {
        // validation for constraint: string
        if (!is_null($trailerCode) && !is_string($trailerCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($trailerCode, true), gettype($trailerCode)), __LINE__);
        }
        $this->TrailerCode = $trailerCode;
        return $this;
    }
    /**
     * Get Dossier value
     * @return string|null
     */
    public function getDossier()
    {
        return $this->Dossier;
    }
    /**
     * Set Dossier value
     * @param string $dossier
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setDossier($dossier = null)
    {
        // validation for constraint: string
        if (!is_null($dossier) && !is_string($dossier)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($dossier, true), gettype($dossier)), __LINE__);
        }
        $this->Dossier = $dossier;
        return $this;
    }
    /**
     * Get Position value
     * @return \StructType\PositionResult|null
     */
    public function getPosition()
    {
        return $this->Position;
    }
    /**
     * Set Position value
     * @param \StructType\PositionResult $position
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setPosition(\StructType\PositionResult $position = null)
    {
        $this->Position = $position;
        return $this;
    }
    /**
     * Get Activity value
     * @return \StructType\ActivityInfo|null
     */
    public function getActivity()
    {
        return $this->Activity;
    }
    /**
     * Set Activity value
     * @param \StructType\ActivityInfo $activity
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setActivity(\StructType\ActivityInfo $activity = null)
    {
        $this->Activity = $activity;
        return $this;
    }
    /**
     * Get WorkingCodeTacho value
     * @return string|null
     */
    public function getWorkingCodeTacho()
    {
        return $this->WorkingCodeTacho;
    }
    /**
     * Set WorkingCodeTacho value
     * @param string $workingCodeTacho
     * @return \StructType\VehicleInfoOnDateItem
     */
    public function setWorkingCodeTacho($workingCodeTacho = null)
    {
        // validation for constraint: string
        if (!is_null($workingCodeTacho) && !is_string($workingCodeTacho)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($workingCodeTacho, true), gettype($workingCodeTacho)), __LINE__);
        }
        $this->WorkingCodeTacho = $workingCodeTacho;
        return $this;
    }
}
