MNF013.R001 — Bloqueio automático do CTRC por crédito, preço ou desconto
Módulo: MNF013 · Menu: Faturamento > Movimentações > Notas Fiscais > CTRC - Conhecimento de Transporte Classificação: intencional · Relevância: alta
Regra
Ao salvar, o sistema verifica o crédito do destinatário, se o valor unitário está abaixo da tabela de preço e se o desconto excede o máximo permitido; se alguma condição falhar, o CTRC é gravado com status Bloqueado.
Quando dispara
Ao clicar em Salvar, antes de gravar a nota fiscal (chama a procedure VERIFICA_CREDITO).
Mensagem exibida
Atenção! O CTRC de Lancto.: <nº> será Bloqueado. <motivo>
Como o usuário resolve
Liberar o crédito do cliente, ajustar o preço/tabela de preço do produto ou reduzir o desconto conforme o motivo informado na mensagem.
Parâmetros envolvidos
PARMFATUR.ST_BLOQUEIONFPARMFATUR.PC_DESCONTOMAX
Evidência
| Arquivo | Linhas | Rotina | O que o trecho faz |
|---|---|---|---|
source/MNF013/UdmMNF013.pas | 1608-1654 | Verifica_CreditoTabela | Consulta VERIFICA_CREDITO e valida preço/desconto |
source/MNF013/UMNF013.pas | 1989-1999 | TfrmMNF013.btnSalvarClick | Bloqueia a nota gravando ST_NOTA='B' |
source/MNF013/UdmMNF013.pas:1608
Function Verifica_CreditoTabela : String;
Var
Consulta, I_Mensagem: String;
Resultado: TResultado;
Pc_Desconto: Double;
begin
I_Mensagem := '';
Consulta := 'SELECT V_DS_BLOQUEIO FROM VERIFICA_CREDITO ( ' +
Nulo(dmMNF013.tabNOTACD_EMPRESA.AsString,'I') + ', ' +
Nulo(dmMNF013.tabNOTACD_PESSOA.AsString,'I') + ', ' +
Nulo(dmMNF013.tabNOTAST_CONDPAGTO.AsString,'S') + ', ' +
Nulo(dmMNF013.iST_BLOQUEIONF,'S') + ', ' +
source/MNF013/UMNF013.pas:1989
\{Verifica o Credito da Pessoa\}
iDS_BLOQUEIO := Verifica_CreditoTabela;
\{Bloqueia a NF\}
if ( Trim(iDS_BLOQUEIO) <> '' ) then
begin
dmMNF013.tabNOTA.Edit;
dmMNF013.tabNOTADS_BLOQUEIO.AsString := iDS_BLOQUEIO;
dmMNF013.tabNOTAST_NOTA.AsString := 'B';
dmMNF013.tabNOTA.Post;
iMensagem := 'Atenção!' + CHR(10) + 'O CTRC de Lancto.: ' + iNR_LANCTO + ' será Bloqueado.' + CHR(10) + iDS_BLOQUEIO;
end;