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

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

namespace Drupal\xero\TypedData\Definition;

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

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

  use TaxTypeTrait;

  /**
   * {@inheritdoc}
   */
  public function getPropertyDefinitions() {
    if (!isset($this->propertyDefinitions)) {
      $tax_types = ['choices' => self::getTaxTypes()];

      $info = &$this->propertyDefinitions;
      $info['LineItemID'] = DataDefinition::create('string')
        ->setLabel('Line Item Identifier')
        ->addConstraint('XeroGuidConstraint');
      $info['Description'] = DataDefinition::create('string')
        ->setRequired(TRUE)
        ->setLabel('Description');
      $info['Quantity'] = DataDefinition::create('float')->setLabel('Quantity');
      $info['UnitAmount'] = DataDefinition::create('float')->setLabel('Unit amount');
      $info['ItemCode'] = DataDefinition::create('string')->setLabel('Item code')->setDescription('User-defined item code');
      $info['AccountCode'] = DataDefinition::create('string')->setLabel('Account code')->setDescription('User-defined account code');
      $info['Tracking'] = ListDataDefinition::create('xero_tracking_option')
        ->setLabel('Tracking categories')
        ->setDescription('User-defined tracking categories (0, 1, or 2 per line item)')
        ->addConstraint('Count', ['min' => 0, 'max' => 2]);
      $info['TaxType'] = DataDefinition::create('string')
        ->setLabel('Tax Type')
        ->addConstraint('XeroChoiceConstraint', $tax_types);
      $info['TaxAmount'] = DataDefinition::create('float')
        ->setLabel('Tax Amount');
      $info['LineAmount'] = DataDefinition::create('float')
        ->setLabel('Line Amount');
      $info['DiscountAmount'] = DataDefinition::create('float')
        ->setLabel('Discount Amount');
      $info['DiscountRate'] = DataDefinition::create('integer')
        ->setLabel('Discount Rate');
    }
    return $this->propertyDefinitions;
  }

}

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

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