Funksjonen Omsetning/LagreEllerOppdaterOmsetningPrDatoPrAvdeling kan du POSTe en serie json objekter til som må inneholde Dato, AvdelingID og Omsetning. Finnes det poster fra før for samme avdeling på samme dato blir omsetningen overskrevet ellers blir det lagt til ny post.
Eksempel på data:
[{"Dato":"2013-01-01T00:00:00","AvdelingID":"1","Omsetning":99999.0},{"Dato":"2013-01-01T00:00:00","AvdelingID":"2","Omsetning":12000.0},{"Dato":"2013-01-02T00:00:00","AvdelingID":"1","Omsetning":33000.0}]
Omsetning kan leses/oppdateres/tilføyes via vårt API med GET og POST til http://api.tidsbanken.net/dev/Omsetning/* . Primærnøkkelen i omsetningstabellen er ett autonummer så la være å inkludere denne ved tilføying og ta den med ved oppdatering. Data bør helst være i JSON format. XML skal også fungere men jeg ikke har testet så mye med det. Webservicen støtter ett utvalg av ODATA når en skal hente/spørre etter data ($filter, $select, $orderby og $top).
Poster kan lagres/oppdateres enkeltvis ved å POSTE enkeltposter til /Lagre og /Oppdater hhv men sikkert greiest bare POSTE ett array med både oppdateringer og nye til /LagreEllerOppdaterListe. Husk å inkludere headeren ‘Content-type: application/json’ ved POSTing av JSON. Under er diverse eksempler på bruk inkludert Fiddler sessions. Disse er også vedlagt som .txt filer.
I alle eksemplene har jeg brukt en testkonto da det tar litt tid å flytte Samson til serveren der api’et ligger. Du kan bruke denne for testing så lenge og så endre ‘&firma=testodata&passord=testodata’ til Samsons påloggingsinfo når dette er gjort.
For å finne eksisterende poster for avdeling 1 på 2013-01-01 kan du f.eks kjøre ett GET request mot: http://api.tidsbanken.net/dev/Omsetning/Finn?$filter=Dato eq datetime('2013-01-01') and ipType eq 'I' and AvdelingID eq '1'&firma=testodata&passord=testodata
GET http://api.tidsbanken.net/dev/Omsetning/Finn?$filter=Dato%20eq%20datetime('2013-01-01')%20and%20ipType%20eq%20'I'%20and%20AvdelingID%20eq%20'1'&firma=testodata&passord=testodata HTTP/1.1
User-Agent: Fiddler
Host: api.tidsbanken.net
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Thu, 27 Jun 2013 06:29:59 GMT
Content-Length: 125
[{"InntektsPlanId":0,"Dato":"2013-01-01T00:00:00","ipType":"I","AvdelingID":"1","Omsetning":99999.0,"Merknad":"Testr igjen"}]
For å oppdatere en enkelt eksisterende post så POSTES ett enkelt JSON objekt til http://api.tidsbanken.net/dev/Omsetning/Oppdater?firma=testodata&passord=testodata Objektet må ha en verdi i InntekstplanId som finnes i databasen.
POST /dev/Omsetning/Oppdater?firma=testodata&passord=testodata HTTP/1.1
Content-type: application/json
Host: api.tidsbanken.net
Content-Length: 38
{"InntekstplanId":4, "Omsetning":72.0}
For å lagre en enkelt ny post så POSTES ett enkelt JSON objekt til http://api.tidsbanken.net/dev/Omsetning/Lagre?firma=testodata&passord=testodata Objektet kan/bør ikke ha en property InntekstplanId med verdi.
POST /dev/Omsetning/Lagre?firma=testodata&passord=testodata HTTP/1.1
Content-type: application/json
Host: api.tidsbanken.net
Content-Length: 112
{"Dato":"2013-07-01T00:00:00","ipType":"I","AvdelingID":"99","Omsetning":912.0,"Merknad":"Tester insert enkelt"}
For å oppdatere og/eller legge til nye poster POSTES disse som ett array av objekter med eller uten InntekstplanId (obs på stavefeil her – får ikke gjort noe med det p.t) til http://api.tidsbanken.net/dev/LagreEllerOppdaterListe Er InntekstplanId satt blir eksisterende post oppdatert (UPDATE), mangler den blir posten lagt til (INSERT).
POST /dev/Omsetning/LagreEllerOppdaterListe?firma=testodata&passord=testodata HTTP/1.1
Content-type: application/json
Host: api.tidsbanken.net
Content-Length: 238
[{"InntekstplanId":1,"Dato":"2009-01-01T00:00:00","ipType":"I","AvdelingID":"1","Omsetning":33101.0,"Merknad":"Testr update nytt"},{"Dato":"2013-06-01T00:00:00","ipType":"I","AvdelingID":"1","Omsetning":12.0,"Merknad":"Tester insert ny"}]