-
Total de ítens
64 -
Registro em
-
Última visita
Sobre softwareamigo
Últimos Visitantes
O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.
softwareamigo's Achievements
-
Olá pessoal ! O cliente deseja emitir boleto hibrido. Vi que o ACbrBoleto é capaz de gerar o registro no banco mas fiquei perdido com o fluxo de dados. Como o banco me retorna o código para o Qrcode? Existe algum código com um exemplo ? Ou alguém tem algum passo a passo ? Agradeço qualquer ajuda
-
NFCe - Erro 704 - DataHora muito atrasada
softwareamigo replied to softwareamigo's tópico in NFe/NFCe - Nota Fiscal Eletrônica
A mesma procedure funciona corretamente para notas modelo 55. Existe algum evento, notifier ou algo parecido que possa estar causando este efeito. Meu delphi é meio curto para entender esta parada -
NFCe - Erro 704 - DataHora muito atrasada
softwareamigo replied to softwareamigo's tópico in NFe/NFCe - Nota Fiscal Eletrônica
Debugando descobri que a mágica ocorre na ACBrUtil.FilesIO. Do nada o comando SL.LoadFromFile(IniArquivoOuString) modifica a data que esta no arquivo texto (modelo ini). No texto temos dhEmi=29/12/2023 21:04:00 em SL.Text aparece 'dhEmi=29/12/2023 13:22:48' ===================================================================================== procedure LerIniArquivoOuString(const IniArquivoOuString: String; AMemIni: TMemIniFile); var SL: TStringList; begin SL := TStringList.Create; try if StringIsINI(IniArquivoOuString) then SL.Text := String(StringToBinaryString( IniArquivoOuString )) else begin if not StringIsAFile(IniArquivoOuString) then raise Exception.Create(ACBrStr('String INI informada não é válida.')) else begin if FileExists(IniArquivoOuString) then SL.LoadFromFile(IniArquivoOuString) else raise Exception.CreateFmt(ACBrStr('Arquivo: %s não encontrado.'), [IniArquivoOuString] ); end; end; AMemIni.SetStrings(SL); finally SL.Free; end; end; -
NFCe - Erro 704 - DataHora muito atrasada
um tópico no fórum postou softwareamigo NFe/NFCe - Nota Fiscal Eletrônica
Oi Pessoal, quando envio o XML da NFCe recebo a mensagem de que a NF é válida mas que a data-hora esta muito atrasada e o XML não é transmitido. A hora em que o XML foi gerado e gravado na pasta do sistema foi 16:39 mas a data de emissão no XML esta nesta forma: <dhEmi>2023-12-29T13:22:48-03:00</dhEmi> o que poderia ser ? Data e Hora da maquina como configurado abaixo. -
dll Isapi IntraWeb não reconhece Conexão Firedac
softwareamigo replied to softwareamigo's tópico in Banco de Dados
Obrigado -
dll Isapi IntraWeb não reconhece Conexão Firedac
softwareamigo replied to softwareamigo's tópico in Banco de Dados
Oi Daniel ! Obrigado pela resposta. Mas não, o Delphi é o Berlin. Tudo funciona bem quando o app roda no servidor standalone, inclusive rodando como serviço. o problema ocorre quando gero a aplicação como DLL Isapi. Daí , parece que a DLL não consegue receber respostas para os requests que ela faz a outros servidores. O mesmo problema do FIredac acontece quando uso um servidor HTTP. Ele recebe o request, processa, retorna com 200 mas a DLL parece que não recebe esta mensagem. Aff ! -
dll Isapi IntraWeb não reconhece Conexão Firedac
softwareamigo replied to softwareamigo's tópico in Banco de Dados
Complementando a situação. Usando um servidor HTTP para obter os dados funciona perfeitamente no standalone mas na DLL acontece a mesma travada de quando trabalho cliente servidor e a conexão direta do Firedac não responde. Monitorando o servidor HTTP pude constatar que ele recebeu o request, processou, respondeu com 200. Tudo perfeito . Só que parece que a resposta não chega na dll. -
dll Isapi IntraWeb não reconhece Conexão Firedac
um tópico no fórum postou softwareamigo Banco de Dados
Oi Pessoal ! Estou com uma situação bem estranha. Estou fazendo os testes de conceito de uma aplicação INTRAWEB. Na UserSessionUnit tem uma conexão Firedac configurada a partir do FDefConnection.ini . Um serviço em modo standalone funciona direitinho. Mas quando gerei uma dll Isapi da mesma aplicação o IW não reconhece o alias. Parece que não acha o arquivo .ini . Configurei a conexão no braço. E aí não dá erro quando starto a aplicação mas o browser abre uma pagina em branco e fica carregando eternamente. Se retiro a conexão FIredac da unit a ela inicial aparece diretinho no browser. Alguem tem alguma idéia do que possa causar esta situação ? -
Oi Elias ! na ACBrPIXSchemasCob não temos esta propriedade. ELa só existe na cobV e na devolucao
-
Opa! Muito obrigado pela dica
-
O Diego, confundi os assuntos. No post anterior tratei do OFX. Sobre o PIX segue retorno do INTER 2023-10-15T01:40:11.308Z esta 3 horas à frente do real {"chave":"02658379000319","infoAdicionais":[],"pixCopiaECola":"00020101021226930014BR.GOV.BCB.PIX2571spi-qrcode.bancointer.com.br/spi/pj/v2/24fc02913d944a05a02524846932159052040000530398654041.005802BR5901*6013BELO HORIZONT61083041147062070503***63043C02","loc":{"id":11837332,"location":"https://spi-qrcode.bancointer.com.br/spi/pj/v2/24fc02913d944a05a025248469321590","tipoCob":"cob","criacao":"2023-10-15T01:40:11.308Z"},"location":"https://spi-qrcode.bancointer.com.br/spi/pj/v2/24fc02913d944a05a025248469321590","status":"REMOVIDA_PELO_USUARIO_RECEBEDOR","valor":{"original":"1.00","modalidadeAlteracao":0},"calendario":{"expiracao":3600,"criacao":"2023-10-15T01:40:11.331Z"},"txid":"P020027834X000000100141023","revisao":1,"pix":[]} Como eu tratei no meu programa quando o PSP é o INTER function AplicaFuso: TDateTime; var Ano,Mes,Dia,Hora,Minuto,Segundo,Milisegundo: word; Data:TDateTime; umDia:extended; const Fuso = 3; begin Data := ACBrPixCD1.PSP.epCob.CobGerada.calendario.criacao; DecodeDateTime(Data,Ano,Mes,Dia,Hora,Minuto,Segundo,Milisegundo); if Hora <= Fuso then begin if Hora < 0 then begin if Dia = StartOfTheMonth(Data) then begin if Mes = 1 then begin Mes := 12; Ano := Ano -1; end else begin Mes := Mes - 1; end; umDia := EndOfTheMonth(Data); Dia := Trunc(umDia); end; end; end; Hora := 24 - Fuso + Hora; result := EncodeDateTime(Ano,Mes,Dia,Hora,Minuto,Segundo,Milisegundo); end;
-
Olá Diego! Eu tratei especificamente a data do SANTANDER. Creio que precisamos de uma classe que identifique todos os formatos UTC possíveis. Eu não conheço o assunto e não me senti seguro para subir nenhuma alteração. Esta situação também ocorre no tratamento de mensagens do PIX, como citei em outro post. ACBrOFX.pas Santander.ofx
-
Em primeiro lugar não posso deixar de voltar a gradecer a todos que me ajudaram na implantação da rotina de envio de PIX no meu sistema. Nos teste que estou realizando notei que a data de confirmação retornada pelo Banco INTER, vem com um acréscimo de 3 horas. Questionei o suporte e eles informaram que trabalham com formato UTC e que eu devo atualizar o fuso horário em 3 horas. Resolvi a situação "no braço" testando se o PSP é o INTER e aplicando o fuso antes de registrar a data na base. Mas acho que seria interessante acrescentar uma propriedade UTC nas classes dos PSPs para que a conversão pudesse ser efetuada pelo componente. Esta questão do UTC também ocorre no componente ACBROfx. Um colega subiu um post reportando esta situação. ACBrOFX - Erro ao ler arquivo OFX exportado do Santander: "Invalid argument to date enconde" Sugeri uma solução especifica para o formato do Santander, mas acredito que existam vários formatos de UTC e não tenho conhecimento suficiente para arriscar uma alteração na classe. Fica a sugestão para os universitários da comunidade.
-
Oi Jhoni ! Eu disse UTF mas queria dizer UTC. Me parece que a data vem com AAAAMMxxxxxx onde xxxxxx são minutos divide por 3600 e depois por 24 subtrai a diferença do uso e voce tem o dia. Alterei o ACBROfx.pas e testei com o seu arquivo. Parece que funcionou bem voltou a data do de 03/10/2023 inclui a função abaixo no metodo Import para converter as datas Não subi a unit porque não tenho certeza da minha análise sobre xxxxxx serem minutos. ======================== function TACBrOFX.Import: Boolean; var .............. function GetData(Texto:string): string; var Ano,Mes,Dia: word; UTCDia,Fuso:extended; umDia: TdateTime; function IsUTC(var Fuso:extended): boolean; var inicio,fim: integer; begin result := Pos('GMT',InfLine(sLine)) > 0; if result then begin inicio := Pos('[',InfLine(sLine)); fim := Pos(':',InfLine(sLine)); Fuso := StrToInt(Copy(InfLine(sLine), inicio + 1, length(InfLine(sLine)) - (fim +1) -1 )); end else Fuso := 0; end; begin Ano := StrToInt(Copy(InfLine(sLine), 1, 4)); Mes := StrToInt(Copy(InfLine(sLine), 5, 2)); if IsUTC(Fuso) then Dia := Trunc(((StrToInt(Copy(InfLine(sLine), 7, 6)) div 3600) div 24 ) + Fuso) else Dia := StrToInt(Copy(InfLine(sLine), 7, 2)); UmDia := EncodeDate(Ano,Mes,Dia); result := DateToStr(UmDia); end; begin; ............. ............. // Date Start if FindString('<DTSTART>', sLine) then begin if Trim(sLine) <> '' then DateStart := GetData(sLine); end; // Date End if FindString('<DTEND>', sLine) then begin if Trim(sLine) <> '' then DateEnd := GetData(sLine); end; ACBrOFX.pas