Ir para conteúdo
  • Cadastre-se

Marcos Leonardo Martins

Membros
  • Total de ítens

    15
  • Registro em

  • Última visita

Tudo que Marcos Leonardo Martins postou

  1. Boa tarde, Hoje ao tentar ler um retorno da Caixa Federal, obtive o seguinte erro: Agencia\Conta do arquivo inválido Verifiquei o arquivo ACBrBancoCaixa.pas e pude ver que a variável rAgencia pega o número da agência do arquivo, com 5 dígitos. Porém, no ACBrBoleto.pas, o tamanho máximo de agência está limitado a 4. Isso ocasiona o erro, pois nessa caso, a agência é 04025 e o componente lê 4025. Tem como mudar ou é um bug mesmo ? Abaixo os códigos: constructor TACBrBancoClass.create(AOwner: TACBrBanco); begin inherited create; fpAOwner := AOwner; fpDigito := 0; fpNome := 'Não definido'; fpNumero := 0; fpTamanhoMaximoNossoNum := 10; fpTamanhoAgencia := 4; fpTamanhoConta := 10; fpCodigosMoraAceitos := '12'; fpCodigosGeracaoAceitos := '0123456789'; fpModulo := TACBrCalcDigito.Create; fpOrientacoesBanco := TStringList.Create; end; if (not LeCedenteRetorno) and ((rAgencia <> OnlyNumber(Cedente.Agencia)) or (rConta+rDigitoConta <> OnlyNumber(Cedente.CodigoCedente))) then raise Exception.Create(ACBrStr('Agencia\Conta do arquivo inválido'));
  2. Boa tarde ! Estou tendo um problema com a leitura de retornos do Banco do Brasil, usando o layout CNAB 400. Alguns registros do arquivo de retorno estão vindo com o comando 03, que de acordo com o manual do banco é COMANDO RECUSADO. Ao ler o retorno, estou usando a propriedade Titulo.OcorrenciaOriginal.Descricao para pegar a descrição do comando, porém, mesmo sendo 03, volta como 02 - Entrada Confirmada. Vasculhando o arquivo ACBRBancoBrasil.pas, verifiquei que o problema parece ser em duas funções: function TACBrBancoBrasil.CodOcorrenciaToTipo(const CodOcorrencia: Integer ) : TACBrTipoOcorrencia; begin Result := toTipoOcorrenciaNenhum; if (ACBrBanco.ACBrBoleto.LayoutRemessa = c240) then begin case CodOcorrencia of 03: Result := toRetornoRegistroRecusado; 04: Result := toRetornoTransferenciaCarteiraEntrada; 05: Result := toRetornoTransferenciaCarteiraBaixa; 15: Result := toRetornoBaixadoFrancoPagamento; 17: Result := toRetornoLiquidadoSemRegistro; 20: Result := toRetornoRecebimentoInstrucaoSustarProtesto; 24: Result := toRetornoRetiradoDeCartorio; 25: Result := toRetornoBaixaPorProtesto; 26: Result := toRetornoInstrucaoRejeitada; 27: Result := toRetornoAlteracaoUsoCedente; 28: Result := toRetornoDebitoTarifas; 29: Result := toRetornoOcorrenciasDoSacado; 30: Result := toRetornoAlteracaoDadosRejeitados; 50: Result := toRetornoChequePendenteCompensacao; end; end else begin case CodOcorrencia of 03: Result := toRetornoComandoRecusado; 05: Result := toRetornoLiquidadoSemRegistro; 07: Result := toRetornoLiquidadoPorConta; 08: Result := toRetornoLiquidadoSaldoRestante; 10: Result := toRetornoBaixaSolicitada; 15: Result := toRetornoLiquidadoEmCartorio; 16: Result := toRetornoConfirmacaoAlteracaoJurosMora; 20: Result := toRetornoDebitoEmConta; 21: Result := toRetornoNomeSacadoAlterado; 22: Result := toRetornoEnderecoSacadoAlterado; 24: Result := toRetornoProtestoSustado; 25: Result := toRetornoJurosDispensados; 28: Result := toRetornoManutencaoTituloVencido; 31: Result := toRetornoDescontoConcedido; 32: Result := toRetornoDescontoCancelado; 33: Result := toRetornoDescontoRetificado; 34: Result := toRetornoAlterarDataDesconto; 35: Result := toRetornoRecebimentoInstrucaoAlterarJuros; 36: Result := toRetornoRecebimentoInstrucaoDispensarJuros; 37: Result := toRetornoDispensarIndexador; 38: Result := toRetornoDispensarPrazoLimiteRecebimento; 39: Result := toRetornoAlterarPrazoLimiteRecebimento; 46: Result := toRetornoChequePendenteCompensacao; 72: Result := toRetornoTipoCobrancaAlterado; 96: Result := toRetornoDespesasProtesto; 97: Result := toRetornoProtestoSustado; 98: Result := toRetornoDebitoCustasAntecipadas; end; end; if (Result <> toTipoOcorrenciaNenhum) then Exit; case CodOcorrencia of 02: Result := toRetornoRegistroConfirmado; 06: Result := toRetornoLiquidado; 09: Result := toRetornoBaixaAutomatica; 11: Result := toRetornoTituloEmSer; 12: Result := toRetornoAbatimentoConcedido; 13: Result := toRetornoAbatimentoCancelado; 14: Result := toRetornoVencimentoAlterado; 19: Result := toRetornoRecebimentoInstrucaoProtestar; 23: Result := toRetornoEntradaEmCartorio; 44: Result := toRetornoChequeDevolvido; else Result := toRetornoOutrasOcorrencias; end; end; Nessa função, ao ler as posições 109 a 110 do arquivo de retorno, o ACBr atribui o tipo toRetornoComandoRecusado quando o conteúdo é 03. Até aí tudo bem...o problema vem na outra função: function TACBrBancoBrasil.TipoOCorrenciaToCod ( const TipoOcorrencia: TACBrTipoOcorrencia ) : String; begin Result := ''; if (ACBrBanco.ACBrBoleto.LayoutRemessa = c240) then begin case TipoOcorrencia of toRetornoTransferenciaCarteiraEntrada : Result := '04'; toRetornoTransferenciaCarteiraBaixa : Result := '05'; toRetornoBaixaAutomatica : Result := '09'; toRetornoBaixadoFrancoPagamento : Result := '15'; toRetornoLiquidadoSemRegistro : Result := '17'; toRetornoRecebimentoInstrucaoSustarProtesto : Result := '20'; toRetornoRetiradoDeCartorio : Result := '24'; toRetornoBaixaPorProtesto : Result := '25'; toRetornoInstrucaoRejeitada : Result := '26'; toRetornoAlteracaoUsoCedente : Result := '27'; toRetornoDebitoTarifas : Result := '28'; toRetornoOcorrenciasDoSacado : Result := '29'; toRetornoAlteracaoDadosRejeitados : Result := '30'; toRetornoChequePendenteCompensacao : Result := '50'; end; end else begin case TipoOcorrencia of toRetornoLiquidadoSemRegistro : Result := '05'; toRetornoLiquidadoPorConta : Result := '08'; toRetornoLiquidadoSaldoRestante : Result := '08'; toRetornoBaixaSolicitada : Result := '10'; toRetornoLiquidadoEmCartorio : Result := '15'; toRetornoConfirmacaoAlteracaoJurosMora : Result := '16'; toRetornoDebitoEmConta : Result := '20'; toRetornoNomeSacadoAlterado : Result := '21'; toRetornoEnderecoSacadoAlterado : Result := '22'; toRetornoProtestoSustado : Result := '24'; toRetornoJurosDispensados : Result := '25'; toRetornoManutencaoTituloVencido : Result := '28'; toRetornoDescontoConcedido : Result := '31'; toRetornoDescontoCancelado : Result := '32'; toRetornoDescontoRetificado : Result := '33'; toRetornoAlterarDataDesconto : Result := '34'; toRetornoRecebimentoInstrucaoAlterarJuros : Result := '35'; toRetornoRecebimentoInstrucaoDispensarJuros : Result := '36'; toRetornoDispensarIndexador : Result := '37'; toRetornoDispensarPrazoLimiteRecebimento : Result := '38'; toRetornoAlterarPrazoLimiteRecebimento : Result := '39'; toRetornoChequePendenteCompensacao : Result := '46'; toRetornoTipoCobrancaAlterado : Result := '72'; toRetornoDespesasProtesto : Result := '96'; toRetornoDespesasSustacaoProtesto : Result := '97'; toRetornoDebitoCustasAntecipadas : Result := '98'; end; end; if (Result <> '') then Exit; case TipoOcorrencia of toRetornoRegistroConfirmado : Result := '02'; toRetornoRegistroRecusado : Result := '03'; toRetornoLiquidado : Result := '06'; toRetornoTituloEmSer : Result := '11'; toRetornoAbatimentoConcedido : Result := '12'; toRetornoAbatimentoCancelado : Result := '13'; toRetornoVencimentoAlterado : Result := '14'; toRetornoRecebimentoInstrucaoProtestar : Result := '19'; toRetornoEntradaEmCartorio : Result := '23'; toRetornoChequeDevolvido : Result := '44'; else Result := '02'; end; end; Nessa função, o ACBr não está jogando '03' para quando for toRetornoComandoRecusado e sim quando for toRetornoRegistroRecusado. Porém, verificando o ACBRBancoBrasil.pas, toRetornoRegistroRecusado só existe no layout CNAB240. Gostaria que isso fosse verificado, por favor, para ver se é bug mesmo ou algum outro problema. Obrigado.
  3. Bom dia ! Estou passando por um problema estranho. Tenho um cliente que passou a reclamar que suas remessas estavam dando erro de COMANDO RECUSADO ao receber o retorno. Porém, nada foi alterado na aplicação que gera as remessas. Eu resolvi pegar os dados do cliente e gerei através do Demo do ACBr boleto uma remessa e validei no www.bb.com.br/leiautes, sob orientação do 0800 729 0500, que é a central BB. Os dados que usei e o erro que dá estão anexados. É bem estranho, visto que não foi alterado nada na aplicação. Obrigado
  4. Daniel, fiz os testes aqui e deu certo. Vou atualizar no cliente na parte da tarde. Agradeço a atenção e disponibilidade. Abraço
  5. Boa tarde, Daniel Realizei um Update dos fontes hoje pela manhã. O passo a passo no Demo foi bem simples: utilizei todas as opções que vem sugeridas AbreCupom: Teste|Teste VendeItem: (3 vezes) Código: 111222333 Descrição: "TESTE DE PRODUTO" Qtd: 1 PrecoUnitario: 1 Unidade: UN SubTotalizaCupom: 0 EfetuaPagamento: 3 FechaCupom: "Componentes ACBr|http://acbr.sourceforge.net"
  6. Boa tarde, Atualizei o sistema em um cliente e comecei a obter esse erro ao passar informações para o comando FechaCupom. Fazendo testes, se eu passo FechaCupom() sem nenhum parâmetro, tenho a impressão correta, sem erros. Mas se eu coloco um texto qualquer, por exemplo, FechaCupom('Ola Mundo'), tenho o erro 0204 - Campos em falta. Após testar minha aplicação, executei o mesmo teste com o ABCrECFDemo e obtive o mesmo erro. A impressora usada no cliente e nos testes é uma EPSON TM-81 Alguém passa ou passou por algo parecido ?
  7. No Yahoo vc acessa o email e vai em Minha Conta, lá tem essa opção.
  8. Olá Julio Então...creio que não seja isto, pois se eu volto a versão antiga do meu executável, antes do Update na pasta do AcBr, o erro não acontece. Eu não sei se tem alguma coisa a ver... Att Leonardo
  9. Realizei o Update na pasta do ACBR hoje e compilei o sistema para um cliente. Desde então não consigo emitir a nota e está dando esse erro:
  10. Encontrei o problema. O escritório fez o favor de passar um CFOP que não existe. O 6405. Resolvido
  11. Esse erro começou do nada, porém ao que me parece está tudo OK. Me dá essa rejeição: Falha na validação dos dados da nota 399 '6405' violates enumeration constraint of '1101 1102 1111 1113 1116 1117 1118 1120 1121 1122 1124 1125 1126 1151 1152 1153 1154 1201 1202 1203 1204 1205 1206 1207...'. (11:11:01) the element '{http://www.portalfiscal.inf.br/nfe}CFOP'with value '6405' failed to parse. Segue em anexo o XML: teste.xml teste.xml
  12. Boa tarde, Estou realizando impressão de etiquetas para os Correios usando o ACBrETQ. Quando envio texto e código de barras apenas, a impressora para certinho na divisão de etiquetas da bobina. Ou seja, está totalmente calibrada. Mas, se eu enviar junto à essas informações uma imagem (necessita da impressão da chancela), a impressora perde isso. No momento que imprime a imagem, ela para imediatamente depois, não deixando na divisão da bobina. Alguém já viu algo parecido ? With ACBrETQ1 Do Begin //Imprime Imagem Pré-Carregada ImprimirImagem(11,1100,50,'SEDEX'); //Informações de Nota, Pedido e Peso da Caixa ImprimirTexto(orNormal,3,1,1,1000,50,'NF: '+ iif(FrmNFCorreios.QryPedidosVEN_NF.AsInteger<>0,FrmNFCorreios.QryPedidosVEN_NF.AsString,'')); ImprimirTexto(orNormal,3,1,1,1000,320,'PEDIDO: '+ FrmNFCorreios.QryPedidosVEN_NUMERO.AsString); ImprimirTexto(orNormal,3,1,1,1000,665,'PESO(KG): '+FormatFloat('0.000',EdtPeso.Value)); ImprimirTexto(orNormal,3,1,1,930,380,CodigoRastreio[X-1]); //Codigo de Rastreio em código de barras ImprimirBarras(orNormal,'E','3','3',550,170,'A'+CodigoRastreio[X-1],180,becNAO); Imprimir(1,300); Desativar; End;
×
×
  • 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.