public SOComplaintInfo CreateComplain(SOComplaintCotentInfo info) { SOComplaintInfo soComplaintInfo = null; if (info != null) { soComplaintInfo = ObjectFactory <SOComplainAppService> .Instance.AddSOComplaintInfo(info); } return(soComplaintInfo); }
//添加投诉 /// <summary> /// 添加投诉 /// </summary> /// <param name="info">请求的实体</param> public virtual SOComplaintInfo Create(SOComplaintCotentInfo info) { if (info.Subject != null) { info.Subject = info.Subject.Trim(); } SOInfo soEntity = null; if (info.SOSysNo.HasValue) { soEntity = ObjectFactory <SOProcessor> .Instance.GetSOBySOSysNo(info.SOSysNo.Value); if (null == soEntity) { BizExceptionHelper.Throw("SO_SOIsNotExist"); } info.CustomerSysNo = soEntity.BaseInfo.CustomerSysNo; //如果传入的邮箱和电话都是空的,需要获取用户邮箱和电话 if (string.IsNullOrEmpty(info.CustomerPhone) && string.IsNullOrEmpty(info.CustomerEmail)) { CustomerInfo customerInfo = ExternalDomainBroker.GetCustomerInfo(info.CustomerSysNo.Value); info.CustomerEmail = customerInfo.BasicInfo.Email; info.CustomerPhone = customerInfo.BasicInfo.Phone; } } if (string.IsNullOrEmpty(info.ComplainSourceType)) { info.ComplainSourceType = AppSettingHelper.ComplainSourceTypeDefault; } object oldComplainID = null; SOComplaintInfo soComplaintInfo = new SOComplaintInfo(); soComplaintInfo.ComplaintCotentInfo = info; if (ObjectFactory <ISOComplainDA> .Instance.IsSameCaseExist(info, ref oldComplainID)) { soComplaintInfo.ProcessInfo.Status = SOComplainStatus.Abandoned; soComplaintInfo.ProcessInfo.ComplainNote = ResourceHelper.Get("SO_Complain_SameOrder", oldComplainID); } if (!string.IsNullOrEmpty(soComplaintInfo.ComplaintCotentInfo.ComplainContent)) { soComplaintInfo.ComplaintCotentInfo.ComplainContent = ResourceHelper.Get("SO_Complain_ContentFormat" , DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")) + "\r\n" + soComplaintInfo.ComplaintCotentInfo.ComplainContent; } soComplaintInfo.ComplaintCotentInfo.ComplainTime = DateTime.Now; m_da.InsertComplainMaster(soComplaintInfo); AddHistory(soComplaintInfo, ReplyOperatorType.Add); return(soComplaintInfo); }
/// <summary> /// 是否已存在相同的Case /// </summary> /// <param name="info">投诉内容实体</param> /// <param name="oldComplainID">已存在的相关投诉</param> /// <returns>如果存在返回真,否则返回假</returns> public bool IsSameCaseExist(SOComplaintCotentInfo info, ref object oldComplainID) { // 距当前时间一个工作日的时间点 DateTime tmpStarttime = CommonUtility.AddWorkMinute(DateTime.Now, -1 * 60 * 9); CustomDataCommand cmd = DataCommandManager.CreateCustomDataCommandFromConfig("IsSameComplainCaseExist"); cmd.AddInputParameter("@SOSysNo", DbType.Int32, info.SOSysNo); cmd.AddInputParameter("@CustomerSysno", DbType.Int32, info.CustomerSysNo); cmd.AddInputParameter("@Subject", DbType.String, info.Subject.Trim()); cmd.AddInputParameter("@StartTime", DbType.DateTime, tmpStarttime); cmd.AddInputParameter("@CompanyCode", DbType.AnsiStringFixedLength, info.CompanyCode); oldComplainID = cmd.ExecuteScalar(); return(oldComplainID != null); }
/// <summary> /// 转换投诉 /// </summary> /// <param name="entity"></param> /// <returns></returns> public virtual void TransComplaint(int callingSysNO, SOComplaintCotentInfo complaintInfo) { CallsEvents entity = ObjectFactory <CallsEventsProcessor> .Instance.Load(callingSysNO); entity.ReferenceType = CallingReferenceType.Complain; using (TransactionScope scope = new TransactionScope()) { complaintInfo.CompanyCode = entity.CompanyCode; entity.ReferenceSysNo = ExternalDomainBroker.AddComplain(complaintInfo).SysNo; ObjectFactory <CallsEventsProcessor> .Instance.UpdateReference(entity); ObjectFactory <CallsEventsProcessor> .Instance.CloseCallsEvents(entity); scope.Complete(); } }
/// <summary> /// 创建投诉信息 /// </summary> /// <param name="info"></param> public virtual SOComplaintInfo AddSOComplaintInfo(SOComplaintCotentInfo info) { return(ComplainProcessor.Create(info)); }
//public SOStatus GetSOStatus(int soSysNo) //{ // throw new NotImplementedException(); //} public SOComplaintCotentInfo AddComplain(SOComplaintCotentInfo info) { return(ObjectFactory <SOComplainProcessor> .Instance.Create(info).ComplaintCotentInfo); }
private void btnAdd_Click(object sender, RoutedEventArgs e) { var vm = addContext.DataContext as SOInternalMemoInfoVM; //验证控件输入 ValidationManager.Validate(addContext); if (vm.ValidationErrors.Count > 0) { return; } var req = vm.ConvertVM <SOInternalMemoInfoVM, SOInternalMemoInfo>(); req.LogTime = DateTime.Now; req.RemindTime_Date = dpDate.SelectedDate; req.RemainTime_Time = dpTime.Value; (new SOInternalMemoFacade(CPApplication.Current.CurrentPage)).Create(req, (obj, args) => { if (args.FaultsHandle()) { return; } else { //判断是否添加投诉 //添加新的投诉单 if (cbAddComplain.IsChecked.Value) { //获取时间需要异步 DateTimeHelper.GetServerTimeNow(ConstValue.DomainName_SO, p => { var newComplain = new SOComplaintCotentInfo() { SOSysNo = req.SOSysNo, ComplainType = cmbComplainType.SelectedValue.ToString(), //类型转换为电话(默认) Subject = string.Format(ResSOInternalMemo.Msg_ComplainSubject, req.SOSysNo, p), ComplainContent = txtNote.Text, //内容和跟进日志内容相同 }; (new SOComplainFacade(CPApplication.Current.CurrentPage)).Create(newComplain, (cobj, cargs) => { if (cargs.FaultsHandle()) { //创建失败 return; } if (RefreshComplian != null) { RefreshComplian(); } }); }); } CPApplication.Current.CurrentPage.Context.Window.Alert(ResSOInternalMemo.Msg_publicMemoAddNewInfo); if (RefreshLog != null) { RefreshLog(); } } }); }
public void CallingToComplain(SOComplaintCotentInfo request, EventHandler <RestClientEventArgs <dynamic> > callback) { string relativeUrl = "/CustomerService/CallsEvents/CallingToComplain"; restClient.Create(relativeUrl, request, callback); }
public void Create(SOComplaintCotentInfo req, EventHandler <RestClientEventArgs <dynamic> > callback) { req.CompanyCode = CPApplication.Current.CompanyCode; restClient.Create("/SOService/SO/CreateComplain", req, callback); }
public void CallingToComplain(SOComplaintCotentInfo request) { ObjectFactory <CallsEventsAppService> .Instance.CallingToComplaint(request); }