/// <summary> /// 获取同步数据 /// </summary> /// <param name="ctx"></param> /// <param name="objects"></param> /// <returns></returns> public override IEnumerable <AbsSynchroDataInfo> GetK3Datas(Context ctx, List <DynamicObject> objects, ref HttpResponseResult result) { K3BatchAdjust just = null; List <K3BatchAdjust> justs = null; result = new HttpResponseResult(); result.Success = true; if (objects != null && objects.Count > 0) { justs = new List <K3BatchAdjust>(); foreach (var obj in objects) { if (obj != null) { bool yNInSync = Convert.ToBoolean(SQLUtils.GetFieldValue(obj, "F_HS_YNInSync")); if (!yNInSync) { if (GetK3BatchAdjustEntry(ctx, obj) != null && GetK3BatchAdjustEntry(ctx, obj).Count > 0) { just = new K3BatchAdjust(); just.FBillNo = SQLUtils.GetFieldValue(obj, "BillNo"); just.SrcNo = just.FBillNo; just.FDate = TimeHelper.GetTimeStamp(Convert.ToDateTime(SQLUtils.GetFieldValue(obj, "Date"))); just.F_HS_YNInSync = yNInSync; just.Entry = GetK3BatchAdjustEntry(ctx, obj); justs.Add(just); } } } } } return(justs); }
public override JObject BuildSynchroDataJson(AbsSynchroDataInfo sourceData, SynchroLog log, SynOperationType operationType) { JObject baseData = null; if (sourceData != null) { K3BatchAdjust just = sourceData as K3BatchAdjust; if (just != null) { baseData = new JObject(); baseData.Add("FName", just.FName); baseData.Add("FDate", DateTime.Now); JObject FSaleOrgId = new JObject(); FSaleOrgId.Add("FNumber", "100.01"); baseData.Add("FSaleOrgId", FSaleOrgId); baseData.Add("FBATCHADJUSTENTRY", BuildBatchAdjustEntry(sourceData)); } } return(baseData); }
private JArray BuildBatchAdjustEntry(AbsSynchroDataInfo data) { JArray model = null; JObject baseData = null; if (data != null) { K3BatchAdjust just = data as K3BatchAdjust; if (just != null) { model = new JArray(); if (just.Entry != null && just.Entry.Count > 0) { foreach (var item in just.Entry) { if (item != null) { baseData = new JObject(); baseData.Add("FAdjustType", item.FAdjustType); JObject FPriceListId = new JObject();//价目表 FPriceListId.Add("FNUMBER", item.FPriceListId); baseData.Add("FPriceListId", FPriceListId); JObject FCurrencyId = new JObject();//币别 FCurrencyId.Add("FNUMBER", "USD"); baseData.Add("FCurrencyId", FCurrencyId); baseData.Add("FPriceObject", "A"); baseData.Add("FIsIncludedTax", "true"); JObject FMaterialId = new JObject(); FMaterialId.Add("FNUMBER", item.FMaterialId); baseData.Add("FMaterialId", FMaterialId); JObject FMatUnitId = new JObject(); FMatUnitId.Add("FNUMBER", item.FMatUnitId); baseData.Add("FMatUnitId", FMatUnitId); baseData.Add("FBeforePrice", item.FBeforePrice); baseData.Add("FAfterPrice", item.FAfterPrice); baseData.Add("F_HS_BeforeUSPrice", item.F_HS_BeforeUSPrice); baseData.Add("F_HS_BeforeUSNoPostagePrice", item.F_HS_BeforeUSNoPostagePrice); baseData.Add("F_HS_AfterUSPrice", item.F_HS_AfterUSPrice); baseData.Add("F_HS_AfterUSNoPostagePrice", item.F_HS_AfterUSNoPostagePrice); baseData.Add("F_HS_BeforeEUPrice", 0); baseData.Add("F_HS_AfterEUPrice", item.F_HS_AfterEUPrice); baseData.Add("F_HS_BeforeAUPrice", item.F_HS_BeforeAUPrice); baseData.Add("F_HS_BeforeAUNoPostagePrice", item.F_HS_BeforeAUNoPostagePrice); baseData.Add("F_HS_AfterAUPrice", item.F_HS_AfterAUPrice); baseData.Add("F_HS_AfterAUNoPostagePrice", item.F_HS_AfterAUNoPostagePrice); baseData.Add("F_HS_BeforeJPNoPostagePrice", item.F_HS_BeforeJPNoPostagePrice); baseData.Add("F_HS_AfterJPNoPostagePrice", item.F_HS_AfterJPNoPostagePrice); baseData.Add("F_HS_BeforeKRNoPostagePrice", item.F_HS_BeforeKRNoPostagePrice); baseData.Add("F_HS_AfterKRNoPostagePrice", item.F_HS_AfterKRNoPostagePrice); baseData.Add("F_HS_BeforeUKNoPostagePrice", item.F_HS_BeforeUKNoPostagePrice); baseData.Add("F_HS_AfterUKNoPostagePrice", item.F_HS_AfterUKNoPostagePrice); baseData.Add("F_HS_BeforeDENoPostagePrice", item.F_HS_BeforeDENoPostagePrice); baseData.Add("F_HS_AfterDENoPostagePrice", item.F_HS_AfterDENoPostagePrice); baseData.Add("F_HS_BeforeFRNoPostagePrice", item.F_HS_BeforeFRNoPostagePrice); baseData.Add("F_HS_AfterFRNoPostagePrice", item.F_HS_AfterFRNoPostagePrice); baseData.Add("F_HS_BeforeEUNoPostagePrice", item.F_HS_BeforeEUNoPostagePrice); baseData.Add("F_HS_AfterEUNoPostagePrice", item.F_HS_AfterEUNoPostagePrice); baseData.Add("FBeforeEffDate", item.FBeforeEffDate); baseData.Add("FAfterEffDate", item.FAfterEffDate); baseData.Add("FBeforeUnEffDate", item.FBeforeUnEffDate); baseData.Add("FAfterUnEffDate", item.FAfterUnEffDate); baseData.Add("FUnEffective", ""); model.Add(baseData); } } } } } return(model); }
public override string GetExecuteUpdateSql(Context ctx, List <AbsSynchroDataInfo> datas) { string sql = string.Empty; if (datas != null && datas.Count() > 0) { foreach (var data in datas) { if (data != null) { K3BatchAdjust adjust = data as K3BatchAdjust; if (adjust != null) { sql += string.Format(@"/*dialect*/ update a set a.F_HS_YNInSync = '{0}' from T_SAL_BATCHADJUST a inner join T_SAL_BATCHADJUSTENTRY b on a.FID = b.FID where a.FBILLNO = '{1}' and a.F_HS_YNInSync = '{2}' ", "1", adjust.FBillNo, "0"); sql += string.Format(@"/*dialect*/ update a set a.F_HS_YNEntryInSync = '{0}' from T_SAL_BATCHADJUSTENTRY a inner join T_SAL_BATCHADJUST b on a.FID = b.FID where b.FBILLNO = '{1}' and a.F_HS_YNEntryInSync = '{2}' ", "1", adjust.FBillNo, "0"); if (adjust.Entry != null && adjust.Entry.Count > 0) { foreach (var en in adjust.Entry) { if (en != null) { //如果批量调价单调的特价价目表,不反写销售价目表美国价格、澳洲价格、欧洲价格 if (!en.F_HS_YNSpecialPrice) { if (!string.IsNullOrWhiteSpace(en.F_HS_AfterUSPrice)) { if (Convert.ToDecimal(en.F_HS_AfterUSPrice) > 0) { sql += string.Format(@"/*dialect*/update a set a.F_HS_USPrice = {0} from T_SAL_PRICELISTENTRY a inner join T_SAL_PRICELIST b on a.FID = b.FID inner join T_SAL_BATCHADJUSTENTRY c on c.FPRICELISTID = a.FID and a.FMATERIALID=c.FMATERIALID and a.FUNITID=c.FMATUNITID and a.FEFFECTIVEDATE=c.FAFTEREFFDATE and a.FEXPRIYDATE=c.FAFTERUNEFFDATE inner join T_SAL_BATCHADJUST d on d.FID = c.FID inner join T_BD_MATERIAL e on a.FMATERIALID = e.FMATERIALID where d.FBILLNO = '{1}' and e.FNUMBER = '{2}' and b.FNUMBER = '{3}'" , en.F_HS_AfterUSPrice, adjust.FBillNo, en.FMaterialId, en.FPriceListId) + Environment.NewLine; } } if (!string.IsNullOrWhiteSpace(en.F_HS_AfterUSNoPostagePrice)) { if (Convert.ToDecimal(en.F_HS_AfterUSNoPostagePrice) > 0) { sql += string.Format(@"/*dialect*/update a set a.F_HS_USNoPostagePrice = {0} from T_SAL_PRICELISTENTRY a inner join T_SAL_PRICELIST b on a.FID = b.FID inner join T_SAL_BATCHADJUSTENTRY c on c.FPRICELISTID = a.FID and a.FMATERIALID=c.FMATERIALID and a.FUNITID=c.FMATUNITID and a.FEFFECTIVEDATE=c.FAFTEREFFDATE and a.FEXPRIYDATE=c.FAFTERUNEFFDATE inner join T_SAL_BATCHADJUST d on d.FID = c.FID inner join T_BD_MATERIAL e on a.FMATERIALID = e.FMATERIALID where d.FBILLNO = '{1}' and e.FNUMBER = '{2}' and b.FNUMBER = '{3}'" , en.F_HS_AfterUSNoPostagePrice, adjust.FBillNo, en.FMaterialId, en.FPriceListId) + Environment.NewLine; } } if (!string.IsNullOrWhiteSpace(en.F_HS_AfterAUPrice)) { if (Convert.ToDecimal(en.F_HS_AfterAUPrice) > 0) { sql += string.Format(@"/*dialect*/update a set a.F_HS_AUPrice = {0} from T_SAL_PRICELISTENTRY a inner join T_SAL_PRICELIST b on a.FID = b.FID inner join T_SAL_BATCHADJUSTENTRY c on c.FPRICELISTID = a.FID and a.FMATERIALID=c.FMATERIALID and a.FUNITID=c.FMATUNITID and a.FEFFECTIVEDATE=c.FAFTEREFFDATE and a.FEXPRIYDATE=c.FAFTERUNEFFDATE inner join T_SAL_BATCHADJUST d on d.FID = c.FID inner join T_BD_MATERIAL e on a.FMATERIALID = e.FMATERIALID where d.FBILLNO = '{1}' and e.FNUMBER = '{2}' and b.FNUMBER = '{3}'" , en.F_HS_AfterAUPrice, adjust.FBillNo, en.FMaterialId, en.FPriceListId) + Environment.NewLine; } } if (!string.IsNullOrWhiteSpace(en.F_HS_AfterAUNoPostagePrice)) { if (Convert.ToDecimal(en.F_HS_AfterAUNoPostagePrice) > 0) { sql += string.Format(@"/*dialect*/update a set a.F_HS_AUNoPostagePrice = {0} from T_SAL_PRICELISTENTRY a inner join T_SAL_PRICELIST b on a.FID = b.FID inner join T_SAL_BATCHADJUSTENTRY c on c.FPRICELISTID = a.FID and a.FMATERIALID=c.FMATERIALID and a.FUNITID=c.FMATUNITID and a.FEFFECTIVEDATE=c.FAFTEREFFDATE and a.FEXPRIYDATE=c.FAFTERUNEFFDATE inner join T_SAL_BATCHADJUST d on d.FID = c.FID inner join T_BD_MATERIAL e on a.FMATERIALID = e.FMATERIALID where d.FBILLNO = '{1}' and e.FNUMBER = '{2}' and b.FNUMBER = '{3}'" , en.F_HS_AfterAUNoPostagePrice, adjust.FBillNo, en.FMaterialId, en.FPriceListId) + Environment.NewLine; } } if (!string.IsNullOrWhiteSpace(en.F_HS_AfterEUPrice)) { if (Convert.ToDecimal(en.F_HS_AfterEUPrice) > 0) { sql += string.Format(@"/*dialect*/update a set a.F_HS_EUPrice = {0} from T_SAL_PRICELISTENTRY a inner join T_SAL_PRICELIST b on a.FID = b.FID inner join T_SAL_BATCHADJUSTENTRY c on c.FPRICELISTID = a.FID and a.FMATERIALID=c.FMATERIALID and a.FUNITID=c.FMATUNITID and a.FEFFECTIVEDATE=c.FAFTEREFFDATE and a.FEXPRIYDATE=c.FAFTERUNEFFDATE inner join T_SAL_BATCHADJUST d on d.FID = c.FID inner join T_BD_MATERIAL e on a.FMATERIALID = e.FMATERIALID where d.FBILLNO = '{1}' and e.FNUMBER = '{2}' and b.FNUMBER = '{3}'" , en.F_HS_AfterEUPrice, adjust.FBillNo, en.FMaterialId, en.FPriceListId) + Environment.NewLine; } } if (!string.IsNullOrWhiteSpace(en.F_HS_AfterJPNoPostagePrice)) { if (Convert.ToDecimal(en.F_HS_AfterJPNoPostagePrice) > 0) { sql += string.Format(@"/*dialect*/update a set a.F_HS_JPNoPostagePrice = {0} from T_SAL_PRICELISTENTRY a inner join T_SAL_PRICELIST b on a.FID = b.FID inner join T_SAL_BATCHADJUSTENTRY c on c.FPRICELISTID = a.FID and a.FMATERIALID=c.FMATERIALID and a.FUNITID=c.FMATUNITID and a.FEFFECTIVEDATE=c.FAFTEREFFDATE and a.FEXPRIYDATE=c.FAFTERUNEFFDATE inner join T_SAL_BATCHADJUST d on d.FID = c.FID inner join T_BD_MATERIAL e on a.FMATERIALID = e.FMATERIALID where d.FBILLNO = '{1}' and e.FNUMBER = '{2}' and b.FNUMBER = '{3}'" , en.F_HS_AfterJPNoPostagePrice, adjust.FBillNo, en.FMaterialId, en.FPriceListId) + Environment.NewLine; } } if (!string.IsNullOrWhiteSpace(en.F_HS_AfterKRNoPostagePrice)) { if (Convert.ToDecimal(en.F_HS_AfterKRNoPostagePrice) > 0) { sql += string.Format(@"/*dialect*/update a set a.F_HS_KRNoPostagePrice = {0} from T_SAL_PRICELISTENTRY a inner join T_SAL_PRICELIST b on a.FID = b.FID inner join T_SAL_BATCHADJUSTENTRY c on c.FPRICELISTID = a.FID and a.FMATERIALID=c.FMATERIALID and a.FUNITID=c.FMATUNITID and a.FEFFECTIVEDATE=c.FAFTEREFFDATE and a.FEXPRIYDATE=c.FAFTERUNEFFDATE inner join T_SAL_BATCHADJUST d on d.FID = c.FID inner join T_BD_MATERIAL e on a.FMATERIALID = e.FMATERIALID where d.FBILLNO = '{1}' and e.FNUMBER = '{2}' and b.FNUMBER = '{3}'" , en.F_HS_AfterKRNoPostagePrice, adjust.FBillNo, en.FMaterialId, en.FPriceListId) + Environment.NewLine; } } if (!string.IsNullOrWhiteSpace(en.F_HS_AfterEUNoPostagePrice)) { if (Convert.ToDecimal(en.F_HS_AfterEUNoPostagePrice) > 0) { sql += string.Format(@"/*dialect*/update a set a.F_HS_EUNoPostagePrice = {0} from T_SAL_PRICELISTENTRY a inner join T_SAL_PRICELIST b on a.FID = b.FID inner join T_SAL_BATCHADJUSTENTRY c on c.FPRICELISTID = a.FID and a.FMATERIALID=c.FMATERIALID and a.FUNITID=c.FMATUNITID and a.FEFFECTIVEDATE=c.FAFTEREFFDATE and a.FEXPRIYDATE=c.FAFTERUNEFFDATE inner join T_SAL_BATCHADJUST d on d.FID = c.FID inner join T_BD_MATERIAL e on a.FMATERIALID = e.FMATERIALID where d.FBILLNO = '{1}' and e.FNUMBER = '{2}' and b.FNUMBER = '{3}'" , en.F_HS_AfterEUNoPostagePrice, adjust.FBillNo, en.FMaterialId, en.FPriceListId) + Environment.NewLine; } } } } } } } } } } return(sql); }