public ActionResult Process(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } tr_mutation_process mutation_proc = db.tr_mutation_process.Find(id); if (mutation_proc == null) { return(HttpNotFound("Mutation not found.")); } #region "for dropdown Courier" var _courierList = db.ms_courier.Where(t => t.deleted_date == null && t.fl_active == true).Select( t => new { t.courier_id, t.courier_name }).ToList(); SelectList itemsType = new SelectList(_courierList, "courier_id", "courier_name"); ViewBag.courier_id = itemsType; #endregion AssetMutationViewModel mutationprocess = new AssetMutationViewModel(); mutationprocess = DataMutationView(id, mutationprocess); return(View(mutationprocess)); //return View(); }
public JsonResult GetAssetList(string id) { int AssetID = int.Parse(id); List <AssetMutationViewModel> VendorAssetList = new List <AssetMutationViewModel>(); string constring = WebConfigurationManager.ConnectionStrings["ModelAsmRemote"].ConnectionString; var conn = new SqlConnection(constring); var cmd2 = new SqlCommand("GetData", conn); cmd2.CommandText = "EXEC SP_GET_ALL_ASSET_AVAILABLE_FOR_MUTATION @Org_ID, @asset_id, @location_id, @department_id "; cmd2.Parameters.AddWithValue("@Org_ID", UserProfile.OrgId); cmd2.Parameters.AddWithValue("@asset_id", AssetID); cmd2.Parameters.AddWithValue("@location_id", UserProfile.location_id); cmd2.Parameters.AddWithValue("@department_id", UserProfile.department_id); conn.Open(); using (SqlDataReader dr = cmd2.ExecuteReader()) { var tb = new DataTable(); tb.Load(dr); foreach (DataRow row in tb.Rows) { AssetMutationViewModel vn = new AssetMutationViewModel(); vn.asset_id = int.Parse(row["asset_id"].ToString()); vn.asset_number = row["asset_number"].ToString(); vn.asset_name = row["asset_name"].ToString(); vn.asset_receipt_date = DateTime.Parse(row["asset_receipt_date"].ToString()); vn.currency_code = row["currency_code"].ToString(); vn.asset_original_value = decimal.Parse(row["asset_original_value"].ToString()); vn.currency_kurs = decimal.Parse(row["currency_kurs"].ToString()); vn.asset_book_value = decimal.Parse(row["asset_book_value"].ToString()); vn.current_location_id = int.Parse(row["current_location_id"].ToString()); vn.location_name = row["location_name"].ToString(); vn.current_department_id = int.Parse(row["current_department_id"].ToString()); vn.department_name = row["department_name"].ToString(); vn.current_employee_id = int.Parse(row["current_employee_id"].ToString()); vn.employee_name = row["employee_name"].ToString(); VendorAssetList.Add(vn); } } conn.Close(); if (AssetID == 0) { return(Json(new { data = VendorAssetList.ToList() }, JsonRequestBehavior.AllowGet)); } else { return(Json(VendorAssetList.ToList(), JsonRequestBehavior.AllowGet)); } }
public ActionResult RequestMutation() { AssetMutationViewModel mutation_req = new AssetMutationViewModel() { FormMode = EnumFormModeKey.Form_New, asset_id = 0 }; #region "for dropdown Employee" var _employeelist = db.ms_employee.Where(t => t.deleted_date == null && t.fl_active == true).Select( t => new { t.employee_id, t.employee_nik, t.employee_name }).ToList(); SelectList itemsType = new SelectList(_employeelist, "employee_id", "employee_name"); ViewBag.transfer_to_emp_id = itemsType; #endregion #region "for dropdown Department" var _departmentlist = db.ms_department.Where(t => t.deleted_date == null && t.fl_active == true).Select( t => new { t.department_id, t.department_code, t.department_name }).ToList(); SelectList itemsType2 = new SelectList(_departmentlist, "department_id", "department_name"); ViewBag.transfer_to_dept_id = itemsType2; #endregion #region "for dropdown Location" var _locationlist = db.ms_asset_location.Where(t => t.deleted_date == null && t.fl_active == true).Select( t => new { t.location_id, t.location_code, t.location_name }).ToList(); SelectList itemsType3 = new SelectList(_locationlist, "location_id", "location_name"); ViewBag.transfer_to_location_id = itemsType3; #endregion return(View("~/Views/mutation/Request.cshtml")); }
public ActionResult details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } tr_mutation_request mutation_req = db.tr_mutation_request.Find(id); if (mutation_req == null) { return(HttpNotFound("Assset not found.")); } AssetMutationViewModel mutationmodel = new AssetMutationViewModel(); mutationmodel = DataMutationView(id, mutationmodel); return(View(mutationmodel)); }
public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } tr_mutation_process mutation_proc = db.tr_mutation_process.Find(id); if (mutation_proc == null) { return(HttpNotFound("Assset not found.")); } AssetMutationViewModel mutationprocess = new AssetMutationViewModel(); mutationprocess = DataMutationView(id, mutationprocess); return(View(mutationprocess)); }
public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } //tr_mutation_request mutation_req = db.tr_mutation_request.Find(id); tr_mutation_process mutation_req = db.tr_mutation_process.Find(id); //changed by wisnu if (mutation_req == null) { return(HttpNotFound("Assset not found.")); } AssetMutationViewModel mutationreceive = new AssetMutationViewModel(); mutationreceive = DataMutationView(id, mutationreceive); return(View(mutationreceive)); }
public ActionResult SubmitProcessMutation([Bind(Include = "mutation_id, request_id, Asset_id, fl_pic_asset_comfirm, courier_id, asset_number, asset_name, transfer_to_dept_id, transfer_to_location_id, transfer_to_emp_id")] AssetMutationViewModel mutation_prs) { tr_mutation_process mut_process = db.tr_mutation_process.Find(mutation_prs.mutation_id); //update disposal request and approval data with transaction if (mutation_prs.fl_pic_asset_comfirm == null) { ModelState.AddModelError("fl_pic_asset_comfirm", "PIC Confirmation is mandatory."); } else if (mutation_prs.courier_id == null) { ModelState.AddModelError("courier_id", "Courier is mandatory."); } if (ModelState.IsValid) { using (var transaction = db.Database.BeginTransaction()) { try { #region "Save update Mutation process" if (mutation_prs.fl_pic_asset_comfirm == null) { mut_process.fl_pic_asset_comfirm = false; } else if (mutation_prs.fl_pic_asset_comfirm == true) { //ms_employee_detail ed = db.ms_employee_detail.Find(UserProfile.employee_id); mut_process.fl_pic_asset_comfirm = true; mut_process.pic_asset_confirm_date = DateTime.Now; mut_process.courier_id = mutation_prs.courier_id; mut_process.pic_asset_employee_id = UserProfile.employee_id; //mut_process.pic_asset_level_id = UserProfile. } mut_process.created_by = UserProfile.UserId; mut_process.created_date = DateTime.Now; mut_process.updated_date = DateTime.Now; mut_process.updated_by = UserProfile.UserId; mut_process.deleted_date = null; mut_process.deleted_by = null; db.Entry(mut_process).State = EntityState.Modified; db.SaveChanges(); #endregion #region "kirim email ke PIC Process Mutation" //string emailsetting = string.Empty; //string to_name = string.Empty; //string freetext = string.Empty; //ms_department depTransfer = db.ms_department.Find(mutation_prs.transfer_to_dept_id); //emailsetting = "EMAIL_TEMPLATE_03"; //to_name = "Department " + depTransfer.department_name; //freetext = "PIC Asset Department telah mengirim <strong>" + mutation_prs.asset_name + "(" + mutation_prs.asset_number + ")</strong>."; //var _emailto = app_setting.APPLICATION_SETTING.Where(c => c.app_key.Contains(emailsetting)); //sy_email_log sy_email_log = new sy_email_log(); //sy_email_log.elog_to = _emailto.FirstOrDefault().app_value; //sy_email_log.elog_subject = string.Format("Asset Mutation Ready to Process"); //sy_email_log.elog_template = "EMAIL_TEMPLATE_03"; //#region "body mail" //var _bodymail = app_setting.APPLICATION_SETTING.Where(c => c.app_key.Contains("EMAIL_TEMPLATE_03")); //string strBodyMail = _bodymail.FirstOrDefault().app_value; //strBodyMail = strBodyMail.Replace("[to]", to_name); //strBodyMail = strBodyMail.Replace("[assetnumber]", mutation_prs.asset_number); //strBodyMail = strBodyMail.Replace("[aseetname]", mutation_prs.asset_name); //strBodyMail = strBodyMail.Replace("[assetlocation]", mutation_prs.location_name); //strBodyMail = strBodyMail.Replace("[department]", disposal_prs.department_name); //strBodyMail = strBodyMail.Replace("[suggestion]", "Resale"); //strBodyMail = strBodyMail.Replace("[freetext]", freetext); ////strBodyMail = strBodyMail.Replace("[link]", ""); //sy_email_log.elog_body = strBodyMail; //#endregion //var EmailHelper = new EmailHelper() //{ // ToAddress = sy_email_log.elog_to, // Email_Template = sy_email_log.elog_template, // MailSubject = sy_email_log.elog_subject, // MailBody = sy_email_log.elog_body //}; //EmailHelper.Send(); #endregion transaction.Commit(); ViewBag.ResultMessage = "Update table successfully."; return(RedirectToAction("Index")); } catch (Exception) { // roll back all database operations, if any thing goes wrong transaction.Rollback(); ViewBag.ResultMessage = "Error occured, records rolledback."; } } } mutation_prs = DataMutationView(mutation_prs.request_id, mutation_prs); #region "for dropdown Courier" var _courierList = db.ms_courier.Where(t => t.deleted_date == null && t.fl_active == true).Select( t => new { t.courier_id, t.courier_name }).ToList(); SelectList itemsType = new SelectList(_courierList, "courier_id", "courier_name"); ViewBag.courier_id = itemsType; #endregion return(View(mutation_prs)); }
private AssetMutationViewModel DataMutationView(int?id, AssetMutationViewModel mutationmodel) { var _qry = (from tp in db.tr_mutation_process where tp.fl_active == true && tp.deleted_date == null && tp.mutation_id == id join k in db.ms_courier on tp.courier_id equals k.courier_id into cou from subcou in cou.DefaultIfEmpty() join t in db.tr_mutation_request on tp.request_id equals t.request_id where t.fl_active == true && t.deleted_date == null join a in db.tr_depreciation on t.asset_id equals a.asset_id where (a.fl_active == true && a.deleted_date == null) join b in db.ms_currency on a.asset_original_currency_id equals b.currency_id where (b.fl_active == true && b.deleted_date == null) join c in db.ms_asmin_company on t.org_id equals c.company_id where (c.fl_active == true && c.deleted_date == null) #region Request join d in db.ms_department on t.request_dept_id equals d.department_id where (d.fl_active == true && d.deleted_date == null) join e in db.ms_employee on t.request_emp_id equals e.employee_id where (e.fl_active == true && e.deleted_date == null) join f in db.ms_asset_location on t.request_location_id equals f.location_id where (f.fl_active == true && f.deleted_date == null) #endregion #region Transfer To join h in db.ms_department on t.transfer_to_dept_id equals h.department_id where (h.fl_active == true && h.deleted_date == null) join i in db.ms_employee on t.transfer_to_emp_id equals i.employee_id where (i.fl_active == true && i.deleted_date == null) join j in db.ms_asset_location on t.transfer_to_location_id equals j.location_id where (j.fl_active == true && j.deleted_date == null) #endregion join g in db.tr_asset_registration on t.asset_id equals g.asset_id //where (g.fl_active == true && g.deleted_date == null) select new AssetMutationViewModel() { process = tp, tr_mutation_request = t, courier = subcou, asset_parent = g, ms_currency = b, tr_depreciation = a, //current location location_name = f.location_name, department_name = d.department_name, employee_name = e.employee_name, //transfer to transfer_to_dept_name = h.department_name, transfer_to_emp_name = i.employee_name, transfer_to_location_name = j.location_name }).First <AssetMutationViewModel>(); mutationmodel.FormMode = EnumFormModeKey.Form_Edit; mutationmodel.mutation_id = _qry.process.mutation_id; mutationmodel.request_id = _qry.tr_mutation_request.request_id; mutationmodel.request_code = _qry.tr_mutation_request.request_code; mutationmodel.asset_id = _qry.tr_mutation_request.asset_id; mutationmodel.asset_number = _qry.asset_parent.asset_number; mutationmodel.asset_name = _qry.asset_parent.asset_name; mutationmodel.asset_receipt_date = _qry.asset_parent.asset_receipt_date; mutationmodel.currency_code = _qry.ms_currency.currency_code; mutationmodel.asset_book_value = _qry.tr_depreciation.asset_book_value; mutationmodel.currency_kurs = _qry.tr_depreciation.usd_kurs; mutationmodel.asset_original_value = _qry.tr_depreciation.asset_original_value; #region request mutationmodel.request_location_id = _qry.tr_mutation_request.request_location_id; mutationmodel.location_name = _qry.location_name; mutationmodel.request_dept_id = _qry.tr_mutation_request.request_dept_id; mutationmodel.department_name = _qry.department_name; mutationmodel.request_emp_id = _qry.tr_mutation_request.request_emp_id; mutationmodel.employee_name = _qry.employee_name; #endregion #region transfer mutationmodel.transfer_to_location_id = _qry.tr_mutation_request.transfer_to_location_id; mutationmodel.transfer_to_location_name = _qry.transfer_to_location_name; mutationmodel.transfer_to_dept_id = _qry.tr_mutation_request.transfer_to_dept_id; mutationmodel.transfer_to_dept_name = _qry.transfer_to_dept_name; mutationmodel.transfer_to_emp_id = _qry.tr_mutation_request.transfer_to_emp_id; mutationmodel.transfer_to_emp_name = _qry.transfer_to_emp_name; #endregion mutationmodel.process = _qry.process; mutationmodel.courier = _qry.courier; //mutationmodel.request_description = _qry.tr_mutation_request.request_description; //mutationmodel.fl_approval = null; //mutationmodel.approval_noted = _qry.tr_mutation_approval.approval_noted; //Data Approval view mutationmodel.mutation_Approval_list = (from da in db.tr_mutation_approval where (da.fl_active == true && da.deleted_date == null && da.request_id == mutationmodel.request_id) join a in db.ms_employee on da.approval_employee_id equals a.employee_id where (a.fl_active == true && a.deleted_date == null) join b in db.ms_job_level on da.approval_level_id equals b.job_level_id where (b.fl_active == true && b.deleted_date == null) join c in db.ms_request_status on da.approval_status_id equals c.request_status_id select new mutationappViewModel() { approval_employee_name = a.employee_name, approval_level_name = b.job_level_name, approval_status_Name = c.request_status_name, approval_date = da.approval_date }).ToList <mutationappViewModel>(); return(mutationmodel); }
public ActionResult Approval([Bind(Include = "request_id, asset_id, approval_id, fl_approval, approval_noted, asset_number,asset_name, location_name, department_name, employee_name, transfer_to_location_name, transfer_to_dept_name, transfer_to_emp_name, transfer_to_location_id, transfer_to_dept_id, transfer_to_emp_id")] AssetMutationViewModel mutation_req) { if (mutation_req.fl_approval != null) { if (mutation_req.fl_approval == true) { //if (mutation_req.approval_suggestion_id == null || mutation_req.approval_suggestion_id == 0) // ModelState.AddModelError("approval_suggestion_id", "Suggestion is Mandatory."); } } else if (mutation_req.approval_noted == null || mutation_req.approval_noted.Trim() == string.Empty) { ModelState.AddModelError("fl_approval", "Approval is Mandatory."); ModelState.AddModelError("approval_noted", "Reject Reason is Mandatory."); } //update disposal request and approval data with transaction if (ModelState.IsValid) { using (var transaction = db.Database.BeginTransaction()) { try { bool iscomplete = false; #region "Save update Request Asset Mutation" tr_mutation_request mutation_request = db.tr_mutation_request.Find(mutation_req.request_id); mutation_request.fl_approval = mutation_req.fl_approval; if (mutation_req.fl_approval == true) { var doneapp = (from app in db.tr_mutation_approval where (app.approval_date == null && app.fl_active == true && app.deleted_date == null && app.request_id == mutation_req.request_id) select app).ToList(); if (doneapp.Count == 1) { mutation_request.request_status = 5;//complete iscomplete = true; tr_mutation_process tr = new tr_mutation_process(); tr.request_id = mutation_req.request_id; tr.org_id = UserProfile.OrgId; tr.fl_active = true; tr = db.tr_mutation_process.Add(tr); db.SaveChanges(); } else { mutation_request.request_status = 2;//approve } } else { mutation_request.request_status = 3; //reject } mutation_request.approval_date = DateTime.Now; mutation_request.updated_date = DateTime.Now; mutation_request.updated_by = UserProfile.UserId; mutation_request.deleted_date = null; mutation_request.deleted_by = null; db.Entry(mutation_request).State = EntityState.Modified; db.SaveChanges(); #endregion #region "Save update Approval Mutation" tr_mutation_approval mutation_approval = db.tr_mutation_approval.Find(mutation_req.approval_id); if (mutation_req.fl_approval == true) { mutation_approval.approval_status_id = 2;//approve } else { mutation_approval.approval_status_id = 3; //reject mutation_approval.approval_noted = mutation_req.approval_noted; } mutation_approval.approval_date = DateTime.Now; //mutation_approval.approval_location_id = UserProfile.location_id; --> location_id bukan dari login mutation_approval.updated_date = DateTime.Now; mutation_approval.updated_by = UserProfile.UserId; mutation_approval.deleted_date = null; mutation_approval.deteled_by = null; db.Entry(mutation_approval).State = EntityState.Modified; db.SaveChanges(); #endregion if (mutation_req.fl_approval == true) { if (!iscomplete) { #region "kirim email ke approval" var next_approval = (from app in db.tr_mutation_approval where (app.approval_date == null && app.fl_active == true && app.deleted_date == null) && app.request_id == mutation_req.request_id orderby app.approval_id ascending join a in db.ms_employee on app.approval_employee_id equals a.employee_id where a.fl_active == true && a.deleted_date == null select a).FirstOrDefault <ms_employee>(); if (next_approval != null) { sy_email_log sy_email_log = new sy_email_log(); sy_email_log.elog_to = next_approval.employee_email; sy_email_log.elog_subject = string.Format("Asset Mutation Need Approval"); sy_email_log.elog_template = "EMAIL_TEMPLATE_02"; #region "body mail" var _bodymail = app_setting.APPLICATION_SETTING.Where(c => c.app_key.Contains("EMAIL_TEMPLATE_02")); string strBodyMail = _bodymail.FirstOrDefault().app_value; strBodyMail = strBodyMail.Replace("[to]", next_approval.employee_name); strBodyMail = strBodyMail.Replace("[assetnumber]", mutation_req.asset_number); strBodyMail = strBodyMail.Replace("[assetname]", mutation_req.asset_name); strBodyMail = strBodyMail.Replace("[assetlocation]", mutation_req.location_name); strBodyMail = strBodyMail.Replace("[department]", mutation_req.department_name); strBodyMail = strBodyMail.Replace("[employee]", mutation_req.employee_name); //strBodyMail = strBodyMail.Replace("[link]", ""); sy_email_log.elog_body = strBodyMail; #endregion var EmailHelper = new EmailHelper() { ToAddress = sy_email_log.elog_to, Email_Template = sy_email_log.elog_template, MailSubject = sy_email_log.elog_subject, MailBody = sy_email_log.elog_body }; EmailHelper.Send(); } #endregion #region "Save Sy_Message_notification ke approval" if (next_approval != null) { int empid = Convert.ToInt32(next_approval.employee_id); ms_user msuser = (from m in db.ms_user where m.employee_id == empid select m).FirstOrDefault(); sy_message_notification msg = new sy_message_notification(); msg.notif_group = "BALOON_RECEIPT_03"; msg.notify_user = msuser.user_name; msg.notify_ip = next_approval.ip_address; msg.notify_message = "Ada permintaan approval untuk asset mutasi."; msg.fl_active = true; msg.created_date = DateTime.Now; msg.created_by = UserProfile.UserId; msg.fl_shown = 0; db.sy_message_notification.Add(msg); db.SaveChanges(); } #endregion } else { //kl dh complete??? } } transaction.Commit(); ViewBag.ResultMessage = "Update table successfully."; return(RedirectToAction("Index")); } catch (Exception) { // roll back all database operations, if any thing goes wrong transaction.Rollback(); ViewBag.ResultMessage = "Error occured, records rolledback."; } } } mutation_req = DataMutationView(mutation_req.request_id, mutation_req); return(View(mutation_req)); }
private AssetMutationViewModel DataMutationView(int?id, AssetMutationViewModel mutationmodel) { var _qry = (from t in db.tr_mutation_request where t.fl_active == true && t.deleted_date == null && t.request_id == id && t.request_dept_id == UserProfile.department_id //&& t.org_id == UserProfile.OrgId join da in db.tr_mutation_approval on t.request_id equals da.request_id where da.fl_active == true && da.deleted_date == null && da.approval_employee_id == UserProfile.employee_id //&& da.approval_date == null && da.approval_status_id == 1 join a in db.tr_depreciation on t.asset_id equals a.asset_id where (a.fl_active == true && a.deleted_date == null) join b in db.ms_currency on a.asset_original_currency_id equals b.currency_id where (b.fl_active == true && b.deleted_date == null) join c in db.ms_asmin_company on t.org_id equals c.company_id where (c.fl_active == true && c.deleted_date == null) #region Request join d in db.ms_department on t.request_dept_id equals d.department_id where (d.fl_active == true && d.deleted_date == null) join e in db.ms_employee on t.request_emp_id equals e.employee_id where (e.fl_active == true && e.deleted_date == null) join f in db.ms_asset_location on t.request_location_id equals f.location_id where (f.fl_active == true && f.deleted_date == null) #endregion #region Transfer To join h in db.ms_department on t.transfer_to_dept_id equals h.department_id where (h.fl_active == true && h.deleted_date == null) join i in db.ms_employee on t.transfer_to_emp_id equals i.employee_id where (i.fl_active == true && i.deleted_date == null) join j in db.ms_asset_location on t.transfer_to_location_id equals j.location_id where (j.fl_active == true && j.deleted_date == null) #endregion join g in db.tr_asset_registration on t.asset_id equals g.asset_id //where (g.fl_active == true && g.deleted_date == null) select new AssetMutationViewModel() { tr_mutation_request = t, tr_mutation_approval = da, asset_parent = g, ms_currency = b, tr_depreciation = a, //current location location_name = f.location_name, department_name = d.department_name, employee_name = e.employee_name, //transfer to transfer_to_dept_name = h.department_name, transfer_to_emp_name = i.employee_name, transfer_to_location_name = j.location_name, approval_status_id = da.approval_status_id, fl_approval = t.fl_approval }).First <AssetMutationViewModel>(); mutationmodel.FormMode = EnumFormModeKey.Form_Edit; mutationmodel.request_id = _qry.tr_mutation_request.request_id; mutationmodel.request_code = _qry.tr_mutation_request.request_code; mutationmodel.approval_id = _qry.tr_mutation_approval.approval_id; mutationmodel.asset_id = _qry.tr_mutation_request.asset_id; mutationmodel.asset_number = _qry.asset_parent.asset_number; mutationmodel.asset_name = _qry.asset_parent.asset_name; mutationmodel.asset_receipt_date = _qry.asset_parent.asset_receipt_date; //mutationmodel.asset_img_address = _qry.tr_disposal_image.asset_img_address; mutationmodel.currency_code = _qry.ms_currency.currency_code; mutationmodel.asset_book_value = _qry.tr_depreciation.asset_book_value; mutationmodel.currency_kurs = _qry.tr_depreciation.usd_kurs; mutationmodel.asset_original_value = _qry.tr_depreciation.asset_original_value; #region request mutationmodel.request_location_id = _qry.tr_mutation_request.request_location_id; mutationmodel.location_name = _qry.location_name; mutationmodel.request_dept_id = _qry.tr_mutation_request.request_dept_id; mutationmodel.department_name = _qry.department_name; mutationmodel.request_emp_id = _qry.tr_mutation_request.request_emp_id; mutationmodel.employee_name = _qry.employee_name; #endregion #region transfer mutationmodel.transfer_to_location_id = _qry.tr_mutation_request.transfer_to_location_id; mutationmodel.transfer_to_location_name = _qry.transfer_to_location_name; mutationmodel.transfer_to_dept_id = _qry.tr_mutation_request.transfer_to_dept_id; mutationmodel.transfer_to_dept_name = _qry.transfer_to_dept_name; mutationmodel.transfer_to_emp_id = _qry.tr_mutation_request.transfer_to_emp_id; mutationmodel.transfer_to_emp_name = _qry.transfer_to_emp_name; #endregion //mutationmodel.request_description = _qry.tr_mutation_request.request_description; if (_qry.approval_status_id == 1) { mutationmodel.fl_approval = null; } else { mutationmodel.fl_approval = _qry.fl_approval; } mutationmodel.approval_noted = _qry.tr_mutation_approval.approval_noted; //Data Approval view mutationmodel.mutation_Approval_list = (from da in db.tr_mutation_approval where (da.fl_active == true && da.deleted_date == null && da.request_id == id) join a in db.ms_employee on da.approval_employee_id equals a.employee_id where (a.fl_active == true && a.deleted_date == null) join b in db.ms_job_level on da.approval_level_id equals b.job_level_id where (b.fl_active == true && b.deleted_date == null) join c in db.ms_request_status on da.approval_status_id equals c.request_status_id //join d in db.ms_disposal_type on da.approval_suggestion_id equals d.disposal_type_id //into d_temp //from subd in d_temp.DefaultIfEmpty() select new mutationappViewModel() { approval_employee_name = a.employee_name, approval_level_name = b.job_level_name, approval_status_Name = c.request_status_name, approval_date = da.approval_date //approval_suggestion_id = da.approval_suggestion_id, //approval_suggestion_name = d_temp.FirstOrDefault().disposal_type_name }).ToList <mutationappViewModel>(); return(mutationmodel); }
public ActionResult request([Bind(Include = "asset_id, asset_number, asset_name, current_location_id, location_name, current_department_id, department_name, current_employee_id, employee_name, transfer_to_location_id, transfer_to_dept_id, transfer_to_emp_id, asset_original_value")] AssetMutationViewModel mutation_req) { //Cek apakah disposal sudah di proses sebelumnya (kecuali reject) var _MutationExist = (from dr in db.tr_mutation_request where (dr.fl_active == true && dr.deleted_date == null) && dr.asset_id == mutation_req.asset_id select dr).ToList <tr_mutation_request>(); if (_MutationExist.Count > 0) { ModelState.AddModelError("asset_number", "Asset Already Exists in Disposal Request Data."); } //input data request disposal with transaction if (ModelState.IsValid) { using (var transaction = db.Database.BeginTransaction()) { try { //Save Request Disposal tr_mutation_request mutation_request = new tr_mutation_request(); mutation_request.request_code = MutationNumberNew(mutation_req.asset_id); mutation_request.asset_id = mutation_req.asset_id; mutation_request.request_date = DateTime.Now; //mutation_request.request_location_id = UserProfile.location_id; //mutation_request.request_dept_id = UserProfile.department_id; //mutation_request.request_emp_id = UserProfile.employee_id; mutation_request.request_location_id = mutation_req.current_location_id; mutation_request.request_dept_id = mutation_req.current_department_id; mutation_request.request_emp_id = mutation_req.current_employee_id; mutation_request.request_status = 1; mutation_request.transfer_to_location_id = mutation_req.transfer_to_location_id; mutation_request.transfer_to_dept_id = mutation_req.transfer_to_dept_id; mutation_request.transfer_to_emp_id = mutation_req.transfer_to_emp_id; mutation_request.fl_active = true; mutation_request.created_date = DateTime.Now; mutation_request.created_by = UserProfile.UserId; mutation_request.updated_date = DateTime.Now; mutation_request.updated_by = UserProfile.UserId; mutation_request.deleted_date = null; mutation_request.deleted_by = null; mutation_request.org_id = UserProfile.OrgId; mutation_request = db.tr_mutation_request.Add(mutation_request); db.SaveChanges(); var x = UserProfile.OrgId; //Save Approval List Mutation Untuk Dept Head //Hendy 22 Feb 2020 var _qry = (from sa in db.sy_ref_approval_level where sa.asset_reg_location_id == mutation_req.current_location_id && sa.job_level_id == 2 join a in db.ms_job_level on sa.job_level_id equals a.job_level_id where (a.fl_active == true && a.deleted_date == null) join b in db.ms_employee_detail on a.job_level_id equals b.job_level_id where (b.fl_active == true && b.deleted_date == null //&& b.department_id == UserProfile.department_id && b.org_id == UserProfile.OrgId) && b.department_id == mutation_req.current_department_id && b.company_id == UserProfile.company_id) join c in db.ms_employee on b.employee_id equals c.employee_id orderby sa.order_no ascending select new AssetMutationViewModel() { //request_location_id = b.loca request_dept_id = b.department_id, request_emp_id = b.employee_id, request_level_id = a.job_level_id, current_employee_id = c.employee_id, employee_email = c.employee_email, employee_name = c.employee_name, ip_address = c.ip_address }).ToList <AssetMutationViewModel>(); if (_qry != null) { foreach (AssetMutationViewModel refApproval in _qry) { tr_mutation_approval mutation_approval = new tr_mutation_approval(); mutation_approval.request_id = mutation_request.request_id; mutation_approval.approval_date = null; mutation_approval.approval_location_id = /*refApproval.request_location_id*/ 0; mutation_approval.approval_dept_id = refApproval.request_dept_id; mutation_approval.approval_employee_id = refApproval.request_emp_id; mutation_approval.approval_level_id = refApproval.request_level_id; mutation_approval.approval_status_id = 1;//waiting approval mutation_approval.approval_noted = ""; mutation_approval.fl_active = true; mutation_approval.created_date = DateTime.Now; mutation_approval.created_by = UserProfile.UserId; mutation_approval.updated_date = DateTime.Now; mutation_approval.updated_by = UserProfile.UserId; mutation_approval.deleted_date = null; mutation_approval.deteled_by = null; mutation_approval.org_id = UserProfile.OrgId; mutation_approval = db.tr_mutation_approval.Add(mutation_approval); db.SaveChanges(); } } //Check KTT //check range approval decimal ktt_asset_value = Convert.ToDecimal(mutation_req.asset_original_value); bool isKTTApproval = false; ms_approval_range range_ktt = db.ms_approval_range.Where(r => r.range_code == "M_lv2").FirstOrDefault(); if (range_ktt != null) { isKTTApproval = (range_ktt.range_min <= ktt_asset_value); } if (isKTTApproval) { var x_ktt = UserProfile.OrgId; //Save Approval List Mutation Untuk Dept Head //Hendy 22 Feb 2020 var _qry_ktt = (from sa in db.sy_ref_approval_level where sa.asset_reg_location_id == mutation_req.current_location_id && sa.job_level_id == 3 join a in db.ms_job_level on sa.job_level_id equals a.job_level_id where (a.fl_active == true && a.deleted_date == null) join b in db.ms_employee_detail on a.job_level_id equals b.job_level_id where (b.fl_active == true && b.deleted_date == null) && b.company_id == UserProfile.company_id join c in db.ms_employee on b.employee_id equals c.employee_id where c.employee_id == UserProfile.employee_id orderby sa.order_no ascending select new AssetMutationViewModel() { //request_location_id = b.loca request_dept_id = b.department_id, request_emp_id = b.employee_id, request_level_id = a.job_level_id, current_employee_id = c.employee_id, employee_email = c.employee_email, employee_name = c.employee_name, ip_address = c.ip_address }).ToList <AssetMutationViewModel>(); if (_qry_ktt != null) { foreach (AssetMutationViewModel refApproval in _qry_ktt) { tr_mutation_approval mutation_approval = new tr_mutation_approval(); mutation_approval.request_id = mutation_request.request_id; mutation_approval.approval_date = null; mutation_approval.approval_location_id = /*refApproval.request_location_id*/ 0; mutation_approval.approval_dept_id = refApproval.request_dept_id; mutation_approval.approval_employee_id = refApproval.request_emp_id; mutation_approval.approval_level_id = refApproval.request_level_id; mutation_approval.approval_status_id = 1;//waiting approval mutation_approval.approval_noted = ""; mutation_approval.fl_active = true; mutation_approval.created_date = DateTime.Now; mutation_approval.created_by = UserProfile.UserId; mutation_approval.updated_date = DateTime.Now; mutation_approval.updated_by = UserProfile.UserId; mutation_approval.deleted_date = null; mutation_approval.deteled_by = null; mutation_approval.org_id = UserProfile.OrgId; mutation_approval = db.tr_mutation_approval.Add(mutation_approval); db.SaveChanges(); } } } decimal asset_value = Convert.ToDecimal(mutation_req.asset_original_value); bool isBODApproval = false; ms_approval_range range = db.ms_approval_range.Where(r => r.range_code == "M_BOD").FirstOrDefault(); if (range != null) { isBODApproval = (range.range_min <= asset_value); } if (isBODApproval) { //Approval BOD berdasarkan data ms_department >> employee_bod_id ms_department dept = db.ms_department.Find(UserProfile.department_id); if (dept != null) { tr_mutation_approval mutation_approval = new tr_mutation_approval(); mutation_approval.request_id = mutation_request.request_id; mutation_approval.approval_date = null; mutation_approval.approval_location_id = /*refApproval.request_location_id*/ 0; mutation_approval.approval_dept_id = dept.department_id; mutation_approval.approval_employee_id = dept.employee_bod_id; mutation_approval.approval_level_id = 9; mutation_approval.approval_status_id = 1;//waiting approval mutation_approval.approval_noted = ""; mutation_approval.fl_active = true; mutation_approval.created_date = DateTime.Now; mutation_approval.created_by = UserProfile.UserId; mutation_approval.updated_date = DateTime.Now; mutation_approval.updated_by = UserProfile.UserId; mutation_approval.deleted_date = null; mutation_approval.deteled_by = null; mutation_approval.org_id = UserProfile.company_id; mutation_approval = db.tr_mutation_approval.Add(mutation_approval); db.SaveChanges(); } } #region "kirim email ke approval level 1" sy_email_log sy_email_log = new sy_email_log(); sy_email_log.elog_to = _qry.FirstOrDefault().employee_email; sy_email_log.elog_subject = string.Format("Asset Mutation Need Approval"); sy_email_log.elog_template = "EMAIL_TEMPLATE_02"; #region "body mail" var _bodymail = app_setting.APPLICATION_SETTING.Where(c => c.app_key.Contains("EMAIL_TEMPLATE_02")); string strBodyMail = _bodymail.FirstOrDefault().app_value; strBodyMail = strBodyMail.Replace("[to]", _qry.FirstOrDefault().employee_name); strBodyMail = strBodyMail.Replace("[assetnumber]", mutation_req.asset_number); strBodyMail = strBodyMail.Replace("[assetname]", mutation_req.asset_name); strBodyMail = strBodyMail.Replace("[assetlocation]", mutation_req.location_name); strBodyMail = strBodyMail.Replace("[department]", mutation_req.department_name); strBodyMail = strBodyMail.Replace("[employee]", mutation_req.employee_name); //strBodyMail = strBodyMail.Replace("[link]", ""); sy_email_log.elog_body = strBodyMail; #endregion var EmailHelper = new EmailHelper() { ToAddress = sy_email_log.elog_to, Email_Template = sy_email_log.elog_template, MailSubject = sy_email_log.elog_subject, MailBody = sy_email_log.elog_body }; EmailHelper.Send(); #endregion #region "Save Sy_Message_notification ke approval" int empid = Convert.ToInt32(_qry.FirstOrDefault().current_employee_id); ms_user msuser = (from m in db.ms_user where m.employee_id == empid select m).FirstOrDefault(); sy_message_notification msg = new sy_message_notification(); msg.notif_group = "BALOON_RECEIPT_03"; msg.notify_user = msuser.user_name; msg.notify_ip = _qry.FirstOrDefault().ip_address; msg.notify_message = "Ada permintaan approval untuk asset mutasi."; msg.fl_active = true; msg.created_date = DateTime.Now; msg.created_by = UserProfile.UserId; msg.fl_shown = 0; db.sy_message_notification.Add(msg); db.SaveChanges(); #endregion transaction.Commit(); ViewBag.ResultMessage = "Record inserted into table successfully."; return(RedirectToAction("Index")); } catch (Exception ex) { // roll back all database operations, if any thing goes wrong transaction.Rollback(); string msgErr = string.Format("Error occured, records rolledback. {0}", ex.Message); if (ex.InnerException != null) { msgErr += string.Format(" Inner Exception: {0}", ex.InnerException.Message); } ModelState.AddModelError("", msgErr); } } } #region "for dropdown Employee" //var _employeelist = from s in db.ms_disposal_type // select s; var _employeelist = db.ms_employee.Where(t => t.deleted_date == null && t.fl_active == true).Select( t => new { t.employee_id, t.employee_nik, t.employee_name }).ToList(); SelectList itemsType = new SelectList(_employeelist, "employee_id", "employee_name"); ViewBag.transfer_to_emp_id = itemsType; #endregion #region "for dropdown Department" var _departmentlist = db.ms_department.Where(t => t.deleted_date == null && t.fl_active == true).Select( t => new { t.department_id, t.department_code, t.department_name }).ToList(); SelectList itemsType2 = new SelectList(_departmentlist, "department_id", "department_name"); ViewBag.transfer_to_dept_id = itemsType2; #endregion #region "for dropdown Location" var _locationlist = db.ms_asset_location.Where(t => t.deleted_date == null && t.fl_active == true).Select( t => new { t.location_id, t.location_code, t.location_name }).ToList(); SelectList itemsType3 = new SelectList(_locationlist, "location_id", "location_name"); ViewBag.transfer_to_location_id = itemsType3; #endregion return(View(mutation_req)); }