public ActionResult IzinIste() { ViewBag.izinListesi = IzinTurRepository.IzinTurListesi(); ViewData["Warning"] = "Başlangıç tarihi ile izin sayısını girin yada Başlangıç tarihi ile bitiş tarihini giriniz"; return(View()); }
public ActionResult IzinIste(IzinModel izin) { ViewBag.izinListesi = IzinTurRepository.IzinTurListesi(); if (ModelState.IsValid) { var user = db.Users.Single(i => i.UserName == HttpContext.User.Identity.Name); var yeni = new IzinModel(); yeni.IzinTuru = izin.IzinTuru; yeni.IzinAciklama = izin.IzinAciklama; yeni.BaslangicTarihi = izin.BaslangicTarihi; yeni.BitisTarihi = izin.BitisTarihi; ResmiTatilEkle(izin.BitisTarihi);//son yılı kontrol ediyor DateTime geciciTarih = izin.BaslangicTarihi; double gunSayi = 0; string gun = string.Empty; while (geciciTarih <= izin.BitisTarihi)//haftasonlarını geçiyor { gun = geciciTarih.ToString("dddd"); if (gun != "Cumartesi" && gun != "Pazar") { gunSayi = gunSayi + GunKontrol(geciciTarih); } geciciTarih = geciciTarih.AddDays(1); } // DateTime Calismadate = user.IseGiris; TimeSpan subt = DateTime.Now.Subtract(Calismadate); int Calismagün = Convert.ToInt32(subt.TotalDays); int count = calismaYilHesapla(Calismagün);//toplam çalıştığı yılı hesaplıyor var izinler = db.Izinler.Where(a => a.PortalUserId == user.Id).Select(i => new IzinGelen() { Id = i.Id, Name = i.User.Name, BaslangicTarihi = i.BaslangicTarihi, BitisTarihi = i.BitisTarihi, LastName = i.User.LastName, IzinAciklama = i.IzinAciklama, IzinGun = i.IzinGun, IzinTuru = i.IzinTuru, Onaylandi = i.Onaylandi, }); double kullanilanIzin = 0; int toplamIzınHakkı = izinHakkiHesapla(count); foreach (var item in izinler) { if (DateTime.Now.AddYears(-5) < item.BaslangicTarihi) { kullanilanIzin = Convert.ToDouble(item.IzinGun) + kullanilanIzin; } } kullanilanIzin = kullanilanIzin + gunSayi; if (yeni.IzinTuru == "Doğum izni") { if (gunSayi > 5) { ViewData["Warning"] = "doğum izninde 5 günden fazla kullanılmaz"; return(View()); } yeni.IzinGun = gunSayi.ToString(); yeni.Onaylandi = false; yeni.PortalUserId = user.Id; db.Izinler.Add(yeni); db.SaveChanges(); ViewData["Success"] = "Kullandıgınız Doğum izni:" + gunSayi; var mesaj = String.Format("{0} kullanıcısı {3} nedeni ile {1} ve {2} tarihleri arasında izin talep etmektedir.", user.Name + " " + user.LastName, izin.BaslangicTarihi.ToLongDateString(), izin.BitisTarihi.ToLongDateString(), izin.IzinAciklama); mc.MailGonderAsync(mesaj, "izin"); } else if (yeni.IzinTuru == "Ölüm izni") { if (gunSayi > 5) { ViewData["Warning"] = "ölüm izninde 5 günden fazla kullanılmaz"; return(View()); } yeni.IzinGun = gunSayi.ToString(); yeni.Onaylandi = false; yeni.PortalUserId = user.Id; db.Izinler.Add(yeni); db.SaveChanges(); ViewData["Success"] = "Kullandıgınız Ölüm izni:" + gunSayi; var mesaj = String.Format("{0} kullanıcısı {3} nedeni ile {1} ve {2} tarihleri arasında izin talep etmektedir.", user.Name + " " + user.LastName, izin.BaslangicTarihi.ToLongDateString(), izin.BitisTarihi.ToLongDateString(), izin.IzinAciklama); mc.MailGonderAsync(mesaj, "izin"); } else if (yeni.IzinTuru == "Ücretli izin") { yeni.IzinGun = gunSayi.ToString(); yeni.Onaylandi = false; yeni.PortalUserId = user.Id; db.Izinler.Add(yeni); db.SaveChanges(); ViewData["Success"] = "Kullandıgınız Ücretli izni:" + gunSayi; var mesaj = String.Format("{0} kullanıcısı {3} nedeni ile {1} ve {2} tarihleri arasında izin talep etmektedir.", user.Name + " " + user.LastName, izin.BaslangicTarihi.ToLongDateString(), izin.BitisTarihi.ToLongDateString(), izin.IzinAciklama); mc.MailGonderAsync(mesaj, "izin"); } else if (yeni.IzinTuru == "Evlilik izni") { if (gunSayi > 5) { ViewData["Warning"] = "Evlilik izninde 5 günden fazla kullanılmaz"; return(View()); } yeni.IzinGun = gunSayi.ToString(); yeni.Onaylandi = false; yeni.PortalUserId = user.Id; db.Izinler.Add(yeni); db.SaveChanges(); ViewData["Success"] = "Kullandıgınız Evlilik izni:" + gunSayi; var mesaj = String.Format("{0} kullanıcısı {3} nedeni ile {1} ve {2} tarihleri arasında izin talep etmektedir.", user.Name + " " + user.LastName, izin.BaslangicTarihi.ToLongDateString(), izin.BitisTarihi.ToLongDateString(), izin.IzinAciklama); mc.MailGonderAsync(mesaj, "izin"); } else//Yıllık izin { if (kullanilanIzin > toplamIzınHakkı) { if (kullanilanIzin > toplamIzınHakkı + ekstraIzin(count)) { kullanilanIzin = kullanilanIzin - gunSayi; ViewData["Warning"] = MvcHtmlString.Create("Izin hakkınızı geçiyor." + "<br>" + "Toplam izin hakkınız :" + toplamIzınHakkı + "(" + ekstraIzin(count) + " bir sonraki senenin izin hakkı)" + "<br>" + "Kullanılan izin Hakkı :" + kullanilanIzin + "<br>" + "Almak istediginiz izin :" + gunSayi + "<br>" + "Kalan izin hakkınız:" + (Convert.ToDouble(toplamIzınHakkı) - kullanilanIzin)); return(View()); } ViewData["Warning"] = "Kullanmak istediğiniz izin günü sizin izin hakkınızı geçiyor. Fakat sizin bir dahaki senenin izin hakkından kullanılacak"; yeni.IzinGun = gunSayi.ToString(); yeni.Onaylandi = false; yeni.PortalUserId = user.Id; db.Izinler.Add(yeni); db.SaveChanges(); kullanilanIzin = kullanilanIzin - gunSayi; ViewData["Success"] = MvcHtmlString.Create("İzin başarıyla kaydedildi" + "<br>" + "Toplam izin hakkınız :" + toplamIzınHakkı + "(" + ekstraIzin(count) + " bir sonraki senenin izin hakkı)" + "<br>" + "Aldıgınız izin :" + gunSayi + "<br>" + "Toplam kullanılan izinler:" + kullanilanIzin + "+" + gunSayi + "<br>" + "Kalan izin hakkınız:" + (Convert.ToDouble(toplamIzınHakkı) - (kullanilanIzin + gunSayi))); var mesaj = String.Format("{0} kullanıcısı {3} nedeni ile {1} ve {2} tarihleri arasında izin talep etmektedir.", user.Name + " " + user.LastName, izin.BaslangicTarihi.ToLongDateString(), izin.BitisTarihi.ToLongDateString(), izin.IzinAciklama); mc.MailGonderAsync(mesaj, "izin"); } else { yeni.IzinGun = gunSayi.ToString(); yeni.Onaylandi = false; yeni.PortalUserId = user.Id; db.Izinler.Add(yeni); db.SaveChanges(); kullanilanIzin = kullanilanIzin - gunSayi; ViewData["Success"] = MvcHtmlString.Create("İzin başarıyla kaydedildi" + "<br>" + "Toplam izin hakkınız :" + toplamIzınHakkı + "(" + ekstraIzin(count) + " bir sonraki senenin izin hakkı)" + "<br>" + "Aldıgınız izin :" + gunSayi + "<br>" + "Toplam kullanılan izinler:" + kullanilanIzin + "+" + gunSayi + "<br>" + "Kalan izin hakkınız:" + (Convert.ToDouble(toplamIzınHakkı) - (kullanilanIzin + gunSayi))); var mesaj = String.Format("{0} kullanıcısı {3} nedeni ile {1} ve {2} tarihleri arasında izin talep etmektedir.", user.Name + " " + user.LastName, izin.BaslangicTarihi.ToLongDateString(), izin.BitisTarihi.ToLongDateString(), izin.IzinAciklama); mc.MailGonderAsync(mesaj, "izin"); } // } return(View()); } else { return(View(izin)); } }