Sim, os schemas estão atualizados.
Olhei os fontes do Acbr e descobri uma validação do número da DI:
class function DFeUtil.ValidaDIDSI(AValue: string): Boolean;
var
ano: Integer;
begin
// AValue = TAANNNNNNND
// Onde: T Identifica o tipo de documento ( 2 = DI e 4 = DSI )
// AA Ano corrente da geração do documento
// NNNNNNN Número sequencial dentro do Ano ( 7 dígitos )
// D Dígito Verificador, Módulo 11, Pesos de 2 a 9
AValue := LimpaNumero(AValue);
ano := StrToInt(Copy(IntToStr(YearOf(Date)), 3, 2));
if length(AValue) <> 11 then
Result := False
else if (copy(Avalue, 1, 1) <> '2') and (copy(Avalue, 1, 1) <> '4') then
Result := False
else if not ((StrToInt(copy(Avalue, 2, 2)) >= ano -1) and (StrToInt(copy(Avalue, 2, 2)) <= ano +1)) then
Result := False
else
Result := copy(AValue, 11, 1) = Modulo11(AValue);
end;
O problema esta ai: if length(AValue) <> 11 then
com a mudança na NT2011/004 o número da DI pode ser de 12 dígitos.
Dá uma conferida neste código por favor. Vou mudar aqui e ver se funciona.
Obrigada.
Patrícia