EC-CUBE納品書PDFカスタマイズ

[やりたいこと](#やりたいこと)
[PDFベースファイル](#PDFベースファイル)
[コンテンツファイル](#コンテンツファイル)
[pdfタイトルの変更](#pdfタイトルの変更)
[会社情報の変更](#会社情報の変更)
[会社印png実装](#会社印png実装)
[支払い種別記載](#支払い種別記載)
[参考記事](#参考記事)

# やりたいこと
▶︎PDFタイトルの変更
▶︎会社情報の変更（店名→会社名）
▶︎会社印PNG実装
▶︎支払い種別記載

# PDFベースファイル
`root/html/template/admin/assets/pdf/nouhinsyo.pdf`
`root/html/template/admin/assets/pdf/nouhinsyo_multiple.pdf`

カスタマイズする時は、以下にコピペ
`root/app/Customize/Resource/template/admin/assets/pdf/nouhinsyo.pdf`
`root/app/Customize/Resource/template/admin/assets/pdf/nouhinsyo_multiple.pdf`

プラグイン化する時は、以下にコピペ
`root/app/Plugin/PluginName/Resource/template/admin/assets/pdf/nouhinsyo.pdf`
`root/app/Resource/template/admin/assets/pdf/nouhinsyo_multiple.pdf`


# コンテンツファイル
root/src/Eccube/Service/OrderPdfService.php

# PDFタイトルの変更
`messages.ja.yaml`をカスタマイズ

`src/Eccube/Resource/locale/messages.ja.yaml`
↓コピペ
`app/Customize/Resource/locale/messages.ja.yaml`

```:root/app/Customize/Resource/locale/messages.ja.yaml
886 admin.order.delivery_note_title__default: お買上げ明細書（納品書）
```
以下に変更
```:vim&nbsp;root/app/Customize/Resource/locale/messages.ja.yaml
886 admin.order.delivery_note_title__default: お買上げ明細書兼領収書
```

# 会社情報の変更（店名→会社名）
領収書となるため正式な会社名が必要

```:root/src/Eccube/Service/OrderPdfService.php
302 // ショップ名
303 $this->lfText(125, 60, $this->baseInfoRepository->getShopName(), 8, 'B');
```

以下に変更

```:vim&nbsp;root/src/Eccube/Service/OrderPdfService.php
302 // ショップ名
303 $this->lfText(125, 60, $this->baseInfoRepository->getCompanyName(), 8, 'B');
```

# 会社印PNG実装
会社印をPNGでアップロード
root/html/user_data/assets/pdf/logo.png

PDF上の配置位置カスタマイズ
327行目を変更
$this->Image($logoFile, X座標, Y座標, 横幅);

```:vim&nbsp;root/src/Eccube/Service/OrderPdfService.php
320 // user_dataにlogo.pngが配置されている場合は優先的に読み込む
321 $logoFile = $this->eccubeConfig->get('eccube_html_dir').'/user_data/assets/pdf/logo.png';
322
323 if (!file_exists($logoFile)) {
324     $logoFile = $this->eccubeConfig->get('eccube_html_admin_dir').'/assets/pdf/logo.png';
325 }
326
327 $this->Image($logoFile, 135, 76, 25);
```

# 支払い種別記載
`クレジットカード支払`
`銀行振込支払`
`現金代引引換`
上記の種別を記載するため、備考欄のテキストフォームをプルダウンメニューに変更

### input属性を取得
ブラウザ管理画面の開発デベロッパーツールよりinput属性を取得

```
<input type="text" id="order_pdf_note1" name="order_pdf[note1]" maxlength="255" class="form-control">
```

### twigカスタマイズ
`order_pdf.twig`をカスタマイズ

`root/src/Eccube/Resource/template/admin/Order/order_pdf.twig`
↓コピペ
`root/app/template/admin/Order/order_pdf.twig`

```:root/app/template/admin/Order/order_pdf.twig
136 <div class="font-weight-bold">{{ 'admin.order.delivery_note_memo'|trans }}</div>
137 <div class="form-group">
138     <label>{{ 'admin.order.delivery_note_line1'|trans }}</label>
139     {{ form_widget(form.note1) }}
140     {{ form_errors(form.note1) }}
141 </div>
```
以下に変更
```:root/app/template/admin/Order/order_pdf.twig
136 <div class="font-weight-bold">{{ 'admin.order.delivery_note_memo'|trans }}</div>
137 <div class="form-group">
138     <label>支払い種別</label>
１３９     <select  type="text" id="order_pdf_note1" name="order_pdf[note1]" maxlength="255" class="form-control">
140     <option value="支払種別：代金はクレジットカード支払いで領収いたしました">支払種別：代金はクレジットカード支払いで領収いたしました</option>
141     <option value="支払種別：代金は銀行振込で領収いたしました">支払種別：代金は銀行振込で領収いたしました</option>
142     <option value="支払種別：代金は現金代引引換で領収いたします">支払種別：代金は現金代引引換で領収いたします</option>
143     </select>
144     {{ form_errors(form.note1) }}
145 </div>
```
twigファイルのカスタマイズはキャッシュ削除しながら行う

***
# 参考記事
https://doc4.ec-cube.net/design_messages
https://doc4.ec-cube.net/design_template
https://umebius.com/eccube/eccube4-original-logo-order-pdf/
https://www.xross-cube.com/EC-CUBE_doc/classes/Eccube-Entity-BaseInfo.html#method_getCompanyName
https://www.tagindex.com/html5/form/select.html