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

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

namespace Drupal\xero\TypedData\Definition;

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

/**
 * Xero Item data definition.
 */
class ItemDefinition extends ComplexDataDefinitionBase implements XeroDefinitionInterface {

  use TaxTypeTrait;

  /**
   * {@inheritdoc}
   *
   * @todo additional properties for items - http://developer.xero.com/documentation/api/items/
   */
  public function getPropertyDefinitions() {
    if (!isset($this->propertyDefinitions)) {
      $info = &$this->propertyDefinitions;

      $info['ItemID'] = DataDefinition::create('string')
        ->setLabel('Item ID')
        ->addConstraint('XeroGuidConstraint');

      // Writeable.
      $info['Code'] = DataDefinition::create('string')
        ->setRequired(TRUE)
        ->setLabel('Code')
        ->addConstraint('Length', ['max' => 30]);
      $info['Name'] = DataDefinition::create('string')->setLabel('Name');

      // Recommended.
      $info['Description'] = DataDefinition::create('string')->setLabel('Description');
      $info['PurchaseDescription'] = DataDefinition::create('string')->setLabel('Purchase Description');
      $info['PurchaseDetails'] = DetailDefinition::create('xero_detail')->setLabel('Purchase Details');
      $info['SalesDetails'] = DetailDefinition::create('xero_detail')->setLabel('Sales Details');

      $info['IsSold'] = DataDefinition::create('boolean')->setLabel('Is Sold?');
      $info['IsPurchased'] = DataDefinition::create('boolean')->setLabel('Is Purchased?');
      $info['IsTrackedAsInventory'] = DataDefinition::create('boolean')->setLabel('Is Tracked As Inventory?');
      $info['InventoryAssetAccountCode'] = DataDefinition::create('string')->setLabel('Inventory Asset Account Code');
      $info['TotalCostPool'] = DataDefinition::create('float')->setLabel('Total Cost Pool');
      $info['QuantityOnHand'] = DataDefinition::create('float')->setLabel('Quantity On Hand');
      $info['UpdatedDateUTC'] = DataDefinition::create('datetime_iso8601')
        ->setLabel('Updated Date')
        ->setReadOnly(TRUE);

      $info['UnitPrice'] = DataDefinition::create('float')->setLabel('Unit Price');
      $info['AccountCode'] = DataDefinition::create('string')->setLabel('Account Code');
      $info['COGSAccountCode'] = DataDefinition::create('string')->setLabel('COGS Account Code');
      $info['TaxType'] = DataDefinition::create('string')
        ->setLabel('Tax Type')
        ->addConstraint('XeroChoiceConstraint', ['choices' => self::getTaxTypes()]);

    }
    return $this->propertyDefinitions;
  }

}

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

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