public ActionResult Add(DaftarHargaKonsolidasi model) { //validasi kondisi DaftarHargaKonsolidasiItem[] result = JsonConvert.DeserializeObject <DaftarHargaKonsolidasiItem[]>(model.StrItem); model.listItem = result.ToList(); DaftarHargaKonsolidasiAttachment[] resultAtt = JsonConvert.DeserializeObject <DaftarHargaKonsolidasiAttachment[]>(model.StrAttachment); model.listAtt = resultAtt.ToList(); int idx = 0; foreach (DaftarHargaKondisi item in model.listKondisi.Where(d => d.IsDelete == false)) { if (item.kondisi != "Biaya Multidrop" && item.IsDefault == true && item.IsInclude == true && item.IsBill == false && item.value == null) { ModelState.AddModelError("listKondisi[" + idx + "].value", "Nilai harus diisi."); } if (item.kondisi == "Biaya Multidrop" && item.IsKota == true && item.ValKota == null) { ModelState.AddModelError("listKondisi[" + idx + "].ValKota", "Nilai harus diisi."); } if (item.kondisi == "Biaya Multidrop" && item.IsTitik == true && item.ValTitik == null) { ModelState.AddModelError("listKondisi[" + idx + "].ValTitik", "Nilai harus diisi."); } if (item.IsDefault == false) { if (item.kondisi == "" || item.kondisi == null) { ModelState.AddModelError("listKondisi[" + idx + "].kondisi", "Nama kondisi harus diisi."); } if (item.IsInclude == true && item.IsBill == false && item.value == null) { ModelState.AddModelError("listKondisi[" + idx + "].value", "Nilai harus diisi."); } } idx++; } if (ModelState.IsValid) { bool palid = true; if (RepoDHKonsolidasi.IsPeriodValid(model.PeriodStart.Value, model.PeriodEnd.Value, model.IdCust.Value)) { ModelState.AddModelError("PeriodStart", "Periode awal tidak boleh overlaping."); ModelState.AddModelError("PeriodEnd", "Periode akhir tidak boleh overlaping."); palid = false; } if (!palid) { return(View("Form", model)); } Context.DaftarHargaKonsolidasi dbitem = new Context.DaftarHargaKonsolidasi(); model.setDb(dbitem); RepoDHKonsolidasi.save(dbitem, UserPrincipal.id); return(RedirectToAction("Index")); } return(View("Form", model)); }
public ActionResult Edit(DaftarHargaKonsolidasi model) { //validasi kondisi int idx = 0; foreach (DaftarHargaKondisi item in model.listKondisi.Where(d => d.IsDelete == false)) { if (item.kondisi != "Biaya Multidrop" && item.IsDefault == true && item.IsInclude == true && item.IsBill == false && item.value == null) { ModelState.AddModelError("listKondisi[" + idx + "].value", "Nilai harus diisi."); } if (item.kondisi == "Biaya Multidrop" && item.IsKota == true && item.ValKota == null) { ModelState.AddModelError("listKondisi[" + idx + "].ValKota", "Nilai harus diisi."); } if (item.kondisi == "Biaya Multidrop" && item.IsTitik == true && item.ValTitik == null) { ModelState.AddModelError("listKondisi[" + idx + "].ValTitik", "Nilai harus diisi."); } if (item.IsDefault == false) { if (item.kondisi == "" || item.kondisi == null) { ModelState.AddModelError("listKondisi[" + idx + "].kondisi", "Nama kondisi harus diisi."); } if (item.IsInclude == true && item.IsBill == false && item.value == null) { ModelState.AddModelError("listKondisi[" + idx + "].value", "Nilai harus diisi."); } } idx++; } if (RepoDHKonsolidasi.IsPeriodValid(model.PeriodStart.Value, model.PeriodEnd.Value, model.IdCust.Value, model.Id)) { ModelState.AddModelError("PeriodStart", "Periode awal tidak boleh overlaping."); ModelState.AddModelError("PeriodEnd", "Periode akhir tidak boleh overlaping."); } if (ModelState.IsValid) { Context.DaftarHargaKonsolidasi dbitem = RepoDHKonsolidasi.FindByPK(model.Id); model.setDb(dbitem); DaftarHargaKonsolidasiItem[] results = JsonConvert.DeserializeObject <DaftarHargaKonsolidasiItem[]>(model.StrItem); List <Context.DaftarHargaKonsolidasiItem> DummyItems = dbitem.DaftarHargaKonsolidasiItem.ToList(); List <int> ListAnuTeuDiHapus = new List <int>(); var query = ""; foreach (DaftarHargaKonsolidasiItem item in results) { if (item.Id != 0) { query += "UPDATE dbo.\"DaftarHargaKonsolidasiItem\" SET \"NamaDaftarHargaRute\" = " + item.NamaRuteDaftarHarga + ", \"ListIdRute\" = " + item.ListIdRute + ", \"ListNamaRute\" = " + item.ListNamaRute + ", \"IdJenisKendaraan\" = " + item.IdJenisKendaraan + ", \"MinKg\" = " + item.MinKg + ", \"MaxKg\" = " + item.MaxKg + ", \"Harga\" = " + item.Harga + ", \"IsAsuransi\" = " + item.IsAsuransi + ", \"Premi\" = " + item.Premi + ", \"NilaiTanggungan\" = " + item.NilaiTanggungan + ", \"Keterangan\" = " + item.Keterangan + ", \"PihakPenanggung\" = " + item.PihakPenanggung + ", \"TipeNilaiTanggungan\" = " + item.TipeNilaiTanggungan + ", \"IdSatuanHarga\" = " + item.IdSatuanHarga + " WHERE \"Id\" = " + item.Id + ";"; ListAnuTeuDiHapus.Add(item.Id); } else { query += "INSERT INTO dbo.\"DaftarHargaKonsolidasiItem\" (\"IdDaftarHargaKonsolidasi\", \"NamaDaftarHargaRute\", \"ListIdRute\", \"ListNamaRute\", \"IdJenisKendaraan\", " + "\"MinKg\", \"MaxKg\", \"Harga\", \"IsAsuransi\", \"Premi\", \"NilaiTanggungan\", \"Keterangan\", \"PihakPenanggung\", \"TipeNilaiTanggungan\", \"IdSatuanHarga\") VALUES ( " + dbitem.Id + ", " + item.NamaRuteDaftarHarga + ", " + item.ListIdRute + ", " + item.ListNamaRute + ", " + item.IdJenisKendaraan + ", " + item.MinKg + ", " + item.MaxKg + ", " + item.Harga + ", " + item.IsAsuransi + ", " + item.Premi + ", " + item.NilaiTanggungan + ", " + item.Keterangan + ", " + item.PihakPenanggung + ", " + item.TipeNilaiTanggungan + ", " + item.IdSatuanHarga + ");"; } } foreach (Context.DaftarHargaKonsolidasiItem dbhapus in DummyItems) { if (!ListAnuTeuDiHapus.Any(d => d == dbhapus.Id)) { query += "DELETE FROM dbo.\"DaftarHargaKonsolidasiItem\" WHERE \"IdDaftarHargaKonsolidasi\" = " + dbitem.Id + ";"; } } RepoDHKonsolidasi.save(dbitem, UserPrincipal.id, query); return(RedirectToAction("Index")); } ViewBag.name = model.NamaCustomer; DaftarHargaKonsolidasiItem[] result = JsonConvert.DeserializeObject <DaftarHargaKonsolidasiItem[]>(model.StrItem); model.listItem = result.ToList(); DaftarHargaKonsolidasiAttachment[] resultAtt = JsonConvert.DeserializeObject <DaftarHargaKonsolidasiAttachment[]>(model.StrAttachment); model.listAtt = resultAtt.ToList(); return(View("Form", model)); }