public JsonResult Save(ProjeForm projeForm)
        {
            if (CheckPerm(Perms.TodoProje, PermTypes.Writing) == false)
            {
                return(Json(new Result(false, "Yetkiniz yok"), JsonRequestBehavior.AllowGet));
            }
            if (ModelState.IsValid)
            {
                if (projeForm.ID == 0)
                {
                    projeForm.Aktif      = true;
                    projeForm.Degistiren = vUser.UserName;
                    projeForm.Kaydeden   = vUser.UserName;
                    projeForm.DegisTarih = DateTime.Now;
                    projeForm.KayitTarih = projeForm.DegisTarih;
                    projeForm.Form       = "";
                    db.ProjeForms.Add(projeForm);
                }
                else
                {
                    var tbl = db.ProjeForms.Where(m => m.ID == projeForm.ID).FirstOrDefault();
                    tbl.Aciklama     = projeForm.Aciklama;
                    tbl.KarsiSorumlu = projeForm.KarsiSorumlu;
                    tbl.MesaiKontrol = projeForm.MesaiKontrol;
                    tbl.MesaiKota    = projeForm.MesaiKota;
                    tbl.Proje        = projeForm.Proje;
                    tbl.Sorumlu      = projeForm.Sorumlu;
                    tbl.Degistiren   = vUser.UserName;
                    tbl.DegisTarih   = DateTime.Now;
                    tbl.Aktif        = projeForm.Aktif;
                    if (vUser.RoleName == "Admin" || vUser.RoleName == " ")
                    {
                        tbl.GitAddress = projeForm.GitAddress;
                        tbl.GitGuid    = projeForm.GitGuid;
                    }
                }

                try
                {
                    db.SaveChanges();
                    LogActions("ToDo", "ProjectForm", "Save", ComboItems.alEkle, projeForm.ID, "Proje: " + projeForm.Proje);
                    return(Json(new Result(true, projeForm.ID), JsonRequestBehavior.AllowGet));
                }
                catch (Exception)
                {
                }
            }

            return(Json(new Result(false, "Hata oldu"), JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        /// formlar
        /// </summary>
        public PartialViewResult FormIndex()
        {
            if (CheckPerm(Perms.TodoProje, PermTypes.Reading) == false)
            {
                return(null);
            }
            var id        = Url.RequestContext.RouteData.Values["id"];
            var ID        = id.ToInt32();
            var projeForm = db.ProjeForms.Find(ID);

            ViewBag.id        = ID;
            ViewBag.MusteriID = new SelectList(db.Musteris.Where(m => m.ID == projeForm.MusteriID).ToList(), "ID", "Unvan", projeForm.MusteriID);
            ViewBag.PID       = new SelectList(db.ProjeForms.Where(x => x.PID == null).ToList(), "ID", "Proje", projeForm.ID);
            projeForm         = new ProjeForm
            {
                Proje = projeForm.Proje
            };
            ViewBag.Yetki = CheckPerm(Perms.TodoProje, PermTypes.Writing);
            return(PartialView(projeForm));
        }
        public JsonResult FormSave(ProjeForm projeForm)
        {
            if (CheckPerm(Perms.TodoProje, PermTypes.Writing) == false)
            {
                return(Json(new Result(false, "Yetkiniz yok"), JsonRequestBehavior.AllowGet));
            }
            if (ModelState.IsValid)
            {
                if (projeForm.ID == 0)
                {
                    projeForm.Aktif      = true;
                    projeForm.Degistiren = vUser.UserName;
                    projeForm.Kaydeden   = vUser.UserName;
                    projeForm.DegisTarih = DateTime.Now;
                    projeForm.KayitTarih = projeForm.DegisTarih;
                    db.ProjeForms.Add(projeForm);
                }
                else
                {
                    var tbl = db.ProjeForms.Where(m => m.ID == projeForm.ID).FirstOrDefault();
                    tbl.Degistiren = vUser.UserName;
                    tbl.DegisTarih = DateTime.Now;
                    tbl.Aktif      = projeForm.Aktif;
                    tbl.Form       = projeForm.Form;
                }

                try
                {
                    db.SaveChanges();
                    LogActions("ToDo", "ProjectForm", "FormSave", ComboItems.alEkle, projeForm.ID, "Form: " + projeForm.Form);
                    return(Json(new Result(true, projeForm.PID.Value), JsonRequestBehavior.AllowGet));
                }
                catch (Exception)
                {
                }
            }

            return(Json(new Result(false, "Hata oldu"), JsonRequestBehavior.AllowGet));
        }
        public JsonResult SaveAll(frmGorevDestekCalisma tbl)
        {
            if (CheckPerm(Perms.TodoÇalışma, PermTypes.Writing) == false)
            {
                return(Json(new Result(false, "Yetkiniz yok"), JsonRequestBehavior.AllowGet));
            }
            if (!ModelState.IsValid)
            {
                return(Json(new Result(false, "Hata oldu. Sayfayı yenileyin"), JsonRequestBehavior.AllowGet));
            }
            if (tbl.Sure < 0)
            {
                return(Json(new Result(false, "Çalışma süresini doğru yazınız"), JsonRequestBehavior.AllowGet));
            }
            // get comboitemname
            var gtip  = db.ComboItem_Name.Where(m => m.ID == tbl.GorevID).Select(m => m.Name).FirstOrDefault();
            var durum = ComboItems.gydOnaylandı.ToInt32();
            // projeform
            var projeid = db.ProjeForms.Where(m => m.Proje == gtip && m.MusteriID == tbl.MusteriID).FirstOrDefault();

            if (projeid == null)
            {
                projeid = new ProjeForm()
                {
                    MusteriID    = tbl.MusteriID,
                    Proje        = gtip,
                    Form         = "",
                    MesaiKontrol = false,
                    Kaydeden     = vUser.UserName,
                    KayitTarih   = DateTime.Now,
                    Degistiren   = vUser.UserName,
                    DegisTarih   = DateTime.Now,
                    Aktif        = true
                };
                db.ProjeForms.Add(projeid);
            }

            // add görev
            var gorev = new Gorevler()
            {
                ProjeForm   = projeid,
                Sorumlu     = vUser.UserName,
                Gorev       = gtip,
                Aciklama    = gtip,
                OncelikID   = 1,
                DurumID     = durum,
                GorevTipiID = 52,
                DepartmanID = 49,
                Kaydeden    = vUser.UserName,
                KayitTarih  = DateTime.Now,
                Degistiren  = vUser.UserName,
                DegisTarih  = DateTime.Now
            };
            // add todolist
            var todo = new GorevlerToDoList()
            {
                Gorevler    = gorev,
                Aciklama    = gtip,
                Onay        = true,
                KontrolOnay = true,
                AdminOnay   = true,
                Onaylayan   = vUser.UserName,
                KontrolEden = vUser.UserName,
                Kaydeden    = vUser.UserName,
                KayitTarih  = DateTime.Now,
                Degistiren  = vUser.UserName,
                DegisTarih  = DateTime.Now
            };
            // add çalışma
            var cal = new GorevlerCalisma()
            {
                Gorevler   = gorev,
                Calisma    = tbl.Calisma,
                Sure       = tbl.Sure,
                Tarih      = tbl.Tarih,
                Kaydeden   = vUser.UserName,
                KayitTarih = DateTime.Now,
                Degistiren = vUser.UserName,
                DegisTarih = DateTime.Now
            };

            // add
            db.Gorevlers.Add(gorev);
            db.GorevlerToDoLists.Add(todo);
            db.GorevlerCalismas.Add(cal);
            // save
            try
            {
                db.SaveChanges();
                return(Json(new Result(true, cal.ID), JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Logger(ex, "ToDo/DutyWork/Save");
                return(Json(new Result(false, "Kayıt hatası"), JsonRequestBehavior.AllowGet));
            }
        }