Beispiel #1
0
        public ActionResult Setup(employee_setupViewModel emp_setup)
        {
            if (ModelState.IsValid)
            {
                using (var transaction = db.Database.BeginTransaction())
                {
                    emp_setup.ms_employee = db.ms_employee.Find(emp_setup.employee_id);
                    try
                    {
                        //List<ms_employee_detail> emp_detils = (from t in db.ms_employee_detail
                        //                                       where t.employee_id == emp_setup.employee_id
                        //                                       select t).ToList<ms_employee_detail>();
                        //if (emp_detils.Count > 0)
                        //{
                        //    foreach (var itm in emp_detils)
                        //    {
                        //        db.ms_employee_detail.Remove(itm);
                        //    }
                        //}

                        //emp_setup.company_list = (from t in db.ms_asmin_company where (t.fl_active == true && t.deleted_date == null) select t).ToList();
                        if (emp_setup.selected_company_id.Length > 0)
                        {
                            //karena di hide
                            if (emp_setup.selected_range_id == null)
                            {
                                emp_setup.selected_range_id = new int[emp_setup.selected_company_id.Length];
                            }

                            int i_loop = 0;
                            //foreach (var company_loop in emp_setup.company_list)
                            foreach (var _company_id in emp_setup.selected_company_id)
                            {
                                ms_employee_detail emp_detail = (from t in db.ms_employee_detail
                                                                 where (t.employee_id == emp_setup.employee_id && t.company_id == _company_id)
                                                                 select t).FirstOrDefault <ms_employee_detail>();

                                emp_setup.selected_range_id[i_loop] = 0; //di hide

                                if (emp_detail != null)                  //update
                                {
                                    emp_detail.asset_reg_location_id = (emp_setup.selected_register_id[i_loop] > 0) ? emp_setup.selected_register_id[i_loop] : (int?)null;
                                    emp_detail.location_id           = (emp_setup.selected_register_id[i_loop] > 0) ? emp_setup.selected_register_id[i_loop] : (int?)null;
                                    emp_detail.department_id         = (emp_setup.selected_department_id[i_loop] > 0) ? emp_setup.selected_department_id[i_loop] : (int?)null;
                                    emp_detail.job_level_id          = (emp_setup.selected_job_level_id[i_loop] > 0) ? emp_setup.selected_job_level_id[i_loop] : (int?)null;
                                    //emp_detail.user_type_id = (emp_setup.selected_user_type_id[i_loop] > 0) ? emp_setup.selected_user_type_id[i_loop] : (int?)null;

                                    emp_detail.range_id    = (emp_setup.selected_range_id[i_loop] > 0) ? (int)emp_setup.selected_range_id[i_loop] : (int?)null;
                                    emp_detail.fl_approver = (emp_setup.selected_range_id[i_loop] > 0);

                                    emp_detail.fl_active    = true;
                                    emp_detail.created_by   = UserProfile.UserId;
                                    emp_detail.created_date = DateTime.Now;
                                    emp_detail.updated_by   = UserProfile.UserId;
                                    emp_detail.updated_date = DateTime.Now;
                                    emp_detail.deleted_by   = null;
                                    emp_detail.deleted_date = null;
                                    emp_detail.org_id       = UserProfile.OrgId;

                                    db.Entry(emp_detail).State = EntityState.Modified;
                                }
                                else //insert
                                {
                                    db.ms_employee_detail.Add(new ms_employee_detail
                                    {
                                        employee_id           = emp_setup.employee_id,
                                        company_id            = _company_id,
                                        asset_reg_location_id = (emp_setup.selected_register_id[i_loop] > 0) ? emp_setup.selected_register_id[i_loop] : (int?)null,
                                        location_id           = (emp_setup.selected_location_id[i_loop] > 0) ? emp_setup.selected_location_id[i_loop] : (int?)null,
                                        department_id         = (emp_setup.selected_department_id[i_loop] > 0) ? emp_setup.selected_department_id[i_loop] : (int?)null,
                                        job_level_id          = (emp_setup.selected_job_level_id[i_loop] > 0) ? emp_setup.selected_job_level_id[i_loop] : (int?)null,
                                        //user_type_id = (emp_setup.selected_user_type_id[i_loop] > 0) ? emp_setup.selected_user_type_id[i_loop] : (int?)null,

                                        range_id    = (emp_setup.selected_range_id[i_loop] > 0) ? (int)emp_setup.selected_range_id[i_loop] : (int?)null,
                                        fl_approver = (emp_setup.selected_range_id[i_loop] > 0),

                                        fl_active    = true,
                                        created_by   = UserProfile.UserId,
                                        created_date = DateTime.Now,
                                        updated_by   = UserProfile.UserId,
                                        updated_date = DateTime.Now,
                                        deleted_by   = null,
                                        deleted_date = null,
                                        org_id       = UserProfile.OrgId
                                    });
                                }
                                i_loop += 1;
                            }
                        }
                        db.SaveChanges();

                        transaction.Commit();
                        ViewBag.ResultMessage = "Record inserted into table successfully.";
                        return(RedirectToAction("Index"));
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        ViewBag.ResultMessage = string.Format("Error occured, records rolledback. {0}", ex.Message);
                    }
                }
            }
            return(View(emp_setup));
        }
Beispiel #2
0
        /*
         * employee setup
         */
        public ActionResult Setup(int?id)
        {
            if (id == null)
            {
                return(RedirectToAction("Index"));
                //return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }

            ms_employee emp_db = db.ms_employee.Single(a => a.employee_id == id);

            if (emp_db == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            employee_setupViewModel model = new employee_setupViewModel()
            {
                employee_id = emp_db.employee_id,
                ms_employee = emp_db
            };

            List <SelectListItem> first = new List <SelectListItem> {
                new SelectListItem {
                    Text = "- [Not Set] -", Value = "0", Selected = true
                }
            };

            model.company_list = (from t in db.ms_asmin_company
                                  where (t.fl_active == true && t.deleted_date == null)
                                  select t).ToList();

            model.sli_register_list = (from t in db.ms_asset_register_location
                                       where (t.fl_active == true && t.deleted_date == null)
                                       select new SelectListItem
            {
                Text = t.asset_reg_location_name,
                Value = t.asset_reg_location_id.ToString()
            }
                                       ).ToList <SelectListItem>().Union(first);


            model.sli_location_list = (from t in db.ms_asset_location
                                       where (t.fl_active == true && t.deleted_date == null)
                                       //&& t.asset_reg_location_id == model.selected_register_id[0]
                                       select new SelectListItem
            {
                Text = t.location_name,
                Value = t.location_id.ToString()
            }
                                       ).ToList <SelectListItem>().Union(first);


            model.sli_department_list = (from t in db.ms_department
                                         where (t.fl_active == true && t.deleted_date == null)
                                         //from d in db.ms_employee_detail
                                         //where (d.employee_id == emp_db.employee_id && t.department_id == d.department_id)
                                         select new SelectListItem
            {
                Text = t.department_name,
                Value = t.department_id.ToString()
                        //Selected = (d.employee_id>0)
            }
                                         ).ToList <SelectListItem>().Union(first);

            model.sli_job_level_list = (from t in db.ms_job_level
                                        where (t.fl_active == true && t.deleted_date == null)
                                        select new SelectListItem
            {
                Text = t.job_level_name,
                Value = t.job_level_id.ToString()
            }
                                        ).ToList <SelectListItem>().Union(first);


            model.sli_user_type_list = (from t in db.ms_user_type
                                        where (t.fl_active == true && t.deleted_date == null)
                                        select new SelectListItem
            {
                Text = t.user_type_name,
                Value = t.user_type_id.ToString()
            }
                                        ).ToList <SelectListItem>().Union(first);


            model.sli_range_list = (from t in db.ms_approval_range
                                    where (t.fl_active == true && t.deleted_date == null)
                                    select new SelectListItem
            {
                Text = t.range_code,
                Value = t.range_id.ToString()
            }
                                    ).ToList <SelectListItem>().Union(first);

            int i_pos = 0;
            int i_max = model.company_list.Count;

            foreach (ms_asmin_company company in model.company_list)
            {
                employee_detailViewModel _item = new employee_detailViewModel()
                {
                    employee_id         = emp_db.employee_id,
                    ms_asmin_company    = company,
                    sli_register_list   = model.sli_register_list,
                    sli_location_list   = model.sli_location_list,
                    sli_department_list = model.sli_department_list,
                    sli_job_level_list  = model.sli_job_level_list,
                    sli_user_type_list  = model.sli_user_type_list,
                    sli_range_list      = model.sli_range_list
                };

                ms_employee_detail dtl_db = (from d in db.ms_employee_detail
                                             where (d.employee_id == emp_db.employee_id &&
                                                    d.company_id == company.company_id)
                                             select d).FirstOrDefault <ms_employee_detail>();
                if (dtl_db != null)
                {
                    dtl_db.range_id              = 0; //di hide
                    _item.selected_register_id   = (dtl_db.asset_reg_location_id.HasValue) ? dtl_db.asset_reg_location_id.Value : 0;
                    _item.selected_location_id   = (dtl_db.location_id.HasValue) ? dtl_db.location_id.Value : 0;
                    _item.selected_department_id = (dtl_db.department_id.HasValue) ? dtl_db.department_id.Value : 0;
                    _item.selected_job_level_id  = (dtl_db.job_level_id.HasValue) ? dtl_db.job_level_id.Value : 0;
                    //_item.selected_user_type_id = (dtl_db.user_type_id.HasValue) ? dtl_db.user_type_id.Value : 0;
                    _item.selected_fl_approver = (dtl_db.range_id.HasValue) ? ((dtl_db.range_id.Value > 0) ? 1 : 0) : 0;
                    _item.selected_range_id    = (dtl_db.range_id.HasValue) ? dtl_db.range_id.Value : 0;

                    model.checkbox_approver.Add(new SelectedApprover_CheckBoxes
                    {
                        Checked = (dtl_db.range_id > 0),
                        Value   = "1"
                    });
                }
                else
                {
                    _item.selected_register_id   = 0;
                    _item.selected_location_id   = 0;
                    _item.selected_department_id = 0;
                    _item.selected_job_level_id  = 0;
                    _item.selected_user_type_id  = 0;
                    _item.selected_fl_approver   = 0; //di hide
                    _item.selected_range_id      = 0; //di hide

                    model.checkbox_approver.Add(new SelectedApprover_CheckBoxes
                    {
                        Checked = false,
                        Value   = "1"
                    });
                }

                model.employee_details.Add(_item);
                i_pos += 1;
            }

            return(View(model));
        }