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)); }
/// <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)); }