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)); }
/* * 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)); }