setTableName(self::TABLE_NAME); $this->registerFilterParams([ 'adresse' => 'w.adresse =', 'bearbeiter' => 'w.bearbeiter =', 'adresse_mitarbeiter' => 'w.adresse_mitarbeiter =', 'projekt' => 'w.projekt =', 'stages' => 'w.stages =', 'id_ext' => 'am.id_ext =', ]); $this->registerSortingParams([ 'datum_angelegt' => 'w.datum_angelegt', 'zeit_angelegt' => 'w.zeit_angelegt', 'datum_erinnerung' => 'w.datum_erinnerung', 'zeit_erinnerung' => 'w.zeit_erinnerung', 'datum_abschluss' => 'w.datum_abschluss', 'bezeichnung' => 'w.bezeichnung', 'stages' => 'w.stages', 'prio' => 'w.prio', ]); $this->registerValidationRules([ 'id' => 'not_present', 'id_ext' => 'not_present', 'datum_angelegt' => 'date:Y-m-d', 'zeit_angelegt' => 'time:H:i:s', 'datum_erinnerung' => 'required|date:Y-m-d', 'zeit_erinnerung' => 'required|time:H:i:s', 'datum_abschluss' => 'date:Y-m-d', 'bezeichnung' => 'required|min:3', 'beschreibung' => 'min:3', 'bearbeiter' => 'numeric|db_value:adresse,id', 'adresse_mitarbeiter' => 'numeric|db_value:adresse,id', 'projekt' => 'numeric|db_value:projekt,id', 'stages' => 'numeric|db_value:wiedervorlage_stages,id', 'betrag' => 'decimal', 'chance' => 'integer|between:0,100', 'erinnerung_per_mail' => 'in:0,1', 'abgeschlossen' => 'in:0,1', 'oeffentlich' => 'in:0,1', 'prio' => 'in:0,1', ]); } /** * @return SelectQuery */ protected function selectAllQuery() { return $this->db->select() ->cols([ 'w.id', 'w.adresse', 'w.projekt', //'w.adresse_mitarbeier', 'w.bezeichnung', 'w.beschreibung', //'w.ergebnis', 'w.betrag', //'w.erinnerung', 'w.erinnerung_per_mail', //'w.erinnerung_empfaenger', //'w.link', //'w.module', //'w.action', //'w.parameter', //'w.status', 'w.bearbeiter', 'w.adresse_mitarbeiter', 'w.datum_angelegt', 'w.zeit_angelegt', 'w.datum_erinnerung', 'w.zeit_erinnerung', 'w.datum_abschluss', 'w.oeffentlich', 'w.abgeschlossen', 'w.chance', 'w.prio', 'w.stages', 'w.color', 'am.id_ext', ])->from(self::TABLE_NAME . ' AS w') ->leftJoin( 'api_mapping AS am', 'am.id_int = w.id AND am.tabelle = ' . $this->db->escapeString(self::TABLE_NAME) ); } /** * @return SelectQuery */ protected function selectOneQuery() { return $this->selectAllQuery()->where('w.id = :id'); } /** * @return SelectQuery */ protected function selectIdsQuery() { return $this->selectAllQuery()->where('w.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; } }