public ActionResult RegistracijaOdmora(Vacation vacation) { int vikend = 0; flag = 0; UsersService users = new UsersService(); User u = (User)users.FindById(vacation.UserId); String datum = DateTime.Now.ToString("yyyy-MM-dd"); ViewBag.Datum = datum; Double numDays = (vacation.DateTo - vacation.DateFrom).TotalDays; List<Vacation> vacations = db.GetVacationsForCurrentUser(u.UserId); numDays -= DaysIsntCountHoliday(vacation); brojacRadnihDanaBezVikenda = GetWorkDays(vacation.DateFrom, vacation.DateTo); vikend = Convert.ToInt32(numDays) - brojacRadnihDanaBezVikenda; numDays -= vikend; if (vacation.IsSickLeave && (DateTime.Parse(vacation.DateTo.ToString("yyyy-MM-dd")) > (DateTime.Parse(datum))) && (DateTime.Parse(vacation.DateTo.ToString("yyyy-MM-dd")) > (DateTime.Parse(vacation.DateFrom.ToString("yyyy-MM-dd"))))) { int brojac = 0; if (ModelState.IsValid) { foreach (Vacation v in vacations) { if ((vacation.DateFrom >= v.DateFrom && vacation.DateFrom < v.DateTo) || (vacation.DateTo >= v.DateFrom && vacation.DateTo <= v.DateTo) || (vacation.DateFrom <= v.DateFrom && vacation.DateTo >= v.DateTo)) { flag = 1; } else { brojac++; } } if (brojac == vacations.Count) { flag = 0; vacation.DateFrom = vacation.DateFrom; vacation.DateTo = vacation.DateTo; db.AddVacation(vacation); return RedirectToAction("initHolidays", "LoadHolidays"); } else { flag = 1; return RedirectToAction("RegistracijaOdmora", new { parameterdatum1 = vacation.DateFrom.ToString("yyyy-MM-dd"), parameterdatum2 = vacation.DateTo.ToString("yyyy-MM-dd") }); } } return View(); } else { if (Convert.ToInt32(numDays) <= u.VacationDays && (DateTime.Parse(vacation.DateTo.ToString("yyyy-MM-dd")) > (DateTime.Parse(datum))) && (DateTime.Parse(vacation.DateTo.ToString("yyyy-MM-dd")) > (DateTime.Parse(vacation.DateFrom.ToString("yyyy-MM-dd"))))) { int brojac = 0; if (ModelState.IsValid) { foreach (Vacation v in vacations) { if ((vacation.DateFrom >= v.DateFrom && vacation.DateFrom < v.DateTo) || (vacation.DateTo >= v.DateFrom && vacation.DateTo <= v.DateTo) || (vacation.DateFrom <= v.DateFrom && vacation.DateTo >= v.DateTo)) { flag = 1; } else { brojac++; } } if (brojac == vacations.Count) { flag = 0; vacation.DateFrom = vacation.DateFrom; vacation.DateTo = vacation.DateTo; db.AddVacation(vacation); int days = u.VacationDays - Convert.ToInt32(numDays); u.VacationDays = days; users.Edit(u); return RedirectToAction("initHolidays", "LoadHolidays"); } else { flag = 1; return RedirectToAction("RegistracijaOdmora", new { parameterdatum1 = vacation.DateFrom.ToString("yyyy-MM-dd"), parameterdatum2 = vacation.DateTo.ToString("yyyy-MM-dd") }); } } return View(); } else { return RedirectToAction("RegistracijaOdmora", new { parameterdatum1 = vacation.DateFrom.ToString("yyyy-MM-dd"), parameterdatum2 = vacation.DateTo.ToString("yyyy-MM-dd") }); } //provera } }
private void revertOldVacationDays(Holiday h) { TestService vacationService = new TestService(); UsersService users = new UsersService(); List<Vacation> vacations = vacationService.GetVacations().ToList(); double addMoreDaysToVacation = 0; foreach (Vacation v in vacations) { if (v.IsSickLeave) continue; //ako se praznik nalazi ceo izmedju, povecaj dane za sve. if (h.DateFrom >= v.DateFrom && h.DateFrom <= v.DateTo) { if (h.DateTo <= v.DateTo) { addMoreDaysToVacation = (h.DateTo - h.DateFrom).TotalDays; } else { addMoreDaysToVacation = (v.DateTo - h.DateFrom).TotalDays; } } else if (h.DateFrom <= v.DateFrom && h.DateTo >= v.DateTo) { addMoreDaysToVacation = (v.DateTo - v.DateFrom).TotalDays; } else if (h.DateFrom <= v.DateFrom && h.DateTo <= v.DateTo && h.DateTo >= v.DateFrom) { addMoreDaysToVacation = (h.DateTo - v.DateFrom).TotalDays; } if (addMoreDaysToVacation > 0) { User u = (User)users.FindById(v.UserId); u.VacationDays -= Convert.ToInt32(addMoreDaysToVacation); users.Edit(u); } } }
public ActionResult EditVacation(Vacation vacation, int? page,String calendar) { int vikend1 = 0; int vikend2 = 0; int vikend3 = 0; int vikend4 = 0; int razlikaZaVikendDane = 0; int razlikaZaVikendDanePocetak = 0; brojacRadnihDanaZaEditBezVikenda = 0; brojacRadnihDanaZaEditBezVikendaFrom = 0; String datum = DateTime.Now.ToString("yyyy-MM-dd"); ViewBag.Datum = datum; UsersService users = new UsersService(); User u = (User)users.FindById(vacation.UserId); Double numDays = (vacation.DateTo - vacation.DateFrom).TotalDays; Double povecavanjeOdmora = (vacation.DateTo - datumProveraZaEdit).TotalDays; Double povecavanjeOdmoraZaPocetak = (vacation.DateFrom - datumProveraZaEditPocetak).TotalDays; Vacation oldVacation = (Vacation)db.FindById(vacation.VacationPeriodId); List<Vacation> vacations = db.GetVacationsForCurrentUser(u.UserId); double oldHolidayVacationCount = DaysIsntCountHoliday(oldVacation); double totalHolidayDays = oldHolidayVacationCount - DaysIsntCountHoliday(vacation); numDays += totalHolidayDays; if (vacation.DateTo > datumProveraZaEdit) { brojacRadnihDanaZaEditBezVikenda = GetWorkDays(datumProveraZaEdit, vacation.DateTo); vikend1 = Convert.ToInt32(povecavanjeOdmora) - brojacRadnihDanaZaEditBezVikenda; razlikaZaVikendDane += vikend1; } else if (vacation.DateTo <= datumProveraZaEdit) { brojacRadnihDanaZaEditBezVikenda = -(GetWorkDays(vacation.DateTo, datumProveraZaEdit)); vikend2 = -(Convert.ToInt32(povecavanjeOdmora)) + brojacRadnihDanaZaEditBezVikenda; razlikaZaVikendDane -= vikend2; } if (vacation.DateFrom > datumProveraZaEditPocetak) { brojacRadnihDanaZaEditBezVikendaFrom = GetWorkDays(datumProveraZaEditPocetak, vacation.DateFrom); vikend3 = (Convert.ToInt32(povecavanjeOdmoraZaPocetak)) - brojacRadnihDanaZaEditBezVikendaFrom; razlikaZaVikendDanePocetak -= vikend3; } else { brojacRadnihDanaZaEditBezVikendaFrom = -(GetWorkDays(vacation.DateFrom, datumProveraZaEditPocetak)); vikend4 = -(Convert.ToInt32(povecavanjeOdmoraZaPocetak)) + brojacRadnihDanaZaEditBezVikendaFrom; razlikaZaVikendDanePocetak += vikend4; } if (vacation.IsSickLeave && (DateTime.Parse(vacation.DateTo.ToString("yyyy-MM-dd")) > (DateTime.Parse(datum))) && (DateTime.Parse(vacation.DateTo.ToString("yyyy-MM-dd")) > (DateTime.Parse(vacation.DateFrom.ToString("yyyy-MM-dd"))))) { int brojac = 0; foreach (Vacation v in vacations) { if (vacation.VacationPeriodId == v.VacationPeriodId) { brojac++; continue; } if ((vacation.DateFrom >= v.DateFrom && vacation.DateFrom < v.DateTo) || (vacation.DateTo >= v.DateFrom && vacation.DateTo <= v.DateTo) || (vacation.DateFrom <= v.DateFrom && vacation.DateTo >= v.DateTo)) { flag = 1; } else { brojac++; } } if (brojac == vacations.Count) { flag = 0; db.EditVacation(vacation); if (calendar != null && calendar.Equals("true")) { return RedirectToAction("initHolidays", "LoadHolidays"); } else { return SeeVacations(page); } } else { flag = 1; if (calendar != null && calendar.Equals("true")) { return RedirectToAction("EditVacation", new { vacationId = vacation.VacationPeriodId, calendar = "true" }); } else { return RedirectToAction("EditVacation", new { vacationId = vacation.VacationPeriodId }); } } } else { if (Convert.ToInt32(brojacRadnihDanaZaEditBezVikenda - brojacRadnihDanaZaEditBezVikendaFrom)> u.VacationDays) { daniZaProveruZaEdit = brojacRadnihDanaZaEditBezVikenda - brojacRadnihDanaZaEditBezVikendaFrom; flagZaPozivEdita = 1; } if (Convert.ToInt32(brojacRadnihDanaZaEditBezVikenda - brojacRadnihDanaZaEditBezVikendaFrom) <= u.VacationDays && (DateTime.Parse(vacation.DateTo.ToString("yyyy-MM-dd")) > (DateTime.Parse(datum))) && (DateTime.Parse(vacation.DateTo.ToString("yyyy-MM-dd")) > (DateTime.Parse(vacation.DateFrom.ToString("yyyy-MM-dd"))))) { int brojac = 0; if (ModelState.IsValid) { foreach (Vacation v in vacations) { if (vacation.VacationPeriodId == v.VacationPeriodId) { brojac++; continue; } if ((vacation.DateFrom >= v.DateFrom && vacation.DateFrom < v.DateTo) || (vacation.DateTo >= v.DateFrom && vacation.DateTo <= v.DateTo) || (vacation.DateFrom <= v.DateFrom && vacation.DateTo >= v.DateTo)) { flag = 1; } else { brojac++; } } if (brojac == vacations.Count) { flag = 0; int days = u.VacationDays - Convert.ToInt32(numDays) + daniZaVracanje + razlikaZaVikendDane + razlikaZaVikendDanePocetak; u.VacationDays = days; users.Edit(u); db.EditVacation(vacation); daniZaVracanje = Convert.ToInt32(numDays); if (calendar != null && calendar.Equals("true")) { return RedirectToAction("initHolidays", "LoadHolidays"); } else { return SeeVacations(page); } } else { flag = 1; if (calendar != null && calendar.Equals("true")) { return RedirectToAction("EditVacation", new { vacationId = vacation.VacationPeriodId, calendar = "true" }); } else { return RedirectToAction("EditVacation", new { vacationId = vacation.VacationPeriodId }); } } } return View(); } else { if (calendar != null && calendar.Equals("true")) { return RedirectToAction("initHolidays", "LoadHolidays"); } else { flagZaPozivEdita = 1; return RedirectToAction("EditVacation", new { vacationId = vacation.VacationPeriodId, calendar = "true" }); } } } }