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