Tempo aproximado para leitura: 00:03:00 min
Dúvida
Como validar o total de desconto aplicado por meio de uma (ou mais) NCC (nota de crédito-cliente) utilizando o ponto de entrada LJ7001?
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) – ADVPL – A partir da versão 11.8
Solução
Será necessária a utilização das seguintes variáveis:
- aNCCItens: Contém todas as notas de crédito-cliente que são apresentadas na tela de seleção de NCC (posição [3][1] indica se a NCC está sendo utilizada):
- nNCCUsada: Armazena o valor total de desconto por meio de NCCs:
- aTotais: Exibe os valores que compõem a venda:
EXEMPLO
// BIBLIOTECAS NECESSÁRIAS
#Include "TOTVS.ch"
// PONTO DE ENTRADA
User Function LJ7001()
Local nX := 0 // AUXILIAR PARA LAÇO DE REPETIÇÃO
Local nCount := 0 // CONTADOR PARA A QUANTIDADE DE NCCS
Local lValid := .T. // VARIÁVEL DE CONTROLE DE TRANSAÇÃO
Local aParam := PARAMIXB // CONTEÚDOS ENVIADOS PELO PONTO
// (SIMULAÇÃO 01)
// PERCORRE O VETOR DE NCCS DO CLIENTE
For nX := 1 To aNCCItens
// CONTADOR AVALIANDO QUANTAS NCCS FORAM SELECIONADAS
If (aNCCItens[nX][1])
++nCount
EndIf
Next nX
// (SIMULAÇÃO 01)
// CASO SEJA SELECIONADA MAIS DE UMA NCC, EXIBIR MENSAGEM DE ERRO
If (nCount > 1)
MsgInfo("Não é permitido o uso de mais de uma nota de crédito-cliente por venda", "NCC Error")
lValid := .F.
EndIf
// (SIMULAÇÃO 02)
// CASO O VALOR TOTAL ABATIDO POR MEIO DAS NCCS SEJA MAIOR QUE 20%
// DO VALOR TOTAL DA VENDA, EXIBIR MENSAGEM DE ERRO
If (nNCCUsada > (aTotais[4][2] * 0.2))
MsgInfo("Valor máximo de abatimento por meio de NCCs excedido", "NCC Error")
lValid := .F.
EndIf
Return (lValid)
Observação
Por meio do ponto de entrada LJ7001 é possível enxergar cerca de 350 variáveis privadas que representam atributos das tabelas utilizadas e mais outras 60 variáveis (também privadas) contendo informações da rotina (desde tamanho dos campos à dados de pagamento):
Todas essas variáveis podem ser enxergadas por meio da visão de variáveis (Variables) do IDE (Integrated Developmente Environment) TOTVS Developer Studio.
Saiba mais
DEPURAÇÃO UTILIZANDO O IDE TOTVS DEVELOPER STUDIO
PONTO DE ENTRADA LJ7001 (VALIDAÇÃO TOTAL DA ROTINA)
PONTO DE ENTRADA LJ7026 (POSIÇÕES DA VARIÁVEL ANCCITENS)
0 Comentários