feat: [receiving] 원자재로트번호 채번규칙 연동

- NumberingService(material_receipt) 우선 호출
- 채번규칙 없으면 레거시 로직(YYMMDD-NN) 폴백
- QuoteNumberService, OrderService와 동일 패턴
This commit is contained in:
김보곤
2026-03-17 20:21:27 +09:00
parent ecfe389420
commit ba8fc0834c

View File

@@ -428,13 +428,31 @@ private function generateReceivingNumber(int $tenantId): string
/**
* LOT번호 자동 생성
*
* 5130 레거시 차용: YYMMDD-NN (일별 시퀀스, 01부터 시작)
* 개선: 파일 기반 → DB 기반 (테넌트별 격리, 동시성 안전)
* 채번규칙이 있으면 NumberingService 사용, 없으면 레거시 로직 (YYMMDD-NN)
*/
private function generateLotNo(): string
{
$numberingService = app(NumberingService::class);
$numberingService->setContext($this->tenantId(), $this->apiUserId());
$number = $numberingService->generate('material_receipt');
if ($number !== null) {
return $number;
}
return $this->generateLotNoLegacy();
}
/**
* LOT번호 레거시 생성
*
* 5130 레거시 차용: YYMMDD-NN (일별 시퀀스, 01부터 시작)
*/
private function generateLotNoLegacy(): string
{
$tenantId = $this->tenantId();
$prefix = now()->format('ymd'); // 예: 260317
$prefix = now()->format('ymd');
$lastReceiving = Receiving::query()
->where('tenant_id', $tenantId)