선수금을 비율 또는 금액으로 — 하나를 적으면 다른 쪽은 잠긴다 - #289
Merged
Merged
Conversation
영업은 「30%」로 말할 때도 있고 「1,500만원」으로 말할 때도 있다. 비율만 받으면 나머지는 사람이 계산기를 두드려야 하고, 그러면 어긋난다. **입력** — 비율·금액 두 칸이 다 보이되 **먼저 적은 쪽이 기준**이 된다. 다른 칸은 잠기고 계산된 값이 채워져 보인다(얼마인지 알아야 고객에게 말한다). 기준을 바꾸려면 적어 둔 칸을 비우면 둘 다 다시 열린다. 몫을 넘는 금액은 **화면에 적힌 숫자까지 함께** 눌러 준다 — 보이는 것과 저장되는 것이 다르면 안 된다. **견적서** — 고객 정보에 두 줄로 적는다. 선수금 (비율) 33% 선수금 (금액) 16,519,305 원 비율은 **절삭한 선수금에서 되돌려 구한 값**이라 옆 금액과 반드시 맞는다. 저장된 비율을 그대로 적으면 금액으로 정한 견적에서 「30% / 1,200만원」처럼 안 맞는 두 줄이 나간다. 반올림이 아니라 **버림**이다 — 29.6%를 30%로 적으면 금액과 대조하는 사람이 「30%인데 왜 이 금액이냐」고 묻게 된다. **합계 일치** — 선수금을 **원 단위로 내리고** 할부원금은 빼서 구한다. 그래서 «선수금 + 할부원금 = 나눠 가질 몫» 이 언제나 성립한다. 예전엔 소수점째로 두고 표시할 때만 반올림해 1원이 어긋날 수 있었다.⚠️ 실구매가는 바뀌지 않는다 — 선수금은 낼 시점이 갈릴 뿐 총액이 아니다(회귀 검증 통과).⚠️ `down_payment_amount: null` 은 「0원」이 아니라 **「금액 기준을 풀고 비율로 되돌린다」**다. `!== undefined` 로 보면 선수금이 0원이 되어, 비율을 30%로 되돌렸는데 0원이 찍힌다. Closes #288
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #288
입력
두 칸이 다 보이되 먼저 적은 쪽이 기준이 되고 다른 쪽은 잠긴다. 잠긴 칸은 비어 있지 않고 계산된 값이 채워져 보인다 — 얼마인지 알아야 고객에게 말할 수 있다. 기준을 바꾸려면 적어 둔 칸을 비우면 둘 다 다시 열린다.
실제 컴포넌트를 브라우저에 띄워 눌러 본 결과 (몫 = 50,058,500원):
3015,017,550{rate:0.3}333316,519,305{rate:0.33}{rate:0}12,345,6782412,345,678{rate:0.2466…, amount:12345678}10050,058,500{amount:50058500}마지막 줄 — 몫을 넘는 금액은 화면에 적힌 숫자까지 함께 눌러 준다. 처음엔 저장만 눌리고 칸에는 친 그대로 남아 보이는 것과 저장되는 것이 달랐다.
견적서
비율은 절삭한 선수금에서 되돌려 구한 값이라 옆 금액과 반드시 맞는다. 버림이다 — 29.6%를 30%로 적으면 금액과 대조하는 사람이 「30%인데 왜 이 금액이냐」고 묻는다.
실제 렌더 확인:
합계 일치
선수금을 원 단위로 내리고 할부원금은 빼서 구한다 → 언제나 맞는다. 나누어떨어지지 않는 비율 8종(3·7·13·29·31·37·63·77%)으로 검증했다.
실구매가는 그대로다 — 회귀 픽스처(범석환 ₩46,471,818) 포함 shared 247개 전부 통과.
null함정down_payment_amount: null은 「0원」이 아니라 **「금액 기준을 풀고 비율로 되돌린다」**다.!== undefined로 보면 그null이 금액 0원으로 읽혀, 비율을 30%로 되돌렸는데 견적서에 0원이 찍힌다.!= null로 막고 테스트로 못박았다.회귀 가드
shared 19개. 셋을 되살려 실제로 깨지는 것까지 확인했다:
null을 0원으로 읽기기존 실패 9건은 이 브랜치와 무관.