diff --git a/.gitignore b/.gitignore index d2ef159..c413302 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ *.user *.userosscache *.sln.docstates +.vshistory/ # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs diff --git a/src/OpenAC.Net.DFe.Core/Common/DFeArquivosConfigBase.cs b/src/OpenAC.Net.DFe.Core/Common/DFeArquivosConfigBase.cs index 977cadf..79fb64c 100644 --- a/src/OpenAC.Net.DFe.Core/Common/DFeArquivosConfigBase.cs +++ b/src/OpenAC.Net.DFe.Core/Common/DFeArquivosConfigBase.cs @@ -119,6 +119,14 @@ public string ArquivoServicos /// public bool Salvar { get; set; } + /// + /// Define se os nomes dos arquivos devem ser padronizados, + /// utilizando a chave da NFSe, Id do DPS ou NSU, conforme o tipo de operação. + /// Quando false, utiliza o comportamento padrão da biblioteca, + /// cujo formato pode variar e não segue um padrão fixo. + /// + public bool PadronizarNomes { get; set; } + /// /// Define/retorna se deve ser adicionado um literal ao caminho de salvamento. /// diff --git a/src/OpenAC.Net.DFe.Core/Extensions/DFeExtensions.cs b/src/OpenAC.Net.DFe.Core/Extensions/DFeExtensions.cs index ebcc185..5c0843b 100644 --- a/src/OpenAC.Net.DFe.Core/Extensions/DFeExtensions.cs +++ b/src/OpenAC.Net.DFe.Core/Extensions/DFeExtensions.cs @@ -39,7 +39,7 @@ namespace OpenAC.Net.DFe.Core.Extensions; -internal static class DFeExtensions +public static class DFeExtensions { public static DFeBaseAttribute GetElementAtt(this PropertyInfo prop) { @@ -154,4 +154,18 @@ public static bool IsValidXml(this string xmlstring) return false; } } + + /// + /// Formata uma string numérica com zeros à esquerda. + /// + /// String numérica + public static string FillZeros(this string? value, int tamanho = 6, string fallback = "000000") + { + if (string.IsNullOrWhiteSpace(value)) + return fallback; + + return int.TryParse(value, out var numero) + ? numero.ToString(new string('0', tamanho)) + : fallback; + } } \ No newline at end of file