87 lines
2.9 KiB
PHP
87 lines
2.9 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace Database\Seeders;
|
||
|
|
|
||
|
|
use Illuminate\Database\Seeder;
|
||
|
|
use Illuminate\Support\Facades\DB;
|
||
|
|
|
||
|
|
class QuoteFormulaMappingSeeder extends Seeder
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* 견적수식 매핑 시드 데이터
|
||
|
|
* mapping 타입 수식(CTRL_AUTO_SELECT)의 조건별 결과값
|
||
|
|
*/
|
||
|
|
public function run(): void
|
||
|
|
{
|
||
|
|
// CTRL_AUTO_SELECT 수식 ID 조회
|
||
|
|
$ctrlFormula = DB::table('quote_formulas')
|
||
|
|
->where('variable', 'CTRL_AUTO_SELECT')
|
||
|
|
->first();
|
||
|
|
|
||
|
|
if (! $ctrlFormula) {
|
||
|
|
$this->command->warn('CTRL_AUTO_SELECT 수식을 찾을 수 없습니다.');
|
||
|
|
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
$mappings = [
|
||
|
|
// 제어기 자동 선택 - CONTROLLER_TYPE 기반
|
||
|
|
[
|
||
|
|
'formula_id' => $ctrlFormula->id,
|
||
|
|
'source_variable' => 'CONTROLLER_TYPE',
|
||
|
|
'source_value' => '매립형',
|
||
|
|
'result_value' => json_encode([
|
||
|
|
'value' => '매립형 제어기',
|
||
|
|
'item_code' => 'PT-CTRL-EMB',
|
||
|
|
'quantity' => 1,
|
||
|
|
'note' => '매립형 설치',
|
||
|
|
], JSON_UNESCAPED_UNICODE),
|
||
|
|
'result_type' => 'fixed',
|
||
|
|
'sort_order' => 1,
|
||
|
|
],
|
||
|
|
[
|
||
|
|
'formula_id' => $ctrlFormula->id,
|
||
|
|
'source_variable' => 'CONTROLLER_TYPE',
|
||
|
|
'source_value' => '노출형',
|
||
|
|
'result_value' => json_encode([
|
||
|
|
'value' => '노출형 제어기',
|
||
|
|
'item_code' => 'PT-CTRL-EXP',
|
||
|
|
'quantity' => 1,
|
||
|
|
'note' => '노출형 설치',
|
||
|
|
], JSON_UNESCAPED_UNICODE),
|
||
|
|
'result_type' => 'fixed',
|
||
|
|
'sort_order' => 2,
|
||
|
|
],
|
||
|
|
[
|
||
|
|
'formula_id' => $ctrlFormula->id,
|
||
|
|
'source_variable' => 'CONTROLLER_TYPE',
|
||
|
|
'source_value' => '일체형',
|
||
|
|
'result_value' => json_encode([
|
||
|
|
'value' => '일체형 제어기',
|
||
|
|
'item_code' => 'PT-CTRL-INT',
|
||
|
|
'quantity' => 1,
|
||
|
|
'note' => '모터 일체형',
|
||
|
|
], JSON_UNESCAPED_UNICODE),
|
||
|
|
'result_type' => 'fixed',
|
||
|
|
'sort_order' => 3,
|
||
|
|
],
|
||
|
|
];
|
||
|
|
|
||
|
|
foreach ($mappings as $mapping) {
|
||
|
|
DB::table('quote_formula_mappings')->updateOrInsert(
|
||
|
|
[
|
||
|
|
'formula_id' => $mapping['formula_id'],
|
||
|
|
'source_variable' => $mapping['source_variable'],
|
||
|
|
'source_value' => $mapping['source_value'],
|
||
|
|
],
|
||
|
|
array_merge($mapping, [
|
||
|
|
'created_at' => now(),
|
||
|
|
'updated_at' => now(),
|
||
|
|
])
|
||
|
|
);
|
||
|
|
}
|
||
|
|
|
||
|
|
$this->command->info('QuoteFormulaMappingSeeder: 3개 매핑 생성 완료');
|
||
|
|
}
|
||
|
|
}
|