Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 11-06-2021 em todas as áreas

  1. Olá, Acabamos de enviar para o SVN do ACBr, no commit 22076 um importante ajuste, para o componente ACBrPosPrinter conseguir identificar corretamente, todas as impressoras EPSON de Bobina. Após a atualização dos fontes do ACBr, toda a Linha de impressoras da EPSON, que utilizam Esc/Pos, podem ser identificadas e acessadas pelo ACBr, simplesmente configurando a Porta com a string: 'USB'. Explicando um pouco mais... As impressoras da linha de Ponto de Venda, da EPSON, podem ser configuradas em modos PrinterClass, e VendorClass Este vídeo da EPSON, fala um pouco mais sobre os Modos PrinterClass e VendorClass Antes, se usássemos a sintaxe de Porta = 'USB', o ACBr somente conseguia encontrar as impressoras da EPSON, se elas estivessem configuradas no modo PrinterClass... mas agora também conseguimos encontrar e acessar as impressoras EPSON em modo VendorClass Portanto, todas as Impressoras das fotos abaixo, são acessíveis, apenas usando: ACBrPosPrinter.Porta := 'USB'; Acessando a Impressora diretamente pela USB, o ACBrPosPrinter também conseguirá, ler status e informações da impressora... Impressoras das Fotos, da Esquerda para a Direita: TM-H6000IV, TM-88V, TM-L90, TM-T20 e TM-T20X
    9 pontos
  2. Olá! Tudo bem? Pessoal,para quem enfrenta problemas com o erro Erro: 12029 - Conexão com o Servidor falhou ou 13157 em ambiente de homologacao do ACBRMonitor para emitir nfe no windows 7 service Pack 1,descobri 2 soluções para o caso. 1ª Opção : Deve ser atualizado o Windows 7 com todas as atualizações disponiveis no site da microsoft e baixar o AIO Runtimes (All in one contem todos os microsoft framework e demais necessarios ) e atualizar o Internet Explorar para o 11 sendo que precisa baixar as atualizações dele. 2 ª opção : Atualizar o windows 7 para o windows 10 e baixar as atualizações,esse segundo metodo deve ser utilizado o atualizador da microsoft que muda a versao do windows 7 ou 8,8.1 para o Windows 10. Espero ter ajudado.
    5 pontos
  3. Boa tarde! Atualizei o repositório do ACBr para a última revisão (22027), e creio ter encontrado um erro que invalida o arquivo XML no envio do evento S-3000 do eSocial, caso a versão do layout seja menor ou igual a 2.5. Houve uma alteração que acabou retirando a inclusão do campo "indApuracao" no grupo "ideFolhaPagto" para exclusão do evento S-1210. Porém este campo só se tornará opcional na versão simplificada do layout. Assim, coloquei uma condição para gerar o referido campo caso a versão do eSocial seja menor ou igual a 2.5. Em anexo está o arquivo conforme alterei. pcesS3000.pas
    2 pontos
  4. Leiaute informa que em caso de CNO o FAP deve ser informado independente de ter ou não processo judicial para o FAP. Em caso de CNO e não ser informado o FAP ocorre erro no retorno do eSocial: "Campo de preenchimento obrigatório: FAP" Segue abaixo os fontes atualizados. pcesS1005.paspcesGerador.pas
    1 ponto
  5. Senhores, boa tarde. Fizemos alguns testes na versão simplificada do evento 2399 e precisamos modificar algumas linhas para validar corretamente. Segue o arquivo anexo, coloquei comentários nas linhas alteradas com a data de 04/06/2021, abaixo tb estará disponível function TEvtTSVTermino.LerArqIni(const AIniString: String): Boolean; var INIRec: TMemIniFile; Ok: Boolean; sSecao, sFim: String; I, J, K, L, M: Integer; begin Self.VersaoDF := TACBreSocial(FACBreSocial).Configuracoes.Geral.VersaoDF; //04/06/2021 Result := True; INIRec := TMemIniFile.Create(''); ------------------------------------------------------------------------------------- sSecao := 'ideTrabSemVinculo'; ideTrabSemVinc.CpfTrab := INIRec.ReadString(sSecao, 'cpfTrab', EmptyStr); ideTrabSemVinc.NisTrab := INIRec.ReadString(sSecao, 'nisTrab', EmptyStr); ideTrabSemVinc.codCateg := INIRec.ReadInteger(sSecao, 'codCateg', 0); ideTrabSemVinc.matricula := INIRec.ReadString(sSecao, 'matricula', EmptyStr); //04/06/2021 -- ------------------------------------------------------------------------------------- with detVerbas.New do begin codRubr := sFim; ideTabRubr := INIRec.ReadString(sSecao, 'ideTabRubr', ''); qtdRubr := StringToFloatDef(INIRec.ReadString(sSecao, 'qtdRubr', ''), 0); fatorRubr := StringToFloatDef(INIRec.ReadString(sSecao, 'fatorRubr', ''), 0); vrUnit := StringToFloatDef(INIRec.ReadString(sSecao, 'vrUnit', ''), 0); vrRubr := StringToFloatDef(INIRec.ReadString(sSecao, 'vrRubr', ''), 0); indApurIR := eSStrToTpindApurIR(ok,INIRec.ReadString(sSecao, 'indApurIR', '')); //04/06/2021 Eduardo / Keli pcesS2399.pas
    1 ponto
  6. Senhores, boa tarde. Fizemos alguns testes na versão simplificada do evento 2300 e precisamos modificar algumas linhas para validar corretamente. Segue o arquivo anexo, coloquei comentários nas linhas alteradas com a data de 01/06/2021, abaixo tb estará disponível procedure TEvtTSVInicio.GerarFGTS(obj: TFGTS); begin if obj.dtOpcFGTS > 0 then begin if VersaoDF <= ve02_05_00 then Gerador.wGrupo('fgts') else Gerador.wGrupo('FGTS'); if VersaoDF <= ve02_05_00 then //01/06/2021 Gerador.wCampo(tcStr, '', 'opcFGTS', 1, 1, 1, eSOpcFGTSToStr(obj.OpcFGTS)); //if VersaoDF <= ve02_05_00 then //01/06/2021 Gerador.wCampo(tcDat, '', 'dtOpcFGTS', 10, 10, 0, obj.dtOpcFGTS); if VersaoDF <= ve02_05_00 then Gerador.wGrupo('/fgts') else Gerador.wGrupo('/FGTS'); end; end; -------------------------------------------------------------------------------- sSecao := 'infoTSVInicio'; infoTSVInicio.cadIni := eSStrToSimNao(Ok, INIRec.ReadString(sSecao, 'cadIni', 'S')); infoTSVInicio.codCateg := INIRec.ReadInteger(sSecao, 'codCateg', 0); infoTSVInicio.dtInicio := StringToDateTime(INIRec.ReadString(sSecao, 'dtInicio', '0')); infoTSVInicio.natAtividade := eSStrToNatAtividade(Ok, INIRec.ReadString(sSecao, 'natAtividade', '1')); infoTSVInicio.matricula := INIRec.ReadString(sSecao, 'matricula', ''); //01/06/2021 -------------------------------------------------------------------------------- sSecao := 'FGTS'; if INIRec.ReadString(sSecao, 'opcFGTS', '') <> '' then begin infoTSVInicio.infoComplementares.FGTS.OpcFGTS := eSStrToOpcFGTS(Ok, INIRec.ReadString(sSecao, 'opcFGTS', '1')); infoTSVInicio.infoComplementares.FGTS.DtOpcFGTS := StringToDateTime(INIRec.ReadString(sSecao, 'dtOpcFGTS', '0')); end; infoTSVInicio.infoComplementares.FGTS.DtOpcFGTS := StringToDateTime(INIRec.ReadString(sSecao, 'dtOpcFGTS', '0')); //01/06/2021 Grato Eduardo / Keli pcesS2300.pas
    1 ponto
  7. Senhores, boa tarde. Fizemos alguns testes na versão simplificada do evento 2306 e precisamos modificar algumas linhas para validar corretamente. Segue o arquivo anexo, coloquei comentários nas linhas alteradas com a data de 01/06/2021, abaixo tb estará disponível sSecao := 'infoComplementares'; if INIRec.ReadString(sSecao, 'codCargo', '') <> '' then begin infoTSVAlteracao.infoComplementares.cargoFuncao.CodCargo := INIRec.ReadString(sSecao, 'codCargo', ''); infoTSVAlteracao.infoComplementares.cargoFuncao.CodFuncao := INIRec.ReadString(sSecao, 'codFuncao', ''); end; infoTSVAlteracao.infoComplementares.cargoFuncao.nmCargo := INIRec.ReadString(sSecao, 'nmCargo', ''); //01/06/2021 infoTSVAlteracao.infoComplementares.cargoFuncao.CBOCargo := INIRec.ReadString(sSecao, 'CBOCargo', ''); //01/06/2021 infoTSVAlteracao.infoComplementares.cargoFuncao.nmFuncao := INIRec.ReadString(sSecao, 'nmFuncao', ''); //01/06/2021 infoTSVAlteracao.infoComplementares.cargoFuncao.CBOFuncao := INIRec.ReadString(sSecao, 'CBOFuncao', ''); //01/06/2021 --------------------------------------------------------------------------- sSecao := 'ideTrabSemVinculo'; ideTrabSemVinc.CpfTrab := INIRec.ReadString(sSecao, 'cpfTrab', EmptyStr); ideTrabSemVinc.NisTrab := INIRec.ReadString(sSecao, 'nisTrab', EmptyStr); ideTrabSemVinc.codCateg := INIRec.ReadInteger(sSecao, 'codCateg', 0); ideTrabSemVinc.matricula := INIRec.ReadString(sSecao, 'matricula', EmptyStr); //01/06/2021 --------------------------------------------------------------------------- procedure TEvtTSVAltContr.GerarInstEnsino(obj: TinstEnsino); begin Gerador.wGrupo('instEnsino'); Gerador.wCampo(tcStr, '', 'cnpjInstEnsino', 14, 14, 0, obj.cnpjInstEnsino); if (obj.cnpjInstEnsino = '') then //01/06/2021 -- Preenchendo somente se não tiver CNPJ begin Gerador.wCampo(tcStr, '', 'nmRazao', 1, 100, 1, obj.nmRazao); Gerador.wCampo(tcStr, '', 'dscLograd', 1, 80, 0, obj.dscLograd); Gerador.wCampo(tcStr, '', 'nrLograd', 1, 10, 0, obj.nrLograd); Gerador.wCampo(tcStr, '', 'bairro', 1, 60, 0, obj.bairro); Gerador.wCampo(tcStr, '', 'cep', 1, 8, 0, obj.cep); Gerador.wCampo(tcInt, '', 'codMunic', 7, 7, 0, obj.codMunic); Gerador.wCampo(tcStr, '', 'uf', 2, 2, 0, obj.uf); end; Gerador.wGrupo('/instEnsino'); end; Grato Eduardo / Keli pcesS2306.pas
    1 ponto
  8. Olá Pessoal, É com grande alegria e satisfação que a Equipe ACBr depois de quase 1 ano de trabalho comunica que já se encontra disponível para todos o novo componente para emissão de NFS-e. Por conta de varias melhorias e quebra de código optamos por manter o componente atual e disponibilizar o novo com um outro nome: ACBrNFSeX e também um novo componente para impressão do DANFSE: ACBrNFSeXDANFSERL (Fortes Report). Já esta disponível no repositório Trunk2 os fontes dos componentes bem como os pacotes de instalação (para o Delphi e Lazarus) e o programa exemplo para o Delphi). Em breve vai estar disponível o DANFSE feito em Fast Report, programa exemplo para o Lazarus e a atualização do ACBrInstall com a opção de instalação do novo componente. Estamos também elaborando um manual de migração que terá como objetivo ajudar os desenvolvedores que utilizam o componente atual a migrar para o novo. Esse manual vai apresentar as propriedades de configuração bem como os campos que não existem mais ou que tiveram seus nomes alterados e varias outras informações valiosas. Acreditamos que com o manual e o programa exemplo do novo componente qualquer desenvolvedor vai ser capaz de migrar a sua aplicação para o novo componente em uma semana, digo isso pois sempre aconselhamos que todos estudem o programa exemplo. O que esperar do novo componente: 1. Código mais limpo, removemos a maioria dos IF e CASE que antes eram utilizados para sanar a falta de padronização entre os provedores; 2. Um único método de emissão de NFS-e, que detecta automaticamente o modo de envio correto para cada provedor; 3. Leitura dos retornos padronizado; 4. Mais veloz; 5. Eliminação dos arquivos INI de provedores e o Cidades.ini, simplificando bastante os arquivos a serem distribuídos juntamente com o executável. 6. A implementação de novos provedores que seguem a versão 1 ou 2 do layout da ABRASF tendo todas as informações necessárias se faz em menos de 1 hora. O que vem pela frente: 1. Inclusão da NFS-e no ACBrMonitor Plus, desta forma os desenvolvedores que se utilizam dessa ferramenta em fim vão poder emitir também a NFS-e. 2. Desenvolvimento da ACBrLibNFSe, uma DLL para os desenvolvedores que preferem usar a DLL em vez do ACBrMonitor. Noticia: Nós achamos que o Projeto ACBr tem os melhores componentes disponíveis pelo melhor preço: grátis. Se você concorda, por favor espalhe essa noticia.
    1 ponto
  9. Boa tarde. Depois do meu primeiro tópico aqui no fórum, onde eu buscava uma solução para a importação do BLOCO_G gerado por empresa terceirizada, Agora venho lhes trazer a aplicação que desenvolvi para tal função. Essa aplicação não só importa o Bloco G, mas também insere o crédito no Registro E110, calcula o valor do ICMS apurado e atualiza o valor do ICMS a ser pago no Registro E110 e no E116, também insere o código de Ajuste RS... no Registro E111 (Vale lembrar que este código varia de UF para UF). De quebra, como o ERP que usamos não zera as DANFEs REFERENCIADAS de cupons fiscais ao exportar o arquivo do SPED, então criei uma rotina para zerar as Danfes com CFOP 5929. Registros C100 e C190 de saída. Estou deixando aqui a minha contribuição para com esta comunidade que me foi muito útil, deixo os fontes (COMENTADOS) da aplicação e a atualização do ACBrEFDBloco_G_Importar. ACBrEFDBloco_G_Importar.pas Ciap.dpr Ciap.dproj Ciap.dproj.local Ciap.identcache Ciap.res Ciap_Icon.ico Principal.dfm Principal.pas
    1 ponto
  10. Inclua esse trecho pra saber que o documento retornado se trata de um evento e não de uma NFe ou resumo de NFe. O trecho em vermelho não faz sentido porque o evento também pode ser um cancelamento, carta de correção, MDFe autorizado, registro de passagem, e muitos outros... Note também que dessa forma você pode capturar as manifestações feitas pelos destinatários das notas que você emitiu, mas não é retornado pelo webservice qual manifestação você já emitiu pra uma nota emitida por outro. (Espero que tenha ficado claro)
    1 ponto
  11. Boa tarde Rômulo, Muito obrigado pela colaboração, já inclui na minha lista de tarefas.
    1 ponto
  12. Boa tarde Paulo Obrigada pelo interesse em contribuir, queira por favor nos atualizar aqui para que possamos iniciar a análise dos seus fontes. Att.
    1 ponto
  13. Pode ser isso mesmo. Agora, eu abri os dois xml e não recebi diferença na identação, eu abro com o navegador IE ou notepad++ (este último com plugin para mostrar o xml com quebras de linhas, para ficar mais legível.). Obrigado pela explicação.
    1 ponto
  14. Carlos, Esse é o problema de querer gerar o XML através da nossa aplicação. Abra esses dois XMLs que você anexou através do Bloco de notas. Você vai notar que você esta gerando o seu XML de forma identada, já o gerado pelo ACBrMonitor segue a recomendação que consta no manual, ou seja, o XML não deve ter quebras de linhas e muito menos estar identado. Como o XML do MDF-e tem duas tags <UF> uma do veiculo e outra do proprietário se o XML estiver identado (que esta errado conforme o manual) teremos problemas na leitura dessa tag.
    1 ponto
  15. Bom dia Diego, Muito obrigado pela colaboração, já enviei para o repositório.
    1 ponto
  16. Bom dia Magno. Este arquivo pas trata-se do mesmo disponibilizado neste outro tópico? Att.
    1 ponto
  17. Pelo que entendi vc não quer que dê erro se passar de 50 e sim que ele consiga enviar fragmentado. Se for isso, não vejo como essa regra poderia ser implementada dentro do ACBr, pois se você iniciou o envio ele seria responsável por separar e enviar cada 50 em um lote, teria que saber qual deu certo e qual deu erro, lembre-se que a comunicação é assincrona, pode ser que um lote consiga ser enviado e o outro não... ao meu ver seria algo muito elaborado. No meu caso faço a tratativa antes, mando para o componente apenas os 50 registros, no segundo envio mando os outros 50. Entendo que essa regra deva ficar na aplicação cliente.
    1 ponto
  18. Você está fazendo o envio na versão errada A versão simplificada ainda não entrou em produção e o correto é: v02_05_00 é possível configurar a versão no componente ACBreSoc.Configuracoes.Geral.VersaoDF
    1 ponto
  19. Então precisamos de um padrão. e também cuidar para não repetir. eu subi do 1200 em outro post seu. favor rever esses arquivos e anexar novamente veja que é posto ao final do nome da classe o registro
    1 ponto
  20. Bom dia, Só para contribuir... O erro ocorreu aqui também. Acontece porque na linha 6093 de todos os arquivos .csv, na tabela 21.1.H e agora também na 21.1.I , traz um texto com duas aspas duplas repetidas. 39233090;01;0;""Ex" 01 - Isso faz com que o quebralinha gere um erro. A solução que adotamos foi -> VLinha := StringReplace(VLinha,'""Ex"','"Ex',[rfReplaceAll]), direto na nossa aplicação, sem mexer nos fontes Acbr. Obrigado
    1 ponto
  21. Bom dia de acordo com a nota orientativa o eSocial tem um período de convivência entre uma versão e outra.
    1 ponto
  22. Bom dia, Moderadores, por favor podem fechar o tópico. Não implementei, mas seguem algumas informações, caso sejam úteis para quem tiver a mesma necessidade. 1. Encontrei um exemplo de como fazer em c# https://www.codeproject.com/Articles/99362/Scan-and-Read-the-Barcode-from-PDF-File 1.1. Primeiro o pdf é convertido para imagem via ghostscript. * Outra opção para converter o pdf para imagem: https://github.com/renancostab/XPdfSharp 1.2. Tento a imagem, existe exemplo de como ler o código de barras . * Outra opção para ler o código de barras utilizando o ZXing: https://foxlearn.com/windows-forms/how-to-read-a-barcode-from-an-image-in-csharp-464.html Obs: Para fazer via Delphi, acredito que seja possível: 1. Converter o Pdf para Imagem via GhostScript: Se foi feito em c# via dll via Delphi também é possível 2. Ler o código de barras via ZXing: Verificar https://github.com/Spelt/ZXing.Delphi
    1 ponto
×
×
  • 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...
The popup will be closed in 10 segundos...