Ir para conteúdo
  • Cadastre-se

Danilo MSI Soluções

Membros Pro
  • Total de ítens

    58
  • Registro em

  • Última visita

Sobre Danilo MSI Soluções

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

Danilo MSI Soluções's Achievements

Contributor

Contributor (5/14)

  • Collaborator Rare
  • Reacting Well Rare
  • First Post
  • Conversation Starter
  • Week One Done

Recent Badges

14

Reputação

2

Community Answers

  1. @delmir_henrique, bom dia! Não sei exatamente o porte da empresa, mas realmente não é optante pelo simples. É Lucro Real/Presumido pelo o que me consta.
  2. Olá pessoa, bom dia! Sobre o problema do regime especial de tributação, tive um parecido (não igual relataram) com um cliente de Indaiatuba/SP. Só consegui transmitir quando não passei nenhuma informação. Não verifiquei se o ACBr colocou algum valor padrão, mas o erro era o seguinte: Erro(s): --------- Código : E0178 Mensagem: Regime especial de tributação não permitido para o prestador do serviço com código de tributação na data de competência, informados na DPS, conforme parametrização do município de incidência do ISSQN. Eu cheguei a cogitar para a filial que atende esse cliente procurar mais informações junto à prefeitura se de fato seria correto a remoção ou algum acerto de cadastro da empresa por lá. Não houve resposta, então optamos por remover. Dessa forma, passou a transmitir normalmente.
  3. Olá @Etiane, boa tarde! Essa rejeição do DcTribMun parece ser já do WebService Nacional, então acredito que você conseguiu fazer a conexão de forma correta. Eu também não estava conseguindo, mas seguindo os seus passos passei a receber também rejeições do WebService como NBS não informado e grupo de obras não informado para o código de tributação nacional escolhido, então acho que deu bom aqui também. Vou ajustar todas as pendências e ver se consigo finalmente transmitir. Se conseguir, eu retorno aqui para avisar todos vocês. Muito obrigado por compartilhar as informações! Não teria conseguido sem elas.
  4. Olá pessoal, boa tarde! Estou com um cliente de Duartina/SP que está exatamente com os mesmos problemas. Esse erro de "Erro de Conexão: StartTag: invalid element name" está acontecendo com o endereço antigo da prefeitura de lá também. Eles usam também o provedor Fiorilli. EndPoint antigo/atual: http://186.224.0.35:5661/IssWeb-ejb/IssWebWS/IssWebWS EndPoint novo (produção): http://186.224.0.35:5661/IssWeb-ejb/IssWebWSNacional/IssWebWSNacionalPortType EndPoint novo (homologação): Ainda não enviaram, mas, se for seguir a mesma lógica de Laranjal, seria http://fi1.fiorilli.com.br:5661/IssWeb-ejb/IssWebWSNacional/IssWebWSNacionalPortType
  5. Olá @Italo Giurizzato Junior, boa tarde! Desculpe a demora! Joia, pode encerrar então. Muito obrigado a todos vocês pela presteza!
  6. Olá pessoal, bom dia! Prosseguindo com a validação da implementação do componente ACBrNFSeX no cliente em Indaiatuba/SP, encontramos mais uma situação, conforme retorno do WebService: Com base nessa orientação, mudei a função "GerarXml" da Unit "DeISS.GravarXml" da seguinte forma: function TNFSeW_DeISS203.GerarXml: Boolean; begin { Padrão: if NFSe.Servico.Valores.IssRetido = stRetencao then NrOcorrValorIss := 1 else NrOcorrValorIss := -1;} // Novo: if (NFSe.Servico.Valores.IssRetido = stRetencao) or (NFSe.Prestador.Endereco.CodigoMunicipio <> NFSe.Tomador.Endereco.CodigoMunicipio) then NrOcorrValorIss := 1 else NrOcorrValorIss := -1; Result := inherited GerarXml; end; O cliente validou a alteração e retornou que está tudo certo, portanto segue a Unit em anexo para a apreciação dos senhores. Fico à disposição para esclarecimentos. Muito obrigado, desde já, pela atenção! DeISS.GravarXml.pas
  7. Olá novamente, @Italo Giurizzato Junior! A sua solução deu certo e, ao meu parecer, faz mais sentido que a nossa uma vez que o parâmetro se torna desnecessário a partir do momento que o WebService passa a exigir essa tag em algumas situações (quando retido). Já a nossa solução tem como objetivo justamente "burlar" o parâmetro. Então já descartamos a nossa e vamos usar a sua como oficial daqui em diante, tudo bem? Se me permitir, só faça um ajuste ali onde o NrOcorrValorIss recebe os valores. Está recebendo 1 nos dois casos (com e sem retenção). O correto, ao meu ver, seria 1 para retenção (gerar) e -1 para não retenção (não gerar). Mas já ajustei o meu aqui: function TNFSeW_DeISS203.GerarXml: Boolean; begin if NFSe.Servico.Valores.IssRetido = stRetencao then NrOcorrValorIss := 1 else NrOcorrValorIss := -1; Result := inherited GerarXml; end; No mais, pode encerrar. Muito obrigado pela ajuda!
  8. Olá @Italo Giurizzato Junior, boa tarde! Farei os testes agora mesmo. Em paralelo, nós conseguimos alterar o parâmetro em tempo de execução através da nossa Unit, sendo necessário apenas a limpeza da TStringList "fSL" do ACBr (TACBrNFSeXConfigParams) que armazena os parâmetros. Isso porque ela somente os adiciona, então quando eu tento substituir o valor, o valor original acaba ficando deixando o parâmetro sempre ativo. Talvez seja intencional, mas segue abaixo para caso achem interessante essa saída também: // Nossa Unit. Entra aqui somente quando for caso de retenção: // Controle do parâmetro "NaoGerarTag:ValorIss" para o provedor "proDeISS": // Quando tem retenção, precisa da tag <ValorIss>. Portanto, precisa remover o parâmetro para passar a gerá-la (caso tenha): // OBS: O controle não precisa ser desfeito caso não tenha retenção pois na próxima nota acontece nova leitura do .ini, recriando o parâmetro. if ACBrNFSe.Configuracoes.Geral.Provedor = proDeISS then if ACBrNFSe.Provider.ConfigGeral.Params.ParamTemValor('NaoGerarTag', 'ValorIss') then begin vParametroAlterado := ACBrNFSe.Provider.ConfigGeral.Params.AsString; if Pos(vParametroAlterado, 'NaoGerarTag:ValorIss') > 0 then begin vParametroAlterado := ReplaceText(vParametroAlterado, 'NaoGerarTag:ValorIss', ''); ACBrNFSe.Provider.ConfigGeral.Params.AsString := vParametroAlterado; end; end; Aqui o ajuste que foi necessário no ACBr para funcionar: procedure TACBrNFSeXConfigParams.SetAsString(const AValue: String); var s: String; begin if FAsString = AValue then Exit; FAsString := Trim(AValue); s := StringReplace(FAsString, ':', '=', [rfReplaceAll]); fSL.clear(); // * Linha adicionada AddDelimitedTextToList(s, '|', fSL, #0); end; Vou desfazer os ajustes e implementar a sua solução e já lhe dou um retorno sobre o resultado. Muito obrigado pela atenção!
  9. Olá pessoal, boa tarde! Estamos implementando o novo componente ACBrNFSeX para um cliente na cidade de Indaiatuba/SP (provedor DeISS). Porém, estamos enfrentando um problema quando ao controle da tag <ValorIss>: Se a NFSe é emitida a um cliente que retém ISS, acontece o seguinte erro na transmissão: --------- Código : X999 Mensagem: Erro de Conexão: soap:Server - javax.xml.ws.WebServiceException: Verifique sua mensagem SOAP e a passagem desses parâmetros necessários. Não conseguiu obter a mensagem XML do cabeçalho ou dos dados. Verifique a passagem desses parâmetros pela mensagem SOAP. --------- Segundo suporte do WebService, foi nos dito que, nesses casos, é necessário passar o valor do ISS através da tag <ValorIss>. Por padrão, essa tag não é gerada para esse provedor pois, no arquivo "ACBrNFSeXServicos.ini", tem o seguinte parâmetro ativo: Params=NaoGerarTag:ValorIss Ao removermos manualmente esse parâmetro, a NFSe para cliente que retém ISS passa a ser transmitida com sucesso. Porém, se emitirmos daí para um cliente que não retém ISS, caímos no seguinte erro: -------- Código : E220 Mensagem: Valor do ISSQN informado indevidamente. Correção: O valor do ISSQN será calculado pela Prefeitura e não deve ser informado pelo contribuinte. --------- Em resumo, temos: - Se o cliente Retém ISS, tem que ter valor de ISS (parâmetro "Params=NaoGerarTag:ValorIss" desativado). Senão, erro X999 - Se o cliente não Retém ISS, não pode haver valor de ISS (parâmetro "Params=NaoGerarTag:ValorIss" ativado). Senão, erro E220 (e também o E221 caso seja informada alguma alíquota) @Juliomar Marchetti, através do Discord, nos orientou a procurarmos por alguma opção que controlasse a impressão ou não da referida TAG, mas nós não encontramos. Também nos orientou a não passar a TAG e assim já tínhamos feito, mas também sem sucesso. A TAG aparece com o valor padrão 0. Acredito que o preenchimento, inclusive, se dê nesse trecho (Unit "ACBrNFSeXLerXml_ABRASFv2", procedure "TNFSeR_ABRASFv2.LerServicos", linha 938): if Valores.IssRetido = stRetencao then begin Valores.ValorIssRetido := Valores.ValorIss; Valores.ValorIss := 0; end else Valores.ValorIssRetido := 0; Notem que sempre que for caso de retenção, o valor 0 é atribuído ao "ValorIss", o que impede a emissão para cliente que não retém ISS neste provedor (mesmo removendo o parâmetro do .ini). Então, até o presente momento, estamos sem saber como tratar a referida situação. Muito obrigado, em antecipado, pela atenção!
  10. Olá amigos, boa tarde! Como a solução não precisou ajustar nenhuma Unit do ACBr, creio que podemos encerrar este fórum e manter o controle internamente pelo Ticket de vocês. Muito obrigado pela ajuda!
  11. Opa, bom dia @Italo Giurizzato Junior! Entendi. No meu caso, por hora, controlei pelo valor de retenção. Se for 0, então eu não coloco nenhum responsável (rtNenhum). Caso haja, coloquei para trazer o valor do campo "responsavelretencao" da view que criamos para abastecer os dados da NFSe, dessa forma: { ISS Retido } if MeuDataSet.FieldByName('vrissretido').AsExtended > 0 then begin IssRetido := stRetencao; ResponsavelRetencao := ACBrNFSe.Provider.StrToResponsavelRetencao(OK, MeuDataSet.FieldByName('responsavel_retencao').AsString); end else begin IssRetido := stNormal; ResponsavelRetencao := rtNenhum; end; Sei que não é o ideal, mas estamos validando essa versão por enquanto em um único cliente que vai ser atendido pelo ajuste.
  12. Olá @Italo Giurizzato Junior, boa tarde! Sim, tem razão. Desconsidere então a função "TACBrNFSeXProvider.ResponsavelRetencaoToStr", por favor. Muito obrigado pela atenção!
  13. Olá, bom dia! Conforme relatado no grupo do Discord (https://discord.com/channels/798697718800318484/801796941813907456/1370377955242672279) as funções supracitadas não estão permitindo a escolha da opção "rtNenhum" pois, para tal, é necessário passar o valor '', porém, já existe outra opção que corresponde ao valor citado. Vide abaixo: function TACBrNFSeXProvider.ResponsavelRetencaoToStr( const t: TnfseResponsavelRetencao): string; begin Result := EnumeradoToStr(t, ['1', '', '2', ''], [rtTomador, rtPrestador, rtIntermediario, rtNenhum]); end; function TACBrNFSeXProvider.StrToResponsavelRetencao(out ok: boolean; const s: string): TnfseResponsavelRetencao; begin Result := StrToEnumerado(ok, s, ['1', '', '2', ''], [rtTomador, rtPrestador, rtIntermediario, rtNenhum]); end; Por hora, contornei aqui no meu fonte passando rtNenhum diretamente quando não for caso de Retenção de ISS. Muito obrigado!
×
×
  • 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.