領収証発行サービス
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.

59 lines
1.4KB

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