Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:om_getsurcharges_pu

om_GetSurcharges_Pu

Ermittelt zu einer Liste von Artikel-Elementen für eine bestimmte Person, welche „Surcharges“ (Rabatte/Aufschläge) definiert sind.

Grundsätzliches zu „Surcharges“ :

1. Der „dStore“ versteht „Surcharges“ („Aufschläge“) als Prinzip, um zusätzlich entstehende Kosten oder aber Formen von Rabatten abzubilden - diese können sowohl relativ (also prozentual) als auch absolut angegeben werden (siehe om_GetSurchargeTypes_Ad). Rabatte zeichnen sich einfach dadurch aus, daß die Kosten mit negativem Vorzeichen behaftet sind.

2. Mögliche „Surcharges“ bei der Preisermittlung für Auftrags-Positionen (→ om_GetPrices_Pu) werden aus den Tabellen „PersonSurcharges“ (für Personen) und „GroupSourcharges“ (für Gruppen) ermittelt. „Surcharges“ sind in diesem Kontext immer für bestimmte Elemente des Artikelbaums definiert, wobei diese sich immer auf die NACHFOLGER übertragen und nicht - wie bei den Artikeleigenschaften - auf die „ERBEN“ (d.h. hier wird die „Predecessor“-Spalte aus „TreeView“ herangezogen und nicht die „InheritsFrom“-Spalte) !

Es gelten hierbei folgende Prioritäten:

  • Direkt für ein Element des Artikelbaums definierte „Surcharges“ haben Vorrang vor hinterlegten „Surcharges“ zum Vorgänger-Element (analoges Prinzip zur Vererbung von Artikel-Eigenschaften).
  • „Surcharges“, die direkt einer Person zugewiesen sind, haben Vorrang vor „Surcharges“, die für eine Gruppe, der die Person angehört, hinterlegt sind.
  • Falls für den Auftraggeber „GroupSurcharges“ in Frage kommen, und die Person in MEHREREN Gruppen ist, zu denen „Surcharges“ hinterlegt sind, wird die Gruppe mit der höchsten Priorität gewählt - das ist die Gruppe mit der kleinsten „SortNo“ in der Rückgabemenge von pm_GetGroups_Ad mit entsprechend angegebener „PersonID“.

3. Es gibt seit Version 6.0.2 auch das Konzept von „Surcharges“ für einen gesamten Warenkorb bzw. Auftrag (→ om_GetTrolleySurcharges_Pu, om_GetOrderSurcharges_Ad). Dabei handelt es sich um Dinge wie Versandkosten, Skonti, Guthabenverrechnung oder ein (Gesamt-)Auftrags-Rabatt. Letzterer kann zwar auch in den meisten Fällen als Rabatt für alle Auftrags-Positionen abgebildet werden (s. 2.), aber bei absoluten Rabatten ist dies steuerlich nicht korrekt, falls unterschiedliche Steuersätze im Auftrag vorkommen !

HTTP-MethodGET
HTTP-AuthOptional
Tags
Engine-Kategorieorder management
Engine-TypDaten-Ermittlung
Letzte Aktualisierung6.0.2 (2011-06-08)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
NodeIDs Eine Liste von IDs (durch 'das '¶'-Zeichen getrennt) von Artikel-Elementen, zu denen für die Person „PersonID“ hinterlegte Rabatte/Aufschläge ermittelt werden sollen
varchar(255)3.5.0
CurrencyIDNULL ID einer Währungs-Einheit, in der die (absolut angegebenen) Rabatte/Aufschläge ausgegeben werden sollen. Falls „NULL“, wählt die Prozedur die „DefaultCurrencyID“ aus „Settings“.
tinyint3.5.0
PersonID ID einer Person, für die (zu den in „NodeIDs“ angegebenen Artikel-Elementen) Rabatte/Aufschläge ermittelt werden sollen
integer3.5.0

Rückgabe

(parameterunabhängig)

Spaltenname Beschreibung SQL-Datentyp4) ab Version
NodeIDID eines Artikel-Elementes, auf das sich der Rabatt/-Aufschlag „SurchargeValue“ zur „Surcharge“-Art „SurchargeTypeID“ für die Person „PersonID“ bezieht (ein Element also, daß in „NodeIDs“ angegeben wurde)
integer3.5.0
SurchargeTypeIDID einer Aufschlags/Rabatt-Art (wie z.B. „Sonder-Rabatt“ o.ä.), auf das sich „SurchargeValue“ bezieht
smallint3.5.0
SurchargeTypeDescriptionBezeichnung der „SurchargeTypeID“
varchar(100)3.5.0
SurchargeValueDer Wert (also der konkrete Rabatt/Aufschlag) der für das Element „NodeID“ zur Person „PersonID“ hinterlegt ist
decimal(16,6)3.5.0
UnitIDID einer Währungs-Einheit (wenn „Relative = 0“) oder der Prozent-Einheit (wenn „Relative = 1“ ist) - also die Einheit, in der „SurchargeValue“ angegeben ist
tinyint3.5.0
UnitSymbolSymbol (im Regelfall der ISO-Code) der Einheit „UnitID“
varchar(10)3.5.0
RelativeIst der Wert „SurchargeValue“ absolut („0“) oder relativ („1“) angegeben ?
bit3.5.0
BruttoDieser Wert hat nur Bedeutung, wenn „Relative = 0“ ist. Er gibt an, ob „SurchargeValue“ als Brutto- oder Nettobetrag zu verstehen ist.
bit3.5.0

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 5)
-621Fehlender oder falscher Eintrag in PersonTypeSettingsnur indirekt
-550Fehlender oder falscher Eintrag in Settingsnur indirekt
-530Der Wert ist nicht konvertierbarnur indirekt
-510Der Benutzer ist nicht registriertnur indirekt
-503Fehlerhafte Daten in einer Tabelle - genauere Fehlermeldung auf der Standardausgabenur indirekt
-500Falsche Parameternur indirekt
-120Der Benutzer hat keine Berechtigung für das (die) Element(e)nur indirekt
-110Das (die) Element(e) ist (sind) nicht vorhandennur indirekt

XML-Schema

Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.

Historie

6.0.2 2011-06-081. Tabelle „SurchargeTypes“ hat sich geändert [andere bzw. neue Spalten] ⇒ Anpassungen im Quellcode
2. Anpassung des Quellcodes an den aktuellen Standard
3. Überarbeitung der Doku
3.5.3 2001-02-11
3.5.0 2000-11-23Erstmalig in dieser Version erstellt

Code-Snippets

Engine Playground

Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:

cURL

Unformatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/om_GetSurcharges_Pu?NodeIDs=<value>&PersonID=<value>'

Mit xmllint 6) formatierte Ausgabe:

curl -X GET  'http://<partner>-<project>.dstore.de/default/engine/om_GetSurcharges_Pu?NodeIDs=<value>&PersonID=<value>' | xmllint --format -
dStore_php
use dStore_php\WebService;
 
$service = new WebService\Service( WebService\Scheme::HTTP,'<partner>-<project>.dstore.de', 80);
 
$request = new WebService\Requests\Engine\Procedure\Request(
			new WebService\Requests\AccessData('default'),
	'om_GetSurcharges_Pu',
		array(
			'NodeIDs' => '<value>',
			'PersonID' => <value>,
			// 'CurrencyID' => NULL
		)
);
 
$service->execute($request);
 
			$xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument();
			$ResultSet = $xml_result->getRowsAsArray();
engine/execute

XML zur Ausführung mit der Methode engine/execute, z.B. per

curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>'
<?xml version="1.0" encoding="UTF-8"?>
<ListOfBatches>
	<Batch No="0">
		<Procedure Name="om_GetSurcharges_Pu">
			<Parameters>
				<Parameter Name="NodeIDs"><!-- varchar value --></Parameter>
				<Parameter Name="PersonID"><!-- integer value --></Parameter>
				<!-- <Parameter Name="CurrencyID">NULL</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
5)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
6)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/om_getsurcharges_pu.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)