fix:전표번호 채번 시 soft-deleted 포함 (withTrashed) + store 에러 핸들링
This commit is contained in:
@@ -161,45 +161,52 @@ public function store(Request $request): JsonResponse
|
||||
], 422);
|
||||
}
|
||||
|
||||
$entry = DB::transaction(function () use ($tenantId, $request, $lines, $totalDebit, $totalCredit) {
|
||||
$entryNo = JournalEntry::generateEntryNo($tenantId, $request->entry_date);
|
||||
try {
|
||||
$entry = DB::transaction(function () use ($tenantId, $request, $lines, $totalDebit, $totalCredit) {
|
||||
$entryNo = JournalEntry::generateEntryNo($tenantId, $request->entry_date);
|
||||
|
||||
$entry = JournalEntry::create([
|
||||
'tenant_id' => $tenantId,
|
||||
'entry_no' => $entryNo,
|
||||
'entry_date' => $request->entry_date,
|
||||
'description' => $request->description,
|
||||
'total_debit' => $totalDebit,
|
||||
'total_credit' => $totalCredit,
|
||||
'status' => 'draft',
|
||||
'created_by_name' => auth()->user()?->name ?? '시스템',
|
||||
'attachment_note' => $request->attachment_note,
|
||||
]);
|
||||
|
||||
foreach ($lines as $i => $line) {
|
||||
JournalEntryLine::create([
|
||||
$entry = JournalEntry::create([
|
||||
'tenant_id' => $tenantId,
|
||||
'journal_entry_id' => $entry->id,
|
||||
'line_no' => $i + 1,
|
||||
'dc_type' => $line['dc_type'],
|
||||
'account_code' => $line['account_code'],
|
||||
'account_name' => $line['account_name'],
|
||||
'trading_partner_id' => $line['trading_partner_id'] ?? null,
|
||||
'trading_partner_name' => $line['trading_partner_name'] ?? null,
|
||||
'debit_amount' => $line['debit_amount'],
|
||||
'credit_amount' => $line['credit_amount'],
|
||||
'description' => $line['description'] ?? null,
|
||||
'entry_no' => $entryNo,
|
||||
'entry_date' => $request->entry_date,
|
||||
'description' => $request->description,
|
||||
'total_debit' => $totalDebit,
|
||||
'total_credit' => $totalCredit,
|
||||
'status' => 'draft',
|
||||
'created_by_name' => auth()->user()?->name ?? '시스템',
|
||||
'attachment_note' => $request->attachment_note,
|
||||
]);
|
||||
}
|
||||
|
||||
return $entry;
|
||||
});
|
||||
foreach ($lines as $i => $line) {
|
||||
JournalEntryLine::create([
|
||||
'tenant_id' => $tenantId,
|
||||
'journal_entry_id' => $entry->id,
|
||||
'line_no' => $i + 1,
|
||||
'dc_type' => $line['dc_type'],
|
||||
'account_code' => $line['account_code'],
|
||||
'account_name' => $line['account_name'],
|
||||
'trading_partner_id' => $line['trading_partner_id'] ?? null,
|
||||
'trading_partner_name' => $line['trading_partner_name'] ?? null,
|
||||
'debit_amount' => $line['debit_amount'],
|
||||
'credit_amount' => $line['credit_amount'],
|
||||
'description' => $line['description'] ?? null,
|
||||
]);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => '전표가 저장되었습니다.',
|
||||
'data' => ['id' => $entry->id, 'entry_no' => $entry->entry_no],
|
||||
]);
|
||||
return $entry;
|
||||
});
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => '전표가 저장되었습니다.',
|
||||
'data' => ['id' => $entry->id, 'entry_no' => $entry->entry_no],
|
||||
]);
|
||||
} catch (\Throwable $e) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => '전표 저장 실패: ' . $e->getMessage(),
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user