bug fixes
Some checks failed
Image optimization / general_image_workflow (push) Has been cancelled
CI / general_module_workflow_php (push) Has been cancelled
CI / general_module_workflow_js (push) Has been cancelled

This commit is contained in:
Dennis Eichhorn 2024-10-11 19:17:39 +00:00
parent 422b5b80fe
commit cfd11cec45
10 changed files with 88 additions and 48 deletions

View File

@ -145,7 +145,7 @@ final class Installer extends InstallerAbstract
$request->header->account = 1; $request->header->account = 1;
$request->setData('name', $attribute['name'] ?? ''); $request->setData('name', $attribute['name'] ?? '');
$request->setData('title', \reset($attribute['l11n'])); $request->setData('content', \reset($attribute['l11n']));
$request->setData('language', \array_keys($attribute['l11n'])[0] ?? 'en'); $request->setData('language', \array_keys($attribute['l11n'])[0] ?? 'en');
$request->setData('is_required', $attribute['is_required'] ?? false); $request->setData('is_required', $attribute['is_required'] ?? false);
$request->setData('repeatable', $attribute['repeatable'] ?? false); $request->setData('repeatable', $attribute['repeatable'] ?? false);
@ -177,9 +177,9 @@ final class Installer extends InstallerAbstract
$request = new HttpRequest(); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('title', $l11n); $request->setData('content', $l11n);
$request->setData('language', $language); $request->setData('language', $language);
$request->setData('type', $billAttrType[$attribute['name']]['id']); $request->setData('ref', $billAttrType[$attribute['name']]['id']);
$module->apiBillAttributeTypeL11nCreate($request, $response); $module->apiBillAttributeTypeL11nCreate($request, $response);
} }
@ -226,7 +226,7 @@ final class Installer extends InstallerAbstract
$request->setData('type', $billAttrType[$attribute['name']]['id']); $request->setData('type', $billAttrType[$attribute['name']]['id']);
if (isset($value['l11n']) && !empty($value['l11n'])) { if (isset($value['l11n']) && !empty($value['l11n'])) {
$request->setData('title', \reset($value['l11n'])); $request->setData('content', \reset($value['l11n']));
$request->setData('language', \array_keys($value['l11n'])[0] ?? 'en'); $request->setData('language', \array_keys($value['l11n'])[0] ?? 'en');
} }
@ -254,9 +254,9 @@ final class Installer extends InstallerAbstract
$request = new HttpRequest(); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('title', $l11n); $request->setData('content', $l11n);
$request->setData('language', $language); $request->setData('language', $language);
$request->setData('value', $attrValue['id']); $request->setData('ref', $attrValue['id']);
$module->apiBillAttributeValueL11nCreate($request, $response); $module->apiBillAttributeValueL11nCreate($request, $response);
} }
@ -367,7 +367,7 @@ final class Installer extends InstallerAbstract
$request->header->account = 1; $request->header->account = 1;
$request->setData('name', $type['name'] ?? ''); $request->setData('name', $type['name'] ?? '');
$request->setData('title', \reset($type['l11n'])); $request->setData('content', \reset($type['l11n']));
$request->setData('language', \array_keys($type['l11n'])[0] ?? 'en'); $request->setData('language', \array_keys($type['l11n'])[0] ?? 'en');
$request->setData('number_format', $type['numberFormat'] ?? '{id}'); $request->setData('number_format', $type['numberFormat'] ?? '{id}');
$request->setData('sign', $type['sign'] ?? 1); $request->setData('sign', $type['sign'] ?? 1);
@ -402,9 +402,9 @@ final class Installer extends InstallerAbstract
$request = new HttpRequest(); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('title', $l11n); $request->setData('content', $l11n);
$request->setData('language', $language); $request->setData('language', $language);
$request->setData('type', $billType['id']); $request->setData('ref', $billType['id']);
$module->apiBillTypeL11nCreate($request, $response); $module->apiBillTypeL11nCreate($request, $response);
} }
@ -438,7 +438,7 @@ final class Installer extends InstallerAbstract
$request->header->account = 1; $request->header->account = 1;
$request->setData('name', $type['name'] ?? ''); $request->setData('name', $type['name'] ?? '');
$request->setData('title', \reset($type['l11n'])); $request->setData('content', \reset($type['l11n']));
$module->apiPaymentTermCreate($request, $response); $module->apiPaymentTermCreate($request, $response);
@ -462,9 +462,9 @@ final class Installer extends InstallerAbstract
$request = new HttpRequest(); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('title', $l11n); $request->setData('content', $l11n);
$request->setData('language', $language); $request->setData('language', $language);
$request->setData('type', $paymentTerms[$type['name']]['id']); $request->setData('ref', $paymentTerms[$type['name']]['id']);
$module->apiPaymentTermL11nCreate($request, $response); $module->apiPaymentTermL11nCreate($request, $response);
} }
@ -498,7 +498,7 @@ final class Installer extends InstallerAbstract
$request->header->account = 1; $request->header->account = 1;
$request->setData('name', $type['name'] ?? ''); $request->setData('name', $type['name'] ?? '');
$request->setData('title', \reset($type['l11n'])); $request->setData('content', \reset($type['l11n']));
$module->apiShippingTermCreate($request, $response); $module->apiShippingTermCreate($request, $response);
@ -522,9 +522,9 @@ final class Installer extends InstallerAbstract
$request = new HttpRequest(); $request = new HttpRequest();
$request->header->account = 1; $request->header->account = 1;
$request->setData('title', $l11n); $request->setData('content', $l11n);
$request->setData('language', $language); $request->setData('language', $language);
$request->setData('type', $shippingTerms[$type['name']]['id']); $request->setData('ref', $shippingTerms[$type['name']]['id']);
$module->apiShippingTermL11nCreate($request, $response); $module->apiShippingTermL11nCreate($request, $response);
} }

View File

@ -18,6 +18,19 @@ use phpOMS\Account\PermissionType;
use phpOMS\Router\RouteVerb; use phpOMS\Router\RouteVerb;
return [ return [
'^.*/bill/file(\?.*|$)$' => [
[
'dest' => '\Modules\Billing\Controller\ApiController:apiFileCreate',
'verb' => RouteVerb::PUT,
'csrf' => true,
'active' => true,
'permission' => [
'module' => BackendController::NAME,
'type' => PermissionType::CREATE,
'state' => PermissionCategory::SALES_INVOICE,
],
],
],
'^.*/bill/render(\?.*$|$)' => [ '^.*/bill/render(\?.*$|$)' => [
[ [
'dest' => '\Modules\Billing\Controller\ApiBillController:apiMediaRender', 'dest' => '\Modules\Billing\Controller\ApiBillController:apiMediaRender',

View File

@ -244,7 +244,12 @@ final class ApiBillController extends Controller
PermissionCategory::PURCHASE_INVOICE PermissionCategory::PURCHASE_INVOICE
) )
) { ) {
$this->fillJsonResponse($request, $response, NotificationLevel::HIDDEN, '', '', []); $this->fillJsonResponse(
$request, $response,
NotificationLevel::ERROR, '',
$this->app->l11nManager->getText($response->header->l11n->language, '0', '0', 'InvalidPermission'),
[]
);
$response->header->status = RequestStatusCode::R_403; $response->header->status = RequestStatusCode::R_403;
return; return;
@ -792,7 +797,7 @@ final class ApiBillController extends Controller
} }
/** @var \Modules\Billing\Models\Bill $bill */ /** @var \Modules\Billing\Models\Bill $bill */
$bill = BillMapper::get()->where('id', (int) $request->getData('bill'))->execute(); $bill = BillMapper::get()->where('id', (int) $request->getData('ref'))->execute();
$path = $this->createBillDir($bill); $path = $this->createBillDir($bill);
$uploaded = new NullCollection(); $uploaded = new NullCollection();
@ -970,7 +975,7 @@ final class ApiBillController extends Controller
{ {
$val = []; $val = [];
if (($val['media'] = (!$request->hasData('media') && empty($request->files))) if (($val['media'] = (!$request->hasData('media') && empty($request->files)))
|| ($val['bill'] = !$request->hasData('bill')) || ($val['ref'] = !$request->hasData('ref'))
) { ) {
return $val; return $val;
} }
@ -1152,7 +1157,12 @@ final class ApiBillController extends Controller
PermissionCategory::PURCHASE_INVOICE PermissionCategory::PURCHASE_INVOICE
) )
) { ) {
$this->fillJsonResponse($request, $response, NotificationLevel::HIDDEN, '', '', []); $this->fillJsonResponse(
$request, $response,
NotificationLevel::ERROR, '',
$this->app->l11nManager->getText($response->header->l11n->language, '0', '0', 'InvalidPermission'),
[]
);
$response->header->status = RequestStatusCode::R_403; $response->header->status = RequestStatusCode::R_403;
return; return;
@ -1318,7 +1328,12 @@ final class ApiBillController extends Controller
PermissionCategory::PURCHASE_INVOICE PermissionCategory::PURCHASE_INVOICE
) )
) { ) {
$this->fillJsonResponse($request, $response, NotificationLevel::HIDDEN, '', '', []); $this->fillJsonResponse(
$request, $response,
NotificationLevel::ERROR, '',
$this->app->l11nManager->getText($response->header->l11n->language, '0', '0', 'InvalidPermission'),
[]
);
$response->header->status = RequestStatusCode::R_403; $response->header->status = RequestStatusCode::R_403;
return; return;
@ -1578,7 +1593,7 @@ final class ApiBillController extends Controller
} }
/** @var \Modules\Billing\Models\Bill $bill */ /** @var \Modules\Billing\Models\Bill $bill */
$bill = BillMapper::get()->where('id', (int) $request->getData('id'))->execute(); $bill = BillMapper::get()->where('id', (int) $request->getData('ref'))->execute();
$request->setData('virtualpath', $this->createBillDir($bill), true); $request->setData('virtualpath', $this->createBillDir($bill), true);
$this->app->moduleManager->get('Editor', 'Api')->apiEditorCreate($request, $response, $data); $this->app->moduleManager->get('Editor', 'Api')->apiEditorCreate($request, $response, $data);
@ -1599,7 +1614,7 @@ final class ApiBillController extends Controller
return; return;
} }
$this->createModelRelation($request->header->account, $request->getDataInt('id'), $model->id, BillMapper::class, 'notes', '', $request->getOrigin()); $this->createModelRelation($request->header->account, $request->getDataInt('ref'), $model->id, BillMapper::class, 'notes', '', $request->getOrigin());
} }
/** /**
@ -1614,7 +1629,7 @@ final class ApiBillController extends Controller
private function validateNoteCreate(RequestAbstract $request) : array private function validateNoteCreate(RequestAbstract $request) : array
{ {
$val = []; $val = [];
if (($val['id'] = !$request->hasData('id'))) { if (($val['ref'] = !$request->hasData('ref'))) {
return $val; return $val;
} }
@ -1841,7 +1856,12 @@ final class ApiBillController extends Controller
if (!$this->app->accountManager->get($accountId)->hasPermission( if (!$this->app->accountManager->get($accountId)->hasPermission(
PermissionType::MODIFY, $this->app->unitId, $this->app->appId, self::NAME, PermissionCategory::BILL_NOTE, $request->getDataInt('id')) PermissionType::MODIFY, $this->app->unitId, $this->app->appId, self::NAME, PermissionCategory::BILL_NOTE, $request->getDataInt('id'))
) { ) {
$this->fillJsonResponse($request, $response, NotificationLevel::HIDDEN, '', '', []); $this->fillJsonResponse(
$request, $response,
NotificationLevel::ERROR, '',
$this->app->l11nManager->getText($response->header->l11n->language, '0', '0', 'InvalidPermission'),
[]
);
$response->header->status = RequestStatusCode::R_403; $response->header->status = RequestStatusCode::R_403;
return; return;
@ -1869,7 +1889,12 @@ final class ApiBillController extends Controller
if (!$this->app->accountManager->get($accountId)->hasPermission( if (!$this->app->accountManager->get($accountId)->hasPermission(
PermissionType::DELETE, $this->app->unitId, $this->app->appId, self::NAME, PermissionCategory::BILL_NOTE, $request->getDataInt('id')) PermissionType::DELETE, $this->app->unitId, $this->app->appId, self::NAME, PermissionCategory::BILL_NOTE, $request->getDataInt('id'))
) { ) {
$this->fillJsonResponse($request, $response, NotificationLevel::HIDDEN, '', '', []); $this->fillJsonResponse(
$request, $response,
NotificationLevel::ERROR, '',
$this->app->l11nManager->getText($response->header->l11n->language, '0', '0', 'InvalidPermission'),
[]
);
$response->header->status = RequestStatusCode::R_403; $response->header->status = RequestStatusCode::R_403;
return; return;

View File

@ -76,7 +76,7 @@ final class ApiBillTypeController extends Controller
{ {
$billType = new BillType($request->getDataString('name') ?? ''); $billType = new BillType($request->getDataString('name') ?? '');
$billType->setL11n( $billType->setL11n(
$request->getDataString('title') ?? '', $request->getDataString('content') ?? '',
ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN
); );
$billType->numberFormat = $request->getDataString('number_format') ?? '{id}'; $billType->numberFormat = $request->getDataString('number_format') ?? '{id}';
@ -109,7 +109,7 @@ final class ApiBillTypeController extends Controller
private function validateBillTypeCreate(RequestAbstract $request) : array private function validateBillTypeCreate(RequestAbstract $request) : array
{ {
$val = []; $val = [];
if (($val['title'] = !$request->hasData('title')) if (($val['content'] = !$request->hasData('content'))
|| ($val['name'] = !$request->hasData('name')) || ($val['name'] = !$request->hasData('name'))
) { ) {
return $val; return $val;
@ -157,9 +157,9 @@ final class ApiBillTypeController extends Controller
private function createBillTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n private function createBillTypeL11nFromRequest(RequestAbstract $request) : BaseStringL11n
{ {
$billTypeL11n = new BaseStringL11n(); $billTypeL11n = new BaseStringL11n();
$billTypeL11n->ref = $request->getDataInt('type') ?? 0; $billTypeL11n->ref = $request->getDataInt('ref') ?? 0;
$billTypeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; $billTypeL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language;
$billTypeL11n->content = $request->getDataString('title') ?? ''; $billTypeL11n->content = $request->getDataString('content') ?? '';
return $billTypeL11n; return $billTypeL11n;
} }
@ -176,8 +176,8 @@ final class ApiBillTypeController extends Controller
private function validateBillTypeL11nCreate(RequestAbstract $request) : array private function validateBillTypeL11nCreate(RequestAbstract $request) : array
{ {
$val = []; $val = [];
if (($val['title'] = !$request->hasData('title')) if (($val['content'] = !$request->hasData('content'))
|| ($val['type'] = !$request->hasData('type')) || ($val['ref'] = !$request->hasData('ref'))
) { ) {
return $val; return $val;
} }

View File

@ -75,7 +75,7 @@ final class ApiController extends Controller
private function validatePaymentTermCreate(RequestAbstract $request) : array private function validatePaymentTermCreate(RequestAbstract $request) : array
{ {
$val = []; $val = [];
if (($val['title'] = !$request->hasData('title')) if (($val['content'] = !$request->hasData('content'))
|| ($val['name'] = !$request->hasData('name')) || ($val['name'] = !$request->hasData('name'))
) { ) {
return $val; return $val;
@ -97,7 +97,7 @@ final class ApiController extends Controller
{ {
$paymentTerm = new BaseStringL11nType($request->getDataString('name') ?? ''); $paymentTerm = new BaseStringL11nType($request->getDataString('name') ?? '');
$paymentTerm->setL11n( $paymentTerm->setL11n(
$request->getDataString('title') ?? '', $request->getDataString('content') ?? '',
ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN
); );
@ -143,8 +143,8 @@ final class ApiController extends Controller
private function validatePaymentTermL11nCreate(RequestAbstract $request) : array private function validatePaymentTermL11nCreate(RequestAbstract $request) : array
{ {
$val = []; $val = [];
if (($val['title'] = !$request->hasData('title')) if (($val['content'] = !$request->hasData('content'))
|| ($val['type'] = !$request->hasData('type')) || ($val['ref'] = !$request->hasData('ref'))
) { ) {
return $val; return $val;
} }
@ -164,10 +164,10 @@ final class ApiController extends Controller
private function createPaymentTermL11nFromRequest(RequestAbstract $request) : BaseStringL11n private function createPaymentTermL11nFromRequest(RequestAbstract $request) : BaseStringL11n
{ {
$paymentL11n = new BaseStringL11n(); $paymentL11n = new BaseStringL11n();
$paymentL11n->ref = $request->getDataInt('type') ?? 0; $paymentL11n->ref = $request->getDataInt('ref') ?? 0;
$paymentL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) $paymentL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language'))
?? $request->header->l11n->language; ?? $request->header->l11n->language;
$paymentL11n->content = $request->getDataString('title') ?? ''; $paymentL11n->content = $request->getDataString('content') ?? '';
return $paymentL11n; return $paymentL11n;
} }
@ -211,7 +211,7 @@ final class ApiController extends Controller
private function validateShippingTermCreate(RequestAbstract $request) : array private function validateShippingTermCreate(RequestAbstract $request) : array
{ {
$val = []; $val = [];
if (($val['title'] = !$request->hasData('title')) if (($val['content'] = !$request->hasData('content'))
|| ($val['name'] = !$request->hasData('name')) || ($val['name'] = !$request->hasData('name'))
) { ) {
return $val; return $val;
@ -233,7 +233,7 @@ final class ApiController extends Controller
{ {
$shippingTerm = new BaseStringL11nType($request->getDataString('name') ?? ''); $shippingTerm = new BaseStringL11nType($request->getDataString('name') ?? '');
$shippingTerm->setL11n( $shippingTerm->setL11n(
$request->getDataString('title') ?? '', $request->getDataString('content') ?? '',
ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN
); );
@ -279,8 +279,8 @@ final class ApiController extends Controller
private function validateShippingTermL11nCreate(RequestAbstract $request) : array private function validateShippingTermL11nCreate(RequestAbstract $request) : array
{ {
$val = []; $val = [];
if (($val['title'] = !$request->hasData('title')) if (($val['content'] = !$request->hasData('content'))
|| ($val['type'] = !$request->hasData('type')) || ($val['ref'] = !$request->hasData('ref'))
) { ) {
return $val; return $val;
} }
@ -300,10 +300,10 @@ final class ApiController extends Controller
private function createShippingTermL11nFromRequest(RequestAbstract $request) : BaseStringL11n private function createShippingTermL11nFromRequest(RequestAbstract $request) : BaseStringL11n
{ {
$shippingL11n = new BaseStringL11n(); $shippingL11n = new BaseStringL11n();
$shippingL11n->ref = $request->getDataInt('type') ?? 0; $shippingL11n->ref = $request->getDataInt('ref') ?? 0;
$shippingL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) $shippingL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language'))
?? $request->header->l11n->language; ?? $request->header->l11n->language;
$shippingL11n->content = $request->getDataString('title') ?? ''; $shippingL11n->content = $request->getDataString('content') ?? '';
return $shippingL11n; return $shippingL11n;
} }

View File

@ -565,7 +565,7 @@ echo $this->data['nav']->render(); ?>
<input type="radio" id="c-tab-6" name="tabular-2"> <input type="radio" id="c-tab-6" name="tabular-2">
<div class="tab col-simple"> <div class="tab col-simple">
<?= $this->data['media-upload']->render('bill-file', 'files', '', $media); ?> <?= $this->data['media-upload']->render('bill-file', 'files', '', $media, '{/api}bill/file?csrf={$CSRF}', (string) $bill->id); ?>
</div> </div>
<?php if (!$isNew && !empty($bill)) : ?> <?php if (!$isNew && !empty($bill)) : ?>

View File

@ -47,7 +47,8 @@ echo $this->data['nav']->render(); ?>
<?= $this->data['l11nView']->render( <?= $this->data['l11nView']->render(
$this->data['l11nValues'], $this->data['l11nValues'],
[], [],
'{/api}bill/payment/l11n?csrf={$CSRF}' '{/api}bill/payment/l11n?csrf={$CSRF}',
(string) $type->id
); );
?> ?>
</div> </div>

View File

@ -565,7 +565,7 @@ echo $this->data['nav']->render(); ?>
<input type="radio" id="c-tab-6" name="tabular-2"> <input type="radio" id="c-tab-6" name="tabular-2">
<div class="tab col-simple"> <div class="tab col-simple">
<?= $this->data['media-upload']->render('bill-file', 'files', '', $bill->files); ?> <?= $this->data['media-upload']->render('bill-file', 'files', '', $bill->files, '{/api}bill/file?csrf={$CSRF}', (string) $bill->id); ?>
</div> </div>
<?php if (!$isNew && !empty($logs)) : ?> <?php if (!$isNew && !empty($logs)) : ?>

View File

@ -47,7 +47,8 @@ echo $this->data['nav']->render(); ?>
<?= $this->data['l11nView']->render( <?= $this->data['l11nView']->render(
$this->data['l11nValues'], $this->data['l11nValues'],
[], [],
'{/api}bill/shipping/l11n?csrf={$CSRF}' '{/api}bill/shipping/l11n?csrf={$CSRF}',
(string) $type->id
); );
?> ?>
</div> </div>

View File

@ -91,7 +91,7 @@ trait ApiBillControllerTrait
$request->header->account = \mt_rand(2, 5); $request->header->account = \mt_rand(2, 5);
$request->setData('id', 1); $request->setData('ref', 1);
$request->setData('title', 'Test note title'); $request->setData('title', 'Test note title');
$request->setData('plain', 'Test content text'); $request->setData('plain', 'Test content text');