Esempio n. 1
0
        public ActionResult ImportarMO(HttpPostedFileBase postedFileBase)
        {
            try
            {
                string filePath = string.Empty;

                if (postedFileBase != null)
                {
                    string path = Server.MapPath("~/Uploads/");

                    if (!Directory.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }

                    filePath = path + Path.GetFileName(postedFileBase.FileName);
                    string extension = Path.GetExtension(postedFileBase.FileName);
                    string numeromo  = Path.GetFileName(postedFileBase.FileName);
                    numeromo = numeromo.Replace(".txt", "");

                    var numeromorepetido = db.wh_moveorder.Where(x => x.NumOrder.Equals(numeromo)).FirstOrDefault();

                    if (numeromorepetido == null)
                    {
                        postedFileBase.SaveAs(filePath);
                        //string csvData = System.IO.File.ReadAllText(filePath);
                        string[] lines = System.IO.File.ReadAllLines(filePath);

                        List <string> listalineamo = new List <string>();
                        int           idmo         = AgregarMoveOrder(numeromo);

                        foreach (string line in lines)
                        {
                            if (line.Contains(numeromo))
                            {
                                listalineamo.Add(line);
                            }

                            if (line.Contains("SURTIDO RESUPPLY") || line.Contains("ETIQUETADO"))
                            {
                                listalineamo.Add(line);
                            }

                            if (line.Contains("Lot Number"))
                            {
                                listalineamo.Add(line);
                            }
                        }

                        int id = (Convert.ToInt32(db.wh_LineasMO.OrderByDescending(x => x.Id).FirstOrDefault().Id) + 1);
                        List <wh_LineasMO> listaBD    = new List <wh_LineasMO>();
                        List <wh_LotesMO>  listaLotes = new List <wh_LotesMO>();

                        for (int i = 0; i < listalineamo.Count(); i++)
                        {
                            if (i > 0)
                            {
                                string lineamolista                  = listalineamo[i].ToString(); //+ "" + listalinealote[i].ToString();
                                string lineamolistacorregido         = Operacion.RemoveSpaces(lineamolista);
                                string lineamolistacorregidoconcomas = lineamolistacorregido.Replace(" ", ",");

                                wh_LineasMO mO = new wh_LineasMO();

                                try
                                {
                                    if (lineamolistacorregidoconcomas.Contains(numeromo))
                                    {
                                        string[] lineas;
                                        lineas = lineamolistacorregidoconcomas.Split(',');

                                        mO.wh_moveorder_Id = idmo;
                                        mO.Status          = lineas[1].ToString();
                                        mO.Line            = lineas[2].ToString();
                                        mO.Item            = lineas[3].ToString();
                                        mO.Rev             = lineas[4].ToString();
                                        mO.SrcLocator      = lineas[5].ToString();
                                        mO.DestLocator     = lineas[6].ToString();
                                        mO.Requester       = lineas[7].ToString();
                                        mO.Ref             = lineas[8].ToString();
                                        mO.UoM             = lineas[9].ToString();
                                        mO.Qty             = lineas[10].ToString();
                                        mO.Asterisk        = lineas[11].ToString();
                                        mO.SrcUbicacion    = "";
                                        mO.DestUbicacion   = "";

                                        id++;

                                        mO.Id = id;

                                        listaBD.Add(mO);
                                    }
                                    else if (lineamolistacorregidoconcomas.Contains("SURTIDO") || lineamolistacorregidoconcomas.Contains("ETIQUETADO"))
                                    {
                                        string[] lineas;
                                        lineas = lineamolistacorregidoconcomas.Split(',');

                                        wh_LineasMO linea = listaBD.Where(x => x.Id == id).FirstOrDefault();

                                        if (lineas.Length == 3)
                                        {
                                            if (lineamolistacorregidoconcomas.Contains("ETIQUETADO"))
                                            {
                                                linea.SrcUbicacion  = linea.SrcUbicacion += lineas[1].ToString();
                                                linea.DestUbicacion = linea.DestUbicacion += lineas[2].ToString();
                                            }
                                            else
                                            {
                                            }
                                        }
                                        else if (lineas.Length == 4)
                                        {
                                            if (lineamolistacorregidoconcomas.Contains("ETIQUETADO"))
                                            {
                                                linea.SrcUbicacion  = linea.SrcUbicacion += lineas[2].ToString();
                                                linea.DestUbicacion = linea.DestUbicacion += lineas[3].ToString();
                                            }
                                            else
                                            {
                                                linea.SrcUbicacion  = linea.SrcUbicacion += (lineas[1].ToString());
                                                linea.DestUbicacion = linea.DestUbicacion += (lineas[2].ToString() + " " + lineas[3].ToString());
                                            }
                                        }
                                        else if (lineas.Length == 5)
                                        {
                                            if (lineamolistacorregidoconcomas.Contains("ETIQUETADO"))
                                            {
                                                linea.SrcUbicacion  = linea.SrcUbicacion += lineas[3].ToString();
                                                linea.DestUbicacion = linea.DestUbicacion += lineas[4].ToString();
                                            }
                                            else
                                            {
                                                linea.SrcUbicacion  = linea.SrcUbicacion += (lineas[2].ToString());
                                                linea.DestUbicacion = linea.DestUbicacion += (lineas[3].ToString() + " " + lineas[4].ToString());
                                            }
                                        }
                                        else if (lineas.Length == 6)
                                        {
                                            if (lineamolistacorregidoconcomas.Contains("ETIQUETADO"))
                                            {
                                                linea.SrcUbicacion  = linea.SrcUbicacion += lineas[4].ToString();
                                                linea.DestUbicacion = linea.DestUbicacion += lineas[5].ToString();
                                            }
                                            else
                                            {
                                                linea.SrcUbicacion  = linea.SrcUbicacion += (lineas[3].ToString());
                                                linea.DestUbicacion = linea.DestUbicacion += (lineas[4].ToString() + " " + lineas[5].ToString());
                                            }
                                        }
                                        else if (lineas.Length == 7)
                                        {
                                            if (lineamolistacorregidoconcomas.Contains("ETIQUETADO"))
                                            {
                                                linea.SrcUbicacion  = linea.SrcUbicacion += lineas[5].ToString();
                                                linea.DestUbicacion = linea.DestUbicacion += lineas[6].ToString();
                                            }
                                            else
                                            {
                                                linea.SrcUbicacion  = linea.SrcUbicacion += (lineas[4].ToString());
                                                linea.DestUbicacion = linea.DestUbicacion += (lineas[5].ToString() + " " + lineas[6].ToString());
                                            }
                                        }
                                        else if (lineas.Length == 8)
                                        {
                                            if (lineamolistacorregidoconcomas.Contains("ETIQUETADO"))
                                            {
                                                linea.SrcUbicacion  = linea.SrcUbicacion += lineas[6].ToString();
                                                linea.DestUbicacion = linea.DestUbicacion += lineas[7].ToString();
                                            }
                                            else
                                            {
                                                linea.SrcUbicacion  = linea.SrcUbicacion += (lineas[5].ToString());
                                                linea.DestUbicacion = linea.DestUbicacion += (lineas[6].ToString() + " " + lineas[7].ToString());
                                            }
                                        }
                                    }
                                    else if (lineamolistacorregidoconcomas.Contains("Lot"))
                                    {
                                        string[] lineas;
                                        lineas = lineamolistacorregidoconcomas.Split(',');

                                        wh_LotesMO lotes = new wh_LotesMO();
                                        lotes.Lote            = lineas[3].ToString();
                                        lotes.FechaExpiracion = DateTime.Parse(lineas[7].ToString());
                                        lotes.Qty             = int.Parse(lineas[11].ToString());
                                        lotes.wh_LineasMO_Id  = id;

                                        listaLotes.Add(lotes);
                                    }
                                }
                                catch (Exception _ex)
                                {
                                    Console.WriteLine(_ex.Message.ToString());
                                    Console.WriteLine(lineamolistacorregidoconcomas);
                                    throw;
                                }
                            }
                        }

                        db.wh_LineasMO.AddRange(listaBD);
                        db.wh_LotesMO.AddRange(listaLotes);
                        db.SaveChanges();
                    }
                    else
                    {
                        return(RedirectToAction("Index"));
                    }
                }
                return(RedirectToAction("Index"));
            }
            catch (Exception _ex)
            {
                return(RedirectToAction("CargarMO", new { mensaje = _ex.Message.ToString() }));
            }
        }
Esempio n. 2
0
        public ActionResult ObtenerMO()
        {
            var Draw          = Request.Form.GetValues("draw").FirstOrDefault();
            var Start         = Request.Form.GetValues("start").FirstOrDefault();
            var Length        = Request.Form.GetValues("length").FirstOrDefault();
            var SortColumn    = Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][data]").FirstOrDefault();
            var SortColumnDir = Request.Form.GetValues("order[0][dir]").FirstOrDefault();

            var moveorder = Request.Form.GetValues("columns[0][search][value]").FirstOrDefault();

            int PageSize = Length != null?Convert.ToInt32(Length) : 0;

            int Skip = Start != null?Convert.ToInt32(Start) : 0;

            int TotalRecords = 0;

            List <wh_LineasMO> lista = new List <wh_LineasMO>();

            using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionGlobal"].ToString()))
            {
                con.Open();

                string sql   = "exec SP_Mo_Index_ParametrosOpcionales @order";
                var    query = new SqlCommand(sql, con);

                if (moveorder != "")
                {
                    query.Parameters.AddWithValue("@order", moveorder);
                }
                else
                {
                    query.Parameters.AddWithValue("@order", DBNull.Value);
                }

                using (var dr = query.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        // facturas
                        var linea = new wh_LineasMO();

                        linea.Id            = Convert.ToInt32(dr["Id"]);
                        linea.Order         = dr["NumOrder"].ToString();
                        linea.Status        = dr["Status"].ToString();
                        linea.Line          = dr["Line"].ToString();
                        linea.Item          = dr["Item"].ToString();
                        linea.Rev           = dr["Rev"].ToString();
                        linea.SrcLocator    = dr["SrcLocator"].ToString();
                        linea.SrcUbicacion  = dr["SrcUbicacion"].ToString();
                        linea.DestLocator   = dr["DestLocator"].ToString();
                        linea.DestUbicacion = dr["DestUbicacion"].ToString();
                        linea.Requester     = dr["Requester"].ToString();
                        linea.Ref           = dr["Ref"].ToString();
                        linea.UoM           = dr["UoM"].ToString();
                        linea.Qty           = dr["Qty"].ToString();

                        string lote   = dr["Lote"].ToString();
                        string lotqty = dr["LotQty"].ToString();

                        if (lote.Equals(string.Empty))
                        {
                            linea.Lote = "NA";
                        }
                        else
                        {
                            linea.Lote = lote;
                        }

                        if (lotqty.Equals(string.Empty))
                        {
                            linea.QtyLote = linea.Qty;
                        }
                        else
                        {
                            linea.QtyLote = lotqty;
                        }

                        string fecha = dr["FechaExpiracion"].ToString();;

                        if (fecha.Equals(string.Empty))
                        {
                            linea.FechaExpiracion = "NA";
                        }
                        else
                        {
                            DateTime date1 = DateTime.Parse(fecha);

                            linea.FechaExpiracion = date1.ToString(CultureInfo.GetCultureInfo("es-MX").DateTimeFormat.ShortDatePattern);
                        }
                        lista.Add(linea);
                    }
                }
            }

            if (!(string.IsNullOrEmpty(SortColumn) && string.IsNullOrEmpty(SortColumnDir)))
            {
                lista = lista.OrderBy(SortColumn + " " + SortColumnDir).ToList();
            }

            TotalRecords = lista.ToList().Count();
            var NewItems = lista.Skip(Skip).Take(PageSize == -1 ? TotalRecords : PageSize).ToList();

            return(Json(new { draw = Draw, recordsFiltered = TotalRecords, recordsTotal = TotalRecords, data = NewItems }, JsonRequestBehavior.AllowGet));
        }