MT120OK
MT120OK() --> lRetornoExecuta validações específicas de usuário nos itens do pedido de compra antes de seguir o processo.
Visão geral
MT120OK é um ponto de entrada da rotina de Pedido de Compras / Autorização de Entrega. Ele é acionado no final da função A120TudOk(), após a confirmação dos itens da GetDados e antes do rodapé da dialog do pedido de compra. Seu retorno controla a continuidade do processo: .T. permite prosseguir e .F. interrompe a validação.
Sintaxe
MT120OK() --> lRetornoRetorno
lRetorno, lógico. Retorne .T. para permitir que os itens validados sigam o processo. Retorne .F. para interromper o processo quando alguma validação específica do usuário não for atendida.
Validação de produto, quantidade e preço
#Include "TOTVS.ch"
User Function MT120OK()
Local nPosPrd := AScan(aHeader, {|x| AllTrim(x[2]) == "C7_PRODUTO"})
Local nPosQtd := AScan(aHeader, {|x| AllTrim(x[2]) == "C7_QUANT"})
Local nPosPrc := AScan(aHeader, {|x| AllTrim(x[2]) == "C7_PRECO"})
Local lValido := .T.
Local nX := 0
For nX := 1 To Len(aCols)
If !aCols[nX][Len(aCols[nX])] .And. !Empty(aCols[nX][nPosPrd])
If Empty(aCols[nX][nPosQtd]) .Or. Empty(aCols[nX][nPosPrc])
MsgAlert("Informe quantidade e preço para o produto " + aCols[nX][nPosPrd], "Validação do pedido")
lValido := .F.
Exit
EndIf
EndIf
Next nX
Return lValidoO exemplo localiza os campos no aHeader, percorre as linhas do aCols e impede a continuidade quando um produto informado estiver sem quantidade ou sem preço.
Estrutura mínima
#Include "TOTVS.ch"
User Function MT120OK()
Local lRetorno := .T.
// Execute aqui as validações adicionais dos itens do pedido.
// Retorne .F. para interromper o processo.
Return lRetornoEstrutura mínima para criar uma validação adicional controlada pelo retorno lógico do ponto de entrada.
- A referência oficial informa que o ponto está localizado no final da função A120TudOk().
- O ponto é disparado após a confirmação dos itens da GetDados e antes do rodapé da dialog do pedido de compra.
- O programa fonte informado no TDN é MATA120.PRX.
- A base histórica do catálogo também relaciona o ponto ao Pedido de Compra - MATA121.PRX; por isso, a página mantém as duas referências de rotina no contexto editorial.
- Embora a sintaxe não declare parâmetros formais, o exemplo trabalha com variáveis de contexto como aHeader e aCols.
- Não presuma que as posições de C7_PRODUTO, C7_QUANT e C7_PRECO sejam fixas; localize os campos no aHeader antes de acessar aCols.
- Atenção à última posição da linha do aCols, usada com frequência para indicar linha marcada/excluída no browse.
- Evite retornar .F. sem orientar o usuário sobre o motivo da interrupção.
- Não execute processos demorados nessa validação sem avaliar o impacto na confirmação do pedido.
- Evite includes legados em novos códigos quando não forem necessários; mantenha apenas as dependências exigidas pelo fonte.

Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.