'beschreibung2', 'bezeichnung' => 'beschreibung', 'rabatt' => 'rabatt', 'gruppensumme' => 'gruppensumme', 'projekt' => 'projekt', 'reihenfolge' => 'sort', ]; /** * @param array $inputValues * @param array|null $inputMapping * * @return Result\ItemResult */ public function insert($inputValues, $inputMapping = null) { $inputValues['extrarechnung'] = 0; return parent::insert($inputValues, $this->inputMapping); } /** * @param int $id * @param array $inputVars * @param array|null $inputMapping * * @return Result\ItemResult */ public function edit($id, $inputVars, $inputMapping = null) { return parent::edit($id, $inputVars, $this->inputMapping); } /** * @return void */ protected function configure() { $this->setTableName(self::TABLE_NAME); $this->registerFilterParams([ 'bezeichnung' => 'g.beschreibung %LIKE%', 'bezeichnung_equals' => 'g.beschreibung LIKE', 'bezeichnung_startswith' => 'g.beschreibung LIKE%', 'bezeichnung_endswith' => 'g.beschreibung %LIKE', 'gruppensumme' => 'g.gruppensumme =', 'rabatt' => 'g.rabatt =', 'rabatt_gt' => 'g.rabatt >', 'rabatt_gte' => 'g.rabatt >=', 'rabatt_lt' => 'g.rabatt <', 'rabatt_lte' => 'g.rabatt <=', ]); $this->registerSortingParams([ 'bezeichnung' => 'g.beschreibung', 'reihenfolge' => 'g.sort', 'rabatt' => 'g.rabatt', ]); $this->registerValidationRules([ 'id' => 'not_present', 'bezeichnung' => 'required', 'rabatt' => 'decimal', 'reihenfolge' => 'numeric', 'projekt' => 'numeric', 'gruppensumme' => 'boolean', ]); $this->registerIncludes([ 'projekt' => [ 'key' => 'projekt', 'resource' => ProjectResource::class, 'columns' => [ 'p.id', 'p.name', 'p.abkuerzung', 'p.beschreibung', 'p.farbe', ], ], ]); } /** * @return SelectQuery */ protected function selectAllQuery() { return $this->db->select() ->cols([ 'g.id', 'g.beschreibung AS bezeichnung', 'g.beschreibung2 AS beschreibung', 'g.rabatt', 'g.gruppensumme', 'g.projekt', 'g.sort AS reihenfolge', ]) ->from(self::TABLE_NAME . ' AS g') ->where('g.extrarechnung = 0'); // 0 = Gemeinsame Rechnung; 1 = Eigene Rechnung; 2 = Sammelrechnung } /** * @return SelectQuery */ protected function selectOneQuery() { return $this->selectAllQuery()->where('g.id = :id'); } /** * @return SelectQuery */ protected function selectIdsQuery() { return $this->selectAllQuery()->where('g.id IN (:ids)'); } /** * @return InsertQuery */ protected function insertQuery() { return $this->db->insert()->into(self::TABLE_NAME); } /** * @return UpdateQuery */ protected function updateQuery() { return $this->db->update()->table(self::TABLE_NAME)->where('id = :id'); } /** * @return false */ protected function deleteQuery() { return false; } }