public override AbsSynchroDataInfo BuildSynchroData(Context ctx, string json, AbsSynchroDataInfo data = null)
        {
            JArray jArr = JArray.Parse(json);

            List <K3CustContactInfo> contacts = null;
            K3CustContactInfo        contact  = null;
            K3CustomerInfo           k3Cust   = null;

            List <string> addrNos = null;

            if (jArr != null && jArr.Count > 0)
            {
                addrNos = jArr.Select(j => JsonUtils.GetFieldValue(j, "address_book_id")).ToList();
            }

            if (addrNos != null && addrNos.Count > 0)
            {
                string sql = string.Format(@"/*dialect*/ select a.FNUMBER as CUSTNO,b.FNUMBER as ADDRNO
                                                        from T_BD_CUSTOMER a
                                                        inner join T_BD_CUSTLOCATION b
                                                        on a.FCUSTID = b.FCUSTID
                                                        where b.FNUMBER in( '{0}') ", string.Join("','", addrNos));

                DynamicObjectCollection coll = SQLUtils.GetObjects(ctx, sql);
                var group = from o in coll
                            group o by SQLUtils.GetFieldValue(o, "CUSTNO")
                            into c
                            select c;

                if (group != null && group.Count() > 0)
                {
                    foreach (var g in group)
                    {
                        if (g != null)
                        {
                            contacts       = new List <K3CustContactInfo>();
                            k3Cust         = new K3CustomerInfo();
                            k3Cust.FNumber = SQLUtils.GetFieldValue(g.ElementAt(0), "CUSTNO");

                            foreach (var s in g)
                            {
                                if (s != null)
                                {
                                    contact          = new K3CustContactInfo();
                                    contact.FNUMBER1 = SQLUtils.GetFieldValue(s, "ADDRNO");
                                    contacts.Add(contact);
                                }
                            }
                            k3Cust.lstCustCtaInfo = contacts;
                        }
                    }
                }
            }
            return(k3Cust);
        }
        /// <summary>
        /// 客户地址(数据源:execl)
        /// </summary>
        /// <returns></returns>
        public static List <K3CustContactInfo> GetK3CustContactInfoByExcel(Context ctx)
        {
            List <K3CustContactInfo> contacts = null;
            K3CustContactInfo        contact  = null;

            string sql = null;
            DynamicObjectCollection coll = null;

            sql  = string.Format(@"/*dialect*/ select * from address_book  t 
                                                where countries_iso_code_2 != 'NULL'
                                                and  not exists (
					                                                select  distinct b.FNUMBER , a.FNUMBER  
					                                                from T_BD_CUSTLOCATION a
					                                                inner join T_BD_CUSTOMER b on a.FCUSTID = b.FCUSTID
					                                                where  b.FNUMBER = t.customers_id and a.FNUMBER = t.address_book_id
				                                                ) 
                                                  ");
            coll = SQLUtils.GetObjects(ctx, sql);

            if (coll != null && coll.Count > 0)
            {
                contacts = new List <K3CustContactInfo>();

                foreach (var item in coll)
                {
                    contact = new K3CustContactInfo();

                    contact.FCustNo  = SQLUtils.GetFieldValue(item, "customers_id");
                    contact.FNUMBER1 = SQLUtils.GetFieldValue(item, "address_book_id");

                    contact.FNAME1 = SQLUtils.GetFieldValue(item, "entry_street_address") + " "
                                     + SQLUtils.GetFieldValue(item, "entry_city") + "  "
                                     + SQLUtils.GetFieldValue(item, "entry_state") + " "
                                     + SQLUtils.GetFieldValue(item, "countries_iso_code_2");

                    contact.FADDRESS1 = SQLUtils.GetFieldValue(item, "entry_street_address");
                    contact.FTTel     = SQLUtils.GetFieldValue(item, "entry_telephone");

                    contact.F_HS_DeliveryName = SQLUtils.GetFieldValue(item, "entry_firstname") + " "
                                                + SQLUtils.GetFieldValue(item, "entry_lastname");

                    contact.F_HS_PostCode          = SQLUtils.GetFieldValue(item, "entry_postcode");
                    contact.F_HS_DeliveryCity      = SQLUtils.GetFieldValue(item, "entry_city");
                    contact.F_HS_DeliveryProvinces = SQLUtils.GetFieldValue(item, "entry_state");
                    contact.F_HS_RecipientCountry  = SQLUtils.GetFieldValue(item, "countries_iso_code_2");

                    contacts.Add(contact);
                }
            }


            return(contacts);
        }
Example #3
0
        /// <summary>
        /// 验证客户地址是否已经存在
        /// </summary>
        /// <param name="ctx"></param>
        /// <param name="contact"></param>
        /// <returns></returns>
        public bool CustAdrrIsExistInK3(Context ctx, K3CustContactInfo contact)
        {
            string sql = string.Empty;

            try
            {
                if (contact != null)
                {
                    sql = string.Format(@"/*dialect*/ select FNUMBER from T_BD_CUSTLOCATION where FNUMBER = '{0}'", contact.FNUMBER1);
                    DynamicObjectCollection coll = SQLUtils.GetObjects(ctx, sql);

                    if (coll != null)
                    {
                        if (coll.Count >= 2)
                        {
                            return(true);
                        }
                        else
                        {
                            if (coll.Count == 1)
                            {
                                sql = string.Format(@"/*dialect*/ delete from T_BD_CUSTLOCATION where FNUMBER = '{0}'", contact.FNUMBER1);
                                int count = DBUtils.Execute(ctx, sql);

                                if (count > 0)
                                {
                                    return(false);
                                }
                            }
                            else if (coll.Count == 0)
                            {
                                return(false);
                            }
                        }
                    }

                    return(false);
                }
            }
            catch (Exception ex)
            {
                LogUtils.WriteSynchroLog(ctx, SynchroDataType.CustomerAddress, "客户地址同步失败:" + System.Environment.NewLine + ex.Message + System.Environment.NewLine + ex.StackTrace);
            }

            return(false);
        }
Example #4
0
        /// <summary>
        /// 客户地址信息
        /// </summary>
        /// <param name="cust"></param>
        /// <returns></returns>
        public JArray BuildK3CustContactJsons(K3CustomerInfo cust)
        {
            JArray  FT_BD_CUSTCONTACT = null;
            JObject contactObj        = null;

            if (cust != null)
            {
                FT_BD_CUSTCONTACT = new JArray();

                if (cust.lstCustCtaInfo != null && cust.lstCustCtaInfo.Count > 0)
                {
                    for (int i = 0; i < cust.lstCustCtaInfo.Count; i++)
                    {
                        contactObj = new JObject();

                        K3CustContactInfo contactData = cust.lstCustCtaInfo.ElementAt(i);
                        contactObj.Add("FNUMBER1", contactData.FNUMBER1);   //地址编码
                        contactObj.Add("FNAME1", contactData.FNAME1);       //地点名称
                        contactObj.Add("FADDRESS1", contactData.FADDRESS1); //详细地址
                        //contactObj.Add("FTTel", contactData.FTTel);//移动电话
                        contactObj.Add("FMOBILE", contactData.FMOBILE);
                        contactObj.Add("F_HS_DeliveryName", contactData.F_HS_DeliveryName);           //交货联系人
                        contactObj.Add("F_HS_PostCode", contactData.F_HS_PostCode);                   //交货邮编
                        contactObj.Add("F_HS_DeliveryCity", contactData.F_HS_DeliveryCity);           //交货城市
                        contactObj.Add("F_HS_DeliveryProvinces", contactData.F_HS_DeliveryProvinces); //交货省份

                        if (string.IsNullOrWhiteSpace(contactData.F_HS_RecipientCountry))
                        {
                            string errorInfo = "客户地址同步,客户编码为:[" + contactData.FCustNo + "]的信息国家编码为空!";
                            LogUtils.WriteSynchroLog(this.K3CloudContext, SynchroDataType.CustomerAddress, errorInfo);
                        }

                        JObject F_HS_RecipientCountry = new JObject();//国家
                        F_HS_RecipientCountry.Add("FNumber", contactData.F_HS_RecipientCountry);
                        contactObj.Add("F_HS_RecipientCountry", F_HS_RecipientCountry);

                        FT_BD_CUSTCONTACT.Add(contactObj);
                    }
                }
            }

            return(FT_BD_CUSTCONTACT);
        }
        /// <summary>
        /// 客户地址信息
        /// </summary>
        /// <param name="cust"></param>
        /// <returns></returns>
        public JArray BuildK3CustContactJsons(K3CustomerInfo cust)
        {
            JArray  FT_BD_CUSTCONTACT = null;
            JObject contactObj        = null;

            if (cust != null)
            {
                FT_BD_CUSTCONTACT = new JArray();

                if (cust.lstCustCtaInfo != null && cust.lstCustCtaInfo.Count > 0)
                {
                    for (int i = 0; i < cust.lstCustCtaInfo.Count; i++)
                    {
                        contactObj = new JObject();

                        K3CustContactInfo contactData = cust.lstCustCtaInfo.ElementAt(i);
                        contactObj.Add("FNUMBER1", contactData.FNUMBER1);                             //地址编码
                        contactObj.Add("FNAME1", contactData.FNAME1);                                 //地点名称
                        contactObj.Add("FADDRESS1", contactData.FADDRESS1);                           //详细地址
                        contactObj.Add("FTTel", contactData.FMOBILE);                                 //移动电话
                        contactObj.Add("F_HS_DeliveryName", contactData.F_HS_DeliveryName);           //交货联系人
                        contactObj.Add("F_HS_PostCode", contactData.F_HS_PostCode);                   //交货邮编
                        contactObj.Add("F_HS_DeliveryCity", contactData.F_HS_DeliveryCity);           //交货城市
                        contactObj.Add("F_HS_DeliveryProvinces", contactData.F_HS_DeliveryProvinces); //交货省份

                        JObject F_HS_RecipientCountry = new JObject();                                //国家
                        F_HS_RecipientCountry.Add("FNumber", contactData.F_HS_RecipientCountry);
                        contactObj.Add("F_HS_RecipientCountry", F_HS_RecipientCountry);

                        FT_BD_CUSTCONTACT.Add(contactObj);
                    }
                }
            }

            return(FT_BD_CUSTCONTACT);
        }
Example #6
0
        public override AbsSynchroDataInfo BuildSynchroData(Context ctx, string json, AbsSynchroDataInfo data = null)
        {
            JArray jArr = JArray.Parse(json);

            List <K3CustContactInfo> contacts = null;
            K3CustContactInfo        contact  = null;

            if (jArr != null && jArr.Count > 0)
            {
                contacts = new List <K3CustContactInfo>();

                for (int i = 0; i < jArr.Count; i++)
                {
                    JObject jObj = jArr[i] as JObject;
                    contact = new K3CustContactInfo();

                    contact.FCustNo  = JsonUtils.GetFieldValue(jObj, "customers_id");
                    contact.FNUMBER1 = JsonUtils.GetFieldValue(jObj, "address_book_id");

                    contact.FNAME1 = JsonUtils.GetFieldValue(jObj, "entry_street_address") + " "
                                     + JsonUtils.GetFieldValue(jObj, "entry_city") + "  "
                                     + JsonUtils.GetFieldValue(jObj, "entry_state") + " "
                                     + JsonUtils.GetFieldValue(jObj, "countries_iso_code_2");

                    contact.FADDRESS1 = JsonUtils.GetFieldValue(jObj, "entry_street_address") + System.Environment.NewLine
                                        + JsonUtils.GetFieldValue(jObj, "entry_suburb");
                    //contact.FTTel = JsonUtils.GetFieldValue(jObj, "entry_telephone");
                    contact.FMOBILE           = JsonUtils.GetFieldValue(jObj, "entry_telephone");
                    contact.F_HS_DeliveryName = JsonUtils.GetFieldValue(jObj, "entry_firstname") + " "
                                                + JsonUtils.GetFieldValue(jObj, "entry_lastname");

                    contact.F_HS_PostCode          = JsonUtils.GetFieldValue(jObj, "entry_postcode");
                    contact.F_HS_DeliveryCity      = JsonUtils.GetFieldValue(jObj, "entry_city");
                    contact.F_HS_DeliveryProvinces = JsonUtils.GetFieldValue(jObj, "entry_state");
                    contact.F_HS_RecipientCountry  = JsonUtils.GetFieldValue(jObj, "countries_iso_code_2");

                    if (string.IsNullOrWhiteSpace(contact.F_HS_RecipientCountry))
                    {
                        string errorInfo = "客户地址同步,客户编码为:[" + contact.FCustNo + "]的信息国家编码为空!";
                        LogUtils.WriteSynchroLog(ctx, SynchroDataType.CustomerAddress, errorInfo);
                    }

                    contacts.Add(contact);
                }
            }

            if (contacts != null && contacts.Count > 0)
            {
                K3CustomerInfo k3Cust = GetCustomerByNo(ctx, contacts.ElementAt(0).FCustNo);
                if (k3Cust != null)
                {
                    if (string.IsNullOrWhiteSpace(k3Cust.FFCOUNTRY))
                    {
                        k3Cust.FFCOUNTRY = contacts.Select(c => c.F_HS_RecipientCountry).ToList().ElementAt(0);
                    }
                    k3Cust.lstCustCtaInfo = contacts;
                    return(k3Cust);
                }
                else
                {
                    k3Cust = new K3CustomerInfo();
                    k3Cust.lstCustCtaInfo = contacts;
                    return(k3Cust);
                }
            }
            return(null);
        }