<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Budget StructType
 * @subpackage Structs
 */
class Budget extends Record
{
    /**
     * The year
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $year;
    /**
     * The customer
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $customer;
    /**
     * The item
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $item;
    /**
     * The class
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $class;
    /**
     * The department
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $department;
    /**
     * The location
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $location;
    /**
     * The account
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $account;
    /**
     * The subsidiary
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $subsidiary;
    /**
     * The category
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $category;
    /**
     * The budgetType
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $budgetType;
    /**
     * The currency
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $currency;
    /**
     * The periodAmount1
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount1;
    /**
     * The periodAmount2
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount2;
    /**
     * The periodAmount3
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount3;
    /**
     * The periodAmount4
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount4;
    /**
     * The periodAmount5
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount5;
    /**
     * The periodAmount6
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount6;
    /**
     * The periodAmount7
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount7;
    /**
     * The periodAmount8
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount8;
    /**
     * The periodAmount9
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount9;
    /**
     * The periodAmount10
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount10;
    /**
     * The periodAmount11
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount11;
    /**
     * The periodAmount12
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount12;
    /**
     * The periodAmount13
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount13;
    /**
     * The periodAmount14
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount14;
    /**
     * The periodAmount15
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount15;
    /**
     * The periodAmount16
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount16;
    /**
     * The periodAmount17
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount17;
    /**
     * The periodAmount18
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount18;
    /**
     * The periodAmount19
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount19;
    /**
     * The periodAmount20
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount20;
    /**
     * The periodAmount21
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount21;
    /**
     * The periodAmount22
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount22;
    /**
     * The periodAmount23
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount23;
    /**
     * The periodAmount24
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $periodAmount24;
    /**
     * The amount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $amount;
    /**
     * The accountingBook
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $accountingBook;
    /**
     * The customFieldList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomFieldList
     */
    public $customFieldList;
    /**
     * The internalId
     * @var string
     */
    public $internalId;
    /**
     * Constructor method for Budget
     * @uses Budget::setYear()
     * @uses Budget::setCustomer()
     * @uses Budget::setItem()
     * @uses Budget::setClass()
     * @uses Budget::setDepartment()
     * @uses Budget::setLocation()
     * @uses Budget::setAccount()
     * @uses Budget::setSubsidiary()
     * @uses Budget::setCategory()
     * @uses Budget::setBudgetType()
     * @uses Budget::setCurrency()
     * @uses Budget::setPeriodAmount1()
     * @uses Budget::setPeriodAmount2()
     * @uses Budget::setPeriodAmount3()
     * @uses Budget::setPeriodAmount4()
     * @uses Budget::setPeriodAmount5()
     * @uses Budget::setPeriodAmount6()
     * @uses Budget::setPeriodAmount7()
     * @uses Budget::setPeriodAmount8()
     * @uses Budget::setPeriodAmount9()
     * @uses Budget::setPeriodAmount10()
     * @uses Budget::setPeriodAmount11()
     * @uses Budget::setPeriodAmount12()
     * @uses Budget::setPeriodAmount13()
     * @uses Budget::setPeriodAmount14()
     * @uses Budget::setPeriodAmount15()
     * @uses Budget::setPeriodAmount16()
     * @uses Budget::setPeriodAmount17()
     * @uses Budget::setPeriodAmount18()
     * @uses Budget::setPeriodAmount19()
     * @uses Budget::setPeriodAmount20()
     * @uses Budget::setPeriodAmount21()
     * @uses Budget::setPeriodAmount22()
     * @uses Budget::setPeriodAmount23()
     * @uses Budget::setPeriodAmount24()
     * @uses Budget::setAmount()
     * @uses Budget::setAccountingBook()
     * @uses Budget::setCustomFieldList()
     * @uses Budget::setInternalId()
     * @param \StructType\RecordRef $year
     * @param \StructType\RecordRef $customer
     * @param \StructType\RecordRef $item
     * @param \StructType\RecordRef $class
     * @param \StructType\RecordRef $department
     * @param \StructType\RecordRef $location
     * @param \StructType\RecordRef $account
     * @param \StructType\RecordRef $subsidiary
     * @param \StructType\RecordRef $category
     * @param string $budgetType
     * @param \StructType\RecordRef $currency
     * @param float $periodAmount1
     * @param float $periodAmount2
     * @param float $periodAmount3
     * @param float $periodAmount4
     * @param float $periodAmount5
     * @param float $periodAmount6
     * @param float $periodAmount7
     * @param float $periodAmount8
     * @param float $periodAmount9
     * @param float $periodAmount10
     * @param float $periodAmount11
     * @param float $periodAmount12
     * @param float $periodAmount13
     * @param float $periodAmount14
     * @param float $periodAmount15
     * @param float $periodAmount16
     * @param float $periodAmount17
     * @param float $periodAmount18
     * @param float $periodAmount19
     * @param float $periodAmount20
     * @param float $periodAmount21
     * @param float $periodAmount22
     * @param float $periodAmount23
     * @param float $periodAmount24
     * @param float $amount
     * @param \StructType\RecordRef $accountingBook
     * @param \StructType\CustomFieldList $customFieldList
     * @param string $internalId
     */
    public function __construct(\StructType\RecordRef $year = null, \StructType\RecordRef $customer = null, \StructType\RecordRef $item = null, \StructType\RecordRef $class = null, \StructType\RecordRef $department = null, \StructType\RecordRef $location = null, \StructType\RecordRef $account = null, \StructType\RecordRef $subsidiary = null, \StructType\RecordRef $category = null, $budgetType = null, \StructType\RecordRef $currency = null, $periodAmount1 = null, $periodAmount2 = null, $periodAmount3 = null, $periodAmount4 = null, $periodAmount5 = null, $periodAmount6 = null, $periodAmount7 = null, $periodAmount8 = null, $periodAmount9 = null, $periodAmount10 = null, $periodAmount11 = null, $periodAmount12 = null, $periodAmount13 = null, $periodAmount14 = null, $periodAmount15 = null, $periodAmount16 = null, $periodAmount17 = null, $periodAmount18 = null, $periodAmount19 = null, $periodAmount20 = null, $periodAmount21 = null, $periodAmount22 = null, $periodAmount23 = null, $periodAmount24 = null, $amount = null, \StructType\RecordRef $accountingBook = null, \StructType\CustomFieldList $customFieldList = null, $internalId = null)
    {
        $this
            ->setYear($year)
            ->setCustomer($customer)
            ->setItem($item)
            ->setClass($class)
            ->setDepartment($department)
            ->setLocation($location)
            ->setAccount($account)
            ->setSubsidiary($subsidiary)
            ->setCategory($category)
            ->setBudgetType($budgetType)
            ->setCurrency($currency)
            ->setPeriodAmount1($periodAmount1)
            ->setPeriodAmount2($periodAmount2)
            ->setPeriodAmount3($periodAmount3)
            ->setPeriodAmount4($periodAmount4)
            ->setPeriodAmount5($periodAmount5)
            ->setPeriodAmount6($periodAmount6)
            ->setPeriodAmount7($periodAmount7)
            ->setPeriodAmount8($periodAmount8)
            ->setPeriodAmount9($periodAmount9)
            ->setPeriodAmount10($periodAmount10)
            ->setPeriodAmount11($periodAmount11)
            ->setPeriodAmount12($periodAmount12)
            ->setPeriodAmount13($periodAmount13)
            ->setPeriodAmount14($periodAmount14)
            ->setPeriodAmount15($periodAmount15)
            ->setPeriodAmount16($periodAmount16)
            ->setPeriodAmount17($periodAmount17)
            ->setPeriodAmount18($periodAmount18)
            ->setPeriodAmount19($periodAmount19)
            ->setPeriodAmount20($periodAmount20)
            ->setPeriodAmount21($periodAmount21)
            ->setPeriodAmount22($periodAmount22)
            ->setPeriodAmount23($periodAmount23)
            ->setPeriodAmount24($periodAmount24)
            ->setAmount($amount)
            ->setAccountingBook($accountingBook)
            ->setCustomFieldList($customFieldList)
            ->setInternalId($internalId);
    }
    /**
     * Get year value
     * @return \StructType\RecordRef|null
     */
    public function getYear()
    {
        return $this->year;
    }
    /**
     * Set year value
     * @param \StructType\RecordRef $year
     * @return \StructType\Budget
     */
    public function setYear(\StructType\RecordRef $year = null)
    {
        $this->year = $year;
        return $this;
    }
    /**
     * Get customer value
     * @return \StructType\RecordRef|null
     */
    public function getCustomer()
    {
        return $this->customer;
    }
    /**
     * Set customer value
     * @param \StructType\RecordRef $customer
     * @return \StructType\Budget
     */
    public function setCustomer(\StructType\RecordRef $customer = null)
    {
        $this->customer = $customer;
        return $this;
    }
    /**
     * Get item value
     * @return \StructType\RecordRef|null
     */
    public function getItem()
    {
        return $this->item;
    }
    /**
     * Set item value
     * @param \StructType\RecordRef $item
     * @return \StructType\Budget
     */
    public function setItem(\StructType\RecordRef $item = null)
    {
        $this->item = $item;
        return $this;
    }
    /**
     * Get class value
     * @return \StructType\RecordRef|null
     */
    public function getClass()
    {
        return $this->class;
    }
    /**
     * Set class value
     * @param \StructType\RecordRef $class
     * @return \StructType\Budget
     */
    public function setClass(\StructType\RecordRef $class = null)
    {
        $this->class = $class;
        return $this;
    }
    /**
     * Get department value
     * @return \StructType\RecordRef|null
     */
    public function getDepartment()
    {
        return $this->department;
    }
    /**
     * Set department value
     * @param \StructType\RecordRef $department
     * @return \StructType\Budget
     */
    public function setDepartment(\StructType\RecordRef $department = null)
    {
        $this->department = $department;
        return $this;
    }
    /**
     * Get location value
     * @return \StructType\RecordRef|null
     */
    public function getLocation()
    {
        return $this->location;
    }
    /**
     * Set location value
     * @param \StructType\RecordRef $location
     * @return \StructType\Budget
     */
    public function setLocation(\StructType\RecordRef $location = null)
    {
        $this->location = $location;
        return $this;
    }
    /**
     * Get account value
     * @return \StructType\RecordRef|null
     */
    public function getAccount()
    {
        return $this->account;
    }
    /**
     * Set account value
     * @param \StructType\RecordRef $account
     * @return \StructType\Budget
     */
    public function setAccount(\StructType\RecordRef $account = null)
    {
        $this->account = $account;
        return $this;
    }
    /**
     * Get subsidiary value
     * @return \StructType\RecordRef|null
     */
    public function getSubsidiary()
    {
        return $this->subsidiary;
    }
    /**
     * Set subsidiary value
     * @param \StructType\RecordRef $subsidiary
     * @return \StructType\Budget
     */
    public function setSubsidiary(\StructType\RecordRef $subsidiary = null)
    {
        $this->subsidiary = $subsidiary;
        return $this;
    }
    /**
     * Get category value
     * @return \StructType\RecordRef|null
     */
    public function getCategory()
    {
        return $this->category;
    }
    /**
     * Set category value
     * @param \StructType\RecordRef $category
     * @return \StructType\Budget
     */
    public function setCategory(\StructType\RecordRef $category = null)
    {
        $this->category = $category;
        return $this;
    }
    /**
     * Get budgetType value
     * @return string|null
     */
    public function getBudgetType()
    {
        return $this->budgetType;
    }
    /**
     * Set budgetType value
     * @uses \EnumType\BudgetBudgetType::valueIsValid()
     * @uses \EnumType\BudgetBudgetType::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $budgetType
     * @return \StructType\Budget
     */
    public function setBudgetType($budgetType = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\BudgetBudgetType::valueIsValid($budgetType)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\BudgetBudgetType', is_array($budgetType) ? implode(', ', $budgetType) : var_export($budgetType, true), implode(', ', \EnumType\BudgetBudgetType::getValidValues())), __LINE__);
        }
        $this->budgetType = $budgetType;
        return $this;
    }
    /**
     * Get currency value
     * @return \StructType\RecordRef|null
     */
    public function getCurrency()
    {
        return $this->currency;
    }
    /**
     * Set currency value
     * @param \StructType\RecordRef $currency
     * @return \StructType\Budget
     */
    public function setCurrency(\StructType\RecordRef $currency = null)
    {
        $this->currency = $currency;
        return $this;
    }
    /**
     * Get periodAmount1 value
     * @return float|null
     */
    public function getPeriodAmount1()
    {
        return $this->periodAmount1;
    }
    /**
     * Set periodAmount1 value
     * @param float $periodAmount1
     * @return \StructType\Budget
     */
    public function setPeriodAmount1($periodAmount1 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount1) && !(is_float($periodAmount1) || is_numeric($periodAmount1))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount1, true), gettype($periodAmount1)), __LINE__);
        }
        $this->periodAmount1 = $periodAmount1;
        return $this;
    }
    /**
     * Get periodAmount2 value
     * @return float|null
     */
    public function getPeriodAmount2()
    {
        return $this->periodAmount2;
    }
    /**
     * Set periodAmount2 value
     * @param float $periodAmount2
     * @return \StructType\Budget
     */
    public function setPeriodAmount2($periodAmount2 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount2) && !(is_float($periodAmount2) || is_numeric($periodAmount2))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount2, true), gettype($periodAmount2)), __LINE__);
        }
        $this->periodAmount2 = $periodAmount2;
        return $this;
    }
    /**
     * Get periodAmount3 value
     * @return float|null
     */
    public function getPeriodAmount3()
    {
        return $this->periodAmount3;
    }
    /**
     * Set periodAmount3 value
     * @param float $periodAmount3
     * @return \StructType\Budget
     */
    public function setPeriodAmount3($periodAmount3 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount3) && !(is_float($periodAmount3) || is_numeric($periodAmount3))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount3, true), gettype($periodAmount3)), __LINE__);
        }
        $this->periodAmount3 = $periodAmount3;
        return $this;
    }
    /**
     * Get periodAmount4 value
     * @return float|null
     */
    public function getPeriodAmount4()
    {
        return $this->periodAmount4;
    }
    /**
     * Set periodAmount4 value
     * @param float $periodAmount4
     * @return \StructType\Budget
     */
    public function setPeriodAmount4($periodAmount4 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount4) && !(is_float($periodAmount4) || is_numeric($periodAmount4))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount4, true), gettype($periodAmount4)), __LINE__);
        }
        $this->periodAmount4 = $periodAmount4;
        return $this;
    }
    /**
     * Get periodAmount5 value
     * @return float|null
     */
    public function getPeriodAmount5()
    {
        return $this->periodAmount5;
    }
    /**
     * Set periodAmount5 value
     * @param float $periodAmount5
     * @return \StructType\Budget
     */
    public function setPeriodAmount5($periodAmount5 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount5) && !(is_float($periodAmount5) || is_numeric($periodAmount5))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount5, true), gettype($periodAmount5)), __LINE__);
        }
        $this->periodAmount5 = $periodAmount5;
        return $this;
    }
    /**
     * Get periodAmount6 value
     * @return float|null
     */
    public function getPeriodAmount6()
    {
        return $this->periodAmount6;
    }
    /**
     * Set periodAmount6 value
     * @param float $periodAmount6
     * @return \StructType\Budget
     */
    public function setPeriodAmount6($periodAmount6 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount6) && !(is_float($periodAmount6) || is_numeric($periodAmount6))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount6, true), gettype($periodAmount6)), __LINE__);
        }
        $this->periodAmount6 = $periodAmount6;
        return $this;
    }
    /**
     * Get periodAmount7 value
     * @return float|null
     */
    public function getPeriodAmount7()
    {
        return $this->periodAmount7;
    }
    /**
     * Set periodAmount7 value
     * @param float $periodAmount7
     * @return \StructType\Budget
     */
    public function setPeriodAmount7($periodAmount7 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount7) && !(is_float($periodAmount7) || is_numeric($periodAmount7))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount7, true), gettype($periodAmount7)), __LINE__);
        }
        $this->periodAmount7 = $periodAmount7;
        return $this;
    }
    /**
     * Get periodAmount8 value
     * @return float|null
     */
    public function getPeriodAmount8()
    {
        return $this->periodAmount8;
    }
    /**
     * Set periodAmount8 value
     * @param float $periodAmount8
     * @return \StructType\Budget
     */
    public function setPeriodAmount8($periodAmount8 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount8) && !(is_float($periodAmount8) || is_numeric($periodAmount8))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount8, true), gettype($periodAmount8)), __LINE__);
        }
        $this->periodAmount8 = $periodAmount8;
        return $this;
    }
    /**
     * Get periodAmount9 value
     * @return float|null
     */
    public function getPeriodAmount9()
    {
        return $this->periodAmount9;
    }
    /**
     * Set periodAmount9 value
     * @param float $periodAmount9
     * @return \StructType\Budget
     */
    public function setPeriodAmount9($periodAmount9 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount9) && !(is_float($periodAmount9) || is_numeric($periodAmount9))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount9, true), gettype($periodAmount9)), __LINE__);
        }
        $this->periodAmount9 = $periodAmount9;
        return $this;
    }
    /**
     * Get periodAmount10 value
     * @return float|null
     */
    public function getPeriodAmount10()
    {
        return $this->periodAmount10;
    }
    /**
     * Set periodAmount10 value
     * @param float $periodAmount10
     * @return \StructType\Budget
     */
    public function setPeriodAmount10($periodAmount10 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount10) && !(is_float($periodAmount10) || is_numeric($periodAmount10))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount10, true), gettype($periodAmount10)), __LINE__);
        }
        $this->periodAmount10 = $periodAmount10;
        return $this;
    }
    /**
     * Get periodAmount11 value
     * @return float|null
     */
    public function getPeriodAmount11()
    {
        return $this->periodAmount11;
    }
    /**
     * Set periodAmount11 value
     * @param float $periodAmount11
     * @return \StructType\Budget
     */
    public function setPeriodAmount11($periodAmount11 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount11) && !(is_float($periodAmount11) || is_numeric($periodAmount11))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount11, true), gettype($periodAmount11)), __LINE__);
        }
        $this->periodAmount11 = $periodAmount11;
        return $this;
    }
    /**
     * Get periodAmount12 value
     * @return float|null
     */
    public function getPeriodAmount12()
    {
        return $this->periodAmount12;
    }
    /**
     * Set periodAmount12 value
     * @param float $periodAmount12
     * @return \StructType\Budget
     */
    public function setPeriodAmount12($periodAmount12 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount12) && !(is_float($periodAmount12) || is_numeric($periodAmount12))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount12, true), gettype($periodAmount12)), __LINE__);
        }
        $this->periodAmount12 = $periodAmount12;
        return $this;
    }
    /**
     * Get periodAmount13 value
     * @return float|null
     */
    public function getPeriodAmount13()
    {
        return $this->periodAmount13;
    }
    /**
     * Set periodAmount13 value
     * @param float $periodAmount13
     * @return \StructType\Budget
     */
    public function setPeriodAmount13($periodAmount13 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount13) && !(is_float($periodAmount13) || is_numeric($periodAmount13))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount13, true), gettype($periodAmount13)), __LINE__);
        }
        $this->periodAmount13 = $periodAmount13;
        return $this;
    }
    /**
     * Get periodAmount14 value
     * @return float|null
     */
    public function getPeriodAmount14()
    {
        return $this->periodAmount14;
    }
    /**
     * Set periodAmount14 value
     * @param float $periodAmount14
     * @return \StructType\Budget
     */
    public function setPeriodAmount14($periodAmount14 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount14) && !(is_float($periodAmount14) || is_numeric($periodAmount14))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount14, true), gettype($periodAmount14)), __LINE__);
        }
        $this->periodAmount14 = $periodAmount14;
        return $this;
    }
    /**
     * Get periodAmount15 value
     * @return float|null
     */
    public function getPeriodAmount15()
    {
        return $this->periodAmount15;
    }
    /**
     * Set periodAmount15 value
     * @param float $periodAmount15
     * @return \StructType\Budget
     */
    public function setPeriodAmount15($periodAmount15 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount15) && !(is_float($periodAmount15) || is_numeric($periodAmount15))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount15, true), gettype($periodAmount15)), __LINE__);
        }
        $this->periodAmount15 = $periodAmount15;
        return $this;
    }
    /**
     * Get periodAmount16 value
     * @return float|null
     */
    public function getPeriodAmount16()
    {
        return $this->periodAmount16;
    }
    /**
     * Set periodAmount16 value
     * @param float $periodAmount16
     * @return \StructType\Budget
     */
    public function setPeriodAmount16($periodAmount16 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount16) && !(is_float($periodAmount16) || is_numeric($periodAmount16))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount16, true), gettype($periodAmount16)), __LINE__);
        }
        $this->periodAmount16 = $periodAmount16;
        return $this;
    }
    /**
     * Get periodAmount17 value
     * @return float|null
     */
    public function getPeriodAmount17()
    {
        return $this->periodAmount17;
    }
    /**
     * Set periodAmount17 value
     * @param float $periodAmount17
     * @return \StructType\Budget
     */
    public function setPeriodAmount17($periodAmount17 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount17) && !(is_float($periodAmount17) || is_numeric($periodAmount17))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount17, true), gettype($periodAmount17)), __LINE__);
        }
        $this->periodAmount17 = $periodAmount17;
        return $this;
    }
    /**
     * Get periodAmount18 value
     * @return float|null
     */
    public function getPeriodAmount18()
    {
        return $this->periodAmount18;
    }
    /**
     * Set periodAmount18 value
     * @param float $periodAmount18
     * @return \StructType\Budget
     */
    public function setPeriodAmount18($periodAmount18 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount18) && !(is_float($periodAmount18) || is_numeric($periodAmount18))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount18, true), gettype($periodAmount18)), __LINE__);
        }
        $this->periodAmount18 = $periodAmount18;
        return $this;
    }
    /**
     * Get periodAmount19 value
     * @return float|null
     */
    public function getPeriodAmount19()
    {
        return $this->periodAmount19;
    }
    /**
     * Set periodAmount19 value
     * @param float $periodAmount19
     * @return \StructType\Budget
     */
    public function setPeriodAmount19($periodAmount19 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount19) && !(is_float($periodAmount19) || is_numeric($periodAmount19))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount19, true), gettype($periodAmount19)), __LINE__);
        }
        $this->periodAmount19 = $periodAmount19;
        return $this;
    }
    /**
     * Get periodAmount20 value
     * @return float|null
     */
    public function getPeriodAmount20()
    {
        return $this->periodAmount20;
    }
    /**
     * Set periodAmount20 value
     * @param float $periodAmount20
     * @return \StructType\Budget
     */
    public function setPeriodAmount20($periodAmount20 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount20) && !(is_float($periodAmount20) || is_numeric($periodAmount20))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount20, true), gettype($periodAmount20)), __LINE__);
        }
        $this->periodAmount20 = $periodAmount20;
        return $this;
    }
    /**
     * Get periodAmount21 value
     * @return float|null
     */
    public function getPeriodAmount21()
    {
        return $this->periodAmount21;
    }
    /**
     * Set periodAmount21 value
     * @param float $periodAmount21
     * @return \StructType\Budget
     */
    public function setPeriodAmount21($periodAmount21 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount21) && !(is_float($periodAmount21) || is_numeric($periodAmount21))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount21, true), gettype($periodAmount21)), __LINE__);
        }
        $this->periodAmount21 = $periodAmount21;
        return $this;
    }
    /**
     * Get periodAmount22 value
     * @return float|null
     */
    public function getPeriodAmount22()
    {
        return $this->periodAmount22;
    }
    /**
     * Set periodAmount22 value
     * @param float $periodAmount22
     * @return \StructType\Budget
     */
    public function setPeriodAmount22($periodAmount22 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount22) && !(is_float($periodAmount22) || is_numeric($periodAmount22))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount22, true), gettype($periodAmount22)), __LINE__);
        }
        $this->periodAmount22 = $periodAmount22;
        return $this;
    }
    /**
     * Get periodAmount23 value
     * @return float|null
     */
    public function getPeriodAmount23()
    {
        return $this->periodAmount23;
    }
    /**
     * Set periodAmount23 value
     * @param float $periodAmount23
     * @return \StructType\Budget
     */
    public function setPeriodAmount23($periodAmount23 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount23) && !(is_float($periodAmount23) || is_numeric($periodAmount23))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount23, true), gettype($periodAmount23)), __LINE__);
        }
        $this->periodAmount23 = $periodAmount23;
        return $this;
    }
    /**
     * Get periodAmount24 value
     * @return float|null
     */
    public function getPeriodAmount24()
    {
        return $this->periodAmount24;
    }
    /**
     * Set periodAmount24 value
     * @param float $periodAmount24
     * @return \StructType\Budget
     */
    public function setPeriodAmount24($periodAmount24 = null)
    {
        // validation for constraint: float
        if (!is_null($periodAmount24) && !(is_float($periodAmount24) || is_numeric($periodAmount24))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($periodAmount24, true), gettype($periodAmount24)), __LINE__);
        }
        $this->periodAmount24 = $periodAmount24;
        return $this;
    }
    /**
     * Get amount value
     * @return float|null
     */
    public function getAmount()
    {
        return $this->amount;
    }
    /**
     * Set amount value
     * @param float $amount
     * @return \StructType\Budget
     */
    public function setAmount($amount = null)
    {
        // validation for constraint: float
        if (!is_null($amount) && !(is_float($amount) || is_numeric($amount))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($amount, true), gettype($amount)), __LINE__);
        }
        $this->amount = $amount;
        return $this;
    }
    /**
     * Get accountingBook value
     * @return \StructType\RecordRef|null
     */
    public function getAccountingBook()
    {
        return $this->accountingBook;
    }
    /**
     * Set accountingBook value
     * @param \StructType\RecordRef $accountingBook
     * @return \StructType\Budget
     */
    public function setAccountingBook(\StructType\RecordRef $accountingBook = null)
    {
        $this->accountingBook = $accountingBook;
        return $this;
    }
    /**
     * Get customFieldList value
     * @return \StructType\CustomFieldList|null
     */
    public function getCustomFieldList()
    {
        return $this->customFieldList;
    }
    /**
     * Set customFieldList value
     * @param \StructType\CustomFieldList $customFieldList
     * @return \StructType\Budget
     */
    public function setCustomFieldList(\StructType\CustomFieldList $customFieldList = null)
    {
        $this->customFieldList = $customFieldList;
        return $this;
    }
    /**
     * Get internalId value
     * @return string|null
     */
    public function getInternalId()
    {
        return $this->internalId;
    }
    /**
     * Set internalId value
     * @param string $internalId
     * @return \StructType\Budget
     */
    public function setInternalId($internalId = null)
    {
        // validation for constraint: string
        if (!is_null($internalId) && !is_string($internalId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($internalId, true), gettype($internalId)), __LINE__);
        }
        $this->internalId = $internalId;
        return $this;
    }
}
