146 lines
6.9 KiB
PHP
146 lines
6.9 KiB
PHP
<?php /** @noinspection ALL */
|
|
|
|
declare(strict_types=1);
|
|
|
|
use Phinx\Migration\AbstractMigration;
|
|
|
|
final class WarehouseModify extends AbstractMigration
|
|
{
|
|
public function up(): void
|
|
{
|
|
if ($this->getEnvironment() == "thetool") {
|
|
// Create Tables
|
|
$WarehouseShippingNoteTextElement = $this->table("WarehouseShippingNoteTextElement", ["signed" => true]);
|
|
$WarehouseShippingNoteTextElement
|
|
->addColumn('title', 'string', ['null' => false])
|
|
->addColumn('content', 'text', ['null' => false])
|
|
->addColumn('create', 'integer', ['null' => false, 'default' => 1728541890])
|
|
->addColumn('createBy', 'integer', ['null' => false, 'default' => 1])
|
|
->create();
|
|
|
|
$WarehouseShippingNote = $this->table("WarehouseShippingNote", ["signed" => true]);
|
|
$WarehouseShippingNote
|
|
->addColumn('billingAddressId', 'integer', ['null' => false])
|
|
->addColumn('deliveryAddressName', 'string', ['null' => false])
|
|
->addColumn('deliveryAddressLine', 'string', ['null' => false])
|
|
->addColumn('deliveryAddressPLZ', 'string', ['null' => false])
|
|
->addColumn('deliveryAddressCity', 'string', ['null' => false])
|
|
->addColumn('status', 'enum', ['values' => ['new', 'accepted', 'invoiced'], 'null' => false])
|
|
->addColumn('positions', 'text', ['null' => false])
|
|
->addColumn('textElements', 'text', ['null' => false])
|
|
->addColumn('create', 'integer', ['null' => false, 'default' => 1728541890])
|
|
->addColumn('createBy', 'integer', ['null' => false, 'default' => 1])
|
|
->create();
|
|
|
|
$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();
|
|
|
|
// Delete Table
|
|
$WarehouseRevenueAccount = $this->table("WarehouseRevenueAccount");
|
|
$WarehouseRevenueAccount->drop()->save();
|
|
|
|
// Modify Tables
|
|
$WarehouseLocation = $this->table("WarehouseLocation");
|
|
$WarehouseLocation
|
|
->addColumn('description', 'text', ['null' => true])
|
|
->addColumn('createBy', 'integer', ['null' => false, 'default' => 1728541890])
|
|
->addColumn('create', 'integer', ['null' => false, 'default' => 1])
|
|
->update();
|
|
|
|
$WarehouseItem = $this->table("WarehouseItem");
|
|
$WarehouseItem
|
|
->changeColumn('quantity', 'integer', ['null' => true])
|
|
->addColumn('rack', 'string', ['null' => true])
|
|
->addColumn('shelf', 'string', ['null' => true])
|
|
->addColumn('createBy', 'integer', ['null' => false, 'default' => 1728541890])
|
|
->addColumn('create', 'integer', ['null' => false, 'default' => 1])
|
|
->update();
|
|
|
|
$WarehouseArticlePriceType = $this->table("WarehouseArticlePriceType");
|
|
$WarehouseArticlePriceType
|
|
->addColumn('description', 'string', ['null' => true])
|
|
->addColumn('defaultPriceFactor', 'float', ['null' => true])
|
|
->addColumn('createBy', 'integer', ['null' => false, 'default' => 1728541890])
|
|
->addColumn('create', 'integer', ['null' => false, 'default' => 1])
|
|
->update();
|
|
|
|
// Set nullable createBy and create columns
|
|
$WarehouseLocation
|
|
->changeColumn('createBy', 'integer', ['null' => true])
|
|
->changeColumn('create', 'integer', ['null' => true])
|
|
->save();
|
|
|
|
$WarehouseItem
|
|
->changeColumn('createBy', 'integer', ['null' => true])
|
|
->changeColumn('create', 'integer', ['null' => true])
|
|
->save();
|
|
|
|
$WarehouseArticlePriceType
|
|
->changeColumn('createBy', 'integer', ['null' => true])
|
|
->changeColumn('create', 'integer', ['null' => true])
|
|
->save();
|
|
}
|
|
}
|
|
|
|
public function down(): void
|
|
{
|
|
if ($this->getEnvironment() == "thetool") {
|
|
// Drop created tables
|
|
$this->table('WarehouseShippingNoteTextElement')->drop()->save();
|
|
$this->table('WarehouseShippingNote')->drop()->save();
|
|
$this->table('WarehouseOrder')->drop()->save();
|
|
$this->table('WarehouseOrderItem')->drop()->save();
|
|
|
|
// Recreate deleted table
|
|
$WarehouseRevenueAccount = $this->table("WarehouseRevenueAccount");
|
|
$WarehouseRevenueAccount
|
|
->addColumn('revenueAccountNumber', 'integer', ['null' => false])
|
|
->addColumn('title', 'string', ['null' => false])
|
|
->create();
|
|
|
|
// Revert modifications
|
|
$WarehouseLocation = $this->table("WarehouseLocation");
|
|
$WarehouseLocation
|
|
->removeColumn('description')
|
|
->removeColumn('createBy')
|
|
->removeColumn('create')
|
|
->update();
|
|
|
|
$WarehouseItem = $this->table("WarehouseItem");
|
|
$WarehouseItem
|
|
->changeColumn('quantity', 'integer', ['null' => false])
|
|
->removeColumn('rack')
|
|
->removeColumn('shelf')
|
|
->removeColumn('createBy')
|
|
->removeColumn('create')
|
|
->update();
|
|
|
|
$WarehouseArticlePriceType = $this->table("WarehouseArticlePriceType");
|
|
$WarehouseArticlePriceType
|
|
->removeColumn('description')
|
|
->removeColumn('defaultPriceFactor')
|
|
->removeColumn('createBy')
|
|
->removeColumn('create')
|
|
->update();
|
|
}
|
|
}
|
|
} |