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:
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.
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).
- 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ódulo | Código | Papel |
|---|
| Parâmetros de Faturamento | MFA001 | Produtora — cadastra/edita o valor no campo edtVL_CREDITO (UMFA001.dfm:4295-4311), Opção 2 |
| Análise de Crédito | TFA002 | Consumidora (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ódico | TFA063 | Relacionada — cadastro dos períodos em CREDITOPERIODICO(GRUPO); o trigger AI0 lê PARMFATUR da empresa ao replicar globalmente |
| Crédito do Cliente | CFC004 | Consumidora 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 Pessoa | TPO001 | Gatilho — o INSERT INTO PESSOA dispara TRGAI_PESSOA, que aplica PARMFATUR.VL_CREDITO como default no novo registro de CREDITO |
| Importação Junsoft | JunsoftImportacao | Rotina 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ódulo | Código | Papel |
|---|
| Manutenção de Pedido | MPD034, MPD043 | Chamam VERIFICA_CREDITO / VERIFICA_BLOQUEIO, que lêem CREDITO.VL_CREDITO |
| Manutenção de NF | MNF012, MNF026 | Idem — bloqueio no faturamento |
| Faturamento | MFC027, MFI012, MFI015 | Idem |
| Cadastro Contábil | MCA001, MCA013 | Idem |
| APIs mobile | LimiteCreditoDAO.java, ClienteDAO.java, ClienteDataDAO.java, EmpresaDAO.java, ParametrosDAO.java | Expõem CREDITO.VL_CREDITO e PARMFATUR.VL_CREDITO aos apps Android (PedidoMobile, VulcanoColeta, Apollo) |
Procedures impactadas
| Procedure / Trigger | Uso de PARMFATUR.VL_CREDITO |
|---|
TRGAI_PESSOA | Principal 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_AI0 | Trigger 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_AI0 | Mesma lógica para grupo de empresas (Scripts/CREDITOPERIODICOGRUPO_AI0.sql:17-21) |
VERIFICA_CREDITO | Consome 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_BLOQUEIO | Consome CREDITO.VL_CREDITO via VIEW_CREDITOPESSOA e passa como I_VL_CREDITO para VALIDA_MODELOBLOQUEIOVLLIMITE (Scripts/VERIFICA_BLOQUEIO.sql:700-830) |
VALIDA_MODELOBLOQUEIOVLLIMITE | Recebe 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_CREDITOPESSOA | Procedure que retorna CREDITO.VL_CREDITO (empresa ou global conforme TP_LIMITECREDITO) para o bloqueio (Scripts/VIEW_CREDITOPESSOA.sql:9, 70-74) |
GERA_CREDITO | Corpo comentado — rotina inativa hoje (Scripts/GERA_CREDITO.sql) |
Campos envolvidos
| Campo | Tabela | Papel |
|---|
VL_CREDITO | PARMFATUR | Este parâmetro — default/template da empresa em R$ |
VL_CREDITO | CREDITO | Limite por cliente em R$ — é o que efetivamente trava o faturamento em VERIFICA_CREDITO/VERIFICA_BLOQUEIO. Nasce do PARMFATUR.VL_CREDITO via TRGAI_PESSOA |
VL_CREDITO | CREDITOPERIODICO / CREDITOPERIODICOGRUPO | Histórico de limites por período (TFA002/TFA063) |
VL_CREDITOACUM | PARMFATUR / CREDITO | Limite 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_DIASATRASO | PARMFATUR / CREDITO | Parâmetro irmão — tolerância em dias, default para CREDITO.NR_DIASATRASO |
TP_LIMITECREDITO | PARMFATUR | 'S' = limite global (replica VL_CREDITO entre empresas); caso contrário, por empresa |
ST_BLOQUEIO | PESSOA | Modo 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_MODELOBLOQUEIO | PARMFATUR | Define o modelo (Normal / Alçada / Sem modelo) aplicado em VALIDA_MODELOBLOQUEIOVLLIMITE — 'N' desliga o modelo por alçada |
VL_LIMITECREDACUMULADO | PARMUSUARIO | Teto 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)
| Aspecto | Comportamento |
|---|
| Preenchimento em MFA001 | Campo nasce vazio no AfterInsert (UdmMFA001.pas:585-605) |
Efeito em TRGAI_PESSOA | Ao 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ática | Nenhum 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
| Aspecto | Comportamento |
|---|
| Cadastro em MFA001 | Aceito (sem OnValidate) |
Em TRGAI_PESSOA | CREDITO.VL_CREDITO = 0,00 para toda pessoa nova |
Em VERIFICA_CREDITO linha 38-42 | I_VL_CREDITO is not null é true → entra no bloco; if V_VL_DOCUMENTO > I_VL_CREDITO compara valor_pedido > 0 |
| Consequência prática | Qualquer 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)
| Aspecto | Comportamento |
|---|
| Cadastro em MFA001 | Aceito — TDBEdit com DisplayFormat='#,0.00' exibe 5.000,00 |
Em TRGAI_PESSOA | CREDITO.VL_CREDITO = 5000,00 para toda pessoa nova |
Em VERIFICA_CREDITO | Compara 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ática | Cliente 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).
- 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).
- 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.
- 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.
- 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.
- 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.
| Aspecto | PARMFATUR.VL_CREDITO (MFA001) | CREDITO.VL_CREDITO (por cliente) |
|---|
| Escopo | Empresa (CD_EMPRESA) | Empresa + Pessoa (CD_EMPRESA, CD_PESSOA) |
| Quem preenche | Usuário em MFA001 | TRGAI_PESSOA (default = PARMFATUR), ou CFC004/TFA002 (override manual) |
| Quem lê no bloqueio | Ninguém lê em tempo de pedido/NF | VERIFICA_CREDITO (Scripts/VERIFICA_CREDITO.sql:27-46), VERIFICA_BLOQUEIO → VALIDA_MODELOBLOQUEIOVLLIMITE |
| Fallback | Usado 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 retroativa | Não — mudar MFA001 depois de cadastrado o cliente não altera os CREDITO.VL_CREDITO já existentes | Sim — cada alteração em CFC004/TFA002 altera imediatamente o comportamento da validação |
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.
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.
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)
| Arquivo | Linhas | Papel |
|---|
source/MFA001/UMFA001.dfm | 3773-3787 | TLabel Label40 com Caption = 'Valor Cr'#233'dito' (Valor Crédito), FocusControl = edtVL_CREDITO, dentro de pagFatOp2 (Opção 2) |
source/MFA001/UMFA001.dfm | 4295-4311 | TDBEdit edtVL_CREDITO com DataField = 'VL_CREDITO', DataSource = dmMFA001.dsPARMFATUR, TabOrder = 10 |
source/MFA001/UMFA001.pas | 413 | Declaração edtVL_CREDITO: TDBEdit |
source/MFA001/UdmMFA001.pas | 166 | Declaração tabPARMFATURVL_CREDITO: TFMTBCDField (sem OnValidate) |
source/MFA001/UdmMFA001.dfm | 1294-1300 | Field definition — DisplayFormat = '#,0.00', Precision = 18, Size = 2, sem DefaultExpression, sem OnValidate |
source/MFA001/UdmMFA001.dfm | 173, 2392-2393, 2556, 2775-2776, 3053 | Inclusão de VL_CREDITO em SELECT/INSERT/UPDATE da tabela PARMFATUR |
source/MFA001/UdmMFA001.pas | 568-605 | Bloco tabPARMFATURAfterInsert termina sem atribuir valor a VL_CREDITO — nasce NULL |
Delphi — TFA002 (consumidor fallback)
| Arquivo | Linhas | Papel |
|---|
source/TFA002/UTFA002.pas | 1923-1940 | Em 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.pas | 304, 331, 721, 727, 791, 797 | CRUD de CREDITO.VL_CREDITO/CREDITOGRUPO.VL_CREDITO (semeados a partir de PARMFATUR) |
source/TFA002/UTFA002.pas | 1914, 1945 | Uso de tabCREDITOVL_CREDITO.AsString como segundo fallback antes de PARMFATUR |
Delphi — CFC004 (cadastro por cliente)
| Arquivo | Linhas | Papel |
|---|
source/CFC004/UdmCFC004.dfm | 777-783 | tabCREDITOVL_CREDITO: TFMTBCDField com Origin = 'CREDITO.VL_CREDITO' |
source/CFC004/UdmCFC004.pas | 47 | Declaraçã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
| Arquivo | Papel |
|---|
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.pas | Faturamento — 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.pas | Relató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.pas | Rotina de importação persiste CREDITO.VL_CREDITO vindo do ERP origem |
Java — APIs mobile (expõem o valor para apps)
| Arquivo | Linha | Papel |
|---|
source/Server/PedidoMobile/ERPPedidoRestAS/.../EmpresaDAO.java | 22 | SELECT PM.VL_CREDITO FROM PARMFATUR PM — expõe o parâmetro no endpoint de empresa |
source/Server/PedidoMobile/ERPPedidoRestAS/.../LimiteCreditoDAO.java | 22, 37, 50 | SELECT CP.VL_CREDITO FROM VIEW_CREDITOPESSOA CP — expõe limite por pessoa |
source/Server/VulcanoColeta/.../ParametrosDAO.java | 27 | SELECT PF.VL_CREDITO FROM PARMFATUR PF — expõe parâmetro aos apps Vulcano |
source/Server/VulcanoColeta/.../ClienteDAO.java | 47 | SELECT CP.VL_CREDITO FROM VIEW_CREDITOPESSOA |
source/Server/VulcanoColeta/.../ClienteDataDAO.java | 41 | Idem |
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
| Arquivo | Linhas | Papel |
|---|
Scripts/TRGAI_PESSOA.sql | 7-50 | Principal consumidor — copia PARMFATUR.VL_CREDITO para CREDITO.VL_CREDITO no cadastro de nova pessoa, respeitando TP_LIMITECREDITO (global vs. por empresa) |
Scripts/CREDITOPERIODICO_AI0.sql | 9-40 | Trigger AFTER INSERT de CREDITOPERIODICO — lê/replica VL_CREDITO entre empresas globais |
Scripts/CREDITOPERIODICOGRUPO_AI0.sql | 9-40 | Idem para grupo de empresas |
Scripts/VERIFICA_CREDITO.sql | 27-46 | Consome CREDITO.VL_CREDITO (não PARMFATUR) para bloqueio em tempo de faturamento; modo ST_BLOQUEIO in ('C','A','O','Q') |
Scripts/VERIFICA_BLOQUEIO.sql | 36, 700-830 | Consome VIEW_CREDITOPESSOA.VL_CREDITO e invoca VALIDA_MODELOBLOQUEIOVLLIMITE |
Scripts/VALIDA_MODELOBLOQUEIOVLLIMITE.sql | 7, 40-105 | Compara I_VL_CREDITO com I_VL_DOCUMENTO; combina com PARMUSUARIO.VL_LIMITECREDACUMULADO (alçada do usuário) e PARMFATUR.TP_MODELOBLOQUEIO |
Scripts/VIEW_CREDITOPESSOA.sql | 9, 70-74, 186-192, 202-206, 268-274 | Projeta CREDITO.VL_CREDITO por empresa ou global conforme TP_LIMITECREDITO |
Scripts/GERA_CREDITO.sql | — | Corpo comentado — rotina inativa |