帳票の種類に「見積書」を追加カスタマイズ:EC-CUBE2.13.2

 この記事は最終更新から9年以上経過しています。内容が古くなっている可能性があります。


EC-CUBEの「帳票の種類」には標準で「納品書」の1種類しかありません。
お客様より「お買い上げ明細書(納品書)」の表示内容のカスタマイズ依頼もいただきますが、今回は帳票の種類に「見積書」を追加する方法をご案内いたします。
[EC-CUBE2.13.2]

編集ファイル

/data/class/pages/admin/order/LC_Page_Admin_Order_Pdf.php

新規追加ファイル

/data/class/SC_Fpdf_Order.php
/data/Smarty/templates/admin/pdf/order.pdf

【STEP.1】ファイルの新規追加

「帳票の種類」を追加するにあたり、「見積書」用に「PDFを出力するファイル」と「PDFのテンプレートファイル」を新たに追加します。

【PDFを出力するファイル】
対象フォルダ:/ec/data/class/
フォルダ内の[SC_Fpdf.php]をコピーし、[SC_Fpdf_Order.php]のように任意のファイル名にて追加

【PDFのテンプレートファイル】
対象フォルダ:/ec/data/Smarty/templates/admin/pdf/
フォルダ内の[nouhinsyo1.pdf]をコピーし、[order.pdf]のように任意のファイル名にて追加

【STEP.2】LC_Page_Admin_Order_Pdf.phpの編集

[追加]23行目
PDFを出力するファイルの読み込み

require_once CLASS_EX_REALDIR . 'page_extends/admin/LC_Page_Admin_Ex.php';

require_once CLASS_REALDIR . 'SC_Fpdf_Order.php';
require_once CLASS_EX_REALDIR . 'page_extends/admin/LC_Page_Admin_Ex.php';

[追加・編集]53行目
「帳票の種類」の選択項目の追加

$this->arrType[0]  = '納品書';

$this->arrType[0]  = 'お買上げ明細書(納品書)';
$this->arrType[1]  = '御見積書';

[編集]120行目
「帳票タイトル」を「帳票の種類」で選択された名前が表示されるように値を削除

// タイトルをセット
$arrForm['title'] = 'お買上げ明細書(納品書)';

// タイトルをセット
$arrForm['title'] = '';

[追加]154行目
上記に関連し、「帳票タイトル」を「帳票の種類」で選択された名前が表示されるように変更

$arrErr = $this->lfCheckError($objFormParam);
$arrRet = $objFormParam->getHashArray();

$arrErr = $this->lfCheckError($objFormParam);
$arrRet = $objFormParam->getHashArray();
$arrRet['title'] = $arrRet['title'] .' ' . $this->arrType[$arrRet['type']] .'';

[編集]160行目
見積書発行時の条件を追加

    if($arrRet['title'] == '') $arrRet['title'] = 'お買上げ明細書(納品書)';

        $this->arrForm = $arrRet;
        // エラー入力なし
        if (count($arrErr) == 0) {
            $objFpdf = new SC_Fpdf_Ex($arrRet['download'], $arrRet['title']);
            foreach ($arrRet['order_id'] AS $key => $val) {
                $arrPdfData = $arrRet;
                $arrPdfData['order_id'] = $val;
                $objFpdf->setData($arrPdfData);
            }
            $objFpdf->createPdf();

            return true;
        } else {
            return $arrErr;
        }
    }

    if($arrRet['title'] == '') $arrRet['title'] = 'お買上げ明細書(納品書)';

        $this->arrForm = $arrRet;
        // エラー入力なし
        //納品書発行
        if($arrRet['type'] == 0) {
			$objFpdf = new SC_Fpdf($arrRet['download'], $arrRet['title']);
			foreach ($arrRet['order_id'] AS $key => $val) {
				$arrPdfData = $arrRet;
				$arrPdfData['order_id'] = $val;
				$objFpdf->setData($arrPdfData);
			}
				$objFpdf->createPdf();
				return true;
			}
			
			//見積書発行
			elseif($arrRet['type'] == 1) {
				$objFpdf = new SC_Fpdf_Order($arrRet['download'], $arrRet['title']);
				foreach ($arrRet['order_id'] AS $key => $val) {
					$arrPdfData = $arrRet;
					$arrPdfData['order_id'] = $val;
					$objFpdf->setData($arrPdfData);
				}
				$objFpdf->createPdf();
				return true;
			
        }else{
            return $arrErr;
        }
    }

【STEP.3】SC_Fpdf_Order.phpの編集

[編集]32行目
「SC_Fpdf」部分を「SC_Fpdf_Order」へ変更
「nouhinsyo1.pdf」を「order.pdf」へ変更

class SC_Fpdf extends SC_Helper_FPDI
{
    public function __construct($download, $title, $tpl_pdf = 'nouhinsyo1.pdf')

class SC_Fpdf_Order extends SC_Helper_FPDI
{
    public function __construct($download, $title, $tpl_pdf = 'order.pdf')

[編集]285行目
ダウンロードされるファイル名を「nouhinsyo」から「mitsumori」へ変更

            if ($this->PageNo() == 1) {
                $filename = 'nouhinsyo-No'.$this->arrData['order_id'].'.pdf';
            } else {
                $filename = 'nouhinsyo.pdf';
            }

            if ($this->PageNo() == 1) {
                $filename = 'mitsumorisyo-No'.$this->arrData['order_id'].'.pdf';
            } else {
                $filename = 'mitsumori.pdf';
            }

【STEP.4】order.pdfの編集

ファイル名を「nouhinsyo1.pdf」から「order.pdf」に変更し、Illustratorで下記の記載内容へと編集しました。

対応完了

以上で対応完了となります。対象ファイルをアップロードし、「帳票の作成」ページにて「帳票の種類」に「お買上げ明細書(納品書)」と「御見積書」が表示されるようになり、PDFファイルのタイトルにも「帳票の種類」で選択された名前が表示されるようになりました。

今回はデータベースの追加も無く、STEPも少なく対応が完了できましたが、EC-CUBEのバージョンが[2.13.2]ではない場合には記述が異なりますので、ご対応が難しい場合にはご相談いただけますようお願いいたします。

コーディングの代行、デザインを含めたオーダーメイドでのサイト制作、完成後の運用・保守を行うWebメンテナンスプランもご用意しておりますので、お悩みに合わせてお気軽にお問い合わせください。

03-5950-0525平日10:00〜19:00