Zum Hauptinhalt springen

Bestellung von Waren in der eingegangenen Bestellung

Erstellen eines Auftrags, der aus einem über REST API empfangenen Auftrag ausgegeben wurde

Verfasst von Petr Pech
Vor über 4 Jahren aktualisiert

Die Bestellung von Positionen aus dem empfangenen Auftrag durch den ausgegebenen Auftrag ist als virtueller Datensatz /Auftrag realisiert. Sie hat zwei Unterressourcen:

  • /item

    • erstellt ein OBV eines bestimmten Typs aus ausgewählten OBP-Positionen, bestellt alle Positionen bei einem bestimmten Lieferanten

    • es wird durch POST- oder PUT-Methoden aufgerufen und erfordert die Eingabe:

      • typeDokl - Objekt-ID oder Code aus dem Register /type-orders-issued

      • supplierCompany - ID oder Code des Objekts aus dem Register /Adresse

      • PositionenObp

        • id des Objekts aus den Datensätzen /order-accepted-item

        • zu bestellendeMenge

  • /Bulk

    • erzeugt eine OBV aus allen OBP-Positionen, die den eingestellten Lieferanten haben

    • wird durch POST-, PUT- oder GET-Methoden aufgerufen und erfordert nur typeDocument (entweder im Abfragekörper oder per Abfrageparameter).

Es handelt sich also um Endpunkte:

  • /order/item - zum Erstellen von Bestellungen, die für die angegebenen Lieferanten und OBP-Positionen mit der bestellten Menge ausgegeben werden

  • /objednani/bulk - für die automatische Erstellung von OBV aus allen OBP-Positionen, wenn diese einen festgelegten Hauptlieferanten haben

Beispiele:

1. ressourcenabfrage/auftrag/position

curl -k -X POST 'https://localhost:5434/v2/c/fcn_obv/objednani/polozek' -H 'Content-Type: application/json' -H 'Accept: application/json' --data-binary '{"winstrom":{"@version": "1."0', "orderPositions":{"typeDoc": "code:OBV", "supplierCompany": "code:AAA", "positionsObp":[{"id":3704, "quantity":2},{"id":3706, "quantity":3}]}}}' -u admin:adminadmin | jq

sendet Daten im Format

null

und erhält eine 200 OK-Antwort mit der ID der OBV, die erstellt wurde

{
    "winstrom": {
        "@version": "1.0",
        "success": true,
        "stats": {
            "created": 1,
            "updated": 0,
            "deleted": 0,
            "skipped": 0,
            "failed": 0
        },
        "results": [
            {
                "id": 1638
            }
        ]
    }
}

oder 400 Schlechte Anfrage

{
    "winstrom": {
        "@version": 1,
        "success": false,
        "message": "Es wurden keine zur Bestellung geeigneten Artikel gefunden."
    }
}

wenn keiner der eingereichten Artikel bestellt werden kann.

2. Weitere Bestellungen unter Ressource /order/items

curl -k -X POST 'https://localhost:5434/v2/c/fcn_obv/objednani/polozek' -H 'Content-Type: application/json' -H 'Accept: application/json' --data-binary '{"winstrom":{"@version": "1."0", "orderPositions":[{"doctype": "code:OBV", "vendorFirm": "code:AAA", "positionsObp":[{"id":3709, "quantity":2},{"id":3711, "quantity":3}]},{"typDokl": "code:OBV", "dodavatelFirma": "code:ABC", "polozkyObp":[{"id":3715, "mnozstvi":4},{"id":3717, "mnozstvi":5}]}]}}' -u admin:adminadmin | jq

sendet Daten im Format

null
null

3. Ressource abfragen /Bestellung/Bulk

curl -k -X POST 'https://localhost:5434/v2/c/fcn_obv/objednani/hromadne' -H 'Content-Type: application/json' -H 'Accept: application/json' --data-binary '{"winstrom":{"@version": "1.0", "objednaniHromadne":{"typeDoc": "code:OBV"}}}' -u admin:adminadmin | jq


sendet Daten im Format

{
    "winstrom": {
        "@version": "1.0",
        "objednaniHromadne": {
            "typDoc": "code:OBV"
        }
    }
}

oder in ähnlicher Weise GET

curl -k -X GET 'https://localhost:5434/v2/c/fcn_obv/objednani/hromadne?typDokl=code%3AOBV' -H 'Accept: application/json' -u admin:adminadmin

mit Abfrageparameter typeDocl=code:OBV erhält als Antwort 200 OK eine Liste der OBV-Kennungen, die erstellt wurden

{
    "winstrom": {
        "@version": "1.0",
        "success": true,
        "stats": {
            "created": 2,
            "updated": 0,
            "deleted": 0,
            "skipped": 0,
            "failed": 0
        },
        "results": [
            {
                "id": 1639
            },
            {
                "id": 1640
            }
        ]
    }
}

oder 400 Schlechte Anfrage

{
    "winstrom": {
        "@version": 1,
        "success": false,
        "message": "Es wurden keine zur Bestellung geeigneten Artikel gefunden."
    }
}
Hat dies deine Frage beantwortet?