feat: 1200%룰 이연 분급 도래월 지급(PayInstallmentStep) + 코드베이스 신입교육 주석
PayInstallmentStep(Step 4.5): 1200%룰로 이연된 분급(installment_plan SCHEDULED)을 도래월(settle_month=정산월)에 recruit_ledger로 편입해 실제 지급. 이전엔 이연만 되고 도래월 지급 절차가 없어 차액이 영구 미지급되던 갭을 메움. - BatchConfig job flow에 step4b(calcRecruit→payInstallment→calcMaintain) 등록 - InstallmentPlanMapper.resetPaidToScheduledByMonth(+XML)로 재실행 멱등 (진입 시 PAID→SCHEDULED 역산, Step4 deleteBySettleMonth가 원장 정리) - RecruitLedgerMapper insert에 reconcile_status 컬럼, SettlementContext.installmentPaidCount - 단위테스트 3건(정상지급/멱등/계약미존재) GREEN 신입교육 주석: 컨트롤러/서비스/공통/프론트 전반에 도메인·코드 설명 주석 추가 (동작 변경 없음 — 빌드/테스트/타입체크 전부 GREEN으로 무회귀 확인). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -15,9 +15,14 @@ import { contractApi, ContractResp, ContractSaveReq, ContractSearchParam } from
|
||||
import { productApi } from '@/api/product';
|
||||
import { agentApi } from '@/api/agent';
|
||||
|
||||
/**
|
||||
* 계약 관리 화면.
|
||||
* API: contractApi.list/create, 등록 모달용 productApi.list / agentApi.list
|
||||
* 보험종류/계약상태/납입주기/판매채널은 공통코드로 불러와 CodeBadge·CodeSelect 에 사용한다.
|
||||
*/
|
||||
export default function ContractList() {
|
||||
const actionRef = useRef<ActionType>();
|
||||
const [open, setOpen] = useState(false);
|
||||
const [open, setOpen] = useState(false); // 계약 등록 모달 열림 여부
|
||||
const { data: insuranceCodes = [] } = useCommonCodes('INSURANCE_TYPE');
|
||||
const { data: statusCodes = [] } = useCommonCodes('CONTRACT_STATUS');
|
||||
const { data: payCycleCodes = [] } = useCommonCodes('PAY_CYCLE');
|
||||
@@ -35,6 +40,7 @@ export default function ContractList() {
|
||||
enabled: open,
|
||||
});
|
||||
|
||||
// 계약 등록 제출 — 날짜를 문자열로 변환 후 생성 API 호출, 성공 시 목록 새로고침
|
||||
const onSubmit = async (v: any) => {
|
||||
const req: ContractSaveReq = {
|
||||
...v,
|
||||
|
||||
Reference in New Issue
Block a user