KH-WEBLOG TOP > WEBメモ > EC-CUBE > EC-CUBEの帳票の種類を追加:EC-CUBE2.11.1

EC-CUBEの帳票の種類を追加:EC-CUBE2.11.1

EC-CUBEのデフォルトでは納品書という帳票しかないので
今回は新たに「受注明細書」という帳票を追加する方法をメモ

コーディング・WordPress化作業を代行します

ファイルの作成と前準備

まず、帳票を追加するにあたって
/ec/data/class/の中のSC_Fpdf.phpをコピーして
「SC_Fpdf_Order.php」のような好きな名前に変更し保存します。

さらに
/ec/data/Smarty/templates/admin/pdf/
の中のnouhinsyo1.pdfもコピーして名前を「order.pdf」などに変更しアップします。

以上で前準備は完了!
次にそれぞれのファイルを修正していきます。

LC_Page_Admin_Order_Pdf.phpの修正

まず、
/ec/data/class/pages/admin/order/の中にある
LC_Page_Admin_Order_Pdf.phpを開き
下記の修正・追加をしていきます。

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

部分に

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

のように
require_once CLASS_REALDIR . ‘先ほど作成したファイル名.php‘;
を追加します。

次に

function init() {
    parent::init();
    $this->tpl_mainpage = 'order/pdf_input.tpl';
    $this->tpl_subnavi = 'order/subnavi.tpl';
    $this->tpl_mainno = 'order'; 
    $this->tpl_subno = 'pdf';
    $this->tpl_subtitle = '帳票出力';

    $this->SHORTTEXT_MAX = STEXT_LEN;
    $this->MIDDLETEXT_MAX = MTEXT_LEN;
    $this->LONGTEXT_MAX = LTEXT_LEN;

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

    $this->arrDownload[0] = "ブラウザに開く";
    $this->arrDownload[1] = "ファイルに保存";
}

という部分に

function init() {
    parent::init();
    $this->tpl_mainpage = 'order/pdf_input.tpl';
    $this->tpl_subnavi = 'order/subnavi.tpl';
    $this->tpl_mainno = 'order'; 
    $this->tpl_subno = 'pdf';
    $this->tpl_subtitle = '帳票出力';

    $this->SHORTTEXT_MAX = STEXT_LEN;
    $this->MIDDLETEXT_MAX = MTEXT_LEN;
    $this->LONGTEXT_MAX = LTEXT_LEN;

    $this->arrType[0]  = "納品書";
    $this->arrType[1]  = "受注明細書";

    $this->arrDownload[0] = "ブラウザに開く";
    $this->arrDownload[1] = "ファイルに保存";
}

のように

$this->arrType[1]  = "受注明細書";

を追加します。

次に、

function createPdf(&$objFormParam){

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

        $this->arrForm = $arrRet;
        // エラー入力なし

        ・・・・以下省略・・・・
}

の部分を

function createPdf(&$objFormParam){

        $arrErr = $this->lfCheckError($objFormParam);
        $arrRet = $objFormParam->getHashArray();
		 
        $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;
        }
}

と修正します。
LC_Page_Admin_Order_Pdf.phpの修正は上記まででも一応動きますが、
今回は帳票出力の際に帳票のタイトルが
自動でお買上げ明細書(帳票のタイトル名)
という形になるように

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

という部分を

$arrForm['title'] = "お買上げ明細書";

に変更し、

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

という一行を

function createPdf(&$objFormParam){

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

のように上記の部分あたりに追加しすれば、
帳票で納品書を選べば
・お買上げ明細書(納品書)
受注明細書を選べば
・お買上げ明細書(受注明細書)
のようにタイトルが変わるようになります。
以上でLC_Page_Admin_Order_Pdf.phpの修正は完了なので保存してアップします。

SC_Fpdf_Order.phpの修正

次に、前項で作成したSC_Fpdf_Order.phpの修正をします。
まず、

require(DATA_REALDIR . 'module/fpdf/fpdf.php');
require(DATA_REALDIR . 'module/fpdf/japanese.php');

という部分を

require_once(DATA_REALDIR . 'module/fpdf/japanese.php');

のように一行を削除し、requireをrequire_onceに変更します。

次に、

class SC_Fpdf_Order {
    function SC_Fpdf_Order($download, $title, $tpl_pdf = 'order1.pdf') {

のように
SC_Fpdfとなっていた部分をすべて
SC_Fpdf_Orderという新しい名前に変更します。
また$tpl_pdf = ‘order.pdf’の部分も
前項で作成したorder.pdfに変更します。

以上で完了です。
あとは保存しアップすればOK

これでとりあえず帳票の出力画面に

のように「受注明細書」という項目が追加され
PDFのタイトル部分も
EC-CUBE 帳票の追加
のように自動で「お買上げ明細書(受注明細書)」と表示されるようになります。

参考サイト

EC-CUBE帳票の種類を追加する
上記のサイト様を参考にさせて頂きました。

コーディング・WordPress化作業を代行します

TAGS

.htaccess ActionScript All in one seo pack Contact Form 7 CSS CSS3 EC-CUBE Flash HTML HTML5 JavaScript jQuery LightBox PHP RSS SEO WordPress アイキャッチ画像 アクセス解析 カスタムフィールド カテゴリー カラーミーショップ カート コメント ショートコード ソースコード テンプレートタグ ドロップダウンメニュー パーマリンク フォーム フルスクリーン プラグイン ページテンプレート ページナビ ページ分割 マウスイベント リダイレクト リンク レンタルサーバー ロールオーバー 携帯サイト 条件分岐 正規表現 角丸 関連記事