Files
thetool/db/migrations/20251201120000_create_manual_invoice_tables.php

111 lines
8.0 KiB
PHP

<?php
declare(strict_types=1);
use Phinx\Migration\AbstractMigration;
final class CreateManualInvoiceTables extends AbstractMigration
{
public function up(): void
{
if($this->getEnvironment() == "thetool") {
// Create ManualInvoice table
$manualInvoice = $this->table("ManualInvoice");
$manualInvoice->addColumn("invoice_number", "string", ["null" => true, "default" => null]);
$manualInvoice->addColumn("invoice_date", "integer", ["default" => 0]);
$manualInvoice->addColumn("owner_id", "integer", ["null" => false]);
$manualInvoice->addColumn("billingaddress_id", "integer", ["null" => false]);
$manualInvoice->addColumn("customer_number", "integer", ["null" => false]);
$manualInvoice->addColumn("fibu_account_number", "integer", ["null" => true, "default" => null]);
$manualInvoice->addColumn("fibu_payment_due", "integer", ["null" => true, "default" => null]);
$manualInvoice->addColumn("fibu_payment_skonto", "integer", ["null" => false, "default" => 0]);
$manualInvoice->addColumn("fibu_payment_skonto_rate", "integer", ["null" => false, "default" => 0]);
$manualInvoice->addColumn("sepa_date", "date", ["null" => true, "default" => null]);
$manualInvoice->addColumn("sepa_id", "string", ["null" => true, "default" => null, "length" => 255]);
$manualInvoice->addColumn("sepa_last_date", "date", ["null" => true, "default" => null]);
$manualInvoice->addColumn("fibu_cost_area", "string", ["null" => true, "default" => null, "length" => 255]);
$manualInvoice->addColumn("fibu_cost_account", "integer", ["null" => true, "default" => null]);
$manualInvoice->addColumn("fibu_cost_account_legacy", "integer", ["null" => true, "default" => null]);
$manualInvoice->addColumn("fibu_taxcode", "integer", ["null" => true, "default" => null]);
$manualInvoice->addColumn("tax_text", "string", ["null" => true, "default" => null, "length" => 255]);
$manualInvoice->addColumn("company", "string", ["null" => true, "default" => null, "length" => 1024]);
$manualInvoice->addColumn("firstname", "string", ["null" => true, "default" => null, "length" => 1024]);
$manualInvoice->addColumn("lastname", "string", ["null" => true, "default" => null, "length" => 1024]);
$manualInvoice->addColumn("street", "string", ["null" => false, "length" => 1024]);
$manualInvoice->addColumn("zip", "string", ["null" => false, "length" => 1024]);
$manualInvoice->addColumn("city", "string", ["null" => false, "length" => 1024]);
$manualInvoice->addColumn("country", "string", ["null" => true, "default" => null, "length" => 1024]);
$manualInvoice->addColumn("email", "string", ["null" => true, "default" => null, "length" => 1024]);
$manualInvoice->addColumn("uid", "string", ["null" => true, "default" => null, "length" => 1024]);
$manualInvoice->addColumn("billing_type", "enum", ["null" => false, "values" => "invoice,sepa"]);
$manualInvoice->addColumn("billing_delivery", "enum", ["null" => false, "values" => "email,paper"]);
$manualInvoice->addColumn("bank_account_bank", "string", ["null" => true, "default" => null, "length" => 255]);
$manualInvoice->addColumn("bank_account_owner", "string", ["null" => true, "default" => null, "length" => 255]);
$manualInvoice->addColumn("bank_account_iban", "string", ["null" => true, "default" => null, "length" => 255]);
$manualInvoice->addColumn("bank_account_bic", "string", ["null" => true, "default" => null, "length" => 255]);
$manualInvoice->addColumn("total", "decimal", ["null" => false, "precision" => 14, "scale" => 4]);
$manualInvoice->addColumn("total_gross", "decimal", ["null" => false, "precision" => 14, "scale" => 4]);
$manualInvoice->addColumn("vatgroup_id", "integer", ["null" => false]);
$manualInvoice->addColumn("bmd_export_date", "integer", ["null" => true, "default" => null]);
$manualInvoice->addColumn("date_delivered", "integer", ["null" => true, "default" => null]);
$manualInvoice->addColumn("create_by", "integer", ["null" => false]);
$manualInvoice->addColumn("edit_by", "integer", ["null" => false]);
$manualInvoice->addColumn("create", "integer", ["null" => false]);
$manualInvoice->addColumn("edit", "integer", ["null" => false]);
$manualInvoice->addIndex(["invoice_number"], ["name" => "invoice_number"]);
$manualInvoice->addIndex(["invoice_date"], ["name" => "invoice_date"]);
$manualInvoice->addIndex(["owner_id"], ["name" => "owner_id"]);
$manualInvoice->addIndex(["billingaddress_id"], ["name" => "billingaddress_id"]);
$manualInvoice->addIndex(["customer_number"], ["name" => "customer_number"]);
$manualInvoice->create();
// Create ManualInvoiceposition table
$manualInvoicePosition = $this->table("ManualInvoiceposition");
$manualInvoicePosition->addColumn("manualinvoice_id", "integer", ["null" => true, "default" => null]);
$manualInvoicePosition->addColumn("billing_id", "integer", ["null" => true, "default" => null]);
$manualInvoicePosition->addColumn("contract_id", "integer", ["null" => false]);
$manualInvoicePosition->addColumn("start_date", "date", ["null" => false]);
$manualInvoicePosition->addColumn("end_date", "date", ["null" => true, "default" => null]);
$manualInvoicePosition->addColumn("matchcode", "string", ["null" => true, "default" => null, "length" => 255]);
$manualInvoicePosition->addColumn("product_id", "integer", ["null" => false]);
$manualInvoicePosition->addColumn("product_name", "string", ["null" => false, "length" => 255]);
$manualInvoicePosition->addColumn("product_info", "text", ["null" => true, "default" => null]);
$manualInvoicePosition->addColumn("amount", "decimal", ["null" => false, "precision" => 9, "scale" => 6]);
$manualInvoicePosition->addColumn("price", "decimal", ["null" => false, "precision" => 14, "scale" => 4]);
$manualInvoicePosition->addColumn("price_total", "decimal", ["null" => false, "precision" => 14, "scale" => 4]);
$manualInvoicePosition->addColumn("price_gross", "decimal", ["null" => false, "precision" => 14, "scale" => 4]);
$manualInvoicePosition->addColumn("vatrate", "decimal", ["null" => false, "default" => 0, "precision" => 6, "scale" => 2]);
$manualInvoicePosition->addColumn("fibu_cost_account", "integer", ["null" => true, "default" => null]);
$manualInvoicePosition->addColumn("fibu_cost_account_legacy", "integer", ["null" => true, "default" => null]);
$manualInvoicePosition->addColumn("fibu_taxcode", "integer", ["null" => true, "default" => null]);
$manualInvoicePosition->addColumn("billing_period", "integer", ["null" => false, "default" => 0]);
$manualInvoicePosition->addColumn("options", "text", ["null" => true, "default" => null, "limit" => \Phinx\Db\Adapter\MysqlAdapter::TEXT_LONG]);
$manualInvoicePosition->addColumn("create_by", "integer", ["null" => false]);
$manualInvoicePosition->addColumn("edit_by", "integer", ["null" => false]);
$manualInvoicePosition->addColumn("create", "integer", ["null" => false]);
$manualInvoicePosition->addColumn("edit", "integer", ["null" => false]);
$manualInvoicePosition->create();
}
if($this->getEnvironment() == "addressdb") {
}
}
public function down(): void
{
if($this->getEnvironment() == "thetool") {
$this->table("ManualInvoiceposition")->drop()->save();
$this->table("ManualInvoice")->drop()->save();
}
if($this->getEnvironment() == "addressdb") {
}
}
}