Compare commits
6 Commits
e3dfc3431d
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 6d68dceacb | |||
|
|
e4596c151d | ||
|
|
295b86a3c3 | ||
| 3bfccab663 | |||
| 921f6c0d67 | |||
| 3eae1e6862 |
73
API/v1/customers/companies/GET Companies.md
Normal file
73
API/v1/customers/companies/GET Companies.md
Normal file
@@ -0,0 +1,73 @@
|
||||
# GET Companies
|
||||
This will get all the companies from the database.
|
||||
|
||||
#### Location
|
||||
```
|
||||
/api/v1/customers/companies/
|
||||
```
|
||||
|
||||
#### Permissions required
|
||||
`customer-companies` RO.
|
||||
|
||||
#### Body parameters
|
||||
| Parameter | Type | Required | Description |
|
||||
| -------------------- | ------ | -------- | ----------- |
|
||||
| builder[0][where][0] | string | no | |
|
||||
| builder[0][where][1] | string | no | |
|
||||
|
||||
### Example Body (json)
|
||||
None.
|
||||
|
||||
### Example Request
|
||||
```php
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, [
|
||||
CURLOPT_URL => $baseUrl . '/api/v1/customers/companies/' .
|
||||
'?builder[0][where][0]=company_state'.
|
||||
'&builder[0][where][1]=active',
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_HTTPHEADER => [
|
||||
'Authorization: Bearer ' . $token,
|
||||
],
|
||||
]);
|
||||
|
||||
$response = curl_exec($curl);
|
||||
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
||||
|
||||
if ($response === false) {
|
||||
echo curl_error($curl);
|
||||
}
|
||||
|
||||
curl_close($curl);
|
||||
```
|
||||
|
||||
### Example Response
|
||||
```json
|
||||
[
|
||||
{
|
||||
"company_uuid":"0f6a9c83-809b-4d54-8b16-a8197ac64ab4",
|
||||
"source_uuid":"3c318a1f-a976-485e-8785-74eb3ec8030d",
|
||||
"company_source_id":"1001",
|
||||
"company_source_id2":"facadaka",
|
||||
"company_name":"Meteo",
|
||||
"company_state":"active",
|
||||
"company_create_timestamp":1780172782,
|
||||
"company_modified_timestamp":null
|
||||
},
|
||||
{
|
||||
"company_uuid":"5e0fe765-6dae-11f1-8c62-bc2411125ba4",
|
||||
"source_uuid":"3c318a1f-a976-485e-8785-74eb3ec8030d",
|
||||
"company_source_id":"1003",
|
||||
"company_source_id2":"facadaka",
|
||||
"company_name":"Test",
|
||||
"company_state":"active",
|
||||
"company_create_timestamp":1780172782,
|
||||
"company_modified_timestamp":null
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
#### Known errors or issues.
|
||||
None are known at the time
|
||||
If you do encounter issues and get an http code in return, check the response codes on this page.
|
||||
@@ -0,0 +1,57 @@
|
||||
# DELETE Travel reimbursement
|
||||
This API call deletes a Travel reimbursement.
|
||||
|
||||
#### Location
|
||||
```
|
||||
/api/v1/office/travel-reimburse/
|
||||
```
|
||||
|
||||
#### Permissions required
|
||||
`office-travel-reimburse` RW
|
||||
|
||||
#### Body parameters
|
||||
| Parameter | Type | Required | Description |
|
||||
| -------------- | ---- | -------- | --------------------------------- |
|
||||
| reimburse_uuid | uuid | yes | Unique id of the Travel reimburse |
|
||||
|
||||
### Example Body (json)
|
||||
```json
|
||||
{
|
||||
"reimburse_uuid": "e0a60eba-52f6-11f1-8bcc-bc2411125ba4",
|
||||
}
|
||||
```
|
||||
|
||||
### Example Request
|
||||
```php
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, [
|
||||
CURLOPT_URL => $baseUrl . '/api/v1/office/travel-reimburse/',
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_POST => true,
|
||||
CURLOPT_POSTFIELDS => $json_payload,
|
||||
CURLOPT_HTTPHEADER => [
|
||||
'Authorization: Bearer ' . $token,
|
||||
'Content-Type: application/json',
|
||||
'X-HTTP-Method-Override: DELETE'
|
||||
],
|
||||
]);
|
||||
|
||||
$response = curl_exec($curl);
|
||||
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
||||
|
||||
if ($response === false) {
|
||||
echo curl_error($curl);
|
||||
}
|
||||
|
||||
curl_close($curl);
|
||||
```
|
||||
|
||||
### Example Response
|
||||
```json
|
||||
"Travel reimburse removed."
|
||||
```
|
||||
|
||||
#### Known errors or issues.
|
||||
None are known at the time
|
||||
If you do encounter issues and get an http code in return, check the response codes on this page.
|
||||
78
API/v1/office/travel-reimburse/GET Travel reimbursement.md
Normal file
78
API/v1/office/travel-reimburse/GET Travel reimbursement.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# GET Travel reimbursement
|
||||
This will get travel reimbursement entries from the database.
|
||||
|
||||
#### Location
|
||||
```
|
||||
/api/v1/office/travel-reimburse/
|
||||
```
|
||||
|
||||
#### Permissions required
|
||||
`office-travel-reimburse` RO
|
||||
|
||||
>[!note]
|
||||
>You can only get the travel reimbursements of your user.
|
||||
#### Body parameters
|
||||
| Parameter | Type | Required | Description |
|
||||
| ---------------------- | ------ | -------- | ------------------------- |
|
||||
| builder[0][between][0] | string | no | Get between `travel_date` |
|
||||
| builder[0][between][1] | date | no | For example 2026-06-01 |
|
||||
| builder[0][between][2] | date | no | For example 2026-06-25 |
|
||||
| builder[0][where][0] | string | no | |
|
||||
| builder[0][where][1] | string | no | |
|
||||
|
||||
### Example Body (json)
|
||||
None.
|
||||
|
||||
### Example Request
|
||||
```php
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, [
|
||||
CURLOPT_URL => $baseUrl . '/api/v1/office/travel-reimburse/',
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_HTTPHEADER => [
|
||||
'Authorization: Bearer ' . $token,
|
||||
],
|
||||
]);
|
||||
|
||||
$response = curl_exec($curl);
|
||||
$httpCode = curl_getinfo($curl, CURL INFO_HTTP_CODE);
|
||||
|
||||
if ($response === false) {
|
||||
echo curl_error($curl);
|
||||
}
|
||||
|
||||
curl_close($curl);
|
||||
```
|
||||
|
||||
### Example Response
|
||||
```json
|
||||
[
|
||||
{
|
||||
"reimburse_uuid":"1c0b5323-6d79-11f1-8c62-bc2411125ba4",
|
||||
"user_uuid":"5219edbb-512d-11f1-8bac-bc2411125ba4",
|
||||
"departure_postcode":"3448BT",
|
||||
"destination_postcode":"3433AA",
|
||||
"travel_distance":56,
|
||||
"travel_date":"2026-06-21",
|
||||
"travel_description":null,
|
||||
"company_uuid":null,
|
||||
"company_name":null
|
||||
},
|
||||
{
|
||||
"reimburse_uuid":"85d5db8a-6d79-11f1-8c62-bc2411125ba4",
|
||||
"user_uuid":"5219edbb-512d-11f1-8bac-bc2411125ba4",
|
||||
"departure_postcode":"3448BT",
|
||||
"destination_postcode":"3433AA",
|
||||
"travel_distance":56,
|
||||
"travel_date":"2026-06-21",
|
||||
"travel_description":null,
|
||||
"company_uuid":null,
|
||||
"company_name":null
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
#### Known errors or issues.
|
||||
None are known at the time
|
||||
If you do encounter issues and get an http code in return, check the response codes on this page.
|
||||
72
API/v1/office/travel-reimburse/POST Travel reimbursement.md
Normal file
72
API/v1/office/travel-reimburse/POST Travel reimbursement.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# POST Travel reimbursement
|
||||
This API call adds a entry for the travel reimbursement
|
||||
|
||||
#### Location
|
||||
```
|
||||
/api/v1/office/travel-reimburse/
|
||||
```
|
||||
|
||||
#### Permissions required
|
||||
`office-travel-reimburse` RW
|
||||
|
||||
>[!note]
|
||||
>You can only post the travel reimbursements on your user.
|
||||
|
||||
#### Body parameters
|
||||
| Parameter | Type | Required | Description |
|
||||
| ----------------------------------- | ------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| departure_postcode | string | yes | Postcode of the departure point |
|
||||
| destination_postcode | string | yes | Postcode of the destination point |
|
||||
| travel_date | date | yes | The date of the travel (YYYY-MM-DD) |
|
||||
| travel_distance | integer | yes | The travel distance |
|
||||
| travel_description | string | no | Description of the travel |
|
||||
| office_travelreimburse_company_uuid | uuid | yes, if customers module enabled | *Only when the Customers modules is enabled* The company uuid that the travel is linked to. Set the home/work travel company in system settings |
|
||||
| office_travelreimburse_company_name | string | yes, if customers module disabled | *Only when the Customers module is disabled* The that the travel is linked to. Set the home/work travel company in system settings |
|
||||
| homework | int | 1 or 0 | Set to 1 if the travel entry is home-work travel. |
|
||||
|
||||
### Example Body (json)
|
||||
```json
|
||||
{
|
||||
"departure_postcode": "3448BT",
|
||||
"destination_postcode": "3433AA",
|
||||
"travel_date": "2026-06-21",
|
||||
"travel_distance": "56",
|
||||
"travel_description": "Example description",
|
||||
"office_travelreimburse_company_uuid": "0f6a9c83-809b-4d54-8b16-a8197ac64ab4",
|
||||
"homework": 1
|
||||
}
|
||||
```
|
||||
|
||||
### Example Request
|
||||
```php
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, [
|
||||
CURLOPT_URL => $baseUrl . '/api/v1/office/travel-reimburse/',
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_POST => true,
|
||||
CURLOPT_POSTFIELDS => $json_payload,
|
||||
CURLOPT_HTTPHEADER => [
|
||||
'Authorization: Bearer ' . $token,
|
||||
'Content-Type: application/json',
|
||||
],
|
||||
]);
|
||||
|
||||
$response = curl_exec($curl);
|
||||
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
||||
|
||||
if ($response === false) {
|
||||
echo curl_error($curl);
|
||||
}
|
||||
|
||||
curl_close($curl);
|
||||
```
|
||||
|
||||
### Example Response
|
||||
```json
|
||||
"Travel reimburse added."
|
||||
```
|
||||
|
||||
#### Known errors or issues.
|
||||
None are known at the time
|
||||
If you do encounter issues and get an http code in return, check the response codes on this page.
|
||||
77
API/v1/office/travel-reimburse/PUT Travel reimbursement.md
Normal file
77
API/v1/office/travel-reimburse/PUT Travel reimbursement.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# PUT Travel reimbursement
|
||||
This PUT modifies an existing reimbursement item.
|
||||
|
||||
#### Location
|
||||
```
|
||||
/api/v1/office/travel-reimburse/
|
||||
```
|
||||
|
||||
#### Permissions required
|
||||
`office-travel-reimburse` RW
|
||||
|
||||
>[!note]
|
||||
>You can only update the travel reimbursements on your user.
|
||||
|
||||
#### Body parameters
|
||||
| Parameter | Type | Required | Description |
|
||||
| ----------------------------------- | ------- | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| reimburse_uuid | uuid | yes | Unique id of the reimburse to edit |
|
||||
| departure_postcode | string | yes | Postcode of the departure point |
|
||||
| destination_postcode | string | yes | Postcode of the destination point |
|
||||
| travel_date | date | yes | The date of the travel (YYYY-MM-DD) |
|
||||
| travel_distance | integer | yes | The travel distance |
|
||||
| travel_description | string | no | Description of the travel |
|
||||
| office_travelreimburse_company_uuid | uuid | yes, if customers module enabled | *Only when the Customers modules is enabled* The company uuid that the travel is linked to. Set the home/work travel company in system settings |
|
||||
| office_travelreimburse_company_name | string | yes, if customers module disabled | *Only when the Customers module is disabled* The that the travel is linked to. Set the home/work travel company in system settings |
|
||||
| homework | int | 1 or 0 | Set to 1 if the travel entry is home-work travel. |
|
||||
|
||||
### Example Body (json)
|
||||
```json
|
||||
{
|
||||
"reimburse_uuid": "1c0b5323-6d79-11f1-8c62-bc2411125ba4",
|
||||
"departure_postcode": "3448BT",
|
||||
"destination_postcode": "3433AA",
|
||||
"travel_date": "2026-06-21",
|
||||
"travel_distance": "56",
|
||||
"travel_description": "Example description",
|
||||
"office_travelreimburse_company_uuid": "0f6a9c83-809b-4d54-8b16-a8197ac64ab4",
|
||||
"homework": 1
|
||||
}
|
||||
```
|
||||
|
||||
### Example Request
|
||||
```php
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, [
|
||||
CURLOPT_URL => $baseUrl . '/api/v1/office/travel-reimburse/',
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_POST => true,
|
||||
CURLOPT_POSTFIELDS => $json_payload,
|
||||
CURLOPT_HTTPHEADER => [
|
||||
'Authorization: Bearer ' . $token,
|
||||
'Content-Type: application/json',
|
||||
'X-HTTP-Method-Override: PUT'
|
||||
],
|
||||
]);
|
||||
|
||||
$response = curl_exec($curl);
|
||||
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
||||
|
||||
if ($response === false) {
|
||||
echo curl_error($curl);
|
||||
}
|
||||
|
||||
curl_close($curl);
|
||||
```
|
||||
|
||||
### Example Response
|
||||
```json
|
||||
"Module enabled successfully."
|
||||
```
|
||||
|
||||
#### Known errors or issues.
|
||||
None are known at the time
|
||||
If you do encounter issues and get an http code in return, check the response codes on this page.
|
||||
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
# PUT Global travel reimbursements settings
|
||||
This PUT call configures the global Sentri settings for the Travel reimbursement in the office module.
|
||||
|
||||
#### Location
|
||||
```
|
||||
/api/v1/office/travel-reimburse/configure/
|
||||
```
|
||||
|
||||
#### Permissions required
|
||||
`admin-portalsettings` RW
|
||||
|
||||
#### Body parameters
|
||||
| Parameter | Type | Required | Description |
|
||||
| -------------------------------------------- | ------ | --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| office_travelreimburse_cents_homework_incl | int | yes | The cents per km for home/work travel with taxes included. |
|
||||
| office_travelreimburse_cents_homework_excl | int | yes | The cents per km for home/work travel with taxes excluded. |
|
||||
| office_travelreimburse_cents_business_incl | int | yes | The cents per km for business travel with taxes included. |
|
||||
| office_travelreimburse_cents_business_excl | int | yes | The cents per km for business travel with taxes excluded. |
|
||||
|
||||
### Example Body (json)
|
||||
```json
|
||||
{
|
||||
"portal_uuid": "effda0c0-0830-11f0-9300-7e99ed98b725",
|
||||
"office_travelreimburse_cents_homework_incl": 23,
|
||||
"office_travelreimburse_cents_homework_excl": 23,
|
||||
"office_travelreimburse_cents_business_incl": 23,
|
||||
"office_travelreimburse_cents_business_excl": 23
|
||||
}
|
||||
```
|
||||
|
||||
### Example Request
|
||||
```php
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, [
|
||||
CURLOPT_URL => $baseUrl . '/api/v1/office/travel-reimburse/configure/',
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_POST => true,
|
||||
CURLOPT_POSTFIELDS => $json_payload,
|
||||
CURLOPT_HTTPHEADER => [
|
||||
'Authorization: Bearer ' . $token,
|
||||
'Content-Type: application/json',
|
||||
'X-HTTP-Method-Override: PUT'
|
||||
],
|
||||
]);
|
||||
|
||||
$response = curl_exec($curl);
|
||||
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
|
||||
|
||||
if ($response === false) {
|
||||
echo curl_error($curl);
|
||||
}
|
||||
|
||||
curl_close($curl);
|
||||
```
|
||||
|
||||
### Example Response
|
||||
```json
|
||||
"portal settings updated successfully."
|
||||
```
|
||||
|
||||
#### Known errors or issues.
|
||||
None are known at the time
|
||||
If you do encounter issues and get an http code in return, check the response codes on this page.
|
||||
@@ -1,45 +0,0 @@
|
||||
# GET Sync cloud distributor
|
||||
This API call synchronizes active companies in Sentri with the corresponding cloud distributor companies in Inserve. These cloud distributor companies are required to associate Sentri server licenses with companies in Inserve.
|
||||
#### Location
|
||||
```
|
||||
/api/v1/sources/inserve/sync-cloud-distributor/
|
||||
```
|
||||
|
||||
#### Permissions required
|
||||
`servers` RW
|
||||
|
||||
#### Body parameters
|
||||
None.
|
||||
|
||||
### Example Body (json)
|
||||
None.
|
||||
|
||||
### Example Request
|
||||
```php
|
||||
|
||||
$curl = curl_init();
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => 'https://sentri.nl/api/v1/sources/inserve/sync-cloud-distributor/',
|
||||
CURLOPT_CUSTOMREQUEST => 'GET',
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_HTTPHEADER => [
|
||||
"Authorization: Bearer <API your Bearer Token>",
|
||||
"Accept: application/json",
|
||||
"Content-Type: application/json"
|
||||
]
|
||||
));
|
||||
|
||||
$response = curl_exec($curl);
|
||||
|
||||
curl_close($curl);
|
||||
echo $response;
|
||||
```
|
||||
|
||||
### Example Response
|
||||
```json
|
||||
"Sync is done successfully"
|
||||
```
|
||||
|
||||
#### Known errors or issues.
|
||||
None are known at the time
|
||||
If you do encounter issues and get an http code in return, check the response codes on this page.
|
||||
27
Modules/Office/Travel Reimbursement.md
Normal file
27
Modules/Office/Travel Reimbursement.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# Travel Reimbursement
|
||||
|
||||
The travel reimbursement feature allows users to enter information about the distance they have traveled, enabling the system to calculate and send an reimburse invoice of the associated travel costs to the user.
|
||||
|
||||
Users can open a calendar month and set their default travel information. By clicking on a day in the calendar, users can create a travel entry. These travel entries are then aggregated, and the total travel costs are calculated based on the cost settings configured by the administrator.
|
||||
|
||||
## Using Travel Reimbursement
|
||||
|
||||
Permissions required: `office-travel-reimburse` RW.
|
||||
|
||||
To use travel reimbursement, navigate to _Travel Reimbursement_ and configure your default travel information above the calendar. These defaults will be applied automatically when creating new travel entries. Click **Save** to store the defaults for future use.
|
||||
|
||||
To create a travel entry, click on the date for which you want to add a travel reimbursement. Multiple travel entries can be added to the same day. Click on an existing entry to edit its details, such as adding a description. From the same menu, you can also choose to delete the entry.
|
||||
|
||||
To send the invoice, click the **Mail travel reimbursement** button below the calendar. The invoice will be send to your email address.
|
||||
|
||||
## Configuring Travel Reimbursement
|
||||
|
||||
Permissions required: `admin-portalsettings` RW.
|
||||
|
||||
To configure the travel Travel Reimbursement settings go to *portal-management* > *Modules* > *configure Office* > *Travel Reimbursement*.
|
||||
|
||||
Here you can configure the following:
|
||||
- Cents per/km home-work incl. VAT
|
||||
- Cents per/km home-work excl. VAT
|
||||
- Cents per/km business incl. VAT
|
||||
- Cents per/km business excl. VAT
|
||||
@@ -1,14 +1,31 @@
|
||||
# Release notes
|
||||
|
||||
## v.1.3
|
||||
`to be announced`
|
||||
## v.1.3.1
|
||||
`13-06-2026`
|
||||
|
||||
### Changes
|
||||
- Rename the servers module to Inventory so it supports other things as well.
|
||||
- Added CSP headers to PHP code
|
||||
- Name of the travel reimbursement PDF attachment changed.
|
||||
- Changes in server license creation due to Inserve removing creation of cloud distributor companies.
|
||||
### Fixes
|
||||
- Error when deleting last travel entry.
|
||||
- Error when posting server without server_state.
|
||||
- Return url of portal-management forms went to /systemconfig/.
|
||||
- List of travel entries in travel reimbursement PDF is not sorted on date.
|
||||
- Calculation in total km not correct.
|
||||
## v.1.3
|
||||
`08-07-2026`
|
||||
|
||||
### Features
|
||||
- Hypervisor overview.
|
||||
- Network devices overview.
|
||||
- Travel reimbursement feature added.
|
||||
|
||||
### Fixes
|
||||
- [b4f3553f1e](https://gitea.mooij.me/meteo/Sentri/commit/b4f3553f1eeedb7ea47686b49e66acd6fccfe145) Disabling MFA in userprofile does not hide button correctly.
|
||||
- [97963b34aa](https://gitea.mooij.me/meteo/Sentri/commit/97963b34aa138c9dbfca8d0a2d8f326e96adb925) Update different composer packages.
|
||||
- [68c9e00afb](https://gitea.mooij.me/meteo/Sentri/commit/68c9e00afb79ba2c63e0ecb9970a6f04b04e6e7a) cloudDistributor not set when creating Inserve subscription licenses.
|
||||
- [94f349597d](https://gitea.mooij.me/meteo/Sentri/commit/94f349597d97f480aa2713589508baf46428ad80) Changed /systemconfig/ page to /portal-management/.
|
||||
- [b31185c2e9](https://gitea.mooij.me/meteo/Sentri/commit/b31185c2e92945fa06ca223d6b0ac95b5cd1180d) Login without username/password now shows error on login page.
|
||||
- [f94bafb25d](https://gitea.mooij.me/meteo/Sentri/commit/f94bafb25dd1ba17ba59b5114a9b0dff6d687f8c) Server overview wont hide last modify column.
|
||||
- [fa3515625b](https://gitea.mooij.me/meteo/Sentri/commit/fa3515625b7ff5e80e3737c5feb5fbcd7a2b6cbe) No response toast anymore when saving something
|
||||
|
||||
## v.1.2.4
|
||||
`21-06-2026`
|
||||
|
||||
6
index.md
6
index.md
@@ -1,4 +1,5 @@
|
||||
# Welcome to the Sentri docs!
|
||||
|
||||
>[!note]
|
||||
>The making of the this documentation is still in progress.
|
||||
# What is Sentri
|
||||
@@ -18,7 +19,12 @@ The following CRM customer sources are currently available:
|
||||
|
||||
- [[Inserve|Inserve]]
|
||||
## Module: Office
|
||||
### Stompjes
|
||||
This module currently provides a feature that lets you “stomp” a colleague. It can be used to keep track of things such as counting your mom jokes or other actions between team members. These events are counted and visualized through a simple graph.
|
||||
|
||||
### Travel reimbursement
|
||||
Another feature is the travel reimbursement feature. This allows users to enter information about the distance they have traveled, enabling the system to calculate and send an reimburse invoice of the associated travel costs to the user.
|
||||
|
||||
## Module: Servers
|
||||
The Servers module is designed to help you keep track of all servers you manage. It centralizes key information such as assigned resources, configured backups, used licenses, and more.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user