Ir para conteúdo
  • Cadastre-se

dev botao

Problemas com Integração de Maricá-RJ


Paulo Vale
  • Este tópico foi criado há 685 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Caro Italo,

Conforme combinado, quando conseguisse avançar com a NFSe de Maricá eu iria retornar para agregar a integração ao ACBr. Então vamos lá.

Entendo perfeitamente que as alterações que fiz não podem continuar onde estão, pois se assim for, irá afetar outros provedores. Contudo, você deverá efetuar tais alterações onde for conveniente para o projeto. Acredito até que já seria viável abrir um "pas" para Maricá, visto que o schemas é totalmente diferente do provedor atual o DBSeller.

Na unit ACBrNFSeXProviderABRASFv2.pas alterei a linha 1363 "Response.ArquivoEnvio" pois é necessário uma TAG a mais do que é informado no padrão da Abrasf. Logo o arquivo está em anexo para poder efetuar as alterações em local apropriado. Também fui obrigado a retirar a tag de pagina, pois eles não permitem.

Quanto ao número da Nota fiscal temos que mandar na seguinte máscara <NumeroNfse>000002022000010</NumeroNfse>, o ano da data da emissão com 10 posições sendo que o ano (4 digitos) mais zeros a esquerda. Concatenado com 5 posições sendo que a matriz é o número da NFSe no caso da nota em questão era 10 logo com zeros a esquerda. Totalizando 15 dígitos. Se não for com essa máscara eles recusam.

O material deles é bem ruim e com inúmeras falhas. Eles reconheceram os erros e disseram que irão melhorar o material. Para mim o maior problema dele é não ter ambiente de homologação. Precisamos ficar emitindo e pedindo para cancelarem a nota.

Alterei o schemas para aceitar as linhas que foram acrescentadas.

Com essas alterações a NFSe já é enviada para o servidor de Maricá. Primeiro problema solucionado e aceita!!!

E para consultar a nota, eles possuem alguns serviços em lote e apenas um serviço para consultar por Número de NFSe, veja:
- "ConsultaServicosPrestados"

E o schemas precisa ser o que coloquei em anexo.

Bem, com essa alteração e utilizando o schemas em anexo, o Segundo problema é solucionado!!!!

E agora no final estou precisando de entender o que está acontecendo.

Passando por todos estes problemas já estou enviando e buscando a nota, entretanto, estou com um grave problema. Não consigo verificar se a nota foi ou não aceita. Vou lhe mostrar a situação das propriedades para ver se você consegue me ajudar. E irei incluir em anexo também o soap. Veja:
WebService.Emite.Sucesso - caso emita, retorna true
WebService.Emite.Protocolo - nada no retorno
Webservice.ConsultaNFSe.Sucesso - sem retorno
Webservice.ConsultaNFSe.Protocolo - sem retorno
NotasFiscais.Items[0].NFSe.CodigoVerificacao - sem retorno
NotasFiscais.Items[0].NFSe.Situacao  - sem retorno
WebService.ConsultaSituacao.protocolo  - sem retorno

Já fiz de tudo para entender o motivo mas infelizmente dessa vez me escapou o conhecimento necessário.

Aguardo retorno!
 

ACBrNFSeXProviderABRASFv2.pas nfse.xsd xmldsig-core-schema20020212.xsd 15-env-lot.xml 15-env-lot-soap.xml 15-rec.xml 15-rec-soap.xml

Paulo Vale
Diretor Técnico LVsoft
WWW.LVSOFT.COM.BR

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Paulo,

Já apliquei a alteração do Consultar na unit correta, mas para que eu possa enviar para o SVN eu preciso entender essas alterações no Schema.

Agora eu quero entender se o Schema (nfse.xsd) foi você que fez a alteração ou se foi o provedor que lhe forneceu esse novo XSD.

Não entendi a finalidade do tipo complexo abaixo uma vez que ele não é utilizado em nenhum lugar.

	<xsd:complexType name="tcIdentificacaoNfseX">
		<xsd:sequence>
			<xsd:element name="NumeroNfse" type="tsNumeroNfse" 
				minOccurs="1" maxOccurs="1" />
			<xsd:element name="CpfCnpj" type="tcCpfCnpj" 
				minOccurs="1" maxOccurs="1" />
		</xsd:sequence>
	</xsd:complexType>

Não entendi o motivo da troca do nome do elemento "ConsultarNfseRpsEnvio" para "ConsultarNfsePorRps".

E por fim a definição do elemento "ConsultarNfseServicoPrestadoEnvio" ficou extremamente confusa.

	<!-- Consulta de NFS-e – Serviços Prestados - ConsultarNfseServicoPrestado -->	
	<xsd:element name="ConsultarNfseServicoPrestadoEnvio" type="ConsultarNfseServicoPrestadoEnvioType"/>
	<xsd:complexType name="ConsultarNfseEnvioType">
		<xsd:sequence>
			<xsd:element type="PrestadorType" name="Prestador" xmlns:nfse="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd"/>
			<xsd:element name="NumeroNfse" type="tsNumeroNfse" minOccurs="1" maxOccurs="1" />
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="CpfCnpjType">
		<xsd:sequence>
			<xsd:element type="xsd:long" name="Cnpj"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ConsultarNfseServicoPrestadoEnvioType">
		<xsd:sequence>
			<xsd:element type="ConsultarNfseEnvioType" name="ConsultarNfseEnvio" xmlns:nfse="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="PrestadorType">
		<xsd:sequence>
			<xsd:element type="CpfCnpjType" name="CpfCnpj" xmlns:nfse="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd"/>
			<xsd:element type="xsd:int" name="InscricaoMunicipal"/>
		</xsd:sequence>
	</xsd:complexType>

 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Caro Italo,

Vamos lá:
"Agora eu quero entender se o Schema (nfse.xsd) foi você que fez a alteração ou se foi o provedor que lhe forneceu esse novo XSD."
Resposta: Fui eu quem fez a alteração no schema. Pois eles disseram que para enviar os dados não era necessário validar com nenhum schema. Bastava seguir as regras do manual e enviar. Se caso tivesse algum erro, o Provedor retornaria a correção a ser feita. Eu questionei a ele (Analista do Portal Maricá) que o schema existe para não pesar tantas validações assim do lado do Provedor e mesmo assim ele disse que é uma regra interna deles.

Quanto ao type "tcIdentificacaoNfseX" pode retirar sim!

Infelizmente, fiz inúmeros testes e acabou que eu esqueci de retirar este tipo. Inclui durante testes de validação.

Quanto a "ConsultarNfsePorRps", novamente uma tag que deixei de retornar seu uso para o default. Para descobrir o erro que estava dando eu tive que ir testando passo a passo até que descobrisse as falhas do esquema. E a resposta deles é altamente confusa e demorada. Então não valeria a pena eu ficar esperando a resposta para tentar resolver. Essa tag também pode retornar ao default.

Quanto a tag "ConsultarNfseServicoPrestadoEnvio" fui eu quem montou levando em considerações as regras que eles me passaram por whatsapp. Acredito sim que tenha ficado confusa, mas é o jeito que eu aprendi a fazer. Eu irei tentar maximizar a sua legibilidade e lhe devolver. Se você quiser eu lhe mando o XML que eles me enviaram para eu montar o esquema. De qualquer forma também tem no manual deles que está no post anterior que foi fechado.

Infelizmente Italo a coisa não fluiu muito bem. Levei exatos dois meses para concluir esse serviço. E o portal está em funcionamento desde o início de 2022, ou seja, meu cliente esta desde janeiro utilizando o calculo do simples para poder pagar a guia do ISS. E eles sabem tanto do problema que eles mesmo sugeriram isso para o nosso contador. O portal só começou a funcionar mesmo em setembro desse ano.

Mas....

Estou à inteira disposição.
Forte abraço!
 

  • Curtir 1

Paulo Vale
Diretor Técnico LVsoft
WWW.LVSOFT.COM.BR

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Paulo,

Faça uma cópia das suas alterações, restaura a unit ACBrNFSeXProviderABRASFv2 e faça novos testes com a unit e o Schema em anexo.

nfse.xsd

DBSeller.Provider.pas

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Italo, 

Resolvi testar o cancelamento aqui e foi tranquilo. Funcionou, perfeitamente.

Entretanto, não está trazendo o retorno. Bem como o envio da nota não está trazendo nenhuma informação nas propriedades, mas..., no envio da nota o soap está trazendo os dados, dai eu fiz uma rotina que lê o arquivo e me traz a resposta do protocolo e do Código de Verificação.

Já no cancelamento o retorno está vindo sem nenhuma informação, ou seja, para mim 99,9% de chance de ser o Provedor que não retorna a informação de cancelamento como o Protocolo. Veja:

<?xml version="1.0"?>
<CancelarNfseResposta xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd">
<RetCancelamento/>
</CancelarNfseResposta>

Essa é a resposta que ele traz no arquivo XML.

Então... Basicamente está tudo funcionando. Se quiser ajuda para resolver o problema das propriedades que não estão sendo preenchidas me informe.

Forte abraço

Paulo Vale
Diretor Técnico LVsoft
WWW.LVSOFT.COM.BR

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Paulo,

Configura o componente para salvar os XML (soap) e refaça os testes de envio do Rps, de consulta e de cancelamento.

Para cada método vai ser gerado 4 XML (2 de envio e 2 de retorno), totalizando 12 XML.

Anexa eles para que eu possa analisar.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Paulo,

Favor atualizar os fontes, reinstale o ACBr e faça novos testes.

Notei que o retorno do cancelamento esta vazio, ou seja, o webservice do provedor não esta gerando o XML de retorno referente ao cancelamento.

Sendo assim não temos como saber se o cancelamento ocorreu com sucesso ou não.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Boa tarde Italo, 

Resultado positivo, funcionando!

E quanto ao XML de retorno, sim e eu já entrei em contato com eles e informei o problema. Eles disseram que irão resolver. Acho eu que é só aguardar.

Acredito que ficou tudo ok. Caso precise de mim para mais alguma coisa é só chamar.

Forte abraço!

Paulo Vale
Diretor Técnico LVsoft
WWW.LVSOFT.COM.BR

Link para o comentário
Compartilhar em outros sites

Ítalo,

Esqueci de um detalhe... A impressão. 

Eu utilizo o LoadFromStream (não tenho problema em mudar caso seja necessário) mas eu percebi que é na hora de selecionar o provedor que ele está se perdendo. Não está alimentando as informações para poder gerar a NFSe.

E apenas para exemplo, vou lhe mandar em privado o arquivo de retorno da consulta.

Aguardo retorno!

Paulo Vale
Diretor Técnico LVsoft
WWW.LVSOFT.COM.BR

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Paulo,

Se você abrir a unit ACBrNFSeXNotasFiscais vai notar que a função TNotasFiscais.LoadFromFile e TNotasFiscais.LoadFromStream se utilizam da função TNotasFiscais.LoadFromString.

Não entendi esse problema de estar se perdendo ao selecionar o provedor.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Boa noite Ítalo,

Sim, eu vi que utilizam a LoafFromString mas infelizmente não está carregando a nota. Abre o fastreport com tudo em branco. Irei fazer testes ainda mais profundamente. Não fiz ainda por falta de tempo.

Amanhã irei fazer e te retorno!

Paulo Vale
Diretor Técnico LVsoft
WWW.LVSOFT.COM.BR

Link para o comentário
Compartilhar em outros sites

Ítalo,

Já te respondi no privado, mas para ficar registrado irei informar o que aconteceu.

No componente antigo eu salvava no disco e do disco eu salvava no banco. Quando passei para o componente novo resolvi trocar logo isso, que já era uma vontade minha. Passei a salvar diretamente no banco. E aí foi o erro. Eu estava gravando o XML errado. E quando alimentava o componente ele não conseguia enxergar os dados.

Resolvido isso tudo voltou a funcionar!

Não vejo mais motivo para esse tópico ficar aberto.

Obrigado por tudo. Qualquer coisa que precisar estarei à disposição!

Forte Abraço

Paulo Vale
Diretor Técnico LVsoft
WWW.LVSOFT.COM.BR

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 685 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...
The popup will be closed in 10 segundos...