Avoid UTC shift for controle recebidos dates

This commit is contained in:
Eduardo Lopes 2026-01-28 14:14:58 -03:00
parent 9424ddfeb3
commit 0bac9e9290
1 changed files with 30 additions and 2 deletions

View File

@ -1534,8 +1534,8 @@ namespace line_gestao_api.Controllers
{ {
valorDaNf = lastValorDaNf; valorDaNf = lastValorDaNf;
} }
var dataDaNf = TryDate(ws, rowIndex, map, "DATA DA NF"); var dataDaNf = TryDateNoUtc(ws, rowIndex, map, "DATA DA NF");
var dataReceb = TryDate(ws, rowIndex, map, "DATA DO RECEBIMENTO"); var dataReceb = TryDateNoUtc(ws, rowIndex, map, "DATA DO RECEBIMENTO");
var qtd = TryNullableInt(GetCellByHeaderAny(ws, rowIndex, map, "QTD.", "QTD", "QUANTIDADE")); var qtd = TryNullableInt(GetCellByHeaderAny(ws, rowIndex, map, "QTD.", "QTD", "QUANTIDADE"));
var now = DateTime.UtcNow; var now = DateTime.UtcNow;
@ -1821,6 +1821,13 @@ namespace line_gestao_api.Controllers
return TryDateCell(ws, row, c); return TryDateCell(ws, row, c);
} }
private static DateTime? TryDateNoUtc(IXLWorksheet ws, int row, Dictionary<string, int> map, string header)
{
var k = NormalizeHeader(header);
if (!map.TryGetValue(k, out var c)) return null;
return TryDateCellNoUtc(ws, row, c);
}
private static DateTime? TryDateCell(IXLWorksheet ws, int row, int col) private static DateTime? TryDateCell(IXLWorksheet ws, int row, int col)
{ {
if (col <= 0) return null; if (col <= 0) return null;
@ -1842,6 +1849,27 @@ namespace line_gestao_api.Controllers
return null; return null;
} }
private static DateTime? TryDateCellNoUtc(IXLWorksheet ws, int row, int col)
{
if (col <= 0) return null;
var cell = ws.Cell(row, col);
if (cell.DataType == XLDataType.DateTime)
return DateTime.SpecifyKind(cell.GetDateTime(), DateTimeKind.Unspecified);
if (cell.TryGetValue<DateTime>(out var dt))
return DateTime.SpecifyKind(dt, DateTimeKind.Unspecified);
var s = cell.GetValue<string>()?.Trim();
if (string.IsNullOrWhiteSpace(s)) return null;
if (DateTime.TryParse(s, new CultureInfo("pt-BR"), DateTimeStyles.None, out var d))
return DateTime.SpecifyKind(d, DateTimeKind.Unspecified);
return null;
}
private static decimal? TryDecimal(string? s) private static decimal? TryDecimal(string? s)
{ {
if (string.IsNullOrWhiteSpace(s)) return null; if (string.IsNullOrWhiteSpace(s)) return null;