領収証発行サービス
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.3KB

  1. <?php
  2. namespace App\Http\Controllers\Web\Custom\HelloTechno;
  3. use App\Codes\UserRole;
  4. use App\Http\Controllers\Web\IParam;
  5. use App\Models\ReceiptIssuingOrder as Order;
  6. use App\Repositories\Custom\HelloTechno\ReceiptIssuingOrderRepository;
  7. use Illuminate\Http\JsonResponse;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\Auth;
  10. class ReceiptIssuingOrdersController extends HelloTechnoController
  11. {
  12. public function name(): string
  13. {
  14. return "[HelloTechno専用]領収証発行依頼作成";
  15. }
  16. public function description(): string
  17. {
  18. return "[HelloTechno専用]領収証発行依頼を作成する";
  19. }
  20. public function __construct(
  21. protected ReceiptIssuingsOrdersParam $param,
  22. private ReceiptIssuingOrderRepository $repository
  23. ) {
  24. parent::__construct();
  25. $this->roleAllow(UserRole::NORMAL_ADMIN);
  26. }
  27. protected function getParam(): IParam
  28. {
  29. return $this->param;
  30. }
  31. protected function run(Request $request): JsonResponse
  32. {
  33. $param = $this->param;
  34. $condition = [
  35. ...$param->toArray(),
  36. ReceiptIssuingOrderRepository::CONDITION_CONTRACT_ID => Auth::user()->contract_id,
  37. ];
  38. $list = $this->repository->get($condition);
  39. return $this->successResponse([
  40. 'records' => $list
  41. ]);
  42. }
  43. }