Ir para conteúdo
  • Cadastre-se

CarlosSolla

Membros Pro
  • Total de ítens

    45
  • Registro em

  • Última visita

Tudo que CarlosSolla postou

  1. Sim, faz um tempo que não atualizo, estou na revisão 31538. Peço desculpas, verifiquei agora a revisão mais recente e a função LerCampo nem existe mais nela. Uma pena, porém, a funcionalidade que permite utilizar o Navegador ter sido retirada; eu prefiro consultar diretamente o site do governo pela garantia de que ali os dados estão sempre atualizados. Vou então fazer uma cópia da unit ACBRConsultaCNPJ e inclui-la diretamente no meu projeto. Agradeço pela atenção de todos.
  2. Eu utilizo o evento SolicitarCaptcha que faz a consulta usando o TEdgeBrowser. o codigo utilizado no evento é o seguinte: procedure TFormCadTercImpDados.ACBrConsultaCNPJSolicitarCaptcha(var AHtml: string); var Url: string; begin Url := 'https://solucoes.receita.fazenda.gov.br/Servicos/cnpjreva/Cnpjreva_Solicitacao.asp?cnpj=' + editCNPJ.text; AHtml := TFNavegar.Navegar(Url); end; a classe TFNavegar está na unit em anexo. Grato ACBrConsultaCNPJNavegar.dfm ACBrConsultaCNPJNavegar.pas
  3. Bom dia pessoal! Um cliente me passou uma situação em que fez uma consulta de CNPJ e retornou o nome com uma "&" no lugar do E-Comercial. Dei uma pesquisada e vi que no html o E-Comercial aparece desta forma. Então para resolver o problema eu inclui uma linha a mais na função TACBrConsultaCNPJ.LerCampo : if linha = NomeCampo then begin Result := StringReplace(Trim(Texto[i+1]),' ',' ',[rfReplaceAll]); Result := StringReplace(Result,'&','&',[rfReplaceAll]); // linha incluída Texto.Delete(I); break; end; end Isso resolveu o problema aqui, mas não tenho certeza se essa é a melhor solução. Em anexo a unit alterada. Abraços ACBrConsultaCNPJ.pas
  4. Boa tarde! Também passei o caso para o suporte do eSocial, e inicialmente recebi uma reposta orientando para eu mudar a incidência de IRRF da rubrica 231-"Desconto de Adiantamento de 13º Salário" que foi a que gerou o negativo, para a incidência IRRF=12. Esta rubrica gerou um negativo no tpInfoIR=7900, porque ela é um desconto e não havia nenhuma outra rubrica de vencimento no mês com o mesmo tipo de incidência (codIncIRRF=09). Ao que parece os eventos com CodIncIRRF=09 entram no totalizador do tpInfoIR=7900. Após eu argumentar que fazer isso iria gerar uma totalização errada da base de IRRF 13º, reponderam o seguinte: Porém eu não cheguei a reenviar os eventos, pois o cliente já havia fechado a folha, e decidiu manter como estava. Vamos ver então se nos próximos envios não vai mais aparecer esta advertência. at.
  5. Bom dia pessoal! Estou usando o componente ACBRPagFor para gerar arquivos de pagamento de funcionários, para os funcionário que tem conta em bancos diferentes do banco da empresa, é utilizado o serviço de pagamento a fornecedores. Surgiram 2 funcionários que tem conta nos bancos 380-PicPay e 536-Neon. Estes 2 bancos não existiam na lista existente na unit ACBrPagForConversao.PAS, então alterei a mesma incluindo estes 2 bancos. Gostaria de saber se seria possível incluir esta alteração no repositório. O foi alterarado na revisão 31538. Grato! ACBrPagForConversao.pas
  6. Bom dia a todos! Eu recebi a seguinte advertencia ao enviar, já na versão S-1.2, o evento S-1210 ref. o mês 12 de um funcionário: Ocorrência nº 1 código 1895 Tipo 2 Descrição: O registro [tpInfoIR]=7900 e demonstrativo=xxxx foi zerado pelo sistema, pois o seu valor era negativo Acredito que este erro ocorre porque existem rubricas de desconto como por exemplo a rubrica "Desconto Adiantamento de 13º salário", que eu classifiquei com a natureza da rubrica = 5504 e o tpInfoIR=09 (Verba transitada pela folha de pagamento de natureza diversa de rendimento ou retenção/isenção/dedução de IR); então ao totalizar os valores por tpInfoIR o eSocial não encontra nenhuma outra rubrica de vencimento com este mesmo tpInfoIR, gerando um total negativo para este totalizador. Minha preocupação é se esta configuração da rubrica que eu fiz está correta. Estranho é que, neste caso acima, mesmo a rubrica estando com tpInfoIR = 09, o eSocial totaliza na 7900; Porém ocorreram outros casos em que a ocorrência, retorna o totalizador 79, conforme abaixo: Ocorrência nº 1 código 1895 Tipo 2 Descrição: O registro [tpInfoIR]=79 e demonstrativo=xxxx foi zerado pelo sistema, pois o seu valor era negativo Agradeço muito se houver alguém que possa me orientar sobre esta parte de configuração das rubricas. Estou perdido quanto a isso, e os funcionários de RH das empresas também tem dificuldade com isso. Abraços
  7. Boa tarde! Deu certinho agora. Muito obrigado a todos! Abraços!
  8. Boa tarde a todos Estava apresentando um erro ao processar o evento 5012 no retorno da S-1299, não estava conseguindo pegar a versão do evento de forma apropriada. Fiz uma pequena correção na linha 285 pces5012.pas : de s := Copy(FXML, Pos('/evt/evtIrrf/', FXML)+18, 16); para s := Copy(FXML, Pos('/evt/evtIrrf/', FXML)+13, 16); Em anexo unit corrigida. pcesS5012.pas
  9. Boa tarde a todos, Estava obtendo erro ao enviar o evento S-2240 e notei que tem 2 erros na linha 591 da unit ACBreSocial\PCNeSocial\pcesS2240.pas. Detectei 2 erros nesta linha: 1- Conforme o layout data inicial da tag dtFimCondicao é 16/01/2023 e está como 16/01/2022; 2-Na condição DateToStr(objInfoExpRisco.dtFimCondicao) <> dDataBrancoNula), no meu caso a função DateToStr retorna '30/12/99' enquanto a constante dDataBrancoNula = '30.12.1899' Acertei trocando a linha para essa: if ((objInfoExpRisco.dtIniCondicao >= StringToDateTime('16/01/2023')) and (objInfoExpRisco.dtFimCondicao > 0)) then Abraço!
  10. Boa tarde! Consegui implementar o recurso da marca d'água na DANFE do FastReports, utilizando uma Banda Overlay com uma frxImage. Porém para funcionar, além de ter que incluir estes 2 componentes no arquivo FR3, é necessário alterar as units ACBrNFeDANFEFR.pas e ACBrNFeDANFEFRDM.pas Para utilizar o recurso criei 3 propriedades na unit ACBrNFeDANFEFR, as quais devem ser especificadas no código do programa. LogoMarcaDAguaPngFileName: String => se especificado ira ativar a marca d'agua, e deve conter o caminho do arquivo PNG que contem a imagem , que já deve ser bem transparente. LogoMarcaDAguaTop: Double => Posição vertical que a marca d'agua deve ser impressa na pagina da DANFE LogoMarcaDAguaHeight: Double => Altura da imagem Estou postando aqui para ver se pode ser útil a alguém, porém não tenho experiência com os componentes ACBR , e também só alterei a DANFE retrato. Abraço a todos! ACBrNFeDANFEFR.pas ACBrNFeDANFEFRDM.pas DANFeRetrato.fr3
  11. Bom dia a todos! Esta semana ocorreu caso em que o cliente teve que fazer uma nota fiscal de devolução de uma venda exportação. A natureza de operação utilizada foi a 3211. A Sefaz retornava Rejeição 525: CFOP de Importação e não informado dados da DI. Porém o cliente não tinha a declaração de importação, pois não se tratava de importação e sim de uma devolução de exportação Pesquisei na internet e encontrei o tópico abaixo, orientando para preencher o campo DI com o termo "NIHIL', porém o ACBR faz uma validação do nº do DI e não aceitava. Para conseguir fazer o teste eu alterei a unit pcnNFeW, na linha 920, para aceitar. Após esta alteração consegui autorizar a NF, porém não tenho certeza se a solução foi a adequada, mas estou postando aqui caso alguém mais passe por esta situação. https://documentacao.senior.com.br/bancodesolucoes/erp/21702.htm Muito obrigado! pcnNFeW.pas
  12. Ola BigWings, Boa tarde! Atualizei e colei a sua unit aqui, fiz vários testes e deu certo. Mais uma vez agradeço a todos. Abraço!
  13. Boa tarde Italo, É isso mesmo, só sai correto a primeira, as demais cartas saiam errado, com dados da primeira NFe, então fiz esta correção na TACBrNFeDANFEFR.ImprimirEVENTO, para resolver o problema aqui, mas toda vez que atualizo os componentes ACBR tenho que ficar revisando. Abraço!
  14. Boa tarde! No cenário que utilizo aqui tenho uma tela de seleção na qual demonstro ao usuário as notas que têm carta de correção; o usuário pode selecionar várias notas para emissão da carta. Carrego todas as notas selecionadas para a lista do componente ACBrNFe, e faço um FOR , chamando a procedure TACBrNFeDANFEFR.ImprimirEVENTO, passando como parâmetro cada item (NFe) carregado no componente ACBrNFe. Caso o componente ACBrNFe sempre tiver somente um item carregado, não vai acontecer este problema. Nesse caso o parametro ANFE existente na procedure TACBrNFeDANFEFR.ImprimirEVENTO, fica sem utilidade.
  15. Boa tarde a todos, Existe um problema na emissão da carta de correção da nota fiscal eletrônica quando são carregadas para a lista do componente ACBrNFe mais de uma nota, a carta de correção sempre sai com os dados da primeira nota. Detectei que o problema estava na procedure PrepareReportEvento, na linha 2122, que sempre estava carregando o item zero: NFe := TACBrNFe(DANFEClassOwner.ACBrNFe).NotasFiscais.Items[0].NFe; Fiz a correção na revisão17570 , e anexei a unit caso seja útil para mais alguém, aqui para mim resolveu o problema. Abraço! ACBrNFeDANFEFRDM.pas
  16. Boa tarde! Acredito que consegui resolver o problema, que era na "function TinfoCREstabCollection.New: TinfoCREstabCollectionItem;" (linha 1173), faltava o comando Self.Add(Result); Unit alterada em anexo. Abraço a todos! pcesS5011.pas
  17. Bom dia! Após a atualização do ACBR referente revisão 16797 , está apresentando o erro "List index out of bounds (0)' ao tentar carregar o xml do evento S-5011. var S5011: TS5011; begin S5011 := TS5011.Create; S5011.Xml := S1299XML5011.AsString; .... end; verifiquei os fontes e ao que parece o problema é no treco abaixo (linha 778 da unit pcesS5011.pas), onde, após adicionar um item no comando InfoCREstab.add, o InfoCREstab.Count permanece = 0. Não consegui entender o porque, talvez eu esteja fazendo algo errado while Leitor.rExtrai(4, 'infoCREstab', '', j + 1) <> '' do begin infoCS.ideEstab.Items[i].infoCREstab.Add; infoCS.ideEstab.Items[i].infoCREstab.Items[j].FtpCR := leitor.rCampo(tcInt, 'tpCR'); infoCS.ideEstab.Items[i].infoCREstab.Items[j].FvrCR := leitor.rCampo(tcDe2, 'vrCR'); infoCS.ideEstab.Items[i].infoCREstab.Items[j].FvrSuspCR := leitor.rCampo(tcDe2, 'vrSuspCR'); inc(j); end; Obrigado a todos!
  18. Bom dia Anderson, Acredito que são códigos da tabela 19 do eSocial - Motivos de Desligamento
  19. Boa tarde a todos! Referente ao nº do DI, é necessário ficar atento à quantidade de zeros à esquerda que vem especificado no documento, após o ano e antes do digito final. Um cliente precisou fazer uma nota de importação hoje, na qual o nº do DI no documento recebido da transportadora era no formato: AANNNNNNNNND, onde: AA -> Ano com 2 posições (18) NNNNNNNNN -> nº do documento de importação com zeros à esquerda até completar 9 dígitos. D -> Digito Verificador. Para dar certo na validação do ACBR tive que retirar os zeros à esquerda do nº do documento, ficando no formato TAANNNNNNND, onde: T -> Tipo de documento = 2 - Documento de Importação (DI) AA -> Ano com 2 posições = 18 NNNNNNN -> nº do documento com zeros a esquerda até completar 7 dígitos D -> dígito verificador.
  20. Bom dia Mariana O código que você postou apenas carrega as informações de um evento que será adicionado na lista de eventos que será incluída no lote. Você precisa cuidar para que não seja adicionado mais que 50 eventos, que é o máximo permitido por lote. Dentro de seu while, para cada evento você ainda precisa chamar o comando evtTabRubrica.GerarXML, onde o ACBR vai carregar o ID do evento (caso não tenho sido atribuido) e assinar. O arquivo na verdade será criado quando você chamar o comando ACBreSocial.Enviar(egIniciais), que é quando o arquivo XML será salvo na pasta especificada nas configurações do ACBR, isso se a opção de salvar o XML também estiver ativada, e o XML contendo os eventos carregados no lote (através dos comandos ACBreSocial.Eventos.Tabelas.S1010.Add) serão transmitidos. Logo após a transmissão deve-se esperar um tempinho através do comando Sleep(3000) e efetuar a consulta do protocolo do lote: var RetornoEnvioLote: TRetEnvioLote; DataHoraDaRecepcaoDoLote: string; VersaoDoAplicativoNaRecepcao: string; ProtocoloDoEnvioDoLote: string; begin RetornoEnvioLote := ACBreSocial.WebServices.EnvioLote.RetEnvioLote; if RetornoEnvioLote.Status.cdResposta in [201, 202] then begin DataHoraDaRecepcaoDoLote := RetornoEnvioLote.dadosRecLote.dhRecepcao; VersaoDoAplicativoNaRecepcao := RetornoEnvioLote.dadosRecLote.versaoAplicRecepcao; // ProtocoloDoEnvioDoLote deverá ser usado para obter depois o resultado do processamento do lote ProtocoloDoEnvioDoLote := RetornoEnvioLote.dadosRecLote.Protocolo; end; end;
  21. Boa tarde! Como sugestão estão postando uma adaptação que fiz na emissão da Danfe em Fast. Criei uma nova propriedade chamada de ExibirTotalTributosItem, que indica se a informação sobre os tributos deve ser impressa sempre ou apenas para o consumidor final. Incluída também na mesma unit ACBrNFeDANFEFR.pas uma correção na função PrepareReportEvento, pois em uma lista de NFes, o evento estava sendo impresso sempre referente à primeira NFe da lista. Desculpem se fiz algo errado, não tenho conhecimento da estrutura das classes do ACBr como um todo. Abraço! ACBrNFeDANFEFR.pas ACBrNFeDANFEFRDM.pas
  22. Olá Rogério, boa tarde! Sim, realmente só podemos enviar lotes com no máximo 50 eventos. Dê uma olhada no tópico,abaixo que tem várias sugestões sobre como fazer o envio:
  23. Boa tarde Anderson, Creio que, mesmo utilizando certificado A3, você precisa carregar o nº de série do certificado para o componente ACBRESocial, da seguinte forma: ACBreSocial.Configuracoes.Certificados.NumeroSerie := wNumeroDeSerieDoCertificadoA3;
×
×
  • 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...