Ejemplo n.º 1
0
        public ActionResult Update()
        {
            if (!Request.IsAjaxRequest())
            {
                return(new EmptyResult());
            }

            // 新規の場合、0
            var id = V.ParseInt(Request.Form["ID"]) ?? 0;


            var err = Validate();

            if (err.Any())
            {
                return(Json(new { err = err }));
            }


            using (HMPZDDB db = new HMPZDDB())
            {
                // チーム情報
                var teamId = V.ParseInt(Request.Form["TeamID"]) ?? 0;

                // 組織情報
                Teams         team         = null;
                Organizations organization = null;
                if (teamId > 0)
                {
                    team = db.Teams.Where(d => d.DeleteFlg != 1 && d.ID == teamId).FirstOrDefault();
                }
                if (team != null && !string.IsNullOrWhiteSpace(team.OrganizationID))
                {
                    organization = db.Organizations.Where(d => d.DeleteFlg != 1 && d.ID == team.OrganizationID).FirstOrDefault();
                }

                // ユーザ情報
                var userIdList = (Request.Form["UserIDList"] ?? "").Split(',');
                foreach (var row in userIdList)
                {
                    // 既存のユーザID x TeamID 情報は一度消す
                    var teamRepresentative = db.TeamRepresentatives.Where(d => d.DeleteFlg != 1 && d.TeamID == teamId && d.UserID == row).FirstOrDefault();
                    if (teamRepresentative != null)
                    {
                        db.TeamRepresentatives.Remove(teamRepresentative);
                    }

                    // 新規として追加
                    TeamRepresentatives data = new TeamRepresentatives();

                    data.Created = data.Updated = DateTime.Now;

                    // TODO ログインユーザ
                    data.CreatedBy = data.UpdatedBy = "";

                    // チーム情報
                    data.TeamID = teamId;

                    // 組織情報
                    if (organization != null)
                    {
                        data.CompanyName       = organization.CompanyName ?? "";
                        data.DivisionGroupName = organization.DivisionGroupCommonName;
                        data.DivisionName      = organization.DivisionAbbrName;
                        data.DepartmentName    = organization.DepartmentAbbrName;
                    }

                    Users user = db.Users.Where(d => d.DeleteFlg != 1 && d.ID == row).FirstOrDefault();
                    if (user == null)
                    {
                        continue;
                    }

                    data.UserID    = user.ID;
                    data.FirstName = user.FirstName;
                    data.LastName  = user.LastName;

                    db.TeamRepresentatives.Add(data);
                }


                db.SaveChanges();
            }

            return(Json(new { res = "ok" }));
        }
Ejemplo n.º 2
0
        public ActionResult Edit(int ID = 0)
        {
            TeamRepresentatives res = null;

            if (ID > 0)
            {
                using (HMPZDDB db = new HMPZDDB())
                {
                    res = db.TeamRepresentatives.Where(d => d.DeleteFlg != 1 && d.ID == ID).FirstOrDefault();
                }
            }

            var organizationId = "";
            var teamId         = 0;

            if (res != null)
            {
                using (HMPZDDB db = new HMPZDDB())
                {
                    var team = db.Teams.Where(d => d.DeleteFlg != 1 && d.ID == res.TeamID).FirstOrDefault();
                    if (team != null)
                    {
                        organizationId = team.OrganizationID;
                        teamId         = team.ID;
                    }
                }

                ViewBag.ID = res.ID;
                //ViewBag.DepartmentName = res.DepartmentName;
                ViewBag.UserID    = res.UserID ?? "";
                ViewBag.FirstName = res.FirstName ?? "";
                ViewBag.LastName  = res.LastName ?? "";
            }

            // 部署リスト
            using (HMPZDDB db = new HMPZDDB())
            {
                var departmentList = GetMagazineDeparmentList();

                ViewBag.DepartmentList = departmentList
                                         .Select(
                    d => new SelectListItem
                {
                    Value    = d.ID.ToString(),
                    Text     = d.DepartmentAbbrName,
                    Selected = (organizationId == d.ID.ToString())
                }).ToList();

                // DEBUG
                //foreach (var d in departmentList)
                //{
                //    for (var i=1;i<=10;i++)
                //    {
                //        db.Teams.Add(
                //            new Teams()
                //            {
                //                OrganizationID = d.ID,
                //                TeamName = d.DepartmentCommonName +"チーム" + i,
                //                TeamCode = d.ID+i.ToString("000000")
                //            });
                //    }
                //    db.SaveChanges();
                //}
            }

            // チームリスト
            // JSのほうでやってもよい気がする
            using (HMPZDDB db = new HMPZDDB())
            {
                ViewBag.TeamList =
                    db.Teams.Where(d => d.DeleteFlg != 1)
                    .Select(
                        d => new SelectListItem {
                    Value    = d.ID.ToString(),
                    Text     = d.TeamName,
                    Selected = (d.ID == teamId)
                }).ToList();
            }

            return(View("~/Views/Admin/Team/Edit.cshtml"));
        }