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-Method | POST |
HTTP-Auth | Optional |
Tags | |
Engine-Kategorie | order management |
Engine-Typ | Daten-Änderung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
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 ! | integer | 5.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! | integer | 5.5.0 | |
DrawerPersonID | ID einer Person, die den Rechnungs-Ersteller (i.d.R. also eine Firma) darstellt | integer | 5.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. | tinyint | 5.5.0 | |
AddBillInformation | 0 | „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“. | bit | 5.5.0 |
AddBillContentInformation | 0 | „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). | bit | 5.5.0 |
OtherBillContent | 0 | 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. | bit | 5.5.0 |
AddOtherContentInformation | 0 | „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). | bit | 5.5.0 |
GetIncorrectInformation | 0 | 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. | bit | 5.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 |
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 | tinyint | 5.5.0 |
TableKeyID | Je 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 | integer | 5.5.0 |
InformationTypeID | ID einer Informations-Art | smallint | 5.5.0 |
ErrorCode | Fehler-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) | tinyint | 5.5.0 |
GeneratedBillID | Die generierte ID („BillID“) der Rechnung steht nach dem Aufruf über diesen Ausgabeparameter zur Verfügung |
Code | Beschreibung | Quelle 2) |
---|---|---|
-621 | Fehlender oder falscher Eintrag in PersonTypeSettings | nur indirekt |
-569 | Der Benutzer hat kein Ausführungsrecht für die Prozedur | nur indirekt |
-567 | Die Prozedur darf z. Zt. nicht ausgeführt werden | nur indirekt |
-566 | Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werden | nur indirekt |
-550 | Fehlender oder falscher Eintrag in Settings | nur indirekt |
-535 | Das Datum liegt nicht in der Vergangenheit | nur indirekt |
-530 | Der Wert ist nicht konvertierbar | nur indirekt |
-510 | Der Benutzer ist nicht registriert | nur indirekt |
-504 | Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochen | direkt und indirekt |
-502 | Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen) | nur indirekt |
-500 | Falsche Parameter | direkt und indirekt |
-396 | Zuviele Auftraggeber weichen vom Rechnungs-Empfänger ab | nur indirekt |
-395 | Es konnte keine PredefinedBillContentID zur Zahlungsart/Versandart ermittelt werden | nur direkt |
-394 | Einige OtherBillContentInformation sind ungültig | nur indirekt |
-393 | Einige BillContentInformation sind ungültig | nur indirekt |
-392 | Einige BillInformation sind ungültig | nur indirekt |
Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.
7.0.7 | 2015-01-29 | Interne Ä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-07 | Zahlungs- und Versandkosten brauchen nicht mehr ermittelt werden, da es ja „OrderSurcharges“ sind |
6.0.2 | 2011-06-08 | Unterstützung von durch Zahlungs- und Versandart bedingten Aufschlägen aus „OrderSurcharges“ |
5.5.0 | 2008-01-07 | Erstmalig in dieser Version erstellt |
Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:
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 -
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();
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>