diff --git a/app/Events/ReceiptIssuingOrder/CompletedEvent.php b/app/Events/ReceiptIssuingOrder/CompletedEvent.php deleted file mode 100644 index 9794913..0000000 --- a/app/Events/ReceiptIssuingOrder/CompletedEvent.php +++ /dev/null @@ -1,14 +0,0 @@ -eventDatetime = DateUtil::now(); } abstract public function getEventName(): string; diff --git a/app/Jobs/Other/Custom/HelloTechno/NoticeReceiptIssuingOrder.php b/app/Jobs/Other/Custom/HelloTechno/NoticeReceiptIssuingOrder.php index 328ac3b..bd05f22 100644 --- a/app/Jobs/Other/Custom/HelloTechno/NoticeReceiptIssuingOrder.php +++ b/app/Jobs/Other/Custom/HelloTechno/NoticeReceiptIssuingOrder.php @@ -6,7 +6,9 @@ use App\Codes\QueueName; use App\Jobs\BaseJob; use App\Models\ReceiptIssuingHTParkingCustomOrder; use App\Models\ReceiptIssuingOrder; +use App\Models\ReceiptIssuingOrderTax; use App\Util\Custom\HelloTechno\API; +use Illuminate\Support\Carbon; class NoticeReceiptIssuingOrder extends BaseJob { @@ -18,7 +20,9 @@ class NoticeReceiptIssuingOrder extends BaseJob public function __construct( private ReceiptIssuingOrder $order, private ReceiptIssuingHTParkingCustomOrder $custom, - private string $eventName = "", + private ReceiptIssuingOrderTax $tax, + private string $eventName, + private Carbon $eventDatetime, ) { $this->onQueue(QueueName::JOB->value); } @@ -31,7 +35,7 @@ class NoticeReceiptIssuingOrder extends BaseJob public function handle() { try { - API::sendReceiptIssuingOrder($this->order, $this->custom); + API::sendReceiptIssuingOrder($this->order, $this->custom, $this->tax, $this->eventName, $this->eventDatetime); } catch (Exception $e) { $this->log(false); throw $e; diff --git a/app/Jobs/ReceiptIssuingOrder/PollEmailSendStatus.php b/app/Jobs/ReceiptIssuingOrder/PollEmailSendStatus.php index 566b3ba..1c6c1fa 100644 --- a/app/Jobs/ReceiptIssuingOrder/PollEmailSendStatus.php +++ b/app/Jobs/ReceiptIssuingOrder/PollEmailSendStatus.php @@ -3,6 +3,7 @@ namespace App\Jobs\ReceiptIssuingOrder; use App\Codes\QueueName; +use App\Events\ReceiptIssuingOrder\EmailSendEvent; use App\Jobs\BaseJob; use App\Models\Email; use App\Models\ReceiptIssuingOrder; @@ -61,6 +62,7 @@ class PollEmailSendStatus extends BaseJob { $this->order->status_receipt_email_send_datetime = $sendDatetime; $this->order->save(); + EmailSendEvent::dispatch($this->order); info("領収証Emailポーリング完了:" . $this->order->receipt_pdf_email_id); } diff --git a/app/Listeners/ReceiptIssuingOrder/Custom/HelloTechno/NoticeListener.php b/app/Listeners/ReceiptIssuingOrder/Custom/HelloTechno/NoticeListener.php index b9c985c..fd1f1a5 100644 --- a/app/Listeners/ReceiptIssuingOrder/Custom/HelloTechno/NoticeListener.php +++ b/app/Listeners/ReceiptIssuingOrder/Custom/HelloTechno/NoticeListener.php @@ -2,10 +2,12 @@ namespace App\Listeners\ReceiptIssuingOrder\Custom\HelloTechno; -use App\Events\ReceiptIssuingOrder\CompletedEvent; +use App\Codes\EnvironmentName; use App\Events\ReceiptIssuingOrder\ConfirmedEvent; use App\Events\ReceiptIssuingOrder\CreatedEvent; use App\Events\ReceiptIssuingOrder\DownloadedEvent; +use App\Events\ReceiptIssuingOrder\EmailOrderEvent; +use App\Events\ReceiptIssuingOrder\EmailSendEvent; use App\Events\ReceiptIssuingOrder\MailOrderEvent; use App\Events\ReceiptIssuingOrder\MailPostedEvent; use App\Events\ReceiptIssuingOrder\ReceiptIssuingOrderEvent; @@ -16,11 +18,12 @@ class NoticeListener { public function handle( - CompletedEvent| ConfirmedEvent| CreatedEvent| MailOrderEvent| MailPostedEvent| + EmailOrderEvent| + EmailSendEvent| DownloadedEvent $event ): void { $this->notice($event->order, $event); @@ -31,10 +34,10 @@ class NoticeListener */ private function notice(ReceiptIssuingOrder $order, ReceiptIssuingOrderEvent $event) { - $htCustom = $order->htCustomOrder; if ($htCustom !== null) { - NoticeReceiptIssuingOrder::dispatch($order, $htCustom, $event->getEventName()); + $tax = $order->receiptIssuingOrderTaxes->firstOrFail(); + NoticeReceiptIssuingOrder::dispatch($order, $htCustom, $tax, $event->getEventName(), $event->eventDatetime); } } } diff --git a/app/Util/Custom/HelloTechno/API.php b/app/Util/Custom/HelloTechno/API.php index 14e3e17..c116df2 100644 --- a/app/Util/Custom/HelloTechno/API.php +++ b/app/Util/Custom/HelloTechno/API.php @@ -2,9 +2,11 @@ namespace App\Util\Custom\HelloTechno; +use App\Codes\EnvironmentName; use App\Exceptions\AppCommonException; use App\Models\ReceiptIssuingHTParkingCustomOrder; use App\Models\ReceiptIssuingOrder; +use App\Models\ReceiptIssuingOrderTax; use Exception; use Illuminate\Support\Arr; use Illuminate\Support\Carbon; @@ -58,9 +60,20 @@ class API return static::get(static::getAdjustDataUrl(), $query); } - public static function sendReceiptIssuingOrder(ReceiptIssuingOrder $order, ReceiptIssuingHTParkingCustomOrder $customOrder) - { - $param = static::makeReceiptIssuingOrderParams($order, $customOrder); + public static function sendReceiptIssuingOrder( + ReceiptIssuingOrder $order, + ReceiptIssuingHTParkingCustomOrder $customOrder, + ReceiptIssuingOrderTax $tax, + string $eventName, + Carbon $eventDatetime + ) { + $param = static::makeReceiptIssuingOrderParams($order, $customOrder, $tax, $eventName, $eventDatetime); + + if (app()->environment([EnvironmentName::LOCAL->value])) { + logger("HT通知 ローカル環境のため送信しない", ['SEND' => $param]); + return []; + } + return static::post(static::getReceiptIssuingOrderUrl(), $param); } @@ -93,10 +106,17 @@ class API } - public static function makeReceiptIssuingOrderParams(ReceiptIssuingOrder $order, ReceiptIssuingHTParkingCustomOrder $customOrder): array - { + public static function makeReceiptIssuingOrderParams( + ReceiptIssuingOrder $order, + ReceiptIssuingHTParkingCustomOrder $customOrder, + ReceiptIssuingOrderTax $tax, + string $eventName, + Carbon $eventDatetime + ): array { $param = []; $param['id'] = $order->id; + $param['event_name'] = $eventName; + $param['event_datetime'] = static::formatDateTimeStr($eventDatetime); $param['customer_code'] = $customOrder->customer_code; $param['parking_management_code'] = $customOrder->parking_management_code; $param['adjust_seq_no'] = $customOrder->adjust_seq_no; @@ -121,8 +141,10 @@ class API $param['receipt_name'] = $order->receipt_name; $param['receipt_invoice_no'] = $order->receipt_invoice_no; $param['receipt_amount'] = $order->receipt_amount; + $param['tax_rate'] = $tax->tax_rate; + $param['tax_amount'] = $tax->tax_amount; $param['email'] = $order->email; - $param['mail_pref_code'] = $order->mail_pref_code; + $param['mail_pref_code'] = $order->mail_pref_code !== null ? $order->mail_pref_code->value : null; $param['mail_zip_code'] = $order->mail_zip_code; $param['mail_address1'] = $order->mail_address1; $param['mail_address2'] = $order->mail_address2;