-
Total de ítens
20 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Centrodata Sistemas postou
-
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
-
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
-
NFSeX GeisWeb erro RetornoConsultaLoteRps
um tópico no fórum postou Centrodata Sistemas DFe - Documentos Fiscais Eletrônicos
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 -
Tamanho da fonte do campo obs na DACT-e
um tópico no fórum postou Centrodata Sistemas DFe - Documentos Fiscais Eletrônicos
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. -
PagFor - Sicredi Leitura arquivo retorno
Centrodata Sistemas replied to Centrodata Sistemas's tópico in Dúvidas gerais
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. -
PagFor - Sicredi Leitura arquivo retorno
Centrodata Sistemas replied to Centrodata Sistemas's tópico in Dúvidas gerais
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. -
PagFor - Sicredi Leitura arquivo retorno
um tópico no fórum postou Centrodata Sistemas Dúvidas gerais
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 -
PagFor alteração segmento B PIX ( Sicredi )
um tópico no fórum postou Centrodata Sistemas Dúvidas gerais
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 -
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
- 1 reply
-
- 1
-
CIOT e-frete quantidade decimais peso
um tópico no fórum postou Centrodata Sistemas DFe - Documentos Fiscais Eletrônicos
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 -
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
-
ECFVirtualNaoFiscal não consegue lidar com acréscimo
Centrodata Sistemas replied to Centrodata Sistemas's tópico in Dúvidas gerais
Bom dia. Desculpa a demora para responder. Vou verificar a sugestão do Daniel e ver algumas formar de contornar os problemas. obg. -
ECFVirtualNaoFiscal não consegue lidar com acréscimo
um tópico no fórum postou Centrodata Sistemas Dúvidas gerais
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 -
ACBrPosPrinter - Erro timeout mesmo sem impressora, modo texto
um tópico no fórum postou Centrodata Sistemas Paf-ECF
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