diff --git a/src/XeroPHP/Models/PayrollAU/PayItem/EarningsRate.php b/src/XeroPHP/Models/PayrollAU/PayItem/EarningsRate.php index bd85671d..29ed2ac0 100644 --- a/src/XeroPHP/Models/PayrollAU/PayItem/EarningsRate.php +++ b/src/XeroPHP/Models/PayrollAU/PayItem/EarningsRate.php @@ -28,13 +28,13 @@ class EarningsRate extends Remote\Model * Most payments are subject to tax, so you should only set this value if you are sure that a payment * is exempt from PAYG withholding. * - * @property string IsExemptFromTax + * @property bool IsExemptFromTax */ /** * See the ATO website for details of which payments are exempt from SGC. * - * @property string IsExemptFromSuper + * @property bool IsExemptFromSuper */ /** @@ -71,7 +71,7 @@ class EarningsRate extends Remote\Model /** * Indicates that this earnings rate should accrue leave. Only applicable if RateType is MULTIPLE. * - * @property float AccrueLeave + * @property bool AccrueLeave */ /** @@ -82,40 +82,99 @@ class EarningsRate extends Remote\Model */ const ALLOWANCETYPE_CAR = 'CAR'; + const ALLOWANCETYPE_TRANSPORT = 'TRANSPORT'; + + const ALLOWANCETYPE_TRAVEL = 'TRAVEL'; + const ALLOWANCETYPE_LAUNDRY = 'LAUNDRY'; const ALLOWANCETYPE_MEALS = 'MEALS'; - const ALLOWANCETYPE_TRANSPORT = 'TRANSPORT'; + const ALLOWANCETYPE_JOBKEEPER = 'JOBKEEPER'; - const ALLOWANCETYPE_TRAVEL = 'TRAVEL'; + const ALLOWANCETYPE_TOOLS = 'TOOLS'; - const ALLOWANCETYPE_OTHER = 'OTHER'; + const ALLOWANCETYPE_TASKS = 'TASKS'; + const ALLOWANCETYPE_QUALIFICATIONS = 'QUALIFICATIONS'; + + const ALLOWANCETYPE_OTHER = 'OTHER'; /** - * Option Amount for FIXEDAMOUNT RateType EarningsRate. + * An optional category that can be added when AllowanceType is OTHER * - * @property float Amount + * @property string AllowanceCategory */ - const EARNINGSTYPE_FIXED = 'FIXED'; + const ALLOWANCECATEGORY_NONDEDUCTIBLE = 'NONDEDUCTIBLE'; + + const ALLOWANCECATEGORY_UNIFORM = 'UNIFORM'; + + const ALLOWANCECATEGORY_PRIVATEVEHICLE = 'PRIVATEVEHICLE'; + + const ALLOWANCECATEGORY_HOMEOFFICE = 'HOMEOFFICE'; + + const ALLOWANCECATEGORY_TRANSPORT = 'TRANSPORT'; + const ALLOWANCECATEGORY_GENERAL = 'GENERAL'; + + const ALLOWANCECATEGORY_OTHER = 'OTHER'; + + /** + * The rate's Earnings Type + * + * @property string EarningsType + */ const EARNINGSTYPE_ORDINARYTIMEEARNINGS = 'ORDINARYTIMEEARNINGS'; const EARNINGSTYPE_OVERTIMEEARNINGS = 'OVERTIMEEARNINGS'; const EARNINGSTYPE_ALLOWANCE = 'ALLOWANCE'; - + + const EARNINGSTYPE_LUMPSUMA = 'LUMPSUMA'; + + const EARNINGSTYPE_LUMPSUMB = 'LUMPSUMB'; + const EARNINGSTYPE_LUMPSUMD = 'LUMPSUMD'; - + + const EARNINGSTYPE_LUMPSUME = 'LUMPSUME'; + const EARNINGS_TYPE_EMPLOYMENTTERMINATIONPAYMENT = 'EMPLOYMENTTERMINATIONPAYMENT'; + + const EARNINGSTYPE_BONUSESANDCOMMISSIONS = 'BONUSESANDCOMMISSIONS'; + + const EARNINGSTYPE_LUMPSUMW = 'LUMPSUMW'; + + const EARNINGSTYPE_DIRECTORSFEES = 'DIRECTORSFEES'; + + const EARNINGSTYPE_PAIDPARENTALLEAVE = 'PAIDPARENTALLEAVE'; + const EARNINGSTYPE_WORKERSCOMPENSATION = 'WORKERSCOMPENSATION'; + + /** + * @deprecated this Earning Type is no longer used + */ + const EARNINGSTYPE_FIXED = 'FIXED'; + + /** + * The rate's Rate Type + * + * @property string RateType + */ const RATETYPE_FIXEDAMOUNT = 'FIXEDAMOUNT'; const RATETYPE_MULTIPLE = 'MULTIPLE'; const RATETYPE_RATEPERUNIT = 'RATEPERUNIT'; + /** + * A required Payment Type when RateType is EMPLOYMENTTERMINATIONPAYMENT + * + * @property string EmploymentTerminationPaymentType + */ + const EMPLOYMENTTERMINATIONPAYMENTTYPE_O = 'O'; + + const EMPLOYMENTTERMINATIONPAYMENTTYPE_R = 'R'; + /** * Get the resource uri of the class (Contacts) etc. * @@ -181,8 +240,9 @@ public static function getProperties() 'Name' => [true, self::PROPERTY_TYPE_STRING, null, false, false], 'AccountCode' => [true, self::PROPERTY_TYPE_STRING, null, false, false], 'TypeOfUnits' => [true, self::PROPERTY_TYPE_STRING, null, false, false], - 'IsExemptFromTax' => [true, self::PROPERTY_TYPE_STRING, null, false, false], - 'IsExemptFromSuper' => [true, self::PROPERTY_TYPE_STRING, null, false, false], + 'IsExemptFromTax' => [true, self::PROPERTY_TYPE_BOOLEAN, null, false, false], + 'IsExemptFromSuper' => [true, self::PROPERTY_TYPE_BOOLEAN, null, false, false], + 'IsReportableAsW1' => [false, self::PROPERTY_TYPE_BOOLEAN, null, false, false], 'EarningsType' => [true, self::PROPERTY_TYPE_ENUM, null, false, false], 'EarningsRateID' => [false, self::PROPERTY_TYPE_STRING, null, false, false], 'RateType' => [false, self::PROPERTY_TYPE_ENUM, null, false, false], @@ -190,8 +250,10 @@ public static function getProperties() 'Multiplier' => [false, self::PROPERTY_TYPE_FLOAT, null, false, false], 'AccrueLeave' => [false, self::PROPERTY_TYPE_BOOLEAN, null, false, false], 'Amount' => [false, self::PROPERTY_TYPE_FLOAT, null, false, false], + 'EmploymentTerminationPaymentType' => [false, self::PROPERTY_TYPE_ENUM, null, false, false], 'CurrentRecord' => [false, self::PROPERTY_TYPE_BOOLEAN, null, false, false], - 'AllowanceType' => [false, self::PROPERTY_TYPE_ENUM, null, false, false] + 'AllowanceType' => [false, self::PROPERTY_TYPE_ENUM, null, false, false], + 'AllowanceCategory' => [false, self::PROPERTY_TYPE_ENUM, null, false, false] ]; } @@ -432,7 +494,7 @@ public function setMultiplier($value) } /** - * @return float + * @return bool */ public function getAccrueLeave() { @@ -440,7 +502,7 @@ public function getAccrueLeave() } /** - * @param float $value + * @param bool $value * * @return EarningsRate */ @@ -493,4 +555,46 @@ public function setCurrentRecord($value) return $this; } + + /** + * @return string + */ + public function getEmploymentTerminationPaymentType() + { + return $this->_data['EmploymentTerminationPaymentType']; + } + + /** + * @param string $value + * + * @return EarningRate + */ + public function setEmploymentTerminationPaymentType($value) + { + $this->propertyUpdated('EmploymentTerminationPaymentType', $value); + $this->_data['EmploymentTerminationPaymentType'] = $value; + + return $this; + } + + /** + * @return string + */ + public function getAllowanceCategory() + { + return $this->_data['AllowanceCategory']; + } + + /** + * @param string $value + * + * @return EarningRate + */ + public function setAllowanceCategory($value) + { + $this->propertyUpdated('AllowanceCategory', $value); + $this->_data['AllowanceCategory'] = $value; + + return $this; + } }