Fix controle recebidos import parsing
This commit is contained in:
parent
91bd6d8d0f
commit
ae2145ac71
|
|
@ -1398,10 +1398,19 @@ namespace line_gestao_api.Controllers
|
||||||
{
|
{
|
||||||
await _db.ControleRecebidoLines.ExecuteDeleteAsync();
|
await _db.ControleRecebidoLines.ExecuteDeleteAsync();
|
||||||
|
|
||||||
|
var years = new[] { 2022, 2023, 2024, 2025 };
|
||||||
|
var importedYears = new HashSet<int>();
|
||||||
|
|
||||||
foreach (var info in GetControleRecebidosWorksheets(wb))
|
foreach (var info in GetControleRecebidosWorksheets(wb))
|
||||||
|
{
|
||||||
await ImportControleRecebidosSheet(info.Sheet, info.Year);
|
await ImportControleRecebidosSheet(info.Sheet, info.Year);
|
||||||
|
importedYears.Add(info.Year);
|
||||||
|
}
|
||||||
|
|
||||||
foreach (var year in years)
|
foreach (var year in years)
|
||||||
{
|
{
|
||||||
|
if (importedYears.Contains(year)) continue;
|
||||||
|
|
||||||
var ws = FindControleRecebidosWorksheet(wb, year);
|
var ws = FindControleRecebidosWorksheet(wb, year);
|
||||||
if (ws == null) continue;
|
if (ws == null) continue;
|
||||||
|
|
||||||
|
|
@ -1476,29 +1485,14 @@ namespace line_gestao_api.Controllers
|
||||||
ConteudoDaNf = string.IsNullOrWhiteSpace(conteudo) ? null : conteudo.Trim(),
|
ConteudoDaNf = string.IsNullOrWhiteSpace(conteudo) ? null : conteudo.Trim(),
|
||||||
NumeroDaLinha = numeroLinha,
|
NumeroDaLinha = numeroLinha,
|
||||||
ValorUnit = valorUnit,
|
ValorUnit = valorUnit,
|
||||||
private sealed class ControleRecebidosWorksheetInfo
|
ValorDaNf = valorDaNf,
|
||||||
{
|
DataDaNf = dataDaNf,
|
||||||
public ControleRecebidosWorksheetInfo(IXLWorksheet sheet, int year)
|
|
||||||
{
|
|
||||||
Sheet = sheet;
|
|
||||||
Year = year;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IXLWorksheet Sheet { get; }
|
|
||||||
public int Year { get; }
|
|
||||||
}
|
|
||||||
|
|
||||||
private static IEnumerable<ControleRecebidosWorksheetInfo> GetControleRecebidosWorksheets(XLWorkbook wb)
|
|
||||||
yield return new ControleRecebidosWorksheetInfo(ws, year);
|
|
||||||
DataDoRecebimento = dataReceb,
|
DataDoRecebimento = dataReceb,
|
||||||
Quantidade = qtd,
|
Quantidade = qtd,
|
||||||
IsResumo = isResumo,
|
IsResumo = isResumo,
|
||||||
CreatedAt = now,
|
CreatedAt = now,
|
||||||
UpdatedAt = now
|
UpdatedAt = now
|
||||||
var isControleRecebidos = name.Contains("CONTROLE") && name.Contains("RECEBIDOS");
|
};
|
||||||
var isRomaneio = name.Contains("ROMANEIO");
|
|
||||||
|
|
||||||
if (!isControleRecebidos && !isRomaneio)
|
|
||||||
|
|
||||||
buffer.Add(e);
|
buffer.Add(e);
|
||||||
|
|
||||||
|
|
@ -1520,6 +1514,37 @@ namespace line_gestao_api.Controllers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private sealed class ControleRecebidosWorksheetInfo
|
||||||
|
{
|
||||||
|
public ControleRecebidosWorksheetInfo(IXLWorksheet sheet, int year)
|
||||||
|
{
|
||||||
|
Sheet = sheet;
|
||||||
|
Year = year;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IXLWorksheet Sheet { get; }
|
||||||
|
public int Year { get; }
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IEnumerable<ControleRecebidosWorksheetInfo> GetControleRecebidosWorksheets(XLWorkbook wb)
|
||||||
|
{
|
||||||
|
var years = new[] { 2022, 2023, 2024, 2025 };
|
||||||
|
|
||||||
|
foreach (var ws in wb.Worksheets)
|
||||||
|
{
|
||||||
|
var name = NormalizeHeader(ws.Name);
|
||||||
|
var isControleRecebidos = name.Contains("CONTROLE") && name.Contains("RECEBIDOS");
|
||||||
|
var isRomaneio = name.Contains("ROMANEIO");
|
||||||
|
|
||||||
|
if (!isControleRecebidos && !isRomaneio) continue;
|
||||||
|
|
||||||
|
var year = years.FirstOrDefault(y => name.Contains(y.ToString()));
|
||||||
|
if (year == 0) continue;
|
||||||
|
|
||||||
|
yield return new ControleRecebidosWorksheetInfo(ws, year);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static IXLWorksheet? FindControleRecebidosWorksheet(XLWorkbook wb, int year)
|
private static IXLWorksheet? FindControleRecebidosWorksheet(XLWorkbook wb, int year)
|
||||||
{
|
{
|
||||||
var normalizedName = NormalizeHeader($"CONTROLE DE RECEBIDOS {year}");
|
var normalizedName = NormalizeHeader($"CONTROLE DE RECEBIDOS {year}");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue