1.9 KiB
1.9 KiB
Company-channel early generation and period completeness state
Metadata
- Date: 2026-07-31
- Scope:
arr_web/company_jobs.py,arr_web/static/app.js,arr_web/static/index.html,arr_web/static/styles.css,tests/test_arr_web_company_reports.py,tests/test_arr_web.py - Change type: generation eligibility, period-state copy and confirmation guidance
- Business-data mutation: none
Behavior facts
- A current-month C/O period can be submitted before its calendar completion boundary. The backend still derives the
same fixed
as_of_date: the 10th for01-10, the 20th for11-20and natural month-end for21-month-end. - The report processor continues to read the current committed Finance snapshot through that cutoff. A later source commit is not retroactively inserted into an existing workbook; the user can generate the same period again.
- Historical months remain rerunnable. Future report months are rejected by the backend and disabled in the frontend to avoid creating an empty future-month workbook.
- The right-side period state now says
周期未结束or周期已结束. The state describes calendar completeness in the Bangkok timezone and no longer controls whether a valid current/historical period can be generated. - An incomplete-period confirmation explicitly says the workbook uses current stored data and may need a later rerun.
period_release_atremains as a compatibility alias for callers/tests; the implementation-facing name isperiod_complete_at.
Verification
node --check arr_web/static/app.js: passed.- Python compilation for the changed backend/tests: passed.
- HTML parser check: passed.
- Focused suite:
28 tests,OK(tests.test_arr_web,tests.test_arr_web_company_reports). - Project virtual-environment full discovery:
348 tests,OK (skipped=10). - No real report generation, upload, database write or business-data mutation was performed.