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

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

namespace Drupal\xero\TypedData\Definition;

/**
 * Xero Repeating Invoice definition.
 */
class RepeatingInvoiceDefinition extends InvoiceDefinition implements XeroDefinitionInterface {

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

      $info['RepeatingInvoiceID'] = $info['InvoiceID'];

      // Remove invoice properties not on repeating invoices.
      unset($info['InvoiceID']);
      unset($info['Url']);
      unset($info['InvoiceNumber']);
      unset($info['CurrencyRate']);
      unset($info['SentToContact']);
      unset($info['ExpectedPaymentDate']);
      unset($info['PlannedPaymentDate']);
      unset($info['TotalDiscount']);
      unset($info['AmountDue']);
      unset($info['AmountPaid']);
      unset($info['AmountCredited']);
      unset($info['CreditNotes']);
      unset($info['UpdatedDateUTC']);

      // Add repeating invoice specific properties.
      $info['Schedule'] = ScheduleDefinition::create('xero_schedule')
        ->setLabel('Schedule');

      // Set all properties as read-only.
      foreach ($info as $key => $property) {
        /** @var \Drupal\Core\TypedData\DataDefinitionInterface $property */
        $property->setReadOnly(TRUE);
      }
    }
    return $this->propertyDefinitions;
  }

}

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

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