Exemplo n.º 1
0
 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());
 }
Exemplo n.º 2
0
        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));
            }
        }