/**
  * {@inheritdoc}
  */
 function loadPaymentIds($category_id, $owner_id)
 {
     $allowed_payment_status_ids = [];
     foreach ($this->getAllowedPaymentStatusIds() as $payment_status_id) {
         $allowed_payment_status_ids = array_merge($allowed_payment_status_ids, array($payment_status_id), $this->paymentStatusManager->getDescendants($payment_status_id));
     }
     if (empty($allowed_payment_status_ids)) {
         throw new \RuntimeException('There are no allowed payment statuses. Use self::setAllowedPaymentStatusIds() to set the allowed payment statuses.');
     }
     $query = $this->database->select('payment_queue', 'pq');
     $query->addJoin('INNER', 'payment', 'p', 'p.id = pq.payment_id');
     $query->addJoin('INNER', 'payment__payment_statuses', 'p_ps', 'p.id = p_ps.entity_id AND p.current_payment_status_delta = p_ps.delta');
     $query->fields('pq', array('payment_id'))->condition('pq.category_id', $category_id)->condition('p_ps.payment_statuses_plugin_id', $allowed_payment_status_ids)->condition('p.owner', $owner_id)->condition('pq.queue_id', $this->queueId);
     $payment_ids = $query->execute()->fetchCol();
     return $this->eventDispatcher->alterQueueLoadedPaymentIds($this->queueId, $category_id, $owner_id, $payment_ids);
 }