|
- <?php
-
- namespace App\Logic\ReceiptIssuingOrder;
-
- use App\Events\ReceiptIssuingOrder\DownloadedEvent;
- use App\Exceptions\AppCommonException;
- use App\Models\ReceiptIssuingOrder;
- use App\Util\DateUtil;
- use PDF;
-
- class PDFDownLoadManager extends ReceiptIssuingOrderManager
- {
-
- public function __construct(
- protected ReceiptIssuingOrder $order,
- ) {
- parent::__construct($order);
- }
-
-
-
- public function downlaodA4()
- {
- $order = $this->order;
-
- $data = $this->getPDFData();
-
-
- $pdf = PDF::loadView('pdf/receipt_a4', $data);
- // はがきサイズを指定
- $ret = $pdf->setPaper('A4')
- ->setOption('encoding', 'utf-8')
- ->inline();
- if ($order->status_receipt_download_datetime === null) {
-
- $order->status_receipt_download_datetime = DateUtil::now();
-
- // イベント登録
- DownloadedEvent::dispatch($this->order);
- }
- $this->save();
-
- return $ret;
- }
- public function downlaodLetter()
- {
- $data = $this->getPDFData();
- $pdf = PDF::loadView('pdf/receipt_letter', $data);
- // はがきサイズを指定
- $ret = $pdf->setOption('page-height', 148)
- ->setOption('page-width', 100)
- ->setOption('encoding', 'utf-8')
- ->inline();
-
- return $ret;
- }
-
- protected function getPDFData()
- {
- $o = $this->order;
- return [
- ...$this->order->toArray(),
- ReceiptIssuingOrder::COL_NAME_STATUS_RECEIPT_CONFIRM_DATETIME => $o->status_receipt_confirm_datetime->format('Y/m/d'),
- ReceiptIssuingOrder::COL_NAME_RECEIPT_USE_DATE => $o->receipt_use_date->format('Y/m/d'),
- ReceiptIssuingOrder::COL_NAME_RECEIPT_AMOUNT => number_format($o->receipt_amount)
- ];
- }
- }
|