From a248fc159de1c3b4d16a151b451c75333dbc2f26 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Thu, 16 May 2024 02:14:54 +0000 Subject: [PATCH] Test fixes --- Admin/Install/elementtypes.json | 14 ++++++++++++ Controller/ApiController.php | 10 +++++++-- Controller/BackendController.php | 2 +- Docs/Dev/en/structure.md | 5 ----- Docs/Dev/img/er.png | Bin 52335 -> 0 bytes Docs/Help/en/SUMMARY.md | 5 +++++ Docs/Help/en/expense.md | 21 ++++++++++++++++++ Docs/Help/en/expense_element_type.md | 17 ++++++++++++++ Docs/Help/en/expense_type.md | 10 +++++++++ Docs/Help/en/introduction.md | 21 ++++++++++++++++++ .../img/expenses_element_invalid_date.png | Bin 0 -> 3266 bytes Docs/img.json | 12 ++++++++++ Theme/Backend/Lang/de.lang.php | 8 +++---- Theme/Backend/Lang/en.lang.php | 8 +++---- Theme/Backend/element-view.tpl.php | 4 ++-- Theme/Backend/expense-view.tpl.php | 17 +++++++++++--- info.json | 2 +- 17 files changed, 134 insertions(+), 22 deletions(-) delete mode 100644 Docs/Dev/en/structure.md delete mode 100644 Docs/Dev/img/er.png create mode 100644 Docs/Help/en/SUMMARY.md create mode 100644 Docs/Help/en/expense.md create mode 100644 Docs/Help/en/expense_element_type.md create mode 100644 Docs/Help/en/expense_type.md create mode 100644 Docs/Help/en/introduction.md create mode 100644 Docs/Help/img/expenses_element_invalid_date.png create mode 100644 Docs/img.json diff --git a/Admin/Install/elementtypes.json b/Admin/Install/elementtypes.json index 41427d3..9f35567 100644 --- a/Admin/Install/elementtypes.json +++ b/Admin/Install/elementtypes.json @@ -68,6 +68,20 @@ "en": "Postage", "de": "Porto" } + }, + { + "name": "stationary", + "l11n": { + "en": "Stationary", + "de": "Büromaterial" + } + }, + { + "name": "it", + "l11n": { + "en": "IT", + "de": "IT" + } }, { "name": "other", diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 632fa75..9d6ba5e 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -497,7 +497,7 @@ final class ApiController extends Controller $this->apiExpenseElementCreate($internalRequest, $internalResponse, $data); - $elements[] = $internalResponse->getDataArray($internalRequest->uri->__toString())['response']; + $elements[] = $internalResponse->getDataArray($internalRequest->uri->__toString())['response'] ?? null; } $this->createStandardCreateResponse($request, $response, $elements); @@ -705,7 +705,13 @@ final class ApiController extends Controller $this->app->moduleManager->get('Billing', 'ApiPurchase')->apiSupplierBillUpload($internalRequest, $internalResponse, $data); - $bills = $internalResponse->getDataArray($internalRequest->uri->__toString())['response']; + $bills = $internalResponse->getDataArray($internalRequest->uri->__toString())['response'] ?? []; + if (empty($bills)) { + $response->header->status = RequestStatusCode::R_400; + $this->createInvalidAddResponse($request, $response, $bills); + + return; + } $elementObj = ExpenseElementMapper::get() ->where('id', $element) diff --git a/Controller/BackendController.php b/Controller/BackendController.php index fe32274..114bef0 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -126,7 +126,7 @@ final class BackendController extends Controller ->executeGetArray(); $view->data['expense-notes'] = new \Modules\Editor\Theme\Backend\Components\Compound\BaseView($this->app->l11nManager, $request, $response); - $view->data['media-upload'] = new \Modules\Media\Theme\Backend\Components\Upload\BaseView($this->app->l11nManager, $request, $response); + $view->data['media-upload'] = new \Modules\Media\Theme\Backend\Components\Upload\BaseView($this->app->l11nManager, $request, $response); return $view; } diff --git a/Docs/Dev/en/structure.md b/Docs/Dev/en/structure.md deleted file mode 100644 index 1e1ed19..0000000 --- a/Docs/Dev/en/structure.md +++ /dev/null @@ -1,5 +0,0 @@ -# Structure - -## ER - -![ER](Modules/BusinessExpenses/Docs/Dev/img/er.png) \ No newline at end of file diff --git a/Docs/Dev/img/er.png b/Docs/Dev/img/er.png deleted file mode 100644 index 55efbd276d17fde2ec7202a415812bfb7b02052c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52335 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 S_|ydb6?s{ut9jCfe*XtNvCtg= diff --git a/Docs/Help/en/SUMMARY.md b/Docs/Help/en/SUMMARY.md new file mode 100644 index 0000000..73e73d8 --- /dev/null +++ b/Docs/Help/en/SUMMARY.md @@ -0,0 +1,5 @@ +# User Content + +* [Expense]({%}&page=Help/expense) +* [Expense Element Type]({%}&page=Help/expense_element_type) +* [Expense Type]({%}&page=Help/expense_type) diff --git a/Docs/Help/en/expense.md b/Docs/Help/en/expense.md new file mode 100644 index 0000000..e0d1ddb --- /dev/null +++ b/Docs/Help/en/expense.md @@ -0,0 +1,21 @@ +# Expense + +## Overview + +In the overview you can see for which person the expense report is, which period it covers and additional general information if provided. + +![Expense Overview](Modules/BusinessExpenses/Docs/Help/img/expenses_overview.png) + +## Expenses + +In the expenses tab you can create and see individual expenses for this expense report. + +> Every expense should have it's own separate expense element. + +The list shows all days of the expense period, even if no expenses are recorded for a certain day. However, these days are greyed out. Expenses that are outside of the expense period are highlighted in red. + +![Expense Overview](Modules/BusinessExpenses/Docs/Help/img/expenses_element_invalid_date.png) + +After clicking on the respective expense line you will be able to see the detailed information of that expense. + +![Expense Overview](Modules/BusinessExpenses/Docs/Help/img/expenses_element_overview.png) diff --git a/Docs/Help/en/expense_element_type.md b/Docs/Help/en/expense_element_type.md new file mode 100644 index 0000000..c2c9912 --- /dev/null +++ b/Docs/Help/en/expense_element_type.md @@ -0,0 +1,17 @@ +# Expense Element Type + +The expense element type describes the type of expenses. The module provides the following default types: + +* Fuel +* Parking +* Entertainment +* Breakfast +* Lunch +* Dinner +* Hotel +* Travelling +* Present +* Postage +* Stationary +* IT +* Other \ No newline at end of file diff --git a/Docs/Help/en/expense_type.md b/Docs/Help/en/expense_type.md new file mode 100644 index 0000000..768f7cc --- /dev/null +++ b/Docs/Help/en/expense_type.md @@ -0,0 +1,10 @@ +# Expense Type + +The expense type describes the type of expense report. The module provides the following default types: + +* Sales (e.g. meeting with customer) +* Supplier (e.g. meeting with supplier) +* Education (e.g. employee training) +* Event +* Affiliate (e.g. shareholder/owner related) +* Other \ No newline at end of file diff --git a/Docs/Help/en/introduction.md b/Docs/Help/en/introduction.md new file mode 100644 index 0000000..f0e15f7 --- /dev/null +++ b/Docs/Help/en/introduction.md @@ -0,0 +1,21 @@ +# Introduction + +The **Business Expenses** module lets you create and manage business expenses. + +## Target Group + +The target group for this module is anyone who has to create and manage business expenses (e.g. travelling sales men). + +# Setup + +This module doesn't have any additional setup requirements. However, for some automated invoice recognition please make sure you have `tesseract-ocr` installed. + +# Features + +## Expense Types + +Multiple expense types to indicate the type of the expense report. + +## Expense Element Types + +Multiple expense element types to indicate the type of the expense, such as hotel, dinner, travelling, ... diff --git a/Docs/Help/img/expenses_element_invalid_date.png b/Docs/Help/img/expenses_element_invalid_date.png new file mode 100644 index 0000000000000000000000000000000000000000..5c8d226373acff5baf30944c0055e69dfe8ec84a GIT binary patch literal 3266 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 AWB>pF literal 0 HcmV?d00001 diff --git a/Docs/img.json b/Docs/img.json new file mode 100644 index 0000000..fe49afa --- /dev/null +++ b/Docs/img.json @@ -0,0 +1,12 @@ +[ + [ + "/businessexpenses/expense/view?id=1", + "//*[@id=\"content\"]/div[2]/div[2]/div[1]/div[2]/div/section", + "/BusinessExpenses/Docs/Help/img/expenses_overview.png" + ], + [ + "/businessexpenses/expense/element/view?id=1", + "//*[@id=\"content\"]/div[2]/div[2]/div[1]/div/div/section", + "/BusinessExpenses/Docs/Help/img/expenses_element_overview.png" + ] +] diff --git a/Theme/Backend/Lang/de.lang.php b/Theme/Backend/Lang/de.lang.php index 563c927..f3ab531 100644 --- a/Theme/Backend/Lang/de.lang.php +++ b/Theme/Backend/Lang/de.lang.php @@ -21,22 +21,22 @@ return ['BusinessExpenses' => [ 'CreatedAt' => 'Erstellt', 'Description' => 'Beschreibung', 'End' => 'Ende', - 'Element' => 'Element', + 'Element' => 'Element', 'Expenses' => 'Kosten', 'From' => 'Von', 'Gross' => 'Brutto', - 'Back' => 'Zurück', + 'Back' => 'Zurück', 'Files' => 'Dateien', 'Net' => 'Netto', 'Notes' => 'Notizen', 'Paid' => 'Bezahlt', 'Report' => 'Bericht', - 'Total' => 'Gesamt', + 'Total' => 'Gesamt', 'Start' => 'Start', 'Status' => 'Status', 'Overview' => 'Übersicht', 'Clocking' => 'Zeiterfassung', 'Type' => 'Typ', - 'Costs' => 'Kosten', + 'Costs' => 'Kosten', 'Upload' => 'Hochladen', ]]; diff --git a/Theme/Backend/Lang/en.lang.php b/Theme/Backend/Lang/en.lang.php index 904e57b..8338b34 100644 --- a/Theme/Backend/Lang/en.lang.php +++ b/Theme/Backend/Lang/en.lang.php @@ -21,22 +21,22 @@ return ['BusinessExpenses' => [ 'CreatedAt' => 'Created At', 'Description' => 'Description', 'End' => 'End', - 'Element' => 'Element', + 'Element' => 'Element', 'Expenses' => 'Expenses', 'From' => 'From', 'Gross' => 'Gross', 'Files' => 'Files', - 'Back' => 'Back', + 'Back' => 'Back', 'Net' => 'Net', 'Notes' => 'Notes', 'Paid' => 'Paid', 'Report' => 'Report', - 'Total' => 'Total', + 'Total' => 'Total', 'Start' => 'Start', 'Status' => 'Status', 'Overview' => 'Overview', 'Clocking' => 'Clocking', 'Type' => 'Type', - 'Costs' => 'Costs', + 'Costs' => 'Costs', 'Upload' => 'Upload', ]]; diff --git a/Theme/Backend/element-view.tpl.php b/Theme/Backend/element-view.tpl.php index 8e24a76..b2fd47e 100644 --- a/Theme/Backend/element-view.tpl.php +++ b/Theme/Backend/element-view.tpl.php @@ -17,8 +17,8 @@ use Modules\BusinessExpenses\Models\NullExpense; use phpOMS\Uri\UriFactory; /** @var \phpOMS\Views\View $this */ -$element = $this->data['element'] ?? new NullExpense(); -$isNew = $element->id === 0; +$element = $this->data['element'] ?? new NullExpense(); +$isNew = $element->id === 0; echo $this->data['nav']->render(); ?>

diff --git a/Theme/Backend/expense-view.tpl.php b/Theme/Backend/expense-view.tpl.php index 558eb69..ef3a3c8 100644 --- a/Theme/Backend/expense-view.tpl.php +++ b/Theme/Backend/expense-view.tpl.php @@ -26,7 +26,7 @@ $sessions = $this->data['sessions'] ?? []; $isNew = $expense->id === 0; echo $this->data['nav']->render(); ?> -
+
+
@@ -123,8 +125,8 @@ echo $this->data['nav']->render(); ?> new FloatInt(), - 'week' => new FloatInt(), - 'day' => new FloatInt(), + 'week' => new FloatInt(), + 'day' => new FloatInt(), ]; $elements = $expense->elements; @@ -190,6 +192,15 @@ echo $this->data['nav']->render(); ?> + id); + ?> + + start->format('Y-m-d H:i'); ?> + end?->format('Y-m-d H:i'); ?> + printHtml($element->type->l11n); ?> + getCurrency($element->gross, symbol: ''); ?> + getHtml('Total'); ?> getAmount(); ?> diff --git a/info.json b/info.json index d0779c5..9adaf57 100644 --- a/info.json +++ b/info.json @@ -12,7 +12,7 @@ }, "creator": { "name": "Jingga", - "website": "jingga.app" + "website": "https://jingga.app" }, "directory": "BusinessExpenses", "dependencies": {