feat: [hr] 사업소득자 임금대장 display_name/business_reg_number 컬럼 추가
- user_id nullable 변경 (직접 입력 대상자 지원) - display_name, business_reg_number 컬럼 추가 - 기존 데이터 earner 프로필에서 자동 채움
This commit is contained in:
@@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('business_income_payments', function (Blueprint $table) {
|
||||||
|
$table->unsignedBigInteger('user_id')->nullable()->change();
|
||||||
|
$table->string('display_name', 100)->nullable()->after('user_id')->comment('상호/성명 (표시용)');
|
||||||
|
$table->string('business_reg_number', 20)->nullable()->after('display_name')->comment('사업자등록번호');
|
||||||
|
});
|
||||||
|
|
||||||
|
// 기존 데이터에 display_name/business_reg_number 채우기
|
||||||
|
DB::statement("
|
||||||
|
UPDATE business_income_payments bip
|
||||||
|
JOIN tenant_user_profiles tup ON tup.user_id = bip.user_id
|
||||||
|
AND tup.tenant_id = bip.tenant_id AND tup.worker_type = 'business_income'
|
||||||
|
SET bip.display_name = COALESCE(
|
||||||
|
JSON_UNQUOTE(JSON_EXTRACT(tup.json_extra, '$.business_name')),
|
||||||
|
(SELECT name FROM users WHERE id = bip.user_id)
|
||||||
|
),
|
||||||
|
bip.business_reg_number = JSON_UNQUOTE(JSON_EXTRACT(tup.json_extra, '$.business_registration_number'))
|
||||||
|
WHERE bip.display_name IS NULL
|
||||||
|
");
|
||||||
|
|
||||||
|
// earner 프로필 없는 경우 users 테이블에서 이름만이라도 채우기
|
||||||
|
DB::statement("
|
||||||
|
UPDATE business_income_payments bip
|
||||||
|
JOIN users u ON u.id = bip.user_id
|
||||||
|
SET bip.display_name = u.name
|
||||||
|
WHERE bip.display_name IS NULL AND bip.user_id IS NOT NULL
|
||||||
|
");
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('business_income_payments', function (Blueprint $table) {
|
||||||
|
$table->dropColumn(['display_name', 'business_reg_number']);
|
||||||
|
$table->unsignedBigInteger('user_id')->nullable(false)->change();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user