-
Total de ítens
254 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Rodrigo Cardilo postou
-
Bom dia amigos, Necessitei de pegar a chave do DFe na leitura do retorno e verifiquei nos fontes que não era possível, pois só retornava o numero do documento Criei a propriedade ChaveDFe onde pega exatamente a chave e não o número do documento somente. Segue fontes.pgnreGNRERetorno.pas ACBrGNREGuiasRetorno.pas
-
Instalar, Iniciar e Parar Serviço via delphi
um tópico no fórum postou Rodrigo Cardilo Object Pascal - Delphi & Lazarus
Bom dia amigos, Alguém conhece algum comando que eu possa instalar, iniciar ou parar um serviço do windows (que no caso é minha aplicação) via delphi sem usar cmd (pois esse já funciona). Gostaria de saber se existe alguma coisa nativa. Grato desde já -
Boa tarde amigos, Boa tarde amigos.. Estou usando a rotina SpedPCImp.Importar para pegar os dados de arquivos e gravar no banco de dados. Achei um erro na rotina para pegar os dados do registro C170. Faltou o campo VL_ABAT_NT. Segue arquivo corrigido na linha 413. ACBrEFDBloco_C_Importar.pas
-
Boa tarde amigos, Estou com um problema que nunca vi e gostaria de compartilhar caso alguém já tenha visto algo parecido. Meu sistema utiliza datasnap com Firedac no Servidor de Aplicação. Quando vou fazer uma consulta e logo em seguida gravar no banco está aparecendo a mensagem Falha Catastrófica. Como não é uma mensagem que ajuda muito andei forçando e logo após aparece uma mensagem que eu nunca me deparei antes conforme figura abaixo: A única coisa que identifiquei familiar nessa mensagem é o meu provider PV08480. Caso alguém saiba "decifrar" essa mensagem e puder me ajudo fico agradecido.
-
Prezados, Fiz um último ajuste na leitura do retorno pois estava tendo problema com o tamanho máximo do nosso numero (10). Segue arquivo.ACBrBancoC6.pas
-
Boa tarde amigos, Conforme conversa no discord e ajuda do amigo @Daniel InfoCotidiano e @Victor H. Gonzales - Panda segue unit alterada para cobrança registrada do C6. A principal mudança foi a utilização da modalidade onde Modalidade = '' ou = '1' é do modo que já funcionava (cobrança direta) e Modalidade = '2' é cobrança registrada segundo manual anexo. Uma sugestão minha seria apagar os comentários existentes na unit sobre remessa cnab240 pois o banco não utiliza isso. Grato desde já e obrigado pela ajuda. ACBrBancoC6.pas
-
Boa tarde amigos do ACBR, Conversando com o @Daniel InfoCotidiano no discord e estudando a unit ACBRBancoC6 eu percebi que temos um problema com o tipo de cobrança. O C6 trabalha com cobrança direta e cobrança com registro (que é meu caso) e não é contemplado pelo arquivo. Minha dúvida é, para melhor colaborar, existe alguma propriedade no componente ACBrBoleto onde posso classificar o tipo de cobrança? Segue algumas telas do manual explicando esse detalhe
-
Boa tarde, Não entendi. A minha alteração não foi na última versão?
-
Boa tarde, Fiz algumas modificações na unit AcbrBoletoC6 depois de tentar homologar minha empresa. O suporte deles ainda está engatinhando porém conseguimos ajustar. Fiz algumas alterações na remessa e implementei o retorno corretamente. Segue anexo documentação e arquivo. Grato, ACBrBancoC6.pas Motivos de ocorrencias Layout C6 (1).xlsx Layout Cnab 400 C6Bank_Junho 2022 (2).pdf
-
Nota de Anulação de Frete / Prestação de serviço em desacordo
Rodrigo Cardilo replied to durvalcastro's tópico in ACBrCTe
Bom dia amigos, Aconteceu esse caso com um cliente meu semana passada. Ele emitiu um ct-e de MG para SP com o valor errado. O tomador, que é contribuinte de ICMS, realizou o evento Prestação do Serviço em Desacordo e solicitou um outro Ct-e. Agora não consigo gerar um Ct-e substituto sem colocar uma chave, seja do Ct-e de Anulação, seja de NF-e de Anulação. Alguém sabe como deve ser feito a partir de agora, ainda na versão 3.0? Grato desde já -
Ajuda para montar mapa de ocupação
Rodrigo Cardilo replied to Rodrigo Cardilo's tópico in Object Pascal - Delphi & Lazarus
Vou dar uma pesquisada.. Vlw @Daniel Simoes -
Ajuda para montar mapa de ocupação
Rodrigo Cardilo replied to Rodrigo Cardilo's tópico in Object Pascal - Delphi & Lazarus
Oi @Daniel Simoes, o bom e velho delphi. -
Ajuda para montar mapa de ocupação
um tópico no fórum postou Rodrigo Cardilo Object Pascal - Delphi & Lazarus
Olá amigos, Tenho um sistema para controle de ocupação de um determinado condomínio que a partir de agora me solicitaram uma espécie de mapa de ocupação conforme imagens anexo. Já tenho esse controle de ocupação por data em banco de dados e fiz um mapa usando dbgrid porém é muito lento para ser montado. Estou procurando uma alternativa e não sei qual componente eu poderia utilizar ou uma maneira de ser preenchido dinamicamente pegando os dados do Banco de Dados. Se alguém tiver alguma dica e puder me ajudar eu agradeço. Grato -
Retorno via API do Banco Inter sem resultado
Rodrigo Cardilo replied to Luiz Carlos Panoni Junior's tópico in ACBrBoleto
Também fiz dessa forma e funcionou muito bem. @Luiz Carlos Panoni Junior o exemplo é somente para dar um norteio. O componente é bem flexível seguindo o padrão do Banco. -
Retorno via API do Banco Inter sem resultado
Rodrigo Cardilo replied to Luiz Carlos Panoni Junior's tópico in ACBrBoleto
Passei pelo mesmo problema do amigo acima e resolvi fazendo as modificações na unit conforme o amigo @Aggille Sistemas de Gestão. Agora funcionou perfeitamente. -
Boa tarde amigos, Após uma troca de mensagens com o usuário Daniel no discord, o mesmo me pediu pra abrir esse tópico. Estou tentando utilizar o ACBBoletoWs no Banco inter. Fiz toda a configuração e coloquei o código abaixo: ACBrBoleto1.Configuracoes.WebService.ArquivoCRT := 'D:\AdmCardilo\Boleto\InterAPI_Certificado.crt'; ACBrBoleto1.Configuracoes.WebService.ArquivoKEY := 'D:\AdmCardilo\Boleto\InterAPI_Chave.key'; ACBrBoleto1.Configuracoes.WebService.SSLHttpLib := httpOpenSSL; ACBrBoleto1.Configuracoes.WebService.SSLCryptLib := cryOpenSSL; ACBrBoleto1.Configuracoes.WebService.SSLXmlSignLib := xsLibXml2; ACBrBoleto1.Configuracoes.WebService.SSLType := LT_TLSv1_2; ACBrBoleto1.Configuracoes.WebService.UseCertificateHTTP := True; ACBrBoleto1.Configuracoes.WebService.TimeOut := 10000; ACBrBoleto1.Cedente.CedenteWS.ClientID := 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; ACBrBoleto1.Cedente.CedenteWS.ClientSecret := 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; ACBrBoleto1.Cedente.CedenteWS.Scope := 'extrato.read boleto-cobranca.read boleto-cobranca.write'; Depois tentei fazer a consulta dos boletos em aberto com o seguinte código: procedure TForm1.Button2Click(Sender: TObject); var FiltrosAPI: TACBrBoletoWSFiltroConsulta; boleto: TACBrBoleto; SLRetorno: TStringList; Retorno: TListaACBrBoletoRetornoWS; I: Integer; begin boleto := ACBrBoleto1; FiltrosAPI := boleto.Configuracoes.WebService.Filtro; FiltrosAPI.Clear; FiltrosAPI.indicadorSituacao := isbAberto; FiltrosAPI.dataVencimento.DataInicio := StrToDate('01/01/2023') ; FiltrosAPI.dataVencimento.DataFinal := Date + 30; boleto.Configuracoes.WebService.Operacao := tpConsulta; boleto.Enviar; Retorno := boleto.ListaConsultaRetornoWeb; if Retorno.Count > 0 then begin SLRetorno := TStringList.Create; try SLRetorno.Add('Cod_Retorno=' + Retorno[I].CodRetorno + sLineBreak + 'Msg_Retorno=' + Retorno[I].MsgRetorno + sLineBreak + 'Ori_Retorno=' + Retorno[I].OriRetorno + sLineBreak + 'HTTP_Result=' + IntToStr(Retorno[I].HTTPResultCode) + sLineBreak + 'JSON=' + Retorno[I].JSON); SLRetorno.Add('indicadorContinuidade=' + BoolToStr(Retorno[0].indicadorContinuidade)); SLRetorno.Add('proximoIndice=' + IntToStr(Retorno[0].proximoIndice)); SLRetorno.Add(' '); SLRetorno.Add(' '); for I := 0 to Pred(Retorno.Count) do begin SLRetorno.Add('[Boletos Index = ' + FormatFloat('000', I) + ']'); SLRetorno.Add('numeroBoletoBB = ' + Retorno[I].DadosRet.TituloRet.NossoNumero); SLRetorno.Add('dataRegistro = ' + DateToStr(Retorno[I].DadosRet.TituloRet.DataRegistro)); SLRetorno.Add('dataVencimento = ' + DateToStr(Retorno[I].DadosRet.TituloRet.Vencimento)); SLRetorno.Add('valorOriginal = ' + DateToStr(Retorno[I].DadosRet.TituloRet.ValorDocumento)); SLRetorno.Add('carteiraConvenio = ' + Retorno[I].DadosRet.TituloRet.Carteira); SLRetorno.Add('variacaoCarteiraConvenio = ' + IntToStr(Retorno[I].DadosRet.TituloRet.Modalidade)); SLRetorno.Add('codigoEstadoTituloCobranca = ' + Retorno[I].DadosRet.TituloRet.codigoEstadoTituloCobranca); SLRetorno.Add('estadoTituloCobranca = ' + Retorno[I].DadosRet.TituloRet.estadoTituloCobranca); SLRetorno.Add('contrato = ' + Retorno[I].DadosRet.TituloRet.Contrato); SLRetorno.Add('dataMovimento = ' + DateToStr(Retorno[I].DadosRet.TituloRet.dataMovimento)); SLRetorno.Add('dataCredito = ' + DateToStr(Retorno[I].DadosRet.TituloRet.dataCredito)); SLRetorno.Add('valorAtual = ' + CurrToStr(Retorno[I].DadosRet.TituloRet.valorAtual)); SLRetorno.Add('valorPago = ' + CurrToStr(Retorno[I].DadosRet.TituloRet.ValorPago)); SLRetorno.Add(' --- '); end; SLRetorno.SaveToFile(PathWithDelim(ExtractFilePath(Application.ExeName)) + formatDateTime('yyyy.mm.dd.hh.nn.ss.zzz', now) + '-RetornoConsulta.txt'); finally SLRetorno.Free; end; end; showMessage('Fim'); end; Retornou o log e retorno em anexo. Fiz os mesmos testes pelo postman e funcionou. Se alguém puder me ajudar fico grato. Enviei os logs para [email protected] Grato desde já ArqBoletoWS.log 2023.02.08.18.27.27.868-RetornoConsulta.txt
-
Oi @Renato Rubinho. Na verdade o valor do estoque do dia eu já tenho o sql pronto, conforme mostrei no primeiro post. Eu precisa juntar aquele select que já funciona a outro com um periodo de datas. Suas dicas não deram certo, mas fiz de outra forma, dentro do próprio delphi pegando o valor de cada data que eu precisava. Agradeço a disponiblidade
-
Amigo @Renato Rubinho, na verdade eu preciso de um select que junte o meu select acima mencionado (que é o total de venda por dia) ao outro pra pegar o valor por um periodo como o exemplo abaixo: DATA VALOR 01/01/2023 100,00 02/01/2023 2000,00 03/01/2023 800,00 O valor por dia eu já consigo pelo meu select porém quero um select unico que me retorne da forma menciona. O Group by seria o campo DATA Mesmo assim grato pela ajuda.
-
Bom dia amigos, Estou tentando montar uma consulta com as seguintes condições: Tenho uma tabela com os campos : CODPRODUTO, DATA, TIPOMOV, DATA, QUANT e outra com os campos CODPRODUTO, CUSTO A principio eu precisava do saldo do estoque e o valor total de custo em uma determinada data. Consegui usando o código abaixo: SELECT SUM( (COALESCE((SELECT SUM(M.QUANT) from UN05300 M where M.CODPRODUTO = F.CODPRODUTO AND M.TIPOMOV < 2000 AND M.DATA <= :DTESTOQUE),0) - COALESCE((SELECT SUM(M.QUANT) from UN05300 M where M.CODPRODUTO = F.CODPRODUTO AND M.TIPOMOV > 1999 AND M.DATA <= :DTESTOQUE),0)) * F.CUSTO) FROM UN05100 F Porém eu precisava agora de um select que me retornasse o valor de um periodo de datas agrupado por dia com as colunas DATA E VALORTOTAL usando o código acima. Alguém já passou por isso? Já tentei JOIN's de todos os tipos mas não obtive sucesso. Grato desde jáo em uma determinada data. Consegui usando o código abaixo:
-
Boa tarde amigos, Eu tenho uma aplicação que OBRIGATORIAMENTE precisa acessar uma rotina utilizando a tecla F1. Em algumas situações, geralmente depois de utilizar outras teclas de atalho, aparece o erro "no context-sensitive help installed" A rotina funciona perfeitamente mas esse erro fica incomodando meu usuário. Alguém já passou por isso e saberia como desativar essa mensagem de erro? Grato desde já.
-
Consegui criar corretamente @Juliomar Marchetti. E já está dando certo. Agora tenho uma outra dúvida.. Analisando os fontes procurei a rotina para voltar a emissão de NFC-e para online porém não achei nada que verifique o status da receita antes. Simplesmente existe uma procedure LigarOnLine que tem um código somente para mudar de True para False. procedure TContingenciaNFCe.LigarOnLine; begin if (FConfigContigencia.FOffLine) then begin FConfigContigencia.FOffLine := False; FConfigContigencia.SalvarArquivo; end; end; Tem alguma outra forma no exemplo de verificar se a receita está online antes de mudar? Gratos desde já
-
Sim, assisti o curso, baixei os fontes e estou testando. Porém, como não vou utilizar todas as rotinas do thread utilizada no curso resolvi montar minha própria Thread copiando o que eu realmente preciso na minha aplicação. O primeiro problema que eu estou esbarrando é configurar a classe. Fiz uma procedure identica ao do curso: procedure TDM1.GravarConfiguracaoContingencia; var Config: TConfigContigencia; begin Config := TConfigContigencia.Create; try Config.TempoTransmissaoOffLine := DM1.TB10910TEMPOTRANSMISSAOOFFLINE.Value; Config.TempoAtivarOnLine := DM1.TB10910TEMPOATIVARONLINE.Value; ContingenciaNFCe.SetConfigContingencia(Config); finally Config.Free; end; end; Porém dá erro de Access violation exatamente nesse ponto: procedure TConfigContigencia.Assign(DeConfigContigencia: TConfigContigencia); begin TempoTransmissaoOffLine := DeConfigContigencia.TempoTransmissaoOffLine; TempoAtivarOnLine := DeConfigContigencia.TempoAtivarOnLine; end; Como disse, sou novo na criação de Threads mas acredito que o erro não está diretamente à Thread e sim algo que eu não criei pra tentar gravar. Deixei anexo minha unit da classe que ainda está em construção caso alguém possa me ajudar. Desde já agradeço uContingenciaNFCe.pas
-
Thread utilizada no curso Contingência NFC-e
um tópico no fórum postou Rodrigo Cardilo NFe/NFCe - Nota Fiscal Eletrônica
Boa tarde, Estou fazendo alterações no meu sistema para enviar a contingência NFC-e corretamente. Estou criando uma thread nova adaptando para minha realidade. Nesse primeiro momento preciso criar apenas 2 rotinas nessa Thread. A primeira é para verificar se a receita está online e sair do modo contingência. A segunda é, caso a receita estiver ok, enviar os cupons emitidos offline. Essas 2 rotinas eu preciso fazer conforme o exemplo do curso, ou seja, depois de x minutos o sistema verificar e executar. Alguém poderia me dar uma luz de onde eu posso encontrar na unit uContingenciaNFCe essas rotinas pra tirar como exemplo? Grato desde já -
Problemas com Thread para atualizar NCM e IBPT
Rodrigo Cardilo replied to Rodrigo Cardilo's tópico in Dúvidas gerais
Fiz tudo aqui e agora deu certo @Juliomar Marchetti. Muito obrigado pela ajuda.