public ActionResult EditKontrak(AdminUangJalan model, string Keterangan) { Context.SalesOrder dbitem = RepoSalesOrder.FindByPK(model.IdSalesOrder.Value); Context.SalesOrderKontrakListSo sokontrak = dbitem.SalesOrderKontrak.SalesOrderKontrakListSo.Where(d => d.Id == int.Parse(model.ListIdSo)).FirstOrDefault(); int jumSo = dbitem.SalesOrderKontrak.SalesOrderKontrakListSo.Where(d => d.IdAdminUangJalan == sokontrak.IdAdminUangJalan && d.IsBatalTruck != true).Count(); Context.BatalOrder batalOrder = new Context.BatalOrder(); Context.AdminUangJalan dbauj = sokontrak.AdminUangJalan; //cek status na if (sokontrak.Status == "dispatched") { Context.SettlementBatal dbsettlement = new Context.SettlementBatal(); //ambil data dbsettlement.IdSalesOrder = model.IdSalesOrder; dbsettlement.IdSoKontrak = model.ListIdSo; if (dbauj.AdminUangJalanUangTf.Any(d => d.Keterangan == "Tunai")) { dbsettlement.KasDiterima = dbauj.AdminUangJalanUangTf.Where(d => d.Keterangan == "Tunai").FirstOrDefault().JumlahTransfer / jumSo; } if (dbauj.AdminUangJalanUangTf.Any(d => d.Keterangan.Contains("Transfer"))) { dbsettlement.TransferDiterima = dbauj.AdminUangJalanUangTf.Where(d => d.Keterangan.Contains("Transfer")).Sum(t => t.JumlahTransfer) / jumSo; } dbsettlement.SolarDiterima = dbauj.AdminUangJalanVoucherSpbu.Sum(s => s.Value) / jumSo; dbsettlement.KapalDiterima = dbauj.AdminUangJalanVoucherKapal.Sum(s => s.Value) / jumSo; dbsettlement.JenisBatal = "Batal Truk"; dbsettlement.IdDriver = sokontrak.Driver1Id; RepoSettBatal.save(dbsettlement, UserPrincipal.id, "Batal Truk"); } else if (sokontrak.Status == "admin uang jalan") { foreach (Context.AdminUangJalanUangTf dbUang in dbauj.AdminUangJalanUangTf) { dbUang.Value = dbUang.Value / jumSo * (jumSo - 1); RepoSalesOrder.saveUangTf(dbUang); } } foreach (var trukItem in dbitem.SalesOrderKontrak.SalesOrderKontrakTruck.Where(d => d.DataTruckId == sokontrak.IdDataTruck).ToList()) { trukItem.DataTruckId = null; trukItem.IdDriver1 = null; trukItem.IdDriver2 = null; } sokontrak.IsProses = false; sokontrak.Urutan = 0; sokontrak.IsBatalTruck = true; sokontrak.IdDataTruck = null; sokontrak.Driver1Id = null; sokontrak.Driver2Id = null; sokontrak.Status = "draft planning"; batalOrder.IdSalesOrder = dbitem.Id; batalOrder.IdSoKontrak = model.ListIdSo; batalOrder.Keterangan = Keterangan; batalOrder.ModifiedDate = DateTime.Now; batalOrder.IsBatalTruk = true; RepoSalesOrder.save(dbitem); RepoBatalOrder.save(batalOrder, UserPrincipal.id); ViewBag.status = "batal order"; return(RedirectToAction("index", "ListOrder")); }