feat:일반전표입력 마이그레이션 추가 (journal_entries, journal_entry_lines)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
김보곤
2026-02-06 15:23:37 +09:00
parent edbd95053c
commit bdf6bcc480
2 changed files with 76 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('journal_entries', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('tenant_id');
$table->string('entry_no', 20)->comment('전표번호 JE-YYYYMMDD-NNN');
$table->date('entry_date')->comment('전표일자');
$table->string('entry_type', 20)->default('general')->comment('전표유형');
$table->string('description', 500)->nullable()->comment('적요');
$table->bigInteger('total_debit')->default(0)->comment('차변합계');
$table->bigInteger('total_credit')->default(0)->comment('대변합계');
$table->string('status', 20)->default('draft')->comment('상태: draft, confirmed');
$table->string('created_by_name', 100)->nullable()->comment('작성자명');
$table->text('attachment_note')->nullable()->comment('첨부메모');
$table->timestamps();
$table->softDeletes();
$table->unique(['tenant_id', 'entry_no']);
$table->index(['tenant_id', 'entry_date']);
$table->index(['tenant_id', 'status']);
});
}
public function down(): void
{
Schema::dropIfExists('journal_entries');
}
};

View File

@@ -0,0 +1,40 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('journal_entry_lines', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('tenant_id');
$table->unsignedBigInteger('journal_entry_id');
$table->smallInteger('line_no')->comment('행번호');
$table->string('dc_type', 10)->comment('차대구분: debit/credit');
$table->string('account_code', 10)->comment('계정코드');
$table->string('account_name', 100)->comment('계정명');
$table->unsignedBigInteger('trading_partner_id')->nullable()->comment('거래처ID');
$table->string('trading_partner_name', 100)->nullable()->comment('거래처명');
$table->bigInteger('debit_amount')->default(0)->comment('차변금액');
$table->bigInteger('credit_amount')->default(0)->comment('대변금액');
$table->string('description', 300)->nullable()->comment('적요');
$table->timestamps();
$table->foreign('journal_entry_id')
->references('id')
->on('journal_entries')
->onDelete('cascade');
$table->index(['journal_entry_id', 'line_no']);
$table->index(['tenant_id', 'account_code']);
});
}
public function down(): void
{
Schema::dropIfExists('journal_entry_lines');
}
};