项目信息管理之财务收支模块建库记录
1.收入表(income_records
)
数据库迁移命令:
php artisan make:migration create_income_records_table --create=income_records
迁移文件内容(带注释):
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateIncomeRecordsTable extends Migration{
public function up(){
Schema::create('income_records', function (Blueprint $table) {
$table->id(); // 自增 ID
$table->foreignId('project_id')->constrained()->onDelete('cascade'); // 项目 ID,关联项目表
$table->decimal('amount', 10, 2)->comment('收入金额:使用 decimal 类型,精确到小数点后两位'); // 收入金额
$table->date('date')->comment('收入日期:记录收入发生的日期'); // 收入日期
$table->text('description')->nullable()->comment('收入描述:可选字段,用于描述该收入的具体内容'); // 收入描述
$table->timestamps(); // 自动创建 created_at 和 updated_at 字段
$table->softDeletes()->comment('软删除字段:标记该记录是否已删除'); // 软删除字段
});
}
public function down() {
Schema::dropIfExists('income_records');
}
}
2. 支出表(expense_records
)
数据库迁移命令:
php artisan make:migration create_expense_records_table --create=expense_records
迁移文件内容(带注释):
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateExpenseRecordsTable extends Migration{
public function up() {
Schema::create('expense_records', function (Blueprint $table) {
$table->id(); // 自增 ID
$table->foreignId('project_id')->constrained()->onDelete('cascade'); // 项目 ID,关联项目表
$table->decimal('amount', 10, 2)->comment('支出金额:使用 decimal 类型,精确到小数点后两位'); // 支出金额
$table->date('date')->comment('支出日期:记录支出发生的日期'); // 支出日期
$table->text('description')->nullable()->comment('支出描述:可选字段,用于描述该支出的具体内容'); // 支出描述
$table->timestamps(); // 自动创建 created_at 和 updated_at 字段
$table->softDeletes()->comment('软删除字段:标记该记录是否已删除'); // 软删除字段
});
}
public function down() {
Schema::dropIfExists('expense_records');
}
}
3. 应收款表(accounts_receivable
)
数据库迁移命令:
php artisan make:migration create_accounts_receivable_table --create=accounts_receivable
迁移文件内容(带注释):
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateAccountsReceivableTable extends Migration{
public function up() {
Schema::create('accounts_receivable', function (Blueprint $table) {
$table->id(); // 自增 ID
$table->foreignId('finance_record_id')->constrained('finance_records')->onDelete('cascade'); // 关联财务收支记录 ID
$table->enum('status', ['pending', 'paid', 'overdue'])->default('pending')->comment('应收款状态:待支付、已支付、逾期'); // 状态:待支付、已支付、逾期
$table->enum('reminder_sent', ['no', 'sms', 'email', 'both'])->default('no')->comment('提醒状态:是否发送提醒短信/邮件'); // 提醒状态
$table->timestamp('reminder_date')->nullable()->comment('提醒时间:记录提醒的时间'); // 提醒时间
$table->timestamps(); // 自动创建 created_at 和 updated_at 字段
$table->softDeletes()->comment('软删除字段:标记该记录是否已删除'); // 软删除字段
});
}
public function down() {
Schema::dropIfExists('accounts_receivable');
}
}