Angebotspositionen

Alle Posi­tio­nen eines Ange­bo­tes auflisten

GET /api/offer-items?offer_id={offer_id}

Ange­bots­po­si­tio­nen kön­nen immer nur für eine bestimm­tes Ange­bot zurück­ge­ge­ben wer­den.
Des­halb ist offer_id ein Pflichtparameter.

<?xml version="1.0" encoding="UTF-8"?>
<offer-items type="array">
    <offer-item>
        ...
    <offer-item>
    <offer-item>
        ...
    <offer-item>
</offer-items>

Ein­zelne Posi­tion aufrufen

GET /api/offer-items/{id}
<?xml version="1.0" encoding="UTF-8"?>
<offer-item>
    <id type="integer">1</id>
    <article_id type="integer">123</article_id>
    <offer_id type="integer">1</offer_id>
    <position type="integer">1</position>
    <unit>Stück</unit>
    <quantity type="float">5.2</quantity>
    <unit_price type="float">10.0</unit_price>
    <tax_name>MwSt</tax_name>
    <tax_rate type="float">19.0</tax_rate>
    <title>Visitenkarten</title>
    <description>Wunderschöne 4c Visitenkarten</description>
    <total_gross type="float">61.88</total_gross>
    <total_net type="float">52.0</total_net>
    <optional>0</optional>
</offer-item>

Posi­tion erstellen

POST /api/offer-items

Ange­bots­po­si­tio­nen kön­nen nur für Ange­bote mit Sta­tus Ent­wurf (DRAFT) erstellt werden.

XML-Element Beschrei­bung Typ Default-Wert Pflicht­feld
offer_id ID des Ange­bots INT ja (nicht aber bei der Ange­bots­er­stel­lung)
article_id ID des Arti­kels INT
unit Ein­heit ALNUM
quan­tity Menge FLOAT 0.0
unit_price Preis pro Einheit FLOAT 0.0
tax_name Steu­er­be­zeich­nung ALNUM Wert aus Ein­stel­lun­gen
tax_rate Steu­er­rate in Prozent FLOAT Wert aus Ein­stel­lun­gen
title Titel ALNUM
descrip­tion Beschrei­bung ALNUM
optio­nal Gibt an, ob es sich um eine optio­nale Posi­tion (=1) han­delt. Der Preis wird dann nicht bei der Gesamt­summe berücksichtigt INT

Die Ange­bots­po­si­tion wird nach even­tu­ell bereits beste­hen­den Posi­tio­nen angefügt.

<offer-item>
    <offer_id>1</offer_id>
    <unit>Stück</unit>
    <quantity>5.2</quantity>
    <unit_price>10.0</unit_price>
    <tax_name>MwSt</tax_name>
    <tax_rate>19.0</tax_rate>
    <title>Visitenkarten</title>
    <description>Wunderschöne 4c Visitenkarten</description>
    <optional>1</optional>
</offer-item>
<?xml version="1.0" encoding="UTF-8"?>
<offer-item>
    <id type="integer">1</id>
    <article_id />
    <offer_id type="integer">1</offer_id>
    <created>2007-12-13T12:12:00+01:00</created>
    <position type="integer">1</position>
    <unit>Stück</unit>
    <quantity type="float">5.2</quantity>
    <unit_price type="float">10.0</unit_price>
    <tax_name>MwSt</tax_name>
    <tax_rate type="float">19.0</tax_rate>
    <title>Visitenkarten</title>
    <description>Wunderschöne 4c Visitenkarten</description>
    <total_gross type="float">61.88</total_gross>
    <total_net type="float">52.0</total_net>
    <optional>1</optional>
</offer-item>

Posi­tion bearbeiten

PUT /api/offer-items/{id}

Hier gel­ten die sel­ben Para­me­ter wie beim Anle­gen, aller­dings kann das ver­knüpfte Ange­bot (offer_id) nicht mehr geän­dert wer­den.
Ange­bots­po­si­tio­nen kön­nen nur für Ange­bote mit Sta­tus Ent­wurf (DRAFT) bear­bei­tet werden.

<offer-item>
    <unit>Stunde</unit>
    <quantity>8.5</quantity>
</offer-item>

Posi­tion löschen

DELETE /api/offer-items/{id}

Beim Löschen von Ange­bots­po­si­tio­nen wird posi­tion für alle ver­blei­ben­den Posi­tio­nen neu ver­ge­ben (ohne die Sor­tie­rung zu ändern), um die evtl. ent­stan­dene Lücke wie­der zu fül­len.
Ange­bots­po­si­tio­nen kön­nen nur für Ange­bote mit Sta­tus Ent­wurf (DRAFT) gelöscht werden.