Files
thetool/db/migrations/20260126130000_manualinvoice_column_cleanup.php
2026-01-27 09:58:19 +00:00

59 lines
2.9 KiB
PHP

<?php
declare(strict_types=1);
use Phinx\Migration\AbstractMigration;
final class ManualinvoiceColumnCleanup extends AbstractMigration
{
public function up(): void
{
if($this->getEnvironment() == "thetool") {
$position = $this->table("ManualInvoiceposition");
if ($position->hasColumn("billing_id")) {
$position->removeColumn("billing_id")->save();
}
if ($position->hasColumn("contract_id")) {
$position->removeColumn("contract_id")->save();
}
// ManualInvoiceposition: Rename columns
$this->execute("ALTER TABLE ManualInvoiceposition CHANGE product_id warehousearticle_id INT(11) NOT NULL");
$this->execute("ALTER TABLE ManualInvoiceposition CHANGE product_name warehousearticle_name VARCHAR(255) NOT NULL");
$invoice = $this->table("ManualInvoice");
if ($invoice->hasColumn("billing_delivery")) {
$invoice->removeColumn("billing_delivery")->save();
}
$this->execute("ALTER TABLE ManualInvoice CHANGE leistungszeitraum performance_period VARCHAR(255) NULL");
$this->execute("ALTER TABLE ManualInvoice CHANGE einleitender_text introductory_text TEXT NULL");
$this->execute("ALTER TABLE ManualInvoice CHANGE externe_referenz external_reference VARCHAR(255) NULL");
$this->execute("ALTER TABLE ManualInvoice CHANGE gesamtrabatt total_discount DECIMAL(6,2) NOT NULL DEFAULT 0.00");
}
}
public function down(): void
{
if($this->getEnvironment() == "thetool") {
$this->execute("ALTER TABLE ManualInvoice CHANGE performance_period leistungszeitraum VARCHAR(255) NULL");
$this->execute("ALTER TABLE ManualInvoice CHANGE introductory_text einleitender_text TEXT NULL");
$this->execute("ALTER TABLE ManualInvoice CHANGE external_reference externe_referenz VARCHAR(255) NULL");
$this->execute("ALTER TABLE ManualInvoice CHANGE total_discount gesamtrabatt DECIMAL(6,2) NOT NULL DEFAULT 0.00");
$invoice = $this->table("ManualInvoice");
$invoice->addColumn("billing_delivery", "enum", [
"null" => false,
"values" => ["email", "paper"],
"after" => "billing_type"
])->save();
$this->execute("ALTER TABLE ManualInvoiceposition CHANGE warehousearticle_id product_id INT(11) NOT NULL");
$this->execute("ALTER TABLE ManualInvoiceposition CHANGE warehousearticle_name product_name VARCHAR(255) NOT NULL");
$position = $this->table("ManualInvoiceposition");
$position->addColumn("billing_id", "integer", ["null" => true, "after" => "position_group"]);
$position->addColumn("contract_id", "integer", ["null" => false, "after" => "billing_id"]);
$position->save();
}
}
}