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
749 stars 472 forks source link

Adicionar no projeto, uma camada de validação dos dados da NFe/MDFe, antes que estes sejam submetidos ao schema #316

Open adeniltonbs opened 7 years ago

adeniltonbs commented 7 years ago

Observação: Para essa implementação, é necessário ter em mente que será necessário fazer um acompanhamento das alterações de validação nas notas técnicas publicadas. Atualmente o mantenedor acompanha somente alterações somente na estrutura do projeto.

adeniltonbs commented 7 years ago

Ver issue #253

FabioHenriqueMF commented 7 years ago

Neste caso seria validaçoes a nível de lógica fiscal ex: DiFal, ST, NCM, CFOP e a valores de impostos?

adeniltonbs commented 7 years ago

Poderia ser. Mas inicialmente pensei em validações que facilitasse a identificação de problemas, em relação à validação conta o schema. Por exemplo, quando a validação de schema retorna que determinado campo não foi informado ou não segue um padrão, é bem difícil para o usuário saber o que a mensagem quer dizer. Certamente o desenvolvedor tem que adicionar uma camada na sua aplicação para tratar a maioria desses casos.

As validações personalizadas da biblioteca poderiam começar com coisas simples, como campos obrigatórios que não foram informados (claro que com uma descrição mais amigável para o campo, em vez de simplesmente indicar o nome do atributo), depois poderia partir para validações mais complexas, como as fiscais.

robertorp commented 7 years ago

Poderia adicionar elas com a opção de usarValidacoes = true/false da biblioteca porque ai não quebraria o código de ninguém.

robertorp commented 7 years ago

Qual seria o padrão de mensagem de erro? Teria que ser algo indicativo digo.. por exemplo no mdf-e O Veiculo tração não tem rodado não aplicável Ou seja, eu penso que a mensagem tem que ser direta é amigável, digo

"Tipo rodado do veiculo tração inválido"