Ir para conteúdo
  • Cadastre-se

Sérgio Caldeira Silva

Membros
  • Total de ítens

    70
  • Registro em

  • Última visita

Tudo que Sérgio Caldeira Silva postou

  1. Bom dia! @valterpatrick consegui resolver com o código abaixo: {28/11/2025. Sérgio: Reforma tributária.} // Classificação conforme percentuais definidos no art. 450, § 1º, da LC 214/25 para o cálculo do crédito presumido // UF do Emitente difere de AC-Acre, ou AM-Amazonas, ou RO-Rondônia, ou RR Roraima OperacaoNaZfm := false; if (ArqXml.NFe.Emit.EnderEmit.UF = 'AC') or (ArqXml.NFe.Emit.EnderEmit.UF = 'AM') or (ArqXml.NFe.Emit.EnderEmit.UF = 'RO') or (ArqXml.NFe.Emit.EnderEmit.UF = 'RR') then OperacaoNaZfm := true; // UF do Emitente difere de AP-Amapá (só para municípios 1600303-Macapá e 1600600-Santana) if (ArqXml.NFe.Emit.EnderEmit.UF = 'AP') and ((ArqXml.NFe.Emit.EnderEmit.cMun = 1600303) or (ArqXml.NFe.Emit.EnderEmit.cMun = 1600600)) then OperacaoNaZfm := true; if OperacaoNaZfm then NfeProduto.Prod.tpCredPresIBSZFM := tcpNenhum;
  2. Boa tarde Senhores! As NFs emitidas a partir de hoje passaram a ser rejeitadas com este retorno. O estranho é que não houve nenhum alteração da semana passada para cá, a propósito, a tag tpCredPresIBSZFM nem é preenchida em nosso sistema. Resolvei alterar o xml manualmente, removendo a <tpCredPresIBSZFM>0</tpCredPresIBSZFM> que foi criada automaticamente, e ao enviar, a tag aparece novamente com a mesma mensagem de erro. Alguém tem alguma ideia do que pode estar acontecendo ou de alguma regra que não observei?
  3. Meu código só não tinha o NIF, porém, mesmo incluindo esta informação, não funcionou. Acredito que tenha alguma campo que não foi preenchido ou uma combinação deles, mas não encontrei referência / documentação disto. O xml gerado está em anexo. Veja meu código, talvez consiga identificar o que precisa ajustar: {16/02/2021. Sérgio: dados do cliente.} Tomador.IdentificacaoTomador.CpfCnpj := qyDestinatario.FieldByName('SysCliCnp').AsString; Tomador.AtualizaTomador := snNao; {16/02/2021. Sérgio: somente PJ possuem IE e IM.} if qyDestinatario.FieldByName('SysEntPesTip').AsString = 'J' then begin Tomador.IdentificacaoTomador.InscricaoEstadual := qyDestinatario.FieldByName('SysCliInsEst').AsString; Tomador.IdentificacaoTomador.InscricaoMunicipal := ''; end; Tomador.RazaoSocial := qyDestinatario.FieldByName('SysCliRazSoc').AsString; Tomador.Endereco.Endereco := qyDestinatario.FieldByName('SysCliEndLog').AsString; Tomador.Endereco.Numero := Se(qyDestinatario.FieldByName('SysCliEndNum').AsString <> '', qyDestinatario.FieldByName('SysCliEndNum').AsString, 'S/N'); Tomador.Endereco.Complemento := qyDestinatario.FieldByName('SysCliEndCom').AsString; Tomador.Endereco.Bairro := qyDestinatario.FieldByName('SysCliEndBai').AsString; Tomador.Endereco.CEP := qyDestinatario.FieldByName('SysCliEndCep').AsString; Tomador.Endereco.CodigoMunicipio := qyDestinatario.FieldByName('SysCidIbgCod').asString; Tomador.Endereco.UF := qyDestinatario.FieldByName('SysUFeSig').AsString; Tomador.Endereco.CodigoPais := qyDestinatario.FieldByName('SysPaiCod').AsInteger; Tomador.Endereco.xPais := qyDestinatario.FieldByName('SysPaiNom').AsString; {Retorna o nome da cidade de acordo com a parametrização anterior.} if not FileExists(ExtractFilePath(Application.ExeName) + 'ACBrIBGE.txt') then begin Tomador.Endereco.xMunicipio := qyDestinatario.FieldByName('SysCidNom').AsString; end else begin CodigoMunicipio := Tomador.Endereco.CodigoMunicipio; UF := Tomador.Endereco.UF; CaminhoArqMun := ExtractFilePath(Application.ExeName); if not NumeroValido(CodigoMunicipio) then CodigoMunicipio := '0'; Tomador.Endereco.xMunicipio := ObterNomeMunicipio(StrToInt(CodigoMunicipio), UF, CaminhoArqMun); end; {28/11/2025. Sérgio: Se o endereço for internacional, altera os dados conforme legislação vigente para extrangeiros.} {18/12/2025. Sérgio: O endereço estrangeiro é gravado na unit ACBrNFSeXGravarXml, porém, refere-se ao endereço do prestador em outro país; não é nosso caso.} if (qyDestinatario.FieldByName('SysUFeSig').AsString = 'EX') then begin Tomador.TomadorExterior := snSim; Tomador.IdentificacaoTomador.Nif := qyDestinatario.FieldByName('SysCliInsEst').AsString; Tomador.IdentificacaoTomador.CpfCnpj := ''; Tomador.IdentificacaoTomador.InscricaoMunicipal := ''; Tomador.Endereco.CEP := '99999999'; Tomador.Endereco.CodigoMunicipio := '9999999'; NaturezaOperacao := no7; end else begin Tomador.TomadorExterior := snNao; NaturezaOperacao := no1; end;3125121137125700017656000000001221962-rps.xml
  4. Prezados! Parametrizamos a NFS-e para emissão da NF para Tomador Estrangeiro e ao enviar, o servidor sefaz retorna o erro acima. Contudo, não encontrei a tag xEstProvReg para preenchimento. Poderiam me orientar melhor sobre o preenchimento da tag Província, quando o Tomador for estrangeiro?
  5. Boa noite! Não encontrei nenhum tópico sobre Tomador Estrangeiro e me deparei com a mensagem acima, contudo, preenchi os campos referentes a estrangeiros, conforme código abaixo. Poderiam me orientar quanto ao tratamento de estrangeiros na NFS-e Nacional? {16/02/2021. Sérgio: dados do cliente.} Tomador.IdentificacaoTomador.CpfCnpj := qyDestinatario.FieldByName('SysCliCnp').AsString; Tomador.AtualizaTomador := snNao; {16/02/2021. Sérgio: somente PJ possuem IE e IM.} if qyDestinatario.FieldByName('SysEntPesTip').AsString = 'J' then begin Tomador.IdentificacaoTomador.InscricaoEstadual := qyDestinatario.FieldByName('SysCliInsEst').AsString; Tomador.IdentificacaoTomador.InscricaoMunicipal := ''; end; Tomador.RazaoSocial := qyDestinatario.FieldByName('SysCliRazSoc').AsString; Tomador.Endereco.Endereco := qyDestinatario.FieldByName('SysCliEndLog').AsString; Tomador.Endereco.Numero := Se(qyDestinatario.FieldByName('SysCliEndNum').AsString <> '', qyDestinatario.FieldByName('SysCliEndNum').AsString, 'S/N'); Tomador.Endereco.Complemento := qyDestinatario.FieldByName('SysCliEndCom').AsString; Tomador.Endereco.Bairro := qyDestinatario.FieldByName('SysCliEndBai').AsString; Tomador.Endereco.CEP := qyDestinatario.FieldByName('SysCliEndCep').AsString; Tomador.Endereco.CodigoMunicipio := qyDestinatario.FieldByName('SysCidIbgCod').asString; Tomador.Endereco.UF := qyDestinatario.FieldByName('SysUFeSig').AsString; Tomador.Endereco.CodigoPais := qyDestinatario.FieldByName('SysPaiCod').AsInteger; Tomador.Endereco.xPais := qyDestinatario.FieldByName('SysPaiNom').AsString; {Retorna o nome da cidade de acordo com a parametrização anterior.} if not FileExists(ExtractFilePath(Application.ExeName) + 'ACBrIBGE.txt') then begin Tomador.Endereco.xMunicipio := qyDestinatario.FieldByName('SysCidNom').AsString; end else begin CodigoMunicipio := Tomador.Endereco.CodigoMunicipio; UF := Tomador.Endereco.UF; CaminhoArqMun := ExtractFilePath(Application.ExeName); if not NumeroValido(CodigoMunicipio) then CodigoMunicipio := '0'; Tomador.Endereco.xMunicipio := ObterNomeMunicipio(StrToInt(CodigoMunicipio), UF, CaminhoArqMun); end; {Se o endereço internacional, altera os dados conforme legislação vigente para extrangeiros.} if (qyDestinatario.FieldByName('SysUFeSig').AsString = 'EX') then begin Tomador.TomadorExterior := snSim; Tomador.Endereco.CodigoMunicipio := '9999999'; Tomador.Endereco.CEP := '99999999'; NaturezaOperacao := no7; end else begin Tomador.TomadorExterior := snNao; NaturezaOperacao := no1; end; A tag gerada <endNac> é preenchida, mesmo que eu informe que a Natureza da Operação é exportação de serviço (NaturezaOperacao := no7) e o Tomador está no Exterior (Tomador.TomadorExterior := snSim <toma> <CPF>...</CPF> <xNome>...</xNome> <end> <endNac> <cMun>9999999</cMun> <CEP>99999999</CEP> </endNac> <xLgr>...</xLgr> <nro>2</nro> <xCpl>...</xCpl> <xBairro>Portugal</xBairro> </end> <email>...</email> </toma>
  6. Boa tarde Senhores! Quanto ao retorno com cStat = 150, não vejo problema algum, é só um controle da SEFAZ, porém, ao imprimir a DANFE da NF-e, sai um texto em vermelho que causa um stress nos meus clientes e nos clientes deles. Isto vai ser tratado no componente, já que a NF-e está autorizada? Se não for tratada pelo ACBr é possível fazer alguma coisa para evitar este desgaste? Lembrando que a NF-e está autorizada, tudo está correto, não vejo sentido em fazer uma devolução e nem imprimir um texto em vermelho que dá a entender que tem algum coisa errada - normalmente, pensam que é o sistema. Desde já, agradeço a atenção de sempre.
  7. Uma dúvida senhores, o ACBr Boletos fará este ajuste automaticamente, ou precisamos fazer alguma intervenção?
  8. Boa tarde Senhores! Gostaria de maiores detalhes sobre o componente chamado ACBrSMS: 1. É preciso contratar o serviço de alguma operadora? 2. É preciso algum equipamento específico, visto que o componente possui uma propriedade de nome "modelo"? 3. Algum membro tem referência da documentação deste serviço, a fim de entender melhor como funciona?
  9. Boa tarde Senhores! Por acaso vi um componente chamado ACBrEAD, porém, não consegui informações sobre o propósito dele, nem no exemplo que foi feito. Alguém poderia me orientar sobre a aplicabilidade deste componente?
  10. Boa tarde Ítalo! Desculpe a demora, não tinha visto o e-mail. Mas conseguimos resolver, trocamos o certificado A3 para o A1.
  11. Boa tarde Ítalo! O cliente alega que não consegue emitir a NFS-e, por isto fiz a pergunta; mas vou acessar o computador deles para entender melhor, já que a versão do ACBr está atualizada.
  12. Senhores, seguindo o tópico "Inclusão de novas cidades ou alteração de provedor", vi que o arquivo ACBrNFSeXServicos.Ini está com o endereço correto. Há alguma outra alteração a ser feita?
  13. Bom dia Senhores! Não encontrei nenhum post sobre esta alteração, https://prefeitura.pbh.gov.br/fazenda/bhiss, sabem me dizer quando vai ser liberada, ou onde posso alterar? Na versão da semana passada não estava alterada a url. Segundo informações de meus clientes, Vila Velha - ES, também parou de funcionar; porém, não verifiquei o motivo ainda. Data: 01/02/2024 Assunto: ** ÚLTIMO AVISO ** As URLs de acesso ao Web Service da NFS-e foram alteradas e as atuais serão desativadas a partir de 19/02/2024 Prezado usuário do BHISS, A Subsecretaria da Receita Municipal - SUREM, da Secretaria Municipal de Fazenda - SMFA, da Prefeitura Municipal de Belo Horizonte - PBH, por meio das Diretorias de Fiscalização e Auditoria Tributária – DFAT, de Tecnologia da Informação e Apoio Técnico - DTAT e da Empresa de Informática e Informação do Município de Belo Horizonte S/A - Prodabel, informa que está reforçando a segurança em todos os sistemas de TI, incluindo o BHISS. Como parte desse esforço, uma nova camada de segurança foi incluída no sistema de emissão da Nota Fiscal de Serviços Eletrônica - NFS-e de Belo Horizonte para a emissão deste documento fiscal por meio de Web Service. Em razão disso, foram disponibilizados e já estão disponíveis para utilização novos endereços (URLs) para acesso aos Web Service
  14. Boa tarde André! BH tem algumas características que podem dificultar a configuração do componente, por exemplo, o lote sempre será 1. Se não conseguiu concluir ainda, encaminhe um e-mail para mim que tento ajudar: [email protected]. Boa sorte!
  15. Maravilha, grato por compartilhar. Vou estudar o exemplo, vai ajudar bastante.
  16. Não tenho ideia de como funcionaria, porque o sistema php vai ficar em um servidor cloud, então, teríamos que usar uma api... ou não?! Vou pesquisar sobre o ACBrMonitor. Grato pela sugestão.
  17. Bom dia Senhores! Grato pelo retorno, vou estudar esta solução também. Quanto a assinatura, já passei para a diretoria, assim que liberarem a gente assina. Grande abraço a todos.
  18. Boa tarde Senhores! Hoje trabalhamos com o ACBr em um sistema feito em Delphi e funciona perfeitamente... top. Porém, estamos com uma demanda de um sistema web que está sendo desenvolvido em ScriptCase e que precisará emitir NFS-e. Nossa dúvida é qual forma de integração é melhor e mais simples: desenvolver uma API Horse, usando os recursos que já possuimos, ou criar novos métodos em PHP que utilizem o ACBrLib? Há algum case de sucesso que seja possível contatar o TI para podermos trocar experiências? No mais, gratidão a toda equipe ACBr pelo trabalho que tem desenvolvido. Sucesso sempre.
  19. Correto, grato pela atenção.
  20. Bom dia Victor! Sim preenchi os campos corretamente, não funcionou, por isto debuguei o código para entender como funciona. Segue a referência do meu código, às vezes está faltando algo que não percebi. {Sérgio 30/04/2020: configura o título.} Titulo := ACBrBoleto.CriarTituloNaLista; with Titulo do begin {Dados do título.} LocalPagamento := copy(RemoverCaracteresInvalidos(RemoveEnterDaString(dsDenPqs.DataSet.FieldByName('DenBbaPagLoc').AsString), true), 01, 15); case dsDenPqs.DataSet.FieldByName('DenBcrCesCod').AsInteger of 00: OcorrenciaOriginal.Tipo := toRemessaRegistrar; 04: OcorrenciaOriginal.Tipo := toRemessaBaixar; 05: OcorrenciaOriginal.Tipo := toRemessaProtestar; 08: OcorrenciaOriginal.Tipo := toRemessaCancelarInstrucaoProtesto; 14: OcorrenciaOriginal.Tipo := toRemessaAlterarVencimento; 16: OcorrenciaOriginal.Tipo := toRemessaNegativacaoSerasa; 18: OcorrenciaOriginal.Tipo := toRemessaExcluirNegativacaoSerasa; end; NumeroDocumento := copy(RemoverCaracteresInvalidos(RemoveEnterDaString(dsDenPqs.DataSet.FieldByName('DenCreNum').AsString), true), 1, 10); NossoNumero := RemoverCaracteresInvalidos(RemoveEnterDaString(dsDenPqs.DataSet.FieldByName('DenBcrPagDoc').AsString), true); SeuNumero := copy(RemoverCaracteresInvalidos(RemoveEnterDaString('D' + dsDenPqs.DataSet.FieldByName('DenCreDocNum').AsString + 'S' + dsDenPqs.DataSet.FieldByName('DenCreDocSer').asString + 'P' + dsDenPqs.DataSet.FieldByName('DenCreDocPar').AsString), true), 1, 25); EspecieDoc := 'DM'; DataDocumento := dsDenPqs.DataSet.FieldByName('DenCreEmiDat').AsDateTime; Vencimento := dsDenPqs.DataSet.FieldByName('DenBcrPreDat').AsDateTime; DataProcessamento := Now; Aceite := atNao; Carteira := RemoverCaracteresInvalidos(RemoveEnterDaString(edDenBanCarNum.Text), true); ValorDocumento := dsDenPqs.DataSet.FieldByName('DenBcrPreVal').AsFloat; {28/12/2020. Sérgio: tratamento de desconto condicionado.} if dsDenPqs.DataSet.FieldByName('DenBcrBaiDes').AsFloat > 0 then begin TipoDesconto := tdValorFixoAteDataInformada; {Código do Desconto - valor fixo até a data informada.} DataDesconto := dsDenPqs.DataSet.FieldByName('DenBcrPreDat').AsDateTime; {Data do Desconto.} ValorDesconto := dsDenPqs.DataSet.FieldByName('DenBcrBaiDes').AsFloat; {Valor do Desconto.} end else begin TipoDesconto := tdNaoConcederDesconto; {Código do desconto - não há desconto.} DataDesconto := 0; {Data do Desconto.} ValorDesconto := 0; {Valor do Desconto.} end; DataAbatimento := 0; ValorAbatimento := 0; {28/12/2020. Sérgio: Tratamento de juros e multa.} case cbFinLanJurCod.ItemIndex of 0: begin CodigoMoraJuros := cjValorDia; ValorMoraJuros := GeRound(dsDenPqs.DataSet.FieldByName('DenBcrPreVal').AsFloat * DenPrmJurPer / 100 / 30, 2); CodigoMulta := cmPercentual; PercentualMulta := 2; // GeRound(DenPrmMulPer, 2); DataMulta := dsDenPqs.DataSet.FieldByName('DenBcrPreDat').AsDateTime + 1; end; 1: begin CodigoMoraJuros := cjTaxaMensal; ValorMoraJuros := GeRound(DenPrmJurPer, 2); CodigoMulta := cmPercentual; PercentualMulta := 2; // GeRound(DenPrmMulPer, 2); DataMulta := dsDenPqs.DataSet.FieldByName('DenBcrPreDat').AsDateTime + 1; end; 2: begin CodigoMoraJuros := cjIsento; ValorMoraJuros := 0; end; end; {Para instituição de educação, inclui o nome do curso.} Instrucao1 := copy(RemoverCaracteresInvalidos(RemoveEnterDaString(dsDenPqs.DataSet.FieldByName('DenBcrBbaMen').AsString), true), 01, 40); Instrucao2 := Se((StrToInt(LogAtiCod) = 7), copy(RemoverCaracteresInvalidos(RemoveEnterDaString(dsDenPqs.DataSet.FieldByName('IedCurNom').AsString), true), 01, 40), ''); {Dados do cliente.} Sacado.NomeSacado := copy(RemoverCaracteresInvalidos(RemoveEnterDaString(dsDenPqs.DataSet.FieldByName('SysEntRazSoc').AsString), true), 01, 30); Sacado.CNPJCPF := copy(RemoverCaracteresInvalidos(RemoveEnterDaString(dsDenPqs.DataSet.FieldByName('SysEntCnp').AsString), true), 01, 14); Sacado.Logradouro := copy(RemoverCaracteresInvalidos(RemoveEnterDaString(dsDenPqs.DataSet.FieldByName('SysEntEndLog').AsString), true), 01, 30); Sacado.Numero := copy(RemoverCaracteresInvalidos(RemoveEnterDaString(dsDenPqs.DataSet.FieldByName('SysEntEndNum').AsString), true), 01, 05); Sacado.Bairro := copy(RemoverCaracteresInvalidos(RemoveEnterDaString(dsDenPqs.DataSet.FieldByName('SysEntEndBai').AsString), true), 01, 12); Sacado.Cidade := copy(RemoverCaracteresInvalidos(RemoveEnterDaString(dsDenPqs.DataSet.FieldByName('SysCidNom').AsString), true), 01, 15); Sacado.UF := copy(RemoverCaracteresInvalidos(RemoveEnterDaString(dsDenPqs.DataSet.FieldByName('SysUfeSig').AsString), true), 01, 02); Sacado.CEP := copy(RemoverCaracteresInvalidos(RemoveEnterDaString(dsDenPqs.DataSet.FieldByName('SysEntEndCep').AsString), true), 01, 08); {Mensagens que devem sair no corpo do título.} ACBrBoleto.AdicionarMensagensPadroes(Titulo, Mensagem);
  21. Senhores, me esqueci de dizer que analisei o banco Sicredi, e também está com a mesma situação; portanto, reafirmo que não sei se o problema foi na iniciação do campo ou na sobreposição dos objetos.
  22. Boa tarde Senhores! Parametrizamos o desconto condicional no boleto Itaú e a impressão do boleto saiu com os dados perfeitamente corretos; contudo, ao gerar a remessa, os dados do desconto condicional (data e valor) não eram registrados na linha. Analisando os fontes da unit ACBrBancoItau, percebi que o atributo ValorDesconto estava zerado, apesar de termos preenchido o campo conforme o exemplo. Debugando os fontes, percebi que no obj ACBrTitulo, este campo estava preenchido corretamente. Verifiquei então que no método TACBrBancoItau.GerarRegistroTransacao400, havia uma sobreposição do Obj ACBrBoleto em relação ao obj ACBrTitulo, conforme abaixo: with ACBrTitulo do begin, .... with ACBrBoleto do .... Porém, o objeto que é preenchido é o ACBrTitulo, daí troquei a ordem da referência e o desconto condicional, assim como a data e os juros, passaram a ser gravados no arquivo remessa. Visto que não conheço aACBrBancoItau.pas fundo do código ACBr não sei informar se minha dedução está correta, ou se simplesmente o atributo ValorDesconto não foi preenchido no obj ACBrBoleto. Na verdade, fiz um outro teste e vi que é possível compilar os fontes sem a referência ao ACBrBoleto. Por este motivo, abri o tópico e anexo os ajustes que fiz, que pode ser identificados pelo meu nome e pela data de hoje - 15/02/2022.
  23. Boa tarde Srs.! Depois que migramos a emissão da NFS-e para o componente ACBrNFSX, o tempo de processamento (envio e retorno) aumentou consideravelmente. Não conseguimos identificar o motivo, seria possível orientar-nos quanto a uma parametrização ou alguma forma de otimizar este procedimento? considerando que o WS da prefeitura não deve ter mudado. Hoje usamos o código abaixo para gerar o xml, enviar o RPS e buscar o protocolo e xml da NFS-e: Emitir(NotasFiscais.NumeroLote, meAutomatico, false); Desde já, agradecemos a atenção de sempre.
×
×
  • 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.