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(); } }