You are here

function tmgmt_extension_suit_add_to_check_status in TMGMT Extension Suite 8.2

Same name and namespace in other branches
  1. 8 tmgmt_extension_suit.module \tmgmt_extension_suit_add_to_check_status()

Add items to "check_status" queue.

2 calls to tmgmt_extension_suit_add_to_check_status()
CheckStatusTest::testCheckStatus in tests/src/Functional/CheckStatusTest.php
Test tmgmt_extension_suit_add_to_check_status() function.
tmgmt_extension_suit_cron in ./tmgmt_extension_suit.module
Implements hook_cron().

File

./tmgmt_extension_suit.module, line 51

Code

function tmgmt_extension_suit_add_to_check_status() {

  // Query returns ids of active/finished jobs with target language != 'und' and
  // which contains at least one job_item in state != 'review'. We need to take
  // into consideration finished jobs because there might be situations when
  // translator/editor has edited strings in a Smartling file and published
  // them again. In this case we should pull edits into Drupal.
  $query = Drupal::database()
    ->select('tmgmt_job', 'tj');
  $query
    ->join('tmgmt_job_item', 'tji', 'tji.tjid = tj.tjid');
  $query
    ->fields('tj', [
    'tjid',
  ])
    ->distinct()
    ->condition('tj.state', [
    JobInterface::STATE_ACTIVE,
    JobInterface::STATE_FINISHED,
  ], 'IN')
    ->condition('tj.target_language', 'und', '!=')
    ->condition('tji.state', JobItemInterface::STATE_REVIEW, '!=');
  $entities = $query
    ->execute()
    ->fetchCol();
  foreach ($entities as $eid) {
    Drupal::service('tmgmt_extension_suit.utils.queue_unique_item')
      ->addItem('tmgmt_extension_suit_check_status', [
      'id' => (int) $eid,
    ]);
  }
}