RUN TRIGGER NO CAMPO C6_OPER NÃO DA CERTO

Pessoal tenho uma função e executo ela quando o pedido de venda no ponto de entrada A410CONS, fica no menu em outras ações.

Os gatilhos do campo c6_oper não são executados. Podem me ajudar ?

User Function A410CONS()

Local aButtons := {}

Aadd(aButtons,{"Simulacao",{|| ReproIT() }, "Proc: Reserva [ACF/Duco]"})

Return(aButtons)

Static Function ReproIT() Local _nx Local _Oper Local nVlrUnit Local nVlrItem Local nPosCol

If cEmpAnt = '01' .And. cFilAnt = '01'

If Alltrim(SC5->C5_NOTA) != ''

MsgAlert("ATENÇÃO: PEDIDO ja teve a Nota FISCAL gerada - A410CONS") Else

If M->C5_CLIENTE $ '004800#002166'

For _nx := 1 to Len(ACOLS)

If !(aCols[_nx][len(aCols[_nx])])

If M->C5_CLIENTE = '004800' _Oper := '01' Else _Oper := '05' EndIf

//aCols[_nx][GdFieldPos("C6_OPER")] := _Oper GDFieldPut("C6_OPER", _Oper) M->C6_OPER := _Oper //nPosCol := Ascan(aHeader,{|x|Alltrim(Upper(x[2]))=="C6_OPER"})

If ExistTrigger('C6_OPER') // verifica se existe trigger para este campo //RunTrigger(nPosCol,_nx,nil,,'C6_OPER') RunTrigger(2,_nx,nil,,'C6_OPER') Endif

nPrdQtd := GDFieldGet("C6_QTDVEN") nVlrUnit := GDFieldGet("C6_PRCVEN")

If nVlrUnit = Nil nVlrUnit := 1 EndIf

nVlrItem := nVlrUnit * nPrdQtd nVlrItem := Round(nVlrItem, 2)

GDFieldPut("C6_VALOR", nVlrItem) //aCols[_nx][GdFieldPos("C6_VALOR")] := nVlrItem M->C6_VALOR := nVlrItem A410MultT()

GDFieldPut("C6_PRUNIT", nVlrUnit) //aCols[_nx][GdFieldPos("C6_PRUNIT")] := nVlrUnit M->C6_PRUNIT := nVlrUnit

EndIf

Next _nx

MsgAlert("Reprocessado todos os ITENS - A410CONS") Else MsgAlert("ATENÇÃO: Funcionalidade disponível apenas para os clientes [004800#002166] - A410CONS") EndIf EndIf

Else MsgAlert("ATENÇÃO: Rotina Disponível apenas para a Duco-Matriz - A410CONS") Endif

Return

compartilhar
  • Rhander essa Static Function é realmente executada você verificou? Porque chamando assim a partir de um botão não sei se ele executa, ou se seria necessário trabalhar com User Function. Outra coisa que observei o campo C6_OPER você não preencheu nada é assim mesmo? Não teria que você colocar algo no campo para poder depois executar o gatilho?

    Cirilo Rocha   30 de Sep de 2022
  • Chamo a Static Function do Menu e o campo C6_OPER é povoado dependendo do Cliente. Ja fiz o debug e tudo. GDFieldPut("C6_OPER", _Oper) M->C6_OPER := _Oper

    Rhander   04 de Oct de 2022
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags advpl trigger ou faça a sua própria pergunta.