Pular para o conteúdo principal

VIEW_RFC030 — View

VIEW_RFC030 (Stored Procedure)​

Chamada​

SELECT DS_MES, VL_TOTAL, VL_INADIMPLENTE, PC_INADIMPLENCIA, VL_RECEBIDO
FROM VIEW_RFC030('WHERE CONTAS.ST_CONTAS IN (''T'', ''P'', ''L'')
AND CONTAS.CD_EMPRESA = 2
AND CONTAS.DT_VENCIMENTO >= ''08/01/2025''
AND CONTAS.DT_VENCIMENTO <= ''01/31/2026''
AND TIPOCONTA.TP_TIPOCONTA IN (''CR'', ''AF'', ''HR'', ''PR'', ''CT'')')

Parametro de Entrada​

  • DS_WHERE (VARCHAR(500)): clausula WHERE como string. DEVE comecar com a palavra WHERE. Internamente a procedure ja faz JOIN com CONTAS e TIPOCONTA — referenciar essas tabelas SEM alias (usar CONTAS.coluna, TIPOCONTA.coluna). Strings internas usam aspas duplas escapadas (''valor'').

Colunas de Saida​

  • DS_MES (VARCHAR(60)): nome do mes por extenso + ano (ex: "Janeiro de 2026")
  • VL_TOTAL (NUMERIC(15,2)): SUM(VL_DOCUMENTO) — total faturado no mes
  • VL_INADIMPLENTE (NUMERIC(15,2)): SUM(VL_SALDO) — saldo pendente (nao pago)
  • VL_RECEBIDO (NUMERIC(15,2)): VL_TOTAL - VL_INADIMPLENTE
  • PC_INADIMPLENCIA (NUMERIC(15,2)): (VL_INADIMPLENTE / VL_TOTAL) * 100

Logica Interna​

A procedure agrupa CONTAS por mes/ano de DT_VENCIMENTO. Para cada mes:

  • VL_INADIMPLENTE = soma dos VL_SALDO (o que resta a pagar)
  • VL_TOTAL = soma dos VL_DOCUMENTO (valor original dos titulos)
  • Se VL_SALDO = 0 (titulo liquidado), nao contribui para inadimplencia
  • Se VL_SALDO > 0 (titulo pendente total ou parcial), contribui

Filtros Recomendados no DS_WHERE​

  • CONTAS.ST_CONTAS IN ('T','P','L') — inclui pendentes e liquidados para base completa
  • CONTAS.CD_EMPRESA = N — filtro de empresa
  • CONTAS.DT_VENCIMENTO >= ''MM/DD/YYYY'' — inicio do periodo
  • CONTAS.DT_VENCIMENTO <= ''MM/DD/YYYY'' — fim do periodo
  • TIPOCONTA.TP_TIPOCONTA IN ('CR','AF','HR','PR','CT') — contas a receber (todos os 5 tipos conforme FIN-REC-001)

Limitacoes​

  • NAO suporta JOINs extras no DS_WHERE (apenas condicoes WHERE)
  • Procedures de seguranca (USUARIOEMPRESA, VIEW_TIPOCONTASUSUARIO, RETORNA_TIPOPESSOA_RESTRITA) NAO podem ser aplicadas
  • Datas no WHERE devem ser literais no formato Firebird 'MM/DD/YYYY' com aspas escapadas

Quando Usar​

  • "Taxa de inadimplencia dos ultimos N meses"
  • "Evolucao da inadimplencia mensal"
  • "Percentual de inadimplencia por mes"
  • Qualquer pergunta que peca breakdown MENSAL de inadimplencia

Comparacao entre meses (CRITICO — COPIAR EXATAMENTE)​

UMA UNICA chamada retorna 1 linha por mes. Para comparar mes atual vs anterior, COPIE este SQL sem modificar a estrutura:

SELECT DS_MES, VL_TOTAL, VL_INADIMPLENTE, PC_INADIMPLENCIA, VL_RECEBIDO
FROM VIEW_RFC030('WHERE CONTAS.ST_CONTAS IN (''T'', ''P'', ''L'')
AND CONTAS.CD_EMPRESA = 1
AND CONTAS.DT_VENCIMENTO >= PRIMEIRODIAMES(DATEADD(MONTH, -1, CURRENT_DATE))
AND CONTAS.DT_VENCIMENTO <= ULTIMODIAMES(CURRENT_DATE)
AND TIPOCONTA.TP_TIPOCONTA IN (''CR'', ''AF'', ''HR'', ''PR'', ''CT'')')
ORDER BY DS_MES

Resultado: 2 linhas — "Fevereiro de 2026" e "Marco de 2026". DS_MES e VARCHAR — NUNCA usar EXTRACT, CAST ou JOIN sobre DS_MES.

Formato de DS_MES (exemplos reais):

  • "Janeiro de 2026"
  • "Fevereiro de 2026"
  • "Março de 2026"
  • NUNCA "1/2026", "01/2026", "Jan/2026" — o formato e SEMPRE nome completo + " de " + ano

Quando NAO Usar​

  • Inadimplencia por CLIENTE/PESSOA — usar query manual com GROUP BY CD_PESSOA
  • Listagem detalhada de titulos inadimplentes — usar VIEW_RFC030ANALITICO
  • Volume de pagamentos em atraso (cadeia de baixa) — usar CONTASHISTORICO + MOVTOPROCESSO + MOVTOCAIXA (metrica diferente de PC_INADIMPLENCIA)