Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 24-06-2024 em todas as áreas

  1. Olá Pessoal, Devemos tomar muito cuidado ao gerar o XML, pois temos tag de diversos tipos. Tipos de tags e o que ela pode conter: Numéricas: neste caso só aceitam dígitos e o ponto decimal, exemplo: 250 ou 300.00 Data: neste caso só aceitam dígitos, a barra "/" ou o sinal de menos "-" (o mais comum é o sinal de menos), exemplo: 2024-06-24 Hora: neste caso só aceitam dígitos e o dois ponto ":", exemplo: 10:34:00 Data/Hora: é a combinação dos dois acima, exemplo: 2024-06-24T10:34:00 (temos a letra "T" entre a data e a hora Data/Hora no formato UTC: temos a Data/Hora seguida do Timezone, exemplo: 2024-06-24T10:34:00-03:00 Caracter: neste caso podemos informar uma sequencia de caracteres alfanumérica que pode conter alguns símbolos, exemplo: Rua Nove de Julho, 1250 Agora, justamente a tag do tipo caracter costumamos ver vários problemas. Por que? Existem alguns tipos de caracteres como por exemplo: "&" (e comercial comum em nome de empresas), aspas, apóstrofes e os sinais de "<" e ">" que podem não ser válidos dentros das tags. Em alguns casos o componente até pode os converter para uma sequencia chamada html entities. Mas algumas vezes o webservice (em especial de alguns provedores de NFS-e) pode recusar o seu XML acusando que a assinatura esta inválida. Devemos então evitar ao máximo utiliza-los. Detalhando: Lembre-se que os caracteres "<" e ">" aparecem no XML para indicar o inicio e o fim do nome de uma tag, exemplo: <Endereco>. As aspas são usadas para indicar o inicio e o fim do valor de um atributo, exemplo: <det nItem="1">, nItem é o atributo e o seu valor 1 esta entre aspas. Fica a dica, se você enviar um XML para o webservice da SEFAZ ou para um provedor de NFS-e e o mesmo for recusado pelo fato da assinatura estar invalida, abra o XML com o bloco de notas e procure as tags do tipo caracter e veja o seu conteúdo, pode ser que alguma dessas tags contenha um caracter ou html entities que possa estar invalidando a assinatura. A solução neste caso é os remover.
    6 pontos
  2. Olá Pessoal, É com muita satisfação que venho informar a todos que o componente ACBrNFe ganhou novas units para Consultar a Situação de uma nota, solicitar a inutilização de um numero ou faixa de números, enviar eventos e para administrar o CSC (Código de Segurança do Contribuinte) usado na NFC-e, este ultimo não sei informa-los quais UF possuem um webservice para esse serviço. Foram criadas novas units para gerar o XML de pedido de consulta, de inutilização de envio de eventos, bem como as units que fazem a leitura do retorno foram reescritas. Elas se encontram em uma nova pasta: ...\Fontes\ACBrDFe\ACBrNFe\Base\Servicos O que muda na minha aplicação? Nada, pois essas units são utilizadas pelo próprio componente. Porque foram criadas essas novas units? As units antigas se utilizam das units pcnGerador e pcnLeitor para geração e leitura do XML respectivamente. As novas units se utilizam das units ACBrXmlWriter e ACBrXmlReader que tem a mesma função de geração e leitura. Não chegamos a realizar testes de velocidade nessas novas units criadas para o ACBrNFe, mas a um tempo atrás a unit responsável por ler o XML de um CT-e contendo aproximadamente 1.800 (mil e oitocentos) notas vinculadas demorava cerca de 6 minutos para realizar a leitura. Foi criada uma nova unit se utilizando o ACBrXmlReader para realizar a leitura do XML do CT-e, foi realizado um teste com o XML contendo 1.800 notas vinculadas e o mesmo foi lido em aproximadamente 6 segundos. Veja o ganho em velocidade na leitura do XML, de 6 minutos para 6 segundos. Por conta dessa performance resolvemos reescrever todas as units que utilizam as units pcnGerador e pcnLeitor visando a passar a utilizar as units ACBrXmlWriter e ACBrXmlReader. Não é um trabalho fácil e rápido. As novas units foram escritas, foi criado os testes unitários para cada uma delas, depois de testadas fizemos a migração, um trabalho que consumiu varias semanas. Em breve as units antigas vão ser removidas do SVN. Esse trabalho vai ser realizado em outros componentes? Sim, o próximo é o ACBrCTe, depois o ACBrMDFe. Estamos trabalhando para deixar os componentes mais velozes.
    4 pontos
  3. Boa tarde Pessoal, O Evento ECONF (Conciliação Financeira) e o Evento de Cancelamento de Conciliação Financeira já foram implementados, mas não foram testados ainda pela falta dos Schemas. O componente ACBrNFe após gerar o XML de um evento o submete ao schema especifico do evento para saber se a estrutura do mesmo esta em conformidade. Assim que a SEFAZ disponibilizar os schemas, vamos disponibiliza-los no SVN e realizar os testes necessários.
    3 pontos
  4. Recentemente, algumas Software Houses e Contribuintes têm recebido notificações do sistema de retaguarda da Secretaria da Fazenda (Sefaz) indicando que os cupons fiscais estão sendo enviados mais de uma vez. Esse problema geralmente ocorre devido a falhas de comunicação com o módulo (timeout), levando a aplicação a reenviar automaticamente o cupom fiscal ou até mesmo o reenvio manual. Este procedimento pode resultar em sérios problemas para os contribuintes, como duplicidade de registros e inconsistências fiscais. Para evitar esses transtornos, a Sefaz recomenda a utilização de dois comandos essenciais: ConsultarNumeroSessao : O equipamento retornará exatamente o valor da sessão consultada, esse comando geralmente é utilizado quando não se obteve resultado do processamento da requisição da sessão. O equipamento só retornará a ultima sessão consultada, caso haja outros comandos enviados entre a sessão e a consulta, será retornado 11003 (sessão não existe). ConsultarUltimaSessaoFiscal: O Aplicativo Fiscal poderá solicitar a última sessão fiscal processada pelo Módulo Fiscal. O equipamento retornará exatamente o resultado da ultima sessão processada. (uma única vez). Passos Recomendados Implementação do Controle de Sessão: Certifique-se que a sua aplicação armazena o número da sessão de todos os cupons enviados. Consulta Módulo Disponível: Outro comando importante é ConsultarSAT antes de iniciar um processo de venda, devemos consultar se a situação do módulo é igual 8000 | SAT em operação, pois o módulo pode estar ocupado com outro comando, caso ocupado não deve-se enviar o comando de venda no momento. Implementação dos Comandos de Consulta: Certifique-se de que sua aplicação utilize os comandos ConsultarNumeroSessao e ConsultarUltimaSessaoFiscal para verificar o status das sessões e evitar reenvios desnecessários. Gestão de Timeout: Revise a configuração de timeout e a lógica de reenvio da aplicação para garantir que, em caso de falha de comunicação, o sistema não crie novas sessões indiscriminadamente. Monitoramento e Auditoria: Estabeleça processos de monitoramento e auditoria para identificar e corrigir rapidamente qualquer problema relacionado ao envio de cupons fiscais. Orientações para Correção do Problema 1. Armazenamento do Número da Sessão É fundamental que a aplicação, ao enviar um cupom fiscal, armazene o número da sessão correspondente. Este número é crucial para o controle e gerenciamento adequado dos cupons fiscais emitidos. 2. Reutilização do Número da Sessão No caso de necessidade de reenvio do cupom fiscal, a aplicação deve tentar utilizar o mesmo número de sessão. Isso evita a criação de novos números de sessão a cada envio, o que pode gerar duplicidade e confusão nos registros. no ACBrMonitor: SAT.SetNumeroSessao(1234) na ACBrLIB: SAT_SetNumeroSessao(1234); no componente: <ACBrSAT>.OnGetNumeroSessao <<<< é necessário programar o evento procedure TfmPrincipal.ACBrSAT1GetNumeroSessao(var NumeroSessao: Integer); begin NumeroSessao := 1234; // Random(999999); end; o valor 1234 é apenas um valor simbólico; Caso deseje controlar a sessão : O Aplicativo Comercial deverá gerar um número de sessão aleatório de 6 dígitos que se não repita nas últimas 100 comunicações. É crucial que Software Houses e Contribuintes estejam atentos às diretrizes da Sefaz para a correta emissão e reenvio de cupons fiscais. Utilizando adequadamente os comandos de consulta de sessão e gerenciando eficientemente os números de sessão, é possível evitar duplicidades e garantir a integridade dos registros fiscais. Para mais informações e suporte, entre em contato com a Secretaria da Fazenda ou consulte a documentação oficial disponível no site da Sefaz.
    2 pontos
  5. Sr. Daniel Boa Tarde! Vou efetuar o teste tentando instalar o Acbr diretamente no Delphi 5 e lhe respondo. Muito obrigado.
    2 pontos
  6. Olá pessoal! No dia 21/06/2024, foi publicado o Correio Eletrônico Circular SEF/DIAT/Nº 12 / 2024 que trás as seguintes alterações nas Tabelas Externas 5.1.1, 5.2 e 5.3 da EFD para o estado de Santa Catarina: O correio eletrônico pode ser baixado e lido na íntegra AQUI. As tabelas já atualizadas podem ser encontradas AQUI.
    2 pontos
  7. Olá pessoal, Desculpem pela demora na resposta... Baseado nas sugestões do @Arimateia Jr, que detectou que a Macro do OpenSSL não é carregada, e achou o métodos correto... enviei ao SVN, o Commit [r34047] Realmente a rotina de `TDFeOpenSSL.LerPFXInfo` não precisava criar todo o contexto, pois ela só pretende ler o certificado... Ficou bem mais simples..
    2 pontos
  8. Olá pessoal, Segue um tutorial de como configurar o ambiente de desenvolvimento de php para utilizar as bibliotecas do ACBr. Uma informação importante é que a comunicação com as bibliotecas é feita através da extensão FFI. Limitação: * A FFI foi implementado na versão 7.4.0, versões anteriores não possuem esse recurso. A seguir segue passo-a-passo para configuração do ambiente de desenvolvimento. 1. Início 1.1. IDE Você pode utilizar a IDE de sua preferência. Utilizaremos aqui o Visual Studio Code (VSCode). 1.2. Requisitos 1.2.1. Instalar o Visual c++redistributable package 2015, caso ainda não o tenha instalado em seu ambiente 2. Instalando o PHP 8 Baixar a última versão do php em: https://www.php.net/downloads Acesse o link Windows downloads Baixe o "zip" da última versão TS(Thread Safe) na mesma arquitetura do seu computador Exemplo para x64: VS16 x64 Thread Safe A diferença entre a versão e a TS(Thread Safe) e NTS(Non Thread Safe) é que a TS suporta servidores multithreaded. 2.1. Extrair o zip, copiar a pasta para c:\ e renomeie para um caminho mais curto Neste caso, que está na versão 8, ficará C:\php8 2.2. Vamos utilizar o arquivo ini padrão de configurações: C:\php8\php.ini-development Renomeie para php.ini Abra o arquivo para as próximas configurações 2.3. Extensões 2.3.1. Localizar a chave extension_dir e descomentar essa chave para indicar de onde buscar as extensões, que serão localizadas na pasta "ext", dentro da pasta do php: C:\php8\ext extension_dir = "ext" Obs: Em um cenário de testes, foi necessário colocar o caminho completo da pasta para o php conseguir acessar as extensões Caso tenha problemas com alguma extensão, tente colocar o caminho completo extension_dir = "C:\php8\ext" 2.3.2. Localizar as chaves "extension" Para utilizar as extensões que deseja, remover os comentários (ponto e vírgula no início da linha) das extensões que precisar 2.3.2.1. Extensão ffi para consumo das dlls do ACBr extension=ffi 2.3.2.2. Manipulação de strings pelo php extension=mbstring 2.4. Outras configurações 2.4.1. Diretório temporário, descomentar a seguinte linha e preencher o caminho de arquivos temporários do Windows session.save_path = "C:/Windows/Temp" 2.4.2. Localizar a chave error_reporting = E_ALL e preencher conforme abaixo error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT 2.4.3. Localizar ffi.enable e preencher com true ffi.enable = true 2.4.4. Caso não esteja habilitada, habilitar a exibição de erros display_errors = On 2.5. Debug A opção de debug não é obrigatória, mas facilita muito o desenvolvimento Verifique se sua IDE suporta a opção 2.5.1. XDebug Acessar https://xdebug.org/download/historical Baixe a versão de "Windows binaries" relacionada a versão do php que foi instalada Neste cenário de testes, vamos baixar a PHP 8.3 VS16 TS (64 bit), pois foi instalado o php TS(Thread Safe) Renomeie a dll baixada para php_xdebug.dll e salve em c:\php8\ext 2.5.1.1. Adicionar no final do arquivo a seção Xdebug com as linhas abaixo [Xdebug] zend_extension="C:\php8\ext\php_xdebug.dll" xdebug.mode=debug xdebug.start_with_request=yes xdebug.client_host=127.0.0.1 xdebug.client_port=9003 xdebug.log=C:\php8\log\xdebug.log 2.5.2. VSCode Instalar a extesão: PHP Debug Origem: xdebug.org Selecione a extensão, e clique em "Install" à direita 2.5.2.1. Criar uma pasta ".vscode" dentro da pasta do projeto Exemplo: \Projeto\.vscode 2.5.2.1.1. Criar um arquivo "launch.json" dentro da pasta ".vscode" com o conteúdo abaixo: No nosso exemplo, que o projeto estará na raiz do Apache ficará: C:\Apache24\htdocs\.vscode\launch.json { "version": "0.2.0", "configurations": [ { "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 9003 } ] } 2.5.2.2. Ao debugar, se ocorrer o erro: php executablenote found. Install PHP and add it to your PATH or set the php.debug.executablePath setting Configurar o php no PATH do windows Clique no Menu Iniciar e escreva Variáveis Clique em Editar as variáveis de ambiente do sistema Na aba Avançado, da tela de Propriedades do Sistema, clique no botão Variáveis de Ambiente No GroupBox de baixo Variáveis do sistema, selecione a Path e clique no botão Editar, abaixo do quadro Clique em Novo e preencha o caminho da pasta do php, seguindo nosso cenário: c:\php8 Clique em OK para confirmar e nas duas telas anteriores para fechar Reinicie o computador para garantir que a alteração no Path foi efetivada 3. Instalar o Apache Baixar o Apache em: https://www.apachelounge.com/download/ Baixe o zip da última versão, referente à arquitetura do seu computador 3.1. Extrair o zip, copiar a pasta Apache24 para c:\ Ficará c:\Apache24\ 3.2. Abra o arquivo de configurações: C:\Apache24\conf\httpd.conf 3.2.1. Localizar "Define SRVROOT" e confirmar se está apontando para onde salvou a pasta do Apache "c:/Apache24" Define SRVROOT "c:/Apache24" 3.2.2. Porta de acesso Localize a chave Listen Se a porta 80 estiver em uso indique qual porta será utilizada, senão mantenha a padrão Listen 80 Listen 80 3.2.3. Localize a chave ServerName Preencha com localhost e a porta que você configurou no item 3.2.2 ServerName localhost:80 3.3. Instalar o apache como serviço Pelo prompt, acessar a pasta C:\Apache24\bin\ Executar o comando: httpd.exe -k install Caso apareça tela do firewall do Windows, clicar em permitir 3.3.1. Para visualizar o serviço instalado, acesse os serviços do windows e procure por Apache2.4 Para acessar os serviços, abra a tela de Executar (teclas Windows + R), preencha services.msc e clique em OK Localize o Apache2.4, ele estará como inicialização automática, mas ainda não estará iniciado, clique com o botão direito e clique em Iniciar Para iniciar o serviço pelo prompt, acessar a pasta C:\Apache24\bin\, utilize o comando httpd -k start 3.3.2. Para verificar se o serviço está ok, acesse o navegador e navegue em localhost Caso nos passos 3.2.2 e 3.2.3 você tenha configurado uma porta diferente da 80, acesse localhost:sua porta. Ex: Para a porta 8080 acesse localhost:8080 Se aparecer "It works!", o Apache está funcionando 3.4. Configurar para acessar o php 3.4.1. Localize a chave LoadModule e adicione a nova linha para indicar o caminho da dll do php+apache LoadModule php_module "C:/php8/php8apache2_4.dll" 3.4.2. Localize DirectoryIndex que por padrão está aénas index.html, adicione index.php antes do index.html DirectoryIndex index.php index.html 3.4.3. Localize a chave AddType e adicione a linha para ele conhecer as extensões que irá processar AddType application/x-httpd-php .php .html 3.4.4. Um pouco mais abaixo, localize a chave AddHandler Adicionar o manipulador de cabeçalho AddHandler application/x-httpd-php .php Adicionar o caminho do arquivo php que vai processar Action application/x-httpd-php "C:/php8/php-cgi.exe" 3.4.5. No final do arquivo, configurar o caminho da pasta do php PHPIniDir "C:/php8" 3.4.6. Configurar também o Timeout Timeout 180 3.4.7. Testando o php no Apache Primeiro reinicie o serviço do Apache para as últimas configurações feitas relacionadas ao php Siga os passos do item 3.3.1 e clique na opção Reiniciar o Serviço ou pelo prompt, acessar a pasta C:\Apache24\bin\ e execute o comando httpd -k restart 3.4.7.1. Acesse a pasta C:\Apache24\htdocs\ e crie o arquivo index.php Adicione o conteúdo a seguir e salve o arquivo <?php phpinfo(); 3.4.7.2. Abra o navegador e acesse novamente localhost Deverá abrir uma página contendo as informações do php, iniciando pela versão instalada 3.4.7.3. Pesquise por XDebug Encontre o grupo de informações do XDebug para verificar se também foi configurado com sucesso 4. Testando o programa de exemplo do ACBr 4.1. Baixe os fontes do ACBr, seguindo as instruções do tópico a seguir: https://projetoacbr.com.br/fontes/ 4.2. Acesse os arquivos dos programas de exemplo para php da ACBrLib: ..\ACBr\Projetos\ACBrLib\Demos\PHP\ Copie o conteúdo da pasta ..\ACBr\Projetos\ACBrLib\Demos\PHP\ConsultaCNPJ para C:\Apache24\htdocs\ 4.3. Copiando as dlls da ACBrLib e suas dependências Veja o tópico a seguir para maiores detalhes, caso ainda não esteja familiarizado com o ambiente das bibliotecas ACBr 4.3.1. Download 4.3.1.1. Links para download das bibliotecas, versões PRO e Demo 4.3.1.1.1 Link Geral ACBr Pro: https://www.projetoacbr.com.br/forum/files/category/36-acbrlib-pro/ Link direto para a ACBrLibConsultaCNPJ 4.3.1.1.2. Link Geral ACBr Demo: https://www.projetoacbr.com.br/forum/files/category/63-acbrlib-demo/ Link direto para a ACBrLibConsultaCNPJ 4.3.2. Extraindo a dll da biblioteca Vamos tomar como exemplo a versão Demo Extraia o conteúdo do arquivo baixado e acesse a pasta bin Copie a versão da Lib equivalente à arquitetura da sua instalação do php para as respectivas pastas ST (Single Thread) e MT(Multi Thread) 4.3.2.1. Primeiro vamos pegar a biblioteca para o programa de exemplo ST Acesse a pasta ..\bin\Cdecl\ e copie a dll referente à arquitetura da sua instalação do php Para o nosso exemplo, que é a versão 64 bits, vamos copiar a dll ..\bin\Cdecl\ACBrConsultaCNPJ64.dll Copie a dll para C:\Apache24\htdocs\ST\ACBrLib\x64 4.3.2.2. Vamos agora copiar a versão MT Acesse a pasta ..\bin\MT\Cdecl\ e copie a dll referente à arquitetura da sua instalação do php Para o nosso exemplo, que é a versão 64 bits, vamos copiar a dll ..\bin\MT\Cdecl\ACBrConsultaCNPJ64.dll Copie a dll para C:\Apache24\htdocs\MT\ACBrLib\x64 4.3.3. Dependências 4.3.3.1. OpenSSL Seguindo o mesmo critério da arquitetura do php, vamos copiar as dlls da OpenSSL para ambas as pastas dos demos No nosso cenário de 64 bits, vamos copiar as dlls da pasta ..\dep\OpenSSL\x64 para as pastas C:\Apache24\htdocs\ST\ACBrLib\x64 e C:\Apache24\htdocs\MT\ACBrLib\x64 4.3.3.2. LibXML2 Para a ACBrConsultaCNPJ a LibXML2 não é necessária e não é distribuída no pacote, mas caso esteja seguindo este tutorial para outras bibliotecas, de DFes por exemplo, isso será necessário No nosso cenário de 64 bits, devemos copiar as dlls da pasta ..\dep\LibXml2\x64 para as pastas C:\Apache24\htdocs\ST\ACBrLib\x64 e C:\Apache24\htdocs\MT\ACBrLib\x64 5. Testando os programas de exemplo 5.1. Para testar as versões ST e MT, acesse respectivamente: http://localhost/ACBrConsultaCNPJST.php http://localhost/ACBrConsultaCNPJMT.php Lembrando que, caso tenha configurado uma porta diferente da 80 no Apache, ela deve ser adicionada na url Exemplos da porta 8080 http://localhost:8080/ACBrConsultaCNPJST.php http://localhost:8080/ACBrConsultaCNPJMT.php 6. Debugando com o VSCode 6.1. Para debugar os fontes php você pode colocar um ponto de parada posicionando na linha desejada e clicando em "F9" ou, com o mouse, clicar do lado esquerdo da numeração da linha O ponto será identificado com uma bolinha vermelha Para iniciar o debug, acesse o menu Run / Start Debugging ou pressione F5 O VSCode passará a escutar os retornos do XDebug e irá habilitar uma pequena barra para as interações Agora que o VSCode está com o debug ativo, acesse o programa de exemplo, acione o método que colocou o ponto de parada e utilize os botões da barra de debug ou as teclas de atalho que podem ser vistas ao passar o mouse sobre cada botão É isso pessoal, esperamos que esse novo conteúdo seja útil para a comunidade e caso tenham dúvidas, sugestões estaremos sempre prontos para atendê-los em nosso canais. Até mais!!!
    1 ponto
  9. Boa tarde Italo, Certo, aguardo a atualização amanha para realizar novo teste. Quando realiza-lo, reporto aqui. Att
    1 ponto
  10. duas situações que notei primeiro nunca, jamais coloque dentro de pastas protegidas do sistema os componentes (program files, windows, system32, syswow64 etc), já até damos sugestão c:\acbr . segunda a opção citada fere compatibilidade pensando somente na versão mais nova do delphi portanto teria que ser diferente o tratamento caso o mesmo esteja ocorrendo
    1 ponto
  11. voce tem que carregar o XML da NFSe (retorno autorização) e não o XML do RPS (envio), são 2 XML distintos, carregando o XML da NFSe que o que o Diego informou o carregamento funciona normalmente
    1 ponto
  12. Meus Clientes de GO tem recebido muito esse erro, inclusive com cliente com o cadastro no CCC indicando IE habilitado. Tenho pedido pra eles entrarem em contato com a sefaz.
    1 ponto
  13. Bom dia @LeonardoRocha, Se tratando de NFS-e sempre nos informe a cidade, desta forma sabemos o provedor que a prefeitura contratou e com isso irmos direto ao ponto para buscar a solução do problema. Sendo assim, qual é a cidade do prestador?
    1 ponto
  14. Olá meu amigo... Obrigado pela lembrança em postar sua resolução aqui no fórum de um problema que aconteceu em 2022 com a gente, isso é de extrema importância. Vou encerrar o tópico finalmente como resolvido! Ao longo desse tempo todo e desde que trabalho com os componentes do ACBr, só tive esse caso com esse cliente, mas acontecendo novamente tentarei sua dica. Abraços
    1 ponto
  15. Eu acredito que seja mais simples de ajustar os fontes do ACBr para rodar no D5... Quando você roda o instalador do ACBr nessa IDE, ocorre algum erro ? Se SIM, pode por favor anexar o Log?
    1 ponto
  16. Boa tarde @Tecnico.ProM, Já inclui na minha lista de tarefas para analise do problema. TK-5626
    1 ponto
  17. Segue xml soap de retorno, da nota emitida. lista-nfse-ger-soap.xml Segue txt tambem, gerado na pasta: 1977-ger-nfse-soap.txt
    1 ponto
  18. @galegoga Na verdade, eu não consegui carregar o método com o "sk_X509_pop_free" diretamente na minha primeira tentativa. Então dei uma pesquisada rápida no google e cheguei nesse outro método. Ao que parece, o "sk_X509_pop_free" é apenas uma macro. Mas, assim como você, não sou um profundo conhecedor de OpenSSL, por isso marquei o @Daniel Simoes pra dar uma averiguada no código e garantir que irá funcionar em todas as versões atualmente suportadas pelo ACBr. Seguem alguns links: https://www.openssl.org/docs/man3.2/man3/OPENSSL_sk_pop_free.html https://github.com/search?q=repo%3Aopenssl%2Fopenssl OPENSSL_sk_&type=code
    1 ponto
  19. O que é a Manifestação do Destinatário? Este conjunto de eventos, como o próprio nome já sugere, permite que o destinatário da NF-e possa se manifestar sobre a sua participação comercial descrita na NF-e, confirmando as informações prestadas pelo seu fornecedor e emissor do respectivo documento fiscal. Este processo é composto de quatro eventos: 1. Ciência da Emissão 2. Confirmação da Operação 3. Registro de Operação não Realizada 4. Desconhecimento da Operação Como funciona o evento Desconhecimento da Operação? Este evento tem como finalidade possibilitar ao destinatário se manifestar quando da utilização indevida de sua Inscrição Estadual, por parte do emitente da NF-e, para acobertar operações fraudulentas de remessas de mercadorias para destinatário diverso. Este evento protege o destinatário de passivos tributários envolvendo o uso indevido de sua Inscrição Estadual/CNPJ. Como funciona o evento Operação não Realizada? Este evento será informado pelo destinatário quando, por algum motivo, a operação legalmente acordada entre as partes não se realizou (devolução sem entrada física da mercadoria no estabelecimento do destinatário, sinistro da carga durante seu transporte, etc.). Como funciona o evento Confirmação da Operação? O evento será registrado após a realização da operação, e significa que a operação ocorreu conforme informado na NF-e. Quando a NF-e trata de uma circulação de mercadorias, o momento de registro do evento deve ser posterior à entrada física da mercadoria no estabelecimento do destinatário. Este evento também deve ser registrado para NF-e onde não existem movimentações de mercadorias, mas foram objeto de ciência por parte do destinatário, por isso é denominado de Confirmação da Operação e não Confirmação de Recebimento. Importante registrar, que após a Confirmação da Operação pelo destinatário, a empresa emitente fica impedida de cancelar a NF-e. Apenas o evento Ciência da Emissão não inibe a autorização para o pedido de cancelamento da NF-e, conforme o prazo definido na legislação vigente. Como funciona o evento Ciência da Emissão? O evento de "Ciência da Emissão" registra na NF-e a solicitação do destinatário para a obtenção do arquivo XML. Após o registro deste evento, é permitido que o destinatário efetue o download do arquivo XML. O Evento da "Ciência da Emissão" não representa a manifestação do destinatário sobre a operação, mas unicamente dá condições para que o destinatário obtenha o arquivo XML; este evento registra na NF-e que o destinatário da operação, constante nesta NF-e, tem conhecimento que o documento foi emitido, mas ainda não expressou uma manifestação conclusiva para a operação. Todas as operações com o evento de solicitação de "Ciência da Emissão" deverão ter na sequência o registro do evento com a manifestação conclusiva do destinatário sobre a operação (eventos descritos nos itens 5.2, ou 5.3, ou 5.4). É possível reconsiderar o registro de um destes eventos? O destinatário poderá enviar uma única mensagem de Confirmação da Operação, Desconhecimento da Operação ou Operação não Realizada, valendo apenas a última mensagem registrada. Exemplo: o destinatário pode desconhecer uma operação que havia confirmado inicialmente ou confirmar uma operação que havia desconhecido inicialmente. O evento de "Ciência da Emissão" não configura a manifestação final do destinatário, portanto não cabe o registro deste evento após a manifestação final do destinatário. O que fazer quando a operação se realizou de forma diferente do descrito na NF-e, porém a mercadoria já foi recebida pelo destinatário? Caso a operação tenha se realizado, mas o conteúdo da NF-e não descreva corretamente da operação, o destinatário deverá se manifestar utilizando o evento "Confirmação da Operação", e adotar os procedimentos fiscais cabíveis de acordo com a legislação da unidade federada onde estiver estabelecido. Os eventos "Registro de Operação não Realizada" e "Desconhecimento da Operação" não devem ser utilizados nesta hipótese. Onde podemos consultar os eventos de Manifestação do Destinatário? A consulta pública na Internet foi alterada para exibir os eventos registrados na NF-e e pode ser realizada diretamente no Portal da NF-e (www.nfe.fazenda.gov.br) ou portais das Secretarias de Fazenda da circunscrição do emitente, a partir da informação da chave de acesso da NF-e. Os arquivos XML dos eventos também serão disponibilizados para os emitentes/destinatários constantes no documento fiscal. Uma vez que o destinatário tomou Ciência da Emissão é obrigatória a sua manifestação? Sim. Toda nota informada ao contribuinte tem que ter registrada a sua respectiva manifestação até um prazo máximo de 180 dias, contados da data da ciência. Este prazo máximo será reduzido gradativamente, conforme o interesse das Administrações Tributárias. O destinatário deve apresentar uma manifestação conclusiva dentro de um prazo máximo definido, contados a partir da data de autorização da NF-e, conforme tabela abaixo: A distribuição ocorrerá para os atores que desempenham papéis de emitente, destinatário, transportador e terceiros (informado na tag autXML), e englobará os documentos que estiverem com “SIM” na linha correspondente, conforme tabela abaixo: A geração de NSU, a partir da versão 1.10 da Nota Técnica 2014.002, irá considerar somente os usuários do serviço nos últimos 60 dias. É importante ressaltar que: a) para os usuários do serviço dos últimos 60 dias, a geração de NSU continuará normalmente; b) no caso de novos usuários desse serviço (distNSU), a geração de NSU ocorrerá a partir do primeiro acesso. Não haverá geração de NSU retroativo; c) qualquer usuário que deixar de utilizar o serviço (distNSU) por mais de 60 dias, terá a geração de NSU interrompida e retomada a partir da próxima consulta com este método. Não haverá geração de NSU retroativo ao período de interrupção. OBS: A partir da versão 1.13 da Nota Técnica 2014.002, os eventos gerados pelo Fisco, que forem passíveis de distribuição conforme a tabela acima, serão distribuídos ao emitente independente de manifestação do destinatário, ainda que emitente e destinatário sejam iguais.
    1 ponto
  20. Para você que está querendo introduzir as soluções do Projeto ACBr nos seus projetos em ambiente Linux, agora dentro do pacote de cursos exclusivos para os assinantes ACBr Pro temos um Mini Curso para te ajudar e dar seu pontapé inicial. Como nosso objetivo é mostrar como utilizar as bibliotecas no Linux sem ambiente gráfico. Vamos utilizar o Ubuntu Server 22.04 como base para nosso vídeo. As aulas englobam os seguintes conteúdos: Como atualizar o Linux após concluir a instalação Instalar as dependências que nossa lib necessita para o funcionamento correto Onde baixar a biblioteca ACBrLib Entender a estrutura do arquivo de download (bin, dep) da lib, no exemplo vamos utilizar versão MT (multthread linux) Onde salvar o arquivo acbrlibxxx.so Nos testes vou utilizar com um programa que tenho aqui para validar se está funcionando a lib, vc pode testar com a sua própria aplicação Para este Mini Curso você precisa ter Linux Server instalado, certificado digital caso sua aplicação precise consultar serviços da SEFAZ. Como o foco deste curso é ensinar como configurar o Linux para funcionar a lib, não focamos em mostrar o exemplo, já que é uma particularidade da linguagem de cada um. Publicação do curso em breve ! Ainda NÃO é assinante ACBr Pro? Aproveite mais esta vantagem e se torne assinante antes do reajuste de valores!
    1 ponto
  21. Bom dia. Note que conforme citado pelos colegas acima, não é questão de erro no componente, caso fosse teríamos uma "enxurrada" de tópicos sobre o assunto. Também gostaria de ressaltar que seria mais polido usar títulos nos tópicos com algo como "Erros de timeout utilizando o ACBrNFe", que sugere que você tem um problema e precisa de apoio e ainda não desvaloriza um componente tão completo quanto este.
    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...