瀏覽代碼

領収証ダウンロード時にファイルを保存するように修正

master
sosuke.iwabuchi 2 年之前
父節點
當前提交
29c76bbefd
共有 2 個文件被更改,包括 40 次插入11 次删除
  1. +3
    -0
      app/Kintone/Models/Receipt.php
  2. +37
    -11
      app/Logic/ReceiptManager.php

+ 3
- 0
app/Kintone/Models/Receipt.php 查看文件

@@ -26,6 +26,7 @@ use Illuminate\Support\Collection;
* @property string receiptCustomerName
* @property int receiptTotalAmount
* @property Collection<int, PaymentPlan> paymentPlans
* @property ?Carbon receiptPdfFileDownloadDatetime
*/
class Receipt extends KintoneModel
{
@@ -67,6 +68,7 @@ class Receipt extends KintoneModel
const FIELD_PAYMENT_PLANS_TARGET_MONTH = "入金実績支払対象_利用_月";

const FIELD_RECEIPT_PDF_FILE = "領収証PDF";
const FIELD_RECEIPT_PDF_FILE_DOWNLOAD_DATETIME = "初回領収証ダウンロード日時";

protected const FIELDS = [
...parent::FIELDS,
@@ -83,6 +85,7 @@ class Receipt extends KintoneModel
self::FIELD_RECEIPT_CUSTOMER_NAME => FieldType::SINGLE_LINE_TEXT,
self::FIELD_RECEIPT_TOTAL_AMOUNT => FieldType::NUMBER,
self::FIELD_RECEIPT_PDF_FILE => FieldType::FILE,
self::FIELD_RECEIPT_PDF_FILE_DOWNLOAD_DATETIME => FieldType::DATETIME,
self::FIELD_PAYMENT_PLANS => FieldType::SUBTABLE,
];



+ 37
- 11
app/Logic/ReceiptManager.php 查看文件

@@ -14,6 +14,7 @@ use App\Kintone\Models\SubTable\Receipt\ReceiptDetail;
use App\Kintone\Models\SubTable\Receipt\TaxDetail;
use App\Util\DateUtil;
use App\Util\TaxUtil;
use Exception;
use Illuminate\Support\Collection;
use PDF;

@@ -180,12 +181,7 @@ class ReceiptManager

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');
$pdf = $this->pdf();


$file = new ReceiptReceipt();
@@ -195,16 +191,47 @@ class ReceiptManager
return $file;
}

private function savePdf()
{
if ($this->receipt === null) {
throw new Exception("領収証不正");
}

$file = $this->makePdf();
$access = Receipt::getAccess();

$data = [];
$data[] = [
'fileKey' => $access->filePut($file),
'name' => sprintf("領収証_%s.pdf", $this->receipt->receiptNo),
'contentType' => $file->getMimeType(),
];

$this->receipt->set(Receipt::FIELD_RECEIPT_PDF_FILE, $data);

$this->receipt->save();
}

public function getPdf()
{
$pdf = PDF::loadView("pdf/receipt", $this->getPdfData())
$pdf = $this->pdf();

if ($this->receipt->receiptPdfFileDownloadDatetime === null) {
$this->receipt->receiptPdfFileDownloadDatetime = DateUtil::now();
$this->savePdf();
}

return $pdf->inline();
}

private function pdf()
{
return PDF::loadView("pdf/receipt", $this->getPdfData())
->setPaper("A4")
// ->setOption('page-width', 210)
// ->setOption('page-height', 148)
->setOrientation("Portrait")
->setOption('encoding', 'utf-8');

return $pdf->inline();
}

public function getHtml()
@@ -215,10 +242,9 @@ class ReceiptManager
private function makeFileName(ReceiptReceipt $file)
{
return sprintf(
"領収証_%s_%s_%s.%s",
"領収証_%s_%s.%s",
$this->receipt->receiptNo,
$this->receipt->customerName,
$this->receipt->receiptPurpose,
$file->getFileExtension(),
);
}


Loading…
取消
儲存