トランソニックソフトウェア

ブログ
BLOG

2023.12.26

【EC-CUBE4】受注CSVに合計の税抜きの列を追加する

税抜きに限らず、テーブルにそのまま存在しないデータをCSVに吐きたいという記事です。

 

マイグレーションする

まず、「dtb_csv」に「税抜き」の行を追加するためにマイグレーションを作成します。

 

「app\DoctrineMigrations」に「Version現在日時.php」のようなファイルが生成されますので、

生成されたファイルの public function up(Schema $schema): void の部分にSQLを書きます。

Entityの部分はそこから値を取らないので何でもいいですが、(作りを見ればそれはそうなのですが)NULL不可なので何か入れておきます。

 

マイグレーションを実行します。

税抜きの行が追加されました。コマンドを打ってyesかnoか聞かれたらyesでいいです。

管理画面の「店舗設定>CSV出力項目設定>受注CSV」を見ると「出力する項目」の一番下に「税抜き」があると思います。

 

コントローラーをカスタマイズする

「app\Customize\Controller\Admin\Order\OrderController.php」を作成します。(既に存在したらそれを編集します)

その中の protected function exportCsv(Request $request, $csvTypeId, $fileName) の中の

CSV出力項目と合致するデータを取得している部分を以下のように編集します。

触ったのは if($Csv->getDispName() == "税抜き"){ のifで括ってある所だけです。

$csvService->getData($Csv, $Order) でやっているのは文字列(かnull)を返しているだけなので、

合計(total)から税金(tax)を引く税抜きの計算をここでやれば良いってだけです。

 

dtb_orderに税抜きの行を追加して影響箇所が多大な醜いカスタマイズをしないで済んでよかったです。