Ir para conteúdo
  • Cadastre-se

Pesquisar na Comunidade

Showing results for tags 'drawback'.

  • Search By Tags

    Digite tags separadas por vírgulas
  • Search By Author

Tipo de Conteúdo


Fóruns

  • Fórum Aberto - ACBr
    • Notícias do ACBr
    • Equipamentos testados
    • Base de Conhecimento
    • Dúvidas Gerais sobre o ACBr
    • ACBrSerial
    • ACBrSAT
    • ACBrNFe
    • ACBrDFe
    • Dúvidas sobre TEF
    • Dúvidas sobre PIX
    • ACBrMonitor PLUS
    • ACBrTXT
    • ACBrBoleto
    • ACBrDiversos
    • ACBrTCP
    • ACBrFramework
    • ACBrLIB
  • ACBr Pro
    • Dúvidas gerais
    • ACBrMonitorPLUS
    • NFe/NFCe - Nota Fiscal Eletrônica
    • DFe - Documentos Fiscais Eletrônicos
    • SAT / MFE
    • TEF
    • Boleto
    • ACBrSPED
    • ACBrTXT
    • Paf-ECF
    • Requisitos Fiscais por UF
    • ACBrLIB
  • Outros Assuntos
    • Boteco do ACBr
    • Legislação Fiscal e Tributária
    • Object Pascal - Delphi & Lazarus
    • Banco de Dados
    • Classificados
    • Dúvidas não relacionadas ao ACBr

Categorias

  • ACBr Pro
    • ACBrLib - PRO
    • ACBrMonitorPLUS - PRO
    • Utilitários - PRO
    • Dia do ACBr 1a edição
    • Dia do ACBr 2a edição
  • Download Livre
    • ACBrLib - DEMO
    • ACBrMonitorPLUS - DEMO
    • Demos / Testes / Utilitários
    • Apresentações - Palestras

Calendários

  • Eventos - Palestras - Webinars
  • Prazos SEFAZ
  • Calendário da Comunidade
  • ACBr Papo Pro
  • Feriados Nacionais

Find results in...

Find results that contain...


Data de Criação

  • Início

    End


Data de Atualização

  • Início

    End


Filter by number of...

Data de Registro

  • Início

    End


Grupo


Website URL

Encontrado 2 registros

  1. A atual função ValidaDrawback não está, na revisão atual do SVN (22620), contemplando a Nota Técnica 2020/005 da NFe que diz: *Esse novo tamanho é de 20 caracteres. Como pode ser observado no código abaixo, apenas número são aceitos, apesar do argumento ser String, e apenas códigos de tamanho 11 e 9 são aceitos. function ValidaDrawback(AValue: String): Boolean; var ano: integer; begin // AValue = AAAANNNNNND // Onde: AAAA Ano corrente do registro // NNNNNN Número sequencial dentro do Ano ( 6 dígitos ) // D Dígito Verificador, Módulo 11, Pesos de 2 a 9 AValue := OnlyNumber(AValue); ano := StrToInt(Copy(IntToStr(YearOf(Date)), 3, 2)); if length(AValue) = 11 then AValue := copy(AValue, 3, 9); if length(AValue) <> 9 then Result := False else if not ((StrToInt(copy(Avalue, 1, 2)) >= ano - 2) and (StrToInt(copy(Avalue, 1, 2)) <= ano + 2)) then Result := False else Result := copy(AValue, 9, 1) = Modulo11(copy(AValue, 1, 8)); end; Ainda não encontrei nenhum novo formato e o próprio arquivo de leiaute da SEFAZ informa o mesmo formato de antes para drawback. Como uso essa função no meu aplicativo para realizar a validação do código conforme o usuário edita as informações, no momento não consigo acompanhar essa mudança. Alguém sabe se há alguma iniciativa para alguma correção ou se alguém já descobriu esse novo formato? Obrigado.
  2. Olá gostaria de sugerir uma correção na validação do Drawback da NFe, me deparei essa semana com uma nota de importação de um cliente, o qual tem seu registro de Drawback iniciando com 2016, sua concessão do Drawback é valido por 2 anos, conforme anexo abaixo destaquei data de registro e validade, acontece que o ACBR NFe existe uma validação que estava retornando Falso o qual impedia a emissão da NFe, ajustei o método ValidaDrawback do fonte ACBrDFeUtil.pas, anexei nesse post tanto o fonte completo como o patch de correção do ACBr como for mais fácil para comparar com minha alteração. Também aproveito para postar aqui o código de como estava: function ValidaDrawback(AValue: String): Boolean; var ano: integer; begin // AValue = AAAANNNNNND // Onde: AAAA Ano corrente do registro // NNNNNN Número sequencial dentro do Ano ( 6 dígitos ) // D Dígito Verificador, Módulo 11, Pesos de 2 a 9 AValue := OnlyNumber(AValue); ano := StrToInt(Copy(IntToStr(YearOf(Date)), 3, 2)); if length(AValue) = 11 then AValue := copy(AValue, 3, 9); if length(AValue) <> 9 then Result := False else if not ((StrToInt(copy(Avalue, 1, 2)) >= ano - 1) and (StrToInt(copy(Avalue, 1, 2)) <= ano + 1)) then Result := False else Result := copy(AValue, 9, 1) = Modulo11(copy(AValue, 1, 8)); end; E como ficou depois da minha alteração: function ValidaDrawback(AValue: String): Boolean; var ano: integer; begin // AValue = AAAANNNNNND // Onde: AAAA Ano corrente do registro // NNNNNN Número sequencial dentro do Ano ( 6 dígitos ) // D Dígito Verificador, Módulo 11, Pesos de 2 a 9 AValue := OnlyNumber(AValue); ano := StrToInt(Copy(IntToStr(YearOf(Date)), 3, 2)); if length(AValue) = 11 then AValue := copy(AValue, 3, 9); if length(AValue) <> 9 then Result := False else if not ((StrToInt(copy(Avalue, 1, 2)) >= ano - 2) and (StrToInt(copy(Avalue, 1, 2)) <= ano + 2)) then Result := False else Result := copy(AValue, 9, 1) = Modulo11(copy(AValue, 1, 8)); end; Qualquer dúvida estou a disposição e agradeço caso a sugestão de alteração seja aceita. ACBrDFeUtil.pas.patch ACBrDFeUtil.pas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...