Ir para conteúdo
  • Cadastre-se

Sérgio Caldeira Silva

Membros
  • Total de ítens

    59
  • Registro em

  • Última visita

Posts postados por Sérgio Caldeira Silva

  1. Bom dia Senhores!

    Não encontrei nenhum post sobre esta alteração, https://prefeitura.pbh.gov.br/fazenda/bhisssabem 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

     

  2. 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.

  3. Em 18/02/2022 at 09:41, Victor H. Gonzales - Panda disse:

    Bom dia,

    Não foi detectado não conformidade nas implementações atuais.

    você está informando os campos valor e data do desconto ?

      var Titulo : TACBrTitulo;
    begin
      Titulo := dm.ACBrBoleto.CriarTituloNaLista;
      Titulo.ValorDesconto := -- informar o valor;
      Titulo.DataDesconto := --informar o dia;
    end;

     

    image.png

    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);
     

     

  4. 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.

  5. 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.

  6. Em 30/08/2021 at 10:10, Italo Giurizzato Junior disse:

    Bom dia Sérgio,

    É igual a sua, a única diferença é que em vez de LT_all eu informo LT_TLSv1_2 para SSLType.

    Esse erro esta ocorrendo em qual método?

    Boa tarde Ítalo!

     

    Pode encerrar este tópico. Conversão para o novo componente está funcionando para BH - MG e para Vila Velha - ES.

    No caso de BH, o erro aleatório que ninguém conseguiu identificar, nem a equipe de TI da prefeitura, está relacionado SSLType. Ao informar LT_TLSv1_2, dá erro na prefeitura de BH, ela somente funciona com LT_All. Para todas as outras prefeituras, o SSLType = LT_TLSv1_2, é a melhor opção. 

    O novo componente ficou muito bom. Meus parabéns!

    Se me permite, aos leitores deste post, sugiro que usem o programa exemplo que o Ítalo fez para nortear o processo de emissão da NFS-e, visto que todos os erros que encontramos, referiam-se a campos não preenchidos (não eram usados no componente anterior) ou parâmetros - preencham todos os campos primeiro, depois "quebrem a cabeça" com a parametrização que pode variam de provedor para provedor.

    Gratidão!

    • Curtir 1
  7. 8 horas atrás, Sérgio Caldeira Silva disse:

    Bom dia Ítalo!

    No método TACBrNFSeProviderABRASFv2.PrepararEmitir(Response: TNFSeEmiteResponse); ao tentar gerar a NFS no formato meUnitario.

    Tentei outras formas de enviar, mas não consegui.

    Boa noite Ítalo!

    Alterei o formato de envio para meAutomatico e funcinou.

     

  8. 30 minutos atrás, Italo Giurizzato Junior disse:

    Bom dia Sérgio,

    É igual a sua, a única diferença é que em vez de LT_all eu informo LT_TLSv1_2 para SSLType.

    Esse erro esta ocorrendo em qual método?

    Bom dia Ítalo!

    No método TACBrNFSeProviderABRASFv2.PrepararEmitir(Response: TNFSeEmiteResponse); ao tentar gerar a NFS no formato meUnitario.

    Tentei outras formas de enviar, mas não consegui.

  9. 46 minutos atrás, Italo Giurizzato Junior disse:

    Sérgio,

    Você esta fazendo testes com o programa exemplo do componente?

    Se não esta, então faça.

    Acabei de configurar o programa exemplo para cidade de Vila Velha/ES apontando para a pasta de Schemas mostrada acima e veja o resultado do teste de emissão de um Rps:

    Modo de Envio : Enviar Lote
    Numero do Lote: 82
    Data de Envio : 30/12/1899
    Numero do Prot: 
    Sucesso       : True
     
    Erro(s):
    Código  : 1
    Mensagem: 
    A empresa sem autorização para emissão de nota fiscal eletronica.
    O campo Aliquota informado (4.0) não confere com o cadastrado para essa atividade (3.0).
    O CCM 20001383 não está ativo.
    Correção: Corrija os campos informados.
    ---------

     

    Grato Ítalo pela sugestão. Consegui encontrar, era a configuração abaixo:

    image.thumb.png.767cd7e5c43f0c314fe9e354f207681d.png

  10. 15 minutos atrás, Italo Giurizzato Junior disse:

    Bom dia Sérgio,

    Para essa cidade tem que usar os schemas da pasta:

    ...\Exemplos\ACBrDFe\ACBrNFSe\Schemas\SmarAPD\ABRASFv203

    Ítalo, foi isto que fiz, copiei os arquivos desta pasta e colei na pasta schemas. Não deu certo, copiei do site da abrasf, não deu certo. Voltei com os arquivos da pasta Abrasfv203.

  11. 23 horas atrás, Italo Giurizzato Junior disse:

    Bom dia Sérgio,

    Por favor releia o item 5 do Manual de Migração, nele consta o campo Senha como sendo um campo removido.

    No segundo paragrafo desse item diz que alguns campos excluídos se encontram na configuração do componente.

    Quanto a cidade de Vilha Velha/ES

    Você deve estar com os fontes desatualizados.

    No arquivo ACBrNFSeXServicos.ini temos:

    [3205200]
    ; Atualizado em 03/08/2021
    Nome=Vila Velha
    UF=ES
    Provedor=SmarAPD_203
    ProRecepcionar=https://tributacao.vilavelha.es.gov.br/tbw/services/Abrasf23
    HomRecepcionar=https://tributacao.vilavelha.es.gov.br/tbw/services/Abrasf23

    Delete todos as units do ACBr que tenha uma bolinha vermelha em seu ícone.

    Atualize todos os fontes de todas as pastas e reinstale a suíte ACBr com a opção de apagar arquivos antigos marcada.

    Se certifique de que não tenha copia de fontes do ACBr em alguma pasta que o Delphi tenha acesso, pois isso pode fazer com que o Delphi se utilize de uma unit antiga.

    Bom dia Ítalo!

    Meu ACBr estava atualizado, mas por via das dúvidas exclui a pasta e instalei tudo do zero; mas era um campo novo que passou desapercebido.

    Usei o exemplo como referência. Resolveu.

    Agora apareceu uma outra mensagem após a conversão, saberia orientar?

    nfse.xsd#/schema
    The "namespace.provided differs from the schema's
    'http://www.abrasf.org.br/nfse.xsd' targetNamespace)

     

  12.  

    Bom dia Ítalo!

    No início deste ano, você incluiu um novo servidor para atender a Vila Velha - ES, o proSmarAPDv23 .

    No novo componente da NFS este provedor não está mapeado, então, comentei para identificar o type. Contudo, ao executar o sistema, retorna a seguinte mensagem: Código do Município [3205200] não encontrado.

    Sabe me informar em qual unit eu posso incluir este tratamento?

     

  13. Boa noite Ítalo!

    Estou fazendo a conversão, mas não encontrei a propriedade abaixo, poderia me ajudar?

                    // Para o provedor ISSDigital deve-se informar também:
                    Prestador.Senha                                 := NfePrmPreSen;
     

    1 hora atrás, Italo Giurizzato Junior disse:

    Bom dia Sérgio,

    Não existe mais esse campo.

    A senha deve ser informada nas propriedades de configuração do componente.

    Configuracoes.Geral.Emitente.WSSenha := NfePrmPreSen;

    Releia o Manual de Migração.

    Bom dia Ítalo!

    Já li o manual, mas como se referia ao campo como WebSenha e não Prestador.Senha, achei que fossem campos diferentes.

×
×
  • 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...