xero-8.x-2.x-dev/src/TypedData/Definition/TaxRateDefinition.php

src/TypedData/Definition/TaxRateDefinition.php
<?php

namespace Drupal\xero\TypedData\Definition;

use Drupal\Core\TypedData\ComplexDataDefinitionBase;
use Drupal\Core\TypedData\DataDefinition;
use Drupal\Core\TypedData\ListDataDefinition;

/**
 * Xero Tax Rate Definition.
 */
class TaxRateDefinition extends ComplexDataDefinitionBase implements XeroDefinitionInterface {

  /**
   * A list of valid Xero tax types.
   *
   * @var string[]
   */
  public static $TAXTYPES = [
    'OUTPUT', 'INPUT', 'NONE', 'GSTONIMPORTS', 'INPUT2', 'ZERORATED', 'OUTPUT2',
    'CAPEXINPUT', 'CAPEXINPUT2', 'CAPEXOUTPUT', 'CAPEXOUTPUT2', 'CAPEXSRINPUT',
    'CAPEXSROUTPUT', 'ECZRINPUT', 'ECZROUPUT', 'ECZROUTPUTSERVICES',
    'EXEMPTINPUT', 'EXEMPTOUTPUT', 'RRINPUT', 'RROUTPUT', 'SRINPUT', 'SROUTPUT',
    'ZERORATEDINPUT', 'ZERORATEDOUTPUT', 'EXEMPTEXPORT', 'EXEMPTEXPENSES',
    'EXEMPTCAPITAL', 'INPUTTAXED', 'BASEXCLUDED', 'GSTONCAPIMPORTS',
  ];

  /**
   * A list of valid Xero report types.
   *
   * @var string[]
   */
  public static $REPORTTYPES = [
    'OUTPUT', 'INPUT', 'EXEMPTOUTPUT', 'INPUTTAXED', 'BASEXCLUDED',
    'EXEMPTEXPENSES', 'EXEMPTCAPITAL', 'EXEMPTEXPORT', 'CAPITALEXINPUT',
    'GSTONCAPIMPORTS', 'GSTONIMPORTS', 'EXEMPTINPUT', 'NONE', 'ECOUTPUT',
    'ECOUTPUTSERVICES', 'ECINPUT', 'ECACQUISITIONS', 'CAPITALSALESOUTPUT',
    'CAPITALEXPENSESINPUT', 'MOSSSALES', 'REVERSECHARGES',
  ];

  /**
   * {@inheritdoc}
   */
  public function getPropertyDefinitions() {
    if (!isset($this->propertyDefinitions)) {
      $info = &$this->propertyDefinitions;

      $info['Name'] = DataDefinition::create('string')
        ->setLabel('Name')
        ->setRequired(TRUE);
      $info['TaxType'] = DataDefinition::create('string')
        ->setLabel('Type')
        ->addConstraint('XeroChoiceConstraint', [
          'choices' => self::$TAXTYPES,
        ]);
      $info['TaxComponents'] = ListDataDefinition::create('xero_tax_component')
        ->setLabel('Components')
        ->setRequired(TRUE);
      $info['Status'] = DataDefinition::create('string')
        ->setLabel('Status')
        ->addConstraint('XeroChoiceConstraint', [
          'choices' => ['DELETED', 'ACTIVE', 'ARCHIVED'],
        ]);
      $info['ReportTaxType'] = DataDefinition::create('string')
        ->setLabel('Report Tax Type')
        ->setDescription('Required in Australia, New Zealand and United Kingdom.')
        ->addConstraint('XeroChoiceConstraint', [
          'choices' => self::$REPORTTYPES,
        ]);
      $info['CanApplyToAssets'] = DataDefinition::create('boolean')
        ->setLabel('Can Apply to Assets')
        ->setReadOnly(TRUE);
      $info['CanApplyToEquity'] = DataDefinition::create('boolean')
        ->setLabel('Can Apply to Equity')
        ->setReadOnly(TRUE);
      $info['CanApplyToExpenses'] = DataDefinition::create('boolean')
        ->setLabel('Can Apply to Expenses')
        ->setReadOnly(TRUE);
      $info['CanApplyToLiabilities'] = DataDefinition::create('boolean')
        ->setLabel('Can Apply to Liabilities')
        ->setReadOnly(TRUE);
      $info['CanApplyToRevenue'] = DataDefinition::create('boolean')
        ->setLabel('Can Apply to Revenue')
        ->setReadOnly(TRUE);
      $info['DisplayTaxRate'] = DataDefinition::create('float')
        ->setLabel('Display Tax Rate')
        ->setReadOnly(TRUE);
      $info['EffectiveRate'] = DataDefinition::create('float')
        ->setLabel('Effective Tax Rate')
        ->setReadOnly(TRUE);
    }
    return $this->propertyDefinitions;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc