Bug Ano 2022
Enviado: 04 Jan 2022 10:28
Para quem utiliza e/ou integra vossa aplicação com uma DLL Delphi na qual é utilizada a função FormatDateTime('yymmddhhmm', Now), deve estar se deparando com um erro do tipo: <numero> is not a valid integer value.
Adotei a seguinte solução, digo isto para quem tem acesso à recompilação da tal DLL:
Todo <idLote> que adota este controle sequencial via DLL será tratado como um parâmetro que será gerado pela minha aplicação.
Isto é em razão do <idLote> ser "Número seqüencial autoincremental único para identificação do Lote." conforme reza nos MOC de alguns DFe.
Podendo também, para quem achar util, utilizar a função abaixo para adotar como sequencial sem a exigência do "anterior + 1"...
Adotei a seguinte solução, digo isto para quem tem acesso à recompilação da tal DLL:
Todo <idLote> que adota este controle sequencial via DLL será tratado como um parâmetro que será gerado pela minha aplicação.
Isto é em razão do <idLote> ser "Número seqüencial autoincremental único para identificação do Lote." conforme reza nos MOC de alguns DFe.
Podendo também, para quem achar util, utilizar a função abaixo para adotar como sequencial sem a exigência do "anterior + 1"...
Código: Selecionar todos
function BugAno2022Sequencial(dData, cTime)
// #toya: 04/01/2022 - 10:18:40 - JOB#NFe - Projeto Mrb
local Result := .t.
local n0 := 0
local n1 := 0
local n2 := 0
local n31122021 := 211231
local nDifBug := 0
local cDia := ""
local cMes := ""
local cAno := ""
local cData := ""
local cHora := ""
local cMinutos := ""
DEFAULT dData := date()
DEFAULT cTime := time()
cDia := strzero(day(dData), 2, 0)
cMes := strzero(month(dData), 2, 0)
cAno := strzero(year(dData), 4, 0)
cData := substr(cAno, 3) + cMes + cDia
cHora := left(cTime, 2)
cMinutos := substr(cTime, 4, 2)
if dData >= ctod("01/01/2022")
n0 := val(cData)
nDifBug := n0 - n31122021
n1 := (n0 - nDifBug) + 1
n2 := strzero(n1, 6, 0) + cHora + cMinutos
else
n2 := strzero(val(cData), 6, 0) + cHora + cMinutos
endif
return n2