Ir para conteúdo
  • Cadastre-se

Centrodata Sistemas

Membros Pro
  • Total de ítens

    20
  • Registro em

  • Última visita

Tudo que Centrodata Sistemas postou

  1. Boa tarde. Confome o e-mail de orientação que nossos clientes receberam da seguradora sobre a troca da URL da AT&M de HTTP para HTTPS, segue o arquivo ini ja alterado. Realizado restes de averbação e a nova URL está funcionando. Aparentemente a URL sem o HTTPS ainda está em funcionando, mas até quando, não sabemos. ACBrANeServicos.ini
  2. Boa tarde. No componente PagFor, ao preencher o objeto SegmentoO, não foi encontrada a propriedade TipoMovimento na classe TSegmentoO, como nos demais segmentos. Então ao gerar o arquivo de remessa no registro detalhe do Segmento O o valor informado na posição 15 esta fixo com ‘0’. Foi realizada alterações para que este segmente também tenha esta propriedade, conforme manual em anexo. ACBrPagForClass.pas CNAB240.GravarTxtRemessa.pas PagFor.BancodoBrasil.GravarTxtRemessa.pas PagFor.HSBC.GravarTxtRemessa.pas PagFor.Itau.GravarTxtRemessa.pas
  3. Bom dia Não sei informar se houve alguma alteração no Schema, só sei dizer que pelo que li no forum sobre o provedor da GeisWeb é que pode ocorrer de existir versões diferentes dele em cada cidade. Realizado teste com a revisão e está funcionando.
  4. Boa tarde. Estava ocorrento erro no RetornoConsultaLoteRps que algumas tags não estavam sendo preenchidas, e detectamos que nesse retorno em expecifico o XML estava diferente do previsto pelo componente, com alguns pequenos ajustes foi possivel mantar o código atual funcionando para o caso se alguma versão do webservice do provedor estar da forma prevista atualmente no ACBr e tambem conseguir ler o XML que estou recebendo do provedor na prefeitura de Cajamar - SP. unit: GeisWeb.Provider.pas procedure TACBrNFSeProviderGeisWeb.TratarRetornoConsultaLoteRps como estava: AuxNode := ANode.Childrens.FindAnyNs('IdentificacaoNfse'); if AuxNode <> nil then NumRps := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('NumeroRps'), tcStr); ANota := TACBrNFSeX(FAOwner).NotasFiscais.FindByRps(NumRps); como ficou: AuxNode := ANode.Childrens.FindAnyNs('IdentificacaoNfse'); if AuxNode <> nil then NumRps := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('NumeroRps'), tcStr); if( NumRps = '' )then begin AuxNode := ANode.Childrens.FindAnyNs('IdentificacaoRps'); if AuxNode <> nil then NumRps := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('NumeroRps'), tcStr); end; ANota := TACBrNFSeX(FAOwner).NotasFiscais.FindByRps(NumRps); unit: GeisWeb.LerXml.pas function TNFSeR_GeisWeb.LerXmlNfse como estava: LerIdentificacaoNfse(ANode); DataEmissao := ObterConteudo(ANode.Childrens.FindAnyNs('DataEmissao'), tcDatVcto); como ficou: LerIdentificacaoNfse(ANode); LerIdentificacaoRps(ANode); DataEmissao := ObterConteudo(ANode.Childrens.FindAnyNs('DataEmissao'), tcDatVcto); procedure TNFSeR_GeisWeb.LerIdentificacaoNfse como estava: Numero := ObterConteudo(AuxNode.Childrens.FindAnyNs('Numero'), tcStr); CodigoVerificacao := ObterConteudo(AuxNode.Childrens.FindAnyNs('CodigoVerificacao'), tcStr); como ficou: Numero := ObterConteudo(AuxNode.Childrens.FindAnyNs('Numero'), tcStr); if( Numero = '' )then Numero := ObterConteudo(AuxNode.Childrens.FindAnyNs('NumeroNfse'), tcStr); CodigoVerificacao := ObterConteudo(AuxNode.Childrens.FindAnyNs('CodigoVerificacao'), tcStr); XML recebido na consulta: <ConsultaLoteRpsResposta> <Rps> <IdentificacaoRps> <NumeroRps>12</NumeroRps> </IdentificacaoRps> <IdentificacaoNfse> <NumeroNfse>254</NumeroNfse> <CodigoVerificacao>NDMCFPVJKR</CodigoVerificacao> </IdentificacaoNfse> <DataEmissao>21/03/2023</DataEmissao> ... </Rps> </ConsultaLoteRpsResposta> NFSeX GeisWeb.rar
  5. Boa tarde. Alguns de meus clientes adicionam informações na observação do CT-e para que os motoristas lerem essas informações, e segundo alguns deles, o tamanho da fonte é "pequena demais" gostariam de uma fonte com tamanho maior.
  6. Meus clientes estão me pedindo se posso aumentar o tamanho da fonte do campo obs na DACT-e. Teria algum modo de realizar essa alteração/configuração sem alterar os fontes? Foi verificado no manual do DACTe não fala nada sobre o tamanho, só que deve ser legível Estou utilizando o componente TACBrCTeDACTeRL.
  7. Boa tarde. A partir de hoje: 30/11/2022 a emissão de NFS-e de Tijucas - SC será realizada pelo provedor: IPM https://www.tijucas.sc.gov.br/especiais/acesso-nfe Solicito a alteração nos arquivos necessários.
  8. Boa tarde Italo, Os pontos do manual que você indicou pertence a seção de Cobrança, que neste caso é tratado pela ACBr no componente ACBrBoleto, então em teoria o PagFor não deveria implementar esta tratativa.
  9. Poderia informar para que serve esses tratamentos diferentes para tsBloquetoEletronico e para qual banco? E acho que será o primeiro banco com implementação diferente para o Registro1.
  10. Boa tarde. Identificamos um problema na leitura do arquivo de retorno do banco Sicredi no PagFor. No código atual da ACBr na unit CNAB240.LerTxtRetorno.pas, ao ler o Registro1 (header do lote) é realizado um tratamento diferente quando o tipo de serviço é tsBloquetoEletronico, porém não encontramos no manual do banco Sicredi e nem no da FABRABAN tratativas de ajuste para essa situação. Parte do código atual para exemplificar: with PagFor.Lote.Last.Registro1.Servico do begin Operacao := StrToTpOperacao(mOk, LerCampo(Linha, 9, 1, tcStr)); TipoServico := StrToTpServico(mOk, LerCampo(Linha, 10, 2, tcStr)); //Quando é bloqueto Eletrônico o campo do CNPJ da empresa possui 15 caracteres //e para os demais serviços possui 14 if TipoServico = tsBloquetoEletronico then ajusteBloqueto := 1; FormaLancamento := StrToFmLancamento(mOk, LerCampo(Linha, 12, 2, tcStr)); end; Ao considerar o serviço do lote como tsBloquetoEletronico, a procedure TArquivoR_CNAB240.LerRegistro1(I: Integer) tentar ler alguns registro como: Informacao2, DataCredito que não existem no arquivo e nem manual do banco, além de ler algumas informações erradas, com uma posição a frente do correto: Segue parte do código para exemplificar: case PagFor.Lote.Last.Registro1.Servico.TipoServico of tsBloquetoEletronico: begin with PagFor.Lote.Last.Registro1 do begin Informacao2 := LerCampo(Linha, 144, 40, tcStr); ControleCobranca.NumRemRet := LerCampo(Linha, 184, 8, tcInt); ControleCobranca.DataGravacao := LerCampo(Linha, 192, 8, tcDat); DataCredito := LerCampo(Linha, 200, 8, tcDat); end; end; else begin with PagFor.Lote.Last.Registro1.Endereco do begin Logradouro := LerCampo(Linha, 143 + ajusteBloqueto, 30, tcStr); Numero := LerCampo(Linha, 173, 5, tcInt); Complemento := LerCampo(Linha, 178, 15, tcStr); Cidade := LerCampo(Linha, 193, 20, tcStr); CEP := LerCampo(Linha, 213, 8, tcInt); Estado := LerCampo(Linha, 221, 2, tcStr); end; end; end; Realizamos testes internos comentado as linhas que tratam o tipo de serviço como tsBloquetoEletronico, fazendo com que a execução caia no ELSE do CASE e o arquivo foi carregado com sucesso. Gostaríamos de uma orientação de como proceder, se o melhor a fazer é remover este código da procedure na unit geral CNAB240.LerTxtRetorno.pas, uma vez que não encontramos nos manuais ou deveríamos fazer a reimplementação procedure LerRegistro1 apenas na classe PagFor.Sicredi.LerTxtRetorno.pas especifica do banco Sicredi. Manual SICREDI: https://www.sicredi.com.br/media/produtos/filer_public/2022/07/21/manual_pagamentos_cnab_240_v33_1.pdf Manual FEBRABAN: https://cmsarquivos.febraban.org.br/Arquivos/documentos/PDF/Layout padrao CNAB240 V 10 10 - 30_08_2022_2.pdf
  11. Boa tarde, é necessário realizar uma alteração na geração do arquivo no segmento B para PIX, pois não está utilizando os campos corretos conforme o manual. Como o código está: GravarCampo(' ', 95, tcStr); GravarCampo(PixMensagem, 99, tcStr); Como deve ser: GravarCampo(PixTXID, 30, tcStr); GravarCampo(PixMensagem, 65, tcStr); GravarCampo(PixChave, 99, tcStr); manual utilizado para orientação: https://www.sicredi.com.br/media/produtos/filer_public/2022/07/21/manual_pagamentos_cnab_240_v33_1.pdf PagFor.Sicredi.GravarTxtRemessa.pas
  12. Boa tarde. Na geração do arquivo de remessa de pagamento CNAB através do componente PagFor, quando gerado utilizando o Banco Ailos (pagCECREDE), na posição 14 até 16 (versão do layout do lote) do header do lote o componente está preenchendo com ‘000’, porem o manual do banco informa que o dado esperado é ‘045’. PagFor.BancoCECRED.GravarTxtRemessa.pas
  13. Também foi necessário alterar a função: TGerador.wCampo para identificar a const tcDe5. pcnGerador.pas
  14. Bom dia Na unit pcnCIOTW_eFrete.pas está definindo 2 casas decimais na tag PesoCarga porem conforme manual da E-Frete, a quantidade de decimais é 5 casas decimais. O campo QuantidadeDaMercadoriaNoEmbarque também está definido como 2 casas decimais, porem os campos PesoCarga e QuantidadeDaMercadoriaNoEmbarque devem possuir a mesma quantidade de casas decimais, pois a E-Frete realiza validação da soma das notas pelo campo: QuantidadeDaMercadoriaNoEmbarque deve estar com o mesmo valor informado em PesoCarga. pcnCIOTW_eFrete.pas
  15. Boa tarde. Realizado alterações no ACBR PagFor para incluir os bancos Ailos(085) e Safra(422). Foi realizado correção na leitura do arquivo de retorno no segmento J e J52, pois identificava o J52 como um J. Incluído o Segmento J99, que parece ser exclusivo do banco Ailos. Link do manual do banco Ailos: https://www.viacredi.coop.br/wp-content/uploads/2019/07/Manual-Tecnico-de-Pagamento-por-Arquivo-2021.pdf Link do manual do banco Safra: https://www.safra.com.br/data/files/47/71/9D/F6/C451971028EDDE77E03EF9C2/Layout padrao CNAB240 V 10 07 - 03_11_20 _1_.pdf ACBrPagForClass.pas ACBrPagForConversao.pas ACBrPagForGravarTxt.pas ACBrPagForLerTxt.pas
  16. Bom dia. Desculpa a demora para responder. Vou verificar a sugestão do Daniel e ver algumas formar de contornar os problemas. obg.
  17. Boa dia Estou tento problemas em usar o ECFVirtualNaoFiscal para conseguir implementar uma rotina de recebimentos junto a NFC-e. Tomei a decisão de usar o ECFVirtualNaoFiscal pois todo o sistema é baseado nos eventos do ACBrECF e não usei o ECFVirtualNFCe pois necessitei de mais controles sobre a NFC-e que o ECFVirtualNFCe não de possibilita. Vamos ao problema. Ao abrir um comprovante não fiscal. Registrar um item no valor de 100,00 Subtotalizar com 10,00 de acréscimos Registar o pagamento no valor de 110,00 Fechar não fiscal. Ao fechar, o componente está considerando o Acréscimo como valor maior pago e coloca o valor para Troco. Segue imagem. Já se pode notar que não foi registrado o acréscimo antes do total. E o acréscimo foi considerado como troco pois o componente entendeu que o valor do pagamento foi maior que o total. segue imagem de um exemplo com o Emulador da Epson. Em analises do código notei que o ACBrECF1.SubtotalizaNaoFiscal não tem uma versão da mesma função no ECFVirtual para tratar somente a subtotalização do comprovante não fiscal, com isso o componente usa a função: TACBrECFVirtualClass.SubtotalizaCupom para tentar subtotalizar um cupom não fiscal, mas essa função trata de descontos e acréscimos de ICMS, ISSQN e Alíquotas, o que não ocorre no comprovante não fiscal. Segunda questão não muito importante no momento... Notei também que estaria faltando totalizadores internos no TACBrECFVirtualClass para totalizar o descontos, acréscimos e cancelamentos de comprovantes não fiscais para serem informados em uma possível Redução Z Virtual, como ocorre um a parte de totalizadores de ICMS. Exemplo de totalizadores não fiscais da RZ do emulador da Epson: Total Oper Não-Fiscais 0,00 ACRE NÃO-FISC 0,00 DESC NÃO-FISC 0,00 CANC NÃO-FISC 0,00
  18. Bom tarde. Devido a revisão: 20657 na unit: ACBrSerial\ACBrPosPrinter.pas que inseriu no método Configurar uma linha deletando o evento "FOnEnviarStringDevice", perdi o controle do evento, pois esse método de configurar é executado logo após ativar a PosPrinter. procedure TACBrPosPrinterClass.Configurar; begin fpPosPrinter.OnEnviarStringDevice := Nil; end; o PosPrinter está em modo texto, e não possuo uma impressora, estou executando testes do o ECFVirtual, com isso recebo erro de timeout, pois o PosPrinter tentar se comunicar com uma impressora que não existe. Ao ativar o ECF / Virtual, ele automaticamente ativa o PosPrinter, porem no arquivo: "acbrecf001.buf" possui um conteúdo que deve ter ficado de alguma outra mensagem de erro. Ao ativar o PosPrinter, ele executa o método Ativar, que dentro dele tem o método Configurar, ao executar o Configurar, deleta a instancia do evento OnEnviarStringDevice, ao ativar, é carregado o conteúdo no buffer, ele tenta imprimir esse buffer e executa o método: "EnviarStringDevice", e como o evento foi deletado não é possível controlar através do evento se é ou não para enviar a string para o device. No Demo do ACBr ECF não consegui que o erro ocorresse de primeira, porem, ao abrir o Demo, ativar o ECF Virtual NFCe, desativar, colocar o arquivo: "acbrecf001 - Copia.buf" no lugar do arquivo: "acbrecf001.buf" e clicar em ativar, vai ocorrer um erro de timeout. o evento do PosPrinter está da seguinte forma: procedure TForm1.ACBrPosPrinter1EnviarStringDevice(const ALogLine: string; var Tratado: Boolean); begin Tratado := True; end; com esse evento, o PosPrinter não era para tentar enviar a string para o device. segue o código fonte do exemplo que configura o componente PosPrinter para não se comunicar com a impressora física. ACBrECF - Delphi.rar
×
×
  • 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...