<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* dtb_csvに受注・商品の納入日とお渡し日フィールドを追加するマイグレーション
*/
final class Version20260130000000 extends AbstractMigration
{
const NAME = 'dtb_csv';
public function getDescription(): string
{
return 'Add delivery_date and handover_date CSV fields for Order and OrderItem';
}
public function up(Schema $schema): void
{
// 受注CSV(csv_type_id = 3)に受注の納入日を追加
$exist = $this->connection->fetchOne(
"SELECT COUNT(*) FROM dtb_csv WHERE csv_type_id = 3 AND entity_name = ? AND field_name = 'order_delivery_date' AND disp_name = '納入日'",
['Eccube\\Entity\\Order']
);
if ($exist == 0) {
$this->addSql("INSERT INTO dtb_csv (csv_type_id, creator_id, entity_name, field_name, disp_name, sort_no, enabled, create_date, update_date, discriminator_type) VALUES (3, 1, 'Eccube\\\\Entity\\\\Order', 'order_delivery_date', '納入日', 1000, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'csv')");
}
// 受注CSV(csv_type_id = 3)に受注のお渡し日を追加
$exist = $this->connection->fetchOne(
"SELECT COUNT(*) FROM dtb_csv WHERE csv_type_id = 3 AND entity_name = ? AND field_name = 'order_handover_date' AND disp_name = 'お渡し日'",
['Eccube\\Entity\\Order']
);
if ($exist == 0) {
$this->addSql("INSERT INTO dtb_csv (csv_type_id, creator_id, entity_name, field_name, disp_name, sort_no, enabled, create_date, update_date, discriminator_type) VALUES (3, 1, 'Eccube\\\\Entity\\\\Order', 'order_handover_date', 'お渡し日', 1001, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'csv')");
}
// 受注CSV(csv_type_id = 3)に商品の納入日を追加
$exist = $this->connection->fetchOne(
"SELECT COUNT(*) FROM dtb_csv WHERE csv_type_id = 3 AND entity_name = ? AND field_name = 'item_delivery_date' AND disp_name = '商品納入日'",
['Eccube\\Entity\\OrderItem']
);
if ($exist == 0) {
$this->addSql("INSERT INTO dtb_csv (csv_type_id, creator_id, entity_name, field_name, disp_name, sort_no, enabled, create_date, update_date, discriminator_type) VALUES (3, 1, 'Eccube\\\\Entity\\\\OrderItem', 'item_delivery_date', '商品納入日', 1002, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'csv')");
}
// 受注CSV(csv_type_id = 3)に商品のお渡し日を追加
$exist = $this->connection->fetchOne(
"SELECT COUNT(*) FROM dtb_csv WHERE csv_type_id = 3 AND entity_name = ? AND field_name = 'item_handover_date' AND disp_name = '商品お渡し日'",
['Eccube\\Entity\\OrderItem']
);
if ($exist == 0) {
$this->addSql("INSERT INTO dtb_csv (csv_type_id, creator_id, entity_name, field_name, disp_name, sort_no, enabled, create_date, update_date, discriminator_type) VALUES (3, 1, 'Eccube\\\\Entity\\\\OrderItem', 'item_handover_date', '商品お渡し日', 1003, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'csv')");
}
}
public function down(Schema $schema): void
{
// ロールバック時は追加したCSV項目を削除
$this->addSql("DELETE FROM dtb_csv WHERE csv_type_id = 3 AND entity_name = 'Eccube\\\\Entity\\\\Order' AND field_name = 'order_delivery_date' AND disp_name = '納入日'");
$this->addSql("DELETE FROM dtb_csv WHERE csv_type_id = 3 AND entity_name = 'Eccube\\\\Entity\\\\Order' AND field_name = 'order_handover_date' AND disp_name = 'お渡し日'");
$this->addSql("DELETE FROM dtb_csv WHERE csv_type_id = 3 AND entity_name = 'Eccube\\\\Entity\\\\OrderItem' AND field_name = 'item_delivery_date' AND disp_name = '商品納入日'");
$this->addSql("DELETE FROM dtb_csv WHERE csv_type_id = 3 AND entity_name = 'Eccube\\\\Entity\\\\OrderItem' AND field_name = 'item_handover_date' AND disp_name = '商品お渡し日'");
}
}