Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Rechnung anlegen

POST- /api/salesorder/create

Aufruf

Beim Anlegen von Einträgen werden Felder die nicht übergeben werden mit Standard Werten belegt.

Beim Editieren von Einträgen werden nicht übergebene Felder auch nicht verändert. Ein Feld gilt als nicht übergeben wenn diese nicht innerhalb des Objekts übertragen wurde. 


Codeblock
languagejs
themeDJango
titleRequest
{
  "api_version": 1,
  "systemno": 4711, // Kassennummer oder ähnliches bei Fremdsystemen
  "operatorno": 789, // Kassierer/Verkäufer/Bediener
  "systemtype": "POSMAN",
  "processno": 125, // Belegnummer oder ähnliches
  "datetime": "2017-04-12T23:20:50+0100", // Format nach ISO 8601
  "data": {
    "kunden": {%KundenObjekt%},
    "rechnung": {%RechnungsObjekt%},
    "rechnung_position": [{%RechnungPosition%},{%RechnungPosition%}],
    "zahlung": [{%Zahlung%},{%Zahlung%}]
  }
}


Antwort

In der Antwort werden alle übergebenen Objekte mit den gespeicherten Daten zurückgegeben.

Diese Objekte enthalten dann auch die vom System gesetzten Informationen. (z.B. Rechnungsnummer, Kundennummer etc.)


Codeblock
languagejs
themeDJango
titleResponse
{
  "api_version": 1,
  "success": true,
  "msg": "Erfolg: Die Rechnung konnte erfolgreich gespeichert werden",
  "warning": "",
  "data": {
    "kunden": {%KundenObjekt%},
    "rechnung": {%RechnungsObjekt%},
    "rechnung_position": [{%RechnungPosition%},{%RechnungPosition%}],
    "zahlung": [{%Zahlung%},{%Zahlung%}]
  }
}


Allgemeine Struktur des Objekts Kunden 

Mithilfe der Übergabe des KundenObjekts, kann der Rechnung(SalesInvoice) ein Kunde zugeordnet werden der noch nicht im System existieren muss. Falls der Kunde schon in der Datenbank existiert, reicht es die Kundennummer innerhalb des Objekts der Rechnung mit zu übergeben. In diesem Fall kann das Kunden Objekt leer bleiben.


Dieser Kunde wird dann mit den übergebenen Informationen angelegt. Felder die nicht mit übergeben werden, werden mit Default Werten gefüllt. Wenn keine Kundennummer(kdnr) mit übergeben wird, wird diese automatisch vom System gesetzt.


Bei jeder Speicherung wird geprüft ob die angegebene Kundennummer(kdnr) oder externe Kundennummer (kdnr3) schon im System vorhanden ist.

Wenn dies der Fall ist, wird der Kunde nicht neu angelegt sondern der bereits im System vorhandene Kunde wird erweitert bzw. editiert. Felder die in solch einen Fall nicht mit übergeben werden, bleiben unverändert.


Codeblock
languagejs
themeDJango
titleKunden
collapsetrue
{
  "kdnr": "10049",
  "anrede": "Herr",
  "vorname": "Max",
  "name": "Mustermann",
  "name2": "Musterfirma",
  "suchname": "",
  "strasse": "Musterstraße 1234",
  "plz": "12345",
  "ort": "Musterstadt",
  "blz": "",
  "konto": "",
  "gebdatum": "",
  "rabatt": "0.000",
  "maxrabatt": "0.000",
  "kartenummer": "",
  "kreditsperre": 0,
  "stammkunde": 0,
  "importkenn": 0,
  "umsatz": "0",
  "preisliste": 0,
  "info": "",
  "kondition": 0,
  "mwstrueck": 0,
  "land": "",
  "telefon1": "",
  "telefon2": "",
  "email": "",
  "ustid": "",
  "bonusdatum": "",
  "kreditlimit": "0",
  "laufkunde": 0,
  "liefname": "",
  "liefstrasse": "",
  "liefplz": "",
  "liefort": "",
  "kdnr2": "",
  "bonuskunde": 0,
  "bonus": 0,
  "kdnr3": "",
  "sprache": 0,
  "fibukonto": 0,
  "filiale": 0,
  "lseinzug": 0,
  "zzielid": 0,
  "jumsatz": "0",
  "tournr": 0,
  "tourplatz": 0,
  "netto": 0,
  "angelegt": "20170330140500",
  "zustext": "",
  "zustext2": "",
  "zustext3": "",
  "bonuslimit": 0,
  "bonusproz": "0",
  "iban": "",
  "bic": "",
  "vknr": 0,
  "drittland": 0,
  "lieferweg": 0,
  "chipid": "",
  "inaktiv": 0,
  "hrnr": "",
  "uzweck": "",
  "ebon": 0
}


Allgemeine Struktur des Objekts Rechnung 

Mit dem Objekt der Rechnung kann eine neue Rechnung angelegt werden. Hierbei ist zu beachten, dass wenn die Rechnungsnummer(nr) nicht mit übergeben wird, diese vom System generiert wird.

Falls eine externe Alphanumerische Nummer gespeichert werden soll, kann dies mithilfe der alphanr geschehen.

Wenn die Alphanumerische Nummer(alphanr) oder die Rechnungsnummer(nr) bereits im System vorhanden sind, wird die Rechnung nicht gespeichert und eine Fehlermeldung ausgegeben.


Mit der Spalte Typ kann angegeben werden ob es sich um eine Rechnung(0) oder eine Storno-Rechnung(1) handelt


Je nach Flag des Aufrufs und Status der Rechnung werden noch weitere Operationen durchgeführt.

  • offen = 0
    • Keine weitere Operation. Die Rechnung kann im System weiter bearbeitet werden
  • verbucht = 1
    • Erstellung von Umsatz Einträgen
  • teilbezahlt = 2
    • Erstellung von Umsatz Einträgen
  • bezahlt = 3
    • Erstellung von Umsatz Einträgen


Falls die Rechnung nicht mehr an die Fibu geschickt werden muss/darf, muss das Feld fibuexport auf 1 gesetzt werden.


Codeblock
languagejs
themeDJango
titleRechnung
{
  "nr": 0,
  "kasse": 0,
  "kdnr": "10002",
  "kommentar": "",
  "datum": "20160222151429",
  "betrag": 14495,
  "obetrag": 14495,
  "alphanr": "RE20170005",
  "status": 0,
  "typ": 0,
  "vknr": 4,
  "origbetrag": 14495,
  "bereich": 0,
  "aunr": 9000008,
  "faellig": "00000000000000",
  "filiale": 5,
  "rundung": 0,
  "refrenr": 0,
  "lieferweg": 0,
  "fakturierung": "00000000000000",
  "zziel": 0,
  "zahlungfaellig": "00000000000000",
  "mwstberechnung": 0,
  "fibuexport": 0
}


Allgemeine Struktur des Objekts RechnungPosition

Das Objekt RechnungPosition kann mehrmals übergeben werden. Dabei ist zu beachten das die Rechnungsnummer(renr) entweder leer sein muss oder mit der der Rechnung übereinstimmen muss. 

Je nach Status werden hier weitere Operationen durchgeführt. 

  • offen = 0
    • Keine weitere Operation. Die Rechnung kann im System weiter bearbeitet werden
  • verbucht = 1
    • Erstellung von Bestands Buchungen + Beweg

Bei nicht plausiblen Status oder Rechnungsnummern (z.B. Rechnungsstatus = 0 und RechnungPosition = 1) wird die RechnungsPosition nicht gespeichert und ein Fehler zurückgegeben.


Wenn kein Status mit übergeben wird, wird der Status aus dem Objekt der Rechnung übernommen.

  • (Die RechnungStatus teilbezahlt und bezahlt werden in diesem Fall innerhalb der Position zum Status verbucht)


Felder die nicht übergeben werden, werden ggf. mit den Daten aus dem Artikel abgeglichen.

  • Dieses Verhalten gilt nicht für PreisFelder(preis, opreis, nettopreis, opreisnetto) oder RabattFelder(rabattnetto, rabatt, rabattproz)



Codeblock
languagejs
themeDJango
titleRechnungPositioncollapsetrue
{
  "renr": 9000004,
  "pos": 1,
  "artnr1": "1000",
  "artnr2": "810812001000",
  "groesse": 0,
  "preis": 14495,
  "artbez": "Tisch Palor",
  "menge": "1",
  "text1": "",
  "opreis": 14495,
  "mwst": 0,
  "filiale": 5,
  "lager": "2",
  "lsnr": 0,
  "mengeneh": 0,
  "hgrp": 0,
  "ehindex": 0,
  "vpm": 0,
  "nettopreis": 0,
  "opreisnetto": 0,
  "rabatt": 0,
  "rabattnetto": 0,
  "rabattproz": "0.000",
  "agnr": 0,
  "bstnr": 0,
  "lieferweg": 3,
  "aupos": 1,
  "ident": 0,
  "langtext": "",
  "gewicht": 0,
  "identnr": "0",
  "status": 0,
  "rabgrid": 0,
  "preiseh": 0
}


Allgemeine Struktur des Objekts Zahlung

Das Objekt Zahlung kann mehrmals übergeben werden. Dabei ist zu beachten das die Rechnungsnummer(renr) entweder leer sein muss oder mit der der Rechnung übereinstimmen muss. Außerdem muss hier auch die Kundennummer(kdnr) entweder leer sein oder mit dem Kunden übereinstimmen.

Bei abweichender Rechnungsnummer oder abweichender Kundennummer wird die Zahlung nicht gespeichert und ein Fehler zurückgegeben.


Bei der Übergabe der Zahlung sollte außerdem eine externe Zahlungsreferenz(zahlungsref) mit übergeben werden, da ansonsten doppelte Verbuchungen von Zahlungen nicht verhindert werden kann.

Bei der Speicherung wird geprüft ob die externe Zahlungsreferenz bereits vorhanden ist. Falls dies der Fall ist wird eine entsprechende Fehlermeldung zurück gegeben und die Zahlung nicht gespeichert.


Falls die Zahlung nicht mehr an die Fibu geschickt werden muss/darf, muss das Feld fibuexport auf 1 gesetzt werden.



Codeblock
languagejs
themeDJango
titleZahlungcollapsetrue
{
  "zid": 4,
  "datum": "20160707102303",
  "vknr": 53,
  "kdnr": "10002",
  "betrag": 14495,
  "typ": 1,
  "ref": 9000041,
  "zahlart": 11,
  "kasse": 0,
  "filiale": 0,
  "belegnr": 0,
  "text1": "",
  "zahlungsref": "",
  "journalnr": 0,
  "retournr": 0,
  "fibuexport": 0
}