vendor/bluue/sales-bundle/migrations/Version20221216102111.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace SalesBundleMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. use Exception;
  7. /**
  8.  * Auto-generated Migration: Please modify to your needs!
  9.  */
  10. final class Version20221216102111 extends AbstractMigration
  11. {
  12.     public function up(Schema $schema): void
  13.     {
  14.         $this->addSql('ALTER TABLE sales_bundle__delivery_note ADD invoice_address_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', ADD delivery_address_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', ADD currency_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', ADD currency_change_rate NUMERIC(20, 12) NOT NULL, ADD total_discount_untaxed NUMERIC(20, 6) DEFAULT NULL, ADD total_amount_no_discount_untaxed NUMERIC(20, 6) DEFAULT NULL, ADD total_amount_untaxed NUMERIC(20, 6) DEFAULT NULL, ADD total_tax_amount NUMERIC(20, 6) DEFAULT NULL, ADD total_amount NUMERIC(20, 6) DEFAULT NULL');
  15.         $this->addSql('ALTER TABLE sales_bundle__delivery_note ADD CONSTRAINT FK_9CC42D7C6BDFEB FOREIGN KEY (invoice_address_id) REFERENCES customers_bundle__customer (id)');
  16.         $this->addSql('ALTER TABLE sales_bundle__delivery_note ADD CONSTRAINT FK_9CC42D7EBF23851 FOREIGN KEY (delivery_address_id) REFERENCES customers_bundle__customer (id)');
  17.         $this->addSql('ALTER TABLE sales_bundle__delivery_note ADD CONSTRAINT FK_9CC42D738248176 FOREIGN KEY (currency_id) REFERENCES currency (id)');
  18.         $this->addSql('CREATE INDEX IDX_9CC42D7C6BDFEB ON sales_bundle__delivery_note (invoice_address_id)');
  19.         $this->addSql('CREATE INDEX IDX_9CC42D7EBF23851 ON sales_bundle__delivery_note (delivery_address_id)');
  20.         $this->addSql('CREATE INDEX IDX_9CC42D738248176 ON sales_bundle__delivery_note (currency_id)');
  21.         $this->addSql('ALTER TABLE sales_bundle__delivery_note_line ADD reference VARCHAR(128) DEFAULT NULL, ADD reference_brand VARCHAR(128) DEFAULT NULL, ADD name VARCHAR(255) DEFAULT NULL, ADD description LONGTEXT DEFAULT NULL, ADD unit_price NUMERIC(20, 6) DEFAULT NULL, ADD wholesale_price NUMERIC(20, 6) DEFAULT NULL, ADD margin_ratio NUMERIC(20, 6) DEFAULT NULL, ADD percentage_discount_untaxed NUMERIC(20, 6) DEFAULT NULL, ADD total_discount_untaxed NUMERIC(20, 6) DEFAULT NULL, ADD total_amount_no_discount_untaxed NUMERIC(20, 6) DEFAULT NULL, ADD total_amount_untaxed NUMERIC(20, 6) DEFAULT NULL, ADD total_tax_amount NUMERIC(20, 6) DEFAULT NULL, ADD total_amount NUMERIC(20, 6) DEFAULT NULL, ADD position INT NOT NULL');
  22.         $this->addSql('ALTER TABLE sales_bundle__delivery_note_line ADD line_type_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\'');
  23.         $this->addSql('ALTER TABLE sales_bundle__delivery_note_line ADD CONSTRAINT FK_CF8E237F70E80DF4 FOREIGN KEY (line_type_id) REFERENCES sales_bundle__line_type (id)');
  24.         $this->addSql('CREATE INDEX IDX_CF8E237F70E80DF4 ON sales_bundle__delivery_note_line (line_type_id)');
  25.         $this->addSql('ALTER TABLE sales_bundle__delivery_note_line ADD tax_rule_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\'');
  26.         $this->addSql('ALTER TABLE sales_bundle__delivery_note_line ADD CONSTRAINT FK_CF8E237F3506A35B FOREIGN KEY (tax_rule_id) REFERENCES tax_rule (id)');
  27.         $this->addSql('CREATE INDEX IDX_CF8E237F3506A35B ON sales_bundle__delivery_note_line (tax_rule_id)');
  28.         $this->addSql('ALTER TABLE sales_bundle__delivery_note ADD reduced_vat TINYINT(1) NOT NULL');
  29.         $this->addSql('ALTER TABLE sales_bundle__delivery_note_line ADD parent_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\', ADD is_group TINYINT(1) NOT NULL');
  30.         $this->addSql('ALTER TABLE sales_bundle__delivery_note_line ADD CONSTRAINT FK_CF8E237F727ACA70 FOREIGN KEY (parent_id) REFERENCES sales_bundle__delivery_note_line (id)');
  31.         $this->addSql('CREATE INDEX IDX_CF8E237F727ACA70 ON sales_bundle__delivery_note_line (parent_id)');
  32.         $this->addSql('ALTER TABLE sales_bundle__delivery_note_line CHANGE order_line_id order_line_id BINARY(16) DEFAULT NULL COMMENT \'(DC2Type:uuid)\'');
  33.         $this->addSql('ALTER TABLE sales_bundle__delivery_note DROP INDEX UNIQ_9CC42D72989F1FD, ADD INDEX IDX_9CC42D72989F1FD (invoice_id)');
  34.     }
  35.     public function down(Schema $schema): void
  36.     {
  37.         $this->addSql('ALTER TABLE sales_bundle__delivery_note DROP FOREIGN KEY FK_9CC42D7C6BDFEB');
  38.         $this->addSql('ALTER TABLE sales_bundle__delivery_note DROP FOREIGN KEY FK_9CC42D7EBF23851');
  39.         $this->addSql('ALTER TABLE sales_bundle__delivery_note DROP FOREIGN KEY FK_9CC42D738248176');
  40.         $this->addSql('DROP INDEX IDX_9CC42D7C6BDFEB ON sales_bundle__delivery_note');
  41.         $this->addSql('DROP INDEX IDX_9CC42D7EBF23851 ON sales_bundle__delivery_note');
  42.         $this->addSql('DROP INDEX IDX_9CC42D738248176 ON sales_bundle__delivery_note');
  43.         $this->addSql('ALTER TABLE sales_bundle__delivery_note DROP invoice_address_id, DROP delivery_address_id, DROP currency_id, DROP currency_change_rate, DROP total_discount_untaxed, DROP total_amount_no_discount_untaxed, DROP total_amount_untaxed, DROP total_tax_amount, DROP total_amount');
  44.         $this->addSql('ALTER TABLE sales_bundle__delivery_note_line DROP reference, DROP reference_brand, DROP name, DROP description, DROP unit_price, DROP wholesale_price, DROP margin_ratio, DROP percentage_discount_untaxed, DROP total_discount_untaxed, DROP total_amount_no_discount_untaxed, DROP total_amount_untaxed, DROP total_tax_amount, DROP total_amount, DROP position');
  45.         $this->addSql('ALTER TABLE sales_bundle__delivery_note_line DROP FOREIGN KEY FK_CF8E237F70E80DF4');
  46.         $this->addSql('DROP INDEX IDX_CF8E237F70E80DF4 ON sales_bundle__delivery_note_line');
  47.         $this->addSql('ALTER TABLE sales_bundle__delivery_note_line DROP line_type_id');
  48.         $this->addSql('ALTER TABLE sales_bundle__delivery_note_line DROP FOREIGN KEY FK_CF8E237F3506A35B');
  49.         $this->addSql('DROP INDEX IDX_CF8E237F3506A35B ON sales_bundle__delivery_note_line');
  50.         $this->addSql('ALTER TABLE sales_bundle__delivery_note_line DROP tax_rule_id');
  51.         $this->addSql('ALTER TABLE sales_bundle__delivery_note DROP reduced_vat');
  52.         $this->addSql('ALTER TABLE sales_bundle__delivery_note_line DROP FOREIGN KEY FK_CF8E237F727ACA70');
  53.         $this->addSql('DROP INDEX IDX_CF8E237F727ACA70 ON sales_bundle__delivery_note_line');
  54.         $this->addSql('ALTER TABLE sales_bundle__delivery_note_line DROP parent_id, DROP is_group');
  55.         $this->addSql('ALTER TABLE sales_bundle__delivery_note_line CHANGE order_line_id order_line_id BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\'');
  56.         $this->addSql('ALTER TABLE sales_bundle__delivery_note DROP INDEX IDX_9CC42D72989F1FD, ADD UNIQUE INDEX UNIQ_9CC42D72989F1FD (invoice_id)');
  57.     }
  58.     public function postUp(Schema $schema): void
  59.     {
  60.         parent::postUp($schema);
  61.         $queryLines "UPDATE `sales_bundle__delivery_note_line` dnl, `sales_bundle__order_line` ol
  62.             SET dnl.line_type_id = ol.line_type_id,
  63.                 dnl.tax_rule_id = ol.tax_rule_id,
  64.                 dnl.reference = ol.reference,
  65.                 dnl.reference_brand = ol.reference_brand,
  66.                 dnl.name = ol.name,
  67.                 dnl.description = ol.description,
  68.                 dnl.unit_price = ol.unit_price,
  69.                 dnl.wholesale_price = ol.wholesale_price,
  70.                 dnl.margin_ratio = ol.margin_ratio,
  71.                 dnl.percentage_discount_untaxed = ol.percentage_discount_untaxed,
  72.                 dnl.total_discount_untaxed = (dnl.quantity * ol.total_discount_untaxed) / ol.quantity,
  73.                 dnl.total_amount_no_discount_untaxed = (dnl.quantity * ol.total_amount_no_discount_untaxed) / ol.quantity,
  74.                 dnl.total_amount_untaxed = (dnl.quantity * ol.total_amount_untaxed) / ol.quantity,
  75.                 dnl.total_tax_amount = (dnl.quantity * ol.total_tax_amount) / ol.quantity,
  76.                 dnl.total_amount = (dnl.quantity * ol.total_amount) / ol.quantity,
  77.                 dnl.position = ol.position,
  78.                 dnl.is_group = 0
  79.             WHERE dnl.order_line_id = ol.id AND dnl.deleted_at IS NULL
  80.         ";
  81.         $query "UPDATE `sales_bundle__delivery_note` dn, `sales_bundle__order` o
  82.             SET dn.invoice_address_id = o.invoice_address_id,
  83.                 dn.delivery_address_id = o.delivery_address_id,
  84.                 dn.currency_id = o.currency_id,
  85.                 dn.currency_change_rate = o.currency_change_rate,
  86.                 dn.reduced_vat = o.reduced_vat
  87.             WHERE dn.order_id = o.id AND dn.deleted_at IS NULL
  88.         ";
  89.         try {
  90.             $connLines $this->connection->prepare($queryLines);
  91.             $connLines->executeQuery();
  92.             $conn $this->connection->prepare($query);
  93.             $conn->executeQuery();
  94.         } catch (Exception $e) {
  95.         }
  96.     }
  97. }