Files
GTI_GERENCIADOR_FISCAL/fiscal/docs/testesoficiais_fiscal_rtc_discovery.md
T
gti d21a9d1140 Add 'fiscal/' from commit '102ba84500dbd9655a0471288c3e278652593ca9'
git-subtree-dir: fiscal
git-subtree-mainline: d95165fc8f
git-subtree-split: 102ba84500
2026-09-29 14:43:23 -03:00

5.8 KiB
Raw Blame History

TESTESOFICIAIS.FDB — discovery fiscal / RTC / PIS-COFINS

Somente leitura, somente TESTESOFICIAIS.FDB (Firebird 2.5, WI-V6.3.9.27139, ODS 11.2; 325 tabelas, 5.390 colunas). Isolamento READ COMMITTED READ ONLY; toda instrução passa por um guarda que só deixa SELECT chegar ao driver. WRITE_ATTEMPTS=0, WRITE_SUCCESSES=0. Script: scripts/discover_testesoficiais_fiscal.py (sem credenciais no código; lê FB_USER/FB_PASSWORD do ambiente ou do .env local).

Nada aqui infere cClassTrib pelo NCM nem CST IBS/CBS pelo CST de ICMS. O NCM do produto está em C000025.CLASSIFICACAO_FISCAL (a coluna NCM existe, mas está 100% vazia).

C000025 (produtos, 521 linhas)

Pergunta Resposta Coluna real
cClassTrib no produto SIM (schema), sem uso CCLASSTRIB VARCHAR(6), nulo, sem default — 0 preenchidos
CST IBS/CBS no produto NÃO — (só existe CSTIBSCBS nas tabelas auxiliares RTC_*)
Campos IBS no produto NÃO —
Campos CBS no produto NÃO —
Crédito presumido (cCredPres) no produto NÃO — (só indicadores IND_CREDPRES_* nos catálogos RTC_*)

PIS / COFINS no produto (tudo em C000025, todas VARCHAR e anuláveis)

Item Existe Coluna Preenchidos / 521
CST PIS entrada sim COD_ENTRADA_PIS VARCHAR(3) 2
CST PIS saída sim COD_SAIDA_PIS VARCHAR(3) 3
Alíquota PIS sim (texto) ALIQ_PIS VARCHAR(8) 3 (2 não vazios)
CST COFINS entrada sim COD_ENTRADA_COFINS VARCHAR(3) 2
CST COFINS saída sim COD_SAIDA_COFINS VARCHAR(3) 3
Alíquota COFINS sim (texto) ALIQ_COFINS VARCHAR(8) 3 (2 não vazios)
Flag/incidência sim PISCOFINS VARCHAR(1) (N=519, S=2); INCIDENCIA_PISCOFINS VARCHAR(30) (NENHUMA=519, MONOFÁSICA=1, SUBST.TRIBUTÁRIA=1) 521

Os 3 produtos com dado: (saída 04, monofásica), (entrada/saída 73/01, alíquotas 0,65/3, subst. tributária) e um com o valor 2 em todos os campos (aparenta dado de teste). Ou seja: suporte no schema, uso real quase nulo neste banco.

Outras colunas fiscais do produto (contexto, não RTC): CST (ICMS, 5 valores, 487× 040), CSOSN, CFOP (5102 em 493), CFOP_ENTRADA/CST_ENTRADA (vazios), CEST, ALIQUOTA, IPI, CST_IPI, GRUPO_ICMS, SITUACAO_TRIBUTARIA, COD_ORIGEM_MERCADORIA, ORIGEM, EX_TIPI, NCM (vazia), CLASSIFICACAO_FISCAL (NCM, 54 distintos).

Onde está o RTC

  • RTC_CCLASSTRIB (145 linhas, catálogo): CCLASSTRIB CHAR(6), CSTIBSCBS CHAR(3), DESCRICAO_CLASSTRIB, TIPO_ALIQUOTA, PRED_IBS, PRED_CBS, IND_TRIB_REGULAR, IND_CREDPRES_OPER, IND_ESTORNO_CRED, indicadores de monofasia, IND_NFE/NFCE/CTE/... (documentos aplicáveis), PUBLICACAO, INICIO_VIGENCIA (2025-05-05 a 2025-11-19), FIM_VIGENCIA, ANEXO, LINK. Cada cClassTrib aponta um CST IBS/CBS (18 distintos).
  • RTC_CST (18 linhas, catálogo): CSTIBSCBS CHAR(3), DESCRICAO_CST, IND_IBSCBS, IND_REDBC, IND_REDALIQ, IND_TRANSFCRED, IND_DIF, IND_AJUSTE_COMPET, IND_IBSCBS_MONO, IND_CREDPRES_IBSZFM, vigência.
  • PARAMETROS.USAR_REFORMA_TRIBUTARIA = 0 (recurso desligado neste banco).
  • Nenhuma procedure ou trigger de usuário referencia RTC/CLASSTRIB.
  • Nenhuma tabela de documento (C000062, C000032, C000088, NFCE_ITENS…) tem CCLASSTRIB/CSTIBSCBS/IBS/CBS. Só C000025.CCLASSTRIB e as duas tabelas de catálogo têm essas colunas.
  • Integridade: 0 produtos com CCLASSTRIB preenchido, portanto 0 referências ao catálogo.

Semântica (por tabela)

Classe Campos
PRODUCT_DEFAULT C000025.CCLASSTRIB, COD_ENTRADA_PIS, COD_SAIDA_PIS, ALIQ_PIS, COD_ENTRADA_COFINS, COD_SAIDA_COFINS, ALIQ_COFINS, PISCOFINS, INCIDENCIA_PISCOFINS; C000026 (composição de custo/preço por produto, 3 linhas) com PIS, COFINS, PIS_ENTRADA, COFINS_ENTRADA e variantes _P
DOCUMENT_ITEM_FIELD C000062 (itens de nota de saída: COD_ENTRADA/SAIDA_PIS/COFINS, PIS_ALIQUOTA/BASE/VALOR, COFINS_*); C000032 (itens de venda: PIS, COFINS); C000088 (itens de entrada: PIS, PIS_BASE, COFINS, COFINS_BASE); C000087/C000061 (cabeçalhos: PIS, COFINS, ITEM_PIS_*); NFCE_ITENS (CST_PIS_COFINS, ALIQUOTA_PIS/COFINS, BASE_CALCULO_*, VALOR_*); MOVIMENTACAO_COMBUSTIVEL
COMPANY_CONFIG PARAMETROS.USAR_REFORMA_TRIBUTARIA; C000004.PIS/COFINS (vazios)
AUXILIARY_CONFIG RTC_CCLASSTRIB, RTC_CST (catálogos oficiais); C000084A/B (ALIQUOTA_PIS/COFINS + VALIDADE_*, vazias); CODIGO_PISCONFINS nas tabelas SINTEGRA_*, C000080, C000086 (vazias)
UNKNOWN C000025.FOOD_ATRIBUICAO_VALORES; C000026.CONTRIBUICAO_SOCIAL*

Uso real em documentos (só para separar SCHEMA_SUPPORT de ACTUAL_USAGE): NFCE_ITENS.CST_PIS_COFINS tem valor em 4.668 de 34.946 itens (01 em 3.336, branco em 1.332); C000062.COD_SAIDA_PIS tem 20 em 7 de 693 e PIS_ALIQUOTA/COFINS_ALIQUOTA em 693 (2 valores distintos).

Conclusão

  • TESTESOFICIAIS_RTC_STATUS: suporte parcial ao RTC. O produto tem CCLASSTRIB (vazio) e o banco traz os catálogos RTC_CCLASSTRIB/RTC_CST; não há CST IBS/CBS, IBS, CBS nem cCredPres no produto, nem nenhum campo RTC em tabelas de documento. Recurso desligado (USAR_REFORMA_TRIBUTARIA=0).
  • TESTESOFICIAIS_PIS_COFINS_STATUS: schema completo no produto (CST entrada/saída e alíquota para PIS e COFINS), uso mínimo (2–3 de 521 produtos).
  • Próximo passo recomendado: tratar C000025.CCLASSTRIB como campo de produto a ser lido (read-only) e validado contra RTC_CCLASSTRIB (existência e vigência), derivando o CST IBS/CBS do catálogo, a partir do cClassTrib informado, nunca de NCM ou CST de ICMS; e, para PIS/COFINS, tratar o produto como preenchimento esparso (a maioria dos 521 produtos depende de regra ou de evidência externa, não do cadastro).