private static void ValidarFechaDeEntrega(OrdenDeVentaExcel lineaExcel, int linea, ref List <Error> listaErroes, string fechaDeEntrega) { if (IsDateClass.IsDate(lineaExcel.POSTED_DATETIME)) { if (Convert.ToDateTime(lineaExcel.POSTED_DATETIME) >= DateTime.Today) { if (lineaExcel.POSTED_DATETIME != fechaDeEntrega) { listaErroes.Add(new Error { ERROR = "Fecha de entrega erronea, debe ser igual en todas las casillas, linea: " + linea, LINEA = linea }); } } else { listaErroes.Add(new Error { ERROR = "La fecha de entrega debe ser posterior o igual a la del dia de hoy, linea: " + linea, LINEA = linea }); } } else { listaErroes.Add(new Error { ERROR = "Formato de fecha erroneo, linea: " + linea, LINEA = linea }); } }
protected void UiBotonCargarArchivo_FileUploadComplete(object sender, FileUploadCompleteEventArgs e) { ListaDeErrores = new List <Error>(); Session["ListaDeErrores"] = ListaDeErrores; var errorEncabezado = false; var errorFecha = false; int linea = 2; try { IniciarMvx(); var filePath = HttpContext.Current.Server.MapPath("~/UploadedFiles/SalesOrders/sale_order.xlsx"); if (!Directory.Exists(HttpContext.Current.Server.MapPath("~/UploadedFiles/SalesOrders"))) { Directory.CreateDirectory( HttpContext.Current.Server.MapPath("~/UploadedFiles/SalesOrders")); } e.UploadedFile.SaveAs(filePath); var workbook = new XLWorkbook(filePath); var workSheet = workbook.Worksheets.FirstOrDefault(); var lista = new List <OrdenDeVentaExcel>(); var firstRow = true; foreach (var row in workSheet.Rows()) { if (firstRow) { if (PlantillaDocs.Where((t, i) => row.Cell(i + 1).Value.ToString() != t.VALUE).Any()) { errorEncabezado = true; EstablecerError("El encabezado no coincide con el de la Plantilla proporcionada, por favor descargar la Plantilla en esta pagina para evitar Errores", sender); break; } firstRow = false; } else { if (row.Cell(1).Value.ToString() == "" && row.Cell(2).Value.ToString() == "" && row.Cell(3).Value.ToString() == "" && row.Cell(4).Value.ToString() == "") { break; } if (!ValidarTipoCelda(row.Cell(2).DataType, XLCellValues.DateTime)) { ListaDeErrores.Add(new Error { ERROR = "Error de formato de fecha, celda de Excel debe tener formato Date, linea: " + linea, LINEA = linea }); } if (!ValidarTipoCelda(row.Cell(4).DataType, XLCellValues.Number)) { ListaDeErrores.Add(new Error { ERROR = "Error de formato de cantidad, celda de Excel debe tener formato Number, linea: " + linea, LINEA = linea }); } var item = new OrdenDeVentaExcel { CLIENT_ID = row.Cell(1).Value.ToString(), POSTED_DATETIME = row.Cell(2).Value.ToString(), SKU = row.Cell(3).Value.ToString(), QTY = row.Cell(4).Value.ToString() }; lista.Add(item); linea++; } } if (errorEncabezado == false) { var fechaDeEntrega = DateTime.Today.AddDays(1).ToString(); var idCliente = workSheet.Cell(2, 1).Value.ToString(); if (IsDateClass.IsDate(workSheet.Cell(2, 2).Value)) { fechaDeEntrega = workSheet.Cell(2, 2).Value.ToString(); Session["FechaDeEntrega"] = fechaDeEntrega; } else if (IsDateClass.IsDate(workSheet.Cell(3, 2).Value)) { fechaDeEntrega = workSheet.Cell(3, 2).Value.ToString(); Session["FechaDeEntrega"] = fechaDeEntrega; } if (workSheet.Cell(2, 1).Value.ToString() == "" && workSheet.Cell(2, 2).Value.ToString() == "" && workSheet.Cell(3, 2).Value.ToString() == "") { EstablecerError("Archivo vacio o invalido", sender); errorFecha = true; } if (errorFecha == false) { ValidarClienteYObtenerSkusDeListaDePrecios?.Invoke(sender, new ValidacionSkuPorClienteArgumento() { OrdenDeVentaDetallesExcel = lista, IdCliente = idCliente, FechaEntrega = fechaDeEntrega, login = Session["LOGIN"].ToString() }); Session["CargadoDeExcel"] = true; } } } catch (Exception ex) { EstablecerError(ex.Message, sender); } }