// GET: asset_license/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } tr_asset_registration ass_reg = db.tr_asset_registration.Find(id); if (ass_reg == null) { return(HttpNotFound("Assset not found.")); } asset_licenseViewModel asset_model = new asset_licenseViewModel() { FormMode = EnumFormModeKey.Form_Edit, asset_parent_id = (int)ass_reg.asset_id, asset_parent = ass_reg }; ms_vendor msvendor = db.ms_vendor.Find(ass_reg.vendor_id); asset_model.vendor_name = msvendor.vendor_name; //Data view asset_model.asset_license_list = (from aw in db.tr_asset_license where (aw.fl_active == true && aw.deleted_date == null && aw.asset_id == id) select aw).ToList <tr_asset_license>(); return(View(asset_model)); }
private string MutationNumberNew(int?asset_id) { tr_asset_registration tr_asset = db.tr_asset_registration.Find(asset_id); ms_asmin_company company = db.ms_asmin_company.Find(tr_asset.company_id); ms_department department = db.ms_department.Find(tr_asset.department_id); ms_asset_category category = db.ms_asset_category.Find(tr_asset.category_id); string code = string.Empty; code += "M"; code += company.company_code; code += department.department_code; code += category.category_code; code += DateTime.Today.Year; code += DateTime.Today.Month.ToString().PadLeft(2, '0'); var _lastno = (from dr in db.tr_disposal_request where dr.disposal_number.Contains(code) orderby dr.request_id descending select dr).ToList <tr_disposal_request>(); if (_lastno.Count > 0) { tr_disposal_request lastno = _lastno.FirstOrDefault(); string currentno = (Convert.ToInt32(lastno.disposal_number.Substring((lastno.disposal_number.Length - 2), 2)) + 1).ToString(); code += currentno.PadLeft(2, '0'); } else { code += "01"; } code += "-"; code += tr_asset.asset_number.Substring((tr_asset.asset_number.Length - 2), 2); return(code); }
public ActionResult DeleteConfirmed(int id) { tr_asset_registration tr_asset_registration = db.tr_asset_registration.Find(id); db.tr_asset_registration.Remove(tr_asset_registration); db.SaveChanges(); return(RedirectToAction("Index")); }
// GET: asset_insurance/Edit/5 public ActionResult Edit(int? id, int? idw) { if (id == null || idw == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } tr_asset_registration ass_reg = db.tr_asset_registration.Find(id); if (ass_reg == null) { return HttpNotFound("Assset not found."); } asset_insuranceViewModel asset_model = new asset_insuranceViewModel() { FormMode = EnumFormModeKey.Form_Edit, asset_parent_id = (int)ass_reg.asset_id, asset_parent = ass_reg, insurance_list = db.ms_insurance.Where(r => r.fl_active == true && r.deleted_date == null).ToList() }; ms_vendor msvendor = db.ms_vendor.Find(ass_reg.vendor_id); asset_model.vendor_name = msvendor.vendor_name; tr_asset_insurance ass_insurance = db.tr_asset_insurance.Find(idw); if (ass_insurance != null) { asset_model.insurance_activa_id = ass_insurance.insurance_activa_id; asset_model.insurance_activa_number = ass_insurance.insurance_activa_number; asset_model.insurance_activa_name = ass_insurance.insurance_activa_name; asset_model.insurance_activa_date = ass_insurance.insurance_activa_date; asset_model.insurance_activa_exp_date = ass_insurance.insurance_activa_exp_date; asset_model.insurance_id = ass_insurance.insurance_id; asset_model.insurance_activa_description = ass_insurance.insurance_activa_description; } //Data view edit asset_model.detail_insurance_list = (from aw in db.tr_asset_insurance where (aw.fl_active == true && aw.deleted_date == null && aw.asset_id == id) join a in db.ms_insurance on aw.insurance_id equals a.insurance_id where (a.fl_active == true && a.deleted_date == null) select new asset_insurancedetailViewModel() { insurance_activa_id = aw.insurance_activa_id, insurance_activa_number = aw.insurance_activa_number, insurance_activa_name = aw.insurance_activa_name, insurance_activa_date = aw.insurance_activa_date, insurance_activa_exp_date = aw.insurance_activa_exp_date, insurance_id = a.insurance_id, insurance_name = a.insurance_name, insurance_activa_description = aw.insurance_activa_description }).ToList<asset_insurancedetailViewModel>(); return View(asset_model); }
public ActionResult Edit([Bind(Include = "asset_id,asset_type_id,asset_number,company_id,asset_reg_location_id,asset_reg_pic_id,category_id,asset_po_number,asset_do_number,asset_name,asset_merk,asset_serial_number,vendor_id,asset_receipt_date,location_id,department_id,asset_description,fl_active,created_date,created_by,updated_date,updated_by,deleted_date,deleted_by,org_id")] tr_asset_registration tr_asset_registration) { if (ModelState.IsValid) { db.Entry(tr_asset_registration).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(tr_asset_registration)); }
public ActionResult Edit([Bind(Include = "warranty_id, asset_parent_id, warranty_number, warranty_item_name, warranty_date, warranty_exp_date, warranty_description")] asset_warrantyViewModel asset_wrt) { if (asset_wrt.warranty_date > DateTime.Today) { ModelState.AddModelError("warranty_date", "Please enter a valid date."); } if (asset_wrt.warranty_date > asset_wrt.warranty_exp_date) { ModelState.AddModelError("warranty_exp_date", "Warranty expired date must be after warranty date."); } if (ModelState.IsValid && asset_wrt.warranty_id > 0) { tr_asset_warranty ass_warranty = db.tr_asset_warranty.Find(asset_wrt.warranty_id); ass_warranty.warranty_number = asset_wrt.warranty_number; ass_warranty.warranty_item_name = asset_wrt.warranty_item_name; ass_warranty.warranty_date = asset_wrt.warranty_date; ass_warranty.warranty_exp_date = asset_wrt.warranty_exp_date; ass_warranty.warranty_description = asset_wrt.warranty_description; ass_warranty.fl_active = true; ass_warranty.updated_date = DateTime.Now; ass_warranty.updated_by = UserProfile.UserId; ass_warranty.deleted_date = null; ass_warranty.deleted_by = null; ass_warranty.org_id = UserProfile.OrgId; db.Entry(ass_warranty).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } tr_asset_registration ass_reg = db.tr_asset_registration.Find(asset_wrt.asset_parent_id); asset_wrt.FormMode = EnumFormModeKey.Form_Edit; asset_wrt.asset_parent_id = (int)ass_reg.asset_id; asset_wrt.asset_parent = ass_reg; ms_vendor msvendor = db.ms_vendor.Find(ass_reg.vendor_id); asset_wrt.vendor_name = msvendor.vendor_name; //Data view edit asset_wrt.asset_warranty_list = (from aw in db.tr_asset_warranty where (aw.fl_active == true && aw.deleted_date == null && aw.asset_id == asset_wrt.asset_parent_id) select aw).ToList <tr_asset_warranty>(); return(View(asset_wrt)); }
// GET: asset_registration/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } tr_asset_registration tr_asset_registration = db.tr_asset_registration.Find(id); if (tr_asset_registration == null) { return(HttpNotFound()); } return(View(tr_asset_registration)); }
public ActionResult Edit([Bind(Include = "license_id, asset_parent_id, license_number, license_name, license_issued_by, license_date, license_exp_date, license_description")] asset_licenseViewModel asset_lcs) { if (asset_lcs.license_date > DateTime.Today) { ModelState.AddModelError("license_date", "Please enter a valid date."); } if (asset_lcs.license_date > asset_lcs.license_exp_date) { ModelState.AddModelError("license_exp_date", "license expired date must be after license date."); } if (ModelState.IsValid && asset_lcs.license_id > 0) { tr_asset_license ass_license = db.tr_asset_license.Find(asset_lcs.license_id); ass_license.license_number = asset_lcs.license_number; ass_license.license_name = asset_lcs.license_name; ass_license.license_issued_by = asset_lcs.license_issued_by; ass_license.license_date = asset_lcs.license_date; ass_license.license_exp_date = asset_lcs.license_exp_date; ass_license.license_description = asset_lcs.license_description; ass_license.fl_active = true; ass_license.updated_date = DateTime.Now; ass_license.updated_by = UserProfile.UserId; ass_license.deleted_date = null; ass_license.deleted_by = null; ass_license.org_id = UserProfile.OrgId; db.Entry(ass_license).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } tr_asset_registration ass_reg = db.tr_asset_registration.Find(asset_lcs.asset_parent_id); asset_lcs.FormMode = EnumFormModeKey.Form_Edit; asset_lcs.asset_parent_id = (int)ass_reg.asset_id; asset_lcs.asset_parent = ass_reg; //Data view edit asset_lcs.asset_license_list = (from aw in db.tr_asset_license where (aw.fl_active == true && aw.deleted_date == null && aw.asset_id == asset_lcs.asset_parent_id) select aw).ToList <tr_asset_license>(); return(View(asset_lcs)); }
// GET: asset_license/Edit/5 public ActionResult Edit(int?id, int?idw) { if (id == null || idw == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } tr_asset_registration ass_reg = db.tr_asset_registration.Find(id); if (ass_reg == null) { return(HttpNotFound("Assset not found.")); } asset_licenseViewModel asset_model = new asset_licenseViewModel() { FormMode = EnumFormModeKey.Form_Edit, asset_parent_id = (int)ass_reg.asset_id, asset_parent = ass_reg }; ms_vendor msvendor = db.ms_vendor.Find(ass_reg.vendor_id); asset_model.vendor_name = msvendor.vendor_name; tr_asset_license ass_license = db.tr_asset_license.Find(idw); if (ass_license != null) { asset_model.license_id = ass_license.license_id; asset_model.license_number = ass_license.license_number; asset_model.license_name = ass_license.license_name; asset_model.license_issued_by = ass_license.license_issued_by; asset_model.license_date = ass_license.license_date; asset_model.license_exp_date = ass_license.license_exp_date; asset_model.license_description = ass_license.license_description; } //Data view edit asset_model.asset_license_list = (from aw in db.tr_asset_license where (aw.fl_active == true && aw.deleted_date == null && aw.asset_id == id) select aw).ToList <tr_asset_license>(); return(View(asset_model)); }
//[ValidateAntiForgeryToken] public JsonResult DeleteConfirmed(int id) { tr_asset_registration tr_asset_registration = db.tr_asset_registration.Find(id); if (tr_asset_registration != null) { tr_asset_registration.fl_active = false; tr_asset_registration.deleted_by = UserProfile.OrgId; tr_asset_registration.deleted_date = DateTime.Now; db.Entry(tr_asset_registration).State = EntityState.Modified; db.SaveChanges(); return(Json(1, JsonRequestBehavior.AllowGet)); } else { return(Json(0, JsonRequestBehavior.AllowGet)); } //return RedirectToAction("Index"); //db.tr_asset_registration.Remove(tr_asset_registration); //db.SaveChanges(); //return RedirectToAction("Index"); }
public ActionResult Edit([Bind(Include = "asset_parent_id,asset_number,company_id,asset_reg_location_id,asset_reg_pic_id,category_id,asset_po_number,asset_do_number,asset_name,asset_merk,asset_serial_number,vendor_id,asset_receipt_date,location_id,department_id,employee_id,asset_description,asset_file_attach")] subasset_registrationViewModel asset_reg) { int asset_id = Convert.ToInt32(Request.Form["asset_id"]); if (ModelState.IsValid && asset_id > 0) { using (DbContextTransaction dbTran = db.Database.BeginTransaction()) { try { #region SUBASSET tr_asset_registration ass_reg = db.tr_asset_registration.Find(asset_id); ass_reg.asset_type_id = (int)Enum_asset_type_Key.AssetChild; //child ass_reg.asset_parent_id = asset_reg.asset_parent_id; ass_reg.company_id = asset_reg.company_id; asset_reg.company = db.ms_asmin_company.Find(asset_reg.company_id); ass_reg.asset_reg_location_id = asset_reg.asset_reg_location_id; asset_reg.asset_reg_location = db.ms_asset_register_location.Find(asset_reg.asset_reg_location_id); ass_reg.asset_reg_pic_id = asset_reg.asset_reg_pic_id; asset_reg.asset_reg_pic = db.ms_asset_register_pic.Find(asset_reg.asset_reg_pic_id); ass_reg.category_id = asset_reg.category_id; asset_reg.asset_category = db.ms_asset_category.Find(asset_reg.category_id); asset_reg.department = db.ms_department.Find(asset_reg.department_id); if (string.IsNullOrWhiteSpace(ass_reg.asset_number)) //incase nomor belum ada --> koreksi nomornya { /*no aktifa seq*/ int _last_no = db.tr_asset_registration.Where(r => r.asset_parent_id == asset_reg.asset_parent_id).Count(); _last_no++; string no_activa = _last_no.ToString().PadLeft(2, '0'); string[] complex_no = ass_reg.tr_asset_registration2.asset_number.Split(new char[3] { '.', '-', '/' }); ass_reg.asset_number = complex_no[0] + "-" + no_activa; } else { ass_reg.asset_number = asset_reg.asset_number; } ass_reg.asset_po_number = asset_reg.asset_po_number; ass_reg.asset_do_number = asset_reg.asset_do_number; ass_reg.asset_name = asset_reg.asset_name; ass_reg.asset_merk = asset_reg.asset_merk; ass_reg.asset_serial_number = asset_reg.asset_serial_number; ass_reg.vendor_id = asset_reg.vendor_id; ass_reg.asset_description = asset_reg.asset_description; ass_reg.asset_receipt_date = asset_reg.asset_receipt_date; ass_reg.location_id = asset_reg.location_id; ass_reg.department_id = asset_reg.department_id; ass_reg.employee_id = asset_reg.employee_id; ass_reg.fl_active = true; ass_reg.updated_date = DateTime.Now; ass_reg.updated_by = UserProfile.UserId; ass_reg.deleted_date = null; ass_reg.deleted_by = null; ass_reg.org_id = UserProfile.OrgId; db.Entry(ass_reg).State = EntityState.Modified; db.SaveChanges(); #endregion #region FILE SUPBASSET if (Request.Files.Count > 0) { //var file = Request.Files[0]; app_root_path = Server.MapPath("~/"); if (string.IsNullOrWhiteSpace(base_image_path)) { base_image_path = subasset_registrationViewModel.path_file_asset; } string img_path = Server.MapPath(base_image_path); if (!Directory.Exists(img_path)) { Directory.CreateDirectory(img_path); } var file = Request.Files["asset_img_file"]; if (file != null && file.ContentLength > 0) { string fileName = ""; string path = ""; //check existing and delete dari db dan folder tr_asset_image img_db = db.tr_asset_image.SingleOrDefault(c => c.asset_id == asset_id); if (img_db != null) { fileName = img_db.asset_img_address; base_image_path = subasset_registrationViewModel.path_file_asset; img_path = Server.MapPath(base_image_path); path = Path.Combine(img_path, fileName); if (System.IO.File.Exists(path)) { System.IO.File.Delete(path); } db.tr_asset_image.Remove(img_db); db.SaveChanges(); } //insert new fileName = "asset" + ass_reg.asset_id.ToString() + "_" + Path.GetFileName(file.FileName); path = Path.Combine(img_path, fileName); file.SaveAs(path); tr_asset_image _ass_img = new tr_asset_image() { asset_id = ass_reg.asset_id, asset_img_address = fileName, asset_qrcode = GenerateQRCode(asset_reg.asset_number) }; db.tr_asset_image.Add(_ass_img); db.SaveChanges(); } } #endregion dbTran.Commit(); } catch (Exception _exc) { dbTran.Rollback(); throw new Exception("Fail to save update sub-asset." + _exc.Message); } } return(RedirectToAction("Index")); } #region complete the VM if (asset_reg.asset_parent_list == null) { asset_reg.asset_parent_list = db.tr_asset_registration.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); } if (asset_reg.company_list == null) { asset_reg.company_list = db.ms_asmin_company.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); } if (asset_reg.asset_reg_location_list == null) { asset_reg.asset_reg_location_list = db.ms_asset_register_location.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); } if (asset_reg.asset_reg_pic_list == null) { asset_reg.asset_reg_pic_list = db.ms_asset_register_pic.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); } if (asset_reg.asset_category_list == null) { asset_reg.asset_category_list = db.ms_asset_category.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); } if (asset_reg.vendor_list == null) { asset_reg.vendor_list = db.ms_vendor.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); } if (asset_reg.asset_location_list == null) { asset_reg.asset_location_list = db.ms_asset_location.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); } if (asset_reg.department_list == null) { asset_reg.department_list = db.ms_department.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); } if (asset_reg.employee_list == null) { asset_reg.employee_list = db.ms_employee.AsEnumerable().Where(r => r.fl_active == true && r.deleted_date == null).Select(e => new ms_employee { employee_id = e.employee_id, employee_name = "[" + e.employee_nik + "] - " + e.employee_name, employee_email = e.employee_email }).ToList(); } #endregion return(View(asset_reg)); }
// GET: asset_registration/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } tr_asset_registration ass_reg = db.tr_asset_registration.Find(id); if (ass_reg == null) { return(HttpNotFound("Assset not found.")); } subasset_registrationViewModel asset_model = new subasset_registrationViewModel() { FormMode = EnumFormModeKey.Form_Edit, asset_type_id = (int)Enum_asset_type_Key.AssetChild, asset_parent = ass_reg.tr_asset_registration2, asset_parent_id = (int)ass_reg.asset_parent_id, company_list = db.ms_asmin_company.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), asset_reg_location_list = db.ms_asset_register_location.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), asset_reg_pic_list = db.ms_asset_register_pic.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), asset_category_list = db.ms_asset_category.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), vendor_list = db.ms_vendor.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), asset_location_list = db.ms_asset_location.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), department_list = db.ms_department.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), employee_list = db.ms_employee.AsEnumerable().Where(r => r.fl_active == true && r.deleted_date == null).Select(e => new ms_employee { employee_id = e.employee_id, employee_name = "[" + e.employee_nik + "] - " + e.employee_name, employee_email = e.employee_email }).ToList(), asset_id = ass_reg.asset_id, asset_number = ass_reg.asset_number, company_id = ass_reg.company_id, asset_reg_location_id = ass_reg.asset_reg_location_id, asset_reg_pic_id = ass_reg.asset_reg_pic_id, category_id = ass_reg.category_id, asset_serial_number = ass_reg.asset_serial_number, asset_po_number = ass_reg.asset_po_number, asset_do_number = ass_reg.asset_do_number, asset_name = ass_reg.asset_name, asset_merk = ass_reg.asset_merk, vendor_id = ass_reg.vendor_id, asset_receipt_date = ass_reg.asset_receipt_date, location_id = ass_reg.location_id, department_id = ass_reg.department_id, employee_id = ass_reg.employee_id, asset_description = ass_reg.asset_description, tr_asset_images = db.tr_asset_image.SingleOrDefault(r => r.asset_id == ass_reg.asset_id) }; bool _hasImage = false; string base_image_path = subasset_registrationViewModel.path_file_asset; string img_path = Server.MapPath(base_image_path); if (!Directory.Exists(img_path)) { Directory.CreateDirectory(img_path); } if (asset_model.tr_asset_images != null) { var fileName = asset_model.tr_asset_images.asset_img_address; string path = Path.Combine(img_path, fileName); _hasImage = System.IO.File.Exists(path); } asset_model.hasImage = _hasImage; return(View(asset_model)); }
public ActionResult Create([Bind(Include = "asset_parent_id,asset_number,company_id,asset_reg_location_id,asset_reg_pic_id,category_id,asset_po_number,asset_do_number,asset_name,asset_merk,asset_serial_number,vendor_id,asset_receipt_date,location_id,department_id,employee_id,asset_description,asset_file_attach")] subasset_registrationViewModel asset_reg) { if (ModelState.IsValid) { using (DbContextTransaction dbTran = db.Database.BeginTransaction()) { try { #region SUBASSET tr_asset_registration asset_parent = db.tr_asset_registration.Find(asset_reg.asset_parent_id); int _last_no = db.tr_asset_registration.Where(a => a.asset_parent_id == asset_reg.asset_parent_id).Count(); /*no aktifa seq*/ _last_no++; string no_activa = _last_no.ToString().PadLeft(2, '0'); string[] complex_no = asset_parent.asset_number.Split(new char[3] { '.', '-', '/' }); asset_reg.asset_number = complex_no[0] + "-" + no_activa; tr_asset_registration ass_reg = new tr_asset_registration(); ass_reg.asset_type_id = (int)Enum_asset_type_Key.AssetChild; //child ass_reg.asset_parent_id = asset_reg.asset_parent_id; ass_reg.tr_asset_registration2 = asset_parent; ass_reg.asset_number = asset_reg.asset_number; ass_reg.company_id = asset_reg.company_id; ass_reg.asset_reg_location_id = asset_reg.asset_reg_location_id; ass_reg.asset_reg_pic_id = asset_reg.asset_reg_pic_id; ass_reg.category_id = asset_reg.category_id; ass_reg.asset_po_number = asset_reg.asset_po_number; ass_reg.asset_do_number = asset_reg.asset_do_number; ass_reg.asset_name = asset_reg.asset_name; ass_reg.asset_merk = asset_reg.asset_merk; ass_reg.asset_serial_number = asset_reg.asset_serial_number; ass_reg.vendor_id = asset_reg.vendor_id; ass_reg.asset_receipt_date = asset_reg.asset_receipt_date; ass_reg.location_id = asset_reg.location_id; ass_reg.current_location_id = asset_reg.location_id; ass_reg.department_id = asset_reg.department_id; ass_reg.current_department_id = asset_reg.department_id; ass_reg.asset_description = asset_reg.asset_description; ass_reg.employee_id = asset_reg.employee_id; ass_reg.current_employee_id = asset_reg.employee_id; ass_reg.fl_active = true; ass_reg.created_date = DateTime.Now; ass_reg.created_by = UserProfile.UserId; ass_reg.updated_date = DateTime.Now; ass_reg.updated_by = UserProfile.UserId; ass_reg.deleted_date = null; ass_reg.deleted_by = null; ass_reg.org_id = UserProfile.OrgId; ass_reg = db.tr_asset_registration.Add(ass_reg); db.SaveChanges(); #endregion #region FILEASSET //ass_reg.asset_file_attach = asset_reg.asset_file_attach; if (Request.Files.Count > 0) { //var file = Request.Files[0]; app_root_path = Server.MapPath("~/"); if (string.IsNullOrWhiteSpace(base_image_path)) { base_image_path = subasset_registrationViewModel.path_file_asset; } string img_path = Server.MapPath(base_image_path); if (!Directory.Exists(img_path)) { Directory.CreateDirectory(img_path); } var file = Request.Files["asset_img_file"]; if (file != null && file.ContentLength > 0) { var fileName = "asset" + ass_reg.asset_id.ToString() + "_" + Path.GetFileName(file.FileName); var path = Path.Combine(img_path, fileName); file.SaveAs(path); tr_asset_image _ass_img = new tr_asset_image() { asset_id = ass_reg.asset_id, asset_img_address = fileName, asset_qrcode = GenerateQRCode(asset_reg.asset_number) }; db.tr_asset_image.Add(_ass_img); db.SaveChanges(); } } #endregion dbTran.Commit(); } catch (Exception _exc) { dbTran.Rollback(); throw new Exception("Fail to save create new sub-asset." + _exc.Message); } } #region "Send Email Notif to accounting department" try { ms_disposal_type Dept3 = db.ms_disposal_type.Find(3); int acct_id = Convert.ToInt32(Dept3.disposal_by_dept_id); var _qry = (from dept in db.ms_department.Where(dept => dept.department_id == acct_id) select dept).ToList().FirstOrDefault(); if (_qry == null) { throw new Exception("Department not found"); } sy_email_log sy_email_log = new sy_email_log(); sy_email_log.elog_to = _qry.department_email; sy_email_log.elog_subject = string.Format("Sub Asset Registration"); sy_email_log.elog_template = "EMAIL_TEMPLATE_90"; var _bodymail = app_setting.APPLICATION_SETTING.Where(c => c.app_key.Contains("EMAIL_TEMPLATE_90")).FirstOrDefault(); if (_bodymail == null) { throw new Exception("Email Template 01 not found"); } string strBodyMail = _bodymail.app_value; strBodyMail = strBodyMail.Replace("[to]", _qry.department_name + " Department"); strBodyMail = strBodyMail.Replace("[action]", "Dispose"); strBodyMail = strBodyMail.Replace("[assetnumber]", asset_reg.asset_number); strBodyMail = strBodyMail.Replace("[assetname]", asset_reg.asset_name); ms_asset_location loc = db.ms_asset_location.Find(asset_reg.location_id); if (loc == null) { throw new Exception("Sub Asset Location not found"); } strBodyMail = strBodyMail.Replace("[assetlocation]", loc.location_name); ms_department deptment = db.ms_department.Find(asset_reg.department_id); if (deptment == null) { throw new Exception("Department not found"); } strBodyMail = strBodyMail.Replace("[department]", deptment.department_name); sy_email_log.elog_body = strBodyMail; 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(); } catch { } #endregion return(RedirectToAction("Index")); } #region complete the VM if (asset_reg.asset_parent_list == null) { asset_reg.asset_parent_list = db.tr_asset_registration.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); } if (asset_reg.company_list == null) { asset_reg.company_list = db.ms_asmin_company.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); } if (asset_reg.asset_reg_location_list == null) { asset_reg.asset_reg_location_list = db.ms_asset_register_location.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); } if (asset_reg.asset_reg_pic_list == null) { asset_reg.asset_reg_pic_list = db.ms_asset_register_pic.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); } if (asset_reg.asset_category_list == null) { asset_reg.asset_category_list = db.ms_asset_category.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); } if (asset_reg.vendor_list == null) { asset_reg.vendor_list = db.ms_vendor.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); } if (asset_reg.asset_location_list == null) { asset_reg.asset_location_list = db.ms_asset_location.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); } if (asset_reg.department_list == null) { asset_reg.department_list = db.ms_department.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); } if (asset_reg.employee_list == null) { asset_reg.employee_list = db.ms_employee.AsEnumerable().Where(r => r.fl_active == true && r.deleted_date == null).Select(e => new ms_employee { employee_id = e.employee_id, employee_name = "[" + e.employee_nik + "] - " + e.employee_name, employee_email = e.employee_email }).ToList(); } #endregion return(View(asset_reg)); }
// GET: asset_registration/Create/5 public ActionResult Create(int id = 0) { int parent_id = (int)id; subasset_registrationViewModel subasset = null; if (parent_id == 0) { subasset = new subasset_registrationViewModel() { FormMode = EnumFormModeKey.Form_New, hasImage = false, asset_id = 0, asset_type_id = (int)Enum_asset_type_Key.AssetChild, asset_parent_id = parent_id, asset_parent_list = db.tr_asset_registration.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), company_list = db.ms_asmin_company.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), asset_reg_location_list = db.ms_asset_register_location.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), asset_reg_pic_list = db.ms_asset_register_pic.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), asset_category_list = db.ms_asset_category.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), vendor_list = db.ms_vendor.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), asset_location_list = db.ms_asset_location.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), department_list = db.ms_department.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), employee_list = db.ms_employee.AsEnumerable().Where(r => r.fl_active == true && r.deleted_date == null).Select(e => new ms_employee { employee_id = e.employee_id, employee_name = "[" + e.employee_nik + "] - " + e.employee_name, employee_email = e.employee_email }).ToList(), asset_receipt_date = DateTime.Now }; } else { tr_asset_registration asset_parent_db = db.tr_asset_registration.Find(parent_id); if (asset_parent_db == null) { return(RedirectToAction("Create")); } subasset = new subasset_registrationViewModel() { FormMode = EnumFormModeKey.Form_New, hasImage = false, asset_id = 0, asset_type_id = (int)Enum_asset_type_Key.AssetChild, asset_parent = asset_parent_db, asset_parent_id = asset_parent_db.asset_id, asset_parent_list = db.tr_asset_registration.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), company_list = db.ms_asmin_company.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), company_id = asset_parent_db.company_id, company = asset_parent_db.ms_asmin_company, asset_reg_location_list = db.ms_asset_register_location.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), asset_reg_location_id = asset_parent_db.asset_reg_location_id, asset_reg_location = asset_parent_db.ms_asset_register_location, asset_reg_pic_list = db.ms_asset_register_pic.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), asset_reg_pic_id = asset_parent_db.asset_reg_pic_id, asset_reg_pic = asset_parent_db.ms_asset_register_pic, asset_category_list = db.ms_asset_category.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), asset_category = asset_parent_db.ms_asset_category, category_id = asset_parent_db.category_id, vendor_list = db.ms_vendor.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), vendor = asset_parent_db.ms_vendor, vendor_id = asset_parent_db.vendor_id, asset_location_list = db.ms_asset_location.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), asset_location = asset_parent_db.ms_asset_location, location_id = asset_parent_db.location_id, department_list = db.ms_department.Where(r => r.fl_active == true && r.deleted_date == null).ToList(), department_id = asset_parent_db.department_id, department = asset_parent_db.ms_department, employee_list = db.ms_employee.AsEnumerable().Where(r => r.fl_active == true && r.deleted_date == null).Select(e => new ms_employee { employee_id = e.employee_id, employee_name = "[" + e.employee_nik + "] - " + e.employee_name, employee_email = e.employee_email }).ToList(), employee_id = asset_parent_db.employee_id, employee = asset_parent_db.ms_employee, asset_receipt_date = DateTime.Now }; } return(View(subasset)); }
// GET: asset_registration/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } tr_asset_registration tr_asset_registration = db.tr_asset_registration.Find(id); if (tr_asset_registration == null) { return(HttpNotFound()); } var _qry = (from ar in db.tr_asset_registration where (ar.fl_active == true && ar.deleted_date == null && ar.asset_type_id == (int)Enum_asset_type_Key.AssetChild) && ar.asset_id == id join p in db.tr_asset_registration on ar.asset_parent_id equals p.asset_id where (p.fl_active == true && p.deleted_date == null) join a in db.ms_vendor on ar.vendor_id equals a.vendor_id where (a.fl_active == true && a.deleted_date == null) join b in db.ms_asset_register_location on ar.asset_reg_location_id equals b.asset_reg_location_id where (b.fl_active == true && b.deleted_date == null) join c in db.ms_asset_register_pic on ar.asset_reg_pic_id equals c.asset_reg_pic_id where (c.fl_active == true && c.deleted_date == null) join d in db.ms_asset_type on ar.asset_type_id equals d.activa_type_id where (d.fl_active == true && d.deleted_date == null) join e in db.ms_asset_category on ar.category_id equals e.category_id where (e.fl_active == true && e.deleted_date == null) join f in db.ms_asmin_company on ar.company_id equals f.company_id where (f.fl_active == true && f.deleted_date == null) join g in db.ms_department on ar.department_id equals g.department_id where (g.fl_active == true && g.deleted_date == null) join h in db.ms_employee on ar.employee_id equals h.employee_id where (h.fl_active == true && h.deleted_date == null) join i in db.ms_asset_location on ar.location_id equals i.location_id where (i.fl_active == true && i.deleted_date == null) join j in db.tr_asset_image on ar.asset_id equals j.asset_id select new subasset_registrationViewModel() { asset_parent = p, asset_parent_id = (int)ar.asset_parent_id, asset_id = ar.asset_id, asset_type_id = ar.asset_type_id, asset_type = d, asset_number = ar.asset_number, company_id = ar.company_id, company = f, asset_reg_location_id = ar.asset_reg_location_id, asset_reg_location = b, asset_reg_pic_id = ar.asset_reg_pic_id, asset_reg_pic = c, category_id = ar.category_id, asset_category = e, asset_po_number = ar.asset_po_number, asset_do_number = ar.asset_do_number, asset_name = ar.asset_name, asset_merk = ar.asset_merk, asset_serial_number = ar.asset_serial_number, vendor_id = ar.vendor_id, vendor = a, asset_receipt_date = ar.asset_receipt_date, location_id = ar.location_id, asset_location = i, tr_asset_images = j, department_id = ar.department_id, department = g, employee_id = ar.employee_id, employee = h, asset_description = ar.asset_description, }).First <subasset_registrationViewModel>(); string imreBase64Data = Convert.ToBase64String(_qry.tr_asset_images.asset_qrcode); string imgDataURL = string.Format("data:image/jpg;base64,{0}", imreBase64Data); //Passing image data in viewbag to view ViewBag.ImageData = imgDataURL; var tuple = new Tuple <subasset_registrationViewModel, string>(_qry, subasset_registrationViewModel.path_file_asset); return(View(tuple)); }
public ActionResult DisposalFollowup([Bind(Include = "announcement_id, request_id, announcement_upload_address, announcement_description, asset_number, asset_name, location_name, department_name, fl_SuggestionChanges, approval_suggestion_id")] disposalViewModel disposal_prs) { tr_disposal_announcement disposal_announcement = db.tr_disposal_announcement.Find(disposal_prs.announcement_id); if (disposal_prs.fl_SuggestionChanges == null || disposal_prs.fl_SuggestionChanges == false) { if (Request.Files.Count > 0) { var file = Request.Files["announcement_upload_address"]; if (file == null || file.ContentLength == 0) { ModelState.AddModelError("announcement_upload_address", "Berita Acara is Mandatory."); } } } else { if (disposal_prs.approval_suggestion_id == null || disposal_prs.approval_suggestion_id == 0) { ModelState.AddModelError("approval_suggestion_id", "Suggestion is Mandatory."); } } //update disposal request and approval data with transaction if (ModelState.IsValid) { using (var transaction = db.Database.BeginTransaction()) { try { if (disposal_prs.fl_SuggestionChanges == null || disposal_prs.fl_SuggestionChanges == false) { //Process Normal #region "Save update Disposal Announcement" if (Request.Files.Count > 0) { //var file = Request.Files[0]; app_root_path = Server.MapPath("~/"); if (string.IsNullOrWhiteSpace(base_file_path)) { base_file_path = asset_registrationViewModel.path_file_disposal; } string _file = Server.MapPath(base_file_path); if (!Directory.Exists(_file)) { Directory.CreateDirectory(_file); } var file = Request.Files["announcement_upload_address"]; if (file != null && file.ContentLength > 0) { var fileName = "dispose_precurement_" + disposal_prs.request_id.ToString() + "_" + Path.GetFileName(file.FileName); var path = Path.Combine(_file, fileName); file.SaveAs(path); disposal_announcement.announcement_upload_address = fileName; disposal_announcement.announcement_description = disposal_prs.announcement_description; disposal_announcement.announcement_date = DateTime.Now; disposal_announcement.announcement_emp_id = UserProfile.employee_id; disposal_announcement.fl_remove_asset = true; disposal_announcement.remove_asset_dept_id = 5; } } disposal_announcement.updated_date = DateTime.Now; disposal_announcement.updated_by = UserProfile.UserId; disposal_announcement.deleted_date = null; disposal_announcement.deleted_by = null; db.Entry(disposal_announcement).State = EntityState.Modified; db.SaveChanges(); #endregion #region "kirim email ke PIC Process Disposal" string emailsetting = string.Empty; string to_name = string.Empty; string freetext = string.Empty; emailsetting = "EMAIL_TO_DISPOSAL_ACCOUNTING"; to_name = "Department Accounting"; freetext = "Dokumen <strong>Berita Acara</strong> sudah tersedia. Asset menunggu tindak lanjut (<strong>Dispose</strong>) oleh Accounting Department."; 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 Disposal Need Follow Up (Donation)"); sy_email_log.elog_template = "EMAIL_TEMPLATE_05"; #region "body mail" var _bodymail = app_setting.APPLICATION_SETTING.Where(c => c.app_key.Contains("EMAIL_TEMPLATE_05")); string strBodyMail = _bodymail.FirstOrDefault().app_value; strBodyMail = strBodyMail.Replace("[to]", to_name); strBodyMail = strBodyMail.Replace("[assetnumber]", disposal_prs.asset_number); strBodyMail = strBodyMail.Replace("[aseetname]", disposal_prs.asset_name); strBodyMail = strBodyMail.Replace("[assetlocation]", disposal_prs.location_name); strBodyMail = strBodyMail.Replace("[department]", disposal_prs.department_name); strBodyMail = strBodyMail.Replace("[suggestion]", "Donation"); strBodyMail = strBodyMail.Replace("[freetext]", freetext); string linkapp = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~/Account/Login?ReturnUrl=%2f")); string strImg = string.Format("http://{0}/Content/EmailImage/button_asmin.png", Request.Url.Authority); linkapp = string.Format(@"<a href={0}><img src=""{1}"" alt=""click for process""/></a>", linkapp, strImg); strBodyMail = strBodyMail.Replace("[link]", linkapp); 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 } else if (disposal_prs.fl_SuggestionChanges == true) { #region "Update Data Announcement" //update flag active = false disposal_announcement.fl_suggestion_changes = true; disposal_announcement.fl_active = false; disposal_announcement.updated_date = DateTime.Now; disposal_announcement.updated_by = UserProfile.UserId; disposal_announcement.deleted_date = null; disposal_announcement.deleted_by = null; db.Entry(disposal_announcement).State = EntityState.Modified; db.SaveChanges(); #endregion #region "Save create disposal_approval" var refApproval = (from a in db.ms_job_level where (a.fl_active == true && a.deleted_date == null && a.job_level_id == 2) 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 == 10 && b.company_id == UserProfile.company_id) join c in db.ms_employee on b.employee_id equals c.employee_id where c.fl_active == true && c.deleted_date == null select new disposalViewModel() { department_id = b.department_id, employee_id = b.employee_id, job_level_id = a.job_level_id, employee_email = c.employee_email, employee_name = c.employee_name }).First <disposalViewModel>(); //approval disposal changes level 1 tr_disposal_approval disposal_approval = new tr_disposal_approval(); disposal_approval.request_id = disposal_prs.request_id; disposal_approval.approval_date = null; disposal_approval.approval_dept_id = refApproval.department_id; disposal_approval.approval_employee_id = refApproval.employee_id; disposal_approval.approval_level_id = refApproval.job_level_id; disposal_approval.approval_status_id = 1;//waiting approval disposal_approval.approval_suggestion_id = disposal_prs.approval_suggestion_id; disposal_approval.fl_active = true; disposal_approval.created_date = DateTime.Now; disposal_approval.created_by = UserProfile.UserId; disposal_approval.updated_date = DateTime.Now; disposal_approval.updated_by = UserProfile.UserId; disposal_approval.deleted_date = null; disposal_approval.deteled_by = null; disposal_approval.org_id = UserProfile.OrgId; disposal_approval = db.tr_disposal_approval.Add(disposal_approval); db.SaveChanges(); int approval_id = disposal_approval.approval_id; //approval disposal changes level 2 tr_disposal_request disposalrequest = db.tr_disposal_request.Find(disposal_prs.request_id); tr_asset_registration assetreg = db.tr_asset_registration.Find(disposalrequest.asset_id); if (assetreg.location_id != 1) { var refApproval2 = (from a in db.ms_job_level where (a.fl_active == true && a.deleted_date == null && a.job_level_id == 3) 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 == disposalrequest.request_dept_id && b.company_id == assetreg.company_id) join c in db.ms_employee on b.employee_id equals c.employee_id where c.fl_active == true && c.deleted_date == null select new disposalViewModel() { department_id = b.department_id, employee_id = b.employee_id, job_level_id = a.job_level_id, employee_email = c.employee_email, employee_name = c.employee_name }).First <disposalViewModel>(); disposal_approval = new tr_disposal_approval(); disposal_approval.request_id = disposal_prs.request_id; disposal_approval.approval_date = null; disposal_approval.approval_dept_id = refApproval2.department_id; disposal_approval.approval_employee_id = refApproval2.employee_id; disposal_approval.approval_level_id = refApproval2.job_level_id; disposal_approval.approval_status_id = 1;//waiting approval disposal_approval.approval_suggestion_id = disposal_prs.approval_suggestion_id; disposal_approval.fl_active = true; disposal_approval.created_date = DateTime.Now; disposal_approval.created_by = UserProfile.UserId; disposal_approval.updated_date = DateTime.Now; disposal_approval.updated_by = UserProfile.UserId; disposal_approval.deleted_date = null; disposal_approval.deteled_by = null; disposal_approval.org_id = UserProfile.OrgId; disposal_approval = db.tr_disposal_approval.Add(disposal_approval); db.SaveChanges(); } #endregion #region "Kirim email ke Procurement Head" sy_email_log sy_email_log = new sy_email_log(); sy_email_log.elog_to = refApproval.employee_email; sy_email_log.elog_subject = string.Format("Asset Disposal Changes Need Approval"); sy_email_log.elog_template = "EMAIL_TEMPLATE_04"; var _bodymail = app_setting.APPLICATION_SETTING.Where(c => c.app_key.Contains("EMAIL_TEMPLATE_04")); string strBodyMail = _bodymail.FirstOrDefault().app_value; strBodyMail = strBodyMail.Replace("[to]", refApproval.employee_name); strBodyMail = strBodyMail.Replace("[action]", "Disposal Changes"); strBodyMail = strBodyMail.Replace("[assetnumber]", disposal_prs.asset_number); strBodyMail = strBodyMail.Replace("[aseetname]", disposal_prs.asset_name); strBodyMail = strBodyMail.Replace("[assetlocation]", disposal_prs.location_name); strBodyMail = strBodyMail.Replace("[department]", disposal_prs.department_name); int empid = Convert.ToInt32(refApproval.employee_id); ms_user msuser = (from m in db.ms_user where m.employee_id == empid select m).FirstOrDefault(); //token untuk link approval di email string token = string.Format("DisposalApproval|Approval/{0}|{1}|{2}|{3}", approval_id, msuser.user_name, UserProfile.company_id, UserProfile.asset_reg_location_id); token = CryptorHelper.Encrypt(token, "MD5", true).Replace("+", "plus").Replace("=", "equal"); string linkapp = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~/Account/Login?ReturnUrl=%2f&token=" + token)); string strImg = string.Format("http://{0}/Content/EmailImage/button_approval_disposal.png", Request.Url.Authority); linkapp = string.Format(@"<a href={0}><img src=""{1}"" alt=""click for approval""/></a>", linkapp, strImg); strBodyMail = strBodyMail.Replace("[link]", linkapp); sy_email_log.elog_body = strBodyMail; 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."; } } } disposal_prs = DataDisposalView(disposal_prs.request_id, disposal_prs); return(View(disposal_prs)); }
public ActionResult Edit([Bind(Include = "insurance_activa_id, asset_parent_id, insurance_activa_number, insurance_activa_name, insurance_activa_date, insurance_activa_exp_date, insurance_id, insurance_activa_description")] asset_insuranceViewModel asset_ins) { if (asset_ins.insurance_activa_date > DateTime.Today) ModelState.AddModelError("insurance_activa_date", "Please enter a valid date."); if (asset_ins.insurance_activa_date > asset_ins.insurance_activa_exp_date) ModelState.AddModelError("insurance_activa_exp_date", "Insurance activa expired date must be after insurance activa date."); if (ModelState.IsValid && asset_ins.insurance_activa_id > 0) { tr_asset_insurance ass_insurance = db.tr_asset_insurance.Find(asset_ins.insurance_activa_id); ass_insurance.asset_id = asset_ins.asset_parent_id; ass_insurance.insurance_activa_number = asset_ins.insurance_activa_number; ass_insurance.insurance_activa_name = asset_ins.insurance_activa_name; ass_insurance.insurance_activa_date = asset_ins.insurance_activa_date; ass_insurance.insurance_activa_exp_date = asset_ins.insurance_activa_exp_date; ass_insurance.insurance_id = asset_ins.insurance_id; ass_insurance.insurance_activa_description = asset_ins.insurance_activa_description; ass_insurance.fl_active = true; ass_insurance.updated_date = DateTime.Now; ass_insurance.updated_by = UserProfile.UserId; ass_insurance.deleted_date = null; ass_insurance.deleted_int = null; ass_insurance.org_id = UserProfile.OrgId; db.Entry(ass_insurance).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } tr_asset_registration ass_reg = db.tr_asset_registration.Find(asset_ins.asset_parent_id); asset_ins.FormMode = EnumFormModeKey.Form_Edit; asset_ins.asset_parent_id = (int)ass_reg.asset_id; asset_ins.asset_parent = ass_reg; asset_ins.insurance_list = db.ms_insurance.Where(r => r.fl_active == true && r.deleted_date == null).ToList(); //Data view edit asset_ins.detail_insurance_list = (from aw in db.tr_asset_insurance where (aw.fl_active == true && aw.deleted_date == null && aw.asset_id == asset_ins.asset_parent_id) join a in db.ms_insurance on aw.insurance_id equals a.insurance_id where (a.fl_active == true && a.deleted_date == null) select new asset_insurancedetailViewModel() { insurance_activa_id = aw.insurance_activa_id, insurance_activa_number = aw.insurance_activa_number, insurance_activa_name = aw.insurance_activa_name, insurance_activa_date = aw.insurance_activa_date, insurance_activa_exp_date = aw.insurance_activa_exp_date, insurance_id = a.insurance_id, insurance_name = a.insurance_name, insurance_activa_description = aw.insurance_activa_description }).ToList<asset_insurancedetailViewModel>(); return View(asset_ins); }
public ActionResult DisposalFollowup([Bind(Include = "announcement_id, request_id, remove_asset_description, asset_id, asset_number, asset_name, location_name, department_name")] disposalViewModel disposal_prs) { //update disposal request and approval data with transaction if (ModelState.IsValid) { using (var transaction = db.Database.BeginTransaction()) { try { #region "Save update Disposal Announcement" tr_disposal_announcement disposal_announcement = db.tr_disposal_announcement.Find(disposal_prs.announcement_id); disposal_announcement.remove_asset_description = disposal_prs.remove_asset_description; disposal_announcement.remove_asset_date = DateTime.Now; disposal_announcement.remove_asset_emp_id = UserProfile.employee_id; disposal_announcement.updated_date = DateTime.Now; disposal_announcement.updated_by = UserProfile.UserId; disposal_announcement.deleted_date = null; disposal_announcement.deleted_by = null; db.Entry(disposal_announcement).State = EntityState.Modified; db.SaveChanges(); #endregion tr_asset_registration asset_registration = db.tr_asset_registration.Find(disposal_prs.asset_id); asset_registration.fl_active = false; db.Entry(asset_registration).State = EntityState.Modified; db.SaveChanges(); #region "kirim email ke All PIC" string emailsetting = string.Empty; string emailsettingcc = string.Empty; var _emailapproval = (from app in db.tr_disposal_approval where app.request_id == disposal_prs.request_id && app.fl_active == true && app.deleted_date == null 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).ToList <ms_employee>(); foreach (ms_employee employee_app in _emailapproval) { emailsettingcc += employee_app.employee_email + ";"; } var _emailowner_asset = (from app in db.tr_asset_registration where app.asset_id == disposal_prs.asset_id /*&& app.fl_active == true && app.deleted_date == null*/ join a in db.ms_employee on app.employee_id equals a.employee_id where a.fl_active == true && a.deleted_date == null select a).ToList <ms_employee>(); foreach (ms_employee employee_app in _emailowner_asset) { emailsetting += employee_app.employee_email + ";"; } var _emailpic_asset = (from app in db.tr_disposal_request where app.request_id == disposal_prs.request_id && app.fl_active == true && app.deleted_date == null join a in db.ms_employee on app.request_emp_id equals a.employee_id where a.fl_active == true && a.deleted_date == null select a).ToList <ms_employee>(); foreach (ms_employee employee_app in _emailpic_asset) { emailsetting += employee_app.employee_email + ";"; } var _email_announcement = (from app in db.tr_disposal_announcement where app.announcement_id == disposal_prs.announcement_id && app.fl_active == true && app.deleted_date == null join a in db.ms_employee on app.announcement_emp_id equals a.employee_id where a.fl_active == true && a.deleted_date == null select a).ToList <ms_employee>(); foreach (ms_employee employee_app in _email_announcement) { emailsetting += employee_app.employee_email + ";"; } var _email_fin_announcement = (from app in db.tr_disposal_announcement where app.announcement_id == disposal_prs.announcement_id && app.fl_active == true && app.deleted_date == null join a in db.ms_employee on app.fin_announcement_emp_id equals a.employee_id where a.fl_active == true && a.deleted_date == null select a).ToList <ms_employee>(); foreach (ms_employee employee_app in _email_fin_announcement) { emailsetting += employee_app.employee_email + ";"; } sy_email_log sy_email_log = new sy_email_log(); sy_email_log.elog_to = emailsetting; sy_email_log.elog_cc = emailsettingcc; sy_email_log.elog_subject = string.Format("Disposal Asset"); sy_email_log.elog_template = "EMAIL_TEMPLATE_06"; #region "body mail" var _bodymail = app_setting.APPLICATION_SETTING.Where(c => c.app_key.Contains("EMAIL_TEMPLATE_06")); string strBodyMail = _bodymail.FirstOrDefault().app_value; strBodyMail = strBodyMail.Replace("[to]", ""); strBodyMail = strBodyMail.Replace("[assetnumber]", disposal_prs.asset_number); strBodyMail = strBodyMail.Replace("[aseetname]", disposal_prs.asset_name); strBodyMail = strBodyMail.Replace("[assetlocation]", disposal_prs.location_name); strBodyMail = strBodyMail.Replace("[department]", disposal_prs.department_name); string linkapp = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~/Account/Login?ReturnUrl=%2f")); string strImg = string.Format("http://{0}/Content/EmailImage/button_asmin.png", Request.Url.Authority); linkapp = string.Format(@"<a href={0}><img src=""{1}"" alt=""click for process""/></a>", linkapp, strImg); strBodyMail = strBodyMail.Replace("[link]", linkapp); ms_disposal_type suggestion = db.ms_disposal_type.Find(disposal_announcement.approval_disposal_type_id); strBodyMail = strBodyMail.Replace("[suggestion]", suggestion.disposal_type_name); sy_email_log.elog_body = strBodyMail; #endregion var EmailHelper = new EmailHelper() { ToAddress = sy_email_log.elog_to, CcAddress = sy_email_log.elog_cc, 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."; } } } return(View(disposal_prs)); }
public ActionResult Approval([Bind(Include = "request_id, approval_id, fl_approval, approval_suggestion_id, approval_noted, asset_number,asset_name, location_name, department_name, fl_SuggestionChanges")] disposalViewModel disposal_req) { if (disposal_req.fl_approval != null) { if (disposal_req.fl_approval == true) { if (disposal_req.approval_suggestion_id == null || disposal_req.approval_suggestion_id == 0) { ModelState.AddModelError("approval_suggestion_id", "Suggestion is Mandatory."); } } } else if (disposal_req.approval_noted == null || disposal_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 Disposal" tr_disposal_request disposal_request = db.tr_disposal_request.Find(disposal_req.request_id); var doneapp = (from app in db.tr_disposal_approval where (app.approval_date == null && app.fl_active == true && app.deleted_date == null && app.request_id == disposal_req.request_id) select app).ToList(); if (disposal_req.fl_SuggestionChanges == false) { disposal_request.fl_approval = disposal_req.fl_approval; if (disposal_req.fl_approval == true) { if (doneapp.Count == 1) { disposal_request.request_status_id = 5;//complete iscomplete = true; } else { disposal_request.request_status_id = 2;//approve } } else { disposal_request.request_status_id = 3; //reject } disposal_request.approval_date = DateTime.Now; disposal_request.updated_date = DateTime.Now; disposal_request.update_by = UserProfile.UserId; disposal_request.deleted_date = null; disposal_request.deleted_by = null; db.Entry(disposal_request).State = EntityState.Modified; db.SaveChanges(); } #endregion #region "Save update Approval Disposal" tr_disposal_approval disposal_approval = db.tr_disposal_approval.Find(disposal_req.approval_id); if (disposal_req.fl_approval == true) { disposal_approval.approval_status_id = 2;//approve disposal_approval.approval_suggestion_id = disposal_req.approval_suggestion_id; } else { disposal_approval.approval_status_id = 3; //reject disposal_approval.approval_noted = disposal_req.approval_noted; disposal_approval.fl_active = false; //kembalikan status announcement ke suggestion terakhir tr_disposal_announcement disposal_ann_old = (from tda in db.tr_disposal_announcement where tda.request_id == disposal_approval.request_id && tda.fl_suggestion_changes == true select tda).FirstOrDefault(); disposal_ann_old.fl_suggestion_changes = false; disposal_ann_old.fl_active = true; disposal_ann_old.updated_date = DateTime.Now; disposal_ann_old.updated_by = UserProfile.UserId; db.Entry(disposal_ann_old).State = EntityState.Modified; db.SaveChanges(); } disposal_approval.approval_date = DateTime.Now; disposal_approval.approval_location_id = UserProfile.asset_reg_location_id; disposal_approval.updated_date = DateTime.Now; disposal_approval.updated_by = UserProfile.UserId; disposal_approval.deleted_date = null; disposal_approval.deteled_by = null; db.Entry(disposal_approval).State = EntityState.Modified; db.SaveChanges(); #endregion if (disposal_req.fl_approval == true) { //cek untuk disposal changes: site atau ho tr_asset_registration assetreg = db.tr_asset_registration.Find(disposal_request.asset_id); if (doneapp.Count == 1) { iscomplete = true; } if (!iscomplete && ((assetreg.location_id != 1 && disposal_req.fl_SuggestionChanges == true) || (disposal_req.fl_SuggestionChanges == false))) { #region "kirim email ke approval" var next_approval = (from app in db.tr_disposal_approval where (app.approval_date == null && app.fl_active == true && app.deleted_date == null) && app.request_id == disposal_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 join b in db.ms_user on a.employee_id equals b.employee_id where b.fl_active == true && b.deleted_date == null select new disposalViewModel { approval_id = app.approval_id, ms_employee = a, ms_user = b }).FirstOrDefault <disposalViewModel>(); if (next_approval != null) { sy_email_log sy_email_log = new sy_email_log(); sy_email_log.elog_to = next_approval.ms_employee.employee_email; sy_email_log.elog_subject = string.Format("Asset Disposal Need Approval"); sy_email_log.elog_template = "EMAIL_TEMPLATE_04"; #region "body mail" var _bodymail = app_setting.APPLICATION_SETTING.Where(c => c.app_key.Contains("EMAIL_TEMPLATE_04")); string strBodyMail = _bodymail.FirstOrDefault().app_value; strBodyMail = strBodyMail.Replace("[to]", next_approval.ms_employee.employee_name); strBodyMail = strBodyMail.Replace("[action]", "Dispose"); strBodyMail = strBodyMail.Replace("[assetnumber]", disposal_req.asset_number); strBodyMail = strBodyMail.Replace("[aseetname]", disposal_req.asset_name); strBodyMail = strBodyMail.Replace("[assetlocation]", disposal_req.location_name); strBodyMail = strBodyMail.Replace("[department]", disposal_req.department_name); //token untuk link approval di email string token = string.Format("DisposalApproval|Approval/{0}|{1}|{2}|{3}", next_approval.approval_id, next_approval.ms_user.user_name, UserProfile.company_id, UserProfile.asset_reg_location_id); token = CryptorHelper.Encrypt(token, "MD5", true).Replace("+", "plus").Replace("=", "equal"); string linkapp = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~/Account/Login?ReturnUrl=%2f&token=" + token)); string strImg = string.Format("http://{0}/Content/EmailImage/button_approval_disposal.png", Request.Url.Authority); linkapp = string.Format(@"<a href={0}><img src=""{1}"" alt=""click for approval""/></a>", linkapp, strImg); strBodyMail = strBodyMail.Replace("[link]", linkapp); 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" sy_message_notification msg = new sy_message_notification(); msg.notif_group = "BALOON_RECEIPT_04"; msg.notify_user = next_approval.ms_user.user_name; msg.notify_ip = next_approval.ms_employee.ip_address; msg.notify_message = "Ada permintaan approval untuk Asset disposal."; 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 { #region "Save Update Process Disposal" ms_disposal_type suggestion = db.ms_disposal_type.Find(disposal_req.approval_suggestion_id); tr_disposal_announcement disposalproses = new tr_disposal_announcement(); disposalproses.request_id = disposal_req.request_id; disposalproses.approval_disposal_type_id = disposal_req.approval_suggestion_id; if (disposal_req.approval_suggestion_id != 3) { disposalproses.fl_announcement_status = true; } else { disposalproses.fl_remove_asset = true; disposalproses.remove_asset_dept_id = 5; } disposalproses.fl_active = true; disposalproses.created_date = DateTime.Now; disposalproses.created_by = UserProfile.UserId; disposalproses.updated_date = DateTime.Now; disposalproses.updated_by = UserProfile.UserId; disposalproses.deleted_date = null; disposalproses.deleted_by = null; disposalproses.org_id = UserProfile.OrgId; disposalproses = db.tr_disposal_announcement.Add(disposalproses); db.SaveChanges(); #endregion #region "kirim email ke PIC Process Disposal" string emailsetting = string.Empty; string to_name = string.Empty; switch (disposal_req.approval_suggestion_id) { //resale => procurement case 1: emailsetting = "EMAIL_TO_DISPOSAL_PROCUREMENT"; to_name = "Department Procurement"; break; //donation => CSR case 2: emailsetting = "EMAIL_TO_DISPOSAL_CSR"; to_name = "Department CSR"; break; //destroy => Acounting case 3: emailsetting = "EMAIL_TO_DISPOSAL_ACCOUNTING"; to_name = "Department Accounting"; break; } 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 Disposal Need Follow Up ({0})", suggestion.disposal_type_name); sy_email_log.elog_template = "EMAIL_TEMPLATE_05"; #region "body mail" var _bodymail = app_setting.APPLICATION_SETTING.Where(c => c.app_key.Contains("EMAIL_TEMPLATE_05")); string strBodyMail = _bodymail.FirstOrDefault().app_value; strBodyMail = strBodyMail.Replace("[to]", to_name); strBodyMail = strBodyMail.Replace("[assetnumber]", disposal_req.asset_number); strBodyMail = strBodyMail.Replace("[aseetname]", disposal_req.asset_name); strBodyMail = strBodyMail.Replace("[assetlocation]", disposal_req.location_name); strBodyMail = strBodyMail.Replace("[department]", disposal_req.department_name); strBodyMail = strBodyMail.Replace("[suggestion]", suggestion.disposal_type_name); strBodyMail = strBodyMail.Replace("[freetext]", ""); string linkapp = string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~/Account/Login?ReturnUrl=%2f")); string strImg = string.Format("http://{0}/Content/EmailImage/button_asmin.png", Request.Url.Authority); linkapp = string.Format(@"<a href={0}><img src=""{1}"" alt=""click for process""/></a>", linkapp, strImg); strBodyMail = strBodyMail.Replace("[link]", linkapp); 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."; } } } disposal_req = DataDisposalView(disposal_req.request_id, disposal_req); return(View(disposal_req)); }
public ActionResult SubmitReceiveMutation([Bind(Include = "mutation_id, asset_id, request_id, fl_pic_asset_receive, courier_description, asset_number, asset_name, transfer_to_dept_id, transfer_to_emp_id, transfer_to_location_id")] AssetMutationViewModel mutation_rcv) { tr_mutation_process mut_process = db.tr_mutation_process.Find(mutation_rcv.mutation_id); //update disposal request and approval data with transaction if (mutation_rcv.fl_pic_asset_receive == null) { ModelState.AddModelError("fl_pic_asset_receive", "Confirmation of receive asset is mandatory."); } else if (string.IsNullOrEmpty(mutation_rcv.courier_description)) { ModelState.AddModelError("courier_description", "Feedback is mandatory."); } if (ModelState.IsValid) { using (var transaction = db.Database.BeginTransaction()) { try { #region "Save update Mutation process" if (mutation_rcv.fl_pic_asset_receive == null) { mut_process.fl_pic_asset_receive = false; } else if (mutation_rcv.fl_pic_asset_receive == true) { //ms_employee_detail ed = db.ms_employee_detail.Find(UserProfile.employee_id); mut_process.fl_pic_asset_receive = true; mut_process.pic_asset_received_date = DateTime.Now; mut_process.courier_description = mutation_rcv.courier_description; mut_process.pic_asset_received_employee_id = UserProfile.employee_id; //mut_process.pic_asset_level_id = UserProfile. mut_process.user_asset_received_date = DateTime.Now; mut_process.user_asset_received_employee_id = mutation_rcv.transfer_to_emp_id; tr_mutation_request mr = db.tr_mutation_request.Find(mutation_rcv.request_id); tr_asset_registration ar = db.tr_asset_registration.Find(mr.asset_id); ar.current_department_id = mr.transfer_to_dept_id; ar.current_employee_id = mr.transfer_to_emp_id; ar.current_location_id = mr.transfer_to_location_id; db.Entry(ar).State = EntityState.Modified; db.SaveChanges(); } 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_rcv.transfer_to_dept_id); //emailsetting = "EMAIL_TEMPLATE_03"; //to_name = "Department " + depTransfer.department_name; //freetext = "PIC Asset Department telah mengirim <strong>" + mutation_rcv.asset_name + "(" + mutation_rcv.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_rcv.asset_number); //strBodyMail = strBodyMail.Replace("[aseetname]", mutation_rcv.asset_name); //strBodyMail = strBodyMail.Replace("[assetlocation]", mutation_rcv.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_rcv = DataMutationView(mutation_rcv.request_id, mutation_rcv); return(View(mutation_rcv)); }