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

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

namespace Drupal\xero\TypedData\Definition;

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

/**
 * Xero Organisation definition.
 */
class OrganisationDefinition extends ComplexDataDefinitionBase implements XeroDefinitionInterface {

  /**
   * A list of valid Xero Version types.
   *
   * @var string[]
   *
   * @deprecated in xero:3.0.0-alpha4 and is removed from xero:3.0.0. Use the
   *             constant VERSION_TYPES instead.
   */
  public static $VERSIONTYPES = self::VERSION_TYPES;

  /**
   * A list of valid Xero Version types.
   *
   * @const string[]
   */
  public const VERSION_TYPES = [
    'AU', 'NZ', 'GLOBAL', 'UK', 'US', 'AUONRAMP', 'NZONRAMP', 'GLOBALONRAMP',
    'UKONRAMP', 'USONRAMP',
  ];

  /**
   * A list of valid Xero organisation types.
   *
   * @const string[]
   */
  public const ORGANISATION_TYPES = [
    'ACCOUNTING_PRACTICE', 'CHARITY', 'CLUB_OR_SOCIETY', 'COMPANY',
    'INDIVIDUAL', 'LOOK_THROUGH_COMPANY', 'NOT_FOR_PROFIT', 'PARTNERSHIP',
    'S_CORPORATION', 'SELF_MANAGED_SUPERANNUATION_FUND', 'SOLE_TRADER',
    'SUPERANNUATION_FUND', 'TRUT',

    // May be deprecated, but kept for posterity.
    'CLUBSOCIETY', 'PRACTICE', 'SOLETRADER',
  ];

  /**
   * A list of valid organisation classes.
   *
   * @const string[]
   */
  public const ORGANISATION_CLASSES = [
    'DEMO', 'TRIAL', 'STARTER', 'STANDARD', 'PREMIUM', 'PREMIUM_20',
    'PREMIUM_50', 'PREMIUM_100', 'LEDGER', 'GST_CASHBOOK', 'NON_GST_CASHBOOK',
    'ULTIMATE',
  ];

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

      $info['APIKey'] = DataDefinition::create('string')
        ->setLabel('API Key')
        ->setReadOnly(TRUE);
      $info['Name'] = DataDefinition::create('string')
        ->setLabel('Name')
        ->setReadOnly(TRUE);
      $info['LegalName'] = DataDefinition::create('string')
        ->setLabel('Legal Name')
        ->setReadOnly(TRUE);
      $info['PaysTax'] = DataDefinition::create('boolean')
        ->setLabel('Pays Tax')
        ->setReadOnly(TRUE);
      $info['Version'] = DataDefinition::create('string')
        ->setLabel('Version')
        ->setReadOnly(TRUE)
        ->addConstraint('XeroChoiceConstraint', ['choices' => self::VERSION_TYPES]);
      $info['BaseCurrency'] = DataDefinition::create('string')
        ->setLabel('Base Currency')
        ->setReadOnly(TRUE);
      $info['CountryCode'] = DataDefinition::create('string')
        ->setLabel('Country Code')
        ->setReadOnly(TRUE);
      $info['IsDemoCompany'] = DataDefinition::create('boolean')
        ->setLabel('Demo Company')
        ->setReadOnly(TRUE);
      $info['OrganisationStatus'] = DataDefinition::create('string')
        ->setLabel('Status')
        ->setReadOnly(TRUE)
        ->addConstraint('XeroChoiceConstraint', ['ACTIVE']);
      $info['RegistrationNumber'] = DataDefinition::create('string')
        ->setLabel('Registration Number')
        ->setReadOnly(TRUE);
      $info['TaxNumber'] = DataDefinition::create('string')
        ->setLabel('Tax Number')
        ->setReadOnly(TRUE);
      $info['FinancialYearEndDay'] = DataDefinition::create('string')
        ->setLabel('Fiscal Year Last Day')
        ->setReadOnly(TRUE);
      $info['FinancialYearEndMonth'] = DataDefinition::create('integer')
        ->setLabel('Fiscal Year Last Month')
        ->setReadOnly(TRUE);
      $info['SalesTaxBasis'] = DataDefinition::create('string')
        ->setLabel('Sales Tax Basis')
        ->setReadOnly(TRUE)
        ->addConstraint('XeroChoiceConstraint', [
          'choices' => [
            'PAYMENTS', 'INVOICE', 'CASH', 'ACCRUAL', 'FLATRATECASH',
            'FLATRATEACCRUAL', 'ACCRUALS', 'NONE',
          ],
        ]);
      $info['SalesTaxPeriod'] = DataDefinition::create('string')
        ->setLabel('Sales Tax Period')
        ->setReadOnly(TRUE)
        ->addConstraint('XeroChoiceConstraint', [
          'choices' => [
            'MONTHLY', 'QUARTERLY1', 'QUARTERLY2', 'QUARTERLY3', 'ANNUALLY',
            'ONEMONTHS', 'TWOMONTHS', 'SIXMONTHS', '1MONTHLY', '2MONTHLY',
            '3MONTHLY', '6MONTHLY', 'QUARTERLY',
          ],
        ]);
      $info['PeriodLockDate'] = DataDefinition::create('datetime_iso8601')
        ->setLabel('Period Lock Date')
        ->setReadOnly(TRUE);
      $info['EndOfYearLockDate'] = DataDefinition::create('datetime_iso8601')
        ->setLabel('End of Year Lock Date')
        ->setReadOnly(TRUE);
      $info['CreatedDateUTC'] = DataDefinition::create('datetime_iso8601')
        ->setLabel('Created Date')
        ->setReadOnly(TRUE);
      $info['OrganisationType'] = DataDefinition::create('string')
        ->setLabel('Type')
        ->setReadOnly(TRUE)
        ->addConstraint('XeroChoiceConstraint', [
          'choices' => self::ORGANISATION_TYPES,
        ]);
      $info['OrganisationEntityType'] = DataDefinition::create('string')
        ->setLabel('Entity Type')
        ->setReadOnly(TRUE)
        ->addConstraint('XeroChoiceConstraint', [
          'choices' => self::ORGANISATION_TYPES,
        ]);
      $info['OrganisationClass'] = DataDefinition::create('string')
        ->setLabel('Class')
        ->setReadOnly(TRUE)
        ->addConstraint('XeroChoiceConstraint', [
          'choices' => self::ORGANISATION_CLASSES,
        ]);
      $info['Timezone'] = DataDefinition::create('string')
        ->setLabel('Timezone')
        ->setReadOnly(TRUE);
      $info['ShortCode'] = DataDefinition::create('string')
        ->setLabel('Short Code')
        ->setReadOnly(TRUE);
      $info['LineOfBusiness'] = DataDefinition::create('string')
        ->setLabel('Line of Business')
        ->setReadOnly(TRUE);
      $info['Addresses'] = ListDataDefinition::create('xero_address')
        ->setLabel('Address')
        ->setReadOnly(TRUE);
      $info['Phones'] = ListDataDefinition::create('xero_phone')
        ->setLabel('Phone Number')
        ->setReadOnly(TRUE);
      $info['ExternalLinks'] = ListDataDefinition::create('xero_link')
        ->setLabel('External Links')
        ->setReadOnly(TRUE);
    }
    return $this->propertyDefinitions;
  }

}

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

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