- 구분 드롭다운의 '상환/납부'가 신규 등록에서만 보이던 제약(v-if="!editId") 제거 - 수정 중 상환/납부로 전환 시: 상환 2건(원금=이체, 이자=지출) 생성 후 원본 1건 삭제 — 생성 성공 후 삭제 순서로 중간 실패 시 원본 보존 - openEdit에서 principal/interest 초기화(이전 값 잔존 방지) - 잘못 입력한 단순 이체/지출을 원금·이자 분리 상환으로 정정 가능 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -387,6 +387,8 @@ function openEdit(e) {
|
|||||||
walletId: e.walletId || '',
|
walletId: e.walletId || '',
|
||||||
toWalletKind: walletKindOf(e.toWalletId),
|
toWalletKind: walletKindOf(e.toWalletId),
|
||||||
toWalletId: e.toWalletId || '',
|
toWalletId: e.toWalletId || '',
|
||||||
|
principal: null,
|
||||||
|
interest: null,
|
||||||
installmentMonths: e.installmentMonths || '',
|
installmentMonths: e.installmentMonths || '',
|
||||||
})
|
})
|
||||||
// 태그 이름 → id 매핑 (현재 태그 목록 기준)
|
// 태그 이름 → id 매핑 (현재 태그 목록 기준)
|
||||||
@@ -422,6 +424,8 @@ async function submit() {
|
|||||||
}
|
}
|
||||||
submitting.value = true
|
submitting.value = true
|
||||||
try {
|
try {
|
||||||
|
// 상환은 원금=이체 / 이자=지출 2건으로 저장된다. 수정 시에는 기존 1건을
|
||||||
|
// 상환 2건으로 다시 만든다(상환 생성 성공 후 원본 삭제 — 중간 실패 시 원본 보존).
|
||||||
await accountApi.repayment({
|
await accountApi.repayment({
|
||||||
entryDate: form.entryDate,
|
entryDate: form.entryDate,
|
||||||
fromWalletId: form.walletId,
|
fromWalletId: form.walletId,
|
||||||
@@ -430,6 +434,9 @@ async function submit() {
|
|||||||
interest,
|
interest,
|
||||||
memo: form.memo || null,
|
memo: form.memo || null,
|
||||||
})
|
})
|
||||||
|
if (editId.value) {
|
||||||
|
await accountApi.remove(editId.value)
|
||||||
|
}
|
||||||
formOpen.value = false
|
formOpen.value = false
|
||||||
await load()
|
await load()
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@@ -655,7 +662,7 @@ onMounted(async () => {
|
|||||||
<option value="EXPENSE">지출</option>
|
<option value="EXPENSE">지출</option>
|
||||||
<option value="INCOME">수입</option>
|
<option value="INCOME">수입</option>
|
||||||
<option value="TRANSFER">이체</option>
|
<option value="TRANSFER">이체</option>
|
||||||
<option v-if="!editId" value="REPAYMENT">상환/납부</option>
|
<option value="REPAYMENT">상환/납부</option>
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
<!-- 계좌 종류 먼저 선택(라디오) → 해당 종류만 셀렉트에 -->
|
<!-- 계좌 종류 먼저 선택(라디오) → 해당 종류만 셀렉트에 -->
|
||||||
|
|||||||
Reference in New Issue
Block a user