Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:om_createnewbill_ad

om_CreateNewBill_Ad

Generiert eine neue Rechnung auf Basis eines Auftrags oder Auftrags-Positionen.

Anmerkungen zum Parameter „OrderID“ :

1.) Falls angegeben, wird eine Rechnung auf Basis aller Positionen dieses Auftrags erstellt. Es werden dann die Parameter „CurrencyID“, „AddBillContentInformation“, „OtherBillContent“ und AddOtherContentInformation„ ignoriert.
2.) Wird „NULL“ übergeben, müssen die in Rechnung zu stellenden Positionen (zusammen mit der jeweiligen Mengen-Angabe, Netto-Summe etc.) vorher mit Hilfe der Prozedur „if_om_CreateNewBill_Ad“ angegeben werden.

Anmerkung zum Parameter „RecipientPersonID“ :

Auch wenn eine „OrderID“ angegeben wurde, muß dieser Parameter belegt werden - i.d.R. natürlich mit der ID des Auftraggebers.

Hinweis :
Kommt es beim Anlegen von „BillInformation“ oder „BillContentInformation“ oder „OtherBillContentInformation“ (s. „Add…Information“-Parameter) zu Fehlern, bricht die Prozedur mit einem Fehler ab, d.h. es wird KEINE Rechnung angelegt.

Beispiel für zusätzliche Auftragspositionen :

Es sollen zwei zusätzliche Positionen „Versandkosten“ (2 EUR) und „Mindermengenzuschlag“ (5 EUR) auf die Rechnung, wobei zur Position „Mindermengenzuschlag“ noch eine Bemerkung hinterlegt werden soll, die die Information enthält, bis zu welcher Summe dieser Zuschlag zu entrichten ist.

Angenommen die zugehörigen „PredefinedBillContentID“s wären „1“ und „5“, dann müßte vor dem Aufruf dieser Prozedur „if_om_CreateNewBill_Ad“ so aufgerufen werden (bei einem angenommenen Steuersatz von „19%“):
exec if_om_CreateNewBill_Ad '1¶5', '1¶1', '1.68¶4.20', '2.00¶5.00', Delete = 0, OtherContent = 1

Da die „PredefinedBillContentID“ für den „Mindermengenzuschlag“ an ZWEITER Stelle kommt, und kein weiterer Aufruf von „if_om_CreateNewBill_Ad“ mit „OtherContent = 1“ VORHER erfolgte, ist die „Position“-Nummer für die zusätzliche Information also die „2“. Angenommen die „InformationTypeID“ für die Bemerkung ist die „17“, dann müßte der Aufruf von mi_InsertTempdb_AdditionalInfo so aussehen :
exec mi_InsertTempdb_AdditionalInfo '2', '2', '17', 'Mindermengen-Zuschlag bis 20 EUR', Delete = 0

Anmerkung : Wenn dies die einzige zusätzliche Information überhaupt ist (wenn also für „AddBillInformation“ und „AddBillContentInformation“ der Wert „0“ übergeben wird), muß „Delete“ natürlich mit „1“ belegt werden.

HTTP-MethodPOST
HTTP-AuthOptional
Tags
Engine-Kategorieorder management
Engine-TypDaten-Änderung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

OrderID ID eines Auftrags. Falls angegeben, wird eine Rechnung auf Basis (aller Positionen) dieses Aufrags erstellt. Es werden dann natürlich bestimmte Parameter (s. Beschreibung) ignoriert !
integer5.5.0
RecipientPersonID ID einer Person, die den Rechnungs-Empfänger darstellt. Hinweis : Darf nicht vom Auftraggeber der zugrunde liegenden Auftrags-Positionen abweichen, wenn nichts anderes in „Settings“ (Schlüssel „AllowBillRecipientAndOrdererToBeDifferent“) konfiguriert ist!
integer5.5.0
DrawerPersonID ID einer Person, die den Rechnungs-Ersteller (i.d.R. also eine Firma) darstellt
integer5.5.0
CurrencyID Wird nur beachtet, wenn „NULL“ für „OrderID“ übergeben wurde ! ID der Währung, in der die Netto- und Brutto-Summen angegeben sind.
tinyint5.5.0
AddBillInformation0 „1“ angeben, um zusätzliche Informationen zur Rechnung zu speichern. Die Daten müssen via mi_InsertTempdb_AdditionalInfo eingefügt werden, und zwar mit „TableID = 0“ und „TableKeyID = 0“.
bit5.5.0
AddBillContentInformation0 „1“ angeben, um zusätzliche Informationen zu auf Auftrags-Positionen basierenden Rechnungs-Positionen zu speichern. Daten via mi_InsertTempdb_AdditionalInfo eingefügen, und zwar mit „TableID = 1“ („TableKeyID“ enthält die „Position“-Werte).
bit5.5.0
OtherBillContent0 Wird nur beachtet, wenn „NULL“ für „OrderID“ übergeben wurde ! „1“ angeben, um „andere“ Positionen (wie z.B. Versandkosten) zu erstellen - diese sind vorher via „if_om_CreateNewBill_Ad“ zu übergeben.
bit5.5.0
AddOtherContentInformation0 „1“ angeben, um zusätzliche Informationen zu „anderen“ Rechnungs-Positionen (s. „OtherBillContent“) zu speichern. Daten via mi_InsertTempdb_AdditionalInfo eingefügen, und zwar mit „TableID = 2“ („TableKeyID“ enthält die „Position“-Werte).
bit5.5.0
GetIncorrectInformation0 Kommt es beim Anlegen von zusätzlichen Informationen (s. „Add…Information“-Parameter) zu Fehlern, kann man sich diese Fehler als Ergebnismenge ausgeben lassen, indem man hier „1“ übergibt.
bit5.5.0
Country'german' Für zusätzliche Informationen (s. „Add…Information“-Parameter) ist hier anzuzeigen, welches Format Datums-Informationen haben (Groß-/Kleinschreibung wird nicht beachtet) :
'german', 'germany' : Tag-Monat-Jahr
'english', 'england' : Monat-Tag-Jahr
varchar(10)5.5.0

Rückgabe

wenn Result (Pseudo-Parameter) <> 0 und IncorrectInformationExists (Pseudo-Parameter) = 1

Spaltenname Beschreibung SQL-Datentyp1) ab Version
TableID„0“ : Fehler bei einer Rechnungs-Information
„1“ : Fehler bei einer Rechnungs-Positions-Information
„2“ : Fehler bei einer Information zu einer „anderen“ Rechnungs-Position
tinyint5.5.0
TableKeyIDJe nach „TableKeyID“ steht hier entweder der Wert „0“ (wenn „TableID = 0“) oder die Nummer einer „Position“ (wenn „TableID = 1“ oder „TableID = 2“), zu der eine fehlerhafte Information vorliegt
integer5.5.0
InformationTypeIDID einer Informations-Art
smallint5.5.0
ErrorCodeFehler-Ursache. Mögliche Werte :
„1“ : Fehler aufgrund von Regeln (s. om_GetBillInformationRules_Ad bzw. om_GetBillContentInfoRules_Ad)
„2“ : Fehler aufrund der „FieldTypeID“ (Format des Wertes ist ungültig)
tinyint5.5.0

Output-Parameter

GeneratedBillIDDie generierte ID („BillID“) der Rechnung steht nach dem Aufruf über diesen Ausgabeparameter zur Verfügung

Mögliche Return-Codes

Code Beschreibung Quelle 2)
-621Fehlender oder falscher Eintrag in PersonTypeSettingsnur indirekt
-569Der Benutzer hat kein Ausführungsrecht für die Prozedurnur indirekt
-567Die Prozedur darf z. Zt. nicht ausgeführt werdennur indirekt
-566Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werdennur indirekt
-550Fehlender oder falscher Eintrag in Settingsnur indirekt
-535Das Datum liegt nicht in der Vergangenheitnur indirekt
-530Der Wert ist nicht konvertierbarnur indirekt
-510Der Benutzer ist nicht registriertnur indirekt
-504Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochendirekt und indirekt
-502Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen)nur indirekt
-500Falsche Parameterdirekt und indirekt
-396Zuviele Auftraggeber weichen vom Rechnungs-Empfänger abnur indirekt
-395Es konnte keine PredefinedBillContentID zur Zahlungsart/Versandart ermittelt werdennur direkt
-394Einige OtherBillContentInformation sind ungültignur indirekt
-393Einige BillContentInformation sind ungültignur indirekt
-392Einige BillInformation sind ungültignur indirekt

XML-Schema

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

Historie

7.0.7 2015-01-29Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf]
6.5.4 2013-04-29„StartProcedure“-Call u.A. wg. UTF-8 Unterstützung angepasst
6.0.3 2011-09-07Zahlungs- und Versandkosten brauchen nicht mehr ermittelt werden, da es ja „OrderSurcharges“ sind
6.0.2 2011-06-08Unterstützung von durch Zahlungs- und Versandart bedingten Aufschlägen aus „OrderSurcharges“
5.5.0 2008-01-07Erstmalig 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 POST  'http://<partner>-<project>.dstore.de/default/engine/om_CreateNewBill_Ad?OrderID=<value>&RecipientPersonID=<value>&DrawerPersonID=<value>&CurrencyID=<value>'

Mit xmllint 3) formatierte Ausgabe:

curl -X POST  'http://<partner>-<project>.dstore.de/default/engine/om_CreateNewBill_Ad?OrderID=<value>&RecipientPersonID=<value>&DrawerPersonID=<value>&CurrencyID=<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_CreateNewBill_Ad',
		array(
			'OrderID' => <value>,
			'RecipientPersonID' => <value>,
			'DrawerPersonID' => <value>,
			'CurrencyID' => <value>,
			// 'AddBillInformation' => 0,
			// 'AddBillContentInformation' => 0,
			// 'OtherBillContent' => 0,
			// 'AddOtherContentInformation' => 0,
			// 'GetIncorrectInformation' => 0,
			// 'Country' => 'german'
		)
);
 
$service->execute($request);
 
			$xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument();
			$ResultSet = $xml_result->getRowsAsArray();
 
$OutputParams = $xml_result->getOutputParametersAsArray();
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_CreateNewBill_Ad">
			<Parameters>
				<Parameter Name="OrderID"><!-- integer value --></Parameter>
				<Parameter Name="RecipientPersonID"><!-- integer value --></Parameter>
				<Parameter Name="DrawerPersonID"><!-- integer value --></Parameter>
				<Parameter Name="CurrencyID"><!-- tinyint value --></Parameter>
				<!-- <Parameter Name="AddBillInformation">0</Parameter> -->
				<!-- <Parameter Name="AddBillContentInformation">0</Parameter> -->
				<!-- <Parameter Name="OtherBillContent">0</Parameter> -->
				<!-- <Parameter Name="AddOtherContentInformation">0</Parameter> -->
				<!-- <Parameter Name="GetIncorrectInformation">0</Parameter> -->
				<!-- <Parameter Name="Country">'german'</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
2)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
3)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/om_createnewbill_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)