diff --git a/Controllers/LinesController.cs b/Controllers/LinesController.cs index 51216bb..161ea18 100644 --- a/Controllers/LinesController.cs +++ b/Controllers/LinesController.cs @@ -1534,8 +1534,8 @@ namespace line_gestao_api.Controllers { valorDaNf = lastValorDaNf; } - var dataDaNf = TryDate(ws, rowIndex, map, "DATA DA NF"); - var dataReceb = TryDate(ws, rowIndex, map, "DATA DO RECEBIMENTO"); + var dataDaNf = TryDateNoUtc(ws, rowIndex, map, "DATA DA NF"); + var dataReceb = TryDateNoUtc(ws, rowIndex, map, "DATA DO RECEBIMENTO"); var qtd = TryNullableInt(GetCellByHeaderAny(ws, rowIndex, map, "QTD.", "QTD", "QUANTIDADE")); var now = DateTime.UtcNow; @@ -1821,6 +1821,13 @@ namespace line_gestao_api.Controllers return TryDateCell(ws, row, c); } + private static DateTime? TryDateNoUtc(IXLWorksheet ws, int row, Dictionary 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) { if (col <= 0) return null; @@ -1842,6 +1849,27 @@ namespace line_gestao_api.Controllers 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(out var dt)) + return DateTime.SpecifyKind(dt, DateTimeKind.Unspecified); + + var s = cell.GetValue()?.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) { if (string.IsNullOrWhiteSpace(s)) return null;