Pular para o conteúdo principal

VL_CREDITO - Valor padrão de limite de crédito por pessoa

Tela: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Faturamento → Opção 2 (pagFatOp2 em UMFA001.dfm:3656) → campo Valor Crédito (label Label40 em UMFA001.dfm:3773-3787, posicionado em Left=103, Top=131) Tabela: PARMFATUR.VL_CREDITO Tipo: Numérico monetário em R$ — DOM_NUMERIC15_2 no DDL (docs/schema/tables/PARMFATUR.sql:125); TFMTBCDField com Precision=18, Size=2 e DisplayFormat='#,0.00' no client (UdmMFA001.dfm:1294-1300). TDBEdit edtVL_CREDITO sem máscara (UMFA001.dfm:4295-4311, TabOrder=10). Valor padrão: NULL — o AfterInsert de tabPARMFATUR em UdmMFA001.pas não atribui default para este campo (o bloco de inicialização termina em UdmMFA001.pas:605 sem tocar em VL_CREDITO). Em base recém-criada o parâmetro nasce vazio. Validação (MFA001): não há OnValidate em tabPARMFATURVL_CREDITO (confirmado por busca em UdmMFA001.pas:166 — só existe a declaração do field, nenhum handler). Qualquer valor numérico até 15 dígitos com 2 decimais é aceito (inclusive 0 e negativos, pois DOM_NUMERIC15_2 não possui check de positividade).

O que o parâmetro faz​

PARMFATUR.VL_CREDITO é o template/default de "valor do limite de crédito por pessoa (em R$)" que o sistema copia para o cadastro de crédito (CREDITO) de cada cliente na primeira vez em que a pessoa é criada.

A regra de bloqueio em tempo real (na hora de fechar o pedido/NF/OS) não consulta PARMFATUR.VL_CREDITO — ela consulta CREDITO.VL_CREDITO (por cliente) via VIEW_CREDITOPESSOA. O parâmetro da MFA001 atua apenas como semente nos seguintes pontos:

  1. TRGAI_PESSOA (trigger AFTER INSERT em PESSOA): ao criar uma pessoa nova, o trigger lê PARMFATUR.VL_CREDITO da empresa logada e insere o valor em CREDITO.VL_CREDITO (Scripts/TRGAI_PESSOA.sql:17-47). Se TP_LIMITECREDITO = 'S' (global), replica para todas as empresas com parâmetro global; caso contrário, insere só na empresa atual.
  2. CREDITOPERIODICO_AI0 e CREDITOPERIODICOGRUPO_AI0 (triggers em CREDITOPERIODICO / CREDITOPERIODICOGRUPO): quando a TFA002 (Análise de Crédito) insere um registro de período com DT_REGISTRO = '01.01.2000 00:00:00' e o limite é Global, os triggers propagam o novo período para as demais empresas, lendo PARMFATUR.VL_CREDITO para decidir o contexto (Scripts/CREDITOPERIODICO_AI0.sql:17-21, Scripts/CREDITOPERIODICOGRUPO_AI0.sql:17-21).
  3. TFA002 (cliente Delphi): na rotina de atualização de limite via DepsSmart (btnATUALIZARLIMITEClick), quando o usuário não preenche "Valor Último Período" e o CREDITO.VL_CREDITO do cliente também está vazio, a tela faz um SELECT P.CD_EMPRESA, P.VL_CREDITO, P.NR_DIASATRASO FROM PARMFATUR P como fallback final para popular o valor do novo período (UTFA002.pas:1923-1934).

Portanto, o parâmetro define a política default da empresa para o limite de crédito em R$ que cada cliente novo herda automaticamente no cadastro. A partir daí, o valor pode ser alterado individualmente na CFC004 (Crédito do Cliente) ou pela TFA002 sem afetar o parâmetro original — e o valor usado no bloqueio é sempre o CREDITO.VL_CREDITO do cliente.

Telas impactadas​

MóduloCódigoPapel
Parâmetros de FaturamentoMFA001Produtora — cadastra/edita o valor no campo edtVL_CREDITO (UMFA001.dfm:4295-4311), Opção 2
Análise de CréditoTFA002Consumidora (fallback) — em btnATUALIZARLIMITEClick, se CREDITO.VL_CREDITO do cliente estiver vazio, consulta PARMFATUR.VL_CREDITO para inicializar o novo período (UTFA002.pas:1926-1934)
Crédito PeriódicoTFA063Relacionada — cadastro dos períodos em CREDITOPERIODICO(GRUPO); o trigger AI0 lê PARMFATUR da empresa ao replicar globalmente
Crédito do ClienteCFC004Consumidora indireta — exibe/edita CREDITO.VL_CREDITO por cliente; o valor inicial veio do TRGAI_PESSOA que copiou de PARMFATUR.VL_CREDITO (UdmCFC004.dfm:777-783, UdmCFC004.pas:47)
Cadastro de PessoaTPO001Gatilho — o INSERT INTO PESSOA dispara TRGAI_PESSOA, que aplica PARMFATUR.VL_CREDITO como default no novo registro de CREDITO
Importação JunsoftJunsoftImportacaoRotina PersistenciaDAO faz UPDATE OR INSERT INTO CREDITO (... VL_CREDITO ...) vindo do ERP origem (PersistenciaDao.pas)

Consumidores finais de CREDITO.VL_CREDITO (não de PARMFATUR.VL_CREDITO, mas que dependem do valor semeado por este parâmetro):

MóduloCódigoPapel
Manutenção de PedidoMPD034, MPD043Chamam VERIFICA_CREDITO / VERIFICA_BLOQUEIO, que lêem CREDITO.VL_CREDITO
Manutenção de NFMNF012, MNF026Idem — bloqueio no faturamento
FaturamentoMFC027, MFI012, MFI015Idem
Cadastro ContábilMCA001, MCA013Idem
APIs mobileLimiteCreditoDAO.java, ClienteDAO.java, ClienteDataDAO.java, EmpresaDAO.java, ParametrosDAO.javaExpõem CREDITO.VL_CREDITO e PARMFATUR.VL_CREDITO aos apps Android (PedidoMobile, VulcanoColeta, Apollo)

Procedures impactadas​

Procedure / TriggerUso de PARMFATUR.VL_CREDITO
TRGAI_PESSOAPrincipal produtor de CREDITO.VL_CREDITO — ao criar pessoa, copia PARMFATUR.VL_CREDITO para CREDITO.VL_CREDITO de uma ou várias empresas, conforme TP_LIMITECREDITO (Scripts/TRGAI_PESSOA.sql:17-47)
CREDITOPERIODICO_AI0Trigger AFTER INSERT de CREDITOPERIODICO — lê PARMFATUR da empresa (incluindo VL_CREDITO) para propagar período global entre empresas com TP_LIMITECREDITO = 'S' (Scripts/CREDITOPERIODICO_AI0.sql:17-21)
CREDITOPERIODICOGRUPO_AI0Mesma lógica para grupo de empresas (Scripts/CREDITOPERIODICOGRUPO_AI0.sql:17-21)
VERIFICA_CREDITOConsome CREDITO.VL_CREDITO (não PARMFATUR), mas é a peça que efetivamente bloqueia — documentada aqui porque PARMFATUR.VL_CREDITO alimenta o valor lido (Scripts/VERIFICA_CREDITO.sql:27-46)
VERIFICA_BLOQUEIOConsome CREDITO.VL_CREDITO via VIEW_CREDITOPESSOA e passa como I_VL_CREDITO para VALIDA_MODELOBLOQUEIOVLLIMITE (Scripts/VERIFICA_BLOQUEIO.sql:700-830)
VALIDA_MODELOBLOQUEIOVLLIMITERecebe I_VL_CREDITO (origem: CREDITO.VL_CREDITO semeado por PARMFATUR.VL_CREDITO) e compara com I_VL_DOCUMENTO; monta mensagem "Ultrapassou o Limite de Crédito" quando excedido (Scripts/VALIDA_MODELOBLOQUEIOVLLIMITE.sql:40-105)
VIEW_CREDITOPESSOAProcedure que retorna CREDITO.VL_CREDITO (empresa ou global conforme TP_LIMITECREDITO) para o bloqueio (Scripts/VIEW_CREDITOPESSOA.sql:9, 70-74)
GERA_CREDITOCorpo comentado — rotina inativa hoje (Scripts/GERA_CREDITO.sql)

Campos envolvidos​

CampoTabelaPapel
VL_CREDITOPARMFATUREste parâmetro — default/template da empresa em R$
VL_CREDITOCREDITOLimite por cliente em R$ — é o que efetivamente trava o faturamento em VERIFICA_CREDITO/VERIFICA_BLOQUEIO. Nasce do PARMFATUR.VL_CREDITO via TRGAI_PESSOA
VL_CREDITOCREDITOPERIODICO / CREDITOPERIODICOGRUPOHistórico de limites por período (TFA002/TFA063)
VL_CREDITOACUMPARMFATUR / CREDITOLimite acumulado (soma de duplicatas pendentes) — parâmetro homônimo/irmão com a mesma mecânica; avaliado por ST_BLOQUEIO in ('T','A','O','B','F','G')
NR_DIASATRASOPARMFATUR / CREDITOParâmetro irmão — tolerância em dias, default para CREDITO.NR_DIASATRASO
TP_LIMITECREDITOPARMFATUR'S' = limite global (replica VL_CREDITO entre empresas); caso contrário, por empresa
ST_BLOQUEIOPESSOAModo de bloqueio do cliente — só com ST_BLOQUEIO in ('C','A','O','Q','B','F','G') a regra de limite de crédito em R$ entra em vigor (Scripts/VALIDA_MODELOBLOQUEIOVLLIMITE.sql:40)
TP_MODELOBLOQUEIOPARMFATURDefine o modelo (Normal / Alçada / Sem modelo) aplicado em VALIDA_MODELOBLOQUEIOVLLIMITE — 'N' desliga o modelo por alçada
VL_LIMITECREDACUMULADOPARMUSUARIOTeto adicional por usuário que libera (comparado com I_VL_CREDITO em VALIDA_MODELOBLOQUEIOVLLIMITE.sql:65-82)

Comportamento / Regra de aplicação​

Valor = NULL (padrão / empresa recém-criada)​

AspectoComportamento
Preenchimento em MFA001Campo nasce vazio no AfterInsert (UdmMFA001.pas:585-605)
Efeito em TRGAI_PESSOAAo criar nova pessoa, o INSERT INTO CREDITO (..., VL_CREDITO ...) grava NULL em CREDITO.VL_CREDITO (Scripts/TRGAI_PESSOA.sql:34-47)
Efeito em VERIFICA_CREDITO (Scripts/VERIFICA_CREDITO.sql:38)A condição if (V_ST_BLOQUEIO in ('C','A','O','Q')) and (I_VL_CREDITO is not null) cai para false → o bloco de bloqueio por limite em R$ é totalmente pulado
Efeito em VALIDA_MODELOBLOQUEIOVLLIMITE (Scripts/VALIDA_MODELOBLOQUEIOVLLIMITE.sql:40)I_VL_CREDITO IS NOT NULL → false → bloqueio por limite em R$ é ignorado
Efeito em TFA002 (UTFA002.pas:1931-1934)ValorUltimoPeriodo := Resultado[1] também recebe vazio → o campo VL_CREDITO do novo período nasce nulo
Consequência práticaNenhum cliente herda limite de crédito em R$. A regra de bloqueio por limite fica desligada sistemicamente até que o usuário preencha o parâmetro e rode a rotina que atualiza CREDITO (TFA002) ou cadastre pessoa nova

Resultado esperado: NULL equivale a "não bloquear ninguém por limite de crédito em R$". O cliente só poderá ser bloqueado por outros modos ('D' — dias de atraso, 'T' — crédito acumulado, 'L' — liquidação tardia), se estiverem configurados.

Valor = 0​

AspectoComportamento
Cadastro em MFA001Aceito (sem OnValidate)
Em TRGAI_PESSOACREDITO.VL_CREDITO = 0,00 para toda pessoa nova
Em VERIFICA_CREDITO linha 38-42I_VL_CREDITO is not null é true → entra no bloco; if V_VL_DOCUMENTO > I_VL_CREDITO compara valor_pedido > 0
Consequência práticaQualquer pedido/NF com valor > R$ 0,00 dispara o bloqueio. É o modo "nenhum crédito"
Mensagem (VERIFICA_CREDITO.sql:40-42)"Ultrapassou o Limite de Crédito da Pessoa. Valor Documento.: <valor>. Valor do Limite.: 0,00"

Resultado esperado: bloqueio imediato em qualquer venda a prazo. Diferente de NULL: NULL desliga a regra; 0 a torna proibitiva.

Valor > 0 (ex.: 5.000,00)​

AspectoComportamento
Cadastro em MFA001Aceito — TDBEdit com DisplayFormat='#,0.00' exibe 5.000,00
Em TRGAI_PESSOACREDITO.VL_CREDITO = 5000,00 para toda pessoa nova
Em VERIFICA_CREDITOCompara V_VL_DOCUMENTO > I_VL_CREDITO (valor do pedido × limite do cliente). Só bloqueia quando o valor do pedido ultrapassa R$ 5.000,00
Consequência práticaCliente ganha R$ 5.000,00 de limite de compra a prazo; acima disso, o sistema exige liberação ou bloqueia

Simulação passo a passo​

Pré-requisitos do cenário:

  • PARMFATUR.VL_CREDITO = 5.000,00 (definido em MFA001, Opção 2).
  • PARMFATUR.TP_LIMITECREDITO = 'E' (limite por empresa, não global).
  • PARMFATUR.TP_MODELOBLOQUEIO = 'N' (modelo normal).
  • Cliente novo "Maria" sendo cadastrado na TPO001 com PESSOA.ST_BLOQUEIO = 'C' (bloqueio por valor de crédito).
  1. Cadastro da pessoa (TPO001 → commit INSERT INTO PESSOA):
    • Trigger TRGAI_PESSOA dispara.
    • Lê PARMFATUR.VL_CREDITO = 5000,00 (Scripts/TRGAI_PESSOA.sql:17-22).
    • Como TP_LIMITECREDITO <> 'S', insere em CREDITO apenas da empresa logada: CREDITO.VL_CREDITO = 5000,00 (Scripts/TRGAI_PESSOA.sql:43-47).
  2. Operador lança um pedido de R$ 3.500,00 para Maria (MPD034):
    • No checkout, MPD034 chama VERIFICA_CREDITO(CD_EMPRESA, CD_PESSOA, 'X', 'C', 3500).
    • VIEW_CREDITOPESSOA retorna I_VL_CREDITO = 5000, V_VL_DOCUMENTO = 3500.
    • Condição 3500 > 5000 → false → não bloqueia. Pedido passa.
  3. Mesmo dia, operador lança outro pedido de R$ 7.200,00 para Maria:
    • V_VL_DOCUMENTO = 7200, I_VL_CREDITO = 5000.
    • Condição 7200 > 5000 → true → V_DS_BLOQUEIO = 'Ultrapassou o Limite de Crédito da Pessoa. Valor Documento.: 7200,00. Valor do Limite.: 5000,00'.
    • MPD034/MNF012/MFC027 exibem a mensagem e bloqueiam/exigem liberação por alçada.
  4. Financeiro muda individualmente CREDITO.VL_CREDITO = 10.000,00 para Maria via CFC004:
    • A próxima chamada VERIFICA_CREDITO(..., 7200) compara 7200 > 10000 → false → libera.
    • O parâmetro PARMFATUR.VL_CREDITO = 5000 não é reconsultado — a decisão é 100% do valor por cliente.
  5. Gestor altera PARMFATUR.VL_CREDITO para R$ 8.000,00 no MFA001:
    • Nada muda para Maria — seu CREDITO.VL_CREDITO continua 10000,00.
    • Apenas clientes cadastrados após essa alteração herdarão CREDITO.VL_CREDITO = 8000,00.

Resultado esperado: o parâmetro define a carga inicial do limite em R$ que cada cliente carrega ao ser cadastrado. Ajustes individuais em CFC004/TFA002 sobrescrevem o default sem afetar o parâmetro, e ajustes posteriores no parâmetro não retroagem para clientes já existentes.


Interação com CREDITO.VL_CREDITO / TP_LIMITECREDITO / NR_DIASATRASO​

AspectoPARMFATUR.VL_CREDITO (MFA001)CREDITO.VL_CREDITO (por cliente)
EscopoEmpresa (CD_EMPRESA)Empresa + Pessoa (CD_EMPRESA, CD_PESSOA)
Quem preencheUsuário em MFA001TRGAI_PESSOA (default = PARMFATUR), ou CFC004/TFA002 (override manual)
Quem lê no bloqueioNinguém lê em tempo de pedido/NFVERIFICA_CREDITO (Scripts/VERIFICA_CREDITO.sql:27-46), VERIFICA_BLOQUEIO → VALIDA_MODELOBLOQUEIOVLLIMITE
FallbackUsado como fallback em TFA002 quando CREDITO.VL_CREDITO do cliente também está vazio (UTFA002.pas:1923-1934)É a fonte da verdade no momento do bloqueio
Atualização retroativaNão — mudar MFA001 depois de cadastrado o cliente não altera os CREDITO.VL_CREDITO já existentesSim — cada alteração em CFC004/TFA002 altera imediatamente o comportamento da validação

Com TP_LIMITECREDITO​

  • TP_LIMITECREDITO = 'S' (Global): no TRGAI_PESSOA, o valor de PARMFATUR.VL_CREDITO da empresa logada é replicado em CREDITO.VL_CREDITO de todas as empresas que também tenham TP_LIMITECREDITO = 'S' (Scripts/TRGAI_PESSOA.sql:25-40). Da mesma forma, os triggers CREDITOPERIODICO_AI0/CREDITOPERIODICOGRUPO_AI0 propagam o limite entre empresas globais quando a TFA002 cria um período padrão.
  • TP_LIMITECREDITO = 'E' (por Empresa, default): o TRGAI_PESSOA grava o CREDITO.VL_CREDITO apenas para a empresa corrente (Scripts/TRGAI_PESSOA.sql:42-47). Clientes terão limites independentes por empresa.

Com ST_BLOQUEIO da pessoa​

A regra de limite em R$ só é ativada quando PESSOA.ST_BLOQUEIO in ('C','A','O','Q','B','F','G') em VALIDA_MODELOBLOQUEIOVLLIMITE ou ('C','A','O','Q') em VERIFICA_CREDITO (variação histórica). Se a pessoa tiver outro modo (ex.: 'D' = só dias de atraso), o limite em R$ do CREDITO é ignorado mesmo que preenchido.

Com NR_DIASATRASO (parâmetro irmão na mesma Opção 2)​

Os três campos da Opção 2 (NR_DIASATRASO, VL_CREDITO, VL_CREDITOACUM) são semeados juntos por TRGAI_PESSOA no mesmo INSERT INTO CREDITO e pelo mesmo SELECT FROM PARMFATUR. Um depende do outro apenas pela ordem: o SELECT busca os três; o INSERT grava os três. Uma omissão em um campo (NULL) não impede o uso dos outros, pois cada condição em VERIFICA_CREDITO tem seu próprio IS NOT NULL guard independente.

:::warning Parâmetro MFA001 não é suficiente sozinho Preencher PARMFATUR.VL_CREDITO não habilita o bloqueio por valor de crédito para os clientes que já existiam antes. É necessário: (a) rodar TFA002/CFC004 para preencher CREDITO.VL_CREDITO de cada cliente, ou (b) confiar que apenas clientes cadastrados depois da parametrização terão o valor correto (via TRGAI_PESSOA). :::

:::info Limite acumulado vs limite do documento O VL_CREDITO valida o valor de um único documento (pedido/NF). Para limitar a soma de duplicatas pendentes o sistema usa VL_CREDITOACUM (parâmetro irmão, mesma Opção 2). Eles são independentes: um cliente pode ter VL_CREDITO = 5000 (cada pedido até 5k) e VL_CREDITOACUM = 20000 (máximo 20k em aberto), com modos ST_BLOQUEIO diferentes para cada um ('C' vs 'T'). :::


Referências no Código Fonte​

Delphi — MFA001 (cadastro do parâmetro)​

ArquivoLinhasPapel
source/MFA001/UMFA001.dfm3773-3787TLabel Label40 com Caption = 'Valor Cr'#233'dito' (Valor Crédito), FocusControl = edtVL_CREDITO, dentro de pagFatOp2 (Opção 2)
source/MFA001/UMFA001.dfm4295-4311TDBEdit edtVL_CREDITO com DataField = 'VL_CREDITO', DataSource = dmMFA001.dsPARMFATUR, TabOrder = 10
source/MFA001/UMFA001.pas413Declaração edtVL_CREDITO: TDBEdit
source/MFA001/UdmMFA001.pas166Declaração tabPARMFATURVL_CREDITO: TFMTBCDField (sem OnValidate)
source/MFA001/UdmMFA001.dfm1294-1300Field definition — DisplayFormat = '#,0.00', Precision = 18, Size = 2, sem DefaultExpression, sem OnValidate
source/MFA001/UdmMFA001.dfm173, 2392-2393, 2556, 2775-2776, 3053Inclusão de VL_CREDITO em SELECT/INSERT/UPDATE da tabela PARMFATUR
source/MFA001/UdmMFA001.pas568-605Bloco tabPARMFATURAfterInsert termina sem atribuir valor a VL_CREDITO — nasce NULL

Delphi — TFA002 (consumidor fallback)​

ArquivoLinhasPapel
source/TFA002/UTFA002.pas1923-1940Em btnATUALIZARLIMITEClick, fallback final: SELECT P.CD_EMPRESA, P.VL_CREDITO, P.NR_DIASATRASO FROM PARMFATUR P WHERE P.CD_EMPRESA = ... — usado quando cdsDepsSmart e CREDITO do cliente não forneceram o valor
source/TFA002/UTFA002.pas304, 331, 721, 727, 791, 797CRUD de CREDITO.VL_CREDITO/CREDITOGRUPO.VL_CREDITO (semeados a partir de PARMFATUR)
source/TFA002/UTFA002.pas1914, 1945Uso de tabCREDITOVL_CREDITO.AsString como segundo fallback antes de PARMFATUR

Delphi — CFC004 (cadastro por cliente)​

ArquivoLinhasPapel
source/CFC004/UdmCFC004.dfm777-783tabCREDITOVL_CREDITO: TFMTBCDField com Origin = 'CREDITO.VL_CREDITO'
source/CFC004/UdmCFC004.pas47Declaração do field de CREDITO.VL_CREDITO (edita o valor por cliente, que sobrescreve o default herdado de PARMFATUR)

Delphi — consumidores finais via CREDITO.VL_CREDITO​

ArquivoPapel
source/MPD034/, source/MPD043/Manutenção de pedidos — chamam VERIFICA_CREDITO/VERIFICA_BLOQUEIO
source/MNF012/, source/MNF026/Manutenção de NF — idem
source/MFC027/UMFC027.pasFaturamento — idem
source/MFI012/, source/MFI015/Manutenção financeira — verificação de crédito
source/MCA001/, source/MCA013/Cadastro Contábil — idem
source/TFA044/, source/TFA063/, source/TFA077/Telas auxiliares de crédito/período
source/TFA001/URelTFA001.pasRelatório de análise de crédito
source/RFI031/URFI031.pas, source/RNF021/, source/RRC011/Relatórios que listam CREDITO.VL_CREDITO por cliente
source/JunsoftImportacao/PersistenciaDAO/PersistenciaDao.pasRotina de importação persiste CREDITO.VL_CREDITO vindo do ERP origem

Java — APIs mobile (expõem o valor para apps)​

ArquivoLinhaPapel
source/Server/PedidoMobile/ERPPedidoRestAS/.../EmpresaDAO.java22SELECT PM.VL_CREDITO FROM PARMFATUR PM — expõe o parâmetro no endpoint de empresa
source/Server/PedidoMobile/ERPPedidoRestAS/.../LimiteCreditoDAO.java22, 37, 50SELECT CP.VL_CREDITO FROM VIEW_CREDITOPESSOA CP — expõe limite por pessoa
source/Server/VulcanoColeta/.../ParametrosDAO.java27SELECT PF.VL_CREDITO FROM PARMFATUR PF — expõe parâmetro aos apps Vulcano
source/Server/VulcanoColeta/.../ClienteDAO.java47SELECT CP.VL_CREDITO FROM VIEW_CREDITOPESSOA
source/Server/VulcanoColeta/.../ClienteDataDAO.java41Idem
source/Server/JunsoftApollo/.../LimiteCreditoDAO.java—Idem Apollo

DDL​

  • docs/schema/tables/PARMFATUR.sql:125 — VL_CREDITO DOM_NUMERIC15_2, (permite NULL, sem default SQL)
  • docs/schema/tables/CREDITO.sql:4 — VL_CREDITO DOM_NUMERIC15_2, (campo populado por TRGAI_PESSOA a partir de PARMFATUR)
  • docs/schema/tables/CREDITOPERIODICO.sql — VL_CREDITO DOM_NUMERIC15_2,

SQL — Triggers/Procedures​

ArquivoLinhasPapel
Scripts/TRGAI_PESSOA.sql7-50Principal consumidor — copia PARMFATUR.VL_CREDITO para CREDITO.VL_CREDITO no cadastro de nova pessoa, respeitando TP_LIMITECREDITO (global vs. por empresa)
Scripts/CREDITOPERIODICO_AI0.sql9-40Trigger AFTER INSERT de CREDITOPERIODICO — lê/replica VL_CREDITO entre empresas globais
Scripts/CREDITOPERIODICOGRUPO_AI0.sql9-40Idem para grupo de empresas
Scripts/VERIFICA_CREDITO.sql27-46Consome CREDITO.VL_CREDITO (não PARMFATUR) para bloqueio em tempo de faturamento; modo ST_BLOQUEIO in ('C','A','O','Q')
Scripts/VERIFICA_BLOQUEIO.sql36, 700-830Consome VIEW_CREDITOPESSOA.VL_CREDITO e invoca VALIDA_MODELOBLOQUEIOVLLIMITE
Scripts/VALIDA_MODELOBLOQUEIOVLLIMITE.sql7, 40-105Compara I_VL_CREDITO com I_VL_DOCUMENTO; combina com PARMUSUARIO.VL_LIMITECREDACUMULADO (alçada do usuário) e PARMFATUR.TP_MODELOBLOQUEIO
Scripts/VIEW_CREDITOPESSOA.sql9, 70-74, 186-192, 202-206, 268-274Projeta CREDITO.VL_CREDITO por empresa ou global conforme TP_LIMITECREDITO
Scripts/GERA_CREDITO.sql—Corpo comentado — rotina inativa