public bool isBump(BumpAnalysisResultEntrity ResultEntrity) { bool flag = false; if ((ResultEntrity == null) || (ResultEntrity.BumpFields.Count == 0)) { return(false); } IEnumerable <IDataEntityProperty> dirtyProperties = this.BillModel.DataObject.DataEntityState.GetDirtyProperties(); using (List <BumpTypeField> .Enumerator enumerator = ResultEntrity.BumpFields.GetEnumerator()) { while (enumerator.MoveNext()) { Func <IDataEntityProperty, bool> predicate = null; BumpTypeField field = enumerator.Current; if (predicate == null) { predicate = p => p.Name.Trim().ToUpper() == field.field.DynamicProperty.Name.Trim().ToUpper(); } IEnumerable <IDataEntityProperty> enumerable2 = dirtyProperties.Where <IDataEntityProperty>(predicate); if (!enumerable2.IsNullOrEmpty() && (enumerable2.Count <IDataEntityProperty>() > 0)) { this.isdirtybump = true; return(true); } } } if (this.BillModel.DataObject.DynamicObjectType.Properties.Contains("MultiLanguageText")) { LocalDynamicObjectCollection objects = (LocalDynamicObjectCollection)this.BillModel.DataObject["MultiLanguageText"]; if ((objects == null) || (objects.Count <= 0)) { return(flag); } foreach (DynamicObject obj2 in objects) { dirtyProperties = obj2.DataEntityState.GetDirtyProperties(); using (List <BumpTypeField> .Enumerator enumerator3 = ResultEntrity.BumpFields.GetEnumerator()) { while (enumerator3.MoveNext()) { Func <IDataEntityProperty, bool> func2 = null; BumpTypeField field = enumerator3.Current; if (func2 == null) { func2 = p => p.Name.Trim().ToUpper() == field.field.DynamicProperty.Name.Trim().ToUpper(); } IEnumerable <IDataEntityProperty> enumerable3 = dirtyProperties.Where <IDataEntityProperty>(func2); if (!enumerable3.IsNullOrEmpty() && (enumerable3.Count <IDataEntityProperty>() > 0)) { this.isdirtybump = true; return(true); } } } } } return(flag); }
public string GetReslutFileter(BumpAnalysisResultEntrity ResultEntrity, FormMetadata entitryMeta) { string str8; string str = ""; foreach (BumpTypeField field in ResultEntrity.BumpFields) { string key = field.field.FieldName; string str3 = this.GetFieldData(this.BillModel.GetValue(key)).Trim(); string str4 = field.matching; if (!string.IsNullOrEmpty(str3)) { //str = str + "or " + key + ((str4 == "100") ? ("='" + str3.ToString() + "' ") : (" LIKE '%" + str3.ToString() + "%' ")); str = string.Format(@"{0}or {1}", str, (str4 == "100")?string.Format(@"{1} = '{0}' ", str3.ToString(), key):string.Format(@"((CHARINDEX({0},'{1}') > 0 or {2} LIKE '%{3}%') and {4} <> '') ", key, str3.ToString(), key, str3.ToString(), key)); } } if (str != "") { str = "(" + str.Substring(2, str.Length - 2) + ") "; } string fieldName = entitryMeta.BusinessInfo.GetBillNoField().FieldName; string fieldData = this.GetFieldData(this.BillModel.GetValue(fieldName)); if (fieldData.Trim().Length > 0) { fieldData = fieldData.Replace("'", "''"); string str7 = str; str = str7 + " and " + fieldName + "<>'" + fieldData + "'"; } if ((ResultEntrity.ParaFields["FExpdate"] == null) || ((str8 = entitryMeta.Id) == null)) { return(str); } if (str8 != "CRM_CUST") { if (str8 != "CRM_OPP_Opportunity") { return(str); } } else { return(str + $" and (DATEDIFF(D,FLastContactDate,GETDATE())<{Convert.ToDouble(ResultEntrity.ParaFields["FExpdate"])} or FLastContactDate is null)"); } return(str + $" and (DATEDIFF(D,flastcondate,GETDATE())<{Convert.ToDouble(ResultEntrity.ParaFields["FExpdate"])} or flastcondate is null)"); }
//构建线索单据数据包 public string bumpAnalyse(string parameterJson) { JObject jsonRoot = new JObject(); //根节点 JObject mBEntry = new JObject(); //model中单据体,存储普通变量,baseData JArray entrys = new JArray(); //单个model中存储多行分录体集合,存储mBentry //string value = HttpContext.Current.Request.Form["Data"];//获取前端传递过来的单据必要信息 //JObject jObject = (JObject)JsonConvert.DeserializeObject(value);//反序列化成JObject对象 //F_PEJK_ClueName = jObject["F_PEJK_ClueName"]!=null&& !jObject["F_PEJK_ClueName"].Equals("")? jObject["F_PEJK_ClueName"].ToString():""; //FRemarks = jObject["FRemarks"] != null && !jObject["FRemarks"].Equals("") ? jObject["FRemarks"].ToString() : ""; //FCustomerName = jObject["FCustomerName"] != null && !jObject["FCustomerName"].Equals("") ? jObject["FCustomerName"].ToString() : ""; //F_PEJK_ReqDeptId = jObject["F_PEJK_ReqDeptId"] != null && !jObject["F_PEJK_ReqDeptId"].Equals("") ? jObject["F_PEJK_ReqDeptId"].ToString() : ""; //FContactName = jObject["FContactName"] != null && !jObject["FContactName"].Equals("") ? jObject["FContactName"].ToString() : ""; //FPhone = jObject["FPhone"] != null && !jObject["FPhone"].Equals("") ? jObject["FPhone"].ToString() : ""; //BumpResult = jObject["BumpResult"].ToString(); BumpResult = "立体仓库沈阳新松小高"; Action <IDynamicFormViewService> fillBillPropertys = new Action <IDynamicFormViewService>(fillPropertys); IBillModel BillNodel = CRMServiceHelper.installBumpBillData(Ctx, "CRM_OPP_Clue", fillBillPropertys); IKEEPERBumpAnalysisCommon bumpCommon = KEEPERBumpAnalysisFactory.CreateBumpAnalysis(Ctx, BillNodel, BillNodel.BusinessInfo.GetForm().Id); BumpAnalysisResultEntrity resultEntry = bumpCommon.ResultEntrity; Dictionary <string, Hashtable> bumpResult = resultEntry.DicMacthDesc; if (bumpResult.Count <= 0) { jsonRoot.Add("bumpResult", "fasle"); return(JsonConvert.SerializeObject(jsonRoot)); } foreach (Hashtable item in bumpResult.Values) { mBEntry = new JObject(); foreach (DictionaryEntry de in item) { mBEntry.Add(Convert.ToString(de.Key), Convert.ToString(de.Value)); } entrys.Add(mBEntry); } jsonRoot.Add("bumpResult", entrys); return(JsonConvert.SerializeObject(jsonRoot)); }
public BumpAnalysisResultEntrity Get_Bumpfields(string FormID, FormMetadata entitryMeta) { BumpAnalysisResultEntrity entrity = new BumpAnalysisResultEntrity(); entrity.BumpAnalysisFields = new Dictionary <string, BumpAnalysisFields>(); string strFilter = $"FBumpFormID='{FormID}'"; DynamicObject[] objArray = BusinessDataServiceHelper.Load(this.Context, "CRM_BumpAnalysisSettingEntity", null, OQLFilter.CreateHeadEntityFilter(strFilter)); if (objArray.Length == 0) { return(null); } DynamicObjectCollection objects = (objArray != null) ? ((DynamicObjectCollection)objArray[0]["FEntity"]) : null; List <Field> list = new List <Field>(); List <FieldAppearance> list2 = new List <FieldAppearance>(); List <BumpTypeField> list3 = new List <BumpTypeField>(); if (entrity.ParaFields == null) { entrity.ParaFields = new Hashtable(); } string str2 = ""; foreach (DynamicObject obj2 in objects) { if (obj2["settype"].ToString() == "1") { if ((bool)obj2["BUMPSHOW"]) { string key = obj2["FIELDNAME"].ToString(); Field item = entitryMeta.BusinessInfo.GetField(key); if (item != null) { list.Add(item); } FieldAppearance fieldAppearance = entitryMeta.GetLayoutInfo().GetFieldAppearance(key); if (fieldAppearance != null) { list2.Add(fieldAppearance); } if (item != null) { string str4 = item.EntityKey + "_" + item.PropertyName; if (!entrity.BumpAnalysisFields.ContainsKey(str4)) { BumpAnalysisFields fields = new BumpAnalysisFields(str4, new BumpTypeField(item), fieldAppearance, true, false); entrity.BumpAnalysisFields.Add(str4, fields); } else { entrity.BumpAnalysisFields[str4].BumpFields = new BumpTypeField(item); entrity.BumpAnalysisFields[str4].LayoutInfoAppearance = fieldAppearance; entrity.BumpAnalysisFields[str4].IsShowField = true; } } } if ((bool)obj2["SELECTED"]) { string str5 = obj2["FIELDNAME"].ToString(); string str6 = this.GetFieldData(this.BillModel.GetValue(str5)).Replace("'", "''"); string str7 = obj2["Matching"].ToString(); if (!string.IsNullOrEmpty(str6)) { str2 = str2 + "or " + str5 + ((str7 == "100") ? ("='" + str6.ToString() + "' ") : (" LIKE '%" + str6.ToString() + "%' ")); } Field field = entitryMeta.BusinessInfo.GetField(str5); if (field != null) { list3.Add(new BumpTypeField(field, str7)); } if (field != null) { string str8 = field.EntityKey + "_" + field.PropertyName; FieldAppearance appearance2 = entitryMeta.GetLayoutInfo().GetFieldAppearance(str5); if (!entrity.BumpAnalysisFields.ContainsKey(str8)) { BumpAnalysisFields fields2 = new BumpAnalysisFields(str8, new BumpTypeField(field, str7), appearance2, false, true); entrity.BumpAnalysisFields.Add(str8, fields2); } else { entrity.BumpAnalysisFields[str8].BumpFields = new BumpTypeField(field, str7); entrity.BumpAnalysisFields[str8].IsBumpField = true; } } } } else if ((obj2["settype"].ToString() == "2") && ((bool)obj2["selected"])) { string str9 = obj2["FIELDNAME"].ToString(); string str10 = obj2["Matching"].ToString(); entrity.ParaFields.Add(str9, str10); } } entrity.BumpFields = list3; entrity.BusinessInfoField = list; entrity.LayoutInfoAppearance = list2; return(entrity); }