public ActionResult AddSave(OrderRecord data) { //# validation if (data.MasterRecordID < 0) throw new SystemException("Invalid Entity ID"); int timeInt = 0; if (!String.IsNullOrEmpty(data.StartTimeHour)) { if (!Int32.TryParse(data.StartTimeHour, out timeInt) || Convert.ToInt32(data.StartTimeHour) < 0 || Convert.ToInt32(data.StartTimeHour) > 23) { data.SaveResult.WarningMessage = "請修改開始時間"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } if (!String.IsNullOrEmpty(data.StartTimeMinute)) { if (!Int32.TryParse(data.StartTimeMinute, out timeInt) || Convert.ToInt32(data.StartTimeMinute) < 0 || Convert.ToInt32(data.StartTimeMinute) > 59) { data.SaveResult.WarningMessage = "請修改開始時間"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } if (!String.IsNullOrEmpty(data.EndTimeHour)) { if (!Int32.TryParse(data.EndTimeHour, out timeInt) || Convert.ToInt32(data.EndTimeHour) < 0 || Convert.ToInt32(data.EndTimeHour) > 23) { data.SaveResult.WarningMessage = "請修改結束時間"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } if (!String.IsNullOrEmpty(data.EndTimeMinute)) { if (!Int32.TryParse(data.EndTimeMinute, out timeInt) || Convert.ToInt32(data.EndTimeMinute) < 0 || Convert.ToInt32(data.EndTimeMinute) > 59) { data.SaveResult.WarningMessage = "請修改結束時間"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } if (!String.IsNullOrEmpty(data.repair_date) && !String.IsNullOrEmpty(data.CompleteDate)) { if (DateTime.ParseExact(data.CompleteDate, "dd-MM-yyyy", null) < DateTime.ParseExact(data.repair_date, "dd-MM-yyyy", null)) { data.SaveResult.WarningMessage = "完成日期應在維修日期之後"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } Member member = new Member("users"); bool createNewDistrict = false; if (!string.IsNullOrEmpty(data.WorkingDistrictName)) { recsys_district workingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(data.WorkingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (workingDistrict != null) { data.district2 = workingDistrict.id; data.group_id = workingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = data.WorkingDistrictName.Trim(), name = data.WorkingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); data.district2 = this._db.recsys_district.Where(x => x.name.Equals(data.WorkingDistrictName.Trim())).SingleOrDefault().id; data.group_id = this._db.recsys_district.Where(x => x.name.Equals(data.WorkingDistrictName.Trim())).SingleOrDefault().group_id; } createNewDistrict = false; if (!string.IsNullOrEmpty(data.MailingDistrictName)) { recsys_district mailingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(data.MailingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (mailingDistrict != null) { data.district1 = mailingDistrict.id; data.group_id = mailingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = data.MailingDistrictName.Trim(), name = data.MailingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); data.district1 = this._db.recsys_district.Where(x => x.name.Equals(data.MailingDistrictName.Trim())).SingleOrDefault().id; data.group_id = this._db.recsys_district.Where(x => x.name.Equals(data.MailingDistrictName.Trim())).SingleOrDefault().group_id; } //# get old master customer record if (data.MasterRecordType == OrderMasterRecordType.quotation) return this.AddSave_Quotation(data); else return this.AddSave_Maintenance(data); }
public ActionResult EditSave(OrderRecord data) { recsys_order order; recsys_relate_customers customerData; //# validation if (data.id < 0) throw new SystemException("Invalid Entity ID"); int timeInt = 0; if (!String.IsNullOrEmpty(data.StartTimeHour)) { if (!Int32.TryParse(data.StartTimeHour, out timeInt) || Convert.ToInt32(data.StartTimeHour) < 0 || Convert.ToInt32(data.StartTimeHour) > 23) { data.SaveResult.WarningMessage = "請修改開始時間"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } if (!String.IsNullOrEmpty(data.StartTimeMinute)) { if (!Int32.TryParse(data.StartTimeMinute, out timeInt) || Convert.ToInt32(data.StartTimeMinute) < 0 || Convert.ToInt32(data.StartTimeMinute) > 59) { data.SaveResult.WarningMessage = "請修改開始時間"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } if (!String.IsNullOrEmpty(data.EndTimeHour)) { if (!Int32.TryParse(data.EndTimeHour, out timeInt) || Convert.ToInt32(data.EndTimeHour) < 0 || Convert.ToInt32(data.EndTimeHour) > 23) { data.SaveResult.WarningMessage = "請修改結束時間"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } if (!String.IsNullOrEmpty(data.EndTimeMinute)) { if (!Int32.TryParse(data.EndTimeMinute, out timeInt) || Convert.ToInt32(data.EndTimeMinute) < 0 || Convert.ToInt32(data.EndTimeMinute) > 59) { data.SaveResult.WarningMessage = "請修改結束時間"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } if (!String.IsNullOrEmpty(data.repair_date) && !String.IsNullOrEmpty(data.CompleteDate)) { if (DateTime.ParseExact(data.CompleteDate, "dd-MM-yyyy", null) < DateTime.ParseExact(data.repair_date, "dd-MM-yyyy", null)) { data.SaveResult.WarningMessage = "完成日期應在維修日期之後"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } //# get old record var records = from e in this._db.recsys_order join c in this._db.recsys_relate_customers on e.customer_id equals c.id into cs from c in cs.DefaultIfEmpty() where e.id == data.id select new { Order = e, CustomerData = c }; var record = records.FirstOrDefault(); Member member = new Member("users"); //# validation if (record == null) throw new RecordNotFoundException(); order = record.Order; customerData = record.CustomerData; //# validation if (order == null || customerData == null) throw new RecordNotFoundException(); if (!order.last_update.HasValue) throw new ImproperDataException(); if (order.last_update.Value > data.FetchRecordTime) throw new OptimisticConcurrencyException("資料已被其他使用者更新"); bool createNewDistrict = false; if (!string.IsNullOrEmpty(data.WorkingDistrictName)) { recsys_district workingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(data.WorkingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (workingDistrict != null) { data.district2 = workingDistrict.id; data.group_id = workingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = data.WorkingDistrictName.Trim(), name = data.WorkingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); data.district2 = this._db.recsys_district.Where(x => x.name.Equals(data.WorkingDistrictName.Trim())).SingleOrDefault().id; data.group_id = this._db.recsys_district.Where(x => x.name.Equals(data.WorkingDistrictName.Trim())).SingleOrDefault().group_id; } createNewDistrict = false; if (!string.IsNullOrEmpty(data.MailingDistrictName)) { recsys_district mailingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(data.MailingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (mailingDistrict != null) { data.district1 = mailingDistrict.id; data.group_id = mailingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = data.MailingDistrictName.Trim(), name = data.MailingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); data.district1 = this._db.recsys_district.Where(x => x.name.Equals(data.MailingDistrictName.Trim())).SingleOrDefault().id; data.group_id = this._db.recsys_district.Where(x => x.name.Equals(data.MailingDistrictName.Trim())).SingleOrDefault().group_id; } //# saving //# mapping order.by_system = 1; order.completion_date = DateChecking(data.CompleteDate); if ((String.IsNullOrEmpty(data.EndTimeHour)) && (String.IsNullOrEmpty(data.EndTimeMinute))) order.end_time = null; else order.end_time = new TimeSpan(Convert.ToInt32(data.EndTimeHour), Convert.ToInt32(data.EndTimeMinute), 0); order.engineer_id_1 = data.engineer_id_1; order.engineer_id_2 = data.engineer_id_2; order.engineer_id_3 = data.engineer_id_3; order.engineer_id_4 = data.engineer_id_4; order.fault = data.fault; order.last_update = DateTime.Now; order.model = data.model; order.remark = data.remark2; order.repair = data.repair; order.repair_date = DateChecking(data.repair_date); order.report = data.report; order.reviewer = data.reviewer; if ((String.IsNullOrEmpty(data.StartTimeHour)) && (String.IsNullOrEmpty(data.StartTimeMinute))) order.start_time = null; else order.start_time = new TimeSpan(Convert.ToInt32(data.StartTimeHour), Convert.ToInt32(data.StartTimeMinute), 0); order.status = (byte)data.status; order.tc = (byte)(data.tc ? 1 : 0); order.update_user_id = (int)member.infoBySession("id"); order.job_number = data.JobNumber; order.order_status = data.order_status; customerData.address1 = data.address1; customerData.address2 = data.address2; customerData.contact = data.contact; customerData.district1 = data.district1; customerData.district2 = data.district2; customerData.email = data.email; customerData.fax1 = data.fax1; customerData.fax2 = data.fax2; customerData.group_id = data.group_id; customerData.name = data.name; customerData.chi_name = data.chi_name; customerData.remark = data.remark; customerData.tel1 = data.tel1; customerData.tel2 = data.tel2; customerData.title = (byte)data.title; customerData.reference_number = data.customer_reference_number; //alter 故障內容 if (!string.IsNullOrEmpty(order.fault)) { int index1 = order.fault.IndexOf("["); int index2 = order.fault.IndexOf("]"); if (index1 > -1 && index2 > -1) order.fault = order.fault.Substring(index2 + 1); } if (order.completion_date.HasValue) { order.order_status = OrderStatus.WarrantyCompleted.ID; order.fault = "[" + OrderStatus.WarrantyCompleted.Name + "] " + order.fault; } else if (order.order_status == OrderStatus.DoingWarranty.ID) { order.fault = "[" + OrderStatus.DoingWarranty.Name + "] " + order.fault; order.order_status = OrderStatus.DoingWarranty.ID; } else if (order.order_status == OrderStatus.AppointedWarranty.ID) { order.fault = "[" + OrderStatus.AppointedWarranty.Name + "] " + order.fault; order.order_status = OrderStatus.AppointedWarranty.ID; } try { this._db.SaveChanges(); this._db.Refresh(System.Data.Objects.RefreshMode.StoreWins, order); data.id = order.id; data.SaveResult.SavedSuccessfully = true; } catch (OptimisticConcurrencyException) { //# log down } return Json(data); }
public ActionResult AddSave(QuotationRecord data) { Member member; recsys_customers masterCustomer; recsys_relate_customers customerData; recsys_quotation quotation; //# validation if (!String.IsNullOrEmpty(data.invoice) && data.dummy) { data.SaveResult.WarningMessage = "請刪除Invoice No或取消選取'有Dummy Invoice'"; data.SaveResult.SavedSuccessfully = false; return Json(data); } if (!String.IsNullOrEmpty(data.minor_work)) { if (data.minor_work.Length > 3) { data.SaveResult.WarningMessage = "請修改Minor Work至3字以內"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } //# validation if (data.MasterCustomerID < 0) throw new SystemException("Invalid Entity ID"); //# get old master customer record masterCustomer = this._db.recsys_customers.FirstOrDefault(theCustomer => theCustomer.id == data.MasterCustomerID); //# validation if (masterCustomer == null) throw new RecordNotFoundException(); member = new Member("users"); bool createNewDistrict = false; if (!string.IsNullOrEmpty(data.WorkingDistrictName)) { recsys_district workingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(data.WorkingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (workingDistrict != null) { data.district2 = workingDistrict.id; data.group_id = workingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = data.WorkingDistrictName.Trim(), name = data.WorkingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); data.district2 = this._db.recsys_district.Where(x => x.name.Equals(data.WorkingDistrictName.Trim())).SingleOrDefault().id; data.group_id = this._db.recsys_district.Where(x => x.name.Equals(data.WorkingDistrictName.Trim())).SingleOrDefault().group_id; } createNewDistrict = false; if (!string.IsNullOrEmpty(data.MailingDistrictName)) { recsys_district mailingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(data.MailingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (mailingDistrict != null) { data.district1 = mailingDistrict.id; data.group_id = mailingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = data.MailingDistrictName.Trim(), name = data.MailingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); data.district1 = this._db.recsys_district.Where(x => x.name.Equals(data.MailingDistrictName.Trim())).SingleOrDefault().id; data.group_id = this._db.recsys_district.Where(x => x.name.Equals(data.MailingDistrictName.Trim())).SingleOrDefault().group_id; } //# mapping customerData = new recsys_relate_customers() { address1 = data.address1, address2 = data.address2, center = masterCustomer.center, code = masterCustomer.code, contact = data.contact, customer_code = masterCustomer.customer_code, customer_id = masterCustomer.id, district1 = data.district1, district2 = data.district2, email = data.email, fax1 = data.fax1, fax2 = data.fax2, group_id = data.group_id, manual_input_code = masterCustomer.manual_input_code, name = data.name, chi_name = data.chi_name, prefix = masterCustomer.prefix, relate_type = (int)Rec_System.Models.Customers.CustomerDataRelateType.Maintenance, reference_number = masterCustomer.reference_number, remark = data.remark, tel1 = data.tel1, tel2 = data.tel2, title = (byte)data.title, type = (byte)masterCustomer.type }; this._db.recsys_relate_customers.AddObject(customerData); quotation = new recsys_quotation() { dummy = (byte)(data.dummy ? 1 : 0), dummy_date = DateChecking(data.dummy_date), initial = data.initial, lang = data.lang, order_number = data.order_number, number = data.number, subcon_estimation = data.subcon_estimation.HasValue ? data.subcon_estimation : 0.00, subcon_name = data.subcon_name, subcon_estimation2 = data.subcon_estimation2.HasValue ? data.subcon_estimation2 : 0.00, subcon_name2 = data.subcon_name2, subcon_estimation3 = data.subcon_estimation3.HasValue ? data.subcon_estimation3 : 0.00, subcon_name3 = data.subcon_name3, supervision = data.supervision.HasValue ? data.supervision : 0.00, supplier_name = data.supplier_name, supplier_name2 = data.supplier_name2, supplier_name3 = data.supplier_name3, supplier_estimation = data.supplier_estimation.HasValue ? data.supplier_estimation : 0.00, supplier_estimation2 = data.supplier_estimation2.HasValue ? data.supplier_estimation2 : 0.00, supplier_estimation3 = data.supplier_estimation3.HasValue ? data.supplier_estimation3 : 0.00, supplier_id = data.supplier_id.HasValue ? data.supplier_id : 0.00, material_estimation2 = data.material_estimation2.HasValue ? data.material_estimation2 : 0.00, material_estimation3 = data.material_estimation3.HasValue ? data.material_estimation3 : 0.00, payment_received_date = DateChecking(data.payment_received_date), tender_number = data.tender_number, direct_labour = data.direct_labour, direct_labour_cost = data.direct_labour_cost.HasValue ? data.direct_labour_cost : 0.00, billing_date = DateChecking(data.billing_date), confirm_date = DateChecking(data.confirm_date), create_date = DateTime.Now, invoice = data.invoice, invoice_date = DateChecking(data.billing_date), minor_work = data.minor_work, minor_work_currency = data.minor_work_currency.HasValue ? data.minor_work_currency : 0.00, gp = data.gp.HasValue ? data.gp : 0.00, last_update = DateTime.Now, remark = data.remark2, status = (byte)data.status, update_user_id = (int)member.infoBySession("id"), issue_date = DateChecking(data.issue_date) }; this._db.recsys_quotation.AddObject(quotation); try { this._db.SaveChanges(); this._db.Refresh(System.Data.Objects.RefreshMode.StoreWins, customerData); this._db.Refresh(System.Data.Objects.RefreshMode.StoreWins, quotation); quotation.customer_id = customerData.id; this._db.SaveChanges(); data.id = quotation.id; data.SaveResult.SavedSuccessfully = true; } catch (OptimisticConcurrencyException) { //# log down } return Json(data); }
public ActionResult EditSave(QuotationRecord data) { recsys_quotation quotation; recsys_relate_customers customerData; //# validation if (data.id < 0) throw new SystemException("Invalid Entity ID"); if (!String.IsNullOrEmpty(data.invoice) && data.dummy) { data.SaveResult.WarningMessage = "請刪除Invoice No或取消選取'有Dummy Invoice'"; data.SaveResult.SavedSuccessfully = false; return Json(data); } if (!String.IsNullOrEmpty(data.minor_work)) { if (data.minor_work.Length > 3) { data.SaveResult.WarningMessage = "請修改Minor Work至3字以內"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } //# get old record var records = from q in this._db.recsys_quotation join c in this._db.recsys_relate_customers on q.customer_id equals c.id into cs from c in cs.DefaultIfEmpty() where q.id == data.id select new { Quotation = q, CustomerData = c }; var record = records.FirstOrDefault(); Member member = new Member("users"); //# validation if (record == null) throw new RecordNotFoundException(); quotation = record.Quotation; customerData = record.CustomerData; //# validation if (quotation == null || customerData == null) throw new RecordNotFoundException(); if (!quotation.last_update.HasValue) throw new ImproperDataException(); if (quotation.last_update.Value > data.FetchRecordTime) throw new OptimisticConcurrencyException("資料已被其他使用者更新"); bool createNewDistrict = false; if (!string.IsNullOrEmpty(data.WorkingDistrictName)) { recsys_district workingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(data.WorkingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (workingDistrict != null) { data.district2 = workingDistrict.id; data.group_id = workingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = data.WorkingDistrictName.Trim(), name = data.WorkingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); data.district2 = this._db.recsys_district.Where(x => x.name.Equals(data.WorkingDistrictName.Trim())).SingleOrDefault().id; data.group_id = this._db.recsys_district.Where(x => x.name.Equals(data.WorkingDistrictName.Trim())).SingleOrDefault().group_id; } createNewDistrict = false; if (!string.IsNullOrEmpty(data.MailingDistrictName)) { recsys_district mailingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(data.MailingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (mailingDistrict != null) { data.district1 = mailingDistrict.id; data.group_id = mailingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = data.MailingDistrictName.Trim(), name = data.MailingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); data.district1 = this._db.recsys_district.Where(x => x.name.Equals(data.MailingDistrictName.Trim())).SingleOrDefault().id; data.group_id = this._db.recsys_district.Where(x => x.name.Equals(data.MailingDistrictName.Trim())).SingleOrDefault().group_id; } //# saving //# mapping quotation.billing_date = DateChecking(data.billing_date); quotation.confirm_date = DateChecking(data.confirm_date); quotation.dummy = (byte)(data.dummy ? 1 : 0); quotation.dummy_date = DateChecking(data.dummy_date); quotation.initial = data.initial; quotation.invoice = data.invoice; quotation.invoice_date = DateChecking(data.billing_date); quotation.minor_work = data.minor_work; quotation.minor_work_currency = data.minor_work_currency.HasValue ? data.minor_work_currency : 0.00; quotation.gp = data.gp.HasValue ? data.gp : 0.0; quotation.lang = data.lang; quotation.last_update = DateTime.Now; quotation.order_number = data.order_number; quotation.number = data.number; quotation.remark = data.remark2; quotation.status = (byte)data.status; quotation.subcon_estimation = data.subcon_estimation.HasValue ? data.subcon_estimation : 0.00; quotation.subcon_name = data.subcon_name; quotation.subcon_estimation2 = data.subcon_estimation2.HasValue ? data.subcon_estimation2 : 0.00; quotation.subcon_name2 = data.subcon_name2; quotation.subcon_estimation3 = data.subcon_estimation3.HasValue ? data.subcon_estimation3 : 0.00; quotation.subcon_name3 = data.subcon_name3; quotation.supplier_name = data.supplier_name; quotation.supplier_name2 = data.supplier_name2; quotation.supplier_name3 = data.supplier_name3; quotation.supplier_estimation = data.supplier_estimation.HasValue ? data.supplier_estimation : 0.00; quotation.supplier_estimation2 = data.supplier_estimation2.HasValue ? data.supplier_estimation2 : 0.00; quotation.supplier_estimation3 = data.supplier_estimation3.HasValue ? data.supplier_estimation3 : 0.00; quotation.supervision = data.supervision.HasValue ? data.supervision : 0.00; quotation.supplier_id = data.supplier_id.HasValue ? data.supplier_id : 0.00; quotation.material_estimation2 = data.material_estimation2.HasValue ? data.material_estimation2 : 0.00; quotation.material_estimation3 = data.material_estimation3.HasValue ? data.material_estimation3 : 0.00; quotation.direct_labour = data.direct_labour; quotation.direct_labour_cost = data.direct_labour_cost.HasValue ? data.direct_labour_cost : 0.00; quotation.payment_received_date = DateChecking(data.payment_received_date); quotation.tender_number = data.tender_number; quotation.update_user_id = (int)member.infoBySession("id"); quotation.issue_date = DateChecking(data.issue_date); customerData.address1 = data.address1; customerData.address2 = data.address2; customerData.contact = data.contact; customerData.district1 = data.district1; customerData.district2 = data.district2; customerData.email = data.email; customerData.fax1 = data.fax1; customerData.fax2 = data.fax2; customerData.group_id = data.group_id; customerData.name = data.name; customerData.chi_name = data.chi_name; customerData.remark = data.remark; customerData.tel1 = data.tel1; customerData.tel2 = data.tel2; customerData.title = (byte)data.title; try { this._db.SaveChanges(); this._db.Refresh(System.Data.Objects.RefreshMode.StoreWins, quotation); data.id = quotation.id; data.SaveResult.SavedSuccessfully = true; } catch (OptimisticConcurrencyException) { //# log down } return Json(data); }
public ActionResult EditSave(MaintenanceRecord data) { recsys_maintenance maintenance; recsys_relate_customers customerData; //# validation if (data.id < 0) throw new SystemException("Invalid Entity ID"); //# get old record var records = from m in this._db.recsys_maintenance join c in this._db.recsys_relate_customers on m.customer_id equals c.id into cs from c in cs.DefaultIfEmpty() where m.id == data.id select new { Maintenance = m, CustomerData = c }; var record = records.FirstOrDefault(); Member member = new Member("users"); //# validation if (record == null) throw new RecordNotFoundException(); maintenance = record.Maintenance; customerData = record.CustomerData; //# validation if (maintenance == null || customerData == null) throw new RecordNotFoundException(); if (!maintenance.last_update.HasValue) throw new ImproperDataException(); if (maintenance.last_update.Value > data.FetchRecordTime) throw new OptimisticConcurrencyException("資料已被其他使用者更新"); if (string.IsNullOrEmpty(data.start_date)) { data.SaveResult.WarningMessage = "請填上開始日期"; data.SaveResult.SavedSuccessfully = false; return Json(data); } if (string.IsNullOrEmpty(data.end_date)) { data.SaveResult.WarningMessage = "請填上完結日期"; data.SaveResult.SavedSuccessfully = false; return Json(data); } if (DateTime.ParseExact(data.end_date, "dd-MM-yyyy", null) < DateTime.ParseExact(data.start_date, "dd-MM-yyyy", null)) { data.SaveResult.WarningMessage = "完結日期應在開始日期之後"; data.SaveResult.SavedSuccessfully = false; return Json(data); } if (!data.routine_id.HasValue) { data.SaveResult.WarningMessage = "請選擇Routine"; data.SaveResult.SavedSuccessfully = false; return Json(data); } if (!String.IsNullOrEmpty(data.chq_no)) { if (data.chq_no.Length > 50) { data.SaveResult.WarningMessage = "請修改Cheque No.至50字以內"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } bool createNewDistrict = false; if (!string.IsNullOrEmpty(data.WorkingDistrictName)) { recsys_district workingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(data.WorkingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (workingDistrict != null) { data.district2 = workingDistrict.id; data.group_id = workingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = data.WorkingDistrictName.Trim(), name = data.WorkingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); data.district2 = this._db.recsys_district.Where(x => x.name.Equals(data.WorkingDistrictName.Trim())).SingleOrDefault().id; data.group_id = this._db.recsys_district.Where(x => x.name.Equals(data.WorkingDistrictName.Trim())).SingleOrDefault().group_id; } createNewDistrict = false; if (!string.IsNullOrEmpty(data.MailingDistrictName)) { recsys_district mailingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(data.MailingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (mailingDistrict != null) { data.district1 = mailingDistrict.id; data.group_id = mailingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = data.MailingDistrictName.Trim(), name = data.MailingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); data.district1 = this._db.recsys_district.Where(x => x.name.Equals(data.MailingDistrictName.Trim())).SingleOrDefault().id; data.group_id = this._db.recsys_district.Where(x => x.name.Equals(data.MailingDistrictName.Trim())).SingleOrDefault().group_id; } //# saving //# mapping maintenance.amount = data.amount; maintenance.chq_no = data.chq_no; maintenance.chq_receive_date = DateChecking(data.chq_receive_date); maintenance.billing_date = DateChecking(data.billing_date); maintenance.checking_date = DateChecking(data.checking_date); maintenance.confirm_date = DateChecking(data.confirm_date); maintenance.end_date = DateChecking(data.end_date); maintenance.invoice = data.invoice; maintenance.invoice_date = DateChecking(data.invoice_date); maintenance.issue_date = DateChecking(data.issue_date); maintenance.last_update = DateTime.Now; maintenance.model = data.model; maintenance.payment = data.payment; maintenance.period = record.Maintenance.period; maintenance.printed = (byte)( data.printed ? 1 : 0); maintenance.first_print_Date = data.first_print_date; maintenance.schedule = data.schedule; maintenance.routine = data.routine; maintenance.routine2 = data.routine2; //# alter maintenance remark if (!string.IsNullOrEmpty(data.remark2)) { int index1 = data.remark2.IndexOf("["); int index2 = data.remark2.IndexOf("]"); if (index1 > -1 && index2 > -1) data.remark2 = data.remark2.Substring(index2 + 1); } recsys_routine routine = null; if (data.routine_id != null) { routine = (from r in this._db.recsys_routine where r.id == data.routine_id select r).FirstOrDefault(); } maintenance.remark = routine != null ? "[" + routine.description_chi + "]" + data.remark2 : data.remark2; maintenance.lang = data.lang; maintenance.start_date = DateChecking(data.start_date); maintenance.status = (byte) data.status; maintenance.update_user_id = (int)member.infoBySession("id"); maintenance.master_routine_id = data.routine_id; customerData.address1 = data.address1; customerData.address2 = data.address2; customerData.contact = data.contact; customerData.district1 = data.district1; customerData.district2 = data.district2; customerData.email = data.email; customerData.fax1 = data.fax1; customerData.fax2 = data.fax2; customerData.group_id = data.group_id; customerData.name = data.name; customerData.chi_name = data.chi_name; customerData.remark = data.remark; customerData.tel1 = data.tel1; customerData.tel2 = data.tel2; customerData.title = (byte)data.title; try { this._db.SaveChanges(); this._db.Refresh(System.Data.Objects.RefreshMode.StoreWins, maintenance); this._db.Refresh(System.Data.Objects.RefreshMode.StoreWins, customerData); bool generateOrderYet = data.auto_gen_order.HasValue ? data.auto_gen_order.Value : false; if (!generateOrderYet && !string.IsNullOrEmpty(data.confirm_date)) { IEnumerable<recsys_order> orders; //# logic: create orders (定期保養) if (this.TryGenerateOrdersForMaintenance(maintenance, this._db.recsys_routine.FirstOrDefault(theRoutine => theRoutine.id == maintenance.master_routine_id), out orders)) { maintenance.period = orders.Count(); maintenance.auto_gen_order = true; this._db.SaveChanges(); data.SaveResult.SavedSuccessfully = true; } } data.id = maintenance.id; data.center = customerData.center; data.SaveResult.SavedSuccessfully = true; } catch (OptimisticConcurrencyException) { //# log down } return Json(data); }
public ActionResult EditSave(ECallRecord data) { recsys_order ecall; recsys_relate_customers customerData; //# validation if (data.id < 0) throw new SystemException("Invalid Entity ID"); int timeInt = 0; if (!String.IsNullOrEmpty(data.StartTimeHour)) { if (!Int32.TryParse(data.StartTimeHour, out timeInt) || Convert.ToInt32(data.StartTimeHour) < 0 || Convert.ToInt32(data.StartTimeHour) > 23) { data.SaveResult.WarningMessage = "請修改開始時間"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } if (!Int32.TryParse(data.StartTimeMinute, out timeInt) || !String.IsNullOrEmpty(data.StartTimeMinute)) { if (Convert.ToInt32(data.StartTimeMinute) < 0 || Convert.ToInt32(data.StartTimeMinute) > 59) { data.SaveResult.WarningMessage = "請修改開始時間"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } if (!Int32.TryParse(data.EndTimeHour, out timeInt) || !String.IsNullOrEmpty(data.EndTimeHour)) { if (Convert.ToInt32(data.EndTimeHour) < 0 || Convert.ToInt32(data.EndTimeHour) > 23) { data.SaveResult.WarningMessage = "請修改結束時間"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } if (!Int32.TryParse(data.EndTimeMinute, out timeInt) || !String.IsNullOrEmpty(data.EndTimeMinute)) { if (Convert.ToInt32(data.EndTimeMinute) < 0 || Convert.ToInt32(data.EndTimeMinute) > 59) { data.SaveResult.WarningMessage = "請修改結束時間"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } if (!String.IsNullOrEmpty(data.repair_date) && !String.IsNullOrEmpty(data.CompleteDate)) { if (DateTime.ParseExact(data.CompleteDate, "dd-MM-yyyy", null) < DateTime.ParseExact(data.repair_date, "dd-MM-yyyy", null)) { data.SaveResult.WarningMessage = "完成日期應在維修日期之後"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } //# get old record var records = from e in this._db.recsys_order join c in this._db.recsys_relate_customers on e.customer_id equals c.id into cs from c in cs.DefaultIfEmpty() where e.id == data.id select new { ECall = e, CustomerData = c }; var record = records.FirstOrDefault(); Member member = new Member("users"); //# validation if (record == null) throw new RecordNotFoundException(); ecall = record.ECall; customerData = record.CustomerData; //# validation if (ecall == null || customerData == null) throw new RecordNotFoundException(); if (!ecall.last_update.HasValue) throw new ImproperDataException(); if (ecall.last_update.Value > data.FetchRecordTime) throw new OptimisticConcurrencyException("資料已被其他使用者更新"); bool createNewDistrict = false; if (!string.IsNullOrEmpty(data.WorkingDistrictName)) { recsys_district workingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(data.WorkingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (workingDistrict != null) { data.district2 = workingDistrict.id; data.group_id = workingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = data.WorkingDistrictName.Trim(), name = data.WorkingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); data.district2 = this._db.recsys_district.Where(x => x.name.Equals(data.WorkingDistrictName.Trim())).SingleOrDefault().id; data.group_id = this._db.recsys_district.Where(x => x.name.Equals(data.WorkingDistrictName.Trim())).SingleOrDefault().group_id; } createNewDistrict = false; if (!string.IsNullOrEmpty(data.MailingDistrictName)) { recsys_district mailingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(data.MailingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (mailingDistrict != null) { data.district1 = mailingDistrict.id; data.group_id = mailingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = data.MailingDistrictName.Trim(), name = data.MailingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); data.district1 = this._db.recsys_district.Where(x => x.name.Equals(data.MailingDistrictName.Trim())).SingleOrDefault().id; data.group_id = this._db.recsys_district.Where(x => x.name.Equals(data.MailingDistrictName.Trim())).SingleOrDefault().group_id; } //check range of time input if (data.StartTimeHour != null) { if (Convert.ToInt32(data.StartTimeHour) < 0 || Convert.ToInt32(data.StartTimeHour) > 23) { data.SaveResult.WarningMessage = "請修改至0-23以內"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } if (data.StartTimeMinute != null) { if (Convert.ToInt32(data.StartTimeMinute) < 0 || Convert.ToInt32(data.StartTimeMinute) > 59) { data.SaveResult.WarningMessage = "請修改至0-59以內"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } //# saving //# mapping ecall.by_system = 0; ecall.call_pickup_user_id = data.call_pickup_user_id; ecall.completion_date = DateChecking(data.CompleteDate); if ((string.IsNullOrEmpty(data.EndTimeHour)) && (string.IsNullOrEmpty(data.EndTimeMinute))) { ecall.end_time = null; } else { ecall.end_time = new TimeSpan(Convert.ToInt32(data.EndTimeHour), Convert.ToInt32(data.EndTimeMinute), 0); } ecall.engineer_id_1 = data.engineer_id_1; ecall.engineer_id_2 = data.engineer_id_2; ecall.engineer_id_3 = data.engineer_id_3; ecall.engineer_id_4 = data.engineer_id_4; ecall.fault = data.fault; ecall.last_update = DateTime.Now; ecall.model = data.model; ecall.remark = data.remark2; ecall.repair = data.repair; ecall.repair_date = DateChecking(data.repair_date); ecall.report = data.report; ecall.reviewer = data.reviewer; if ((string.IsNullOrEmpty(data.StartTimeHour)) && (string.IsNullOrEmpty(data.StartTimeMinute))) { ecall.start_time = null; } else { ecall.start_time = new TimeSpan(Convert.ToInt32(data.StartTimeHour), Convert.ToInt32(data.StartTimeMinute), 0); } ecall.status = (byte) data.status; ecall.tc = (byte) (data.tc ? 1 : 0); ecall.update_user_id = (int)member.infoBySession("id"); ecall.job_number = data.JobNumber; ecall.order_status = ecall.completion_date.HasValue ? 3 : (ecall.repair_date.HasValue ? 2 : 1); customerData.address1 = data.address1; customerData.address2 = data.address2; customerData.contact = data.contact; customerData.district1 = data.district1; customerData.district2 = data.district2; customerData.email = data.email; customerData.fax1 = data.fax1; customerData.fax2 = data.fax2; customerData.group_id = data.group_id; customerData.name = data.name; customerData.chi_name = data.chi_name; customerData.remark = data.remark; customerData.tel1 = data.tel1; customerData.tel2 = data.tel2; customerData.title = (byte)data.title; try { this._db.SaveChanges(); this._db.Refresh(System.Data.Objects.RefreshMode.StoreWins, ecall); data.id = ecall.id; data.SaveResult.SavedSuccessfully = true; } catch (OptimisticConcurrencyException) { //# log down } return Json(data); }
public ActionResult AddSave(MaintenanceRecord data) { //# validation if (string.IsNullOrEmpty(data.start_date)) { data.SaveResult.WarningMessage = "請填上開始日期"; data.SaveResult.SavedSuccessfully = false; return Json(data); } if (string.IsNullOrEmpty(data.end_date)) { data.SaveResult.WarningMessage = "請填上完結日期"; data.SaveResult.SavedSuccessfully = false; return Json(data); } if (DateTime.ParseExact(data.end_date, "dd-MM-yyyy", null) < DateTime.ParseExact(data.start_date, "dd-MM-yyyy", null)) { data.SaveResult.WarningMessage = "完結日期應在開始日期之後"; data.SaveResult.SavedSuccessfully = false; return Json(data); } if (!data.routine_id.HasValue) { data.SaveResult.WarningMessage = "請選擇Routine"; data.SaveResult.SavedSuccessfully = false; return Json(data); } if (!String.IsNullOrEmpty(data.chq_no)) { if (data.chq_no.Length > 50) { data.SaveResult.WarningMessage = "請修改Cheque No.至50字以內"; data.SaveResult.SavedSuccessfully = false; return Json(data); } } Member member; recsys_customers masterCustomer; recsys_relate_customers customerData; recsys_maintenance maintenance; //# validation if (data.MasterCustomerID < 0) throw new SystemException("Invalid Entity ID"); //# get old master customer record masterCustomer = this._db.recsys_customers.FirstOrDefault(theCustomer => theCustomer.id == data.MasterCustomerID); //# validation if (masterCustomer == null) throw new RecordNotFoundException(); member = new Member("users"); bool createNewDistrict = false; if (!string.IsNullOrEmpty(data.WorkingDistrictName)) { recsys_district workingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(data.WorkingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (workingDistrict != null) { data.district2 = workingDistrict.id; data.group_id = workingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = data.WorkingDistrictName.Trim(), name = data.WorkingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); data.district2 = this._db.recsys_district.Where(x => x.name.Equals(data.WorkingDistrictName.Trim())).SingleOrDefault().id; data.group_id = this._db.recsys_district.Where(x => x.name.Equals(data.WorkingDistrictName.Trim())).SingleOrDefault().group_id; } createNewDistrict = false; if (!string.IsNullOrEmpty(data.MailingDistrictName)) { recsys_district mailingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(data.MailingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (mailingDistrict != null) { data.district1 = mailingDistrict.id; data.group_id = mailingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = data.MailingDistrictName.Trim(), name = data.MailingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); data.district1 = this._db.recsys_district.Where(x => x.name.Equals(data.MailingDistrictName.Trim())).SingleOrDefault().id; data.group_id = this._db.recsys_district.Where(x => x.name.Equals(data.MailingDistrictName.Trim())).SingleOrDefault().group_id; } //# mapping customerData = new recsys_relate_customers() { address1 = data.address1, address2 = data.address2, center = masterCustomer.center, code = masterCustomer.code, contact = data.contact, customer_code = masterCustomer.customer_code, customer_id = masterCustomer.id, district1 = data.district1, district2 = data.district2, email = data.email, fax1 = data.fax1, fax2 = data.fax2, group_id = data.group_id, manual_input_code = masterCustomer.manual_input_code, name = data.name, chi_name = data.chi_name, prefix = masterCustomer.prefix, relate_type = (int) Rec_System.Models.Customers.CustomerDataRelateType.Maintenance, reference_number = masterCustomer.reference_number, remark = data.remark, tel1 = data.tel1, tel2 = data.tel2, title = (byte) data.title, type = (byte) masterCustomer.type }; this._db.recsys_relate_customers.AddObject(customerData); recsys_routine routine = null; if (data.routine_id != null) { routine = (from r in this._db.recsys_routine where r.id == data.routine_id select r).FirstOrDefault(); } maintenance = new recsys_maintenance() { amount = data.amount, chq_no = data.chq_no, chq_receive_date = DateChecking(data.chq_receive_date), billing_date = DateChecking(data.billing_date), checking_date = DateChecking(data.checking_date), confirm_date = DateChecking(data.confirm_date), create_date = DateTime.Now, end_date = DateChecking(data.end_date), invoice = data.invoice, invoice_date = DateChecking(data.invoice_date), issue_date = DateChecking(data.issue_date), last_update = DateTime.Now, model = data.model, routine = data.routine, routine2 = data.routine2, lang = data.lang, payment = data.payment, period = data.period, printed = (byte)(data.printed ? 1 : 0), remark = routine != null ? "[" + routine.description_chi + "]" + data.remark2 : data.remark2, schedule = data.schedule, start_date = DateChecking(data.start_date), status = (byte)data.status, update_user_id = (int)member.infoBySession("id"), master_routine_id = data.routine_id }; this._db.recsys_maintenance.AddObject(maintenance); try { this._db.SaveChanges(); this._db.Refresh(System.Data.Objects.RefreshMode.StoreWins, customerData); this._db.Refresh(System.Data.Objects.RefreshMode.StoreWins, maintenance); maintenance.customer_id = customerData.id; this._db.SaveChanges(); this._db.Refresh(System.Data.Objects.RefreshMode.StoreWins, maintenance); data.id = maintenance.id; data.center = customerData.center; bool generateOrderYet = data.auto_gen_order.HasValue ? data.auto_gen_order.Value : false; if (!generateOrderYet && !string.IsNullOrEmpty(data.confirm_date)) { IEnumerable<recsys_order> orders; //# logic: create orders (定期保養) if (this.TryGenerateOrdersForMaintenance(maintenance, this._db.recsys_routine.FirstOrDefault(theRoutine => theRoutine.id == maintenance.master_routine_id), out orders)) { maintenance.period = orders.Count(); maintenance.auto_gen_order = true; this._db.SaveChanges(); data.SaveResult.SavedSuccessfully = true; } } else { data.SaveResult.SavedSuccessfully = true; } } catch (OptimisticConcurrencyException) { //# log down } return Json(data); }
/// <summary> /// Deprecated Method for adding a new object to the recsys_district EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddTorecsys_district(recsys_district recsys_district) { base.AddObject("recsys_district", recsys_district); }
/// <summary> /// Create a new recsys_district object. /// </summary> /// <param name="id">Initial value of the id property.</param> /// <param name="group_id">Initial value of the group_id property.</param> /// <param name="region">Initial value of the region property.</param> /// <param name="name">Initial value of the name property.</param> /// <param name="status">Initial value of the status property.</param> public static recsys_district Createrecsys_district(global::System.Int32 id, global::System.Int32 group_id, global::System.Byte region, global::System.String name, global::System.Byte status) { recsys_district recsys_district = new recsys_district(); recsys_district.id = id; recsys_district.group_id = group_id; recsys_district.region = region; recsys_district.name = name; recsys_district.status = status; return recsys_district; }
public ActionResult EditSave(CustomerRecord model) { //# validation if (model.id < 0) throw new SystemException("Invalid Entity ID"); if (!String.IsNullOrEmpty(model.name)) { if (model.name.Length > 250) { model.SaveResult.WarningMessage = "請修改客戶英文名稱至250字以內"; model.SaveResult.SavedSuccessfully = false; return Json(model); } } else { model.SaveResult.WarningMessage = "請輸入客戶英文名稱"; model.SaveResult.SavedSuccessfully = false; return Json(model); } if (!String.IsNullOrEmpty(model.chi_name)) { if (model.chi_name.Length > 250) { model.SaveResult.WarningMessage = "請修改客戶中文名稱至250字以內"; model.SaveResult.SavedSuccessfully = false; return Json(model); } } else { model.SaveResult.WarningMessage = "請輸入客戶中文名稱"; model.SaveResult.SavedSuccessfully = false; return Json(model); } if (String.IsNullOrEmpty(model.address1)) { model.SaveResult.WarningMessage = "請輸入郵寄地址"; model.SaveResult.SavedSuccessfully = false; return Json(model); } if (String.IsNullOrEmpty(model.MailingDistrictName)) { model.SaveResult.WarningMessage = "請輸入郵寄地址地區"; model.SaveResult.SavedSuccessfully = false; return Json(model); } //# get old record recsys_customers record = this._db.recsys_customers.FirstOrDefault(theCustomer => theCustomer.id == model.id); Member member = new Member("users"); //# validation if (record == null) throw new RecordNotFoundException(); if (!record.last_update.HasValue) throw new ImproperDataException(); if (model.FetchRecordTime.CompareTo(record.last_update.Value) < 0) throw new OptimisticConcurrencyException("資料已被其他使用者更新"); bool createNewDistrict = false; if (!string.IsNullOrEmpty(model.WorkingDistrictName)) { recsys_district workingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(model.WorkingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (workingDistrict != null) { model.district2 = workingDistrict.id; model.group_id = workingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = model.WorkingDistrictName.Trim(), name = model.WorkingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); model.district2 = this._db.recsys_district.Where(x => x.name.Equals(model.WorkingDistrictName.Trim())).SingleOrDefault().id; model.group_id = this._db.recsys_district.Where(x => x.name.Equals(model.WorkingDistrictName.Trim())).SingleOrDefault().group_id; } createNewDistrict = false; if (!string.IsNullOrEmpty(model.MailingDistrictName)) { recsys_district mailingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(model.MailingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (mailingDistrict != null) { model.district1 = mailingDistrict.id; model.group_id = mailingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = model.MailingDistrictName.Trim(), name = model.MailingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); model.district1 = this._db.recsys_district.Where(x => x.name.Equals(model.MailingDistrictName.Trim())).SingleOrDefault().id; model.group_id = this._db.recsys_district.Where(x => x.name.Equals(model.MailingDistrictName.Trim())).SingleOrDefault().group_id; } DateTime nowRef = DateTime.Now; //# saving //# mapping record.address1 = model.address1 ?? ""; record.address2 = model.address2 ?? ""; record.center = model.center; record.code = model.code; record.manual_input_code = model.manual_input_code; record.contact = model.contact ?? ""; record.district1 = model.district1; record.district2 = model.district2; record.email = model.email ?? ""; record.fax1 = model.fax1 ?? ""; record.fax2 = model.fax2 ?? ""; record.group_id = model.group_id; record.id = model.id; record.last_update = nowRef.AddMilliseconds(-nowRef.Millisecond); record.name = model.name ?? ""; record.chi_name = model.chi_name ?? ""; record.prefix = model.prefix ?? ""; record.reference_number = model.reference_number ?? ""; record.remark = model.remark ?? ""; record.status = (byte)(model.status.HasValue ? model.status.Value : 0); record.tel1 = model.tel1 ?? ""; record.tel2 = model.tel2 ?? ""; record.title = (byte)(model.title.HasValue ? model.title.Value : 0); record.type = (byte)(model.type.HasValue ? model.type.Value : 0); record.update_user_id = (int)member.infoBySession("id"); #region Business Logic this.CustomerBusinessLogicProcessing(ref record, model.Mode); #endregion try { this._db.SaveChanges(); model.SaveResult.SavedSuccessfully = true; } catch(OptimisticConcurrencyException) { //# log down } return Json(model); }
public ActionResult AddSave(CustomerRecord model) { Member member = new Member("users"); //check customer code duplicate if (model.type.HasValue) { if (model.type == (int)CustomerType.Others) { string customer_code = model.prefix + model.manual_input_code; var result = this._db.recsys_customers.Where(x => x.customer_code.ToUpper().Equals(customer_code.ToUpper())).SingleOrDefault(); if (result != null) { model.SaveResult.WarningMessage = "客戶編號重覆"; model.SaveResult.SavedSuccessfully = false; return Json(model); } } } if (!String.IsNullOrEmpty(model.name)) { if (model.name.Length > 250) { model.SaveResult.WarningMessage = "請修改客戶英文名稱至250字以內"; model.SaveResult.SavedSuccessfully = false; return Json(model); } } else { model.SaveResult.WarningMessage = "請輸入客戶英文名稱"; model.SaveResult.SavedSuccessfully = false; return Json(model); } if (!String.IsNullOrEmpty(model.chi_name)) { if (model.chi_name.Length > 250) { model.SaveResult.WarningMessage = "請修改客戶中文名稱至250字以內"; model.SaveResult.SavedSuccessfully = false; return Json(model); } } else { model.SaveResult.WarningMessage = "請輸入客戶中文名稱"; model.SaveResult.SavedSuccessfully = false; return Json(model); } if (String.IsNullOrEmpty(model.address1)) { model.SaveResult.WarningMessage = "請輸入郵寄地址"; model.SaveResult.SavedSuccessfully = false; return Json(model); } if (String.IsNullOrEmpty(model.MailingDistrictName)) { model.SaveResult.WarningMessage = "請輸入郵寄地址地區"; model.SaveResult.SavedSuccessfully = false; return Json(model); } bool createNewDistrict = false; if (!string.IsNullOrEmpty(model.WorkingDistrictName)) { recsys_district workingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(model.WorkingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (workingDistrict != null) { model.district2 = workingDistrict.id; model.group_id = workingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = model.WorkingDistrictName.Trim(), name = model.WorkingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); model.district2 = this._db.recsys_district.Where(x => x.name.Equals(model.WorkingDistrictName.Trim())).SingleOrDefault().id; model.group_id = this._db.recsys_district.Where(x => x.name.Equals(model.WorkingDistrictName.Trim())).SingleOrDefault().group_id; } createNewDistrict = false; if (!string.IsNullOrEmpty(model.MailingDistrictName)) { recsys_district mailingDistrict = this._db.recsys_district.Where(x => x.name.Trim().ToUpper().Equals(model.MailingDistrictName.Trim().ToUpper())).SingleOrDefault(); if (mailingDistrict != null) { model.district1 = mailingDistrict.id; model.group_id = mailingDistrict.group_id; } else createNewDistrict = true; } if (createNewDistrict) { recsys_district addNewDistrict = new recsys_district() { code = model.MailingDistrictName.Trim(), name = model.MailingDistrictName.Trim(), group_id = this._db.recsys_group.Where(x => x.name.Equals("Unknown Group For System Migration")).SingleOrDefault().id, region = 4, status = 1, last_update = DateTime.Now, update_user_id = (int)member.infoBySession("id") }; this._db.recsys_district.AddObject(addNewDistrict); this._db.SaveChanges(); model.district1 = this._db.recsys_district.Where(x => x.name.Equals(model.MailingDistrictName.Trim())).SingleOrDefault().id; model.group_id = this._db.recsys_district.Where(x => x.name.Equals(model.MailingDistrictName.Trim())).SingleOrDefault().group_id; } DateTime nowRef = DateTime.Now; //# mapping recsys_customers newCustomer = new recsys_customers() { address1 = model.address1 ?? "", address2 = model.address2 ?? "", code = model.code, contact = model.contact ?? "", create_date = nowRef, last_update = nowRef.AddMilliseconds(-nowRef.Millisecond), center = model.center, manual_input_code = model.manual_input_code ?? "", district1 = model.district1, district2 = model.district2, email = model.email ?? "", fax1 = model.fax1 ?? "", fax2 = model.fax2 ?? "", group_id = model.group_id, name = model.name ?? "", chi_name = model.chi_name ?? "", prefix = model.prefix ?? "", remark = model.remark ?? "", reference_number = model.reference_number ?? "", status = (byte)(model.status.HasValue ? model.status.Value : 1), tel1 = model.tel1 ?? "", tel2 = model.tel2 ?? "", title = (byte)(model.title.HasValue ? model.title.Value : 0), type = (byte)(model.type.HasValue ? model.type.Value : 0), update_user_id = (int) member.infoBySession("id") }; #region Business Logic this.CustomerBusinessLogicProcessing(ref newCustomer, model.Mode); #endregion try { this._db.recsys_customers.AddObject(newCustomer); this._db.SaveChanges(); this._db.Refresh(System.Data.Objects.RefreshMode.StoreWins, newCustomer); model.SaveResult.SavedSuccessfully = true; model.id = newCustomer.id; model.Mode = PageMode.Edit; //# after inserted successfully, switch to edit mode } catch (OptimisticConcurrencyException) { //# log down } return Json(model); }