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)");
        }
예제 #3
0
        //构建线索单据数据包
        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);
        }