Files
thetool/db/migrations/20250131150000_warehouse_modify_10.php
2025-11-18 20:16:17 +01:00

63 lines
3.1 KiB
PHP

<?php declare(strict_types = 1);
use Phinx\Migration\AbstractMigration;
final class WarehouseModify10 extends AbstractMigration {
public function up(): void {
if ($this->getEnvironment() == "thetool") {
// Remove foreign keys and drop the existing tables
$this->table("WarehouseOrderItem")
->dropForeignKey("orderId")
->dropForeignKey("articleId")
->update();
$this->table("WarehouseOrder")->drop()->save();
$this->table("WarehouseOrderItem")->drop()->save();
// Create the new WarehouseOrder table
$table = $this->table("WarehouseOrder", ["id" => false, "primary_key" => ["id"]]);
$table->addColumn("id", "integer", ["identity" => true])
->addColumn("orderNumber", "string", ["null" => false, "limit" => 255])
->addColumn("delAddrCity", "string", ["null" => false, "limit" => 255])
->addColumn("delAddrEMail", "string", ["null" => false, "limit" => 255])
->addColumn("delAddrLine", "string", ["null" => false, "limit" => 255])
->addColumn("delAddrName", "string", ["null" => false, "limit" => 255])
->addColumn("delAddrPLZ", "string", ["null" => false, "limit" => 255])
->addColumn("editor", "integer", ["null" => false])
->addColumn("note", "text", ["null" => false])
->addColumn("positions", "text", ["null" => false])
->addColumn("create", "integer", ["null" => false])
->addColumn("createBy", "integer", ["null" => false])
->create();
}
}
public function down(): void {
if ($this->getEnvironment() == "thetool") {
$this->table("WarehouseOrder")->drop()->save();
$WarehouseOrder = $this->table("WarehouseOrder", ["signed" => true]);
$WarehouseOrder
->addColumn('distributorId', 'integer', ['null' => false])
->addColumn('intRef', 'string', ['null' => true])
->addColumn('extRef', 'string', ['null' => true])
->addColumn('status', 'enum', ['values' => ['new', 'accepted', 'sent', 'done'], 'null' => false, 'default' => 'new'])
->addColumn('sum', 'float', ['null' => true])
->addColumn('trackingNumber', 'string', ['null' => true])
->addColumn('create', 'integer', ['null' => false, 'default' => 1728541890])
->addColumn('createBy', 'integer', ['null' => false, 'default' => 1])
->create();
$WarehouseOrderItem = $this->table("WarehouseOrderItem", ["signed" => true]);
$WarehouseOrderItem
->addColumn('orderId', 'integer', ['null' => false])
->addColumn('articleId', 'integer', ['null' => false])
->addColumn('quantity', 'integer', ['null' => false])
->addColumn('price', 'float', ['null' => false])
->addForeignKey('orderId', 'WarehouseOrder', 'id')
->addForeignKey('articleId', 'WarehouseArticle', 'id')
->create();
}
}
}