public JsonResult CreateCashoutRegularFinal(CashOut cashout, string log) { try { CashOut cashout1 = cashout; string usr = User.Identity.GetUserId(); ApplicationUser xx = db.Users.Find(usr); CutOff cutOff = db.CutOffs.FirstOrDefault(p => p.BranchId == xx.BranchId && p.State == StateCutOff.Open) ?? SetCutOff(xx.BranchId.Value); if (cashout.Id != 0) { cashout = db.CashCards.OfType<CashOut>().First(p => p.Id == cashout.Id); Subtitution(cashout, cashout1); } else { db.CashCards.Add(cashout); //CashOut.Date = DateTime.Now; cashout.CutOffId = cutOff.Id; cashout.UserId = usr; } cashout.SetToFinal(); cashout.LogNote = DateTime.Now.ToString("yyyy-MM-dd HH:mm") + " | " + User.Identity.Name + " | Final | " + log + "<br>" + cashout.LogNote; cashout.RegularDetails.ForEach(p => p.SetSubTotal()); cashout.SetTotal(); db.SaveChanges(); return Json(new {Success = 1, CashOutId = cashout.Id, ex = ""}); } catch (Exception ex) { return Json(new {Success = 0, ex = ex.Message}); } }
private void Subtitution(CashOut cashoutDb, CashOut cashoutView) { cashoutDb.Date = cashoutView.Date; cashoutDb.Note = cashoutView.Note; //delete detail for (int i = cashoutDb.RegularDetails.Count - 1; i >= 0; i--) { int idReg = cashoutDb.RegularDetails[i].Id; CashOutDetail reg = cashoutView.RegularDetails.FirstOrDefault(p => p.Id == idReg); if (reg == null) { db.Entry(cashoutDb.RegularDetails[i]).State = EntityState.Deleted; //cashoutDb.RegularDetails.RemoveAt(i); } } //add or update detail for (int i = 0; i < cashoutView.RegularDetails.Count; i++) { if (cashoutView.RegularDetails[i].Id == 0) { cashoutDb.RegularDetails.Add(cashoutView.RegularDetails[i]); } else { CashOutDetail regDetail = cashoutView.RegularDetails[i]; CashOutDetail detail = cashoutDb.RegularDetails.First(p => p.Id == regDetail.Id); detail.QuizId = regDetail.QuizId; detail.Quiz = null; detail.Note1 = regDetail.Note1; detail.Note2 = regDetail.Note2; detail.Note3 = regDetail.Note3; detail.DateInfo = regDetail.DateInfo; detail.Qty = regDetail.Qty; detail.Amount = regDetail.Amount; detail.DateInfo = regDetail.DateInfo; } } //image list //delete detail for (int i = cashoutDb.ImageDatas.Count - 1; i >= 0; i--) { int idImg = cashoutDb.ImageDatas[i].Id; var img = cashoutView.ImageDatas.FirstOrDefault(p => p.Id == idImg); if (img == null) { db.Entry(cashoutDb.ImageDatas[i]).State = EntityState.Deleted; } } //add or update detail for (int i = 0; i < cashoutView.ImageDatas.Count; i++) { if (cashoutView.ImageDatas[i].Id == 0) { cashoutDb.ImageDatas.Add(cashoutView.ImageDatas[i]); } } }
public ActionResult CreateCashOut(TypeOut? typeOut, CostCenter? userType) { var cash = new CashOut(); cash.TypeOut = typeOut == null ? TypeOut.Regular : typeOut.Value; cash.CostCenter = userType == null ? CostCenter.Other : userType.Value; // ViewBag.Kendaraan = db.Kendaraan.Select(p => p.NoKendaraan).ToList(); ViewBag.Kendaraan = new SelectList(db.Kendaraan, "NoKendaraan", "NoKendaraan"); if (cash.TypeOut == TypeOut.Irregular) { var data = db.Quizs.Where(p => p.QuizGroup.GroupType == GroupType.Irregularaties).ToList(); //data.Insert(0, new Quiz()); ViewBag.Quiz =new SelectList(data, "Id", "Info"); ViewBag.QuizInfo = from dt in data select new { dt.Id, label1 = dt.Note1Label, label2 = dt.Note2Label, label3 = dt.Note3Label, requiredAll = dt.RequiredAll }; } else { var data = db.Quizs.Where( p => p.CostCenter == cash.CostCenter && p.QuizGroup.GroupType != GroupType.Irregularaties).ToList(); // data.Insert(0, new Quiz()); ViewBag.Quiz = new SelectList(data, "Id", "Info"); ViewBag.QuizInfo = from dt in data select new { dt.Id, label1 = dt.Note1Label, label2 = dt.Note2Label, label3 = dt.Note3Label, requiredAll = dt.RequiredAll }; } return View("CashOut", cash); }