public JsonResult Save(Olcu tbl)
        {
            if (CheckPerm(Perms.BoyutKartı, PermTypes.Writing) == false)
            {
                return(Json(new Result(false, "Yetkiniz yok"), JsonRequestBehavior.AllowGet));
            }
            var _Result = Dimension.Operation(tbl);

            return(Json(_Result, JsonRequestBehavior.AllowGet));
        }
示例#2
0
        /// <summary>
        /// boyut kartı için toplu giriş yapar
        /// </summary>
        public JsonResult Olcu(HttpPostedFileBase file)
        {
            if (CheckPerm(Perms.BoyutKartı, PermTypes.Writing) == false)
            {
                return(Json(new Result(false, "Yetkiniz yok"), JsonRequestBehavior.AllowGet));
            }
            var _Result = new Result(false, "Hatalı dosya!");

            if (file == null || file.ContentLength == 0)
            {
                return(Json(_Result, JsonRequestBehavior.AllowGet));
            }
            // gelen dosyayı oku
            var stream = file.InputStream;
            IExcelDataReader reader;

            // dosya tipini bul
            if (file.FileName.EndsWith(".xlsx"))
            {
                reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
            }
            else
            {
                return(Json(_Result, JsonRequestBehavior.AllowGet));
            }
            // ilk satır başlık
            reader.IsFirstRowAsColumnNames = true;
            // exceldeki bilgileri datasete aktar
            var result = reader.AsDataSet();

            // kontrol
            if (result.Tables.Count == 0)
            {
                return(Json(_Result, JsonRequestBehavior.AllowGet));
            }
            if (result.Tables[0].Rows == null)
            {
                return(Json(_Result, JsonRequestBehavior.AllowGet));
            }
            // her satırı tek tek kaydet
            int basarili = 0, hatali = 0, tarih = fn.ToOADate(); string hatalilar = "";

            for (int i = 0; i < result.Tables[0].Rows.Count; i++)
            {
                var dr = result.Tables[0].Rows[i];
                // kontrol
                try
                {
                    string malkodu = dr["Mal Kodu"].ToString();
                    string birim   = dr["Birim"].ToString();
                    if (malkodu != "" && dr["En"].ToString2() != "" && dr["Boy"].ToString2() != "" && dr["Derinlik"].ToString2() != "" && dr["Ağırlık"].ToString2() != "")
                    {
                        if (birim == "")
                        {
                            birim = db.Database.SqlQuery <string>(string.Format("SELECT Birim1 FROM FINSAT6{0}.FINSAT6{0}.STK WITH(NOLOCK) WHERE MalKodu='{1}'", vUser.SirketKodu, malkodu)).FirstOrDefault();
                        }
                        if (birim != "" && birim != null)
                        {
                            var test = db.Olcus.Where(m => m.MalKodu.Equals(malkodu) && m.Birim.Equals(birim)).FirstOrDefault();
                            //eğer bu mazleme yoksa ekle
                            if (test == null)
                            {
                                var sti = new Olcu()
                                {
                                    MalKodu    = malkodu,
                                    Birim      = birim,
                                    En         = dr["En"].ToDecimal(),
                                    Boy        = dr["Boy"].ToDecimal(),
                                    Derinlik   = dr["Derinlik"].ToDecimal(),
                                    Agirlik    = dr["Ağırlık"].ToDecimal(),
                                    Kaydeden   = vUser.UserName,
                                    KayitTarih = tarih,
                                    Degistiren = vUser.UserName,
                                    DegisTarih = tarih
                                };
                                //eğer değerler 0dan büyükse kaydet
                                if (sti.En != 0 || sti.Boy != 0 || sti.Derinlik != 0 || sti.Agirlik != 0)
                                {
                                    db.Olcus.Add(sti);
                                    db.SaveChanges();
                                    basarili++;
                                }
                            }
                            //malzeme varsa güncelle
                            else
                            {
                                test.En         = dr["En"].ToDecimal();
                                test.Boy        = dr["Boy"].ToDecimal();
                                test.Derinlik   = dr["Derinlik"].ToDecimal();
                                test.Agirlik    = dr["Ağırlık"].ToDecimal();
                                test.Degistiren = vUser.UserName;
                                test.DegisTarih = tarih;
                                //eğer değerler 0dan büyükse kaydet
                                if (test.En != 0 || test.Boy != 0 || test.Derinlik != 0 || test.Agirlik != 0)
                                {
                                    db.SaveChanges();
                                    basarili++;
                                }
                            }
                        }
                        else
                        {
                            hatali++;
                            if (hatalilar != "")
                            {
                                hatalilar += ", ";
                            }
                            hatalilar += (i + 1);
                        }
                    }
                    else
                    {
                        hatali++;
                        if (hatalilar != "")
                        {
                            hatalilar += ", ";
                        }
                        hatalilar += (i + 1);
                    }
                }
                catch (Exception ex)
                {
                    hatali++;
                    if (hatalilar != "")
                    {
                        hatalilar += ", ";
                    }
                    hatalilar += (i + 1);
                    Logger(ex, "Uploads/Malzeme");
                }
            }

            reader.Close();
            if (basarili > 0)
            {
                _Result.Message = basarili + " adet satır eklendi";
                // log
                LogActions("", "Uploads", "Olcu", ComboItems.alYükle, 0, "Satır Sayısı: " + basarili);
            }
            else
            {
                _Result.Message = "";
            }
            if (basarili > 0 && hatali > 0)
            {
                _Result.Message += ", ";
            }
            if (hatali > 0)
            {
                _Result.Message += hatali + " satır hata verdi. Hatalı satırlar: \n" + hatalilar;
            }
            else
            {
                _Result.Status = true;
            }
            return(Json(_Result, JsonRequestBehavior.AllowGet));
        }