auto fixes + some impl.

This commit is contained in:
Dennis Eichhorn 2024-01-26 22:53:59 +00:00
parent bfc6a49bf2
commit 4d4e065fa1
19 changed files with 200 additions and 193 deletions

View File

@ -20,7 +20,6 @@ use phpOMS\Message\Http\HttpRequest;
use phpOMS\Message\Http\HttpResponse; use phpOMS\Message\Http\HttpResponse;
use phpOMS\Module\InstallerAbstract; use phpOMS\Module\InstallerAbstract;
use phpOMS\Module\ModuleInfo; use phpOMS\Module\ModuleInfo;
use phpOMS\Uri\HttpUri;
/** /**
* Installer class. * Installer class.
@ -89,7 +88,7 @@ final class Installer extends InstallerAbstract
/** @var array $type */ /** @var array $type */
foreach ($types as $type) { foreach ($types as $type) {
$response = new HttpResponse(); $response = new HttpResponse();
$request = new HttpRequest(new HttpUri('')); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('name', $type['name'] ?? ''); $request->setData('name', $type['name'] ?? '');
@ -115,7 +114,7 @@ final class Installer extends InstallerAbstract
} }
$response = new HttpResponse(); $response = new HttpResponse();
$request = new HttpRequest(new HttpUri('')); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('title', $l11n); $request->setData('title', $l11n);
@ -150,7 +149,7 @@ final class Installer extends InstallerAbstract
/** @var array $type */ /** @var array $type */
foreach ($types as $type) { foreach ($types as $type) {
$response = new HttpResponse(); $response = new HttpResponse();
$request = new HttpRequest(new HttpUri('')); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('name', $type['name'] ?? ''); $request->setData('name', $type['name'] ?? '');
@ -176,7 +175,7 @@ final class Installer extends InstallerAbstract
} }
$response = new HttpResponse(); $response = new HttpResponse();
$request = new HttpRequest(new HttpUri('')); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('title', $l11n); $request->setData('title', $l11n);

View File

@ -18,7 +18,7 @@ use phpOMS\Account\PermissionType;
use phpOMS\Router\RouteVerb; use phpOMS\Router\RouteVerb;
return [ return [
'^.*/businessexpenses/expense/list.*$' => [ '^.*/businessexpenses/expense/list(\?.*$|$)' => [
[ [
'dest' => '\Modules\BusinessExpenses\Controller\BackendController:viewBusinessExpensesList', 'dest' => '\Modules\BusinessExpenses\Controller\BackendController:viewBusinessExpensesList',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,
@ -29,7 +29,7 @@ return [
], ],
], ],
], ],
'^.*/businessexpenses/expense/create.*$' => [ '^.*/businessexpenses/expense/create(\?.*$|$)' => [
[ [
'dest' => '\Modules\BusinessExpenses\Controller\BackendController:viewBusinessExpensesExpenseCreate', 'dest' => '\Modules\BusinessExpenses\Controller\BackendController:viewBusinessExpensesExpenseCreate',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,
@ -40,7 +40,7 @@ return [
], ],
], ],
], ],
'^.*/businessexpenses/expense(\?.*|$)$' => [ '^.*/businessexpenses/expense(\?.*$|$)' => [
[ [
'dest' => '\Modules\BusinessExpenses\Controller\BackendController:viewBusinessExpensesExpense', 'dest' => '\Modules\BusinessExpenses\Controller\BackendController:viewBusinessExpensesExpense',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,
@ -51,7 +51,7 @@ return [
], ],
], ],
], ],
'^.*/businessexpenses/type/list\?.*$' => [ '^.*/businessexpenses/type/list(\?.*$|$)' => [
[ [
'dest' => '\Modules\BusinessExpenses\Controller\BackendController:viewBusinessExpensesTypeList', 'dest' => '\Modules\BusinessExpenses\Controller\BackendController:viewBusinessExpensesTypeList',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,
@ -62,7 +62,7 @@ return [
], ],
], ],
], ],
'^.*/businessexpenses/type(\?.*|$)$' => [ '^.*/businessexpenses/type(\?.*$|$)' => [
[ [
'dest' => '\Modules\BusinessExpenses\Controller\BackendController:viewBusinessExpensesType', 'dest' => '\Modules\BusinessExpenses\Controller\BackendController:viewBusinessExpensesType',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,
@ -73,7 +73,7 @@ return [
], ],
], ],
], ],
'^.*/businessexpenses/type/create.*$' => [ '^.*/businessexpenses/type/create(\?.*$|$)' => [
[ [
'dest' => '\Modules\BusinessExpenses\Controller\BackendController:viewBusinessExpensesTypeCreate', 'dest' => '\Modules\BusinessExpenses\Controller\BackendController:viewBusinessExpensesTypeCreate',
'verb' => RouteVerb::GET, 'verb' => RouteVerb::GET,

View File

@ -93,7 +93,10 @@ final class ApiController extends Controller
{ {
$type = new BaseStringL11nType(); $type = new BaseStringL11nType();
$type->title = $request->getDataString('name') ?? ''; $type->title = $request->getDataString('name') ?? '';
$type->setL11n($request->getDataString('title') ?? '', $request->getDataString('language') ?? ISO639x1Enum::_EN); $type->setL11n(
$request->getDataString('title') ?? '',
ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN
);
return $type; return $type;
} }
@ -159,9 +162,7 @@ final class ApiController extends Controller
{ {
$typeL11n = new BaseStringL11n(); $typeL11n = new BaseStringL11n();
$typeL11n->ref = $request->getDataInt('type') ?? 0; $typeL11n->ref = $request->getDataInt('type') ?? 0;
$typeL11n->setLanguage( $typeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language;
$request->getDataString('language') ?? $request->header->l11n->language
);
$typeL11n->content = $request->getDataString('title') ?? ''; $typeL11n->content = $request->getDataString('title') ?? '';
return $typeL11n; return $typeL11n;
@ -229,7 +230,10 @@ final class ApiController extends Controller
{ {
$type = new BaseStringL11nType(); $type = new BaseStringL11nType();
$type->title = $request->getDataString('name') ?? ''; $type->title = $request->getDataString('name') ?? '';
$type->setL11n($request->getDataString('title') ?? '', $request->getDataString('language') ?? ISO639x1Enum::_EN); $type->setL11n(
$request->getDataString('title') ?? '',
ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN
);
return $type; return $type;
} }
@ -295,9 +299,7 @@ final class ApiController extends Controller
{ {
$typeL11n = new BaseStringL11n(); $typeL11n = new BaseStringL11n();
$typeL11n->ref = $request->getDataInt('type') ?? 0; $typeL11n->ref = $request->getDataInt('type') ?? 0;
$typeL11n->setLanguage( $typeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language;
$request->getDataString('language') ?? $request->header->l11n->language
);
$typeL11n->content = $request->getDataString('title') ?? ''; $typeL11n->content = $request->getDataString('title') ?? '';
return $typeL11n; return $typeL11n;
@ -365,7 +367,7 @@ final class ApiController extends Controller
$expense = new Expense(); $expense = new Expense();
$expense->from = new NullAccount((int) $request->header->account); $expense->from = new NullAccount((int) $request->header->account);
$expense->type = new NullBaseStringL11nType((int) $request->getDataInt('type')); $expense->type = new NullBaseStringL11nType((int) $request->getDataInt('type'));
$expense->status = $request->getDataInt('status') ?? ExpenseStatus::DRAFT; $expense->status = ExpenseStatus::tryFromValue($request->getDataInt('status')) ?? ExpenseStatus::DRAFT;
$expense->description = $request->getDataString('description') ?? ''; $expense->description = $request->getDataString('description') ?? '';
$country = $request->getDataString('country') ?? ''; $country = $request->getDataString('country') ?? '';
@ -1195,9 +1197,7 @@ final class ApiController extends Controller
*/ */
public function updateExpenseTypeL11nFromRequest(RequestAbstract $request, BaseStringL11n $new) : BaseStringL11n public function updateExpenseTypeL11nFromRequest(RequestAbstract $request, BaseStringL11n $new) : BaseStringL11n
{ {
$new->setLanguage( $new->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $new->language;
$request->getDataString('language') ?? $new->language
);
$new->content = $request->getDataString('title') ?? $new->content; $new->content = $request->getDataString('title') ?? $new->content;
return $new; return $new;
@ -1437,9 +1437,7 @@ final class ApiController extends Controller
*/ */
public function updateExpenseElementTypeL11nFromRequest(RequestAbstract $request, BaseStringL11n $new) : BaseStringL11n public function updateExpenseElementTypeL11nFromRequest(RequestAbstract $request, BaseStringL11n $new) : BaseStringL11n
{ {
$new->setLanguage( $new->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $new->language;
$request->getDataString('language') ?? $new->language
);
$new->content = $request->getDataString('title') ?? $new->content; $new->content = $request->getDataString('title') ?? $new->content;
return $new; return $new;
@ -1562,7 +1560,7 @@ final class ApiController extends Controller
public function updateExpenseFromRequest(RequestAbstract $request, Expense $new) : Expense public function updateExpenseFromRequest(RequestAbstract $request, Expense $new) : Expense
{ {
$new->type = $request->hasData('type') ? new NullBaseStringL11nType((int) $request->getDataInt('type')) : $new->type; $new->type = $request->hasData('type') ? new NullBaseStringL11nType((int) $request->getDataInt('type')) : $new->type;
$new->status = $request->getDataInt('status') ?? $new->status; $new->status = ExpenseStatus::tryFromValue($request->getDataInt('status')) ?? $new->status;
$new->description = $request->getDataString('description') ?? $new->description; $new->description = $request->getDataString('description') ?? $new->description;
$new->country = $request->getDataString('country') ?? $new->country; $new->country = $request->getDataString('country') ?? $new->country;

View File

@ -75,7 +75,7 @@ final class BackendController extends Controller
{ {
$view = new View($this->app->l11nManager, $request, $response); $view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/BusinessExpenses/Theme/Backend/expense-single'); $view->setTemplate('/Modules/BusinessExpenses/Theme/Backend/expense-view');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1001001001, $request, $response); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1001001001, $request, $response);
$expense = ExpenseMapper::get() $expense = ExpenseMapper::get()
@ -110,7 +110,7 @@ final class BackendController extends Controller
{ {
$view = new View($this->app->l11nManager, $request, $response); $view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/BusinessExpenses/Theme/Backend/expense-single'); $view->setTemplate('/Modules/BusinessExpenses/Theme/Backend/expense-view');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1001001001, $request, $response); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1001001001, $request, $response);
$expense = ExpenseMapper::get() $expense = ExpenseMapper::get()
@ -139,7 +139,7 @@ final class BackendController extends Controller
{ {
$view = new View($this->app->l11nManager, $request, $response); $view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/BusinessExpenses/Theme/Backend/expense-single'); $view->setTemplate('/Modules/BusinessExpenses/Theme/Backend/expense-view');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1001001001, $request, $response); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1001001001, $request, $response);
$expense = ExpenseMapper::get() $expense = ExpenseMapper::get()
@ -168,7 +168,7 @@ final class BackendController extends Controller
{ {
$view = new View($this->app->l11nManager, $request, $response); $view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/BusinessExpenses/Theme/Backend/expense-single'); $view->setTemplate('/Modules/BusinessExpenses/Theme/Backend/expense-view');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1001001001, $request, $response); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1001001001, $request, $response);
$expense = ExpenseMapper::get() $expense = ExpenseMapper::get()
@ -197,7 +197,7 @@ final class BackendController extends Controller
{ {
$view = new View($this->app->l11nManager, $request, $response); $view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/BusinessExpenses/Theme/Backend/expense-single'); $view->setTemplate('/Modules/BusinessExpenses/Theme/Backend/expense-view');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1001001001, $request, $response); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1001001001, $request, $response);
$expense = ExpenseMapper::get() $expense = ExpenseMapper::get()

View File

@ -54,8 +54,6 @@ class ExpenseElement
public ?Account $ref = null; public ?Account $ref = null;
public array $media = [];
public string $taxId = ''; public string $taxId = '';
public ?Supplier $supplier = null; public ?Supplier $supplier = null;
@ -82,4 +80,6 @@ class ExpenseElement
$this->start = new \DateTime('now'); $this->start = new \DateTime('now');
$this->end = new \DateTime('now'); $this->end = new \DateTime('now');
} }
use \Modules\Media\Models\MediaListTrait;
} }

View File

@ -20,7 +20,7 @@ use Modules\SupplierManagement\Models\SupplierMapper;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
/** /**
* mapper class. * Expense element mapper class.
* *
* @package Modules\BusinessExpenses\Models * @package Modules\BusinessExpenses\Models
* @license OMS License 2.0 * @license OMS License 2.0
@ -65,7 +65,7 @@ final class ExpenseElementMapper extends DataMapperFactory
* @since 1.0.0 * @since 1.0.0
*/ */
public const HAS_MANY = [ public const HAS_MANY = [
'media' => [ 'files' => [
'mapper' => MediaMapper::class, 'mapper' => MediaMapper::class,
'table' => 'bizexpenses_expense_element_media', 'table' => 'bizexpenses_expense_element_media',
'external' => 'bizexpenses_expense_element_media_dst', 'external' => 'bizexpenses_expense_element_media_dst',

View File

@ -18,7 +18,7 @@ use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
use phpOMS\Localization\BaseStringL11n; use phpOMS\Localization\BaseStringL11n;
/** /**
* mapper class. * Expense element type l11n mapper class.
* *
* @package Modules\BusinessExpenses\Models * @package Modules\BusinessExpenses\Models
* @license OMS License 2.0 * @license OMS License 2.0

View File

@ -20,7 +20,7 @@ use Modules\Media\Models\MediaMapper;
use phpOMS\DataStorage\Database\Mapper\DataMapperFactory; use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
/** /**
* mapper class. * Expense mapper class.
* *
* @package Modules\BusinessExpenses\Models * @package Modules\BusinessExpenses\Models
* @license OMS License 2.0 * @license OMS License 2.0

View File

@ -18,7 +18,7 @@ use phpOMS\DataStorage\Database\Mapper\DataMapperFactory;
use phpOMS\Localization\BaseStringL11n; use phpOMS\Localization\BaseStringL11n;
/** /**
* mapper class. * Expense type l11n mapper class.
* *
* @package Modules\BusinessExpenses\Models * @package Modules\BusinessExpenses\Models
* @license OMS License 2.0 * @license OMS License 2.0

View File

@ -26,29 +26,29 @@ echo $this->data['nav']->render(); ?>
<section class="portlet"> <section class="portlet">
<div class="portlet-head"><?= $this->getHtml('Expenses'); ?><i class="g-icon download btn end-xs">download</i></div> <div class="portlet-head"><?= $this->getHtml('Expenses'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="slider"> <div class="slider">
<table id="iSalesClientList" class="default sticky"> <table id="iExpenseList" class="default sticky">
<thead> <thead>
<tr> <tr>
<td> <td>
<td><?= $this->getHtml('ID', '0', '0'); ?> <td><?= $this->getHtml('ID', '0', '0'); ?>
<label for="iSalesClientList-sort-1"> <label for="iExpenseList-sort-1">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-1"> <input type="radio" name="iExpenseList-sort" id="iExpenseList-sort-1">
<i class="sort-asc g-icon">expand_less</i> <i class="sort-asc g-icon">expand_less</i>
</label> </label>
<label for="iSalesClientList-sort-2"> <label for="iExpenseList-sort-2">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-2"> <input type="radio" name="iExpenseList-sort" id="iExpenseList-sort-2">
<i class="sort-desc g-icon">expand_more</i> <i class="sort-desc g-icon">expand_more</i>
</label> </label>
<label> <label>
<i class="filter g-icon">filter_alt</i> <i class="filter g-icon">filter_alt</i>
</label> </label>
<td><?= $this->getHtml('Status'); ?> <td><?= $this->getHtml('Status'); ?>
<label for="iSalesClientList-sort-3"> <label for="iExpenseList-sort-3">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-3"> <input type="radio" name="iExpenseList-sort" id="iExpenseList-sort-3">
<i class="sort-asc g-icon">expand_less</i> <i class="sort-asc g-icon">expand_less</i>
</label> </label>
<label for="iSalesClientList-sort-4"> <label for="iExpenseList-sort-4">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-4"> <input type="radio" name="iExpenseList-sort" id="iExpenseList-sort-4">
<i class="sort-desc g-icon">expand_more</i> <i class="sort-desc g-icon">expand_more</i>
</label> </label>
<label> <label>
@ -63,55 +63,56 @@ echo $this->data['nav']->render(); ?>
<i class="filter g-icon">filter_alt</i> <i class="filter g-icon">filter_alt</i>
</label> </label>
<td class="wf-100"><?= $this->getHtml('From'); ?> <td class="wf-100"><?= $this->getHtml('From'); ?>
<label for="iSalesClientList-sort-5"> <label for="iExpenseList-sort-5">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-5"> <input type="radio" name="iExpenseList-sort" id="iExpenseList-sort-5">
<i class="sort-asc g-icon">expand_less</i> <i class="sort-asc g-icon">expand_less</i>
</label> </label>
<label for="iSalesClientList-sort-6"> <label for="iExpenseList-sort-6">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-6"> <input type="radio" name="iExpenseList-sort" id="iExpenseList-sort-6">
<i class="sort-desc g-icon">expand_more</i> <i class="sort-desc g-icon">expand_more</i>
</label> </label>
<label> <label>
<i class="filter g-icon">filter_alt</i> <i class="filter g-icon">filter_alt</i>
</label> </label>
<td><?= $this->getHtml('Amount'); ?> <td><?= $this->getHtml('Amount'); ?>
<label for="iSalesClientList-sort-7"> <label for="iExpenseList-sort-7">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-7"> <input type="radio" name="iExpenseList-sort" id="iExpenseList-sort-7">
<i class="sort-asc g-icon">expand_less</i> <i class="sort-asc g-icon">expand_less</i>
</label> </label>
<label for="iSalesClientList-sort-8"> <label for="iExpenseList-sort-8">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-8"> <input type="radio" name="iExpenseList-sort" id="iExpenseList-sort-8">
<i class="sort-desc g-icon">expand_more</i> <i class="sort-desc g-icon">expand_more</i>
</label> </label>
<label> <label>
<i class="filter g-icon">filter_alt</i> <i class="filter g-icon">filter_alt</i>
</label> </label>
<td><?= $this->getHtml('Start'); ?> <td><?= $this->getHtml('Start'); ?>
<label for="iSalesClientList-sort-7"> <label for="iExpenseList-sort-7">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-7"> <input type="radio" name="iExpenseList-sort" id="iExpenseList-sort-7">
<i class="sort-asc g-icon">expand_less</i> <i class="sort-asc g-icon">expand_less</i>
</label> </label>
<label for="iSalesClientList-sort-8"> <label for="iExpenseList-sort-8">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-8"> <input type="radio" name="iExpenseList-sort" id="iExpenseList-sort-8">
<i class="sort-desc g-icon">expand_more</i> <i class="sort-desc g-icon">expand_more</i>
</label> </label>
<label> <label>
<i class="filter g-icon">filter_alt</i> <i class="filter g-icon">filter_alt</i>
</label> </label>
<td><?= $this->getHtml('End'); ?> <td><?= $this->getHtml('End'); ?>
<label for="iSalesClientList-sort-7"> <label for="iExpenseList-sort-7">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-7"> <input type="radio" name="iExpenseList-sort" id="iExpenseList-sort-7">
<i class="sort-asc g-icon">expand_less</i> <i class="sort-asc g-icon">expand_less</i>
</label> </label>
<label for="iSalesClientList-sort-8"> <label for="iExpenseList-sort-8">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-8"> <input type="radio" name="iExpenseList-sort" id="iExpenseList-sort-8">
<i class="sort-desc g-icon">expand_more</i> <i class="sort-desc g-icon">expand_more</i>
</label> </label>
<label> <label>
<i class="filter g-icon">filter_alt</i> <i class="filter g-icon">filter_alt</i>
</label> </label>
<tbody> <tbody>
<?php $count = 0; foreach ($expenses as $key => $value) : ++$count; <?php $count = 0;
foreach ($expenses as $key => $value) : ++$count;
$url = UriFactory::build('{/base}/businessexpenses/expense?{?}&id=' . $value->id); $url = UriFactory::build('{/base}/businessexpenses/expense?{?}&id=' . $value->id);
?> ?>
<tr data-href="<?= $url; ?>"> <tr data-href="<?= $url; ?>">
@ -121,7 +122,7 @@ echo $this->data['nav']->render(); ?>
<td class="centerText" data-label="<?= $this->getHtml('Paid'); ?>"><a href="<?= $url; ?>"><i class="g-icon"><?= $value->paid ? 'check' : 'close'; ?></i></a> <td class="centerText" data-label="<?= $this->getHtml('Paid'); ?>"><a href="<?= $url; ?>"><i class="g-icon"><?= $value->paid ? 'check' : 'close'; ?></i></a>
<td class="centerText" data-label="<?= $this->getHtml('Approved'); ?>"><a href="<?= $url; ?>"><i class="g-icon"><?= $value->approved ? 'check' : 'close'; ?></i></a> <td class="centerText" data-label="<?= $this->getHtml('Approved'); ?>"><a href="<?= $url; ?>"><i class="g-icon"><?= $value->approved ? 'check' : 'close'; ?></i></a>
<td data-label="<?= $this->getHtml('From'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml($this->renderUserName('%3$s %2$s %1$s', [$value->from->name1, $value->from->name2, $value->from->name3])); ?></a> <td data-label="<?= $this->getHtml('From'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml($this->renderUserName('%3$s %2$s %1$s', [$value->from->name1, $value->from->name2, $value->from->name3])); ?></a>
<td data-label="<?= $this->getHtml('Amount'); ?>"><a href="<?= $url; ?>"><?= $this->getCurrency($value->gross); ?></a> <td data-label="<?= $this->getHtml('Amount'); ?>"><a href="<?= $url; ?>"><?= $this->getCurrency($value->gross, symbol: ''); ?></a>
<td data-label="<?= $this->getHtml('Start'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml($value->start->format('Y-m-d')); ?></a> <td data-label="<?= $this->getHtml('Start'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml($value->start->format('Y-m-d')); ?></a>
<td data-label="<?= $this->getHtml('End'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml($value->end->format('Y-m-d')); ?></a> <td data-label="<?= $this->getHtml('End'); ?>"><a href="<?= $url; ?>"><?= $this->printHtml($value->end->format('Y-m-d')); ?></a>
<?php endforeach; ?> <?php endforeach; ?>

View File

@ -14,7 +14,6 @@
declare(strict_types=1); declare(strict_types=1);
use Modules\BusinessExpenses\Models\NullExpense; use Modules\BusinessExpenses\Models\NullExpense;
use phpOMS\Uri\UriFactory;
/** @var \phpOMS\Views\View $this */ /** @var \phpOMS\Views\View $this */
$expense = $this->getData('expense') ?? new NullExpense(); $expense = $this->getData('expense') ?? new NullExpense();
@ -109,17 +108,17 @@ echo $this->data['nav']->render(); ?>
<section class="portlet"> <section class="portlet">
<div class="portlet-head"><?= $this->getHtml('Expenses'); ?><i class="g-icon download btn end-xs">download</i></div> <div class="portlet-head"><?= $this->getHtml('Expenses'); ?><i class="g-icon download btn end-xs">download</i></div>
<div class="slider"> <div class="slider">
<table id="iSalesClientList" class="default sticky"> <table id="iExpenseList" class="default sticky">
<thead> <thead>
<tr> <tr>
<td> <td>
<td><?= $this->getHtml('ID', '0', '0'); ?> <td><?= $this->getHtml('ID', '0', '0'); ?>
<label for="iSalesClientList-sort-1"> <label for="iExpenseList-sort-1">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-1"> <input type="radio" name="iExpenseList-sort" id="iExpenseList-sort-1">
<i class="sort-asc g-icon">expand_less</i> <i class="sort-asc g-icon">expand_less</i>
</label> </label>
<label for="iSalesClientList-sort-2"> <label for="iExpenseList-sort-2">
<input type="radio" name="iSalesClientList-sort" id="iSalesClientList-sort-2"> <input type="radio" name="iExpenseList-sort" id="iExpenseList-sort-2">
<i class="sort-desc g-icon">expand_more</i> <i class="sort-desc g-icon">expand_more</i>
</label> </label>
<label> <label>
@ -245,21 +244,21 @@ echo $this->data['nav']->render(); ?>
<td> <td>
<?php <?php
if ($lastOpenSession !== null if ($lastOpenSession !== null
&& $session->getStart()->format('Y-m-d') === $lastOpenSession->getStart()->format('Y-m-d') && $session->start->format('Y-m-d') === $lastOpenSession->start->format('Y-m-d')
) : ?> ) : ?>
<span class="tag">Today</span> <span class="tag">Today</span>
<?php else : ?> <?php else : ?>
<?= $session->getStart()->format('Y-m-d'); ?> - <?= $this->getHtml('D' . $session->getStart()->format('w')); ?> <?= $session->start->format('Y-m-d'); ?> - <?= $this->getHtml('D' . $session->start->format('w')); ?>
<?php endif; ?> <?php endif; ?>
<td><span class="tag"><?= $this->getHtml('CT' . $session->getType()); ?></span> <td><span class="tag"><?= $this->getHtml('CT' . $session->type); ?></span>
<td><span class="tag"><?= $this->getHtml('CS' . $session->getStatus()); ?></span> <td><span class="tag"><?= $this->getHtml('CS' . $session->status); ?></span>
<td><?= $session->getStart()->format('H:i'); ?> <td><?= $session->start->format('H:i'); ?>
<td><?= (int) ($session->getBreak() / 3600); ?>h <?= ((int) ($session->getBreak() / 60) % 60); ?>m <td><?= (int) ($session->getBreak() / 3600); ?>h <?= ((int) ($session->getBreak() / 60) % 60); ?>m
<td><?= $session->getEnd() !== null ? $session->getEnd()->format('H:i') : ''; ?> <td><?= $session->getEnd() !== null ? $session->getEnd()->format('H:i') : ''; ?>
<td><?= (int) ($session->getBusy() / 3600); ?>h <?= ((int) ($session->getBusy() / 60) % 60); ?>m <td><?= (int) ($session->getBusy() / 3600); ?>h <?= ((int) ($session->getBusy() / 60) % 60); ?>m
<?php <?php
$busy['week'] += $session->getBusy(); $busy['week'] += $session->getBusy();
if ($session->getStart()->getTimestamp() < $startWeek->getTimestamp() if ($session->start->getTimestamp() < $startWeek->getTimestamp()
|| $count === $sessionCount || $count === $sessionCount
) : ?> ) : ?>
<tr> <tr>
@ -273,7 +272,7 @@ echo $this->data['nav']->render(); ?>
?> ?>
<?php <?php
$busy['month'] += $session->getBusy(); $busy['month'] += $session->getBusy();
if ($session->getStart()->getTimestamp() < $startMonth->getTimestamp() if ($session->start->getTimestamp() < $startMonth->getTimestamp()
|| $count === $sessionCount || $count === $sessionCount
) : ?> ) : ?>
<tr> <tr>

View File

@ -1,4 +1,15 @@
<?php <?php
/**
* Jingga
*
* PHP Version 8.1
*
* @package Modules\BusinessExpenses\tests
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1); declare(strict_types=1);
\ini_set('memory_limit', '2048M'); \ini_set('memory_limit', '2048M');

View File

@ -17,7 +17,6 @@ namespace Modules\BusinessExpenses\tests\Controller\Api;
use phpOMS\Message\Http\HttpRequest; use phpOMS\Message\Http\HttpRequest;
use phpOMS\Message\Http\HttpResponse; use phpOMS\Message\Http\HttpResponse;
use phpOMS\System\File\Local\Directory; use phpOMS\System\File\Local\Directory;
use phpOMS\Uri\HttpUri;
use phpOMS\Utils\TestUtils; use phpOMS\Utils\TestUtils;
trait ApiExpenseControllerTrait trait ApiExpenseControllerTrait
@ -25,7 +24,7 @@ trait ApiExpenseControllerTrait
public function testExpenseCreate() : void public function testExpenseCreate() : void
{ {
$response = new HttpResponse(); $response = new HttpResponse();
$request = new HttpRequest(new HttpUri('')); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('type', 1); $request->setData('type', 1);
@ -43,7 +42,7 @@ trait ApiExpenseControllerTrait
} }
$response = new HttpResponse(); $response = new HttpResponse();
$request = new HttpRequest(new HttpUri('')); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;