EC-CUBE4 納品書PDFに領収書を付け足す
デフォルトで出力される納品書PDFの備考欄を領収書に変更します。
今回の要望としては、備考の欄に何も入力しなくても
名前、金額が入ってほしい
ということでした。
まずもともとの納品書PDFを生成しているのは
/src/Eccube/Service/OrderPdfService.php
というファイル。
このファイルをカスタマイズしていきます。
まず、備考欄の出力をしている部分は346行目付近の
renderEtcData 関数のようです。
protected function renderEtcData(Shipping $Shipping)
{
$Order = $Shipping->getOrder();
$nametext = $Shipping->getName01().' '.$Shipping->getName02().' 様';
$paymentTotalText = $this->eccubeExtension->getPriceFilter($Order->getPaymentTotal());
$cstm_receipt = <<< EOM
{$nametext}
{$paymentTotalText}
但し品代として
山形県米沢市堀川町5-68
株式会社リゾリューションズ
運送会社の発行する領収書、ご利用明細、振り込み明細いずれかと一緒に管理してください。
EOM;
// フォント情報のバックアップ
$this->backupFont();
$this->Cell(0, 10, '', 0, 1, 'C', 0, '');
$this->SetFont(self::FONT_GOTHIC, 'B', 9);
$this->MultiCell(0, 6, '< 領収書 >', 'T', 2, 'L', 0, '');
$this->SetFont(self::FONT_SJIS, '', 10);
$this->Ln();
// rtrimを行う
// $text = preg_replace('/\s+$/us', '', $formData['note1']."\n".$formData['note2']."\n".$formData['note3']);
// $this->MultiCell(0, 4, $text, '', 2, 'L', 0, '');
$this->MultiCell(0, 4, $cstm_receipt, 0, 'C', 0, '');
$logoFile1 = $this->eccubeConfig->get('eccube_html_dir').'/user_data/assets/pdf/xxx.png';
$logoFile2 = $this->eccubeConfig->get('eccube_html_dir').'/user_data/assets/pdf/xxx.png';
$this->Image($logoFile2, 155, 240, 20);
$this->Image($logoFile1, 175, 250, 10);
// フォント情報の復元
$this->restoreFont();
}
上記をコピペ+文章変更
$this->renderEtcData($Shipping);
↑ここも変更(233行あたり)これでなるはずです。