migrations/Delete/Version20250215170024_InvoicingProforma.php line 1

  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations\Delete;
  4. use App\Doctrine\Type\Expediting\TransportMode;
  5. use App\Doctrine\Type\Finance\PayableStatus;
  6. use Doctrine\DBAL\Schema\Schema;
  7. use Doctrine\Migrations\AbstractMigration;
  8. /**
  9.  * Auto-generated Migration: Please modify to your needs!
  10.  */
  11. final class Version20250215170024_InvoicingProforma extends AbstractMigration
  12. {
  13.     public function getDescription(): string
  14.     {
  15.         return 'Add invoicing proforma';
  16.     }
  17.     public function up(Schema $schema): void
  18.     {
  19.         $payableStatus PayableStatus::getName();
  20.         $transportMode TransportMode::getName();
  21.         $this->addSql("CREATE TABLE invoicing_proforma (
  22.             id                              SERIAL PRIMARY KEY,
  23.             work_order_id                   INTEGER                              REFERENCES public.work_order (id),
  24.             shipping_plan_id                INTEGER                              REFERENCES public.expediting_shipping_plan (id),
  25.             batch_id                        INTEGER                              REFERENCES public.expediting_z_batch (id),
  26.             slug                            CHARACTER VARYING           NOT NULL,
  27.             number                          CHARACTER VARYING           NOT NULL,
  28.             reference                       CHARACTER VARYING           NOT NULL,
  29.             status                          {$payableStatus}            NOT NULL,
  30.             transport_mode                  {$transportMode}            NOT NULL,
  31.             version                         INTEGER,
  32.             work_orders                     CHARACTER VARYING,
  33.             order_number                    CHARACTER VARYING           NOT NULL,
  34.             origin                          CHARACTER VARYING           NOT NULL,
  35.             pickup_place                    CHARACTER VARYING           NOT NULL,
  36.             pickup_country_code             CHARACTER VARYING           NOT NULL,
  37.             destination_country_code        CHARACTER VARYING           NOT NULL,
  38.             tariff_zone                     CHARACTER VARYING,
  39.             boxes_count                     INTEGER                     NOT NULL,
  40.             weight                          DECIMAL(18, 5)              NOT NULL,
  41.             volume                          DECIMAL(18, 5)              NOT NULL,
  42.             chargeable_weight               DECIMAL(18, 5),
  43.             value                           DECIMAL(18, 5),
  44.             europe                          BOOLEAN                     NOT NULL,
  45.             lines                           JSONB,   
  46.             created_by                      INTEGER                              REFERENCES public.user (id),
  47.             updated_by                      INTEGER                              REFERENCES public.user (id),
  48.             created_at                      TIMESTAMP(0) WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
  49.             updated_at                      TIMESTAMP(0) WITH TIME ZONE,
  50.             deleted_at                      TIMESTAMP(0) WITH TIME ZONE
  51.         )");
  52.     }
  53.     public function down(Schema $schema): void
  54.     {
  55.         $this->addSql("DROP TABLE IF EXISTS invoicing_proforma");
  56.     }
  57. }