I den här dokumentationen beskriver vi Annytab Dox Drive Log v1
, vår egna licensfria standard för en körjournal som kan användas för att registrera privatkörning och tjänstekörning. Utifrån varje rad i körjournalen går det att beräkna körd sträcka och restid.
Den här standarden bygger på JSON, ett kompakt och textbaserat format som används för att utbyta data. Det är smidigt att serialisera objekt i program till JSON och det är smidigt att deserialisera JSON till objekt i program. Denna standard finns inkluderad i ett NuGet paket: a-dox-standards (NuGet Gallery).
AnnytabDoxDriveLog [Modell]
Egenskap
Typ
Beskrivning
personnel_id
string
Anställningsnumret för den person som körjournalen avser.
name
string
Namnet på den person som körjournalen avser.
cost_center
string
En kod för den division, avdelning eller aktivitet som personen tillhör. Används för att kunna fördela kostnaden till den enhet som skall bära kostnaden.
registration_number
string
Registreringsnumret för den bil som används vid körning.
unit_code
string
En enhetskod avseende den angivna kvantiteten. Kan exempelvis vara miles eller kilometer
start_date
string
Datum och tid avseende journalens startdatum. Skall anges som yyyy-MM-ddThh:mm:ss (2017-09-31T08:00:54).
end_date
string
Datum och tid avseende journalens slutdatum. Skall anges som yyyy-MM-ddThh:mm:ss (2017-09-31T08:00:54).
opening_odometer
decimal
Mätarställning vid startdatumet, skall vara lika med mätarställningen vid föregående journals slutdatum. Anges i angiven enhetskod.
log_rows
IList<DriveLogRow>
En lista med körningsloggar, se beskrivning av DriveLogRow nedan.
ending_odometer
decimal
Mätarställning vid slutdatumet. Anges i angiven enhetskod.
DriveLogRow [Modell]
Egenskap
Typ
Beskrivning
start_odometer
decimal
Mätarställningen vid resans start. Anges i angiven enhetskod.
start_time
string
Datum och tid då resan påbörjas. Skall anges som yyyy-MM-ddThh:mm:ss (2017-09-31T08:00:54).
from
string
Adressen för resans utgångspunkt.
end_odometer
decimal
Mätarställningen vid resans slut. Anges i angiven enhetskod.
end_time
string
Datum och tid då resan avslutades. Skall anges som yyyy-MM-ddThh:mm:ss (2017-09-31T08:00:54).
to
string
Adressen för resans destination.
description
string
En beskrivning av det ärende/uppdrag som har utförts under resan.
business_trip
bool
Indikerar om resan är en tjänsteresa. En resa som inte är en tjänsteresa är en privat resa.
JSON-Exempel
{
"personnel_id": "001",
"name": "Nils Nilsson",
"cost_center": "Marketing",
"registration_number": "SXL 837",
"unit_code": "km",
"start_date": "2018-08-01T00:00:00",
"end_date": "2018-08-31T23:59:59",
"opening_odometer": 5000,
"log_rows": [
{
"start_odometer": 5000,
"start_time": "2018-08-05T09:30:11",
"from": "Halmstad",
"end_odometer": 5065,
"end_time": "2018-08-05T12:30:11",
"to": "Stockholm",
"description": "Meeting with Olle.",
"business_trip": true
},
{
"start_odometer": 5065,
"start_time": "2018-08-05T15:10:34",
"from": "Stockholm",
"end_odometer": 5125,
"end_time": "2018-08-05T20:15:55",
"to": "Halmstad",
"description": "Driving home from meeting with Olle.",
"business_trip": false
}
],
"ending_odometer": 5125
}
Exempelkod
// Create a drive log
AnnytabDoxDriveLog post = new AnnytabDoxDriveLog();
post.personnel_id = "001";
post.name = "Nils Nilsson";
post.cost_center = "Marketing";
post.registration_number = "SXL 837";
post.unit_code = "km";
post.start_date = "2018-08-01T00:00:00";
post.end_date = "2018-08-31T23:59:59";
post.opening_odometer = 5000M;
post.ending_odometer = 5125M;
// Add log rows
post.log_rows = new List<DriveLogRow>();
post.log_rows.Add(new DriveLogRow
{
start_odometer = 5000M,
start_time = "2018-08-05T09:30:11",
from = "Halmstad",
end_odometer = 5065M,
end_time = "2018-08-05T12:30:11",
to = "Stockholm",
description = "Meeting with Olle.",
business_trip = true
});
post.log_rows.Add(new DriveLogRow
{
start_odometer = 5065M,
start_time = "2018-08-05T15:10:34",
from = "Stockholm",
end_odometer = 5125M,
end_time = "2018-08-05T20:15:55",
to = "Halmstad",
description = "Driving home from meeting with Olle.",
business_trip = true
});
// Convert the object to a byte array
string json = JsonConvert.SerializeObject(post, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
byte[] array = Encoding.UTF8.GetBytes(json);
// Write to the stream
stream.Write(array, 0, array.Length);