Ir para conteúdo
  • Cadastre-se

luciano_f

Membros
  • Total de ítens

    253
  • Registro em

  • Última visita

Tudo que luciano_f postou

  1. Não estou conseguindo capturar o nosso numero sempre me retorna 0 já tentei varias configurações e até agora nada o sistema é boleto sem Registro Da Caixa layout 240 Em anexo postei o arquivo de retorno. o problema está nessas linhas de codigo :: ACBrBanco.TamanhoMaximoNossoNum := CalcularTamMaximoNossoNumero(Carteira, '', ACBrBanco.ACBrBoleto.Cedente.Convenio); // Aqui sempre retorna zerado o correto dessa linha deveria ser assim CalcularTamMaximoNossoNumero(Carteira, Copy(Linha,47,10), ACBrBanco.ACBrBoleto.Cedente.Convenio); // ai retorna certo pois eu troquei vazio por Copy(Linha,47,10) // Essa Linha abaixo não entendi NossoNumero := Copy(Copy(Linha,47,10), // Length(Copy(Linha,47,10))-TamanhoMaximoNossoNum , TamanhoMaximoNossoNum); Se resumisse ela para apenas :: NossoNumero := Copy(Linha,47,10); ficaria muito melhor.. RETORNOCEF051116.ret
  2. Sidnei Sobre a balança Ramuza alguma novidade ?
  3. Obs : Além das duvidas acima mencionadas e para me complicar ainda mais, parece que alguns bancos tem o mesmo nome para algumas Instrução e Ocorrência, e cada banco tem Nomes e Códigos para Instruções diferente de outros Bancos ? se isso for verdade eu terei que criar um cadastro especifico para Instruções Bancarias onde cada banco tem sua instrução especifica ou posso colocar o mesmo código e nome de instrução genérico para todos os bancos ?
  4. Pessoal estou na duvida entre essas duas propriedades TACBrTitulo.Instrucao1 E TACBrTitulo.OcorrenciaOriginal.Tipo Para mim está meio que redundante a Instrucao1 com o Tipo da Ocorrência que tem uma classe com varias Ocorrências no ACBR como por exemplo toRemessaRegistrar, toRemessaAlterarVencimento, toRemessaAlterarValorTitulo Etc... Exemplo se eu quiser alterar a Data de Vencimento de um Boleto eu terei que usar as duas combinações é isso ? Ou seja tenho que colocar o Código da Instrucao1 que está no manual do banco que corresponde a Alteração da "Data de Vencimento" e ao mesmo tempo colocar a OcorrenciaOriginal.Tipo := toRemessaAlterarVencimento ? Se eu deixar sempre Vazio a Propriedade "TACBrTitulo.Instrucao1" e usar apenas OcorrenciaOriginal.Tipo alterando conforme a necessidade terei resultado ? Assim se eu quiser alterar a Data de Vencimento configuro o componente assim : Titulo.Instrucao1 := ''; Titulo.Instrucao2 := ''; Titulo.Instrucao3 := ''; OcorrenciaOriginal.Tipo := toRemessaAlterarVencimento; Se quiser Alterar o Valor do Titulo faço assim : Titulo.Instrucao1 := ''; Titulo.Instrucao2 := ''; Titulo.Instrucao3 := ''; OcorrenciaOriginal.Tipo := toRemessaAlterarValorTitulo; Outra coisa que percebi que existe 3 propriedade de instrução sendo Instrucao1, Instrucao2, Instrucao3 tem situações onde são usadas as 3 instruções ? Me desculpe a ignorância pois usava o ACBR apenas para boletos sem registros e agora estou tendo que alterar para "Com Registro" e fiquei perdido mesmo depois de ler um pouco o manual do Banco. Grato a todos.
  5. "Juliana Tamizou" desconsidere esse meu topico não precisa alterar o Trunk do ACBR Pois vai gerar quebra de compatibilidade com os usuarios que já homologaram seus Sistemas Outra coisa é o Digito com "-" do Codigo do Cedente que não aceita no Codigo de Barras dá erro na geração pois o codigo do Cedente não tem o Digito assim fiz o seguinte :: if (Remessa <> 'S') And (AcbrBoleto.Banco.TipoCobranca = cobBradescoSICOOB) Then Begin AcbrBoleto.Cedente.Conta := Func_NumeroContaAgencia(vCodCedente); AcbrBoleto.Cedente.ContaDigito := Func_DigitoContaAgencia(vCodCedente); End; Com disso não precisa alterar o ACBR e Muito grato pela atenção.
  6. "Juliana Tamizou" você curtiu então devo acredito que está correta minha alteração ? Você vai subir a unit que postei a alteração para o Trunk ? Grato.
  7. Sim porém essa seria a conta corrente do Siccob dentro do Bradesco o que na verdade está incorreto usar a propriedade conta corrente do componente na formação do codigo de barras. No caso o meu cliente tem um numero de conta corrente que se Eu informar ela no componente a homologação dá rejeição, assim liguei para o suporte do Siccob ele me disse que esse trecho é muito vezes mal interpretado pois se trata da conta corrento dentro do bradesco porém que o certo é Codigo do Cedente. Exemplo : o numero da Conta corrente que meu cliente vai usar que está no Cartão de Debito e no Cheque é 18532-X porém se colocar esse numero no componente na propriedade "Conta" ao gerar o Boleto fica invalido pois tem que ser o codigo do Cedente que não tem nada a ver com essa conta ele é 1665352 Grato.
  8. Manual em anexo está na Pagina 16 Campo Livre O Campo Livre é um conjunto de dados que será retornado da compensação para identificar o título. O campo livre do Bradesco é definido da seguinte forma: Posição Tamanho Descrição 1 a 4 4 Agência Correspondente - 3509 5 a 6 2 Carteira (Fixo 09 ) 7 a 17 11 Nosso Número Bradesco do título (sem o dígito verificador) 18 a 24 7 Código do Cedente (Conta Corrente da Cooperativa no Bradesco) 25 a 25 1 Zero Manual+Layout+Sicoob+Correspondente+BRADESCO+Impressão+Local.pdf
  9. Ao Administrador do Boleto existe um erro na montagem do Código de barras do BradescoSiccob. function TACBrBancoBradescoSICOOB.MontarCodigoBarras ( const ACBrTitulo: TACBrTitulo) : String; var NossoNumero, CodigoBarras, FatorVencimento, DigitoCodBarras:String; begin with ACBrTitulo.ACBrBoleto do begin FatorVencimento := CalcularFatorVencimento(ACBrTitulo.Vencimento); NossoNumero := MontarCampoNossoNumero(ACBrTitulo); CodigoBarras := IntToStr( Numero )+'9'+ PadLeft(OnlyNumber(FatorVencimento),4,'0') + IntToStrZero(Round(ACBrTitulo.ValorDocumento*100),10) + PadLeft(OnlyNumber(Cedente.Agencia),4,'0') + PadLeft(OnlyNumber(ACBrTitulo.Carteira),2,'0') + PadLeft(NossoNumero,11,'0') + // PadLeft(RightStr(Cedente.Conta,7),7,'0') + Essa linha eu tive que alterar pois de acordo com o manual tem que ser // 18 a 24 7 Posições que são o "Código do Cedente" e não a Conta. Linha Alterada para -> PadLeft(RightStr(Cedente.CodigoCedente,7),7,'0') + '0'; DigitoCodBarras := CalcularDigitoCodigoBarras(CodigoBarras); end; Result:= IntToStr(Numero) + '9'+ DigitoCodBarras + Copy(CodigoBarras,5,Length(CodigoBarras)); end; Em anexo a unit para os Administradores alterar o componente. ACBrBancoBradescoSICOOB.pas
  10. Pessoal estou tentando a homologação para o Siccob porém me deparei com 2 problemas 1º o NossoNumero tem que ter o prefixo fornecido pelo banco que no meu caso é 635 e pelo que estou vendo no ACBR ele usa o código do Convenio porém o convenio é no meu caso é 16 Erro retornado pelo banco foi : o Outro Problema é o "Código da Cobrança" no Arquivo remessa que é um numero próprio diferente do Código do Cedente. Grato a Todos.
  11. Italo fico muito grato pela explicação detalhada.
  12. Compreendi o problema e já implementei a modificação semelhante a proposta... Estou fazendo algumas modificações nas Units do ACBrNFe e ACBrDFe, para tentar resolver em definitivo o conflito de UTF8 e acentos... Assim que terminar os testes, eu envio... Ok Grato
  13. Encontrei onde está o problema e a solução foi adicionar 3 linhas de codigos Gostaria que o administradores dessem uma analisada para colocar no Repositório. function TNotasFiscais.LoadFromString(AXMLString: String; AGerarNFe: Boolean = True): Boolean; var AXML: AnsiString; P, N: integer; function PosNFe: integer; begin Result := pos('</NFe>', AXMLString); end; begin N := PosNFe; while N > 0 do begin P := pos('</nfeProc>', AXMLString); if P <= 0 Then // 3 Linhas adicionadas para correção if pos('</procNFe>', AXMLString) > 0 Then P := pos('</procNFe>', AXMLString); if P > 0 then begin AXML := copy(AXMLString, 1, P + 10); AXMLString := Trim(copy(AXMLString, P + 10, length(AXMLString))); end else begin AXML := copy(AXMLString, 1, N + 6); AXMLString := Trim(copy(AXMLString, N + 6, length(AXMLString))); end; with Self.Add do begin LerXML(AXML); if AGerarNFe then // Recalcula o XML GerarXML; end; N := PosNFe; end; Result := Self.Count > 0; end; sem a correção que fiz o Retorno da variável "AXML" não tem a tag "protNFe" Esse XML é baixado do portal da receita do Estado do Paraná.
  14. o que eu percebi está no cabeçario do XML que nesse XML muda para <?xml version="1.0"?> <NFeLog versao="1.00"> <procNFe> <NFe xmlns="http://www.portalfiscal.inf.br/nfe"> como resolver isso ?
  15. Estou usando a "Function ACBrNFe1.NotasFiscais.LoadFromFile" porém me retorna vazio o numero do protocolo procNFe.nProt = '' O extranho é que esse XML tem numero de protocolo O XML foi baixado direto do Site da Sefaz. o XML está em anexo 41160501090123000123550010001950901009612076.xml
  16. Olá boa Noite Pessoal. Para o provedor Simpliss não tem a URL para o Link eu peguei um danfe de uma NFSe onde tem um QRCode e o link gerado é esse qual o procedimento. http://astorga.simplissweb.com.br/contrib/app/nfse/qrcode.aspx?k=143555&cnpj=19543310000180&ser=E&inum=73&icod=1356650C10&e=8N9bI1l4PGkxFVREiVSGxmAoAdsfL93cq85cTGeKc3hxFJN20xk9qQ%3d%3d
  17. Olá algum solução para a captura ?
  18. Boa noite Italo. Sem essa alteração que fiz é impossível efetuar a captura dos retornos. Ou seja esse código abaixo dá erro de AcessViolation Showmessage(ACBrNFSe1.WebServices.ConsSitLoteRPS.RetornoNFSe.ListaNFSe.MsgRetorno.Items[0].Correcao); Com essa alteração que fiz consigo capturar os 3 retornos ACBrNFSe1.WebServices.ConsSitLoteRPS.RetornoNFSe.ListaNFSe.MsgRetorno.Items[0].Codigo; ACBrNFSe1.WebServices.ConsSitLoteRPS.RetornoNFSe.ListaNFSe.MsgRetorno.Items[0].Mensagem; ACBrNFSe1.WebServices.ConsSitLoteRPS.RetornoNFSe.ListaNFSe.MsgRetorno.Items[0].Correcao; Isso já foi bem discutido nesse outro topico http://www.projetoacbr.com.br/forum/topic/29936-provedor-salva-numero-da-nfse-mesmo-com-erro/?_fromLogin=1 E a unica solução foi essa que encontrei Como então eu poderia fazer para capturar ?
  19. Boa tarde. Tendo a certeza da não utilização dos demais, acho desnecessários mante-los no sistema. Estou também pensando em retirar do meu projeto a algum tempo. Então minha maior duvida é sobre o " EPEC - Evento Prévio de Emissão em Contingência "
  20. Pessoal no meu sistema tenho opções para emissão de alguma formas de NFE porém acredito que algumas não tem mais utilidade e estava pensando em retirar do sistema Normal FSIA - Formulário de Segurança - Impressor Autônomo - Papel Moeda (Off-Line) SCAN - Sistema de Contingência do Ambiente Nacional EPEC - Evento Prévio de Emissão em Contingência FSDA - Formulário de Segurança - Documento Auxiliar - Papel Moeda (Off-Line) SVCAN - SEFAZ Virtual do Ambiente Nacional SVCRS - SEFAZ Virtual do Rio Grande do Sul SVCSP - SEFAZ Virtual de São Paulo Eu estou pensando em deixar apenas as seguintes formas :: Normal SVCAN - SEFAZ Virtual do Ambiente Nacional SVCRS - SEFAZ Virtual do Rio Grande do Sul SVCSP - SEFAZ Virtual de São Paulo O que os colegas acham ?
  21. Dando continuidade ao topico :: http://www.projetoacbr.com.br/forum/topic/29936-provedor-salva-numero-da-nfse-mesmo-com-erro/?_fromLogin=1 Acho que descobri um BUG no componente para efetuar o que quero tive que alterar o componente Na unit "ACBrNFSeWebServices.pas"; Em varias Functions tem chamada para "ExtrairNotasRetorno;" como nessa :: function TNFSeConsultarLoteRPS.TratarResposta: Boolean; begin FPMsg := ''; FaMsg := ''; FPRetWS := ExtrairRetorno; Result := ExtrairNotasRetorno; FPRetWS := ExtrairGrupoMsgRet(FPConfiguracoesNFSe.Geral.ConfigGrupoMsgRet.ConsLote); end; Porém na Function :: function TNFSeConsultarSituacaoLoteRPS.TratarResposta: Boolean; Não existe a chamada para "ExtrairNotasRetorno;" assim resolvi alterar ela apenas colocando uma chamada ficando assim function TNFSeConsultarSituacaoLoteRPS.TratarResposta: Boolean; begin FPMsg := ''; FaMsg := ''; FRetSitLote.Free; FRetSitLote := TretSitLote.Create; FPRetWS := ExtrairRetorno; ExtrairNotasRetorno; <- Codigo Adicionado FRetSitLote.Leitor.Arquivo := FPRetWS; FRetSitLote.Provedor := FProvedor; RetSitLote.LerXml; FPRetWS := ExtrairGrupoMsgRet(FPConfiguracoesNFSe.Geral.ConfigGrupoMsgRet.ConsSit); FSituacao := RetSitLote.InfSit.Situacao; // FSituacao: 1 = Não Recebido // 2 = Não Processado // 3 = Processado com Erro // 4 = Processado com Sucesso if (FProvedor in [proEquiplano, proEL]) then Result := (FSituacao = '1') // Aguardando processamento else Result := (FSituacao = '2'); // Lote não Processado end; Depois disso esse código abaixo não dá mais erro : Showmessage(ACBrNFSe1.WebServices.ConsSitLoteRPS.RetornoNFSe.ListaNFSe.MsgRetorno.Items[0].Correcao); Agora se fiz algo errado qual seria o codigo correto para Eu ter acesso a Tag <Correcao> Grato.
  22. Boa Noite Italo. Acho que na verdade descobri um BUG no componente para efetuar o que quero tive que alterar o componente Na unit "ACBrNFSeWebServices.pas"; Em varias Functions tem chamada para "ExtrairNotasRetorno;" como nessa :: function TNFSeConsultarLoteRPS.TratarResposta: Boolean; begin FPMsg := ''; FaMsg := ''; FPRetWS := ExtrairRetorno; Result := ExtrairNotasRetorno; FPRetWS := ExtrairGrupoMsgRet(FPConfiguracoesNFSe.Geral.ConfigGrupoMsgRet.ConsLote); end; Porém na Function :: function TNFSeConsultarSituacaoLoteRPS.TratarResposta: Boolean; Não existe a chamada para "ExtrairNotasRetorno;" assim resolvi alterar ela apenas colocando uma chamada ficando assim function TNFSeConsultarSituacaoLoteRPS.TratarResposta: Boolean; begin FPMsg := ''; FaMsg := ''; FRetSitLote.Free; FRetSitLote := TretSitLote.Create; FPRetWS := ExtrairRetorno; ExtrairNotasRetorno; <- Codigo Adicionado FRetSitLote.Leitor.Arquivo := FPRetWS; FRetSitLote.Provedor := FProvedor; RetSitLote.LerXml; FPRetWS := ExtrairGrupoMsgRet(FPConfiguracoesNFSe.Geral.ConfigGrupoMsgRet.ConsSit); FSituacao := RetSitLote.InfSit.Situacao; // FSituacao: 1 = Não Recebido // 2 = Não Processado // 3 = Processado com Erro // 4 = Processado com Sucesso if (FProvedor in [proEquiplano, proEL]) then Result := (FSituacao = '1') // Aguardando processamento else Result := (FSituacao = '2'); // Lote não Processado end; Depois disso esse codigo abaixo não dá mais erro : Showmessage(ACBrNFSe1.WebServices.ConsSitLoteRPS.RetornoNFSe.ListaNFSe.MsgRetorno.Items[0].Correcao); Agora se fiz algo errado qual seria o codigo correto para Eu ter acesso a Tag <Correcao> Grato.
  23. Agora testei o seguinte :: Showmessage(ACBrNFSe1.WebServices.ConsSitLoteRPS.RetornoNFSe.ListaNFSe.MsgRetorno.Items[0].Correcao); Showmessage(ACBrNFSe1.WebServices.ConsLote.RetornoNFSe.ListaNFSe.MsgRetorno.Items[0].Correcao); Showmessage(ACBrNFSe1.WebServices.ConsNFSe.RetornoNFSe.ListaNFSe.MsgRetorno.Items[0].Correcao); Showmessage(ACBrNFSe1.WebServices.ConsNFSeRps.RetornoNFSe.ListaNFSe.MsgRetorno.Items[0].Correcao); Todos esse acima dão erro de AcessViolation ? O Colega poderia postar o código pois não sei como resolver isso, pois tudo que tentei sempre dá Erro.
  24. Boa tarde Italo. Sim eu abri todos os XML antes de enviar. Como Eu disse antes eu gerei um erro de propósito apenas para poder testar minha aplicação pois quero um jeito de ler com o ACBR esse XML que você mencionou "121003-sit.xml" para isso estou tentando com o código abaixo que dá erro de "AcessViolation" ACBrNFSe1.WebServices.EnviarLoteRPS.RetornoNFSe.ListaNFSe.MsgRetorno.Items[0].Correcao Qual seria o comando correto para ler as Tag desse XML ? as Tag Seriam essas ::: <Codigo> <Mensagem> <Correcao Eu percebi que existe o acesso a essas Tag pelo componente porém gera erro ACBrNFSe1.WebServices.EnviarLoteRPS.RetornoNFSe.ListaNFSe.MsgRetorno.Items[0].Codigo ACBrNFSe1.WebServices.EnviarLoteRPS.RetornoNFSe.ListaNFSe.MsgRetorno.Items[0].Mensagem ACBrNFSe1.WebServices.EnviarLoteRPS.RetornoNFSe.ListaNFSe.MsgRetorno.Items[0].Correcao Grato.
×
×
  • 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...