From cfd11cec45b76f4c114c24a1c484752cbaf96f17 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Fri, 11 Oct 2024 19:17:39 +0000 Subject: [PATCH] bug fixes --- Admin/Installer.php | 30 ++++++------- Admin/Routes/Web/Api.php | 13 ++++++ Controller/ApiBillController.php | 45 ++++++++++++++----- Controller/ApiBillTypeController.php | 12 ++--- Controller/ApiController.php | 24 +++++----- Theme/Backend/bill-create.tpl.php | 2 +- Theme/Backend/payment-view.tpl.php | 3 +- Theme/Backend/purchase-bill.tpl.php | 2 +- Theme/Backend/shipping-view.tpl.php | 3 +- .../Controller/Api/ApiBillControllerTrait.php | 2 +- 10 files changed, 88 insertions(+), 48 deletions(-) diff --git a/Admin/Installer.php b/Admin/Installer.php index a884df1..562db21 100755 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -145,7 +145,7 @@ final class Installer extends InstallerAbstract $request->header->account = 1; $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('is_required', $attribute['is_required'] ?? false); $request->setData('repeatable', $attribute['repeatable'] ?? false); @@ -177,9 +177,9 @@ final class Installer extends InstallerAbstract $request = new HttpRequest(); $request->header->account = 1; - $request->setData('title', $l11n); + $request->setData('content', $l11n); $request->setData('language', $language); - $request->setData('type', $billAttrType[$attribute['name']]['id']); + $request->setData('ref', $billAttrType[$attribute['name']]['id']); $module->apiBillAttributeTypeL11nCreate($request, $response); } @@ -226,7 +226,7 @@ final class Installer extends InstallerAbstract $request->setData('type', $billAttrType[$attribute['name']]['id']); 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'); } @@ -254,9 +254,9 @@ final class Installer extends InstallerAbstract $request = new HttpRequest(); $request->header->account = 1; - $request->setData('title', $l11n); + $request->setData('content', $l11n); $request->setData('language', $language); - $request->setData('value', $attrValue['id']); + $request->setData('ref', $attrValue['id']); $module->apiBillAttributeValueL11nCreate($request, $response); } @@ -367,7 +367,7 @@ final class Installer extends InstallerAbstract $request->header->account = 1; $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('number_format', $type['numberFormat'] ?? '{id}'); $request->setData('sign', $type['sign'] ?? 1); @@ -402,9 +402,9 @@ final class Installer extends InstallerAbstract $request = new HttpRequest(); $request->header->account = 1; - $request->setData('title', $l11n); + $request->setData('content', $l11n); $request->setData('language', $language); - $request->setData('type', $billType['id']); + $request->setData('ref', $billType['id']); $module->apiBillTypeL11nCreate($request, $response); } @@ -438,7 +438,7 @@ final class Installer extends InstallerAbstract $request->header->account = 1; $request->setData('name', $type['name'] ?? ''); - $request->setData('title', \reset($type['l11n'])); + $request->setData('content', \reset($type['l11n'])); $module->apiPaymentTermCreate($request, $response); @@ -462,9 +462,9 @@ final class Installer extends InstallerAbstract $request = new HttpRequest(); $request->header->account = 1; - $request->setData('title', $l11n); + $request->setData('content', $l11n); $request->setData('language', $language); - $request->setData('type', $paymentTerms[$type['name']]['id']); + $request->setData('ref', $paymentTerms[$type['name']]['id']); $module->apiPaymentTermL11nCreate($request, $response); } @@ -498,7 +498,7 @@ final class Installer extends InstallerAbstract $request->header->account = 1; $request->setData('name', $type['name'] ?? ''); - $request->setData('title', \reset($type['l11n'])); + $request->setData('content', \reset($type['l11n'])); $module->apiShippingTermCreate($request, $response); @@ -522,9 +522,9 @@ final class Installer extends InstallerAbstract $request = new HttpRequest(); $request->header->account = 1; - $request->setData('title', $l11n); + $request->setData('content', $l11n); $request->setData('language', $language); - $request->setData('type', $shippingTerms[$type['name']]['id']); + $request->setData('ref', $shippingTerms[$type['name']]['id']); $module->apiShippingTermL11nCreate($request, $response); } diff --git a/Admin/Routes/Web/Api.php b/Admin/Routes/Web/Api.php index 2a05923..bad9b20 100755 --- a/Admin/Routes/Web/Api.php +++ b/Admin/Routes/Web/Api.php @@ -18,6 +18,19 @@ use phpOMS\Account\PermissionType; use phpOMS\Router\RouteVerb; 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(\?.*$|$)' => [ [ 'dest' => '\Modules\Billing\Controller\ApiBillController:apiMediaRender', diff --git a/Controller/ApiBillController.php b/Controller/ApiBillController.php index b9be93a..fbebea3 100755 --- a/Controller/ApiBillController.php +++ b/Controller/ApiBillController.php @@ -244,7 +244,12 @@ final class ApiBillController extends Controller 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; return; @@ -792,7 +797,7 @@ final class ApiBillController extends Controller } /** @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); $uploaded = new NullCollection(); @@ -970,7 +975,7 @@ final class ApiBillController extends Controller { $val = []; if (($val['media'] = (!$request->hasData('media') && empty($request->files))) - || ($val['bill'] = !$request->hasData('bill')) + || ($val['ref'] = !$request->hasData('ref')) ) { return $val; } @@ -1152,7 +1157,12 @@ final class ApiBillController extends Controller 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; return; @@ -1318,7 +1328,12 @@ final class ApiBillController extends Controller 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; return; @@ -1578,7 +1593,7 @@ final class ApiBillController extends Controller } /** @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); $this->app->moduleManager->get('Editor', 'Api')->apiEditorCreate($request, $response, $data); @@ -1599,7 +1614,7 @@ final class ApiBillController extends Controller 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 { $val = []; - if (($val['id'] = !$request->hasData('id'))) { + if (($val['ref'] = !$request->hasData('ref'))) { return $val; } @@ -1841,7 +1856,12 @@ final class ApiBillController extends Controller if (!$this->app->accountManager->get($accountId)->hasPermission( 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; return; @@ -1869,7 +1889,12 @@ final class ApiBillController extends Controller if (!$this->app->accountManager->get($accountId)->hasPermission( 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; return; diff --git a/Controller/ApiBillTypeController.php b/Controller/ApiBillTypeController.php index 0c2041c..f588a1e 100755 --- a/Controller/ApiBillTypeController.php +++ b/Controller/ApiBillTypeController.php @@ -76,7 +76,7 @@ final class ApiBillTypeController extends Controller { $billType = new BillType($request->getDataString('name') ?? ''); $billType->setL11n( - $request->getDataString('title') ?? '', + $request->getDataString('content') ?? '', ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ); $billType->numberFormat = $request->getDataString('number_format') ?? '{id}'; @@ -109,7 +109,7 @@ final class ApiBillTypeController extends Controller private function validateBillTypeCreate(RequestAbstract $request) : array { $val = []; - if (($val['title'] = !$request->hasData('title')) + if (($val['content'] = !$request->hasData('content')) || ($val['name'] = !$request->hasData('name')) ) { return $val; @@ -157,9 +157,9 @@ final class ApiBillTypeController extends Controller private function createBillTypeL11nFromRequest(RequestAbstract $request) : 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->content = $request->getDataString('title') ?? ''; + $billTypeL11n->content = $request->getDataString('content') ?? ''; return $billTypeL11n; } @@ -176,8 +176,8 @@ final class ApiBillTypeController extends Controller private function validateBillTypeL11nCreate(RequestAbstract $request) : array { $val = []; - if (($val['title'] = !$request->hasData('title')) - || ($val['type'] = !$request->hasData('type')) + if (($val['content'] = !$request->hasData('content')) + || ($val['ref'] = !$request->hasData('ref')) ) { return $val; } diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 6edd6ec..973d3b1 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -75,7 +75,7 @@ final class ApiController extends Controller private function validatePaymentTermCreate(RequestAbstract $request) : array { $val = []; - if (($val['title'] = !$request->hasData('title')) + if (($val['content'] = !$request->hasData('content')) || ($val['name'] = !$request->hasData('name')) ) { return $val; @@ -97,7 +97,7 @@ final class ApiController extends Controller { $paymentTerm = new BaseStringL11nType($request->getDataString('name') ?? ''); $paymentTerm->setL11n( - $request->getDataString('title') ?? '', + $request->getDataString('content') ?? '', ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ); @@ -143,8 +143,8 @@ final class ApiController extends Controller private function validatePaymentTermL11nCreate(RequestAbstract $request) : array { $val = []; - if (($val['title'] = !$request->hasData('title')) - || ($val['type'] = !$request->hasData('type')) + if (($val['content'] = !$request->hasData('content')) + || ($val['ref'] = !$request->hasData('ref')) ) { return $val; } @@ -164,10 +164,10 @@ final class ApiController extends Controller private function createPaymentTermL11nFromRequest(RequestAbstract $request) : BaseStringL11n { $paymentL11n = new BaseStringL11n(); - $paymentL11n->ref = $request->getDataInt('type') ?? 0; + $paymentL11n->ref = $request->getDataInt('ref') ?? 0; $paymentL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; - $paymentL11n->content = $request->getDataString('title') ?? ''; + $paymentL11n->content = $request->getDataString('content') ?? ''; return $paymentL11n; } @@ -211,7 +211,7 @@ final class ApiController extends Controller private function validateShippingTermCreate(RequestAbstract $request) : array { $val = []; - if (($val['title'] = !$request->hasData('title')) + if (($val['content'] = !$request->hasData('content')) || ($val['name'] = !$request->hasData('name')) ) { return $val; @@ -233,7 +233,7 @@ final class ApiController extends Controller { $shippingTerm = new BaseStringL11nType($request->getDataString('name') ?? ''); $shippingTerm->setL11n( - $request->getDataString('title') ?? '', + $request->getDataString('content') ?? '', ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? ISO639x1Enum::_EN ); @@ -279,8 +279,8 @@ final class ApiController extends Controller private function validateShippingTermL11nCreate(RequestAbstract $request) : array { $val = []; - if (($val['title'] = !$request->hasData('title')) - || ($val['type'] = !$request->hasData('type')) + if (($val['content'] = !$request->hasData('content')) + || ($val['ref'] = !$request->hasData('ref')) ) { return $val; } @@ -300,10 +300,10 @@ final class ApiController extends Controller private function createShippingTermL11nFromRequest(RequestAbstract $request) : BaseStringL11n { $shippingL11n = new BaseStringL11n(); - $shippingL11n->ref = $request->getDataInt('type') ?? 0; + $shippingL11n->ref = $request->getDataInt('ref') ?? 0; $shippingL11n->language = ISO639x1Enum::tryFromValue($request->getDataString('language')) ?? $request->header->l11n->language; - $shippingL11n->content = $request->getDataString('title') ?? ''; + $shippingL11n->content = $request->getDataString('content') ?? ''; return $shippingL11n; } diff --git a/Theme/Backend/bill-create.tpl.php b/Theme/Backend/bill-create.tpl.php index cbccb79..68581fb 100755 --- a/Theme/Backend/bill-create.tpl.php +++ b/Theme/Backend/bill-create.tpl.php @@ -565,7 +565,7 @@ echo $this->data['nav']->render(); ?>
- data['media-upload']->render('bill-file', 'files', '', $media); ?> + data['media-upload']->render('bill-file', 'files', '', $media, '{/api}bill/file?csrf={$CSRF}', (string) $bill->id); ?>
diff --git a/Theme/Backend/payment-view.tpl.php b/Theme/Backend/payment-view.tpl.php index ae02e5c..5485bd2 100644 --- a/Theme/Backend/payment-view.tpl.php +++ b/Theme/Backend/payment-view.tpl.php @@ -47,7 +47,8 @@ echo $this->data['nav']->render(); ?> data['l11nView']->render( $this->data['l11nValues'], [], - '{/api}bill/payment/l11n?csrf={$CSRF}' + '{/api}bill/payment/l11n?csrf={$CSRF}', + (string) $type->id ); ?> \ No newline at end of file diff --git a/Theme/Backend/purchase-bill.tpl.php b/Theme/Backend/purchase-bill.tpl.php index ed95342..ed9e1c6 100755 --- a/Theme/Backend/purchase-bill.tpl.php +++ b/Theme/Backend/purchase-bill.tpl.php @@ -565,7 +565,7 @@ echo $this->data['nav']->render(); ?>
- data['media-upload']->render('bill-file', 'files', '', $bill->files); ?> + data['media-upload']->render('bill-file', 'files', '', $bill->files, '{/api}bill/file?csrf={$CSRF}', (string) $bill->id); ?>
diff --git a/Theme/Backend/shipping-view.tpl.php b/Theme/Backend/shipping-view.tpl.php index 225d425..6fc6570 100644 --- a/Theme/Backend/shipping-view.tpl.php +++ b/Theme/Backend/shipping-view.tpl.php @@ -47,7 +47,8 @@ echo $this->data['nav']->render(); ?> data['l11nView']->render( $this->data['l11nValues'], [], - '{/api}bill/shipping/l11n?csrf={$CSRF}' + '{/api}bill/shipping/l11n?csrf={$CSRF}', + (string) $type->id ); ?> \ No newline at end of file diff --git a/tests/Controller/Api/ApiBillControllerTrait.php b/tests/Controller/Api/ApiBillControllerTrait.php index bf64a8d..9de2b10 100644 --- a/tests/Controller/Api/ApiBillControllerTrait.php +++ b/tests/Controller/Api/ApiBillControllerTrait.php @@ -91,7 +91,7 @@ trait ApiBillControllerTrait $request->header->account = \mt_rand(2, 5); - $request->setData('id', 1); + $request->setData('ref', 1); $request->setData('title', 'Test note title'); $request->setData('plain', 'Test content text');