3.3 KiB
cClassTrib applicability gate
Purpose
Stop treating an empty C000025.CCLASSTRIB as a fiscal defect solely because
the global RTC feature is enabled. Keep the single existing fiscal-completeness
result and continue evaluating every other fiscal field normally.
Evidence and selected applicability rule
The SGV database has PARAMETROS.USAR_REFORMA_TRIBUTARIA=1 and RTC-capable
schema, but the inspected PARAMETROS and C000004 schemas have no separate
cClassTrib enable flag. The SGV product screen exposes C000025.CCLASSTRIB as
an editable catalog-backed field; available evidence does not mark it required
for every product. The current code incorrectly promotes global RTC capability
to universal per-product requiredness.
Use the live company regime (C000004.CRT) together with the documented
effective-date gate:
- RTC capability/
USAR_REFORMA_TRIBUTARIAmust still be enabled for RTC evaluation generally. - CRT 3: cClassTrib is applicable from 2026-08-03.
- CRT 1, 2, or 4: cClassTrib is applicable from 2027-01-01.
- Missing, conflicting, or unsupported CRT: cClassTrib is not applicable for completeness until the company context is resolved; never infer a regime.
- Before the applicable date, ignore cClassTrib completely: no blocker, no candidate, no completeness penalty, and no write.
- Once applicable, preserve the existing validation/resolution behavior, including a blocker for an empty value when no safe resolution is available.
This makes current Agent 2 (CRT=1, OPTANTE_SIMPLES=S) not applicable on
2026-09-25 even though USAR_REFORMA_TRIBUTARIA=1. Its current RTC write mode
(DRY_RUN) is not changed.
Minimal implementation boundary
Add the gate to the existing shared fiscal evaluator/context using the already resolved live company CRT and current date. Do not add a new SGV flag, table, panel, or second coverage metric. Keep PIS/COFINS, NCM, resolver rules, RTC write authorization, and Agent write allowlist unchanged. Because the evaluator is executed by the Agent, this is an Agent code change. After test completion, the operator explicitly authorized release 1.2.5 through the official Hub/Agent deploy path and an in-place Agent 2 upgrade that preserves its identity.
The RTC page should present the existing single-panel status as “cClassTrib: Não utilizado neste cliente” while the gate is false.
Verification
Add the requested focused tests: not-applicable with empty cClassTrib (RTC off
and on), unrelated fiscal fields still evaluated, applicable with empty
cClassTrib still blocked, and zero write attempts. Then run a read-only
REPROCESS_ALL against Agent 2 and compare its latest result/snapshot and
blockers with the captured baseline. Preserve RTC_WRITE_MODE=DRY_RUN and
verify Firebird write attempts/successes remain zero. Report NCM/PIS/COFINS
blockers independently.
Baseline captured before implementation
Agent 2 latest Hub snapshot/job: total 521, complete 0, safe-blocked 521,
failed 0, unclassified 0, coverage 0%; RTC blockers 521; PIS blocker products
1; COFINS blocker products 1; NCM blocker products 26 (29 open blocker rows).
The offline read-only Firebird discovery saw USAR_REFORMA_TRIBUTARIA=1,
SISTEMA_TODO_FISCAL=0, C000004.CRT=1, and
C000004.OPTANTE_SIMPLES='S'; its guarded query recorded zero write attempts
and zero successes.