feat: [receiving] 원자재로트번호 채번규칙 연동
- NumberingService(material_receipt) 우선 호출 - 채번규칙 없으면 레거시 로직(YYMMDD-NN) 폴백 - QuoteNumberService, OrderService와 동일 패턴
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user