Ir para conteúdo
  • Cadastre-se

Claudiomir

Membros
  • Total de ítens

    202
  • Registro em

  • Última visita

  • Days Won

    1

Tudo que Claudiomir postou

  1. Saudações Ainda bem que não é segunda feira. Se fosse... eu ia pra casa dormir. Sério mesmo. Rodei o demo do ACBr, configurei tudo o que descobri, mas a validade do certificado continua dando 31/12/1899. Se eu tento enviar qualquer teste ele me retorna com este erro. Sim, o certificado vale até agosto de 2018. O que eu estou esquecendo? Claudiomir Removi os espaços no numero do certificado. Erro Permanece.
  2. Bom dia Vamos recapitular. Tenho um cliente emitindo nfce 3.10, com seu certificado setado para PRODUÇÃO. Preciso gerar a versão nfce400. Entrei em contato com o escritório contábil e eles geraram um Token de HOMOLOGAÇÃO no certificado do cliente para mim. Mudei na minha base, minha máquina, nada ligado aos dados do cliente. Alterei os dados da minha base para o token fornecido pelo escritório e setei minha maquina para HOMOLOGAÇÃO. Coloquei o seguinte código para o botão Consultar Serviço. Para saber se tudo está ok com o serviço direto na Sefaz. Ele me retorna erro 252.--> Ambiente informado diverge do Ambiente de Recebimento. Estou setando ambiente de Homologação??? --> Sim Estou usando o Token correto??? --> Sim O Acbrnfe está setado para Homologação???--> Sim. A Uf está correta???--> Sim, para MT, Código 51. Chequei tudo com breakpoint??? - Várias vezes. A única coisa que consigo pensar é que a SEFAZ MT está, por algum motivo, ignorando o token de homologação criado pelo contador. Acabo de verificar e o Token de Homologação está criado e funcionando. Sem idéias de como prosseguir. Claudiomir
  3. Bom dia. Alguma novidade Sefaz-MT? Claudiomir
  4. Sim. Estou enviando a Uf=51. Mato Grosso. O Código que eu estou usando é basicamente o mesmo da nfe 3.0, com as alterações da ve400. Funciona normal para emitir nfce3.10 Só não sei o que acontece com a Sefaz-MT e a ve400; Contador da empresa informou que tudo parece certo na sefaz. E tudo parece certo no Xml. Sem saber o que fazer. Claudiomir
  5. O Pior é que estou testando em HOMOLOGAÇÃO. E está retornando vazio. Sefaz, porém, indica que tudo está ok. Testei o xml no estado do RS através de um validador da Procergs e indica que o xml está ok. Ficando sem saber o que está errado. Claudiomir
  6. Mudei o código para o seguinte: ACBrNFe1.Configuracoes.Geral.VersaoDF := ve400; if SameText(Copy(cfgcfgnfceambiente.AsString, 1, 1), 'P') then // if cfgcfgnfceambiente.AsString = 'Produção' then begin Ide.tpAmb := taProducao; ACBrNFe1.Configuracoes.WebServices.Ambiente := taProducao; end else begin Ide.tpAmb := taHomologacao; ACBrNFe1.Configuracoes.WebServices.Ambiente := taHomologacao; end; Reconhece como homologação. Breakpoints confirmam isso. Sem efeitos. Continuar retornando vazio. Erro Desconhecido! Claudiomir
  7. Mas não seria esse o comando para Homologação? ACBrNFe1.Configuracoes.WebServices.Ambiente := taHomologacao; Testei com Breakpoint e ele está sendo enviado taHomologacao. Inclusive, no componente, consta assim: ?? No aguardo de uma idéia... Claudiomir
  8. Saudações Tenho uma situação... diferente. Criei um token de homologação. E consegui o código. Os Dados que eu passo para o componente foram verificados e estão corretos. Informo os códigos: ACBrNFe1.Configuracoes.Geral.VersaoDF := ve400; if SameText(cfgcfgnfceambiente.AsString, 'Produção') then begin ACBrNFe1.Configuracoes.WebServices.Ambiente := taProducao; end else begin ACBrNFe1.Configuracoes.WebServices.Ambiente := taHomologacao; end; ACBrNFe1.Configuracoes.Certificados.NumeroSerie := cfgcfgnumserie.AsString; ACBrNFe1.Configuracoes.Certificados.Senha := cfgcfgsenha.AsString; ACBrNFe1.Configuracoes.Geral.Idcsc := cfgcfgidtoken.AsString; ACBrNFe1.Configuracoes.Geral.csc := cfgcfgtoken.AsString; ACBrNFe1.WebServices.StatusServico.Executar; Tudo correto até onde eu posso ver. No retorno da sefaz vem o erro. Imagem anexa. Por outro lado, se eu envio o cupom para validação ele me retorna isso: Imagem anexa Seguido por Validei o xml no site do Sefaz RS e passou normal. Anexo aqui o xml. 51180311696196000117650010000089011000089013-nfe.xml O que eu estou errando, afinal? Claudiomir
  9. Saudações Removi tudo de novo. Apaguei até a pasta acbr e instalei novamente. Agora deu certo. Claudiomir
  10. Saudações a Todos. Estou atualizando o Acbr via svn e na hora de instalar ele me deu a seguinte mensagem de erro no log. .Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell" Embarcadero Delphi for Win32 compiler version 32.0 Copyright (c) 1983,2016 Embarcadero Technologies, Inc. C:\compomentesXE1021\acbr\Fontes\ACBrComum\ACBr.inc(60) Error: E2029 'UNIT' expected but '<' found C:\compomentesXE1021\acbr\Fontes\ACBrComum\ACBrBase.pas(105) Error: E2003 Undeclared identifier: 'TComponent' C:\compomentesXE1021\acbr\Fontes\ACBrComum\ACBrBase.pas(105) Error: E2021 Class type required C:\compomentesXE1021\acbr\Fontes\ACBrComum\ACBrBase.pas(120) Error: E2003 Undeclared identifier: 'TThread' C:\compomentesXE1021\acbr\Fontes\ACBrComum\ACBrBase.pas(122) Error: E2003 Undeclared identifier: 'TNotifyEvent' C:\compomentesXE1021\acbr\Fontes\ACBrComum\ACBrBase.pas(125) Error: E2003 Undeclared identifier: 'TSimpleEvent' C:\compomentesXE1021\acbr\Fontes\ACBrComum\ACBrBase.pas(130) Error: E2137 Method 'Execute' not found in base class C:\compomentesXE1021\acbr\Fontes\ACBrComum\ACBrBase.pas(135) Error: E2005 'TNotifyEvent' is not a type identifier C:\compomentesXE1021\acbr\Fontes\ACBrComum\ACBrBase.pas(174) Error: E2003 Undeclared identifier: 'TObjectList' C:\compomentesXE1021\acbr\Fontes\ACBrComum\ACBrBase.pas(174) Error: E2021 Class type required C:\compomentesXE1021\acbr\Fontes\ACBrComum\ACBrBase.pas(194) Error: E2029 Declaration expected but 'IMPLEMENTATION' found C:\compomentesXE1021\acbr\Fontes\ACBrComum\ACBrBase.pas(194) Fatal: E2226 Compilation terminated; too many errors Compilation failure Erro ao compilar o pacote "ACBr_Comum.dpk". Abortando... Ocorreram erros na compilação dos pacotes. Apaguei todos os arquivos e baixei novamente. Tentei instalar de novo e deu o mesmo erro. O que faço agora? Claudiomir
  11. Saudações a Todos. Em Edição
  12. Saudações Eu não uso nada com a Caixa. Mas na minha rotina de geração do Boleto eu configuro da seguinte forma. 756: begin fprinci.ACBrBoleto1.Banco.TipoCobranca := cobBancoob; end; Carteira := self.ctactacarteira.AsString; If (fprinci.ACBrBoleto1.Banco.Numero = 756) Then Begin NossoNumero := formatfloat('0000000', nn); End else begin If (fprinci.ACBrBoleto1.Banco.Numero = 341) Or (fprinci.ACBrBoleto1.Banco.Numero = 748) Then Begin NossoNumero := formatfloat('00000000', nn); End Else Begin NossoNumero := formatfloat('000000000', nn); End; end; No caso específico do Sicoob, agências diferentes, na mesma região, estão operando com numeração diferentes para as contas. Refiro-me ao fpTamanhoConta dentro da Unit AcbrBoleto, conforme imagem abaixo; Mas, novamente, fique atento ao que a sua agência informa, por que já vi com vários tamanhos diferentes. Espere até você pegar o retorno da cobrança para ver o saco que é configurar aquilo. Quanto ao GetTipoCobrança, o meu está configurado assim: Lembre-se de que sempre que atualizar o acbr, as versões novas substituem as que voce tem rodando. Faça cópia de segurança antes de atualizar! Na esperança de ter sido de alguma ajuda, Claudiomir
  13. Saudações No caso do Banco do Brasil, eu nem vou me incomodar. Pior banco do mundo para se conseguir uma resposta de qualquer tipo. No caso do Sicoob, podem ser alguns fatores. Procure identificar qual o valor de tamanhoconta. Agências diferentes tem diferentes valores. Podem ser 8,10 ou 12. O Boleto ele gera normal, mas a remessa fica errada. Você vai ter que setar manualmente no código o cnab240. Um dos meus problemas era esse. Acabei com algo assim: 756: begin fprinci.ACBrBoleto1.Banco.TipoCobranca := cobBancoob; Carteira := '1'; fprinci.ACBrBoleto1.cedente.Modalidade := '1'; if ctactacnab.AsInteger = 400 then begin fprinci.ACBrBoleto1.LayoutRemessa := c400; end else begin fprinci.ACBrBoleto1.LayoutRemessa := c240; end; end; Verifica, qualquer coisa que eu possa ajudar, avise. Claudiomir
  14. Saudações Dall'ara Eu, realmente, mas realmente não entendo o conceito de remessa do tipo Y. Mas posso te dizer o que eu faço, e como faço. Se isso te ajudar, estou a disposição para retirar as dúvidas do que posso, por que sei que sem ajuda, é difícil. Vou te exemplificar aqui o que uso para o Sicoob, mas é ajustável para qualquer banco(EU ESPERO). Quando você uso o AcbrBoleto,LerRetorno, ele vai gerar os dados em um arquivo(stringlist, eu acredito) em tempo de memória. Você vai definir o que é o Lançamento( Baixa, aviso, tarifa) no momento em que processar esses dados. Qualquer banco, segundo a FEBRABAN, tem que seguir alguns padrões(Dificilmente o fazem) então temos algo a partir de onde começar. Como eu fiz. Dentro da tabela onde armazeno as Contas Correntes Bancárias, criei 3 campos. CódigoTransmissão,CodigoBaixa,CódigoTaxas. E a cada um deles eu atribuo valores. Códigos para Baixa 06,00,A8,H5,H6,H8,X1,X2,X3,X4,X5,X0,X6,X7,X8,X9,XA,XB Códigos para Taxas/Tarifas 03,04,08,A9,B1,B2,B3,E1,F5,28 Códigos para Rejeição 01,02,03,04,05,07,08,10,15,16,17,21,22,24,29,31,33,34,36,38,39,40,41,45,46,47,60,A1,A2,A4,A5,A6,B4,B5,B6,B7,B8,B9,C6,C7,D2,F7,F8,F9,G1,G5,G8,G9,H1,L3,L4,J8 De onde vem esses valores? FEBRABAN. Se todos os bancos os seguem? Nééééééé´. Mais ou menos. Vamos nos focar naqueles que os seguem. Como eu faço: Na hora de processar o LerRetorno eu uso o código abaixo (VOCÊ VAI PRECISAR ADAPTAR PARA OS SEUS DADOS E MANEIRAS DE PROGRAMAR) while.... if retorno.RecordCount > 0 then begin retorno.first; while not retorno.Eof do begin cre.Locate('crechave', retornoCrechave.AsInteger, []); if cre.Locate('crechave', retornoCrechave.AsInteger, []) then begin // vchvbaixa := retornovalorbaixado.AsFloat; // 06,00, A8, H5, H6, H8, X1, X2, X3, X4, X5, X0, X6, X7, X8, X9, XA e XB // encontrar a ocorrência de baixa if pos(retornoocorrenciaoriginal.AsString, ctaCodigobaixa.AsString) > 0 then begin bxc.Append; bxcbcxchave.AsInteger := fprinci.RetornaNovoGenerator('bxc', 'bxcchave'); bxcTipo.AsString := 'Baixa'; bxcvlrbx.AsFloat := retornovalorbaixado.AsFloat; bxcvlrjuro.AsFloat := retornojuros.AsFloat; bxcvlrmulta.AsFloat := retornomulta.AsFloat; bxc.Post; end; if pos(retornoocorrenciaoriginal.AsString, ctaCodigotaxas.AsString) > 0 then begin if retornovalortarifa.AsFloat > 0 then begin bxc.Append; bxcbcxchave.AsInteger := fprinci.RetornaNovoGenerator('bxc', 'bxcchave'); bxcTipo.AsString := 'Tarifa'; bxcvlrbx.AsFloat := retornovalorbaixado.AsFloat; bxcvlrjuro.AsFloat := retornojuros.AsFloat; bxcvlrmulta.AsFloat := retornomulta.AsFloat; bxc.Post; end; end; end; end; end; Por que o arquivo de retorno é um só e ele vem com toda a movimentação do dia, independente se é baixa um uma confirmação qualquer. Neste ponto você deve determinar o que é o movimento e o que você vai fazer com ele. Sempre a disposição se precisar, Claudiomir
  15. Saudações Conseguiu fazer a leitura do Retorno? Claudiomir
  16. Saudações Lukas1056 Acabo de fazer o retorno do Sicoob e pedi isso para eles. Estou aguardando uma resposta. Assim que eu a tiver, posto aqui. Sugiro ligar para os bancos que você tem acesso e confirmar com eles da mesma forma. Grato, Claudiomir
  17. Bom dia Estou na mesma dúvida. Você conseguiu alguma resposta fora daqui? Claudiomir
  18. Certo. Engraçado que nós programadores devemos seguir padrões para essas atividades enquanto os próprios bancos não seguem nem as próprias normas. No fim, quem está sempre errado somos nós que ralamos para fazer as coisas deles funcionarem. Grato, mais uma vez Agnaldo. Claudiomir
  19. Saudações Agnaldo Faltava setar o TipoInscrição para pJuridica. Estava em pOutras. Funciona! Minha dúvida é que a hora que eu tiver que atualizar novamente o Acbr ele vai perder estas mudanças todas, ou você repassa as alterações para eles atualizarem a Unit direto no pacote do acbr? No mais, agradeço por todo vosso esforço, paciência e ajuda a este pobre noob que ainda apanha das coisas óbvias. Meus Agradecimentos, mais uma vez. Claudiomir
  20. Bom dia Agnaldo Fiz as Alterações conforme você sugeriu. Imagem Abaixo: No entanto, o erro persiste: Embora ele esteja trazendo corretamente pelo tamanho 8 em TamanhoConta. Agnaldo, eu acho que tem algo desatualizado aqui, ou atualizado incorretamente. Essas alterações do código que vc me enviou, você fez manualmente ou já faziam parte da Unit? Por que se já faziam parte, tem alguma coisa que tá faltando aqui. Coloquei a instrução seguinte para teste: if (OnlyNumber(rConta + rDigitoConta) <> OnlyNumber('000'+Cedente.Conta + Cedente.ContaDigito)) then Observe que eu "forcei" .... '000'+.... no código para ver se dava erro. Não deu. Não aqui, pelo menos. O próximo erro era dizendo que o cnpj deve ter 14 dígitos(apenas numeros). Eu estou ainda tentando entender. Claudiomir.
  21. Cara... To ficando meio perdido aqui. Eu atualizei o svn ontem. Não deveria ter atualizado o AcbrBancoBancoob também?? De qualquer forma, deu... quase certo. E o Tamanho da Conta Quanto ao Erro. Ainda tentado conseguir fazer funcionar. Mas agora, só segunda. O chefe tá mandando todo mundo embora Grato Agnaldo. Bom final de semana. Claudiomir
  22. Saudações Agnaldo, Creio que é aqui que deva ser mudado. Na Rotina acbrbancoBancoob temos essa instrução: Tentei usar um OnlyNumber mas não funcionou. Ele continua pegando todos aqueles zeros direto do arquivo de retorno. Como eu me livro de tantos zeros? Se é que é assim que deve ser feito, é claro? No aguardo de idéias, Claudiomir
  23. Saudações Agnaldo. Segui vossa orientação. Passo a Passo. Salvei em imagens para melhor tentar te explicar. Quando eu entro na tela de busca de retorno, eu não sei de que banco virá o arquivo, pois meu cliente trabalha com vários bancos. Portanto, quando ele seleciona uma conta corrente, eu busco a informação da conta e do banco e direciono a pesquisa. Especificamente para o Sicoob, esse é o passo a passo. Passo 1: Arquivo retcobranca.pas Ou seja, nesse ponto, os dados da conta, banco, digito, enfim... são carregadas. E chequei, elas estão corretamente informadas conforme imagem acima. Passo 2: Logo abaixo disso eu tenho o seguinte código: fprinci.ACBrBoleto1.DirArqRetorno := extractfilepath(narq); fprinci.ACBrBoleto1.NomeArqRetorno := extractfilename(narq); fprinci.ACBrBoleto1.LayoutRemessa := c240; fprinci.ACBrBoleto1.LerRetorno; Passo 3: Dentro do LerRetorno, ele vai chechar o cnab retorno identificando o c240. Pergunto? Quando ele entra no Acbrbancobancoob ele lê novamente os dados da conta? Por que em algum lugar ele está mudando os dados que eu informei quando da definição da conta (Passo 1). Veja imagens abaixo os valores de a e b: Valor de a: Valor de b: E, infelizmente o erro persiste: Ainda sem Idéias, Claudiomir
×
×
  • 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...