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

74 lines
2.2KB

  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\Http\Controllers\Web\WebController;
  6. use App\Logic\ReceiptIssuingOrder\Custom\HelloTechno\CreateManager;
  7. use App\Models\ReceiptIssuingOrder as Order;
  8. use Illuminate\Http\JsonResponse;
  9. use Illuminate\Http\Request;
  10. use Illuminate\Support\Facades\Auth;
  11. class CreateReceiptIssuingOrderController extends WebController
  12. {
  13. public function name(): string
  14. {
  15. return "[HelloTechno専用]領収証発行依頼作成";
  16. }
  17. public function description(): string
  18. {
  19. return "[HelloTechno専用]領収証発行依頼を作成する";
  20. }
  21. public function __construct(
  22. protected CreateReceiptIssuingOrderParam $param,
  23. private CreateManager $manager
  24. ) {
  25. $this->middleware('auth:sanctum');
  26. $this->roleAllow(UserRole::NORMAL_ADMIN);
  27. }
  28. protected function getParam(): IParam
  29. {
  30. return $this->param;
  31. }
  32. protected function run(Request $request): JsonResponse
  33. {
  34. $param = $this->param;
  35. // TODO 顧客情報取得
  36. // TODO 駐車場情報取得
  37. $orderData = [
  38. ...$param->toArray(),
  39. Order::COL_NAME_HANDLER_ID => Auth::id(),
  40. Order::COL_NAME_SUMMARY_KEY1 => $param->customerCode,
  41. Order::COL_NAME_SUMMARY_KEY2 => $param->parkingManagementCode,
  42. Order::COL_NAME_RECEIPT_PURPOSE => "駐車領収証",
  43. Order::COL_NAME_RECEIPT_INVOICE_NO => "##TODO インボイス登録番号##",
  44. Order::COL_NAME_RECEIPT_PURPOSE => "駐車料金",
  45. Order::COL_NAME_RECEIPT_ISSUER => "##TODO 発行者名##",
  46. Order::COL_NAME_RECEIPT_SHOP_NAME => "##TODO 駐車場名##",
  47. Order::COL_NAME_RECEIPT_PURPOSE => "駐車料金",
  48. Order::COL_NAME_MEMO => "駐車料金",
  49. ];
  50. logger($orderData);
  51. $messages = $this->manager->init()
  52. ->fill($orderData)
  53. ->create();
  54. if (count($messages) !== 0) {
  55. return $this->failedResponse([], $messages);
  56. }
  57. return $this->successResponse();
  58. }
  59. }