278 lines
8.8 KiB
PHP
278 lines
8.8 KiB
PHP
|
<?php
|
||
|
declare(strict_types=1);
|
||
|
|
||
|
use Migrations\AbstractMigration;
|
||
|
|
||
|
class CreateTransactionTables extends AbstractMigration
|
||
|
{
|
||
|
/**
|
||
|
* Change Method.
|
||
|
*
|
||
|
* More information on this method is available here:
|
||
|
* https://book.cakephp.org/phinx/0/en/migrations.html#the-change-method
|
||
|
* @return void
|
||
|
*/
|
||
|
public function change(): void
|
||
|
{
|
||
|
// de_accounts
|
||
|
$table = $this->table('de_external_accounts', ['id' => false, 'primary_key' => ['external_account_number']]);
|
||
|
$table->addColumn('external_account_number', 'uuid', [
|
||
|
'default' => null,
|
||
|
'limit' => 11,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
$table->addColumn('entity_type_code', 'string', [
|
||
|
'default' => null,
|
||
|
'limit' => 2,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
$table->addColumn('created', 'datetime', [
|
||
|
'default' => null,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
$table->addColumn('related_model', 'string', [
|
||
|
'default' => null,
|
||
|
'limit' => 255,
|
||
|
'null' => true,
|
||
|
]);
|
||
|
$table->addColumn('related_model_fk', 'integer', [
|
||
|
'default' => null,
|
||
|
'limit' => 11,
|
||
|
'null' => true,
|
||
|
]);
|
||
|
// $table->addForeignKey(
|
||
|
// 'entity_type_code',
|
||
|
// 'de_entity_types',
|
||
|
// 'entity_type_code',
|
||
|
// [
|
||
|
// 'update' => 'RESTRICT',
|
||
|
// 'delete' => 'RESTRICT',
|
||
|
// 'constraint' => 'de_accounts_entity_type_fk'
|
||
|
// ]
|
||
|
// );
|
||
|
$table->create();
|
||
|
|
||
|
// de_account_statements
|
||
|
$table = $this->table('de_external_account_statements', ['id' => false, 'primary_key' => 'external_account_statement_id']);
|
||
|
$table->addColumn('external_account_statement_id', 'uuid', [
|
||
|
'default' => null,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
$table->addColumn('external_account_number', 'uuid', [
|
||
|
'default' => null,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
$table->addColumn('statement_date', 'date', [
|
||
|
'default' => null,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
$table->addColumn('closing_balance', 'decimal', [
|
||
|
'default' => null,
|
||
|
'precision' => 15,
|
||
|
'scale' => 6,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
$table->addColumn('total_credit', 'decimal', [
|
||
|
'default' => null,
|
||
|
'precision' => 15,
|
||
|
'scale' => 6,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
$table->addColumn('total_debit', 'decimal', [
|
||
|
'default' => null,
|
||
|
'precision' => 15,
|
||
|
'scale' => 6,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
// $table->addForeignKey(
|
||
|
// 'external_account_number',
|
||
|
// 'de_external_accounts',
|
||
|
// 'external_account_number',
|
||
|
// [
|
||
|
// 'update' => 'RESTRICT',
|
||
|
// 'delete' => 'RESTRICT',
|
||
|
// 'constraint' => 'de_ext_acct_statements_ext_account_number_fk',
|
||
|
// ]
|
||
|
// );
|
||
|
$table->create();
|
||
|
|
||
|
// de_journal_types
|
||
|
$table = $this->table('de_journal_types', ['id' => false, 'primary_key' => 'de_journal_type_code']);
|
||
|
$table->addColumn('de_journal_type_code', 'string', [
|
||
|
'default' => null,
|
||
|
'limit' => 5,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
$table->create();
|
||
|
|
||
|
// de_journals
|
||
|
$table = $this->table('de_journals');
|
||
|
$table->addColumn('name', 'string', [
|
||
|
'default' => null,
|
||
|
'limit' => 45,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
$table->addColumn('short_code', 'string', [
|
||
|
'default' => null,
|
||
|
'limit' => 5,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
$table->addColumn('default_account_number_credit', 'integer', [
|
||
|
'default' => null,
|
||
|
'limit' => 11,
|
||
|
'null' => true,
|
||
|
]);
|
||
|
$table->addColumn('default_account_number_debit', 'integer', [
|
||
|
'default' => null,
|
||
|
'limit' => 11,
|
||
|
'null' => true,
|
||
|
]);
|
||
|
$table->addColumn('de_journal_type_code', 'string', [
|
||
|
'default' => null,
|
||
|
'limit' => 5,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
// $table->addForeignKey(
|
||
|
// 'default_account_number_credit',
|
||
|
// 'de_ledgers',
|
||
|
// 'account_number',
|
||
|
// [
|
||
|
// 'update' => 'RESTRICT',
|
||
|
// 'delete' => 'RESTRICT',
|
||
|
// 'constraint' => 'de_journals_default_credit_account_number_fk',
|
||
|
// ]
|
||
|
// );
|
||
|
// $table->addForeignKey(
|
||
|
// 'default_account_number_debit',
|
||
|
// 'de_ledgers',
|
||
|
// 'account_number',
|
||
|
// [
|
||
|
// 'update' => 'RESTRICT',
|
||
|
// 'delete' => 'RESTRICT',
|
||
|
// 'constraint' => 'de_journals_default_debit_account_number_fk',
|
||
|
// ]
|
||
|
// );
|
||
|
// $table->addForeignKey(
|
||
|
// 'de_journal_type_code',
|
||
|
// 'de_journal_types',
|
||
|
// 'de_journal_type_code',
|
||
|
// [
|
||
|
// 'update' => 'RESTRICT',
|
||
|
// 'delete' => 'RESTRICT',
|
||
|
// 'constraint' => 'de_journal_types_for_journals_fk',
|
||
|
// ]
|
||
|
// );
|
||
|
$table->create();
|
||
|
|
||
|
// de_journal_entries
|
||
|
$table = $this->table('de_journal_entries');
|
||
|
$table->addColumn('de_journal_id', 'integer', [
|
||
|
'default' => null,
|
||
|
'limit' => 11,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
$table->addColumn('user_id', 'integer', [
|
||
|
'default' => null,
|
||
|
'limit' => 11,
|
||
|
'null' => true,
|
||
|
]);
|
||
|
$table->addColumn('created', 'datetime', [
|
||
|
'default' => null,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
$table->addColumn('notes', 'text', [
|
||
|
'default' => null,
|
||
|
'null' => true,
|
||
|
]);
|
||
|
$table->create();
|
||
|
|
||
|
// de_journal_items
|
||
|
$table = $this->table('de_journal_items');
|
||
|
$table->addColumn('account_number_credit', 'integer', [
|
||
|
'default' => null,
|
||
|
'limit' => 11,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
$table->addColumn('account_number_debit', 'integer', [
|
||
|
'default' => null,
|
||
|
'limit' => 11,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
$table->addColumn('external_account_number_credit', 'uuid', [
|
||
|
'default' => null,
|
||
|
'null' => true,
|
||
|
]);
|
||
|
$table->addColumn('external_account_number_debit', 'uuid', [
|
||
|
'default' => null,
|
||
|
'null' => true,
|
||
|
]);
|
||
|
$table->addColumn('de_journal_entry_id', 'integer', [
|
||
|
'default' => null,
|
||
|
'limit' => 11,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
|
||
|
$table->addColumn('amount', 'decimal', [
|
||
|
'default' => null,
|
||
|
'precision' => 15,
|
||
|
'scale' => 6,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
$table->addColumn('created', 'datetime', [
|
||
|
'default' => null,
|
||
|
'null' => false,
|
||
|
]);
|
||
|
// $table->addForeignKey(
|
||
|
// 'de_journal_entry_id',
|
||
|
// 'de_journal_entries',
|
||
|
// 'id',
|
||
|
// [
|
||
|
// 'update' => 'RESTRICT',
|
||
|
// 'delete' => 'RESTRICT',
|
||
|
// 'constraint' => 'de_journal_items_journal_entry_id_fk',
|
||
|
// ]
|
||
|
// );
|
||
|
// $table->addForeignKey(
|
||
|
// 'account_number_credit',
|
||
|
// 'de_ledgers',
|
||
|
// 'account_number',
|
||
|
// [
|
||
|
// 'update' => 'RESTRICT',
|
||
|
// 'delete' => 'RESTRICT',
|
||
|
// 'constraint' => 'de_journal_items_account_number_credit_fk',
|
||
|
// ]
|
||
|
// );
|
||
|
// $table->addForeignKey(
|
||
|
// 'account_number_debit',
|
||
|
// 'de_ledgers',
|
||
|
// 'account_number',
|
||
|
// [
|
||
|
// 'update' => 'RESTRICT',
|
||
|
// 'delete' => 'RESTRICT',
|
||
|
// 'constraint' => 'de_journal_items_account_number_debit_fk',
|
||
|
// ]
|
||
|
// );
|
||
|
// $table->addForeignKey(
|
||
|
// 'external_account_number_credit',
|
||
|
// 'de_external_accounts',
|
||
|
// 'external_account_number',
|
||
|
// [
|
||
|
// 'update' => 'RESTRICT',
|
||
|
// 'delete' => 'RESTRICT',
|
||
|
// 'constraint' => 'de_journal_items_external_account_number_credit_fk',
|
||
|
// ]
|
||
|
// );
|
||
|
// $table->addForeignKey(
|
||
|
// 'external_account_number_debit',
|
||
|
// 'de_external_accounts',
|
||
|
// 'external_account_number',
|
||
|
// [
|
||
|
// 'update' => 'RESTRICT',
|
||
|
// 'delete' => 'RESTRICT',
|
||
|
// 'constraint' => 'de_journal_items_external_account_number_debit_fk',
|
||
|
// ]
|
||
|
// );
|
||
|
$table->create();
|
||
|
}
|
||
|
}
|