Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 28-02-2026 em todas as áreas

  1. Os estilos do próprio Delphi, já tentou? Project - Options - Application - Appearance
    1 ponto
  2. @NovoRJ - Possivelmente a URL está errada, por exemplo, Belford Rojo-RJ, só está funcionando o webservice de produção.. Homologaçao até tem URL no manual mas está fora.. Mesmo erro que o seu. - Referente as propriedades, vc precisa preencher "WSUser" e "WSSenha", porque a procedure da autenticação da API própria utiliza elas, conforme trecho abaixo retirado do ACBr: procedure TACBrNFSeXWebserviceModernizacaoPublicaAPIPropria.SetHeaders( aHeaderReq: THTTPHeader); var Auth: string; begin // Necessário para emitir em Produção with TConfiguracoesNFSe(FPConfiguracoes).Geral.Emitente do Auth := 'Basic ' + string(EncodeBase64(AnsiString(WSUser + ':' + AnsiString(WSSenha)))); aHeaderReq.AddHeader('Authorization', Auth); end; - Passa ai as URL's que vc está usando..
    1 ponto
  3. Fala pessoal! Na revisão 44798 foi realizada uma alteração importante para corrigir um erro no processo de inicialização das variáveis dentro das classes do ACBrBoleto. Até então, algumas propriedades tinham o valor definido como Default, mas não tinham uma inicialização no Create. Assim, o valor definido como default no DFM servia apenas para exibição no designer, mas não garantia a inicialização efetiva da propriedade em tempo de execução. Isso acontece porque inicializar uma propriedade corretamente ela deve ser inicializada na classe (veja a nota na documentação do Delphi). O detalhe é que ao corrigir esse problema, isso talvez gere um efeito colateral no seu código. Com essa mudança, as variáveis não assumem mais automaticamente o primeiro item de um enumerado por exemplo, mas sim, o valor que está explícito na classe como default. Assim, se seu aplicativo assume que outro valor é o padrão, talvez por não inicializar as propriedades, vai ser necessário que verifique e inicializar explicitamente as propriedades no seu código. Queremos deixar claro no entanto que, na aplicação de Exemplo do ACBrBoleto, sempre foi exemplificado que as propriedades deveriam ser inicializadas corretamente. Você pode conferir isso no código que faz uma inclusão de titulo. Exemplo prático Imagine que seu código ao incluir um título sempre considerou que o valor padrão era ter um juros mensais. Ou seja, com a propriedade Titulo.CodigoMoraJuros não era preenchida. Agora você precisa passar um valor para essa propriedade, porque o valor padrão para ela é cjIsento. Então, se antes seu código era assim: Titulo.DataMulta := incday(StrToDate(edtVencimento.Text),1); Titulo.MultaValorFixo := true; Titulo.PercentualMulta := StrToCurrDef(edtMulta.Text,0); Titulo.DataMoraJuros := StrToDateDef(edtDataMora.Text, 0); //note que não tem o CodigoMoraJuros aqui!!! ??? Titulo.ValorMoraJuros := StrToCurrDef(edtMoraJuros.Text,0); Precisará mudar para: Titulo.DataMulta := incday(StrToDate(edtVencimento.Text),1); Titulo.MultaValorFixo := true; Titulo.PercentualMulta := StrToCurrDef(edtMulta.Text,0); Titulo.DataMoraJuros := StrToDateDef(edtDataMora.Text, 0); Titulo.CodigoMoraJuros := cjValorMensal; //Linha adicionada agora <------- Titulo.ValorMoraJuros := StrToCurrDef(edtMoraJuros.Text,0); Resumindo Antes: valores vinham do índice 0 ou da sujeira da memória. Lembre-se: é responsabilidade do desenvolvedor configurar os dados necessários caso sejam diferentes do default da classe . Benefício: maior previsibilidade e controle sobre o comportamento das propriedades, evitando resultados inesperados. Boa prática de programação Sempre configure as propriedades relevantes logo no início do uso. Isso pode ser feito diretamente no código ou por meio de uma classe/método que centralize essas configurações. Faça isso não só para títulos, boletos e bancos, mas para qualquer componente ou objeto que for criado.
    1 ponto
  4. Olá, pessoal! Se você está implementando a NFSe no Padrão Nacional e está encontrando dificuldades para obter o XML da nota após o envio, este guia foi feito para você. Muitas vezes, a confusão acontece porque o fluxo do Padrão Nacional exige a distinção clara entre o DPS e a NFSe. Abaixo, detalhamos o fluxo correto para consultar e baixar o XML definitivo. O Fluxo de Consulta Correto Diferente de outros provedores, no Padrão Nacional, o ideal é realizar uma "ponte" entre a Chave do DPS e a Chave da NFSe. 1. Consulta pela Chave do DPS (42 dígitos) O segredo para o sucesso é utilizar a Chave do DPS. Essa chave possui 42 dígitos e o ideal é que você a tenha armazenado em seu banco de dados no momento da emissão. Delphi/Lazarus // LIdDPS deve conter a chave de 42 dígitos do DPS ACBrNFSeX.ConsultarDPSPorChave(LIdDPS); 2. Obtenção da NFSe através do retorno Se a consulta do DPS for bem-sucedida, o componente receberá o ID da Nota Fiscal. Com esse ID, fazemos a consulta final para obter o XML completo da NFSe: Delphi/Lazarus if ACBrNFSeX.WebService.ConsultaNFSeporRps.Sucesso then begin // Agora consultamos pela Chave da Nota retornada, e não mais pelo DPS ACBrNFSeX.ConsultarNFSePorChave(ACBrNFSeX.WebService.ConsultaNFSeporRps.idNota); // O XML da NFSe estará disponível aqui: ShowMessage(ACBrNFSeX.NotasFiscais.Items[0].XmlNfse); end; Caso esteja validando um processo de emissão que foi interrompido e a consulta do DPS não foi realizada com sucesso você pode entender que o DPS não foi recebido e a nota não existe. Observações Importantes Diferença de Chaves: Não confunda a Chave do DPS (enviada) com a Chave da NFSe (gerada pelo governo). Ambas são importantes, mas para baixar o XML final, a consulta por chave de nota é a mais precisa. Persistência de Dados: Salve sempre a chave de 42 dígitos do DPS no seu banco de dados. Ela é o seu "passaporte" para localizar a nota caso haja uma queda de conexão ou timeout. Provedor Nacional: Este fluxo é o padrão esperado para prefeituras que aderiram ao convênio da NFSe Nacional via Ambiente de Dados Nacional (ADN). Conclusão Seguindo esses passos, você garante que sua aplicação consiga recuperar o XML da NFSe de forma consistente, evitando erros de "Nota não encontrada" ou retornos vazios. A chave é entender que o processo é uma escada: Dados do DPS -> Consulta Chave DPS -> Consulta Chave NFSe -> XML Final. Esperamos que esta dica ajude a agilizar as implementações de vocês! Créditos à comunidade ACBr e ao amigo @icozeira pelo compartilhamento de experiências!
    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.