Tid och närvaro
Arbetstid, ledighet, scheman och helgdagar — logga och läs närvaro programmässigt.
Arbetstid
Endpoints
| GET | /employee-working-hours | Hämtar samlingen av WorkTime-resurser. |
| POST | /employee-working-hours | Skapar en WorkTime-resurs. |
| GET | /employee-working-hours/{id} | Hämtar en WorkTime-resurs. |
| PATCH | /employee-working-hours/{id} | Uppdaterar WorkTime-resursen. |
| DELETE | /employee-working-hours/{id} | Tar bort WorkTime-resursen. |
| GET | /work-times | Hämtar samlingen av WorkTime-resurser. |
| POST | /work-times | Skapar en WorkTime-resurs. |
| GET | /work-times/{id} | Hämtar en WorkTime-resurs. |
| PATCH | /work-times/{id} | Uppdaterar WorkTime-resursen. |
| DELETE | /work-times/{id} | Tar bort WorkTime-resursen. |
Schema-fält
| Fält | Typ | Beskrivning |
|---|---|---|
| id | integer | |
| employee* | string (iri-reference) | |
| project* | string (iri-reference) | |
| date* | string (date-time) | |
| seconds* | integer | |
| description | stringnull | |
| projectTask | string,null (iri-reference) | Optional link to a {@see ProjectTask}. Nullable; existing rows have no link. Set by the Surface 1 picker chip and by Surface 2's close-and-log panel. The validator {@see \App\Validator\WorkTime\WorkTimeProjectTaskConsistencyConstraint} enforces that projectTask.project === workTime.project when this FK is set. On ProjectTask deletion the column is SET NULL — the time logged is preserved, the link is forgotten. |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| deletedAt | string,null (date-time) | |
| deleted | boolean | Check if the entity has been soft deleted. |
Helgdag
Endpoints
| GET | /holidays | Hämtar samlingen av Holiday-resurser. |
| POST | /holidays | Skapar en Holiday-resurs. |
| GET | /holidays/{id} | Hämtar en Holiday-resurs. |
| PATCH | /holidays/{id} | Uppdaterar Holiday-resursen. |
| DELETE | /holidays/{id} | Tar bort Holiday-resursen. |
| GET | /holidays/active | Hämtar samlingen av Holiday-resurser. |
Schema-fält
| Fält | Typ | Beskrivning |
|---|---|---|
| id | integer | |
| type* | string | #4548. `Holiday` is writable directly (`holiday:create`), so it carries the same unbounded-free-text defect the request did. `max` tracks `length`. |
| employee* | string (iri-reference) | |
| manager | string (iri-reference) | |
| description | stringnull | #4548, and it is reachable two ways: written directly through `holiday:create`, and copied from the accepted request by `HolidayRequestDecider:47`. Both columns are VARCHAR(255), so bounding the request at 255 keeps that copy safe — this bounds the direct path. |
| dateFrom* | string (date-time) | |
| dateTo* | string (date-time) | |
| seconds | integernull | |
| requestedSeconds | integernull | |
| notify | boolean | Should this absence tell the employee it was created? (#4705) |
| payrollEligible | boolean | May payroll act on this absence? (#4017) |
| holidayRequests | array | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| deletedAt | string,null (date-time) | |
| employeeFullname | string | |
| employeeReversedFullname | string | |
| relatedEmployee | string,null (iri-reference) | |
| deleted | boolean | Check if the entity has been soft deleted. |
Schema
Endpoints
| GET | /schedules | Hämtar samlingen av Schedule-resurser. |
| POST | /schedules | Skapar en Schedule-resurs. |
| GET | /schedules/{id} | Hämtar en Schedule-resurs. |
| PATCH | /schedules/{id} | Uppdaterar Schedule-resursen. |
| GET | /schedules/plan/{date} | Hämtar samlingen av Schedule-resurser. |
Schema-fält
| Fält | Typ | Beskrivning |
|---|---|---|
| name | string | |
| description | stringnull | |
| numberOfDays | integer | |
| regular | boolean | |
| overwriteBankHolidays | boolean | |
| scheduleRanges | array | |
| scheduleEmployees | array |
Allmän helgdag
Endpoints
| GET | /bank-holidays | Hämtar samlingen av BankHoliday-resurser. |
| POST | /bank-holidays | Skapar en BankHoliday-resurs. |
| GET | /bank-holidays/{id} | Hämtar en BankHoliday-resurs. |
| PATCH | /bank-holidays/{id} | Uppdaterar BankHoliday-resursen. |
| DELETE | /bank-holidays/{id} | Tar bort BankHoliday-resursen. |
| GET | /holiday-days-frees | Hämtar samlingen av BankHoliday-resurser. |
| POST | /holiday-days-frees | Skapar en BankHoliday-resurs. |
| GET | /holiday-days-frees/{id} | Hämtar en BankHoliday-resurs. |
| PATCH | /holiday-days-frees/{id} | Uppdaterar BankHoliday-resursen. |
| DELETE | /holiday-days-frees/{id} | Tar bort BankHoliday-resursen. |
Schema-fält
| Fält | Typ | Beskrivning |
|---|---|---|
| date* | string | |
| publicNotes | stringnull | |
| yearFrom | integernull | |
| yearTo | integernull |
Semesteransökan
Endpoints
| GET | /holiday-requests | Hämtar samlingen av HolidayRequest-resurser. |
| POST | /holiday-requests | Skapar en HolidayRequest-resurs. |
| GET | /holiday-requests/{id} | Hämtar en HolidayRequest-resurs. |
| PATCH | /holiday-requests/{id} | Uppdaterar HolidayRequest-resursen. |
| DELETE | /holiday-requests/{id} | Tar bort HolidayRequest-resursen. |
| POST | /holiday-requests/{id}/approve | Skapar en HolidayRequest-resurs. |
| POST | /holiday-requests/{id}/reject | Skapar en HolidayRequest-resurs. |
Schema-fält
| Fält | Typ | Beskrivning |
|---|---|---|
| id | integer | |
| status | string | |
| employee | string (iri-reference) | |
| holiday | string,null (iri-reference) | |
| type* | string | Same defect, same processor, same flush (#4548). `type` is writable in the `holiday_request:create` group and nothing bounded it, so a 65-character value produced the identical SQLSTATE[22001]. Sentry only caught `description` because that is the one a user types freely. |
| description | stringnull | THE LENGTH IS THE COLUMN WIDTH, NOT A TASTE (#4548). Without it an over-long note travelled to MySQL and came back as `SQLSTATE[22001] … Data too long for column 'description'` — a fatal 500 from `HolidayRequestCreateProcessor:118`'s flush(), losing the request and telling the user nothing (Sentry PHP-SYMFONY-T7, prod). |
| dateFrom* | string (date-time) | |
| dateTo* | string (date-time) | |
| seconds | integernull | |
| requestedSeconds | integernull | |
| holidayRequestLogs | array | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| requestedAt | datetime |
Semestertyp
Endpoints
| GET | /holiday-types | Hämtar samlingen av HolidayType-resurser. |
| POST | /holiday-types | Skapar en HolidayType-resurs. |
| GET | /holiday-types/{id} | Hämtar en HolidayType-resurs. |
| PATCH | /holiday-types/{id} | Uppdaterar HolidayType-resursen. |
Schema-fält
| Fält | Typ | Beskrivning |
|---|---|---|
| status | string | |
| name* | string | |
| color | string | THE API HAS TO ACCEPT ITS OWN OUTPUT (#4407). |
| descriptionRequired | boolean | |
| icon | stringnull | |
| reducesWorkingTime | boolean | Does an absence of this type reduce the month's expected working hours? |
| requiresApproval | boolean | Does an absence of this type have to be approved by somebody? (#5068) |
Semesterdagsgräns
Endpoints
| GET | /holiday-days-limits | Hämtar samlingen av HolidayDaysLimit-resurser. |
| POST | /holiday-days-limits | Skapar en HolidayDaysLimit-resurs. |
| GET | /holiday-days-limits/{id} | Hämtar en HolidayDaysLimit-resurs. |
| PATCH | /holiday-days-limits/{id} | Uppdaterar HolidayDaysLimit-resursen. |
| DELETE | /holiday-days-limits/{id} | Tar bort HolidayDaysLimit-resursen. |
Schema-fält
| Fält | Typ | Beskrivning |
|---|---|---|
| id | integer | |
| employee* | string (iri-reference) | |
| seconds* | integer | Leave allowance in SECONDS, not whole days (#3763). |
| holidayType | string,null (iri-reference) | |
| variant* | string | |
| allowRequestWhenUsed | boolean | NOT SERIALISED, AND THAT IS THE FIX (#4361). Do not re-add `#[Groups]`. |
| dateFrom | string (date-time) | |
| notes | stringnull | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| notApplicableReason | stringnull | Why this entitlement will not take effect yet, or NULL if it will (#4443). |
| vacationLimit | boolean | Is this row the ANNUAL LEAVE entitlement, as opposed to a granted balance of some other type (#4165)? |
| relatedEmployee | string,null (iri-reference) |
Standard semesterdagsgräns
Endpoints
| GET | /holiday-days-limit-defaults | Hämtar samlingen av HolidayDaysLimitDefault-resurser. |
| POST | /holiday-days-limit-defaults | Skapar en HolidayDaysLimitDefault-resurs. |
| GET | /holiday-days-limit-defaults/{id} | Hämtar en HolidayDaysLimitDefault-resurs. |
| PATCH | /holiday-days-limit-defaults/{id} | Uppdaterar HolidayDaysLimitDefault-resursen. |
| DELETE | /holiday-days-limit-defaults/{id} | Tar bort HolidayDaysLimitDefault-resursen. |
Schema-fält
| Fält | Typ | Beskrivning |
|---|---|---|
| id | string | |
| holidayType | string (iri-reference) | |
| seconds* | integer | Default leave allowance in SECONDS, not whole days (#3763). This entity moves with `HolidayDaysLimit` rather than after it: both are returned through the same line in `HolidaysHelper::getHolidayDaysLimit()`, so leaving one in days would put two units on one code path. |
| variant* | string | |
| allowRequestWhenUsed | boolean | NOT SERIALISED (#4361) — see the full reasoning on {@see HolidayDaysLimit::$allowRequestWhenUsed}. Do not re-add `#[Groups]`. |
| dateFrom | string (date-time) | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) |
Schemamedarbetare
Endpoints
| GET | /schedule-employees | Hämtar samlingen av ScheduleEmployee-resurser. |
| POST | /schedule-employees | Skapar en ScheduleEmployee-resurs. |
| GET | /schedule-employees/{id} | Hämtar en ScheduleEmployee-resurs. |
| PATCH | /schedule-employees/{id} | Uppdaterar ScheduleEmployee-resursen. |
| DELETE | /schedule-employees/{id} | Tar bort ScheduleEmployee-resursen. |
Schema-fält
| Fält | Typ | Beskrivning |
|---|---|---|
| employee | string (iri-reference) | |
| schedule | string (iri-reference) | |
| dateFrom | string (date-time) | |
| dateTo | string,null (date-time) | |
| type | string | |
| notifiedAt | string,null (date-time) |
Schemaintervall
Endpoints
| GET | /schedule-ranges | Hämtar samlingen av ScheduleRange-resurser. |
| POST | /schedule-ranges | Skapar en ScheduleRange-resurs. |
| GET | /schedule-ranges/{id} | Hämtar en ScheduleRange-resurs. |
| PATCH | /schedule-ranges/{id} | Uppdaterar ScheduleRange-resursen. |
| DELETE | /schedule-ranges/{id} | Tar bort ScheduleRange-resursen. |
Schema-fält
| Fält | Typ | Beskrivning |
|---|---|---|
| id | string | |
| schedule | object | |
| day | integer | |
| timeFrom | integer | |
| timeTo | integer | |
| name | stringnull |
Tjänsteresa
Endpoints
| GET | /delegations | Hämtar samlingen av Delegation-resurser. |
| POST | /delegations | Skapar en Delegation-resurs. |
| GET | /delegations/{id} | Hämtar en Delegation-resurs. |
| PATCH | /delegations/{id} | Uppdaterar Delegation-resursen. |
| DELETE | /delegations/{id} | Tar bort Delegation-resursen. |
Schema-fält
| Fält | Typ | Beskrivning |
|---|---|---|
| id | integer | |
| employee* | string (iri-reference) | |
| project | string,null (iri-reference) | Nullable: a historical trip may name no project, and it must still be recorded. |
| projectTask | string,null (iri-reference) | |
| dateFrom* | string (date-time) | |
| dateTo* | string (date-time) | |
| seconds | integernull | Optional: the source history carries days, not hours. |
| description | stringnull | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| deletedAt | string,null (date-time) | |
| days | integer | Calendar days covered, INCLUSIVE — a trip that starts and ends on the same day is one day, not zero. This is the unit the travel analytics report, because the source history counts days rather than hours. |
| deleted | boolean | Check if the entity has been soft deleted. |