vendor/bluue/prestashop-connector-bundle/migrations/Version20241008111505.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace PrestashopConnectorBundleMigrations;
  4. use App\Services\ObjectSerialize;
  5. use Doctrine\DBAL\Schema\Schema;
  6. use Doctrine\Migrations\AbstractMigration;
  7. use Symfony\Component\Uid\UuidV6;
  8. /**
  9.  * Auto-generated Migration: Please modify to your needs!
  10.  */
  11. final class Version20241008111505 extends AbstractMigration
  12. {
  13.     private ObjectSerialize $objectSerialize;
  14.     public function setObjectSerialize(ObjectSerialize $objectSerialize): void
  15.     {
  16.         $this->objectSerialize $objectSerialize;
  17.     }
  18.     public function up(Schema $schema): void
  19.     {
  20.         // this up() migration is auto-generated, please modify it to your needs
  21.     }
  22.     public function down(Schema $schema): void
  23.     {
  24.         // this down() migration is auto-generated, please modify it to your needs
  25.     }
  26.     public function postUp(Schema $schema): void
  27.     {
  28.         parent::postUp($schema);
  29.         $contexts $this->connection->executeQuery('SELECT * FROM context WHERE deleted_at IS NULL')
  30.             ->fetchAllAssociative();
  31.         $firstInvoiceDate $this->connection->executeQuery(
  32.             'SELECT validated_at FROM sales_bundle__invoice
  33.             WHERE validated_at IS NOT NULL AND deleted_at IS NULL
  34.             ORDER BY validated_at ASC LIMIT 1'
  35.         )->fetchOne();
  36.         $now $defaultDate = new \DateTime();
  37.         if ($firstInvoiceDate) {
  38.             $defaultDate = new \DateTime($firstInvoiceDate);
  39.         }
  40.         $defaultDate $defaultDate->format('Y-m-d');
  41.         $now $now->format('Y-m-d H:i:s');
  42.         foreach ($contexts as $context) {
  43.             $this->connection->insert('configuration', [
  44.                 'id' => (new UuidV6())->toBinary(),
  45.                 'name' => 'prestashop_connector_bundle__limit_invoice_date',
  46.                 'context_id' => $context['id'],
  47.                 'value' => $this->objectSerialize->add((object) ['value' => $defaultDate]),
  48.                 'created_at' => $now,
  49.                 'updated_at' => $now
  50.             ]);
  51.         }
  52.     }
  53. }