-
Total de ítens
228 -
Registro em
-
Última visita
-
Days Won
3
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por Sandro Felipe Adad
-
-
Após atualização de agora cedo parece que o problema foi sanado.
Pode encerrar.
-
Erro ocorre na function ServicoToLayOut.
"Valor string inválido para TLayOutMDFe: URL-QRCode".
Utilizando qualquer tipo de CTe (versão 4) e com UFs diferentes.
Apaguei toda minha pasta trunk e ja reinstalei o ACBR mas problema persiste ainda.
Vi que no forum do ACBRDFE alguem reportou problema similar.
-
10 minutos atrás, Alexandre de Paula disse:
Boa Tarde @Sandro Felipe Adad,
Agradecemos a contribuição, porém poderia informar a respeito do que se trata?
Localizou algum erro? Refatoração do código? Atualização de legislação?
Se possível fazer referencia a documentação utilizada também.
Obrigado.
Correção de erros e tipos de dados.
tpSimFacultativo - novo tipo. (pcesConversaoeSocial.pas)
usado em TInfoVlr: (unit pcesS2500;)
FindenSD: tpSimFacultativo;
FindenAbono: tpSimFacultativo;correção em unit pcesS5503;
function TevtFGTSProcTrab.LerXML: boolean;
// Capturar a versão do evento
s := Copy(FXML, Pos('/evt/evtFGTSProcTrab/', FXML)+21, 16); //ajustadoe
...
while leitor.rExtrai(2, 'infoTrabFGTS', '', i + 1) <> '' do
begin
with infoTrabFGTS do
begin
New; //incluído
Items[i].Fmatricula := leitor.rCampo(tcStr, 'matricula');
Items[i].FcodCateg := leitor.rCampo(tcInt, 'codCateg');
Items[i].FcategOrig := leitor.rCampo(tcInt, 'categOrig');procedure TEvtProcTrab.GerarInfoVlr(Obj: TInfoVlr);
begin
Gerador.wGrupo('infoVlr');Gerador.wCampo(tcStr, '', 'compIni', 7, 7, 1, obj.compIni);
Gerador.wCampo(tcStr, '', 'compFim', 7, 7, 1, obj.compFim);if VersaoDF > veS01_01_00 then
begin
...
Gerador.wCampo(tcStr, '', 'indenSD', 0, 1, 0, eSSimFacultativoToStr(obj.indenSD));
Gerador.wCampo(tcStr, '', 'indenAbono', 0, 1, 0, eSSimFacultativoToStr(obj.indenAbono));
- 1
-
-
-
1 hora atrás, Luiz Eduardo Bodo disse:
Sim utilizando a API free oficial, esta funcionando perfeitamente, de ontem pra hoje dei uma melhorada nela, encapsulando. segue a unit.
Fiz uma função para chamar.
function TfrmPessoas.ConsultarCNPJ(const CNPJ: string): TCNPJInfo; begin Result := TCNPJInfo.Create; try Result.Consultar(CNPJ); except on E: Exception do begin // Trate as exceções, se necessário. ShowMessage('Erro ao consultar CNPJ: ' + E.Message); Result.Free; // Libere a instância em caso de erro. Result := nil; // Defina o resultado como nulo em caso de erro. end; end; end;
// MODO DE USAR... InfoCNPJ := ConsultarCNPJ(DM.TiraPontos(txtDocumento.Text)); // Substitua pelo CNPJ desejado. if InfoCNPJ.Achou = 'Sim' then begin // achou end else // não achou...
espero ter ajudado, qualquer duvida ou melhorias é bem vinda...
Mas no teu exemplo voce não utiliza a API oficial (https://www.receitaws.com.br/v1/cnpj)
e como ficaria a questão do captcha que é o assunto deste tópico?
-
7 horas atrás, Luiz Eduardo Bodo disse:
Boa tarde pessoal, quem esta com problema na consulta do CNPJ, fiz uma função utilizando JSONResponse, simples e eficiente, estou utilizando delphi 10.3
Utiliza a api free oficial do governo?
caso positivo poderia compartilhar a sua solução?
- 1
-
4 horas atrás, jaques.rocha disse:
Descobri o erro, no Windows server não tem a key FEATURE_BROWSER_EMULATION, portanto foi só criar ela usando o CreateKey
Reg.OpenKey('SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', False);
Reg.CreateKey('SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION');
Reg.WriteInteger(ExtractFileName(Application.ExeName), 11001); //isto é necessário para poder rodar no internet explorer 11Sim, podemos alterar no fonte para o windows criar a chave se necessário.
Linha 85 do ACBrConsultaCNPJNavegar.pas, alterar para True:
Reg.OpenKey('SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', True);
- 1
-
Em 23/09/2020 at 12:25, Italo Giurizzato Junior disse:
Boa tarde Junior,
Essas adaptações foram no componente?
Se sim, anexa aqui as units alteradas para que possamos analisar.
Desde já muito obrigado pela colaboração.
Ítalo é realmente necessária a criação da tag SituacaoEspecial para a retenção de órgão público. Foi necessário alterar o schema também, apesar do schema fornecido por eles nao ter a definição do campo, mas no manual consta.
Tag criada no tomador: <IncentivoFiscal>
Segue arquivo de schema onde inclui o tipo tsSituacaoEspecial.
Anexei também o manual deles onde consta essa nova tag, caso deseje incorporar no ACBRNFSeX.
Segue a contribuição das alterações que realizei nos fontes do ACBR para sua avaliação, porem feitas apenas no componente ACBRNFse, não utilizo ainda o ACBRNFseX neste município.
*** Dúvida, como faço para parametrizar http ou https no soapAction no arquivo ISSJoinville.ini? tive que alternar a informação no .ini, ora pra homologação começando por (http) e produção com (https)
Ex: Homologação
[SoapAction]
Recepcionar=http://nfemwshomologacao.pmjlle.joinville.sc.gov.br/EnviarLoteRpsEnvio
ConsSit=http://nfemwshomologacao.pmjlle.joinville.sc.gov.br/ConsultarLoteRpsEnvioEx: Produção
[SoapAction]
Recepcionar=https://%NomeURL_HP%.joinville.sc.gov.br/EnviarLoteRpsEnvio
ConsSit=https://%NomeURL_HP%.joinville.sc.gov.br/ConsultarLoteRpsEnvioColoquei também os arquivos enviados com sucesso.
pnfsConversao.pas pnfsNFSeW_ABRASFv2.pas pnfsNFSe.pas PMJ - NF-em - Webservices - Manual - v14.pdf nfse_v2-04.xsd 521791-rec.xml 521791-rec-soap.xml 521791-env-lot.xml 521791-env-lot-soap.xml NF-em Impressão.pdf
-
3 horas atrás, etbricio disse:
Olá
Verifiquei que o componente ACBRCONSULTACNPJ procura o arquivo acbrconsultacnpj.ini e ao não encontrar, le/cria internamente o endereço :https://solucoes.receita.fazenda.gov.br/Servicos/cnpjreva/captcha/gerarCaptcha.asp. Ao executar nesse endereço ele informa o erro 404 . Atualizei o ACBR e continua buscando nesse endereço. O componente não está funcionando. .."Erro na hora de fazer o download da imagem do captcha. Serviço depreciado pela RFB! não disponível para consulta."
A solução é extra oficial, voce precisa baixar os fontes daqui deste post , em seguida reinstalar o ACBR com a substituição do componente e fontes deste post.
-
39 minutos atrás, jaques.rocha disse:
Pessoal, ainda não consegui fazer funcionar, talvez tenha baixado o codigo errado. Ja estou com meu acbr atualizado, no projeto que baixei apaguei o VCL.Edge, depois começou dar erro no OnSolicitarCaptcha, tenho a impressão que meu ACBrConsultaCNPJ não esta atualizado pois nele nao tem o evento OnSolicitarCaptcha, somente o OnAntesAbrirHTTP, se tem alguma atualização não oficial do ACBrConsultaCNPJ acho que não encontrei onde baixar.
Do jeito que esta meu codigo até conseguir rodar mas dá o seguinte erro depois que clico em 'Sou Humano' e depois me' Consultar'.
Sim é extra oficial, voce precisa baixar os fontes daqui deste post , em seguida reinstalar o ACBR com a substituição do componente e fontes deste post.
-
18 horas atrás, jaques.rocha disse:
Boa noite pessoal, ainda não temos uma solução definitiva ? Tentei testar esse código mas para mim dá erro no Vcl.Edge, pois meu delphi é o XE7
18 horas atrás, barrys disse:Eu preciso reinstalar o ACBr por causa da unit AcbrConsultaCNPJ ?
Eu somente copiei na pasta ACBr\Fontes\ACBrTCPMas me aparece este erro acima.
1) Pode excluir o uses da unit Vcl.Edge.
2) Tem de recompilar todo o ACBR ou o componente ACBRTCP que é onde esta incluso o ACBRConsultaCNPJ
- 1
-
ConsultaCNPJIE.dprojACBrConsultaCNPJNavegar.dfmConsultaCNPJIE.dprojConsultaCNPJIE.dprojACBrConsultaCNPJNavegar.pasuConsultaCNPJ.dfmACBrConsultaCNPJ.pasConsultaCNPJIE.dpruConsultaCNPJ.pasACBrConsultaCNPJNavegar.dfmConsultaCNPJIE.dproj
1 hora atrás, Sandro Felipe Adad disse:@Sandro Felipe Adad @Antonio Gomes
Aproveitando os códigos colaborados neste tópico, criada uma solução funcional utilizando o navegador TWebBrowser do delphi ao invés do TEdge.
Segue para avaliação, se puderem verificar Antonio Gomes, DFox e Alexandre.
ACBrConsultaCNPJNavegar.pas 5.51 kB · 7 downloads ConsultaCNPJIE.dpr 344 B · 7 downloads ConsultaCNPJIE.dproj 50.01 kB · 7 downloads uConsultaCNPJ.dfm 10.71 kB · 7 downloads uConsultaCNPJ.pas 3.67 kB · 7 downloads ACBrConsultaCNPJNavegar.dfm 1.21 kB · 7 downloads
Ahh, tem de recompilar o componente substituindo essa unit na pasta nos fontes do ACBR: ..trunk2\Fontes\ACBrTCP
Antonio Gomes criou um evento no componente para tratar a solicitação do captcha.
if Assigned(FOnSolicitarCaptcha) then
begin
FOnSolicitarCaptcha(Html);RespHTTP.Text:= Html;
ModoAntigo := False;
end;
- 1
-
54 minutos atrás, Sandro Felipe Adad disse:
@Sandro Felipe Adad @Antonio Gomes
Aproveitando os códigos colaborados neste tópico, criada uma solução funcional utilizando o navegador TWebBrowser do delphi ao invés do TEdge.
Segue para avaliação, se puderem verificar Antonio Gomes, DFox e Alexandre.
ACBrConsultaCNPJNavegar.pas 5.51 kB · 6 downloads ConsultaCNPJIE.dpr 344 B · 6 downloads ConsultaCNPJIE.dproj 50.01 kB · 6 downloads uConsultaCNPJ.dfm 10.71 kB · 6 downloads uConsultaCNPJ.pas 3.67 kB · 6 downloads ACBrConsultaCNPJNavegar.dfm 1.21 kB · 6 downloads
7 minutos atrás, Orlando Dantas disse:Só para deixar registrado.
No que diz respeito às APIs que foram mencionadas anteriormente como “não oficiais”, conduzi testes utilizando o CNPJ que foi discutido anteriormente. Realizei esses testes em todas as APIs mencionadas, bem como em algumas outras. Em todos os casos, observei que os dados que deveriam estar atualizados sempre continham informações desatualizadas. Isso levanta a suspeita de que essas APIs estejam consultando os dados em um ambiente de homologação, igualmente na API oficial de consulta de pessoa da NF-e que consta no ACBr, como dito logo acima, o que não atende às necessidades de nossos clientes. Aqui na empresa temos como obrigação fornecer a eles as informações mais recentes da Receita Federal.Orlando, consegue testar o exemplo que postei logo acima. Utilizo a API oficial: https://solucoes.receita.fazenda.gov.br/Servicos/cnpjreva/Cnpjreva_Solicitacao.asp
Eu testei a consulta pela NFe, porem dependendo da UF não é possivel a sua utilização, pois não são disponibilizados dados para consulta.
-
27 minutos atrás, Alexandre de Paula disse:
Estamos avaliando ainda a situação. Se os endereços voltarem a funcionar o componente naturalmente volta a funcionar.
Nos outros casos as platafomas de consulta ou são pagas ou envolvem soluções diferentes como as que foram sugeridas neste tópico.
Lembrando sempre que procuramos manter compatibilidade com Lazarus e com versões anteriores do Delphi até o Delphi 7. Então algumas soluções apresentadas precisam ser avaliadas e testadas em diversos cenários.
@Sandro Felipe Adad @Antonio Gomes
Aproveitando os códigos colaborados neste tópico, criada uma solução funcional utilizando o navegador TWebBrowser do delphi ao invés do TEdge.
Segue para avaliação, se puderem verificar Antonio Gomes, DFox e Alexandre.
ACBrConsultaCNPJNavegar.pas ConsultaCNPJIE.dpr ConsultaCNPJIE.dproj uConsultaCNPJ.dfm uConsultaCNPJ.pas ACBrConsultaCNPJNavegar.dfm
- 3
-
47 minutos atrás, Douglas Conceição disse:
Boa Tarde, nos aqui da minha empresa conseguimos contornar o problema de uma forma diferente, nao tem como eu mandar o projeto pois ja esta dentro do nosso projeto oficial, nao por fora. Mas irei passar os códigos que usamos.
Resumindo, usamos o TChromiun e conectamos na pagina diretamente, porem para ficar visivelmente mais bonito, colocamos um codigo para retirar da pagina tudo que não é preciso.if frame.IsMain then begin // remove elemento Chromium1.Browser.MainFrame.ExecuteJavaScript('document.getElementById("barra-brasil").remove();', '', 0); // remove elemento Chromium1.Browser.MainFrame.ExecuteJavaScript( 'var elementos = document.getElementsByTagName("' + 'header' + '");' + 'for (var i = elementos.length - 1; i >= 0; i--) {' + ' elementos[i].parentNode.removeChild(elementos[i]);' + '}', '', 0 ); // remove elemento Chromium1.Browser.MainFrame.ExecuteJavaScript( 'var elementos = document.getElementsByTagName("' + 'ul' + '");' + 'for (var i = elementos.length - 1; i >= 0; i--) {' + ' elementos[i].parentNode.removeChild(elementos[i]);' + '}', '', 0 ); // remove elemento Chromium1.Browser.MainFrame.ExecuteJavaScript( 'var elementos = document.getElementsByClassName("' + 'footer-wrapper' + '");' + 'for (var i = elementos.length - 1; i >= 0; i--) {' + ' elementos[i].parentNode.removeChild(elementos[i]);' + '}', '', 0 ); // ajuste css do elemento Chromium1.Browser.MainFrame.ExecuteJavaScript( 'var elementos = document.getElementsByClassName("' + 'col-md-8 form-group' + '");' + 'for (var i = elementos.length - 1; i >= 0; i--) {' + ' elementos[i].className = "col-md-10 form-group";' + '}', '', 0 ); // remove elemento JavaScriptAux := 'var divElement = document.querySelector(".col-md-12");' + 'if (divElement) {' + ' var h4Element = divElement.querySelector("h4");' + ' if (h4Element) {' + ' h4Element.remove();' + ' }' + ' var pElements = divElement.querySelectorAll("p");' + ' if (pElements.length > 0) {' + ' pElements[0].remove();' + ' }' + '}'; Chromium1.Browser.MainFrame.ExecuteJavaScript(JavaScriptAux, '', 0); JavaScriptAux := 'var bodyElement = document.body;' + 'if (bodyElement) {' + ' bodyElement.style.paddingTop = "30px";' + // Substitua "10px" pelo valor desejado '}'; // Execute o código JavaScript no TChromium Chromium1.Browser.MainFrame.ExecuteJavaScript(JavaScriptAux, '', 0); // bloqueia edicao do cnpj Chromium1.Browser.MainFrame.ExecuteJavaScript( 'document.getElementById("' + 'cnpj' + '").readOnly = true;' , '', 0 ); // remove elemento Chromium1.Browser.MainFrame.ExecuteJavaScript( 'var elementos = document.getElementsByClassName("' + 'btn btn-secondary' + '");' + 'for (var i = elementos.length - 1; i >= 0; i--) {' + ' elementos[i].parentNode.removeChild(elementos[i]);' + '}', '', 0 ); CEFWindowParent1.Visible := true; // lê o html da pagina e obtem o dados if (Chromium1.Browser.MainFrame.Url = 'https://solucoes.receita.fazenda.gov.br/Servicos/cnpjreva/Cnpjreva_Comprovante.asp') then begin Chromium1.RetrieveHTML(); Pesquisou := true; PanelNavegador.Visible := false; end; end; ------------- Chromium1LoadEnd
Abaixo uma imagem de como ficou...
So que deixe essa tela redimensionavel, acabo de pegar um captcha diferente retornado pela receita.
Como é o deploy do projeto chromium, o que precisa ser distribuido junto a aplicação delphi?
-
30 minutos atrás, Antonio Gomes disse:
ficou tela cinza só? bota a dll junto.
sim, copiei a dll (webView2Loader.dll) pra basta Debug, mas a tela navegar ficava cinza sem nada sendo exibido....
O problema é que copiei a dll que veio no seu zip e no meu delphi a versão é diferente... kkk
Copiei a dll que veio na minha instalação do delphi (C:\Users\Sandro\Documents\Embarcadero\Studio\21.0\CatalogRepository\EdgeView2SDK-0.9.488\Bin\x86 ) no meu caso e funcionou.. ai abriu a tela do navegador. Deu um erro de carga no endereço eletronico(email) com o cnpj padrão desse exemplo... depois verifico.
Creio que ficou bem legal a sua idéia. Com relação a navegador acho melhor usar o edge que o chromium pois ja vem com o delphi.
Agora olha isso:
de repente solicitou outro tipo de captcha... Será que estão mexendo no serviço ainda?
-
2 horas atrás, Antonio Gomes disse:
@Victor H. Gonzales - Panda e @Sandro Felipe Adad
Dá uma olhada?
cnpj_consulta_14 09 2023.zip 154.37 kB · 13 downloads
A dll costuma o delphi criar uma pasta chamada debug, cola junto do exe.
Pra mim não deu certo este exemplo, ele não invoca a rotina NavegarEdge, ao clicar no botão "Com ACBR" só exibe a mensagem: 'Erro na consulta, atulize o captcha".
-
16 horas atrás, Antonio Gomes disse:
dá uma olhada @Victor H. Gonzales - Panda e @Sandro Felipe Adad
zip
Achei interessante sua idéia de usar o componente do ACBR na solução do workaround, só teriamos de ver com algum membro do ACBR se incorporariam esta nossa solução.
Ah, na minha contribuição de exemplo eu não capturei todos os campos do html, apenas os que utilizo em minhas aplicações, teria de completar pra ficar de acordo com a classe do componente.
Só alteraria a propriedade do zoom no seu exemplo para:
EdgeBrowser1.ZoomFactor := 0.7;
-
27 minutos atrás, Antonio Gomes disse:
no dpr, quem nao abrir, so trocar:
// Application.CreateForm(TForm1, Form1);
Application.CreateForm(TfrmConsulta, frmConsulta);
ops, postei antes de salvar.
ConsultaCNPJ.dproj uConsultaCNPJ.dfm uConsultaCNPJ.pas ConsultaCNPJ.dpr
- 3
- 1
-
3 minutos atrás, edsonvieira disse:
Sandro Felipe, primeiramente obrigado por compartilhar sua abordagem...
baixei os arquivos e tentei executar, porém não abriu o link no componente TEdgeBrowser, tentei com outros links e tbem não abriu, será que é algo na versão do Delphi (11) que estou utilizando ou tem alguma liberação/configuração que tenho que fazer para este componente facionar?Funciona na sua máquina acessar por algum browser o endereço abaixo?
https://solucoes.receita.fazenda.gov.br/Servicos/cnpjreva/Cnpjreva_Solicitacao.asp
O projeto foi construido no delphi 10.4.1
-
Até que seja confirmada ou não a inviabilidade de uso da api pública pelo componente do ACBR, o que pode ser feito é usar usarmos a consulta pública como foi sugerido aqui no forum. Ou seja, um projeto que contenha um navegador (edge), possibilitando que o próprio usuário clique no botão (Sou Humano) e efetue a consulta manualmente. Após a consulta manual é possível extrair os dados do próprio html resultante. Fiz um protótipo funcional que efetua isso a quem interessar.
ConsultaCNPJ.dpr ConsultaCNPJ.dproj uConsultaCNPJ.dfm uConsultaCNPJ.pas
- 7
- 1
-
50 minutos atrás, Italo Giurizzato Junior disse:
Sandro,
O MD5 vai ser gerado em cima do XML do BP-e ou em cima de outra coisa?
Pelo o que eu entendi devemos gerar o MD5 do PAF-BPe.
Quem é o PAF-BPe ?
PAF-Bpe é O Programa Aplicativo Fiscal – Bilhete de Passagem Eletrônico (PAF-BP-e)
Tem razão Italo, devem ser informações do software emissor do BPE, nada a ver com o xml do BPE em si.
-
46 minutos atrás, Italo Giurizzato Junior disse:
Boa tarde Sandro,
No meu entendimento todas essas informações serão geradas, concatenadas e informadas no campo InfCpl, depois o XML deve ser gerado, assinado, validado e por fim enviado para a SEFAZ.
A duvia esta ai, se gero o MD5 na tag infcpl e depois assino o xml com o certificado digital, como é feita a checagem posterior deste arquivo pelo MD5, ja que foi alterado o arquivo original que agora está com a seção <signature> preenchida?
Se uso o MD5Checker do arquivo todo ele não corresponde mais com o código que foi gerado no XML, pois inclusive consta o próprio código MD5 na tag infcpl alem da tag signature preenchida...
Então suponho que no momento da geração do MD5 algumas informações não devam ser incluídas?
Não sei se consegui explicar a minha dúvida sobre a checagem deste MD5 pós transmissão.
É possível checar o MD5 a partir de um arquivo neste caso, ou tem de ser desmembrado pra checagem?
Problemas na geração de BPE - ACBrBPeXmlWriter.pas
em ACBrBPe
Postado
1) responsavel tecnico - tag invalida
function TBPeXmlWriter.Gerar_InfRespTec: TACBrXmlNode;
begin
Result := nil;
if (BPe.infRespTec.CNPJ <> '') then
begin
Result := FDocument.CreateElement('infRespTec'); corrigido - estava errado aqui
2) não gerava passageiros:
if BPe.infPassagem.infPassageiro.xNome <> '' then
Result.AppendChild(Gerar_InfPassageiro);//Gerar_InfPassageiro;ACBrBPeXmlWriter.pas