diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml index adb8716..75cb759 100644 --- a/.github/workflows/greetings.yml +++ b/.github/workflows/greetings.yml @@ -9,5 +9,5 @@ jobs: - uses: actions/first-interaction@v1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - issue-message: 'Thank you for createing this issue. We will check it as soon as possible.' + issue-message: 'Thank you for creating this issue. We will check it as soon as possible.' pr-message: 'Thank you for your pull request. We will check it as soon as possible.' diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 7049a1f..3884a96 100644 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -14,9 +14,12 @@ declare(strict_types=1); namespace Modules\QualityManagement\Controller; +use Attribute; +use Modules\Admin\Models\NullAccount; use Modules\Notification\Models\NotificationType; use Modules\QualityManagement\Models\Report; use Modules\QualityManagement\Models\ReportMapper; +use Modules\Tasks\Models\Attribute\TaskAttributeTypeMapper; use Modules\Tasks\Models\TaskElementMapper; use Modules\Tasks\Models\TaskMapper; use Modules\Tasks\Models\TaskStatus; @@ -101,9 +104,52 @@ final class ApiController extends Controller private function createReportFromRequest(RequestAbstract $request) : Report { $request->setData('redirect', 'qualitymanagement/report/view?for={$id}'); + /** @var \Modules\Tasks\Models\Task $task */ $task = $this->app->moduleManager->get('Tasks', 'Api')->createTaskFromRequest($request); - $task->type = TaskType::HIDDEN; $task->unit ??= $this->app->unitId; + $task->for = $request->hasData('account') ? new NullAccount((int) $request->getData('account')) : null; + + if (($value = $request->getDataString('bill')) !== null) { + $attrType = TaskAttributeTypeMapper::get() + ->where('name', 'bill') + ->execute(); + + if ($attrType->id !== 0) { + $internalRequest = new RequestAbstract(); + $internalRequest->setData('value', $value); + $attribute = $this->app->moduleManager->get('Attribute', 'Api')->createAttributeFromRequest($internalRequest, $attrType); + + $task->attributes[] = $attribute; + } + } + + if (($value = $request->getDataString('item')) !== null) { + $attrType = TaskAttributeTypeMapper::get() + ->where('name', 'item') + ->execute(); + + if ($attrType->id !== 0) { + $internalRequest = new RequestAbstract(); + $internalRequest->setData('value', $value); + $attribute = $this->app->moduleManager->get('Attribute', 'Api')->createAttributeFromRequest($internalRequest, $attrType); + + $task->attributes[] = $attribute; + } + } + + if (($value = $request->getDataString('lot')) !== null) { + $attrType = TaskAttributeTypeMapper::get() + ->where('name', 'lot_internal') + ->execute(); + + if ($attrType->id !== 0) { + $internalRequest = new RequestAbstract(); + $internalRequest->setData('value', $value); + $attribute = $this->app->moduleManager->get('Attribute', 'Api')->createAttributeFromRequest($internalRequest, $attrType); + + $task->attributes[] = $attribute; + } + } return new Report($task); } diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 46f911f..c5746e3 100644 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -94,8 +94,6 @@ final class BackendController extends Controller ->query($openQuery) ->executeGetArray(); - $view->data['stats'] = ReportMapper::getStatOverview(); - return $view; } @@ -145,6 +143,8 @@ final class BackendController extends Controller ->with('task/taskElements/createdBy') ->with('task/taskElements/files') ->with('task/attributes') + ->with('task/attributes/type') + ->with('task/attributes/value') ->with('task/for') ->where('id', (int) $request->getData('id')) ->where('task/tags/title/language', $request->header->l11n->language) diff --git a/Theme/Backend/report-create.tpl.php b/Theme/Backend/report-create.tpl.php index d725949..a687e0c 100644 --- a/Theme/Backend/report-create.tpl.php +++ b/Theme/Backend/report-create.tpl.php @@ -44,7 +44,7 @@ echo $this->data['nav']->render(); ?>