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

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

namespace Drupal\xero\TypedData\Definition;

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

/**
 * Xero Linked Transaction definition.
 */
class LinkedTransactionDefinition extends ComplexDataDefinitionBase implements XeroDefinitionInterface {

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

      $info['LinkedTransactionID'] = DataDefinition::create('string')
        ->setLabel('Linked Transaction ID')
        ->addConstraint('XeroGuidConstraint');

      $info['SourceTransactionID'] = DataDefinition::create('string')
        ->setLabel('Source Transaction ID')
        ->setDescription('The identifier of the source transaction. Either an invoice with a type of ACCPAY or a bank transaction of type SPEND.')
        ->setRequired(TRUE)
        ->addConstraint('XeroGuidConstraint');
      $info['SourceLineItemID'] = DataDefinition::create('string')
        ->setLabel('Source Line Item ID')
        ->setDescription('The line item identifier from the source transaction.')
        ->setRequired(TRUE)
        ->addConstraint('XeroGuidConstraint');

      // Optional properties.
      $info['ContactID'] = DataDefinition::create('string')
        ->setLabel('Contact ID')
        ->addConstraint('XeroGuidConstraint');
      $info['TargetTransactionID'] = DataDefinition::create('string')
        ->setLabel('Target Transaction ID')
        ->addConstraint('XeroGuidConstraint');
      $info['TargetLineItemID'] = DataDefinition::create('string')
        ->setLabel('Target Line Item ID')
        ->addConstraint('XeroGuidConstraint');

      // Read only properties.
      $info['Status'] = DataDefinition::create('string')
        ->setLabel('Status')
        ->setReadOnly(TRUE)
        ->addConstraint('XeroChoiceConstraint', [
          'choices' => ['DRAFT', 'APPROVED', 'ONDRAFT', 'BILLED', 'VOIDED'],
        ]);
      $info['Type'] = DataDefinition::create('string')
        ->setLabel('Type')
        ->setReadOnly(TRUE)
        ->addConstraint('XeroChoiceConstraint', [
          'choices' => ['BILLABLEEXPENSE'],
        ]);
      $info['UpdatedDateUTC'] = DataDefinition::create('datetime_iso8601')
        ->setLabel('Updated Date')
        ->setReadOnly(TRUE);
      $info['SourceTransactionTypeCode'] = DataDefinition::create('string')
        ->setLabel('Source Transaction Type')
        ->setReadOnly(TRUE)
        ->addConstraint('XeroChoiceConstraint', [
          'ACCPAY',
          'SPEND',
        ]);

    }
    return $this->propertyDefinitions;
  }

}

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

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