Como atualizar a Natureza do Documento de Entrada via AdvPL

No artigo de hoje vamos demonstrar em como atualizar a natureza na tela do Documento de Entrada via AdvPL.

Supondo que você tenha um cenário, que no pedido de compras, você já tenha uma Natureza vinculada, e ai precisa que ao selecionar o pedido de compras na tela de documento de entrada, seja usado essa que já foi definida no pedido.

 

Abaixo a lógica desenvolvida:

  1. Criação do ponto de entrada MT103IPC
  2. Dentro dessa função, vai validar se o campo de natureza no pedido foi preenchido (campo customizado C7_X_NATUR)
  3. Se tiver preenchido e for diferente da natureza atual
  4. Vai alterar a natureza através do acionado da MaFisAlt
  5. Por fim vai atualizar a tela com GetDRefresh

 

Abaixo o exemplo do código fonte:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function MT103IPC
Ponto de Entrada acionado ao incluir uma linha no Doc De Entrada via seleção de Pedido de Compra (F5 ou F6)
@type  Function
@author Atilio
@since 04/09/2021
@see https://tdn.totvs.com/display/public/PROT/MT103IPC+-+Atualiza+campos+customizados+no+Documento+de+Entrada
/*/

User Function MT103IPC()
    Local aArea     := GetArea()
    Local nLinha    := ParamIXB[1]
    Local cNatureza := MaFisRet(, "NF_NATUREZA")

    //Se tiver natureza no pedido
    If ! Empty(SC7->C7_X_NATUR)
        //Se estiver diferente da tela do Documento de Entrada, atualiza na tela
        If SC7->C7_X_NATUR != cNatureza
            cNatureza := SC7->C7_X_NATUR
            MaFisAlt("NF_NATUREZA", cNatureza)
            GetDRefresh()
        EndIf
    EndIf

    RestArea(aArea)
Return    

Bom pessoal , por hoje é só.

 

Abraços até a próxima. 

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

1 Response

  1. Mauro Junior disse:

    Mas é se o pedido tiver vários itens com naturezas diferentes?

Deixe uma resposta

Terminal de Informação