Describe the bug
Os enuns RegimeApuracao e OptanteSimplesNacional, por exemplo, divergem da documentação nacional causando confusão ao mapear os tipos próprios para o componente.
Por exemplo:
O enum OptanteSimplesNacional, embora tenha o annotation [DFeEnum("1")] para não optante, o valor do enum é 0.
Ou seja, quando passo meu tipo baseado no nacional de 1 (não optante), o componente recebe (optante Mei).
var resultado = (OptanteSimplesNacional)MeuTipo.OpSimpNac //resultado conversão válida, mas mapeamento incorreto.
Claro, posso lidar com isso, subtraindo 1, ou fazendo o parse do annotation, mas fica um ponto frágil de engano.
Expected behavior
Com base no tipo RegimeEspecial, parece ser o melhor manter o valor do enum igual à documentação nacional:
//OpenAC.Net.NFSe.Nacional.Common.Types
public enum OptanteSimplesNacional
{
/// <summary>
/// Não optante pelo Simples Nacional.
/// </summary>
[DFeEnum("1")]
NaoOptante = 1, //fazer iniciar em 1 conforme documentação nacional.
....
}
Describe the bug
Os enuns RegimeApuracao e OptanteSimplesNacional, por exemplo, divergem da documentação nacional causando confusão ao mapear os tipos próprios para o componente.
Por exemplo:
O enum OptanteSimplesNacional, embora tenha o annotation [DFeEnum("1")] para não optante, o valor do enum é 0.
Ou seja, quando passo meu tipo baseado no nacional de 1 (não optante), o componente recebe (optante Mei).
Claro, posso lidar com isso, subtraindo 1, ou fazendo o parse do annotation, mas fica um ponto frágil de engano.
Expected behavior
Com base no tipo RegimeEspecial, parece ser o melhor manter o valor do enum igual à documentação nacional: