feat:입출금내역 취급점 열 추가 및 상대계좌예금주명 직접입력

- 취급점(수단) 열 추가 (바로빌 transOffice 필드)
- 상대계좌예금주명 직접 입력 가능하도록 input 필드로 변경
- 저장된 상대계좌예금주명 값 로드 시 병합
- 엑셀 내보내기에 취급점 열 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
pro
2026-01-23 12:20:07 +09:00
parent 44da9d6595
commit f05ab4413a
2 changed files with 33 additions and 5 deletions

View File

@@ -442,7 +442,8 @@ private function parseTransactionLogs($resultData, string $defaultBankName = '',
'balance' => $balance,
'balanceFormatted' => number_format($balance),
'summary' => $fullSummary,
'cast' => $log->AccountName ?? $log->Cast ?? '',
// 저장된 상대계좌예금주명 우선 사용 (직접 입력 가능)
'cast' => $savedItem?->cast ?? '',
'memo' => $log->Memo ?? '',
'transOffice' => $log->TransOffice ?? '',
// 저장된 계정과목 정보 병합
@@ -709,6 +710,7 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse
'입금',
'출금',
'잔액',
'취급점',
'상대계좌예금주명',
'계정과목코드',
'계정과목명'
@@ -736,6 +738,7 @@ public function exportExcel(Request $request): StreamedResponse|JsonResponse
$trans->deposit,
$trans->withdraw,
$trans->balance,
$trans->trans_office,
$trans->cast,
$trans->account_code,
$trans->account_name

View File

@@ -180,6 +180,7 @@ className="w-full px-2 py-1 text-xs border border-stone-200 rounded focus:ring-2
totalCount,
accountCodes,
onAccountCodeChange,
onCastChange,
onSave,
onExport,
saving,
@@ -285,14 +286,15 @@ className="flex items-center gap-2 px-4 py-2 bg-blue-100 text-blue-700 rounded-l
<th className="px-4 py-4 text-right bg-stone-50 text-blue-600">입금</th>
<th className="px-4 py-4 text-right bg-stone-50 text-red-600">출금</th>
<th className="px-4 py-4 text-right bg-stone-50">잔액</th>
<th className="px-4 py-4 bg-stone-50">상대계좌예금주명</th>
<th className="px-4 py-4 bg-stone-50">취급점</th>
<th className="px-4 py-4 bg-stone-50 min-w-[120px]">상대계좌예금주명</th>
<th className="px-4 py-4 bg-stone-50 min-w-[150px]">계정과목</th>
</tr>
</thead>
<tbody className="divide-y divide-stone-100">
{logs.length === 0 ? (
<tr>
<td colSpan="8" className="px-6 py-8 text-center text-stone-400">
<td colSpan="9" className="px-6 py-8 text-center text-stone-400">
해당 기간에 조회된 입출금 내역이 없습니다.
</td>
</tr>
@@ -321,8 +323,17 @@ className="flex items-center gap-2 px-4 py-2 bg-blue-100 text-blue-700 rounded-l
<td className="px-4 py-3 text-right text-stone-700">
{log.balanceFormatted}
</td>
<td className="px-4 py-3 text-stone-500">
{log.cast || '-'}
<td className="px-4 py-3 text-stone-500 text-sm">
{log.transOffice || '-'}
</td>
<td className="px-4 py-3">
<input
type="text"
className="w-full px-2 py-1 text-sm border border-stone-200 rounded focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none"
value={log.cast || ''}
onChange={(e) => onCastChange(index, e.target.value)}
placeholder="예금주명 입력"
/>
</td>
<td className="px-4 py-3">
<AccountCodeSelect
@@ -446,6 +457,19 @@ className="flex items-center gap-2 px-4 py-2 bg-blue-100 text-blue-700 rounded-l
setHasChanges(true);
}, []);
// 상대계좌예금주명 변경 핸들러
const handleCastChange = useCallback((index, value) => {
setLogs(prevLogs => {
const newLogs = [...prevLogs];
newLogs[index] = {
...newLogs[index],
cast: value
};
return newLogs;
});
setHasChanges(true);
}, []);
// 저장 핸들러
const handleSave = async () => {
if (logs.length === 0) return;
@@ -606,6 +630,7 @@ className="flex items-center gap-2 px-4 py-2 bg-blue-100 text-blue-700 rounded-l
totalCount={summary.count || logs.length}
accountCodes={accountCodes}
onAccountCodeChange={handleAccountCodeChange}
onCastChange={handleCastChange}
onSave={handleSave}
onExport={handleExport}
saving={saving}