Atualizar automaticamente os parâmetros de data na tela Nfe Sefaz

No artigo de hoje, vamos ver como atualizar os parâmetros automaticamente de data na tela Nfe Sefaz.

Recentemente em um cliente nos perguntaram se teria como atualizar automaticamente as datas ao abrir a tela NFe Sefaz, trazendo sempre as datas mais atuais.

 

A ideia então é:

  1. Usar o p.e. ChkExec e nele se vier da rotina SPEDNFE vai acionar nossa customização
  2. Nela vai atualizar os parâmetros de data para puxar dos 3 últimos dias

 

Abaixo como ficou o p.e. ChkExec:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function ChkExec
Ponto de Entrada acionado ao clicar em alguma opção no menu
@type  Function
@author Atilio
@since 16/10/2025
@see https://tdn.totvs.com/display/public/framework/CHKEXEC+-+Dispara+ponto+de+entrada
/*/

User Function ChkExec()
    Local lContinua := .T.
    Local cFuncao	:= Upper(ParamIXB)

    //Se for a função NFE Sefaz
    If ("SPEDNFE" $ cFuncao) .And. ! IsBlind()
        u_zAtuParNfe()
    EndIf

Return lContinua

E abaixo como ficou nossa customização zAtuParNfe:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} zAtuParNfe
Função para atualizar as datas de emissão de/até na tela de parâmetros da tela NFe Sefaz
@type user function
@author Atilio
@since 02/03/2026
@obs Similar ao SetMvValue, mas usando ParamSave pois é um ParamBox
/*/

User Function zAtuParNfe()
    Local aArea      := FWGetArea()    
    Local cGrupo     := FWGrpCompany()
    Local cFil       := FWCodFil()
    Local cLoadName  := "SPEDNFE" + cGrupo + cFil
    Local aRespostas := {}
    Local aBackup    := NgSalvaMvPa()

    //Define as respostas
    aRespostas := Array(5)
    aRespostas[01] := "1-Saída  "         //Tipo NFe
    aRespostas[02] := "2-Sem filtro      "    //Filtra
    aRespostas[03] := "1  "             //Série
    aRespostas[04] := DaySub(Date(), 3) //Data De
    aRespostas[05] := Date()             //Data Até

    //Define agora nos MV_PAR
    MV_PAR01 := aRespostas[01]
    MV_PAR02 := aRespostas[02]
    MV_PAR03 := aRespostas[03]
    MV_PAR04 := aRespostas[04]
    MV_PAR05 := aRespostas[05]

    //Atualiza os parâmetros em memória
    ParamSave(cLoadName, aRespostas, "1")

    NgRetAuMVPa(aBackup)
    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.

Abraços e 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.

Deixe uma resposta

Terminal de Informação