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:
- Criação do ponto de entrada MT103IPC
- Dentro dessa função, vai validar se o campo de natureza no pedido foi preenchido (campo customizado C7_X_NATUR)
- Se tiver preenchido e for diferente da natureza atual
- Vai alterar a natureza através do acionado da MaFisAlt
- 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.
Mas é se o pedido tiver vários itens com naturezas diferentes?