db->select() ->cols(['a.id']) ->from('auftrag AS a') ->where('a.belegnr = ?', $filter['auftrag']); if (isset($filter['projekt'])) { $select->where('a.projekt = ?', $filter['projekt']); } $orderId = $this->db->fetchValue($select->getStatement(), $select->getBindValues()); if ($orderId > 0) { $filter['auftragid'] = $orderId; unset($filter['auftrag']); } } return parent::getList($filter, $sorting, $columns, $includes, $page, $paging); } /** * @return void */ protected function configure() { $this->setTableName(self::TABLE_NAME); $this->registerFilterParams([ 'status' => 'li.status LIKE', 'belegnr' => 'li.belegnr %LIKE%', 'belegnr_equals' => 'li.belegnr LIKE', 'belegnr_startswith' => 'li.belegnr LIKE%', 'belegnr_endswith' => 'li.belegnr %LIKE', 'kundennummer' => 'li.kundennummer %LIKE%', 'kundennummer_equals' => 'li.kundennummer LIKE', 'kundennummer_startswith' => 'li.kundennummer LIKE%', 'kundennummer_endswith' => 'li.kundennummer %LIKE', 'datum' => 'li.datum =', 'datum_gt' => 'li.datum >', 'datum_gte' => 'li.datum >=', 'datum_lt' => 'li.datum <', 'datum_lte' => 'li.datum <=', 'auftrag' => 'li.auftrag LIKE', 'auftragid' => 'li.auftragid =', 'projekt' => 'li.projekt =', ]); $this->registerSortingParams([ 'belegnr' => 'li.belegnr', 'datum' => 'li.datum', ]); $this->registerIncludes([ 'positionen' => [ 'key' => 'positionen', 'resource' => DocumentDeliveryNotePositionResource::class, 'filter' => [ [ 'property' => 'lieferschein', 'value' => ':id', ], ], 'sort' => [ 'sort' => 'ASC', ], ], 'protokoll' => [ 'key' => 'protokoll', 'resource' => DocumentDeliveryNoteProtocolResource::class, 'filter' => [ [ 'property' => 'lieferschein', 'value' => ':id', ], ], 'columns' => [ 'liproto.id', 'liproto.zeit', 'liproto.bearbeiter', 'liproto.grund', ], 'sort' => [ 'zeit' => 'ASC', ], ], ]); } /** * @return SelectQuery */ protected function selectOneQuery() { return $this->selectAllQuery()->where('li.id = :id'); } /** * @return SelectQuery */ protected function selectAllQuery() { return $this->db->select() ->cols([ 'li.id',# 'li.firma',# 'li.projekt',# // Index 'li.status',# // Index 'li.lieferscheinart',# 'li.belegnr',# // Index 'li.kundennummer',# 'li.ihrebestellnummer',# 'li.datum',# // Index 'li.auftrag',# 'li.auftragid',# // Index 'li.freitext',# 'li.adresse',# // Index 'li.typ',# 'li.name',# 'li.titel',# 'li.ansprechpartnerid',# 'li.ansprechpartner',# 'li.abteilung',# 'li.unterabteilung',# 'li.adresszusatz',# 'li.strasse',# 'li.plz',# 'li.ort',# 'li.land',# // Index 'li.bundesstaat',# 'li.telefon',# 'li.telefax',# 'li.email',# 'li.anschreiben',# //'li.betreff',# //'li.vertriebid',# // Index //'li.vertrieb',# 'li.versandart',# 'li.versand',# 'li.versendet',# 'li.versendet_am',# 'li.versendet_per',# 'li.versendet_durch',# //'li.inbearbeitung_user',# //'li.logdatei',# //'li.schreibschutz',# 'li.ustid',# 'li.ust_befreit',# 'li.usereditid',# // Index 'li.useredittimestamp',# 'li.lieferantenretoure',# 'li.lieferantenretoureinfo',# 'li.lieferant',# 'li.pdfarchiviert',# 'li.pdfarchiviertversion',# 'li.internebemerkung',# 'li.ohne_briefpapier',# 'li.lieferid',# 'li.projektfiliale',# 'li.projektfiliale_eingelagert',# 'li.zuarchivieren',# 'li.internebezeichnung',# 'li.kommissionierung',# 'li.sprache',# //'li.angelegtam',# //'li.bundesland',# 'li.gln',# //'li.rechnungid',# //'li.bearbeiterid',# 'li.bearbeiter',# 'li.keinerechnung',# // Index 'li.ohne_artikeltext',# 'li.abweichendebezeichnung',# 'li.kostenstelle',# 'li.bodyzusatz',# 'li.lieferbedingung',# 'li.standardlager',# 'li.kommissionskonsignationslager',# 'li.teillieferungvon',# 'li.teillieferungnummer',# 'li.kiste',# ])->from(self::TABLE_NAME . ' AS li'); } /** * @return SelectQuery */ protected function selectIdsQuery() { return $this->selectAllQuery()->where('li.id IN (:ids)'); } /** * @return false */ protected function insertQuery() { return false; } /** * @return false */ protected function updateQuery() { return false; } /** * @return false */ protected function deleteQuery() { return false; } }