feat:테넌트설정 API 및 다수 서비스 개선

- TenantSetting CRUD API 추가
- Calendar, Entertainment, VAT 서비스 개선
- 5130 BOM 계산 로직 수정
- quote_items에 item_type 컬럼 추가
- tenant_settings 테이블 마이그레이션
- Swagger 문서 업데이트
This commit is contained in:
2026-01-26 20:29:22 +09:00
parent f2da990771
commit 6d05ab815f
54 changed files with 2090 additions and 110 deletions

View File

@@ -145,7 +145,7 @@ private function loadBomTemplates(int $tenantId): bool
$bom = json_decode($sourceItem->bom, true);
if (is_array($bom) && count($bom) > 0) {
$this->bomTemplates[$category] = $sourceItem->bom;
$this->info("{$category}: {$sourceCode} 템플릿 로드됨 (" . count($bom) . "개 항목)");
$this->info("{$category}: {$sourceCode} 템플릿 로드됨 (".count($bom).'개 항목)');
} else {
$this->warn(" ⚠️ {$category}: {$sourceCode} BOM이 비어있음");
}
@@ -227,9 +227,9 @@ private function applyBomToItem(object $item, bool $dryRun): string
return 'success';
} catch (\Exception $e) {
$this->error(" ❌ [{$item->code}] 오류: " . $e->getMessage());
$this->error(" ❌ [{$item->code}] 오류: ".$e->getMessage());
return 'failed';
}
}
}
}

View File

@@ -44,7 +44,7 @@ public function handle(FormulaEvaluatorService $formulaEvaluator): int
$finishedGoodsCode = $this->option('finished-goods');
$verboseMode = $this->option('verbose-mode');
$this->info("📥 입력 파라미터:");
$this->info('📥 입력 파라미터:');
$this->table(
['항목', '값'],
[
@@ -87,7 +87,7 @@ public function handle(FormulaEvaluatorService $formulaEvaluator): int
);
if (! $samResult['success']) {
$this->error("SAM 계산 실패: " . ($samResult['error'] ?? '알 수 없는 오류'));
$this->error('SAM 계산 실패: '.($samResult['error'] ?? '알 수 없는 오류'));
return Command::FAILURE;
}
@@ -214,4 +214,4 @@ private function calculateSamVariables(float $W0, float $H0, string $productType
'K' => $K,
];
}
}
}