Example #1
0
 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);
            }
        }