app/DoctrineMigrations/Version20260130000000.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. /**
  7.  * dtb_csvに受注・商品の納入日とお渡し日フィールドを追加するマイグレーション
  8.  */
  9. final class Version20260130000000 extends AbstractMigration
  10. {
  11.     const NAME 'dtb_csv';
  12.     public function getDescription(): string
  13.     {
  14.         return 'Add delivery_date and handover_date CSV fields for Order and OrderItem';
  15.     }
  16.     public function up(Schema $schema): void
  17.     {
  18.         // 受注CSV(csv_type_id = 3)に受注の納入日を追加
  19.         $exist $this->connection->fetchOne(
  20.             "SELECT COUNT(*) FROM dtb_csv WHERE csv_type_id = 3 AND entity_name = ? AND field_name = 'order_delivery_date' AND disp_name = '納入日'",
  21.             ['Eccube\\Entity\\Order']
  22.         );
  23.         if ($exist == 0) {
  24.             $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')");
  25.         }
  26.         // 受注CSV(csv_type_id = 3)に受注のお渡し日を追加
  27.         $exist $this->connection->fetchOne(
  28.             "SELECT COUNT(*) FROM dtb_csv WHERE csv_type_id = 3 AND entity_name = ? AND field_name = 'order_handover_date' AND disp_name = 'お渡し日'",
  29.             ['Eccube\\Entity\\Order']
  30.         );
  31.         if ($exist == 0) {
  32.             $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')");
  33.         }
  34.         // 受注CSV(csv_type_id = 3)に商品の納入日を追加
  35.         $exist $this->connection->fetchOne(
  36.             "SELECT COUNT(*) FROM dtb_csv WHERE csv_type_id = 3 AND entity_name = ? AND field_name = 'item_delivery_date' AND disp_name = '商品納入日'",
  37.             ['Eccube\\Entity\\OrderItem']
  38.         );
  39.         if ($exist == 0) {
  40.             $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')");
  41.         }
  42.         // 受注CSV(csv_type_id = 3)に商品のお渡し日を追加
  43.         $exist $this->connection->fetchOne(
  44.             "SELECT COUNT(*) FROM dtb_csv WHERE csv_type_id = 3 AND entity_name = ? AND field_name = 'item_handover_date' AND disp_name = '商品お渡し日'",
  45.             ['Eccube\\Entity\\OrderItem']
  46.         );
  47.         if ($exist == 0) {
  48.             $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')");
  49.         }
  50.     }
  51.     public function down(Schema $schema): void
  52.     {
  53.         // ロールバック時は追加したCSV項目を削除
  54.         $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 = '納入日'");
  55.         $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 = 'お渡し日'");
  56.         $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 = '商品納入日'");
  57.         $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 = '商品お渡し日'");
  58.     }
  59. }