public ActionResult Add(SalesOrderKontrak model, string btnsave) { //validasi tambahan bool palid = true; if (btnsave == null && model.Status == "save") { List <Context.DaftarHargaKontrak> dummy = RepoDaftarHarga.FindAll().Where(d => d.IdCust == model.CustomerId && d.DaftarHargaKontrakItem.Any(i => i.IdJenisTruck == model.JenisTruckId)).ToList(); if (dummy.Count() < 1) { palid = false; ViewBag.errorMsg = "Tidak terdapat daftar harga untuk jenis truck " + RepoJenisTruck.FindByPK(model.JenisTruckId.Value).StrJenisTruck; } else { if (model.JsonDateMuat != null && model.JsonDateMuat != "") { List <string> wadah = new List <string>(); foreach (string item in model.JsonDateMuat.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries)) { DateTime valDate = DateTime.Parse(item); if (!dummy.Any(d => valDate >= d.PeriodStart && valDate <= d.PeriodEnd)) { wadah.Add(item); } } if (wadah.Count() > 0) { palid = false; ViewBag.errorMsg = "Tidak terdapat daftar harga untuk jenis truck " + RepoJenisTruck.FindByPK(model.JenisTruckId.Value).StrJenisTruck + " pada tanggal " + string.Join(", ", wadah); } } else { palid = false; ViewBag.errorMsg = "Harap pilih tanggal muat."; } } } else { if (model.JsonDateMuat == null || model.JsonDateMuat == "") { palid = false; ViewBag.errorMsg = "Harap pilih tanggal muat."; } } if (palid) { if (ModelState.IsValid) { if (model.existingMuatDate != "" && model.existingMuatDate != null) { model.existingMuatDate = RepoSalesOrder.IsMuatDateExist(model.JsonDateMuat.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries).ToList(), model.CustomerId.Value); if (model.existingMuatDate != "") { return(View("Form", model)); } } Context.SalesOrder dbso = new Context.SalesOrder(); Context.SalesOrderKontrak dbitem = new Context.SalesOrderKontrak(); model.setDb(dbitem); dbitem.DocDate = DateTime.Now; dbitem.Urutan = RepoSalesOrder.getUrutanKontrak() + 1; dbitem.SONumber = RepoSalesOrder.generateCodeKontrak(dbitem.Urutan); dbitem.DN = "DN" + dbitem.SONumber; dbso.SalesOrderKontrak = dbitem; if (btnsave == "save") { dbso.Status = "save"; } else if (btnsave == "draft") { dbso.Status = "draft"; } else { dbso.Status = model.Status; } RepoSalesOrder.save(dbso); return(RedirectToAction("Index")); } } return(View("Form", model)); }