- Ostojen ja myyntien rajapinnan resurssit
 - Rajapinnan resurssien osoitteet
 
Ostojen ja myyntien rajapinnan resurssit
Ostojen ja myyntien rajapinnan kautta voidaan lukea, lisätä ja päivittää osto- ja myyntitietoja ValueFrameen. Tietojen haussa käytetään limit-, offset- ja count-avainsanoja haun tulosjoukon rajaamiseksi.
Rajapinnan resurssien osoitteet
Osoite on muotoa:
https://rest.valueframe.com/rest/v2/{REST_resurssi}/
REST-resurssien osoitteet ovat seuraavat:
| REST-resurssi | GET | PUT | POST | DELETE | KUVAUS | 
| Sales | x | POST: uuden oston / myynnin lisääminen | |||
| Sales | x | x | x | GET: palauttaa oston / myynnin id=ID  | |
PUT: oston / myynnin id=ID tietojen päivitys  | |||||
DELETE: oston / myynnin id=ID poistaminen  | 
Rajapinnan resurssit kuvauksineen
| Kentän nimi | Tyyppi | Kuvaus | 
| id | INTEGER | Oston / myynnin uniikki id-numero | 
| subProjectId* | STRING | Osaprojektin id | 
| description* | STRING | Oston / myynnin nimike | 
| purchasePrice (*ostolle) | FLOAT | Ostohinta | 
| amount* | FLOAT | Määrä | 
| unit | INTEGER | Yksikkö | 
| purchaseDate (*ostolle) | STRING | Ostopäivä | 
| sellingPrice (*myynnille) | FLOAT | Myyntihinta | 
| sellingPriceInvoicingCurrency | FLOAT | Myyntihinta laskutusvaluutassa | 
| sellingPriceCorporationCurrency | FLOAT | Myyntihinta konsernivaluutassa | 
| exchangeRateInvoicingHomeCurrency | FLOAT | Kurssi laskutusvaluutta / kotivaluutta | 
| invoicingType* | INTEGER | Tyyppi: 
  | 
| status | INTEGER | Status (jos tuodaan myynti): 
  | 
| approvedDate | STRING | Päivämäärä, jolloin osto on hyväksytty | 
| approvedBy | INTEGER | Oston hyväksyjän käyttäjäid | 
| invoiceNumber | STRING | Ostolaskun numero | 
| invoiceId | INTEGER | |
| type | INTEGER | Kohdentuu: 
  | 
| code* | STRING | Ostolle / myynnille liitetyn tuotteen koodi | 
| salesVat* | FLOAT | Alv-prosentti | 
| salesVatId | INTEGER | Alv-prosentin id | 
| invoicingDate (*myynnille) | STRING | Laskutuspäivämäärä | 
| productId | INTEGER | Ostolle / myynnille valitun tuotteen id | 
| saleRowId | INTEGER | Myyntirivin id | 
| creationDateTime | STRING | Rivin lisäysajankohta | 
| modifiedDateTime | STRING | Rivin muokkausajankohta | 
| supplier | STRING | Toimittaja | 
| bankAccount | STRING | Tilinumero | 
| importedSale | INTEGER | Sisäänluettu kulu | 
| comment | STRING | Selitys | 
* Pakollinen tieto
Käyttöesimerkit
GET
/Sales/
Tämä ei ole tuettuna, ts. rajapinnan kautta voi hakea myyntejä / ostoja vain id:n perusteella.
/Sales/[id]
Palauttaa parametrina annetun id:n mukaisen myynnin / oston jos löytyy.
{ "Sale": { "id": 2080, "subProjectId": 3, "description": "REST-testi", "purchasePrice": 25, "amount": 3, "unit": 1, "purchaseDate": "2017-08-18", "sellingPrice": 350.8, "sellingPriceInvoicingCurrency": 350.8, "sellingPriceCorporationCurrency": 350.8, "exchangeRateInvoicingHomeCurrency": 1, "invoicingType": 1, "status": 1, "approvedDate": null, "approvedBy": null, "invoiceNumber": null, "invoiceId": null, "type": 1, "code": "6", "salesVat": 24, "salesVatId": 9, "invoicingDate": "2017-09-01", "productId": 6, "saleRowId": 0, "creationDateTime": "2017-08-18T07:43:13+0300", "modifiedDateTime": "2017-08-18T07:43:13+0300", "supplier": "Alihankkija Oy", "bankAccount": "1234567890", "importedSale": 0, "comment": "Suunnittelua AT-Yhtiössä" } }
Muuten
{ "message": "Data not found.", "status": 404 }
Jos Development mode -bitti on päällä, palautetaan myös tarkemmat tiedot (uri, file, line ja info).
POST
/Sales/
Lisää järjestelmään uuden myynnin / oston. Tämä määritellään invoicingType-parametrilla, joka voi olla joko 1 = myynti tai 2 = osto.
{ "subProjectId": 3, "description": "REST-testi (POST)", "purchasePrice": 25, "amount": 3, "unit": 2, "purchaseDate": "2017-08-18", "sellingPrice": 350.80, "invoicingType": 1, "status": 1, "type": 1, "code": "6", "salesVat": 24, "invoicingDate": "2017-09-01", "bankAccount": "1234567890", "attachmentUrl": "https://www.example.com/attachment" }
Jos rivi saatiin luotua onnistuneesti, palautetaan luodun myynnin / oston data:
{ "Sale": { "id": 2080, "subProjectId": 3, "description": "REST-testi (POST)", "purchasePrice": 25, "amount": 3, "unit": 2, "purchaseDate": "2017-08-18", "sellingPrice": 350.8, "sellingPriceInvoicingCurrency": 350.8, "sellingPriceCorporationCurrency": 350.8, "exchangeRateInvoicingHomeCurrency": 1, "invoicingType": 1, "status": 1, "approvedDate": null, "approvedBy": null, "invoiceNumber": null, "invoiceId": null, "type": 1, "code": "6", "salesVat": 24, "salesVatId": 9, "invoicingDate": "2017-09-01", "productId": 6, "saleRowId": 0, "creationDateTime": "2017-08-18T07:43:13+0300", "modifiedDateTime": "2017-08-18T07:43:13+0300", "supplier": "", "bankAccount": "1234567890", "importedSale": 0 } }
Muuten annetaan virheilmoitus esimerkiksi puuttuvasta osaprojektista.
{ "message": "Subproject doesn't exists.", "status": 400 }
PUT
/Sales/[id]
Päivittää olemassa olevan oston / myynnin. Voidaan päivittää samat kentät kuin uuden lisäyksessä tai vain osa.
{ "description": "Päivitetty nimike", "purchasePrice": 30.50, "amount": 6 }
Jos rivin päivitys onnistui palautetaan päivitetyn oston / myynnin data.
DELETE
/Sales/[id]
Poistaa oston / myynnin. Huomaa, että rivi poistetaan tietokannasta kokonaan. Jos poistaminen suoritetaan onnnistuneesti, palautetaan status 200 ilman sisältöä. Muuten annetaan virheilmoitus puuttuvasta id:stä.
Statuskoodit
Statuskoodien lisäksi esimerkiksi uutta ostoa / myyntiä lisätessä syöttödata validoidaan ja mikäli data on virheellistä, järjestelmä palauttaa selväkielisen viestin. Ohessa esimerkkejä.
 {"message":"Given request data doesn't contain element sellingPrice, which is necessary element for sale"} {"message":"Given request data doesn't contain element status, which is necessary element for sale"} {"message":"Given request data doesn't contain element invoicingDate, which is necessary element for sale"} {"message":"Given request data doesn't contain element purchasePrice, which is necessary element for purchase"} {"message":"Given request data doesn't contain element purchaseDate, which is necessary element for purchase"} {"message":"Subproject doesn't exists."} {"message":"Subproject is not active."} {"message":"Value of the element 'Status' must be either 0 (in progress) or 1 (ready for invoicing)."} {"message":"Invoicing type must be either 1 (sale) or 2 (purchase)."}Oliko tästä vastauksesta apua? Kyllä Ei
Send feedback