OpenXE/classes/Modules/Api/Resource/DocumentSalesOrderResource.php
2021-05-21 08:49:41 +02:00

346 lines
11 KiB
PHP

<?php
namespace Xentral\Modules\Api\Resource;
use Xentral\Components\Database\SqlQuery\SelectQuery;
/**
* Ressource für Aufträge (Verkauf)
*/
class DocumentSalesOrderResource extends AbstractResource
{
/** @var string */
const TABLE_NAME = 'auftrag';
/**
* @return void
*/
protected function configure()
{
$this->setTableName(self::TABLE_NAME);
$this->registerFilterParams([
'status' => 'au.status LIKE',
'belegnr' => 'au.belegnr %LIKE%',
'belegnr_equals' => 'au.belegnr LIKE',
'belegnr_startswith' => 'au.belegnr LIKE%',
'belegnr_endswith' => 'au.belegnr %LIKE',
'kundennummer' => 'au.kundennummer %LIKE%',
'kundennummer_equals' => 'au.kundennummer LIKE',
'kundennummer_startswith' => 'au.kundennummer LIKE%',
'kundennummer_endswith' => 'au.kundennummer %LIKE',
'internet' => 'au.internet %LIKE%',
'internet_equals' => 'au.internet LIKE',
'internet_startswith' => 'au.internet LIKE%',
'internet_endswith' => 'au.internet %LIKE',
'datum' => 'au.datum =',
'datum_gt' => 'au.datum >',
'datum_gte' => 'au.datum >=',
'datum_lt' => 'au.datum <',
'datum_lte' => 'au.datum <=',
'angebot' => 'au.angebot LIKE',
'angebotid' => 'au.angebotid =',
'projekt' => 'au.projekt =',
]);
$this->registerSortingParams([
'belegnr' => 'au.belegnr',
'datum' => 'au.datum',
]);
$this->registerIncludes([
'positionen' => [
'key' => 'positionen',
'resource' => DocumentSalesOrderPositionResource::class,
'filter' => [
[
'property' => 'auftrag',
'value' => ':id',
],
],
'sort' => [
'sort' => 'ASC',
],
],
'protokoll' => [
'key' => 'protokoll',
'resource' => DocumentSalesOrderProtocolResource::class,
'columns' => [
'auproto.id',
'auproto.zeit',
'auproto.bearbeiter',
'auproto.grund',
],
'filter' => [
[
'property' => 'auftrag',
'value' => ':id',
],
],
'sort' => [
'zeit' => 'ASC',
],
],
]);
}
/**
* @return SelectQuery
*/
protected function selectOneQuery()
{
return $this->selectAllQuery()->where('au.id = :id');
}
/**
* @return SelectQuery
*/
protected function selectAllQuery()
{
return $this->db->select()
->cols([
'au.id',
'au.firma',
'au.projekt', // Index
'au.status', // Index
'au.belegnr', // Index
'au.kundennummer',
'au.lieferantenauftrag',
'au.lieferant',
'au.aktion',
'au.angebot',
'au.ihrebestellnummer',
'au.internet', // Index
'au.internebezeichnung',
'au.datum',
'au.lieferdatum',
'au.lieferdatumkw',
'au.tatsaechlicheslieferdatum',
'au.reservationdate',
'au.abweichendebezeichnung',
'au.adresse', // Index
'au.typ',
'au.name',
'au.titel',
'au.ansprechpartnerid',
'au.ansprechpartner',
'au.abteilung',
'au.unterabteilung',
'au.adresszusatz',
'au.strasse',
'au.plz',
'au.ort',
'au.land',
'au.bundesstaat',
'au.telefon',
'au.telefax',
'au.email',
'au.anschreiben',
//'au.betreff',
//'au.vertrieb',
//'au.vertriebid', // Index
//'au.deckungsbeitragcalc',
//'au.deckungsbeitrag',
'au.gesamtsumme',
'au.erloes_netto',
'au.umsatz_netto',
//'au.provision',
//'au.provision_summe',
//'au.keinsteuersatz',
'au.lager_ok',
'au.porto_ok',
'au.ust_ok',
'au.check_ok',
'au.vorkasse_ok',
'au.nachnahme_ok',
'au.reserviert_ok',
'au.partnerid',
'au.folgebestaetigung',
'au.zahlungsmail',
'au.liefertermin_ok',
'au.teillieferung_moeglich',
'au.kreditlimit_ok',
'au.kreditlimit_freigabe',
'au.liefersperre_ok',
'au.teillieferungvon', // Index
'au.teillieferungnummer',
'au.autofreigabe',
'au.freigabe',
'au.nachbesserung',
'au.abgeschlossen',
'au.nachlieferung',
'au.versandart',
'au.lieferbedingung',
'au.autoversand',
'au.keinporto',
'au.art',
'au.fastlane',
'au.lieferungtrotzsperre',
'au.keinestornomail',
'au.keinetrackingmail',
'au.zahlungsmailcounter',
'au.zahlungsweise',
'au.zahlungszieltage',
'au.zahlungszieltageskonto',
'au.zahlungszielskonto',
'au.skontobetrag',
'au.skontoberechnet',
//'au.bank_inhaber',
//'au.bank_institut',
//'au.bank_blz',
//'au.bank_konto',
//'au.kreditkarte_typ',
//'au.kreditkarte_inhaber',
//'au.kreditkarte_nummer',
//'au.kreditkarte_pruefnummer',
//'au.kreditkarte_monat',
//'au.kreditkarte_jahr',
'au.abweichendelieferadresse',
'au.liefername',
'au.liefertitel',
'au.lieferansprechpartner',
'au.lieferabteilung',
'au.lieferunterabteilung',
'au.lieferadresszusatz',
'au.lieferstrasse',
'au.lieferort',
'au.lieferplz',
'au.lieferland',
'au.lieferbundesstaat',
'au.lieferemail',
'au.lieferid',
'au.liefergln',
'au.versendet',
'au.versendet_am',
'au.versendet_per',
'au.versendet_durch',
//'au.inbearbeitung',
//'au.logdatei',
'au.angebotid',
//'au.rechnungid',
//'au.anfrageid',
//'au.gruppe', // Index
//'au.usereditid', // Index
//'au.useredittimestamp',
//'au.realrabatt',
//'au.rabatt',
//'au.rabatt1',
//'au.rabatt2',
//'au.rabatt3',
//'au.rabatt4',
//'au.rabatt5',
//'au.steuersatz_normal',
//'au.steuersatz_zwischen',
//'au.steuersatz_ermaessigt',
//'au.steuersatz_starkermaessigt',
//'au.steuersatz_dienstleistung',
//'au.schreibschutz',
//'au.pdfarchiviert',
//'au.pdfarchiviertversion',
//'au.ohne_briefpapier',
//'au.projektfiliale',
//'au.zuarchivieren',
//'au.angelegtam',
//'au.partnerausgezahlt',
//'au.partnerausgezahltam',
//'au.kennen',
//'au.rma',
//'au.transaktionsnummer', // Index
//'au.vorabbezahltmarkieren',
//'au.einzugsdatum',
//'au.auftragseingangper',
//'au.systemfreitext',
//'au.saldo',
//'au.saldogeprueft',
//'au.rabatteportofestschreiben',
//'au.deliverythresholdvatid',
//'au.lieferantennummer',
//'au.lieferantkdrnummer', // Index
//'au.webid',
//'au.cronjobkommissionierung',
//'au.standardlager',
//'au.kommissionskonsignationslager',
//'au.extsoll',
'au.gln',
'au.bearbeiterid',
'au.bearbeiter',
'au.ohne_artikeltext',
'au.ustid',
'au.ust_befreit',
'au.ust_inner',
'au.anzeigesteuer',
'au.waehrung',
'au.sprache',
'au.kurs',
'au.kostenstelle',
'au.freitext',
'au.internebemerkung',
'au.bodyzusatz',
'au.shop',
'au.shopextid',
'au.shopextstatus',
//'au.stornogrund',
//'au.stornosonstiges',
//'au.stornorueckzahlung',
//'au.stornobetrag',
//'au.stornobankinhaber',
//'au.stornobankkonto',
//'au.stornobankblz',
//'au.stornobankbank',
//'au.stornogutschrift',
//'au.stornogutschriftbeleg',
//'au.stornowareerhalten',
//'au.stornomanuellebearbeitung',
//'au.stornokommentar',
//'au.stornobezahlt',
//'au.stornobezahltam',
//'au.stornobezahltvon',
//'au.stornoabgeschlossen',
//'au.stornorueckzahlungper',
//'au.stornowareerhaltenretour',
//'au.transaktionsnummer',
//'au.packstation_inhaber',
//'au.packstation_station',
//'au.packstation_ident',
//'au.packstation_plz',
//'au.packstation_ort',
])->from(self::TABLE_NAME . ' AS au');
}
/**
* @return SelectQuery
*/
protected function selectIdsQuery()
{
return $this->selectAllQuery()->where('s.id IN (:ids)');
}
/**
* @return false
*/
protected function insertQuery()
{
return false;
}
/**
* @return false
*/
protected function updateQuery()
{
return false;
}
/**
* @return false
*/
protected function deleteQuery()
{
return false;
}
}