<?php
/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf
 */


class DBWorkKursplanungDozentenKomm extends DBWorkGenerated
{
  public function __construct($pDBTyp = 1, $pNewInstance = false)
  {
    parent::__construct($pDBTyp, $pNewInstance);
    $this->select = 'id, kursplanung_dozenten_id, art, wert, bezeichner, sort';
    $this->_dataModulFields = array('id', 'kursplanung_dozenten_id', 'art', 'wert', 'bezeichner', 'sort');
    $this->orderby = 'name';
  }

  
  public function getNewObject()
  {
    return new KursplanungDozentenKomm();
  }

  public function getTableName(): string
  {
    return 'kursplanung_doz_komm';
  }

  public function getDozentenKommByKursplanungDozentenIds($pKursplanungDozentenIds)
  {
    if (count($pKursplanungDozentenIds) === 0) {
      return array();
    }

    $query = $this->getSelectQueryBuilder();
    $query->select($this->select)
          ->from($this->getTableName())
          ->where('kursplanung_dozenten_id IN (:kursplanungdozids:)')
          ->paramIntArray('kursplanungdozids', $pKursplanungDozentenIds);
    $this->dboperation->clear();
    $this->dboperation->query($query->getSQL());

    return $this->getAllRows();
  }

  
  public function deleteDozentenKommByKursplanungDozentId($pKursplanungDozentenId)
  {
    $cleanKursplanungDozentId = $this->dboperation->getInt4Sql($pKursplanungDozentenId);

    $this->dboperation->clear();
    $this->dboperation->execute('DELETE FROM ' . $this->getTableName() . ' WHERE kursplanung_dozenten_id=' . $cleanKursplanungDozentId);
  }

  
  public function deleteDozentenKommByKursplanungId($pKursplanungId)
  {
    $cleanKursplanungId = $this->dboperation->getInt4Sql($pKursplanungId);

    $this->dboperation->clear();
    $this->dboperation->execute('DELETE FROM ' . $this->getTableName() . ' WHERE kursplanung_dozenten_id IN (SELECT id FROM kursplanung_dozenten WHERE kursplanung_id=' . $cleanKursplanungId . ')');
  }

  public function insertOne($pDatamodul, $pDummyField, string $pIdFieldName = 'id', bool $pDontProtocol = false, bool $pDmzBetrieb = false): int
  {
    $inserter = new \DBInserterOhneGenTable($this, $this->getTableName(), $this->_dataModulFields);
    $pDatamodul->id = $inserter->insert($pDatamodul, $pIdFieldName, $pDontProtocol, $pDmzBetrieb);

    return $pDatamodul->id;
  }
}