-
Total de ítens
325 -
Registro em
-
Última visita
-
Days Won
1
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Rodrigo - Digibyte postou
-
Sped ECF Disponibilizado do Trunk2
Rodrigo - Digibyte replied to Isaque Pinheiro's tópico in ACBrSPEDECF
Atualizei e estou fazendo grandes alterações no bloco 0 e na units acbrspedecf pois não estavam sendo gerados vários registros. Aguardem que ainda hoje posto as alterações. -
Erro procedure TACBrSPEDContabil.InicializaBloco(Bloco: TACBrSPED)
um tópico no fórum postou Rodrigo - Digibyte ACBrSPEDContabil
Boa tarde, a procedure como está gera um erro AV, para corrigir voltei ao que era anteriormente, seguem os dois blocos para análise: Com erro: Bloco.NomeArquivo := FACBrTXT.NomeArquivo; Bloco.LinhasBuffer := FACBrTXT.LinhasBuffer; Bloco.Gravado := False ; Bloco.Conteudo.Clear; <<---- erro AV Sem erro: Bloco.NomeArquivo := FACBrTXT.NomeArquivo; Bloco.LinhasBuffer := FACBrTXT.LinhasBuffer; Bloco.Gravado := False ; if not Assigned(Bloco.Conteudo) then Bloco.Conteudo := TStringList.Create; Bloco.Conteudo.Clear; Obs: repositório trunk -
Os mantenedores do acbr poderiam dar uma força e incluir o ecf na instalação do acbr? Assim ficaria mais fácil para usarmos e principalmente implementarmos as correções, que estariam disponíveis no svn para todos. Se não for possível posso tentar por aqui mas tenho medo de estar fazendo em desacordo com o padrão que utilizam ou outro usuários estar fazendo a mesma coisa/correçoes em paralelo.
-
Alguém tem os fontes mais atualizados que os do svn? Quero começar a mexer/testar o sped ecf
-
Correção Geração Registros I155 E I310
um tópico no fórum postou Rodrigo - Digibyte ACBrSPEDContabil
Os totalizadores desses registros estavam sendo gerados de forma incorreta, o do I155 estava fora de ordem (mas validava no pva), o do I310 não totalizava e acusava erro. Constatei s seguinte trecho de código, mesma coisa ocorria no WriteRegistroI150: procedure TACBrSPEDContabil.WriteRegistroI300; begin if Bloco_I.RegistroI300.Count > 0 then begin with Bloco_9.Registro9900.New do begin REG_BLC := 'I300'; QTD_REG_BLC := Bloco_I.RegistroI300.Count; end; end; if Bloco_I.RegistroI310Count > 0 then begin with Bloco_9.Registro9900.New do begin REG_BLC := 'I310'; QTD_REG_BLC := Bloco_I.RegistroI310Count; end; end; Bloco_I.WriteRegistroI300; end; Correção: procedure TACBrSPEDContabil.WriteRegistroI300; begin Bloco_I.WriteRegistroI300; if Bloco_I.RegistroI300.Count > 0 then begin with Bloco_9.Registro9900.New do begin REG_BLC := 'I300'; QTD_REG_BLC := Bloco_I.RegistroI300.Count; end; end; if Bloco_I.RegistroI310Count > 0 then begin with Bloco_9.Registro9900.New do begin REG_BLC := 'I310'; QTD_REG_BLC := Bloco_I.RegistroI310Count; end; end; end; Outro erro que acabava gerando os totais mas fora de ordem e do padrão: procedure TACBrSPEDContabil.WriteRegistroI990; begin with Bloco_9.Registro9900.New do begin REG_BLC := 'I990'; QTD_REG_BLC := 1; end; Bloco_I.WriteRegistroI990; with Bloco_9.Registro9900 do begin if Bloco_I.RegistroI155Count > 0 then begin with New do begin REG_BLC := 'I155'; QTD_REG_BLC := Bloco_I.RegistroI155Count; end; end; if Bloco_I.RegistroI250Count > 0 then begin with New do begin REG_BLC := 'I250'; QTD_REG_BLC := Bloco_I.RegistroI250Count; end; end; end; end; O trecho em vermelho foi retirado pois agora os totais estão sendo gerados no local correto. Validei aqui e funcionou tudo certo mas é sempre bom alguém com mais experiência no ACBR dar uma olhada se as alterações estão corretas. ACBrSpedContabil.pas -
Correção Validações Registro 0000
Rodrigo - Digibyte replied to Rodrigo - Digibyte's tópico in ACBrSPEDContabil
Ops, achei que tinha anexado, segue ... ACBrECDBloco_0_Class.pas -
Existiam duas mensagens de erro/aviso que estavam sendo tratadas incorretamente, segue correção em anexo 1) (0-0000) O indicador "%s" de situação especial, deve ser informado o número 1 ou 2 ou 3 ou 4 ou 5! Estava duplicado no código Não respeitava os valores possíveis de acordo com o layout/ano Dava mensagem de erro ao ser informado em branco, qué é a situação mais comum e possível 2) (0-0000) A inscrição estadual "%s" digitada é inválida! Algumas empresas não tem IE, não estava sendo tratada essa possibilidade
-
Boa tarde, gostaria de saber o que significa "orgão gerador" na nfse. Ocorre que na importação de algumas notas o código do município está vindo (aparentemente) errado dentro da tag <orgaogerador><codigomunicipio>, com isso o acbr não localiza o provedor e não é feita a importação pois esta é a primeira tag que é verificada para determinar o provedor: unit pnfsNFSeR; if FProvedor = proNenhum then begin if (Leitor.rExtrai(1, 'OrgaoGerador') <> '') then begin CM := Leitor.rCampo(tcStr, 'CodigoMunicipio'); FProvedor := StrToProvedor(Ok, CodCidadeToProvedor(StrToIntDef(CM, 0))); end; if (CM = '') or (CM = '0') then begin if (Leitor.rExtrai(1, 'Servico') <> '') then begin CM := Leitor.rCampo(tcStr, 'CodigoMunicipio'); FProvedor := StrToProvedor(Ok, CodCidadeToProvedor(StrToIntDef(CM, 0))); end; end; if (CM = '') or (CM = '0') then begin if (Leitor.rExtrai(1, 'PrestadorServico') <> '') then begin CM := OnlyNumber(Leitor.rCampo(tcStr, 'CodigoMunicipio')); if CM = '' then CM := Leitor.rCampo(tcStr, 'Cidade'); FProvedor := StrToProvedor(Ok, CodCidadeToProvedor(StrToIntDef(CM, 0))); end else FProvedor := proNenhum; end; { Alterado Por Cleiver em - 22-08-2014 } if (FProvedor = proNenhum) and (Pos('https://nfse.goiania.go.gov.br/ws/'Leitor.Arquivo) > 0) then FProvedor := proGoiania; end;
-
Para Os Mantenedores Nfse - Lentidão Ao Importar Lote Rps
um tópico no fórum postou Rodrigo - Digibyte ACBrNFSe
Estava fazendo alguns testes de importação de lote nfse com um arquivo contendo cerca de 650 notas. Ao tentar fazer a importação notei que o sistema travava no método LoadFromFile, debugando a unit notei que o problema eram nas funções StringReplace de Delphi que são muito lentas ao menipular uma quantidade maior de caracteres. Essas 650 notas quando chegou em 5 minutos desisti de esperar ... se pesquisarem por "faster delphi stringreplace" no google irão ver que essa lentidão é bastante discutida Pesquisando um pouco achei alguns substitutos otimizados para o StringReplace, um deles foi o StrReplace, da biblioteca Jedi (unit JclStrings). Fiz as alterações no código para testar e agora demora cerca de 20 segundos a importação. Gostaria de saber a posição dos demais programadores a respeito de uma possível alteração, incorporando a função StrReplace do Jedi dentro do ACBR. A dica peguei neste link http://conferences.embarcadero.com/article/32120 no final do artigo (Alternative String Routines (FastStrings and other Libraries)) Abaixo os trechos de código alterado: Unit AcbrNfseNotasFiscais try {$IFDEF DELPHI2009_UP} Encoding := NotaUtil.LoadXML(CaminhoArquivo); {$ENDIF} ArquivoXML := TStringList.Create; ArquivoXML.LoadFromFile(CaminhoArquivo {$IFDEF DELPHI2009_UP},Encoding{$ENDIF}); Result := True; aux := ArquivoXML.Text; StrReplace(aux, '<', '<', [rfReplaceAll]); StrReplace(aux, '>', '>', [rfReplaceAll]); // ArquivoXML.Text := StrReplace(StringReplace( ArquivoXML.Text, '<', '<', [rfReplaceAll]), '>', '>', [rfReplaceAll]); ArquivoXML.Text := NotaUtil.RetirarPrefixos(aux); Unit AcbrNfseUtil class function NotaUtil.RetirarPrefixos(const AXML: String): String; var XML: string; begin XML := AXML; StrReplace( XML, 'ns1:', '', [rfReplaceAll] ); StrReplace( XML, 'ns2:', '', [rfReplaceAll] ); StrReplace( XML, 'ns3:', '', [rfReplaceAll] ); StrReplace( XML, 'ns4:', '', [rfReplaceAll] ); StrReplace( XML, 'ns5:', '', [rfReplaceAll] ); StrReplace( XML, 'tc:', '', [rfReplaceAll] ); StrReplace( XML, 'ii:', '', [rfReplaceAll] ); StrReplace( XML, 'p1:', '', [rfReplaceAll] ); StrReplace( XML, 'nfse:', '', [rfReplaceAll] ); StrReplace( XML, 'soap:', '', [rfReplaceAll] ); StrReplace( XML, 'soap12:', '', [rfReplaceAll] ); StrReplace( XML, 'SOAP-ENV:', '', [rfReplaceAll] ); result := XML; end; -
Bom dia, um cliente me mandou um xml que é o lote de notas gerados pela prefeitura de João Pessoa. É possível fazer a importação dessas notas com auxílio do ACBR? Se for possível podem dar uma dica das configurações básicas pra isso?
-
Boa tarde, ao tentar compilar meu projeto (após uma atualização hoje) está retornando erro nas linhas abaixo destacadas. Verifiquei rapidamente e aparentemente está errado mesmo. Erro: "[DCC Error] pcnRetEnvEventoNFe.pas(274): E2018 Record, object or class type required" while Leitor.rExtrai(3, 'chNFePend', '', j + 1) <> '' do begin FretEvento.Items.FRetInfEvento.chNFePend.Add; FretEvento.Items.FRetInfEvento.chNFePend[j].ChavePend := Leitor.rCampo(tcStr, 'chNFePend'); inc(j); end; inc(i); end;
-
Proposta Arquivos Esocial - Layout V1.0 - 17/07/2013
Rodrigo - Digibyte replied to Lucas Peres da Silva's tópico in ACBreSocial
Não tem como termos acesso a uma pasta específica do SVN, só para o esocial? O controle das alterações seria bem mais fácil -
Proposta Arquivos Esocial - Layout V1.0 - 17/07/2013
Rodrigo - Digibyte replied to Lucas Peres da Silva's tópico in ACBreSocial
Preciso estar a par também dos rumos do componente, poderíamos conversar via skype -
Proposta Arquivos Esocial - Layout V1.0 - 17/07/2013
Rodrigo - Digibyte replied to Lucas Peres da Silva's tópico in ACBreSocial
Precisamos de ajuda sim, o jeancantu ia dar uma olhada e estou esperando retorno dele, se quizer baixar e fazer uns testes seria uma boa. Não vi que saiu a versão 1.2 mas isso podemos ver depois, precisamos definir o projeto inicial e quem faz o quê. -
Proposta Arquivos Esocial - Layout V1.0 - 17/07/2013
Rodrigo - Digibyte replied to Lucas Peres da Silva's tópico in ACBreSocial
Esqueçi, gerando no layout versão 1.1 -
Proposta Arquivos Esocial - Layout V1.0 - 17/07/2013
Rodrigo - Digibyte replied to Lucas Peres da Silva's tópico in ACBreSocial
Pessoal, estou anexando o que tenho do projeto. Estão sendo gerados os eventos iniciais e mais as duas primeiras tabelas. A situação é a seguinte: o programador que estava na empresa saiu (talvez dê continuidade como free) então não sei exatamente a situação do componente. Ele foi feito baseado no ACBRNfe, seguindo o mesmo padrão, gostaria de seguir esse caminho. Precisamos acertar as arestas, o ponto inicial para então darmos continuidade. Por favor, qualquer duvida me perguntem ou passem mensagem, inclusive se faltou alguma coisa .... AcbrEsocial.zip -
Proposta Arquivos Esocial - Layout V1.0 - 17/07/2013
Rodrigo - Digibyte replied to Lucas Peres da Silva's tópico in ACBreSocial
Sim, completamos os eventos iniciais e atualizamos o layout. Me comprometo a colocar isso aqui até amanhã. Feito isso podemos ter um ponto de partida pra melhorarmos o componente. Rodrigo. -
Proposta Arquivos Esocial - Layout V1.0 - 17/07/2013
Rodrigo - Digibyte replied to Lucas Peres da Silva's tópico in ACBreSocial
O que precisar é só ir perguntando ou me passando mensagem. -
Estou aos poucos implementando o componente mas seria importante se desse um feedback sobre a usabilidade do mesmo, sugestões, etc
-
Proposta Arquivos Esocial - Layout V1.0 - 17/07/2013
Rodrigo - Digibyte replied to Lucas Peres da Silva's tópico in ACBreSocial
Segue mais uma atualização com novos registros, quanto as alterações que houveram em breve terá mais uma atualização.AcbrEsocial.zip -
Proposta Arquivos Esocial - Layout V1.0 - 17/07/2013
Rodrigo - Digibyte replied to Lucas Peres da Silva's tópico in ACBreSocial
Já tenho vários outros registros prontos no ACBResocial, vou ver se até amanhã posto aqui. -
Proposta Arquivos Esocial - Layout V1.0 - 17/07/2013
Rodrigo - Digibyte replied to Lucas Peres da Silva's tópico in ACBreSocial
Segue componente e exemplo de uso, lembrando que está em fase inicial Depois temos que organizar quem faz o que pra não repetir trabalho ACBr.rar -
Proposta Arquivos Esocial - Layout V1.0 - 17/07/2013
Rodrigo - Digibyte replied to Lucas Peres da Silva's tópico in ACBreSocial
Vou disponibilizar os fontes ainda hoje, na verdade aproveitei parte de sua idéia mas implementando conforme é a nota fiscal eletrônica no acbr ...