ZeusAutomacao / DFe.NET

Biblioteca para Geração de NFe(2.0, 3.10 e 4.0) e NFCe(3.10 e 4.0) e consumo dos serviços necessários à sua manutenção, conforme descritos em http://www.nfe.fazenda.gov.br/portal/principal.aspx
GNU Lesser General Public License v2.1
752 stars 472 forks source link

fix: Removida declaração de simpleType TCOrgaoIBGE de alguns arquivos schemas #1499

Closed JoaoDiasDev closed 7 months ago

JoaoDiasDev commented 7 months ago

Verifiquei através do retorno da SEFAZ em algumas manifestações de nota de entrada que retornava a seguinte mensagem

image

Com isso procedi para verificar o problema e percebi que só poderia ter relação com os schemas NFe, alguns arquivos estão importando o tiposBasico_v3.10.xsd, nesse arquivo já tem declarado o simpleType TCOrgaoIBGE, causando duplicidade de declaração caso declare o mesmo simpleType após importá-lo. O erro ocorreu no estado do CE, testei também no RJ e ficou funcionando normalmente após as alterações. Segue exemplo de um schema importando o tiposBasico_v3.10.xsd e os arquivos que foram alterados e removida a declaração desse simpleType.

image image

Acredito que não tenha chances de causar problemas a alteração feita nesse commit, pois apenas está sendo removida uma duplicidade de declaração. Contudo, convém ser analisada. Por aqui foi necessária esta alteração para conseguir manifestar nota no estado do CE.

marcosgerene commented 7 months ago

Esse caso é chatinho... eu particularmente desativo a validação de Schemas para distribuição e eventos aqui, uso so para autorização.

Sobre o commit, voce removeu na unha ou pegou novos schemas junto à Sefaz.

JoaoDiasDev commented 7 months ago

Foi removido na unha mesmo por se tratar de duplicidade de declaração devido à importação. Conforme fui ajustando os arquivos me deparei com um que já tinha esse bloco comentado, removi por completo de todos sem comentar.

Pode ser feito, como falou, ignorar a validação do Schema, contudo não traz nenhum malefício remover a duplicidade de declaração do simpleType. Seria o mesmo que herdar de uma classe que tem aquela propriedade e declarar a propriedade novamente.

marcosgerene commented 7 months ago

@JoaoDiasDev Eu entendi o que você fez, antes do atributo validarschemas existir já fiz isso, MAS...

quero aproveitar esse caso para abrir uma discussão maior.

Sou contra a gente "por conta", por mais que seja uma correção, editar os arquivos Schemas oficiais. O ideal seria se tivessemos alguma forma de na validação dos schemas ignoramos essa duplicidade.

Vou aguardar ideias do @robertorp @danilobreda.

Agradeço sua contribuição, não vejo problema nenhum no que você fez, pelo contrário, mas acho que a discussão aqui é válida.


Edit:

Consegue testar seu caso com os schemas originais e com esse commit: https://github.com/marcosgerene/DFe.NET/commit/334912432c707af87ef018eb96bae77e8b36ed89 ?

A ideia é tratar no Zeus o problema e manter os arquivos schemas originais, caso contrário sempre que sair atualização de schemas teremos que aplicar a mesma correção.

JoaoDiasDev commented 7 months ago

@marcosgerene Concordo perfeitamente com sua colocação e também queria que não precisasse ser feito nada na unha. Mas no meu caso aqui era alterar para não validar os schemas que foram ajustados ou fazer essas alterações na unha, pois não encontrei nenhum lugar que os schemas estejam dessa forma que deixei para funcionar, no meu caso de uso.

Contudo, super valida a discussão com certeza.

Testado com a alteração que fez, funciona, sim, pois pelo que vi que foi feito no commit vai evitar mexer na unha nos arquivos e tratar de uma forma mais geral, podem surgir outros casos parecidos que podem necessitar de um tratamento semelhante, se preferir resolver dessa forma também é valido.

marcosgerene commented 7 months ago

Testado com a alteração que fez, funciona, sim, pois pelo que vi que foi feito no commit vai evitar mexer na unha nos arquivos e tratar de uma forma mais geral,

Acredito então que faça mais sentido, vou manter seu PR aberto e abrir um novo PR para que o pessoal discuta o caso.

podem surgir outros casos parecidos que podem necessitar de um tratamento semelhante, se preferir resolver dessa forma também é valido.

O contra argumento seriam novas versões do Schemas, teriamos que mexer nos schemas todas as vezes...

marcosgerene commented 7 months ago

@JoaoDiasDev

Já temos quase duas semanas que falamos aqui. Pelo que entendi você aceitou a proposta feita e não tive reclamação dos outros mantenedores então aceitei meu commit.

Peço que teste por favor com os schemas originais e poste qualquer problema.

Estou fechando esse PR, caso julgue necessário uma discussão maior, por favor, só falar que reabro novamente.

Por agora, considero o problema resolvido.

Obrigado pela contribuição!

JoaoDiasDev commented 7 months ago

Perfeito, isso mesmo, acredito ser melhor resolver da forma que foi feito no #1500 para ser evitado mexer na unha nos arquivos de Schemas.

Procedendo aqui com o uso das alterações, qualquer questão entro em contato novamente.

Obrigado!