Ir para conteúdo
  • Cadastre-se

Rodrigo Cardilo

Membro Pro Verificado
  • Total de ítens

    268
  • Registro em

  • Última visita

Tudo que Rodrigo Cardilo postou

  1. Olá amigos moderadores, Utilizo a impressão do DACTE em Fast Report. Meus clientes pediram já a algum tempo algumas informações que eu sempre tenho que colocar manualmente após a atualização do componente e então estou postando aqui para se, caso acharem interessante, possam adicionar ao fonte. A primeira alteração se refere ao número da nota fiscal após a chave, o que facilita para o tomador do serviço localizar mais rapidamente a nota. procedure TdmACBrCTeFR.CarregaDadosNotasFiscais; var i: Integer; DoctoRem: string; NroNota: integer; // adicionado por Rodrigo Cardilo em 07/08/2014 begin { dados das Notas Fiscais } DoctoRem := FCTe.Rem.CNPJCPF; if Length(DoctoRem) > 11 then DoctoRem := FormatMaskText('##.###.###\/####-##;0;_', DoctoRem) else DoctoRem := FormatMaskText('###.###.###-##;0;_', DoctoRem); with cdsDadosNotasFiscais do begin Close; FieldDefs.Clear; FieldDefs.Add('tpDoc', ftString, 5); //Tipo Documento FieldDefs.Add('CNPJCPF', ftString, 18); //CNPJCPF FieldDefs.Add('Serie', ftString, 3); // Serie FieldDefs.Add('ChaveAcesso', ftString, 44); // Chave Acesso FieldDefs.Add('NotaFiscal', ftString, 9); // Numero Nota Fiscal FieldDefs.Add('TextoImpressao', ftString, 100); // Texto Impressao no Relatorio CreateDataSet; {$IFDEF PL_200} for i := 0 to CTe.infCTeNorm.infDoc.infNF.Count - 1 do begin with FCTe.infCTeNorm.infDoc.InfNF.Items[i] do {$ELSE} for i := 0 to CTe.Rem.InfNF.Count - 1 do begin with FCTe.Rem.InfNF.Items[i] do {$ENDIF} begin Append; FieldByName('tpDoc').AsString := 'NF'; FieldByName('CNPJCPF').AsString := FCTe.Rem.CNPJCPF; FieldByName('Serie').AsString := serie; FieldByName('ChaveAcesso').AsString := ''; FieldByName('NotaFiscal').AsString := nDoc; { Alterado por Jose Nilton Pace em 16/05/2013 } FieldByName('TextoImpressao').AsString := 'NF ' + DoctoRem + ' '+ serie+ ' / ' + FormatFloat('000000000', StrToInt(nDoc)); (* FieldByName('TextoImpressao').AsString := 'NF ' + DoctoRem + ' ' + FormatFloat('000', StrToInt(serie)) + ' / ' + FormatFloat('000000000', StrToInt(nDoc)); *) end; Post; end; {$IFDEF PL_200} for i := 0 to CTe.infCTeNorm.infDoc.InfNFE.Count - 1 do begin with FCTe.infCTeNorm.infDoc.InfNFE.Items[i] do {$ELSE} for i := 0 to CTe.Rem.InfNFE.Count - 1 do begin with FCTe.Rem.InfNFE.Items[i] do {$ENDIF} begin Append; FieldByName('tpDoc').AsString := 'NFe'; FieldByName('CNPJCPF').AsString := FCTe.Rem.CNPJCPF; FieldByName('Serie').AsString := copy(chave,23,3); FieldByName('ChaveAcesso').AsString := chave; FieldByName('NotaFiscal').AsString := copy(chave,26,9); NroNota := StrToInt(Copy(chave, 26, 9)); // Alterado por Rodrigo Cardilo em 07/08/2014 { Alterado por Jose Nilton Pace em 16/05/2013 } //FieldByName('TextoImpressao').AsString := 'NF-e '+chave ; // comentando { Alterado por Rodrigo Cardilo em 07/08/2014 } FieldByName('TextoImpressao').AsString := 'NF-e '+chave + ' - ' + IntToStr(NroNota); // continua o código A segunda alteração são as informações adicionais e/ou observações do CTE que não estavam sendo carregadas para a impressão. procedure TdmACBrCTeFR.CarregaInformacoesAdicionais; var vTemp: TStringList; IndexCampo: Integer; Campos: TSplitResult; BufferObs: string; TmpStr: string; wContingencia: string; wObs: string; wSubstituto: string; i:integer; begin with cdsInformacoesAdicionais do begin Close; FieldDefs.Clear; FieldDefs.Add('OBS', ftString, 2000); FieldDefs.Add('infAdFisco', ftString, 2000); FieldDefs.Add('ObsCont', ftString, 1800); CreateDataSet; Append; with FCTe.compl do begin wObs := xObs; {Adicionado por Rodrigo Cardilo em 07/08/2014} // Observações for i := 0 to ObsCont.Count - 1 do begin with ObsCont.Items[i] do TmpStr := TmpStr + XCampo + ': ' + XTexto + ';'; end; if Length(wObs) > 0 then wObs := wObs + ';'; wObs := wObs + TmpStr; TmpStr := ''; // Continua o Código Se acharem interessante adicionar ficaria muito bom pois acredito que outros possam ter essa necessidade. Em anexo estou postando o arquivo modificado ACBrCTeDACTEFRDM.rar
  2. Oi Juliomar, Não deu certo. Eu geralmente apago a pasta inteira e baixo tudo novamente. Ainda persiste o mesmo problema. Grato.
  3. Oi amigo, O SPED Fiscal é gerado a partir de informações do banco de dados e não tem absolutamente nada a ver como ACBRMonitor. O mesmo só tem a função de enviar a Nota Fiscal Eletrônica. Para maiores informações sobre o SPED Fiscal consulte o tópico específico: http://www.projetoacbr.com.br/forum/index.php?/forum/19-fiscal/ Atc,
  4. Olá amigos, Não estou conseguindo compilar/instalar o ACBRSerial após atualizar. Está dando o seguinte erro: Z:\Sistemas\Componentes\Delphi 2010\Acbr\Fontes\ACBrSerial\ACBrBALClass.pas(170) Error: E2003 Undeclared identifier: 'WriteLog' Esse mesmo erro está acontecendo na unit ACBrECFClass.pas. Se alguém souber como resolver fico grato desde já.
  5. Fala Galera, Resolvi a impressão de uma maneira simples. Fui no componente ACBrBoletoFCFortesFr.pas e lá selecionei o componente txtNomeSacadoCarne que é do tipo TRLMemo. Fui na propriedade Behavior e depois beSiteExpander e passei para False. Depois aumentei a altura (propriedade Height) para 40. Compilei e funcionou certinho. Se o pessoal responsável pela atualização puder mudar isso dá certinho. Abraço a todos
  6. Olá Isaque, Conforme eu citei anteriormente eu já consultei no manual http://www.bb.com.br/docs/pub/emp/empl/dwn/CbrVer04BB.pdf e na página 21 constam todos os retornos possíveis. Portanto o banco não tem problema algum e sim o componente ACBR. Eu mesmo fiz a alteração para me atender mas acho que deveria ser mudado no svn. Página 21 do manual fornecido pelo Banco: Códigos de movimento de retorno, informados pelo Banco do Brasil: 02 – Entrada confirmada, 03 – Entrada Rejeitada, 04 – Transferência de Carteira/Entrada, 05 – Transferência de Carteira/Baixa, 06 – Liquidação, 09 – Baixa, 11 – Títulos em Carteira (em ser), 12 – Confirmação Recebimento Instrução de Abatimento, 13 – Confirmação Recebimento Instrução de Cancelamento Abatimento, 14 – Confirmação Recebimento Instrução Alteração de Vencimento, 15 – Franco de Pagamento, 17 – Liquidação Após Baixa ou Liquidação Título Não Registrado, 19 – Confirmação Recebimento Instrução de Protesto, 20 – Confirmação Recebimento Instrução de Sustação/Cancelamento de Protesto, 23 – Remessa a Cartório (Aponte em Cartório), 24 – Retirada de Cartório e Manutenção em Carteira, 25 – Protestado e Baixado (Baixa por ter sido Protestado), 26 – Instrução Rejeitada, 27 – Confirmação do Pedido de Alteração de Outros Dados, 28 – Débito de Tarifas/Custas, 29 – Ocorrências do Sacado, 30 – Alteração de Dados Rejeitada, 44 – Título pago com cheque devolvido, 50 – Título pago com cheque pendente de compensação. Atc, Rodrigo Cardilo
  7. Olá amigos, Meu cliente recebeu um retorno hoje do Banco do Brasil CNAB 240 e um título veio com uma ocorrência que não consta na unit ACBrBancoBrasil.pas. O código da ocorrência é 17. Daí procurei no manual do Banco do Brasil (http://www.bb.com.br/docs/pub/emp/empl/dwn/CbrVer04BB.pdf) na página 21 e realmente tem alguns retornos que não possuem na lista conforme abaixo function TACBrBancoBrasil.CodOcorrenciaToTipo(const CodOcorrencia: Integer ) : TACBrTipoOcorrencia; begin case CodOcorrencia of 02: Result := toRetornoRegistroConfirmado; 03: Result := toRetornoComandoRecusado; 05: Result := toRetornoLiquidadoSemRegistro; 06: Result := toRetornoLiquidado; 07: Result := toRetornoLiquidadoPorConta; // 08: Result := ; // 08-Liquidação por Saldo 09: Result := toRetornoBaixado; 10: Result := toRetornoBaixaSolicitada; 11: Result := toRetornoTituloEmSer; 12: Result := toRetornoAbatimentoConcedido; 13: Result := toRetornoAbatimentoCancelado; 14: Result := toRetornoVencimentoAlterado; 15: Result := toRetornoLiquidadoEmCartorio; // 16: Result := ; // 16-Confirmação de alteração de juros de mora 19: Result := toRetornoRecebimentoInstrucaoProtestar; 20: Result := toRetornoDebitoEmConta; 21: Result := toRetornoRecebimentoInstrucaoAlterarNomeSacado; 22: Result := toRetornoRecebimentoInstrucaoAlterarEnderecoSacado; 23: Result := toRetornoEncaminhadoACartorio; 24: Result := toRetornoProtestoSustado; 25: Result := toRetornoJurosDispensados; // 26: Result := ; // 26-Alteração do número do título dado pelo Cedente (Seu número) – 10 e 15 posições 28: Result := toRetornoManutencaoTituloVencido; 31: Result := toRetornoDescontoConcedido; 32: Result := toRetornoDescontoCancelado; // 33: Result := ; // 33-Retificar desconto // 34: Result := ; // 34-Alterar data para desconto // 35: Result := ; // 35–Cobrar Multa // 36: Result := ; // 36–Dispensar Multa // 37: Result := ; // 37–Dispensar Indexador // 38: Result := ; // 38–Dispensar prazo limite para recebimento // 39: Result := ; // 39–Alterar prazo limite para recebimento 41: Result := toRetornoAcertoControleParticipante; // 42: Result := ; // 42–Alteração do número do documento do sacado (CNPJ/CPF) // 44: Result := ; // 44–Título pago com cheque devolvido 46: Result := toRetornoTituloPagoEmCheque; 72: Result := toRetornoTipoCobrancaAlterado; 96: Result := toRetornoDespesasProtesto; 97: Result := toRetornoDespesasSustacaoProtesto; 98: Result := toRetornoDebitoCustasAntecipadas; else Result := toRetornoOutrasOcorrencias; end; end; Se puderem incluir por favor fico grato. Atc,
  8. Olá Darlana, Passei pelo mesmo problema relatado por vocês e resolvi fazer a mesma alteração sugerida por você e Astrogildo na fonte do ACBR. Uma dúvida ficou pairando na minha cabeça. Como na alteração você confirma a nota caso o retorno seja 301 ou 302 como você trata isso na rotina ACBrNFe1.Enviar(0)? Pelo que entendi a nota será confirmada como enviada (o que realmente aconteceu). O que você sugere? Verifico qual o retorno após o envio? Seria mais ou menos o código abaixo? ACBrNFe1.Enviar(0); if ACBrNFe1.NotasFiscais.Items[0].Confirmada = True then If ACBrNFe1.WebServices.Retorno.cStat = 301 then ShowMessage('Nota Denegada') else If ACBrNFe1.WebServices.Retorno.cStat = 100 then ShowMessage('Nota Enviada com sucesso!') Grato desde já, Rodrigo Cardilo
  9. Olá Amigos, Tentei utilizar o DACTE.fx3 que está na pasta de exemplo e deu várias mensagens de erro. (conforme figura anexo) Porém já estou utilizando a versão 2.0 (conforme xml anexo) Só para constar eu atualizei hoje o ACBR via svn. Apaguei tudo, limpei o registro e instalei tudo de novo. Alguém pode me ajudar? Grato, Rodrigo Cardilo 31140605291022000171570010000001011000001018-cte.XML 31140605291022000171570010000001011000001018-cte.XML
  10. Oi Daniel, Foi somente isso mesmo.. Muito obrigado. De qualquer forma agradeço ao Régys e EMBarbosa pela atenção. Grato, Rodrigo Cardilo
  11. Olá amigos, Resolvi instalar novamente todos os componentes ACBR. Apaguei todos os arquivos e baixei. Quando tento instalar o componentes ACBRSerial me dá a seguinte mensagem de erro: [DCC Error] ACBrECF.pas(1277): E2003 Undeclared identifier: 'cACBrECFSemECFVirtualException' A linha que indica o erro tem a seguinte sintaxe: if (AValue = ecfECFVirtual) and (not Assigned( fsECFVirtual) ) then raise EACBrECFErro.Create( ACBrStr(cACBrECFSemECFVirtualException)); Já procurei e vi que a declaração está na unit ACBRConsts mas mesmo assim o erro persiste. Alguém sabe como me ajudar? Grato, Rodrigo Cardilo
  12. Olá amigos, Uma cliente me ligou hoje relatando que o banco está rejeitando os boletos do Bradesco pelo seguinte motivo. A agência está representada no código de barras/linha digitável incorretamente. Fui averiguar seguindo o manual do Bradesco (abaixo) e realmente temos um problema: A agência da minha cliente (80-9) aparece representada no boleto como 0008 (sem o dígito verificador é claro) onde teria que ser 0080. Num outro boleto onde a agencia é 3033-3 aparece 0303, (Página 32 do Manual anexo) Procurando no componente constatei que esse problema é devido à propriedade tamanhoagencia que no caso do Bradesco está 5. Fiz a alteração direto no componente na propriedade para 4 e aí sim gera corretamente. Não testei os outros métodos (remessa/retorno). Será que essa mudança vai alterar as outras funções do componente? Existe algum manual atualizado onde a agência possui 5 dígitos? Se alguém puder ajudar fico agradecido. Grato, Rodrigo Cardilo Bradesco+CNAB+400+-+03022010.pdf Bradesco+CNAB+400+-+03022010.pdf
  13. Olá Juliomar, Já apaguei todas as fontes e baixei novamente. Recompilei e nada. Curiosamente que quando eu utilizo o DACTE da versão 1.04 funciona perfeitamente. ATc, Rodrigo Cardilo
  14. Olá Amigos, Tentei utilizar o DACTE.fx3 que está na pasta de exemplo e deu várias mensagens de erro. (conforme figura anexo) Porém já estou utilizando a versão 2.0 (conforme xml anexo) Alguém pode me ajudar? Grato, 31140605291022000171570010000001011000001018-cte.XML
  15. Bom dia Juliomar, Eu vi que tinha um projeto porém somente em Lazarus e eu utilizo o Delphi, por isso nem tentei abrir. De qualquer forma muitíssimo obrigado pela ajuda. Atc,
  16. Olá amigos, Alguém sabe me dizer como faço para "desviar" todos os códigos lidos pela Serial para o Buffer de Teclado do Windows, como no ACBRMonitor? Utilizo o componente ACBRLCB. Grato
  17. Oi ítalo, Sim, eu utilizo no Danfe, Eu já até estou terminando de montar o DACTE no Fortes. A minha dúvida é como registrá-lo no componente ACBRCte. Grato,
  18. Bom dia Ítalo, Gostaria de colaborar com o componente criando um DACTE pelo Fortes Report, já que eu utilizo muito esse componente a anos. Criar o formulário não é o problema pois vou seguir a lógica da NFe. O que eu não sei é como vincular o mesmo ao componente ACBRCte para fazer testes e depois enviar a você. Tem como você me explicar esse primeiro passo? Grato
  19. Bem. A única solução que encontrei foi a ignorar o CNPJ também na leitura gravação do cedente, já que o mesmo é validado também. Segue abaixo a alteração. Não sei se é interessante alterar mas pra mim resolveu. If LeCedenteRetorno then begin Cedente.Nome := rCedente; Cedente.CNPJCPF := rCNPJCPF; Cedente.Agencia := rAgencia; Cedente.AgenciaDigito:= '0'; Cedente.Conta := rConta; Cedente.ContaDigito := rDigitoConta; case StrToIntDef(Copy(ARetorno[1],2,2),0) of 11: Cedente.TipoInscricao:= pFisica; 14: Cedente.TipoInscricao:= pJuridica; else Cedente.TipoInscricao := pJuridica; end; end else begin Cedente.Nome := rCedente; Cedente.Agencia := rAgencia; Cedente.AgenciaDigito:= '0'; Cedente.Conta := rConta; Cedente.ContaDigito := rDigitoConta; Cedente.TipoInscricao := pJuridica; end;
  20. Oi Juliana, Fiz mas a mensagem mudou. Agora é CNPJ inválido e não passa. Onde é feita essa validação? Tem como eu ignorar? Grato Rodrigo Cardilo
  21. Olá amigos, Estou com um pequeno problema no arquivo retorno. Tenho um cliente que tem uma cobrança no Bradesco porém a conta dele é Pessoa Física. O problema é que o arquivo retorno do banco vem como se a conta fosse Pessoa Jurídica e o CPF vem em formato de CNPJ porém o número não consegue ser validado pelo componente. Existe alguma forma de ignorar essa validação e ler o arquivo normalmente? A mensagem que aparece é CNPJ inválido. Só para terem uma idéia de como é o retorno, onde deveria vir o CPF "123.456.789-10" vem "12.345.678/0009-10" (evidentemente que desformatado). Grato pela ajuda desde já.
  22. Oi Fernando... tive que alterar o componente para criar essa situação. Vou deixar a fonte em anexo. Abraço ACBrBoletoFCFortesFr.rar
  23. Oi Isaque. Realmente o Fortes é fantástico. O único componente que ainda não tem é o ACBRCte. Como faz falta.
  24. Bom dia Amigos, Estou tendo problema ao ler o retorno anexo do Banco Bradesco. O que acontece é que a conta é de pessoa Física e o Bradesco me retorna como Tipo de Inscrição Pessoa Jurídica (02) e altera totalmente o CPF do cedente. Alguém tem alguma sugestão de como ignorar isso e ler o restante das informações? Grato. CB020700.TXT
×
×
  • 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.