setTableName(self::TABLE_NAME); $this->registerFilterParams([ 'status' => 'gu.status LIKE', 'belegnr' => 'gu.belegnr %LIKE%', 'belegnr_equals' => 'gu.belegnr LIKE', 'belegnr_startswith' => 'gu.belegnr LIKE%', 'belegnr_endswith' => 'gu.belegnr %LIKE', 'kundennummer' => 'gu.kundennummer %LIKE%', 'kundennummer_equals' => 'gu.kundennummer LIKE', 'kundennummer_startswith' => 'gu.kundennummer LIKE%', 'kundennummer_endswith' => 'gu.kundennummer %LIKE', 'datum' => 'gu.datum =', 'datum_gt' => 'gu.datum >', 'datum_gte' => 'gu.datum >=', 'datum_lt' => 'gu.datum <', 'datum_lte' => 'gu.datum <=', 'rechnung' => 'gu.rechnung LIKE', 'rechnungid' => 'gu.rechnungid =', 'projekt' => 'gu.projekt =', ]); $this->registerSortingParams([ 'belegnr' => 'gu.belegnr', 'datum' => 'gu.datum', ]); $this->registerIncludes([ 'positionen' => [ 'key' => 'positionen', 'resource' => DocumentCreditNotePositionResource::class, 'filter' => [ [ 'property' => 'gutschrift', 'value' => ':id', ], ], 'sort' => [ 'sort' => 'ASC', ], ], 'protokoll' => [ 'key' => 'protokoll', 'resource' => DocumentCreditNoteProtocolResource::class, 'columns' => [ 'guproto.id', 'guproto.zeit', 'guproto.bearbeiter', 'guproto.grund', ], 'filter' => [ [ 'property' => 'gutschrift', 'value' => ':id', ], ], 'sort' => [ 'zeit' => 'ASC', ], ], ]); } /** * @return SelectQuery */ protected function selectOneQuery() { return $this->selectAllQuery()->where('gu.id = :id'); } /** * @return SelectQuery */ protected function selectAllQuery() { return $this->db->select() ->cols([ 'gu.id', 'gu.firma', 'gu.projekt', // Index 'gu.status', // Index 'gu.anlegeart', 'gu.belegnr', // Index 'gu.datum', // Index 'gu.rechnung', 'gu.rechnungid', 'gu.stornorechnung', 'gu.kundennummer', 'gu.bearbeiter', 'gu.bearbeiterid', 'gu.freitext', 'gu.internebemerkung', 'gu.adresse', // Index 'gu.typ', 'gu.name', 'gu.titel', 'gu.ansprechpartnerid', 'gu.ansprechpartner', 'gu.abteilung', 'gu.unterabteilung', 'gu.adresszusatz', 'gu.strasse', 'gu.plz', 'gu.ort', 'gu.land', 'gu.bundesstaat', 'gu.telefon', 'gu.telefax', 'gu.email', 'gu.anschreiben', //'gu.betreff', //'gu.lieferschein', 'gu.versandart', 'gu.lieferdatum', 'gu.buchhaltung', 'gu.zahlungsweise', 'gu.zahlungsstatus', 'gu.ist', 'gu.soll', 'gu.zahlungszieltage', 'gu.zahlungszieltageskonto', 'gu.zahlungszielskonto', 'gu.gesamtsumme', //'gu.bank_inhaber', //'gu.bank_institut', //'gu.bank_blz', //'gu.bank_konto', //'gu.kreditkarte_typ', //'gu.kreditkarte_inhaber', //'gu.kreditkarte_nummer', //'gu.kreditkarte_pruefnummer', //'gu.kreditkarte_monat', //'gu.kreditkarte_jahr', //'gu.paypalaccount', 'gu.versendet', 'gu.versendet_am', 'gu.versendet_per', 'gu.versendet_durch', //'gu.inbearbeitung', //'gu.logdatei', 'gu.manuell_vorabbezahlt', 'gu.manuell_vorabbezahlt_hinweis', 'gu.nicht_umsatzmindernd', //'gu.dta_datei', //'gu.dta_datei_verband', //'gu.deckungsbeitragcalc', //'gu.deckungsbeitrag', 'gu.erloes_netto', 'gu.umsatz_netto', 'gu.vertriebid', // Index 'gu.vertrieb', 'gu.aktion', 'gu.provision', 'gu.provision_summe', //'gu.gruppe', // Index 'gu.ihrebestellnummer', //'gu.usereditid', // Index //'gu.useredittimestamp', //'gu.realrabatt', 'gu.rabatt', //'gu.rabatt1', //'gu.rabatt2', //'gu.rabatt3', //'gu.rabatt4', //'gu.rabatt5', 'gu.steuersatz_normal', 'gu.steuersatz_zwischen', 'gu.steuersatz_ermaessigt', 'gu.steuersatz_starkermaessigt', 'gu.steuersatz_dienstleistung', 'gu.ustid', 'gu.ustbrief', 'gu.ustbrief_eingang', 'gu.ustbrief_eingang_am', 'gu.ust_befreit', 'gu.waehrung', 'gu.keinsteuersatz', //'gu.schreibschutz', //'gu.pdfarchiviert', //'gu.pdfarchiviertversion', //'gu.ohne_briefpapier', //'gu.lieferid', //'gu.projektfiliale', //'gu.zuarchivieren', 'gu.internebezeichnung', //'gu.angelegtam', 'gu.sprache', 'gu.gln', //'gu.deliverythresholdvatid', 'gu.kurs', 'gu.ohne_artikeltext', 'gu.anzeigesteuer', 'gu.kostenstelle', 'gu.bodyzusatz', 'gu.lieferbedingung', 'gu.skontobetrag', 'gu.skontoberechnet', 'gu.extsoll', ])->from(self::TABLE_NAME . ' AS gu'); } /** * @return SelectQuery */ protected function selectIdsQuery() { return $this->selectAllQuery()->where('gu.id IN (:ids)'); } /** * @return false */ protected function insertQuery() { return false; } /** * @return false */ protected function updateQuery() { return false; } /** * @return false */ protected function deleteQuery() { return false; } }