|
- <?php
-
- namespace App\Logic;
-
- use App\Files\PDF\Receipt as ReceiptReceipt;
- use App\Kintone\Models\Receipt;
- use PDF;
-
- class ReceiptManager
- {
- private ?Receipt $receipt = null;
-
- public function __construct(?int $recordNo = null)
- {
- if ($recordNo) {
- $this->load($recordNo);
- } else {
- $this->receipt = new Receipt();
- }
- }
-
- private function load(int $recordNo)
- {
- $this->receipt = Receipt::find($recordNo);
- }
-
- public function getReceipt(): Receipt
- {
- return $this->receipt;
- }
-
- public function makePdf(): ReceiptReceipt
- {
- $pdf = PDF::loadView("pdf/receipt", $this->getPdfData())
- // ->setPaper("A4")
- ->setOption('page-width', 210)
- ->setOption('page-height', 148)
- ->setOrientation("Portrait")
- ->setOption('encoding', 'utf-8');
-
-
- $file = new ReceiptReceipt();
- $file->setAppFileName($this->makeFileName($file))
- ->put($pdf->output());
-
- return $file;
- }
-
- private function makeFileName(ReceiptReceipt $file)
- {
- return sprintf(
- "領収証_%s_%s_%s.%s",
- $this->receipt->receiptNo,
- $this->receipt->customerName,
- $this->receipt->receiptPurpose,
- $file->getFileExtension(),
- );
- }
-
- private function getPdfData()
- {
- return [
- 'receiptDate' => "2023/10/17",
- 'receiptCustomerName' => $this->receipt->receiptCustomerName,
- 'receiptTotalAmount' => number_format($this->receipt->receiptTotalAmount),
- 'taxTotalAmount' => number_format(100),
- 'receiptPurpose' => $this->receipt->receiptPurpose,
- ];
- }
- }
|