Ir para conteúdo
  • Cadastre-se

Lfm_

Membros
  • Total de ítens

    66
  • Registro em

  • Última visita

Tudo que Lfm_ postou

  1. A sequência, sai de sequência, se na remessa tiver boletos variados, um com multa e outro não, o certo era iniciar o ISequencia com a sequencia gerada no registro anterior. ISequencia := (ACBrBoleto.ListadeBoletos.IndexOf(ACBrTitulo) * fpQtdRegsLote) + 1; //AQUI TERIA QUE INICIAR COM A SEQUENCIA ANTERIOR Terei que ver como resolver agora..
  2. Eu tbm não uso santander, é um cliente que passou a usar, e não conheço a lógica ou não-lógica do banco... A forma como alimento o componente funciona bem gostoso pra todos os bancos, só pra essa coisa fofa ai que não... Já busquei uma solução pra não ter que ficar depurando e perdendo tempo buscando... como vc disse o fórum é gratuito e aberto, ou seja, esperamos que alguém que conheça o banco ou as maluquices dele responda, se não responder, ai terei que correr atrás.. que pelo visto é o que vou ter que fazer
  3. Tá certo, pela educação não estão afim de resolver.
  4. Então, eu vi que ele faz isso aqui embaixo, mas não entendi pq faz, qual a regra disso: ACBrBancoSantander.pas Linhas 641 à 816 fpQtdRegsLote := 1; if sCodMovimento = '01' then begin if (PercentualMulta = 0) then fpQtdRegsLote := 3 else fpQtdRegsLote := 4; if (ACBrTitulo.ACBrBoleto.Cedente.PIX.TipoChavePIX <> tchNenhuma) then fpQtdRegsLote := fpQtdRegsLote + 1; end; ISequencia := (ACBrBoleto.ListadeBoletos.IndexOf(ACBrTitulo) * fpQtdRegsLote) + 1; ...
  5. Opa, removi aqui e a geração dos arquivos ficou idêntica. Fiz um antes e depois, pq de fato não compreendi o que poderia mudar removendo ele, vejo apenas para o debug uma melhoria. Mas esse sequencial do arquivo, em algum lugar preciso informar?
  6. Todo esse código é dividido em rotinas, juntei tudo em só pra mostrar aqui, antes dele eu faço isso: Titulo := VACBrBoleto.CriarTituloNaLista;
  7. Bom dia, segue: VACBrBoleto.Banco.TipoCobranca := cobSantander; with VACBrBoleto.Cedente do begin Nome := VQueryTitulo.FieldByName('NM_CEDENTE').AsString; CodigoCedente := VQueryTitulo.FieldByName('CD_CEDENTE').AsString; CodigoTransmissao := VQueryTitulo.FieldByName('CD_TRANSMISSAO_BOLETO').AsString; Agencia := VQueryTitulo.FieldByName('NR_BANCO_AGENCIA').AsString; AgenciaDigito := Geral.Decode((VACBrBoleto.Banco.TipoCobranca = cobBancoDoBrasil) and (VQueryTitulo.FieldByName('NR_DIGITO_AGENCIA').AsString = '0'), 'X', VQueryTitulo.FieldByName('NR_DIGITO_AGENCIA').AsString); DigitoVerificadorAgenciaConta := Geral.Decode(VACBrBoleto.Banco.Numero = 756, '0', ''); Conta := VQueryTitulo.FieldByName('NR_CONTA_BANCO').AsString; ContaDigito := VQueryTitulo.FieldByName('NR_DIGITO').AsString; Modalidade := VQueryTitulo.FieldByName('TP_VARIACAO_CARTEIRA').AsString; Convenio := Geral.Decode(VACBrBoleto.Banco.Numero = 756, ' ', VQueryTitulo.FieldByName('CD_CONVENIO').AsString); TipoCarteira := tctRegistrada; TipoInscricao := pJuridica; CNPJCPF := VQueryTitulo.FieldByName('NR_CNPJ_CEDENTE').AsString; Nome := VQueryTitulo.FieldByName('NM_CEDENTE').AsString; Logradouro := VQueryTitulo.FieldByName('DS_ENDERECO_CEDENTE').AsString; NumeroRes := VQueryTitulo.FieldByName('NR_ENDERECO_CEDENTE').AsString; Bairro := VQueryTitulo.FieldByName('DS_BAIRRO_CEDENTE').AsString; UF := VQueryTitulo.FieldByName('CD_UF_CEDENTE').AsString; Cidade := VQueryTitulo.FieldByName('DS_MUNICIPIO_CEDENTE').AsString; Complemento := VQueryTitulo.FieldByName('DS_COMPLEMENTO_CEDENTE').AsString; end; with Titulo.Sacado do begin Pessoa := Geral.Decode(VQueryTitulo.FieldByName('TP_SACADO').AsString = 'F', pFisica, pJuridica); NomeSacado := VQueryTitulo.FieldByName('NM_SACADO').AsString; CNPJCPF := VQueryTitulo.FieldByName('NR_DOCUMENTO_SACADO').AsString; Logradouro := VQueryTitulo.FieldByName('DS_ENDERECO_SACADO').AsString; Numero := VQueryTitulo.FieldByName('NR_ENDERECO_SACADO').AsString; Complemento := VQueryTitulo.FieldByName('DS_COMPLEMENTO_SACADO').AsString; Bairro := VQueryTitulo.FieldByName('DS_BAIRRO_SACADO').AsString; Cidade := VQueryTitulo.FieldByName('DS_MUNICIPIO_SACADO').AsString; UF := VQueryTitulo.FieldByName('CD_UF_SACADO').AsString; CEP := VQueryTitulo.FieldByName('CD_CEP_SACADO').AsString; end; with Titulo do begin SeuNumero := VQueryTitulo.FieldByName('CD_CONTA_RECEBER').AsString; Vencimento := VQueryTitulo.FieldByName('DT_VENCIMENTO').AsDateTime; DataDocumento := VQueryTitulo.FieldByName('DT_EMISSAO').AsDateTime; NumeroDocumento := VQueryTitulo.FieldByName('NR_DOCUMENTO').AsString; EspecieDoc := VQueryTitulo.FieldByName('DS_ESPECIE').AsString; EspecieMod := VQueryTitulo.FieldByName('TP_MOEDA').AsString; Aceite := Geral.Decode(VQueryTitulo.FieldByName('TP_ACEITE').AsString = 'S', atSim, atNao); DataProcessamento := VQueryTitulo.FieldByName('DT_PROCESSAMENTO').AsDateTime; Carteira := VQueryTitulo.FieldByName('TP_CARTEIRA').AsString; CarteiraEnvio := tceCedente; CaracTitulo := ObterCaracTitulo(Titulo.Carteira); NossoNumero := VQueryTitulo.FieldByName('NR_NOSSO_NUMERO').AsString; ValorDocumento := VQueryTitulo.FieldByName('VL_DOCUMENTO').AsFloat; ValorMoraJuros := VQueryTitulo.FieldByName('VL_JUROS').AsFloat; ValorDesconto := 0; PercentualMulta := VQueryTitulo.FieldByName('VL_MULTA_ATRASO').AsFloat; OcorrenciaOriginal.Tipo := TACBrTipoOcorrencia(VQueryTitulo.FieldByName('TP_OCORRENCIA_BOLETO').AsInteger); QtdePagamentoParcial := 1; TipoPagamento := tpNao_Aceita_Valor_Divergente; PercentualMinPagamento := 0; PercentualMaxPagamento := 0; ValorMinPagamento := 0; ValorMaxPagamento := 0; Instrucao1 := VQueryTitulo.FieldByName('CD_INSTRUCAO_1').AsString; Instrucao2 := VQueryTitulo.FieldByName('CD_INSTRUCAO_2').AsString; Mensagem.Add(VQueryTitulo.FieldByName('DS_MENSAGEM').AsString); if (VQueryTitulo.FieldByName('TP_CLIENTE_GERA_PROTESTO').AsString = 'S') and (VQueryTitulo.FieldByName('QT_DIAS_PROTESTO').AsInteger > 0) then begin DataProtesto := IncDay(Vencimento, VQueryTitulo.FieldByName('QT_DIAS_PROTESTO').AsInteger); TipoDiasProtesto := diCorridos; CodigoNegativacao := cnProtestarCorrido; Mensagem.Add('PROTESTAR EM ' + VQueryTitulo.FieldByName('QT_DIAS_PROTESTO').AsString + ' DIAS CORRIDOS APOS O VENCIMENTO'); end; if (ValorMoraJuros > 0) then begin //CodigoMora := '1'; if (VQueryTitulo.FieldByName('TP_VALOR_JUROS').AsString = 'P') then CodigoMoraJuros := Geral.Decode(VQueryTitulo.FieldByName('TP_JUROS').AsString = 'D', TACBrCodigoJuros.cjTaxaDiaria, TACBrCodigoJuros.cjTaxaMensal) else CodigoMoraJuros := Geral.Decode(VQueryTitulo.FieldByName('TP_JUROS').AsString = 'D', TACBrCodigoJuros.cjValorDia, TACBrCodigoJuros.cjValorMensal); if (VQueryTitulo.FieldByName('QT_TOLERANCIA_PAGAMENTO').AsInteger > 0) then DataMoraJuros := IncDay(Vencimento, VQueryTitulo.FieldByName('QT_TOLERANCIA_PAGAMENTO').AsInteger) else DataMoraJuros := IncDay(Vencimento, 1); if (VACBrBoleto.Banco.TipoCobranca = cobCaixaEconomica) then Mensagem.Add('COBRAR JUROS DE ' + FormatCurr('#,##0.00', ValorMoraJuros) + ' POR CENTO, POR ' + Geral.Decode(VQueryTitulo.FieldByName('TP_JUROS').AsString = 'D', 'DIA', 'MES') + ' DE ATRASO PARA PAGAMENTO ' + Geral.Decode(Vencimento = DataMoraJuros, 'APOS O VENCIMENTO', 'A PARTIR DE ' + FormatDateTime('dd/mm/yyyy', DataMoraJuros))) else Mensagem.Add('COBRAR JUROS DE ' + FormatCurr('#,##0.00 %', ValorMoraJuros) + ' POR ' + Geral.Decode(VQueryTitulo.FieldByName('TP_JUROS').AsString = 'D', 'DIA', 'MES') + ' DE ATRASO PARA PAGAMENTO ' + Geral.Decode(Vencimento = DataMoraJuros, 'APOS O VENCIMENTO', 'A PARTIR DE ' + FormatDateTime('dd/mm/yyyy', DataMoraJuros))) end; if (PercentualMulta > 0) then begin CodigoMulta := cmPercentual; if (VQueryTitulo.FieldByName('QT_TOLERANCIA_PAGAMENTO').AsInteger > 0) then DataMulta := IncDay(Vencimento, VQueryTitulo.FieldByName('QT_TOLERANCIA_PAGAMENTO').AsInteger) else DataMulta := IncDay(Vencimento, 1); if (VACBrBoleto.Banco.TipoCobranca = cobCaixaEconomica) then Mensagem.Add('COBRAR MULTA DE ' + FormatCurr('#,##0.00', PercentualMulta) + ' POR CENTO,' + Geral.Decode(Vencimento = DataMoraJuros, ' APOS O VENCIMENTO', ' A PARTIR DE ' + FormatDateTime('dd/mm/yyyy', DataMoraJuros))) else Mensagem.Add('COBRAR MULTA DE ' + FormatCurr('#,##0.00 %', PercentualMulta) + Geral.Decode(Vencimento = DataMoraJuros, ' APOS O VENCIMENTO', ' A PARTIR DE ' + FormatDateTime('dd/mm/yyyy', DataMoraJuros))); end; if (VACBrBoleto.Banco.TipoCobranca = cobCaixaEconomica) then LocalPagamento := 'EM TODA A REDE BANCÁRIA E SEUS CORRESPONDENTES ATÉ O VALOR LIMITE' else LocalPagamento := VACBrBoleto.Banco.LocalPagamento; end;
  8. Lfm_

    Sequência lote Santander

    Bom dia Pessoal, estou gerando remessa CNAB240 para o Santander e o banco me retorna o seguinte: Segue exemplo em anexo. Porém no componente eu envio Lote 01 apenas, este sequencial devo informar tbm? É o único banco que tenho problemas. Desde já agradeço a atenção, Luiz
  9. Inacreditável esses provedores hein?!
  10. Consegui esse link do provedor EL e ali consegui abrir um chamado de Ajuda no item Ouvidoria, agora estou aguardando resposta. https://gpi.el.com.br/ServerExec/acessoBase/?idPortal=233b25d5-f5de-43bf-a292-bc598d617cad
  11. Lfm_

    Cancelamento provedor EL

    Boa tarde, estou tentando cancelar uma nota fiscal pelo provedor EL e ocorre a mensagem abaixo: EL55 Arquivo Inválido - Verifique a extrutura do arquivo se esta nos padrões solicitados!. Porém, o preenchimento do componente segue os padrões do exemplo, será que pode ser algo no próprio provedor? Segue os arquivos gerados no processo de cancelamento. 475-nfse.xml000000000000475000000000000475000001-lista-nfse-fai.xml000000000000475000000000000475000001-lista-nfse-fai-soap.xml000000000000475000000000000475000001-con-nfse-fai-soap.xml000000000000475000000000000475000001-con-nfse-fai.xml475-can.xml475-can-soap.xml475-ped-can-soap.xml475-ped-can.xml
  12. Boa tarde @Italo Giurizzato Junior, pode deixar, muito obrigado Abraço, Luiz
  13. Oi @Italo Giurizzato Junior, em modo debug, adiciono um breakpoint até chegar na procedure TACBrNFSeProviderABRASFv2.GerarMsgDadosCancelaNFSe, adicionei um comentário: procedure TACBrNFSeProviderABRASFv2.GerarMsgDadosCancelaNFSe( Response: TNFSeCancelaNFSeResponse; Params: TNFSeParamsResponse); var Emitente: TEmitenteConfNFSe; InfoCanc: TInfCancelamento; begin Emitente := TACBrNFSeX(FAOwner).Configuracoes.Geral.Emitente; InfoCanc := Response.InfCancelamento; with Params do begin Response.ArquivoEnvio := '<' + Prefixo + 'CancelarNfseEnvio' + NameSpace + '>' + '<' + Prefixo2 + 'Pedido>' + '<' + Prefixo2 + 'InfPedidoCancelamento' + IdAttr + NameSpace2 + '>' + '<' + Prefixo2 + 'IdentificacaoNfse>' + '<' + Prefixo2 + 'Numero>' + InfoCanc.NumeroNFSe + '</' + Prefixo2 + 'Numero>' + Serie + '<' + Prefixo2 + 'CpfCnpj>' + GetCpfCnpj(Emitente.CNPJ, Prefixo2) + '</' + Prefixo2 + 'CpfCnpj>' + GetInscMunic(Emitente.InscMun, Prefixo2) + '<' + Prefixo2 + 'CodigoMunicipio>' + IntToStr(InfoCanc.CodMunicipio) + //NESTE PONTO, EM MODO DEBUG, ALTERO A VARIÁVEL EM TEMPO DE EXECUÇÃO // IntToStr(TACBrNFSeX(FAOwner).Configuracoes.Geral.CodigoMunicipio) + '</' + Prefixo2 + 'CodigoMunicipio>' + CodigoVerificacao + '</' + Prefixo2 + 'IdentificacaoNfse>' + '<' + Prefixo2 + 'CodigoCancelamento>' + InfoCanc.CodCancelamento + '</' + Prefixo2 + 'CodigoCancelamento>' + Motivo + '</' + Prefixo2 + 'InfPedidoCancelamento>' + '</' + Prefixo2 + 'Pedido>' + '</' + Prefixo + 'CancelarNfseEnvio>'; end; end;
  14. @Italo Giurizzato Junior Segue os arquivos de exemplo que encontrei no site da prefeitura de Erechim, onde consta a informação do CodigoMunicipio no xml de substituição. Exemplos_WebService.zip
  15. Bom dia Italo, tudo bem? Então, até novembro isso não ocorria, porém meus clientes de lá agora começaram a relatar o erro abaixo ao tentarem substituir uma nota fiscal: L8: Município inválido: Código do município do cancelamento não é o mesmo do Município gerador. Então ao informar o município manualmente no componente, a substituição é realizada com sucesso. Att, Luiz
  16. Boa tarde Pessoal, O município de Erechim\RS solicita a inclusão do código do município ao substituir uma nota fiscal. Verifiquei no código fonte da ACBrNFSeX e não consta estes dados, para incluí-lo como posso proceder? Solicito a vocês ou tenho a liberdade de fazer? No aguardo, Luiz
  17. Bom dia Pessoal, agradeço a atenção e as respostas. O prestador tem os dois casos\cnpjs, simples nacional e lucro presumido. Já estou tentando entender junto com eles o processo, de fato não vi o processo de autenticação no componente da Acbr via certificado digital, mas olharei mais atentamente ao exemplo. Att, Luiz
  18. Boa tarde pessoal, estou precisando emitir uma nota fiscal para uma pessoa jurídica de Porto Alegre, porém eles não tem usuário e senha de acesso, eles realizam o acesso por certificado digital, nestes casos como devo configurar o componente? Pois ao tentar emitir o retorno é este: <GerarNfseResposta xmlns="http://www.abrasf.org.br/nfse.xsd"> <ListaMensagemRetorno> <MensagemRetorno> <Codigo>E182</Codigo> <Mensagem>Erro na autenticação.</Mensagem> </MensagemRetorno> </ListaMensagemRetorno> </GerarNfseResposta> Agradeço a atenção desde já! Att, Luiz
  19. Boa tarde Ítalo, desculpe pela demora e obrigado pelo retorno. Deu certo!!! Abraço, Luiz
  20. Lfm_

    ISSRio - Retorno nota unitária

    Bom Dia, não sei se algo mudou na nota carioca, porém neste mês o componente ACBrNFSeX não consegue mais fazer a leitura do retorno da emissão de nota fiscal única (modoEnvio = meUnitario). Segue em anexo o XML de retorno gerado pelo componente. Abaixo segue linhas do código da unit ISSRio.Provider, método TACBrNFSeProviderISSRio.TratarRetornoEmitir, percebam que o componente busca a tag ListaNfse, porém no XML de retorno ela não existe quando é nota única: if Response.ModoEnvio <> meUnitario then begin inherited TratarRetornoEmitir(Response); Exit; end; Document := TACBrXmlDocument.Create; try try Document.LoadFromXml(Response.ArquivoRetorno); ProcessarMensagemErros(Document.Root, Response); ProcessarMensagemErros(Document.Root, Response, 'ListaMensagemRetornoLote'); ANode := Document.Root; Response.Data := ObterConteudoTag(ANode.Childrens.FindAnyNs('DataRecebimento'), tcDatHor); Response.Protocolo := ObterConteudoTag(ANode.Childrens.FindAnyNs('Protocolo'), tcStr); ANode := Document.Root.Childrens.FindAnyNs('ListaNfse'); if not Assigned(ANode) then begin AErro := Response.Erros.New; AErro.Codigo := Cod202; AErro.Descricao := ACBrStr(Desc202); Exit; end; Estou configurando algo errado ou de fato mudou algo no provedor ISSRio? Fico no aguardo e agradeço a atenção. Luiz 0-ger-nfse.xml 0-lista-nfse-ger.xml
  21. Boa noite Pessoal, estou tentando emitir uma nota fiscal para o provedor SigISS para a cidade de Londrina-PR. A nota não possuí retenção de ISS e a prestação do serviço é realizada dentro do município. Como não há retenção, não informo a alíquota do ISS, porém o componente gera a tag com o valor zerado. Ocorre o seguinte erro: E0013 - Início do processoNFSe_1.xml Correção: Valor da alí­quota do simples nacional inválida. Segue o xml gerado pelo componente. Alguém pode dar uma ajuda?
  22. Boa Tarde Ítalo, Sim, com certeza, é bem recorrente essa situação. Att, Luiz
  23. Verificando o código da unit Bauhaus.GravarJson, na rotina GerarDadosNota: .AddPair('MunicipioPrestacao', StrToIntDef(NFSe.Prestador.Endereco.CodigoMunicipio, 0)) Neste caso, não deveria obter o município do Tomador? Que seria o local onde o serviço está sendo prestado? No aguardo, Luiz
  24. Bom Dia Renato, muito obrigado pelo retorno. Essa chave de autorização seria o que? Devo solicitar ao provedor? Obrigado, Luiz
  25. Boa Tarde Pessoal, estou tentando implementar no meu sistema o provedor Bauhaus para a cidade de Itapema. O retorno do componente é este: <?xml version="1.0" encoding="UTF-8"?> {"Message":{"Kind":"Error","Code":"PAD-E001","Message":"Token Inv\u00E1lido.","Detail":""}}{"Message":{"Kind":"Error","Code":"PAD-E001","Message":"Token Inv\u00E1lido.","Detail":""}} Alguém poderia me ajudar?
×
×
  • 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.