// هتبقي تبع المكتب public IActionResult PayBackLoan(decimal price, int BoatID) { var Boat = _context.Boats.Find(BoatID); Boat.DebtsOfLeader -= price; LeaderPayback p = new LeaderPayback() { BoatID = BoatID, Date = TimeNow(), Price = price }; _context.LeaderPaybacks.Add(p); Person pp = _context.People.Find(4); pp.credit += price; _context.SaveChanges(); return(Json(new { message = "success" })); }
public async Task <IActionResult> SaveRec(int?id, decimal individualSalary, decimal halek, decimal total, decimal expense, string flag, int NumberOfFisherMen, decimal PaymentLeaderDebts) { var user = await _userManager.GetUserAsync(User); var roles = await _userManager.GetRolesAsync(user); int PID = 1; if (roles.Contains("partner")) { PID = 2; } var rec = db.BoatOwnerReciepts.Find(id); //Person p = db.People.Find(PID); //p.credit += halek; دى بتكون حسابات على ورق لانهم مش بياخدوا فلوس ف ايديهم ..لسه هياخدوه فلوسهم دى لما التجار تسدد decimal leaderPaidDebts = 0.0m; var boat = db.Boats.Find(rec.BoatID); if (PaymentLeaderDebts != 0.0m) { boat.DebtsOfLeader -= PaymentLeaderDebts; LeaderPayback l = new LeaderPayback() { BoatID = boat.BoatID, Date = TimeNow(), Price = PaymentLeaderDebts }; db.LeaderPaybacks.Add(l); //p.credit += PaymentLeaderDebts; leaderPaidDebts = PaymentLeaderDebts; } boat.DebtsOfHalek -= halek; if (flag == "True") // fishermen number is the same { var recs = db.BoatOwnerReciepts.Where(c => c.BoatID == boat.BoatID && c.IsCollected == false && c.IsCalculated == false).ToList(); var sumOfTotalAfterPayment = total - leaderPaidDebts; var finalIncome = 0.0m; if (boat.TypeID == 2) //shared boat { finalIncome = sumOfTotalAfterPayment / 2; var LeaderSalary = 0.0m; if (NumberOfFisherMen != 0) { LeaderSalary = finalIncome / NumberOfFisherMen; } else { LeaderSalary = finalIncome / 6; } boat.IncomeOfSharedBoat += finalIncome - LeaderSalary; IncomesOfSharedBoat inc = new IncomesOfSharedBoat() { BoatID = boat.BoatID, Date = TimeNow(), Income = finalIncome - LeaderSalary }; db.IncomesOfSharedBoats.Add(inc); PaidForBoat paidForBoat = new PaidForBoat() { BoatID = boat.BoatID, Date = TimeNow(), Payment = finalIncome + LeaderSalary, PersonID = PID, HalekDebtsTillNow = boat.DebtsOfHalek }; db.PaidForBoats.Add(paidForBoat); Person pp = db.People.Find(PID); pp.credit -= finalIncome + LeaderSalary; db.SaveChanges(); } else { if (expense != 0.0m) { boat.TotalOfExpenses -= expense; } PaidForBoat paidForBoat = new PaidForBoat() { BoatID = boat.BoatID, Date = TimeNow(), Payment = sumOfTotalAfterPayment, PersonID = PID, HalekDebtsTillNow = boat.DebtsOfHalek }; db.PaidForBoats.Add(paidForBoat); Person pp = db.People.Find(PID); pp.credit -= sumOfTotalAfterPayment; db.SaveChanges(); } foreach (var item in recs) { item.IsCollected = true; item.IsCalculated = true; } } else { rec.PaidFromDebts = halek; rec.TotalAfterPaying = total - leaderPaidDebts; rec.IsCalculated = true; db.SaveChanges(); if (db.BoatOwnerReciepts.Where(c => c.BoatID == boat.BoatID && c.IsCollected == false && c.IsCalculated == false).Count() == 0)//check if last rec { var recs = db.BoatOwnerReciepts.Where(c => c.BoatID == boat.BoatID && c.IsCollected == false && c.IsCalculated == true).ToList(); var sumOfTotalAfterPayment = recs.Sum(c => c.TotalAfterPaying); var finalIncome = 0.0m; if (boat.TypeID == 2) { finalIncome = sumOfTotalAfterPayment / 2; var LeaderSalary = 0.0m; if (NumberOfFisherMen != 0) { LeaderSalary = finalIncome / NumberOfFisherMen; } else { LeaderSalary = finalIncome / 6; } boat.IncomeOfSharedBoat += finalIncome - LeaderSalary; IncomesOfSharedBoat inc = new IncomesOfSharedBoat() { BoatID = boat.BoatID, Date = TimeNow(), Income = finalIncome - LeaderSalary }; db.IncomesOfSharedBoats.Add(inc); PaidForBoat paidForBoat = new PaidForBoat() { BoatID = boat.BoatID, Date = TimeNow(), Payment = finalIncome + LeaderSalary, PersonID = PID, HalekDebtsTillNow = boat.DebtsOfHalek }; db.PaidForBoats.Add(paidForBoat); Person pp = db.People.Find(PID); pp.credit -= finalIncome + LeaderSalary; db.SaveChanges(); } else { if (expense != 0.0m) { boat.TotalOfExpenses -= expense; } PaidForBoat paidForBoat = new PaidForBoat() { BoatID = boat.BoatID, Date = TimeNow(), Payment = total - leaderPaidDebts, PersonID = PID, HalekDebtsTillNow = boat.DebtsOfHalek }; db.PaidForBoats.Add(paidForBoat); Person pp = db.People.Find(PID); pp.credit -= total - leaderPaidDebts; db.SaveChanges(); } foreach (var item in recs) { item.IsCollected = true; } db.SaveChanges(); } else { var finalIncome = 0.0m; if (boat.TypeID == 2) { finalIncome = rec.TotalAfterPaying / 2; var LeaderSalary = 0.0m; if (NumberOfFisherMen != 0) { LeaderSalary = finalIncome / NumberOfFisherMen; } else { LeaderSalary = finalIncome / 6; } PaidForBoat paidForBoat = new PaidForBoat() { BoatID = boat.BoatID, Date = TimeNow(), Payment = finalIncome + LeaderSalary, PersonID = PID, HalekDebtsTillNow = boat.DebtsOfHalek }; db.PaidForBoats.Add(paidForBoat); Person pp = db.People.Find(PID); pp.credit -= finalIncome + LeaderSalary; db.SaveChanges(); } else { if (expense != 0.0m) { boat.TotalOfExpenses -= expense; } PaidForBoat paidForBoat = new PaidForBoat() { BoatID = boat.BoatID, Date = TimeNow(), Payment = total - leaderPaidDebts, PersonID = PID, HalekDebtsTillNow = boat.DebtsOfHalek }; db.PaidForBoats.Add(paidForBoat); Person pp = db.People.Find(PID); pp.credit -= total - leaderPaidDebts; db.SaveChanges(); } } } db.SaveChanges(); return(Json(new { message = "success", current = boat.DebtsOfHalek, income = boat.IncomeOfSharedBoat, cexpense = boat.TotalOfExpenses, leaderdebts = boat.DebtsOfLeader })); }