Saran pengguna
fitur kurang bayar
Ikuti perkembangan laporan dan penjelasan penyelesaiannya di halaman ini.
Selesai1 pengikut
Penjelasan perbaikan
feat(payments): support partial and repeated RKUD transfers
## Changes
RKUD recording previously required the full bill and marked it paid after one transfer. Admins can now record a smaller amount, keep each transfer separately, and record another transfer. For a Rp100,000 bill, an RKUD payment of Rp99,950 leaves Rp50 payable through QRIS or another available method.
The payment pages show the remaining balance and provide explicit transfer history for editing or cancelling one manual transfer. Taxpayer submissions can also record partial amounts after reconciliation. Grouped bills remain payable until every member is settled, including when a pending RKUD submission covers only a remaining member.
Bank callbacks and status refreshes allocate actual receipts to remaining balances, preserve excess credit, and avoid counting a QRIS invoice or VA receipt twice. VA cumulative receipts are scoped to their billing issuance. Public lookup keeps reconciliation and sender details private.
Closes #1516
## Release impact
Minor. This extends the payment workflow with partial and repeated RKUD transfers.
## Migration notes
Production migration `0195_rkud_partial_transfers` is a reviewed manual contract rollout; development uses `0178_rkud_partial_transfers`. Retire every old RKUD web, worker, direct and rollback writer before applying the exact prepared release under the deployment and database migration locks. Old update/cancel predicates cannot safely handle repeated active transfers. No automatic migration approval is added.
Schema DDL and ledger recording stay atomic under the existing 2-second lock and 15-second statement limits. Legacy payment linkage runs separately in bounded, resumable batches of at most 500 transfer IDs. The checkpoint binds release, migration SQL, batch SQL and target database identity; verification rechecks captured bounds and remaining provable links before matching code is activated. Ambiguous legacy transfers remain unlinked and require reconciliation before edit/cancel. Recovery after contract commit requires compatible code with old writers kept retired.
Production-scale FK/index/backfill timing, writer retirement and activation/recovery require a separately authorized cutover. The published `0194_admin_decision_notifications` migration precedes the RKUD `0195` contract. Prepare fresh reports and backfill checkpoints for this combined release; artifacts from the previous RKUD `0194` draft cannot be reused. Cancel an active VA or wait for an active QRIS to expire before changing RKUD records; fresh instruments use the remaining balance.
## Validation
- Migration compatibility gate passes against production commit `2dc594aa069fd32e15f15f8fa72c3ae4902ed714`. Published production history is unchanged; the new snapshot preserves all 491 tables and changes only RKUD. Production/development migration fixtures and typed backfill metadata queries pass in synthetic PGlite.
- All 18 RKUD store regressions pass, including repeated partial transfers, grouped payments, decision notification deduplication, and atomic rollback of payments and notifications.
- Targeted TypeScript and ESLint checks pass. Changed-source React Doctor passes with no findings or incomplete checks. Graph contracts pass, and the Drizzle query policy reports zero violations with ten documented operational SQL exceptions.
- Production cutover, writer retirement, CLI checkpoint recovery and production-scale timing remain unexecuted. Full production build and workflow checks run in CI.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
* **New Features**
* Added support for partial and repeated payments by bank transfer, QRIS, and virtual account, with payments allocated across combined payment codes.
* Payment pages now show amounts paid and remaining, let you enter a transfer amount up to the outstanding balance, and display transfer history with management options.
* Updated payment guidance to explain how partial payments and admin approval affect the remaining balance.
* **Bug Fixes**
* Public payment summaries now reflect outstanding balances and show a settlement date only when all bills in a combined code are paid.
* Payment-method requests are blocked during RKUD review or when the requested amount no longer matches the current balance.
* Payment status and recorded amounts now update consistently for partial, combined, and repeated gateway payments.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Penjelasan laporan
Halaman terkait /dasbor/akun
Fitur kurang bayar diperlukan untuk wajib pajak yang terpaksa menggunakan kodrek RKUD dengan alasan Fitur pembayaran Sapada mengalami gagal bayar, dengan adanya wp tersebut membayar lewat rkud terkadang terjadi kesalahan jumlah nominal atau kurang bayar. yang nominal kurang bayarnya tersebut kurang daari 1000 rupiah, yang tidak bisa dilakukan oleh tf biasa, oleh karena itu harus ada fitur kurang bayar yang bisa mengakomodir pembayaran kekuran tersebut, dengan memakai Qris
- Kategori
- Lainnya
- Dampak
- Ringan
- Frekuensi
- Sekali