Producten ========= Huidige versie: 1.0.0 Create ------ .. http:post:: /api2/producten Maak een nieuw product **Voorbeeld request**: .. sourcecode:: http POST /api2/producten HTTP/1.1 Host: demo.recras.nl Accept: application/json { "aantal": 1, "aantalbepaling": "per_x_personen", "beschrijving_klant": "Lekker een uur klimmen in ons prachtige klimbos", "btw": 21, "duur": "PT1H", "extra": { "tag": "klimmen" } "inkoop": 0, "leverancier_id": 3, "locatie_verplicht": true, "Locaties": [ { "id": 27, "naam": "Klimbos", "kleur": "#40ed21", "weergavenaam": "Klimbos", "adres": "Steenhopenweg 4", "postcode": "9533PN", "plaats": "Drouwen", "telefoonnummer": "", "latitude": 52.95123, "longitude": 6.746721, "capaciteit": null, "aantal_groepen": null, "uitgebreide_omschrijving": "", "image_filename": "", "parent_id": 28 }, { "id": 28, } ], "Materialen": [ { "materiaal_id": 3, "aantal": 1, "per_x_aantal": 1, "afronding": "boven" } ], "los_op_planning": true, "minimum_aantal": 1, "naam": "Klimmen 1u kind", "per_x_personen": 1, "per_x_personen_afronding": "boven", "personeelsinstructie": "Let goed op de jongste kinderen", "planstrategie": null, "productgroep_id": 1, "Standaardbijlagen": [], "uitgebreide_omschrijving": "Nadat je instructies hebt gekregen kun je lekker een uur vrij klimmen in ons klimbos.", "verkoop": 15, "weergavenaam": "1 uur klimmen voor kinderen", "ProductPrice": [ { "btw": 21, "verkoop": 15, } ] } **Voorbeeld response**: .. sourcecode:: http HTTP/1.1 201 Created Content-Type: application/json Location: /api2/producten/5 { "aantal": 1, "aantalbepaling": "per_x_personen", "beschrijving_klant": "Lekker een uur klimmen in ons prachtige klimbos", "btw": 21, "duur": "PT1H", "extra": { "tag": "klimmen" } "inkoop": 0, "leverancier_id": 3, "locatie_verplicht": true, "Locaties": [ { "id": 27, "naam": "Klimbos", "kleur": "#40ed21", "weergavenaam": "Klimbos", "adres": "Steenhopenweg 4", "postcode": "9533PN", "plaats": "Drouwen", "telefoonnummer": "", "latitude": 52.95123, "longitude": 6.746721, "capaciteit": null, "aantal_groepen": null, "uitgebreide_omschrijving": "", "image_filename": "", "parent_id": 28 }, { "id": 28, } ], "los_op_planning": true, "minimum_aantal": 1, "naam": "Klimmen 1u kind", "per_x_personen": 1, "per_x_personen_afronding": "boven", "personeelsinstructie": "Let goed op de jongste kinderen", "planstrategie": null, "productgroep_id": 1, "Standaardbijlagen": [], "uitgebreide_omschrijving": "Nadat je instructies hebt gekregen kun je lekker een uur vrij klimmen in ons klimbos.", "verkoop": 15, "ProductPrice": [ { "btw": 21, "verkoop": 15, } ], "weergavenaam": "1 uur klimmen voor kinderen", } :json string duur: Een ISO8601-duur :json object extra: Een key-value-object met extra velden :json array Locaties: Een array van alle locaties waarop dit product mag plaatsvinden. Alleen het veld `id` hierin is vereist. :json float inkoop: **Verplicht** de inkoopprijs van het product. Mag wel `0` zijn. :json float verkoop: *Deprecated* de verkoopprijs van het product (use `ProductPrice instead`) :json int leverancier_id: **Verplicht** het id van de leverancier :json int minimum_aantal: **Verplicht** het minimumaantal dat van dit product moet worden afgenomen :json string naam: **Verplicht** De interne naam van het product :json string weergavenaam: De naam van het product zoals die aan klanten wordt getoond :json array Materialen: A list of material usage objects. *Example: tandem bikes*: use ``{"id": 2, "aantal": 1, "per_x_aantal": 2, "afronding": "boven"}`` to require 1 unit of material ``2`` per 2 units (rounded up) of this product booked. :json int Materialen.materiaal_id: **Required** A reference to a material ``id`` :json float Materialen.aantal: **Required** The amount of material that this product uses :json int Materialen.per_x_aantal: **Required** With which amount of this product the material use increases :json string Materialen.afronding: **Required** Rounding of the number of products. Possible values are ``boven`` (for rounding up to the nearest multiple of ``per_x_aantal``) and ``niet`` (for no rounding) :json array ProductPrice: A list of prices for this product, allows to use multiple vat tariffs. Example: ``"ProductPrice": [{"btw": 21,"verkoop": 15,}]`` :resheader Location: De locatie van het nieuwe product :statuscode 201: Product gemaakt :statuscode 406: Fout in de invoer :statuscode 403: Gebruiker heeft het recht ``editProducten`` niet .. ProductenList_: Read ---- .. http:get:: /api2/producten De producten in Recras **Voorbeeld request**: .. sourcecode:: http GET /api2/producten HTTP/1.1 Host: demo.recras.nl Accept: application/json **Voorbeeld response**: .. sourcecode:: http HTTP/1.1 200 OK Content-Type: application/json [ { "id": 6, "leverancier_id": 2, "naam": "Groepen klimmen", "weergavenaam": "", "inkoop": 7, "verkoop": 15, "minimum_aantal": 8, "duur": "PT2H30M00S", "btw": 6, "beschrijving_klant": "Met de hele groep, onder begeleiding, heerlijk klimmen.", "uitgebreide_omschrijving": "

Waan jezelf Tarzan, Jane in ons 20 hectare grote klimbos. In het klimbos zijn 12 verschillende routes met in totaal 124 hindernissen, voor elk wat wils!

 

Instructie:

Na de uitgebreide instructie op het instructieparcours, door 1 van onze gediplomeerde instructeurs, is het tijd om zelf de bomen in te gaan. Tijdens de eerste routes zullen de begeleiders u nog goed in de gaten houden, indien u heeft laten zien dat u het klimmen goed onder de knie heeft mag u zelfstandig de laatste parcoursen afleggen!

", "productgroep_id": 3, "mag_api": true, "los_op_planning": true, "planstrategie": "drukte", "personeelsinstructie": "", "locatie_verplicht": true, "extra": null, "aantalbepaling": "per_x_personen", "aantal": 1, "per_x_personen": 1, "per_x_personen_afronding": "boven", "is_deleted": false, "ProductPrice": [ { "btw": 21, "verkoop": 15, } ], "afbeelding_href": "/api2/producten/6/afbeelding" } ] :statuscode 200: no error .. http:get:: /api2/producten/(int:id) Een specifiek product **Example request**: .. sourcecode:: http GET /api2/producten/6 HTTP/1.1 Host: demo.recras.nl Accept: application/json **Example response**: .. sourcecode:: http HTTP/1.1 200 OK Content-Type: application/json { "id": 6, "leverancier_id": 2, "naam": "Groepen klimmen", "weergavenaam": "", "inkoop": 7, "verkoop": 15, "minimum_aantal": 8, "duur": "PT2H30M00S", "btw": 6, "beschrijving_klant": "Met de hele groep, onder begeleiding, heerlijk klimmen.", "uitgebreide_omschrijving": "

Waan jezelf Tarzan, Jane in ons 20 hectare grote klimbos. In het klimbos zijn 12 verschillende routes met in totaal 124 hindernissen, voor elk wat wils!

 

Instructie:

Na de uitgebreide instructie op het instructieparcours, door 1 van onze gediplomeerde instructeurs, is het tijd om zelf de bomen in te gaan. Tijdens de eerste routes zullen de begeleiders u nog goed in de gaten houden, indien u heeft laten zien dat u het klimmen goed onder de knie heeft mag u zelfstandig de laatste parcoursen afleggen!

", "productgroep_id": 3, "mag_api": true, "los_op_planning": true, "planstrategie": "drukte", "personeelsinstructie": "", "locatie_verplicht": true, "extra": null, "aantalbepaling": "per_x_personen", "aantal": 1, "per_x_personen": 1, "per_x_personen_afronding": "boven", "is_deleted": false, "ProductPrice": [ { "btw": 21, "verkoop": 15, } ], "afbeelding_href": "/api2/producten/6/afbeelding" } :statuscode 200: OK :statuscode 404: Geen product met dit ``id`` Update ------ .. http:put:: /api2/producten/(int:id) **Voorbeeld request**: .. sourcecode:: http PUT /api2/producten/6 HTTP/1.1 Host: demo.recras.nl Accept: application/json { "id": 6, "leverancier_id": 2, "naam": "Groepen klimmen", "weergavenaam": "", "inkoop": 7, "verkoop": 15, "ProductPrice": [ { "btw": 21, "verkoop": 15, } ], "minimum_aantal": 8, "duur": "PT2H00M00S", } **Voorbeeld response**: .. sourcecode:: http HTTP/1.1 200 OK Content-Type: application/json { "id": 6, "leverancier_id": 2, "naam": "Groepen klimmen", "weergavenaam": "", "inkoop": 7, "verkoop": 15, "minimum_aantal": 8, "duur": "PT2H00M00S", "btw": 6, "beschrijving_klant": "Met de hele groep, onder begeleiding, heerlijk klimmen.", "uitgebreide_omschrijving": "

Waan jezelf Tarzan, Jane in ons 20 hectare grote klimbos. In het klimbos zijn 12 verschillende routes met in totaal 124 hindernissen, voor elk wat wils!

 

Instructie:

Na de uitgebreide instructie op het instructieparcours, door 1 van onze gediplomeerde instructeurs, is het tijd om zelf de bomen in te gaan. Tijdens de eerste routes zullen de begeleiders u nog goed in de gaten houden, indien u heeft laten zien dat u het klimmen goed onder de knie heeft mag u zelfstandig de laatste parcoursen afleggen!

", "productgroep_id": 3, "mag_api": true, "los_op_planning": true, "planstrategie": "drukte", "personeelsinstructie": "", "locatie_verplicht": true, "extra": null, "aantalbepaling": "per_x_personen", "aantal": 1, "per_x_personen": 1, "per_x_personen_afronding": "boven", "is_deleted": false, "ProductPrice": [ { "btw": 21, "verkoop": 15, } ], "afbeelding_href": "/api2/producten/6/afbeelding" } :json int id: ID-nummer, mag niet veranderd worden :statuscode 200: Product aangepast :statuscode 406: Fout in de invoer :statuscode 403: Gebruiker heeft het recht ``editProducten`` niet Delete ------ .. http:delete:: /api2/producten/(int:id) **Voorbeeld request**: .. sourcecode:: http DELETE /api2/producten/6 HTTP/1.1 Host: demo.recras.nl **Voorbeeld response**: .. sourcecode:: http HTTP/1.1 200 OK :statuscode 200: Product verwijderd :statuscode 403: Gebruiker heeft het recht ``editProducten`` niet