public ActionResult EditPost(int? id, PengeluaranObat pengeluaranobat, string jmlsblmedit) { ViewBag.E = false; //tanggal tdk blh kosong if (pengeluaranobat.Tanggal == null) { ViewBag.E = true; ViewBag.E1 = true; } //jumlah obat tdk blh kosong if (pengeluaranobat.Jumlah == null) { ViewBag.E = true; ViewBag.E2 = true; } //jumlah obat harus bilangan positif string jumlah = pengeluaranobat.Jumlah.ToString(); if (pengeluaranobat.Jumlah != null) { if (!System.Text.RegularExpressions.Regex.IsMatch(jumlah, "^[0-9]+$")) { ViewBag.E = true; ViewBag.E3 = true; } } //jumlah obat tdk blh lebih dari stok saat edit var stoksblmedit = (from i in db.StokObat where i.ObatID == pengeluaranobat.ObatID where i.KlinikID == 2 select i.Stok).FirstOrDefault().ToString(); var intstoksblmedit = int.Parse(stoksblmedit); var intjmlsblmedit = int.Parse(jmlsblmedit); var stoksaatedit = intstoksblmedit + intjmlsblmedit; //.kasus edit pengeluaran obat untuk klinik DMG var stoksblmeditdmg = (from i in db.StokObat where i.ObatID == pengeluaranobat.ObatID where i.KlinikID == 1 select i.Stok).FirstOrDefault().ToString(); var intstoksblmeditdmg = int.Parse(stoksblmeditdmg); var stoksaateditdmg = intstoksblmeditdmg - intjmlsblmedit; if (pengeluaranobat.Jumlah != null) { var jmlsaatedit = pengeluaranobat.Jumlah.ToString(); var intjmlsaatedit = int.Parse(jmlsaatedit); if (intjmlsaatedit > stoksaatedit) { ViewBag.E = true; ViewBag.E4 = true; ViewBag.stoksaatedit = stoksaatedit; } if (stoksaateditdmg < 0 && intjmlsaatedit < Math.Abs(stoksaateditdmg) && pengeluaranobat.TujuanKlinikID == 1) { ViewBag.E = true; ViewBag.E5 = true; ViewBag.stoksaateditdmg = Math.Abs(stoksaateditdmg); ViewBag.stoksaatedit = stoksaatedit; } } if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } var pengeluaranupdate = db.PengeluaranObat.Where(i => i.ID == id).Single(); if (TryUpdateModel(pengeluaranupdate, "", new string[] { "ID", "ObatID", "Jumlah", "Tanggal" }) && !ViewBag.E) { try { db.Entry(pengeluaranupdate).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } catch (RetryLimitExceededException) { //log the error, uncommend dex and add a line here to write a log. ModelState.AddModelError("", "Unable to save changes. Try Again, and if the problem persists, see your system administrator."); } } //kalau gagal, kembali ke action edit return RedirectToAction("Edit", new { E = ViewBag.E, E1 = ViewBag.E1, E2 = ViewBag.E2, E3 = ViewBag.E3, E4 = ViewBag.E4, S = ViewBag.stoksaatedit, E5 = ViewBag.E5, SD = ViewBag.stoksaateditdmg }); }
public ActionResult Create(PengeluaranObat hispengeluaranobat) { if (ModelState.IsValid) { /* int count = Int32.Parse(Request["count"]); for (int kep = 1; kep <= count; kep++) { var Jumlah = Request["Jumlah" + kep + ""].ToString(); var ObatID = Request["ObatID" + kep + ""].ToString(); if (Jumlah == null) Int32.Parse(Jumlah); hispengeluaranobat.Jumlah= Int32.Parse(Jumlah); hispengeluaranobat.ObatID = Int32.Parse(ObatID); db.PengeluaranObat.Add(hispengeluaranobat); db.SaveChanges(); } return RedirectToAction("Index"); */ int count = Int32.Parse(Request["count"]); ViewBag.count = count; var arrayJumlah = new string[100]; var arrayObat = new string[100]; var arrayONama = new string[100]; int[] arrayObatIDInt = new int[100]; bool adaEN = false; bool adaEJ = false; bool adaEO = false; bool adaEJ2 = false; string baris1 = "", baris2 = "", baris3 = ""; var Nama = Request["PasienID"]; if (!String.IsNullOrEmpty(Nama)) { ViewBag.NamaError = ""; ViewBag.Nama = Nama; } else { ViewBag.Nama = ""; adaEN = true; } for (int kepo = 1; kepo <= count; kepo++) { var Jumlah = Request["Jumlah" + kepo + ""]; if (!String.IsNullOrEmpty(Jumlah)) { ViewBag.JumlahError = ""; arrayJumlah[kepo] = Jumlah; } else { arrayJumlah[kepo] = ""; adaEJ = true; if (baris1 == "") baris1 += kepo.ToString(); else baris1 += ", " + kepo.ToString(); } var ObatID = Request["ObatID" + kepo + ""]; if (!String.IsNullOrEmpty(ObatID) && ObatID != "--Pilih Obat--") { //@ViewBag.JumlahError = ""; string[] words = ObatID.Split('&'); arrayObatIDInt[kepo] = int.Parse(words[0]); //ViewBag.word = ObatID; arrayONama[kepo] = words[1]; arrayObat[kepo] = ObatID; string[] stok = words[1].Split(':', '[', ']'); //ViewBag.Coba = stok[2]; int now = 0; if (!String.IsNullOrEmpty(Jumlah)) { now = int.Parse(Jumlah); } if (now > int.Parse(stok[2])) { adaEJ2 = true; if (baris3 == "") baris3 += kepo.ToString(); else baris3 += ", " + kepo.ToString(); } } else { //ViewBag.JumlahError = "Form nama obat tidak boleh kosong"; arrayObat[kepo] = ""; adaEO = true; if (baris2 == "") baris2 += kepo.ToString(); else baris2 += ", " + kepo.ToString(); } } if (adaEJ) ViewBag.JumlahError = "Jumlah obat harus diisi pada baris " + baris1 + "."; if (adaEO) ViewBag.ObatError = "Nama obat harus diisi pada baris " + baris2 + "."; if (adaEJ2) ViewBag.JumlahError2 = "Jumlah pengeluaran obat pada baris " + baris3 + " melebihi stok yang tersedia."; if (adaEN) ViewBag.NamaError = "Nama pasien harus diisi."; if (!adaEJ && !adaEO && !adaEJ2 && !adaEN) { for (int kepo = 1; kepo <= count; kepo++) { hispengeluaranobat.Jumlah = Int32.Parse(arrayJumlah[kepo]); hispengeluaranobat.ObatID = arrayObatIDInt[kepo]; db.PengeluaranObat.Add(hispengeluaranobat); db.SaveChanges(); } return RedirectToAction("Index"); } ViewBag.Jumlah = arrayJumlah; ViewBag.ONama = arrayONama; ViewBag.Obat = arrayObat; ViewBag.KlinikID = new SelectList(db.Klinik, "ID", "Nama", hispengeluaranobat.KlinikID); return View(hispengeluaranobat); } else { int count = Int32.Parse(Request["count"]); ViewBag.count = count; var arrayJumlah = new string[100]; var arrayObat = new string[100]; var arrayONama = new string[100]; int[] arrayObatIDInt = new int[100]; bool adaEN = false; bool adaEJ = false; bool adaEO = false; bool adaEJ2 = false; string baris1 = "", baris2 = "", baris3 = ""; var Nama = Request["PasienID"]; if (!String.IsNullOrEmpty(Nama)) { ViewBag.NamaError = ""; ViewBag.Nama = Nama; } else { ViewBag.Nama = ""; adaEN = true; } for (int kepo = 1; kepo <= count; kepo++) { var Jumlah = Request["Jumlah" + kepo + ""]; if (!String.IsNullOrEmpty(Jumlah)) { ViewBag.JumlahError = ""; arrayJumlah[kepo] = Jumlah; } else { arrayJumlah[kepo] = ""; adaEJ = true; if (baris1 == "") baris1 += kepo.ToString(); else baris1 += ", " + kepo.ToString(); } var ObatID = Request["ObatID" + kepo + ""]; if (!String.IsNullOrEmpty(ObatID) && ObatID != "--Pilih Obat--") { //@ViewBag.JumlahError = ""; string[] words = ObatID.Split('&'); arrayObatIDInt[kepo] = int.Parse(words[0]); //ViewBag.word = ObatID; arrayONama[kepo] = words[1]; arrayObat[kepo] = ObatID; string[] stok = words[1].Split(':', '[', ']'); //ViewBag.Coba = stok[2]; int now = 0; if (!String.IsNullOrEmpty(Jumlah)) { now = int.Parse(Jumlah); } if (now > int.Parse(stok[2])) { adaEJ2 = true; if (baris3 == "") baris3 += kepo.ToString(); else baris3 += ", " + kepo.ToString(); } } else { //ViewBag.JumlahError = "Form nama obat tidak boleh kosong"; arrayObat[kepo] = ""; adaEO = true; if (baris2 == "") baris2 += kepo.ToString(); else baris2 += ", " + kepo.ToString(); } } if (adaEJ) ViewBag.JumlahError = "Jumlah obat harus diisi pada baris " + baris1 + "."; if (adaEO) ViewBag.ObatError = "Nama obat harus diisi pada baris " + baris2 + "."; if (adaEJ2) ViewBag.JumlahError2 = "Jumlah pengeluaran obat pada baris " + baris3 + " melebihi stok yang tersedia."; if (adaEN) ViewBag.NamaError = "Nama pasien harus diisi."; ViewBag.Jumlah = arrayJumlah; ViewBag.ONama = arrayONama; ViewBag.Obat = arrayObat; ViewBag.KlinikID = new SelectList(db.Klinik, "ID", "Nama", hispengeluaranobat.KlinikID); //return RedirectToAction("Index"); return View(hispengeluaranobat); } }