public override AbsSynchroDataInfo BuildSynchroData(Context ctx, string json, AbsSynchroDataInfo data = null) { K3SalOrderInfo so = null; JObject jobj = JsonUtils.ParseJson2JObj(ctx, this.DataType, json); if (jobj != null) { so = new K3SalOrderInfo(); string payStatus = JsonUtils.GetFieldValue(jobj, "order_status"); if ("1".Equals(payStatus)) { so.F_HS_SaleOrderSource = "HCWebPendingOder"; //订单来源 so.F_HS_PaymentStatus = "2"; //未付款 } else if ("2".Equals(payStatus)) { so.F_HS_SaleOrderSource = "HCWebProcessingOder"; //订单来源 so.F_HS_PaymentStatus = "3"; //已到款 } so.FBillNo = JsonUtils.GetFieldValue(jobj, "orders_id"); so.F_HS_PaymentModeNew = JsonUtils.GetFieldValue(jobj, "payment"); so.F_HS_IsSameAdress = IsSameAddress(ctx, so, jobj); } return(so); }
public override List <K3SalOrderInfo> GetSelectedSalOrders(Context ctx) { K3SalOrderInfo order = new K3SalOrderInfo(); DynamicObject obj = null; obj = this.View.Model.GetValue("FBillTypeId") as DynamicObject; order.FBillTypeId = SQLUtils.GetFieldValue(obj, "Number"); order.FBillNo = GetValue("FBillNo"); order.FDocumentStatus = GetValue("FDocumentStatus"); order.FCloseStatus = GetValue("FCloseStatus"); order.FCancelStatus = GetValue("FCancelStatus"); order.F_HS_PaymentStatus = GetValue("F_HS_PaymentStatus"); obj = this.View.Model.GetValue("F_HS_B2CCustId") as DynamicObject; order.F_HS_B2CCustId = SQLUtils.GetFieldValue(obj, "Number"); List <K3SalOrderInfo> orders = new List <K3SalOrderInfo>() { order }; return(orders); }
/// <summary> /// 数据库查询需要生成收款单对应销售订单的信息 /// </summary> /// <param name="ctx"></param> /// <param name="orderNos"></param> /// <returns></returns> private List <K3SalOrderInfo> GetSalOrdersByDb(Context ctx, List <string> orderNos) { List <K3SalOrderInfo> orders = null;; K3SalOrderInfo order = null; if (orderNos != null && orderNos.Count > 0) { string sql = string.Format(@"/*dialect*/ select distinct FBillNo,FDate,j.FNUMBER as FCUSTID,j.FNUMBER as F_HS_B2CCustId,m.FNUMBER as FSalerId,n.FNUMBER as FSALEDEPTID,z.FNUMBER as FSaleOrgId,o.FNumber as FSettleCurrId,F_HS_RateToUSA,a.F_HS_TransactionID,F_HS_PayTotal,q.FNUMBER as F_HS_PaymentModeNew from T_SAL_ORDER a inner join T_SAL_ORDERENTRY b on b.FID = a.FID inner join T_SAL_ORDERENTRY_F c on c.FENTRYID = b.FENTRYID and c.FID = b.FID inner join T_SAL_ORDERFIN d on d.FID = a.FID inner join T_BD_CUSTOMER e on e.FCUSTID= a.FCUSTID inner join T_BAS_ASSISTANTDATAENTRY_L f ON a.F_HS_SaleOrderSource=f.FENTRYID inner join T_BAS_ASSISTANTDATAENTRY g ON f.FentryID=g.FentryID left join T_BAS_BILLTYPE h on a.FBILLTypeID=h.FBILLTypeID inner join T_ORG_ORGANIZATIONS z on a.FSALEORGID=z.FORGID inner join T_BD_CUSTOMER j on j.FCUSTID = a.F_HS_B2CCUSTID inner join T_BD_CURRENCY o on o.FCURRENCYID = d.FSettleCurrId inner join T_BAS_ASSISTANTDATAENTRY_L p ON a.F_HS_PaymentModeNew=p.FENTRYID inner join T_BAS_ASSISTANTDATAENTRY q ON q.FentryID=p.FentryID inner join V_BD_SALESMAN m on m.FID = a.FSALERID inner join T_BD_DEPARTMENT n on n.FDEPTID = m.FDEPTID where a.FCANCELSTATUS<>'B' and h.FNUMBER='XSDD01_SYS' and z.FNUMBER='100.01' and a.FBILLNO in('{0}')" , string.Join("','", orderNos)); DynamicObjectCollection coll = SQLUtils.GetObjects(ctx, sql); if (coll != null && coll.Count > 0) { orders = new List <K3SalOrderInfo>(); foreach (var item in coll) { if (item != null) { order = new K3SalOrderInfo(); order.FBillNo = SQLUtils.GetFieldValue(item, "FBILLNO"); order.FDate = Convert.ToDateTime(SQLUtils.GetFieldValue(item, "FDATE")); order.FCustId = SQLUtils.GetFieldValue(item, "FCUSTID"); order.F_HS_B2CCustId = SQLUtils.GetFieldValue(item, "F_HS_B2CCustId"); order.FSalerId = SQLUtils.GetFieldValue(item, "FSalerId"); order.FSaleDeptId = SQLUtils.GetFieldValue(item, "FSALEDEPTID"); order.FSaleOrgId = SQLUtils.GetFieldValue(item, "FSaleOrgId"); order.FSettleCurrId = SQLUtils.GetFieldValue(item, "FSettleCurrId"); order.F_HS_PaymentModeNew = SQLUtils.GetFieldValue(item, "F_HS_PaymentModeNew"); order.F_HS_TransactionID = SQLUtils.GetFieldValue(item, "F_HS_TransactionID"); order.F_HS_PayTotal = SQLUtils.GetFieldValue(item, "F_HS_PayTotal"); order.F_HS_RateToUSA = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "F_HS_RateToUSA")); orders.Add(order); } } } } return(orders); }
private JArray BuildBillSkdRecEntry(K3SalOrderInfo order) { JArray FBILLSKDRECENTRY = null; if (order != null) { } return(FBILLSKDRECENTRY); }
/// <summary> /// 判断单据是否有下游单据 /// </summary> /// <param name="ctx"></param> /// <param name="order"></param> /// <returns></returns> public virtual bool IsPush(Context ctx, K3SalOrderInfo order) { DynamicObjectCollection coll = null; if (order != null) { string sql = string.Format(@" /*dialect*/select h.FBILLNO, b.F_HS_UnUSATruePrice, a.F_HS_RateToUSA from T_SAL_DELIVERYNOTICE a inner join T_SAL_DELIVERYNOTICEENTRY b on a.fid=b.fid inner join T_SAL_DELIVERYNOTICEENTRY_LK f on b.fentryid=f.fentryid inner join T_SAL_OrderEntry g on f.fsbillID=g.fid and f.fsid=g.fentryID inner join T_SAL_Order h on g.fid=h.fid where h.FBILLNO='{0}'", order.FBillNo ); coll = SQLUtils.GetObjects(ctx, sql); } return((coll != null && coll.Count > 0) ? true : false); }
public List <string> GetSelectedSalOrderNos() { ListSelectedRowCollection rows = this.ListView.SelectedRowsInfo; List <string> billNos = null; List <K3SalOrderInfo> orders = null; K3SalOrderInfo order = null; if (rows != null && rows.Count > 0) { orders = new List <K3SalOrderInfo>(); billNos = new List <string>(); foreach (var row in rows) { if (row != null) { order = new K3SalOrderInfo(); billNos.Add(row.BillNo); } } } return(billNos); }
public List <K3SalOrderInfo> GetOrders(List <DynamicObject> dynObjects) { List <K3SalOrderInfo> orders = null; K3SalOrderInfo order = null; if (dynObjects != null && dynObjects.Count > 0) { orders = new List <K3SalOrderInfo>(); foreach (var obj in dynObjects) { if (obj != null) { order = new K3SalOrderInfo(); order.F_HS_B2CCustId = SQLUtils.GetCustomerNo(this.Context, obj, "F_HS_B2CCustId_Id"); order.FBillNo = SQLUtils.GetFieldValue(obj, "BillNo"); orders.Add(order); } } } return(orders); }
public override List <K3SalOrderInfo> GetSelectedSalOrders(Context ctx) { List <K3SalOrderInfo> orders = null; K3SalOrderInfo order = null; List <string> billNos = GetSelectedSalOrderNos(); DynamicObjectCollection coll = GetCollection(ctx, billNos); var groups = from o in coll group o by o["FBillNo"] into g select g; if (groups != null && groups.Count() > 0) { orders = new List <K3SalOrderInfo>(); foreach (var group in groups) { if (group != null && group.Count() > 0) { order = new K3SalOrderInfo(); order.FBillNo = SQLUtils.GetFieldValue(group.ElementAt(0), "FBillNo"); order.FDocumentStatus = SQLUtils.GetFieldValue(group.ElementAt(0), "FDOCUMENTSTATUS"); order.FCloseStatus = SQLUtils.GetFieldValue(group.ElementAt(0), "FCLOSESTATUS"); order.FCancelStatus = SQLUtils.GetFieldValue(group.ElementAt(0), "FCANCELSTATUS"); order.F_HS_PaymentStatus = SQLUtils.GetFieldValue(group.ElementAt(0), "F_HS_PAYMENTSTATUS"); order.F_HS_B2CCustId = SQLUtils.GetCustomerNo(ctx, group.ElementAt(0), "F_HS_B2CCustId"); order.F_HS_RecipientCountry = SQLUtils.GetCountryNo(ctx, group.ElementAt(0), "F_HS_RECIPIENTCOUNTRY"); order.FSettleCurrId = SQLUtils.GetSettleCurrNo(ctx, group.ElementAt(0), "FSETTLECURRID"); } orders.Add(order); } } return(orders); }
/// <summary> /// 获取销售订单 /// </summary> /// <param name="coll"></param> /// <returns></returns> private List <K3SalOrderInfo> GetK3SalOrderInfo(DynamicObjectCollection coll) { K3SalOrderInfo order = null; List <K3SalOrderInfo> orders = null; if (coll != null && coll.Count > 0) { orders = new List <K3SalOrderInfo>(); foreach (var obj in coll) { if (obj != null) { if (SQLUtils.GetFieldValue(obj, "FBillNo").StartsWith("SO")) { order = new K3SalOrderInfo(); order.SrcNo = SQLUtils.GetFieldValue(obj, "FBillNo"); order.FBillNo = SQLUtils.GetFieldValue(obj, "FBillNo"); //订单号 order.F_HS_OriginOnlineOrderNo = SQLUtils.GetFieldValue(obj, "F_HS_OriginOnlineOrderNo"); //原线下订单单号 order.FDate = Convert.ToDateTime(SQLUtils.GetFieldValue(obj, "FDate")); //订单日期 order.PurseDate = TimeHelper.GetTimeStamp(order.FDate); order.FCustId = SQLUtils.GetFieldValue(obj, "FCUSTID"); //客户编码 order.F_HS_B2CCustId = SQLUtils.GetFieldValue(obj, "F_HS_B2CCustId"); //客户真是编码 order.FSalerId = SQLUtils.GetSellerNo(this.K3CloudContext, obj, "FSalerId"); //销售员编码 order.OrderSource = SQLUtils.GetFieldValue(obj, "F_HS_SaleOrderSource"); //订单来源 order.FSettleCurrId = SQLUtils.GetFieldValue(obj, "FSettleCurrId"); //结算币别 order.F_HS_RateToUSA = Convert.ToDecimal(SQLUtils.GetFieldValue(obj, "F_HS_RateToUSA")); //汇率 order.F_HS_RecipientCountry = SQLUtils.GetFieldValue(obj, "F_HS_RecipientCountry"); //国家 order.F_HS_DeliveryProvinces = SQLUtils.GetFieldValue(obj, "F_HS_DeliveryProvinces"); //省份/州 order.F_HS_DeliveryCity = SQLUtils.GetFieldValue(obj, "F_HS_DeliveryCity"); //城市 order.F_HS_DeliveryAddress = SQLUtils.GetFieldValue(obj, "F_HS_DeliveryAddress"); //具体地址 order.F_HS_PostCode = SQLUtils.GetFieldValue(obj, "F_HS_PostCode"); //邮编 order.F_HS_DeliveryName = SQLUtils.GetFieldValue(obj, "F_HS_DeliveryName"); //收货人姓名 order.F_HS_BillAddress = SQLUtils.GetFieldValue(obj, "F_HS_BillAddress"); //账单地址 order.F_HS_MobilePhone = SQLUtils.GetFieldValue(obj, "F_HS_MobilePhone"); //收货人联系电话 order.F_HS_ShippingMethod = SQLUtils.GetFieldValue(obj, "F_HS_ShippingMethod"); //发货方式 order.F_HS_PaymentModeNew = SQLUtils.GetFieldValue(obj, "F_HS_PaymentModeNew"); //付款方式 order.F_HS_PaymentStatus = SQLUtils.GetFieldValue(obj, "F_HS_PaymentStatus"); //付款状态 order.F_HS_Shipping = Convert.ToDecimal(SQLUtils.GetFieldValue(obj, "F_HS_Shipping")); //运费 order.FCustLevel = SQLUtils.GetFieldValue(obj, "F_HS_FGroup"); //分组 order.FNote = SQLUtils.GetFieldValue(obj, "FNOTE"); //备注 order.F_HS_Channel = SQLUtils.GetFieldValue(obj, "F_HS_OnlineOrderWay"); //订单渠道 order.F_HS_CouponAmount = Convert.ToDecimal(SQLUtils.GetFieldValue(obj, "F_HS_CouponAmount")); //优惠金额 order.F_HS_IntegralDeduction = Convert.ToDecimal(SQLUtils.GetFieldValue(obj, "F_HS_IntegralDeduction")); //积分金额 order.F_HS_DiscountedAmount = Convert.ToDecimal(SQLUtils.GetFieldValue(obj, "F_HS_DiscountedAmount")); //已优惠金额 order.FApproveDate = TimeHelper.GetTimeStamp(Convert.ToDateTime(SQLUtils.GetFieldValue(obj, "FApproveDate"))); //订单审核时间 order.F_HS_CollectionTime = Convert.ToDateTime(SQLUtils.GetFieldValue(obj, "F_HS_CollectionTime")); //CEO特批已到款时间 order.PayedTime = TimeHelper.GetTimeStamp(order.F_HS_CollectionTime); //CEO特批已到款时间(时间戳) K3SalOrderEntryInfo entry = new K3SalOrderEntryInfo(); entry.FMaterialId = SQLUtils.GetFieldValue(obj, "FMaterialId"); //物料编码 entry.FTAXPRICE = Convert.ToDecimal(SQLUtils.GetFieldValue(obj, "FTAXPRICE")); //单价 entry.FTAXAmt = Convert.ToDecimal(SQLUtils.GetFieldValue(obj, "FAmount")); //商品总价 entry.FQTY = Convert.ToDecimal(SQLUtils.GetFieldValue(obj, "FQTY")); //数量 entry.FStockId = SQLUtils.GetFieldValue(obj, "F_HS_StockID"); //仓库地理编码 entry.F_HS_IsVirtualEntry = SQLUtils.GetFieldValue(obj, "F_HS_IsVirtualEntry").CompareTo("1") == 1 ? true : false; //是否虚拟 entry.F_HS_IsEmptyStock = SQLUtils.GetFieldValue(obj, "F_HS_IsEmptyStock").CompareTo("1") == 1 ? true : false; //是否清仓 entry.FIsFree = SQLUtils.GetFieldValue(obj, "FIsFree").CompareTo("1") == 1 ? true : false; //是否为赠品 order.OrderEntry.Add(entry); orders.Add(order); } } } } return(orders); }
/// <summary> /// 获取销售订单明细 /// </summary> /// <param name="obj"></param> /// <param name="fieldName"></param> /// <returns></returns> private List <K3SalOrderEntryInfo> GetOrderEntry(DynamicObject obj, string fieldName, K3SalOrderInfo order) { List <K3SalOrderEntryInfo> entries = null; K3SalOrderEntryInfo entry = null; if (obj != null && !string.IsNullOrWhiteSpace(fieldName)) { DynamicObjectCollection coll = obj[fieldName] as DynamicObjectCollection; if (coll != null && coll.Count > 0) { entries = new List <K3SalOrderEntryInfo>(); foreach (var item in coll) { if (SQLUtils.GetMaterialNo(this.Context, item, "MaterialID_Id").CompareTo("99.01") != 0) { entry = new K3SalOrderEntryInfo(); entry.FMaterialId = SQLUtils.GetMaterialNo(this.Context, item, "MaterialID_Id"); //物料编码 entry.FTAXPRICE = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "TaxPrice")); //单价 entry.FTAXAmt = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "AllAmount")); entry.FQTY = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "Qty")); //数量 entry.FStockId = SQLUtils.GetStockNo(this.Context, item, "F_HS_StockID_Id"); //仓库编码 entry.F_HS_IsVirtualEntry = Convert.ToBoolean(SQLUtils.GetFieldValue(item, "F_HS_IsVirtualEntry")); //是否为虚拟 entry.FIsFree = Convert.ToBoolean(SQLUtils.GetFieldValue(item, "IsFree")); //是否为赠品 entry.F_HS_IsEmptyStock = Convert.ToBoolean(SQLUtils.GetFieldValue(item, "F_HS_IsEmptyStock")); //是否为清仓 entries.Add(entry); } else { order.F_HS_Shipping = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "AllAmount"));//运费 } order.F_HS_Subtotal += Convert.ToDecimal(SQLUtils.GetFieldValue(item, "AllAmount"));//产品总金额 } } } return(entries); }
/// <summary> /// 判断销售订单状态 /// </summary> /// <param name="ctx"></param> /// <param name="orders"></param> /// <returns></returns> private string JudgeSalOrderStatus(Context ctx, List <K3SalOrderInfo> orders) { string message = string.Empty; if (orders != null && orders.Count > 0) { for (int i = 0; i < orders.Count; i++) { K3SalOrderInfo order = orders[i]; if (order != null) { if (i < orders.Count - 1) { if (order.FDocumentStatus.CompareTo(BillDocumentStatus.Auditing) == 0) { message += "销售订单【" + order.FBillNo + "】状态为审核中,请先撤销" + System.Environment.NewLine; } if (order.FDocumentStatus.CompareTo(BillDocumentStatus.Audit) == 0) { if (IsPush(ctx, order)) { message += "销售订单【" + order.FBillNo + "】有下游单据,请先删除下游单据" + System.Environment.NewLine; } else { message += "销售订单【" + order.FBillNo + "】状态为已审核,请先反审核" + System.Environment.NewLine; } } if (order.FCloseStatus.CompareTo(BillCloseStatus.Close) == 0) { message += "销售订单【" + order.FBillNo + "】状态为已关闭,不能参与改单或合单" + System.Environment.NewLine; } if (order.FCancelStatus.CompareTo(BillCancelStatus.Cancel) == 0) { message += "销售订单【" + order.FBillNo + "】状态为已作废,不能参与改单或合单" + System.Environment.NewLine; } if (order.F_HS_PaymentStatus.CompareTo("3") == 0 || order.F_HS_PaymentStatus.CompareTo("1") == 0) { message += "销售订单【" + order.FBillNo + "】付款状态为已付款!" + System.Environment.NewLine; } } else if (i == orders.Count - 1) { if (order.FDocumentStatus.CompareTo(BillDocumentStatus.Auditing) == 0) { message += "销售订单【" + order.FBillNo + "】状态为审核中,请先撤销"; } if (order.FDocumentStatus.CompareTo(BillDocumentStatus.Audit) == 0) { if (IsPush(ctx, order)) { message += "销售订单【" + order.FBillNo + "】有下游单据,请先删除下游单据"; } else { message += "销售订单【" + order.FBillNo + "】状态为已审核,请先反审核"; } } if (order.FCloseStatus.CompareTo(BillCloseStatus.Close) == 0) { message += "销售订单【" + order.FBillNo + "】状态为已关闭,不能参与改单或合单"; } if (order.FCancelStatus.CompareTo(BillCancelStatus.Cancel) == 0) { message += "销售订单【" + order.FBillNo + "】状态为已作废,不能参与改单或合单"; } if (order.F_HS_PaymentStatus.CompareTo("3") == 0 || order.F_HS_PaymentStatus.CompareTo("1") == 0) { message += "销售订单【" + order.FBillNo + "】付款状态为已付款!" + System.Environment.NewLine; } } } } } return(message); }
/// <summary> /// /// </summary> /// <param name="customerNo">客户编码</param> /// <param name="customerLevel">客户等级(1-8,默认1)</param> /// <param name="countryNo">国家编码</param> /// <param name="city">城市</param> /// <param name="zipCode">邮编</param> /// <param name="currencyNo">币别</param> /// <param name="inLogisWay">发货方式</param> public static Dictionary <string, string> GetFreight(Context ctx, AbsSynchroDataInfo info) { #region 参数 Dictionary <string, object> dict = null; if (info != null) { K3SalOrderInfo order = info as K3SalOrderInfo; if (order != null) { long timeStamp = GetTimeStamp(DateTime.Now); //时间戳 string phpKey = "ERPSHIPPINGFREE"; //签名key string signMsg = MD5Encrypt(order.FCustId + timeStamp + phpKey, Encoding.UTF8).ToUpper(); //签名(需大写) JSONObject jObj = new JSONObject(); jObj.Add("customer_id", order.FCustId); jObj.Add("whole", !string.IsNullOrWhiteSpace(order.FCustLevel) ? order.FCustLevel.Substring(order.FCustLevel.Length - 1, 1) : ""); jObj.Add("country", order.F_HS_RecipientCountry.ToUpper()); //国家代号(例如:US) jObj.Add("city", order.F_HS_DeliveryCity); //收货地址城市 jObj.Add("code", order.F_HS_PostCode); //收货地址邮编 jObj.Add("currency", order.FSettleCurrId); //货币类型(例如:USD)(首字母要大写) jObj.Add("time_stamp", timeStamp); //时间戳 jObj.Add("signMsg", signMsg); //签名 JSONArray rows = null; JSONObject products = null; JSONObject row = null; string dlcHSName = string.Empty; if (order.OrderEntry != null && order.OrderEntry.Count > 0) { var groups = from o in order.OrderEntry where !string.IsNullOrWhiteSpace(o.FMaterialId) && !string.IsNullOrWhiteSpace(o.FStockId) group o by o.FStockId into g select g; if (groups != null && groups.Count() > 0) { products = new JSONObject(); foreach (var group in groups) { if (group != null && group.Count() > 0) { rows = new JSONArray(); dlcHSName = GetStockName(ctx, group.FirstOrDefault().FStockId); foreach (var item in group) { if (item != null && !item.FMaterialId.StartsWith("99.")) { row = new JSONObject(); row.Add("fix_id", item.FMaterialId); row.Add("quantity", item.FQTY); rows.Add(row); } } if (!string.IsNullOrWhiteSpace(dlcHSName) && rows.Count > 0) { products.Add(dlcHSName, rows); } } } jObj.Add("products", products); } } #endregion StringBuilder sb = new StringBuilder(); List <Dictionary <string, string> > lstDic = CommonMethod.GetFreight(ctx, jObj, out sb); if (lstDic != null && lstDic.Count > 0) { foreach (var dic in lstDic) { if (dic.ContainsKey("F_HS_FreAmount") || dic.ContainsKey("F_HS_FreTiltle") || dic.ContainsKey("F_HS_AmountNoteUSD")) { return(dic); } } } } } return(null); }
public override IEnumerable <AbsSynchroDataInfo> GetK3Datas(Context ctx, List <DynamicObject> objects, ref HttpResponseResult result) { K3SalOrderInfo order = null; List <K3SalOrderInfo> orders = null; result = new HttpResponseResult(); result.Success = true; if (objects != null && objects.Count > 0) { orders = new List <K3SalOrderInfo>(); foreach (var item in objects) { if (item != null) { if (SQLUtils.GetBillTypeNo(this.Context, item, "BillTypeId_Id").CompareTo("XSDD01_SYS") == 0 && SQLUtils.GetSaleOrderSourceNo(this.Context, item, "F_HS_SaleOrderSource_Id").CompareTo("XXBJDD") == 0 && SQLUtils.GetFieldValue(item, "DocumentStatus").CompareTo("C") == 0 && SQLUtils.GetFieldValue(item, "BillNo").StartsWith("SO") && !SQLUtils.GetFieldValue(item, "BillNo").Contains("_") && SQLUtils.GetFieldValue(item, "SaleOrgId_Id").CompareTo("100035") == 0) { order = new K3SalOrderInfo(); K3SaleOrderFinance finance = GetOrderFinance(item, "SaleOrderFinance");//财务信息 order.SrcNo = SQLUtils.GetFieldValue(item, "BillNo"); order.FBillNo = SQLUtils.GetFieldValue(item, "BillNo"); //订单号 order.F_HS_OriginOnlineOrderNo = SQLUtils.GetFieldValue(item, "F_HS_OriginOnlineOrderNo"); //原线上订单单号 order.FDate = Convert.ToDateTime(SQLUtils.GetFieldValue(item, "Date")); //订单日期 order.PurseDate = TimeHelper.GetTimeStamp(order.FDate); //订单日期(时间戳) order.FNote = SQLUtils.GetFieldValue(item, "FNote"); //备注 DynamicObject cust = item["CustId"] as DynamicObject; //客户 order.FCustId = SQLUtils.GetFieldValue(cust, "Number"); DynamicObject realCust = item["F_HS_B2CCustId"] as DynamicObject;//客户真实ID order.F_HS_B2CCustId = SQLUtils.GetFieldValue(realCust, "Number"); DynamicObject saler = item["SalerId"] as DynamicObject; order.FSalerId = SQLUtils.GetFieldValue(saler, "Number"); DynamicObject source = item["F_HS_SaleOrderSource"] as DynamicObject; order.OrderSource = SQLUtils.GetFieldValue(source, "FNumber"); //订单来源 order.F_HS_PaymentStatus = SQLUtils.GetFieldValue(item, "F_HS_PaymentStatus"); //付款状态 order.FSettleCurrId = finance.FSettleCurrID; //结算币别 order.F_HS_RateToUSA = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "ExchangeRate")); //汇率 DynamicObject country = item["F_HS_RecipientCountry"] as DynamicObject; order.F_HS_RecipientCountry = SQLUtils.GetFieldValue(country, "Number"); //国家 order.F_HS_DeliveryProvinces = SQLUtils.GetFieldValue(item, "F_HS_DeliveryProvinces"); //省份 order.F_HS_DeliveryCity = SQLUtils.GetFieldValue(item, "F_HS_DeliveryCity"); //城市 order.F_HS_DeliveryAddress = SQLUtils.GetFieldValue(item, "F_HS_DeliveryAddress"); //具体地址 order.F_HS_PostCode = SQLUtils.GetFieldValue(item, "F_HS_PostCode"); //邮编 order.F_HS_DeliveryName = SQLUtils.GetFieldValue(item, "F_HS_DeliveryName"); //收货人 order.F_HS_BillAddress = SQLUtils.GetFieldValue(item, "F_HS_BillAddress"); //账单地址 order.F_HS_MobilePhone = SQLUtils.GetFieldValue(item, "F_HS_MobilePhone"); //联系人手机 order.F_HS_ShippingMethod = SQLUtils.GetFieldValue(item, "F_HS_ShippingMethod"); //发货方式 DynamicObject met = item["F_HS_PaymentModeNew"] as DynamicObject; order.F_HS_PaymentModeNew = SQLUtils.GetFieldValue(met, "Number"); //付款方式 order.FCustLevel = SQLUtils.GetCustGroupNo(this.Context, item, "F_HS_FGroup_Id"); //客户分组 order.FNote = SQLUtils.GetFieldValue(item, "Note"); //备注 order.F_HS_Channel = SQLUtils.GetFieldValue(item, "F_HS_OnlineOrderWay"); //下单方式 order.F_HS_CouponAmount = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "F_HS_CouponAmount")); //优惠券金额 //order.F_HS_Shipping = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "F_HS_Shipping"));//运费 order.F_HS_Points = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "F_HS_Points")); //积分 order.OrderEntry = GetOrderEntry(item, "SaleOrderEntry", order); //订单明细 order.F_HS_Total = order.F_HS_Subtotal - order.F_HS_CouponAmount - order.F_HS_IntegralDeduction - order.F_HS_DiscountedAmount + order.F_HS_Shipping; //优惠后金额 order.FApproveDate = TimeHelper.GetTimeStamp(Convert.ToDateTime(SQLUtils.GetFieldValue(item, "ApproveDate"))); order.F_HS_CollectionTime = Convert.ToDateTime(SQLUtils.GetFieldValue(item, "F_HS_CollectionTime")); //CEO特批已到款时间 order.PayedTime = TimeHelper.GetTimeStamp(order.F_HS_CollectionTime); //CEO特批已到款时间(时间戳) orders.Add(order); } } } } return(orders); }
/// <summary> /// 获取未生成收款单的销售订单(定时任务) /// </summary> /// <param name="ctx"></param> /// <returns></returns> private List <K3SalOrderInfo> GetNonSynRevSalOrder(Context ctx) { List <K3SalOrderInfo> orders = null; K3SalOrderInfo order = null; string sql = string.Format(@"/*dialect*/ select distinct FBillNo,FDate,j.FNUMBER as FCUSTID,j.FNUMBER as F_HS_B2CCustId,m.FNUMBER as FSalerId,n.FNUMBER as FSALEDEPTID,z.FNUMBER as FSaleOrgId,o.FNumber as FSettleCurrId,F_HS_RateToUSA,a.F_HS_TransactionID,F_HS_PayTotal,q.FNUMBER as F_HS_PaymentModeNew from T_SAL_ORDER a inner join T_SAL_ORDERENTRY b on b.FID = a.FID inner join T_SAL_ORDERENTRY_F c on c.FENTRYID = b.FENTRYID and c.FID = b.FID inner join T_SAL_ORDERFIN d on d.FID = a.FID inner join T_BD_CUSTOMER e on e.FCUSTID= a.FCUSTID inner join T_BAS_ASSISTANTDATAENTRY_L f ON a.F_HS_SaleOrderSource=f.FENTRYID inner join T_BAS_ASSISTANTDATAENTRY g ON f.FentryID=g.FentryID left join T_BAS_BILLTYPE h on a.FBILLTypeID=h.FBILLTypeID inner join T_ORG_ORGANIZATIONS z on a.FSALEORGID=z.FORGID inner join T_BD_CUSTOMER j on j.FCUSTID = a.F_HS_B2CCUSTID inner join T_BD_CURRENCY o on o.FCURRENCYID = d.FSettleCurrId inner join T_BAS_ASSISTANTDATAENTRY_L p ON a.F_HS_PaymentModeNew=p.FENTRYID inner join T_BAS_ASSISTANTDATAENTRY q ON q.FentryID=p.FentryID inner join V_BD_SALESMAN m on m.FID = a.FSALERID inner join T_BD_DEPARTMENT n on n.FDEPTID = m.FDEPTID where a.FDOCUMENTSTATUS = 'C'and a.FsaleOrgID = 100035 and a.FCANCELSTATUS<>'B' and h.FNUMBER='XSDD01_SYS' and z.FNUMBER='100.01' and g.FNUMBER = 'HCWebProcessingOder' and a.FCREATEDATE >= DATEADD(MONTH,-1,GETDATE()) and a.fbillno not in (select l.FRECEIVEITEM from T_AR_RECEIVEBILL k inner join T_AR_RECEIVEBILLENTRY l on l.FID = K.FID where k.FCREATEDATE >= DATEADD(MONTH,-1,GETDATE()) and l.FRECEIVEITEM not like 'SO%' and l.FRECEIVEITEM <> '')" ); DynamicObjectCollection coll = SQLUtils.GetObjects(K3CloudContext, sql); if (coll != null && coll.Count > 0) { orders = new List <K3SalOrderInfo>(); foreach (var item in coll) { if (item != null) { order = new K3SalOrderInfo(); order.FBillNo = SQLUtils.GetFieldValue(item, "FBillNo"); order.FDate = Convert.ToDateTime(SQLUtils.GetFieldValue(item, "FDate")); order.FCustId = SQLUtils.GetFieldValue(item, "FCUSTID"); order.F_HS_B2CCustId = SQLUtils.GetFieldValue(item, "FCUSTID"); order.FSalerId = SQLUtils.GetFieldValue(item, "FSalerId"); order.FSaleDeptId = SQLUtils.GetFieldValue(item, "FSALEDEPTID"); order.FSaleOrgId = SQLUtils.GetFieldValue(item, "FSaleOrgId"); order.FSettleCurrId = SQLUtils.GetFieldValue(item, "FSettleCurrId"); order.F_HS_RateToUSA = Convert.ToDecimal(SQLUtils.GetFieldValue(item, "F_HS_RateToUSA")); order.F_HS_TransactionID = SQLUtils.GetFieldValue(item, "F_HS_TransactionID"); order.F_HS_PayTotal = SQLUtils.GetFieldValue(item, "F_HS_PayTotal"); order.F_HS_PaymentModeNew = SQLUtils.GetFieldValue(item, "F_HS_PaymentModeNew"); orders.Add(order); } } } return(orders); }
/// <summary> /// 收款明细 /// </summary> /// <param name="ctx"></param> /// <param name="data"></param> /// <returns></returns> private JArray BuildReceiveBillEntry(Context ctx, AbsSynchroDataInfo data) { JArray FRECEIVEBILLENTRY = null; JObject baseData = null; if (data != null) { if (data.GetType() == typeof(K3SalOrderInfo)) { K3SalOrderInfo order = data as K3SalOrderInfo; FRECEIVEBILLENTRY = new JArray(); baseData = new JObject(); JObject FSETTLETYPEID = new JObject();//结算方式"JSFS01_SYS" FSETTLETYPEID.Add("FNumber", SQLUtils.GetSettleTypeNo(K3CloudContext, SQLUtils.GetPaymentMethodId(K3CloudContext, order.F_HS_PaymentModeNew))); baseData.Add("FSETTLETYPEID", FSETTLETYPEID); JObject FPURPOSEID = new JObject();//收款用途 FPURPOSEID.Add("FNumber", "SFKYT02_SYS"); baseData.Add("FPURPOSEID", FPURPOSEID); baseData.Add("FRECEIVEITEMTYPE", "1"); //预收项目类型 baseData.Add("FRECEIVEITEM", order.FBillNo); //销售订单 baseData.Add("FSaleOrderID", SQLUtils.GetSaleOrderId(K3CloudContext, order.FBillNo)); //销售订单内码 if (Convert.ToDecimal(order.F_HS_PayTotal) > 0) { if (order.FSettleCurrId.CompareTo("JPY") == 0) { baseData.Add("FRECTOTALAMOUNTFOR", Math.Truncate(Convert.ToDecimal(order.F_HS_PayTotal) * order.F_HS_RateToUSA));//财务实收金额 } else { baseData.Add("FRECTOTALAMOUNTFOR", Convert.ToDecimal(order.F_HS_PayTotal) * order.F_HS_RateToUSA);//财务实收金额 } } else if (string.IsNullOrWhiteSpace(order.F_HS_PayTotal)) { if (order.FSettleCurrId.CompareTo("JPY") == 0) { baseData.Add("FRECTOTALAMOUNTFOR", Math.Truncate(order.F_HS_Total));//财务实收金额 } else { baseData.Add("FRECTOTALAMOUNTFOR", order.F_HS_Total);//财务实收金额 } } JObject FACCOUNTID = new JObject();//我方银行账号 FACCOUNTID.Add("FNumber", SQLUtils.GetBankAccountNo(K3CloudContext, SQLUtils.GetBankAccountId(K3CloudContext, order.F_HS_PaymentModeNew))); baseData.Add("FACCOUNTID", FACCOUNTID); baseData.Add("FSETTLENO", order.F_HS_TransactionID.Trim());//结算号 FRECEIVEBILLENTRY.Add(baseData); } else if (data.GetType() == typeof(AbsDataInfo)) { AbsDataInfo info = data as AbsDataInfo; FRECEIVEBILLENTRY = new JArray(); baseData = new JObject(); JObject FSETTLETYPEID = new JObject();//结算方式"JSFS01_SYS" FSETTLETYPEID.Add("FNumber", info.FSettleTypeId); baseData.Add("FSETTLETYPEID", FSETTLETYPEID); JObject FPURPOSEID = new JObject();//收款用途 FPURPOSEID.Add("FNumber", "SFKYT02_SYS"); baseData.Add("FPURPOSEID", FPURPOSEID); if (Convert.ToDecimal(info.FRealAmountFor) > 0) { baseData.Add("FRECTOTALAMOUNTFOR", info.FRealAmountFor);//财务实收金额 } JObject FACCOUNTID = new JObject();//我方银行账号 FACCOUNTID.Add("FNumber", SQLUtils.GetBankAccountNo(K3CloudContext, SQLUtils.GetBankAccountId(K3CloudContext, info.FSettleTypeId))); baseData.Add("FACCOUNTID", FACCOUNTID); baseData.Add("FSETTLENO", "");//结算号 baseData.Add("F_HS_YNRecharge", false); baseData.Add("F_HS_SynchronizedRecharge", false); FRECEIVEBILLENTRY.Add(baseData); } } return(FRECEIVEBILLENTRY); }
/// <summary> /// 获取全部线下订单 /// </summary> /// <param name="flag"></param> /// <param name="saleOrderNo"></param> /// <returns></returns> public List <K3SalOrderInfo> GetAllSalOrders(bool flag = true, string saleOrderNo = null) { List <K3SalOrderInfo> orders = null; K3SalOrderInfo order = null; List <K3SalOrderEntryInfo> entries = null; string sql = string.Empty; if (flag) { sql = string.Format(@"/*dialect*/select FBillNo,F_HS_OriginOnlineOrderNo,FDate,a.FNOTE,r.FNUMBER as FCUSTID,o.FNUMBER as F_HS_B2CCustId,FSalerId,g.FNUMBER as F_HS_SaleOrderSource,w.FNUMBER as FSettleCurrId,F_HS_RateToUSA,x.FNUMBER as F_HS_RecipientCountry,F_HS_DeliveryProvinces ,F_HS_DeliveryCity,F_HS_DeliveryAddress,F_HS_PostCode,F_HS_DeliveryName,F_HS_BillAddress,F_HS_MobilePhone,F_HS_ShippingMethod,n.FNUMBER as F_HS_PaymentModeNew ,F_HS_PaymentStatus,F_HS_ShippingMethodRemark,F_HS_OnlineOrderWay,F_HS_CouponAmount,F_HS_IntegralDeduction,v.FNUMBER as FMaterialId,c.FTAXPRICE,FAmount,FQty,k.FNUMBER as F_HS_StockID ,F_HS_IsVirtualEntry,F_HS_IsEmptyStock,c.FIsFree,a.FApproveDate,F_HS_CollectionTime from T_SAL_ORDER a inner join T_SAL_ORDERENTRY b on b.FID = a.FID inner join T_SAL_ORDERENTRY_F c on c.FENTRYID = b.FENTRYID and c.FID = b.FID inner join T_SAL_ORDERFIN d on d.FID = a.FID inner join T_BD_CUSTOMER e on e.FCUSTID= a.FCUSTID inner join T_BAS_ASSISTANTDATAENTRY_L f ON a.F_HS_SaleOrderSource=f.FENTRYID and f.FLOCALEID = 2052 inner join T_BAS_ASSISTANTDATAENTRY g ON f.FENTRYID=g.FENTRYID inner join T_BAS_ASSISTANTDATAENTRY_L m ON a.F_HS_PaymentModeNew=m.FENTRYID and m.FLOCALEID = 2052 inner join T_BAS_ASSISTANTDATAENTRY n ON m.FENTRYID=n.FENTRYID left join T_BAS_BILLTYPE h on a.FBILLTypeID=h.FBILLTypeID inner join T_ORG_ORGANIZATIONS z on a.FSALEORGID=z.FORGID inner join VW_BAS_ASSISTANTDATA_CountryName x on x.FCountry = a.F_HS_RecipientCountry inner join T_BD_MATERIAL v on v.FMATERIALID = b.FMATERIALID inner join T_BD_CURRENCY w on w.FCURRENCYID = d.FSETTLECURRID inner join T_BD_CUSTOMER r on r.FCUSTID = a.FCUSTID inner join T_BD_CUSTOMER o on o.FCUSTID = a.F_HS_B2CCustId left join T_BD_STOCK i on i.FSTOCKID=b.F_HS_StockID left join T_BAS_ASSISTANTDATAENTRY_L j ON i.F_HS_DLC=j.FENTRYID and j.FLOCALEID = 2052 left join T_BAS_ASSISTANTDATAENTRY k ON j.FentryID=k.FentryID where (a.FDate >= DATEADD(day,-180,GETDATE()) or a.F_HS_CollectionTime >= DATEADD(day,-180,GETDATE()))and a.FDOCUMENTSTATUS = 'C' and g.fnumber = 'XXBJDD' and FBillNo like 'SO%' and a.FsaleOrgID = 100035 and a.FCANCELSTATUS<>'B' and h.FNUMBER='XSDD01_SYS' and z.FNUMBER='100.01' and not exists(select * From T_SAL_ORDERentry where fid=a.fid and a.FCLOSESTATUS='B' and FMRPCLOSESTATUS='A') and a.fchangeDate>= DATEADD(day,-180,GETDATE()) "); } else { sql = string.Format(@"/*dialect*/select FBillNo,F_HS_OriginOnlineOrderNo,FDate,a.FNOTE,r.FNUMBER as FCUSTID,o.FNUMBER as F_HS_B2CCustId,FSalerId,g.FNUMBER as F_HS_SaleOrderSource,w.FNUMBER as FSettleCurrId,F_HS_RateToUSA,x.FNUMBER as F_HS_RecipientCountry,F_HS_DeliveryProvinces ,F_HS_DeliveryCity,F_HS_DeliveryAddress,F_HS_PostCode,F_HS_DeliveryName,F_HS_BillAddress,F_HS_MobilePhone,F_HS_ShippingMethod,n.FNUMBER as F_HS_PaymentModeNew ,F_HS_PaymentStatus,F_HS_ShippingMethodRemark,F_HS_OnlineOrderWay,F_HS_CouponAmount,F_HS_IntegralDeduction,v.FNUMBER as FMaterialId,c.FTAXPRICE,FAmount,FQty,k.FNUMBER as F_HS_StockID ,F_HS_IsVirtualEntry,F_HS_IsEmptyStock,c.FIsFree,a.FApproveDate,F_HS_CollectionTime from T_SAL_ORDER a inner join T_SAL_ORDERENTRY b on b.FID = a.FID inner join T_SAL_ORDERENTRY_F c on c.FENTRYID = b.FENTRYID and c.FID = b.FID inner join T_SAL_ORDERFIN d on d.FID = a.FID inner join T_BD_CUSTOMER e on e.FCUSTID= a.FCUSTID inner join T_BAS_ASSISTANTDATAENTRY_L f ON a.F_HS_SaleOrderSource=f.FENTRYID and f.FLOCALEID = 2052 inner join T_BAS_ASSISTANTDATAENTRY g ON f.FENTRYID=g.FENTRYID inner join T_BAS_ASSISTANTDATAENTRY_L m ON a.F_HS_PaymentModeNew=m.FENTRYID and m.FLOCALEID = 2052 inner join T_BAS_ASSISTANTDATAENTRY n ON m.FENTRYID=n.FENTRYID left join T_BAS_BILLTYPE h on a.FBILLTypeID=h.FBILLTypeID inner join T_ORG_ORGANIZATIONS z on a.FSALEORGID=z.FORGID inner join VW_BAS_ASSISTANTDATA_CountryName x on x.FCountry = a.F_HS_RecipientCountry inner join T_BD_MATERIAL v on v.FMATERIALID = b.FMATERIALID inner join T_BD_CURRENCY w on w.FCURRENCYID = d.FSETTLECURRID inner join T_BD_CUSTOMER r on r.FCUSTID = a.FCUSTID inner join T_BD_CUSTOMER o on o.FCUSTID = a.F_HS_B2CCustId left join T_BD_STOCK i on i.FSTOCKID=b.F_HS_StockID left join T_BAS_ASSISTANTDATAENTRY_L j ON i.F_HS_DLC=j.FENTRYID and j.FLOCALEID = 2052 left join T_BAS_ASSISTANTDATAENTRY k ON j.FentryID=k.FentryID where (a.FDate >= DATEADD(day,-45,GETDATE()) or a.F_HS_CollectionTime >= DATEADD(day,-45,GETDATE()))and a.FDOCUMENTSTATUS = 'C' and g.fnumber = 'XXBJDD' and FBillNo like 'SO%' and a.FsaleOrgID = 100035 and a.FCANCELSTATUS<>'B' and h.FNUMBER='XSDD01_SYS' and z.FNUMBER='100.01' and not exists(select * From T_SAL_ORDERentry where fid=a.fid and a.FCLOSESTATUS='B' and FMRPCLOSESTATUS='A') "); } DynamicObjectCollection coll = SQLUtils.GetObjects(this.K3CloudContext, sql); orders = GetK3SalOrderInfo(coll); if (orders != null && orders.Count > 0) { var group = from o in orders group o by o.FBillNo into g select g; if (group != null && group.Count() > 0) { orders = new List <K3SalOrderInfo>(); entries = new List <K3SalOrderEntryInfo>(); foreach (var g in group) { if (g != null && g.Count() > 0) { order = g.ElementAt(0) as K3SalOrderInfo;; entries = GetK3SalOrderEntryInfo(g.ToList <K3SalOrderInfo>()); order.OrderEntry = null; order.OrderEntry = entries; order.F_HS_Total = order.F_HS_Subtotal + order.F_HS_Shipping;//优惠后金额 orders.Add(order); } } } } return(orders); }
/// <summary> /// /// </summary> /// <param name="customerNo">客户编码</param> /// <param name="customerLevel">客户等级(1-8,默认1)</param> /// <param name="countryNo">国家编码</param> /// <param name="city">城市</param> /// <param name="zipCode">邮编</param> /// <param name="currencyNo">币别</param> /// <param name="inLogisWay">发货方式</param> public static Dictionary <string, object> GetFrei123(Context ctx, AbsSynchroDataInfo info) { #region 参数 Dictionary <string, object> dict = null; if (info != null) { K3SalOrderInfo order = info as K3SalOrderInfo; if (order != null) { long timeStamp = GetTimeStamp(DateTime.Now); //时间戳 string phpKey = "ERPSHIPPINGFREE"; //签名key string signMsg = MD5Encrypt(order.FCustId + timeStamp + phpKey, Encoding.UTF8).ToUpper(); //签名(需大写) JSONObject jObj = new JSONObject(); jObj.Add("customer_id", order.FCustId); jObj.Add("whole", !string.IsNullOrWhiteSpace(order.FCustLevel) ? order.FCustLevel.Substring(order.FCustLevel.Length - 1, 1) : ""); jObj.Add("country", order.F_HS_RecipientCountry.ToUpper()); //国家代号(例如:US) jObj.Add("city", order.F_HS_DeliveryCity); //收货地址城市 jObj.Add("code", order.F_HS_PostCode); //收货地址邮编 jObj.Add("currency", order.FSettleCurrId); //货币类型(例如:USD)(首字母要大写) jObj.Add("time_stamp", timeStamp); //时间戳 jObj.Add("signMsg", signMsg); //签名 JSONArray rows = null; JSONObject products = null; JSONObject row = null; string dlcHSName = string.Empty; if (order.OrderEntry != null && order.OrderEntry.Count > 0) { var groups = from o in order.OrderEntry where !string.IsNullOrWhiteSpace(o.FMaterialId) && !string.IsNullOrWhiteSpace(o.FStockId) group o by o.FStockId into g select g; if (groups != null && groups.Count() > 0) { products = new JSONObject(); foreach (var group in groups) { if (group != null && group.Count() > 0) { rows = new JSONArray(); dlcHSName = GetStockName(ctx, group.FirstOrDefault().FStockId); foreach (var item in group) { if (item != null && !item.FMaterialId.StartsWith("99.")) { row = new JSONObject(); row.Add("fix_id", item.FMaterialId); row.Add("quantity", item.FQTY); rows.Add(row); } } if (!string.IsNullOrWhiteSpace(dlcHSName) && rows.Count > 0) { products.Add(dlcHSName, rows); } } } jObj.Add("products", products); } } #endregion //获取运费 HttpClient http = new HttpClient() { IsProxy = true }; //http.Url = "https://test.healthcabin.net/index.php?t_method=shipping"; //测试地址 http.Url = "https://www.healthcabin.net/index.php?t_method=shipping"; //正式地址 http.Content = ""; //清除之前的记录 http.Content = string.Concat("&ERP=", jObj.ToString()); //线上那边要求以键值对参数的形式传过去 string result = ""; try { result = http.PostData(); } catch (Exception) { //服务器在美国,存在连不上远程服务器的情况,此时等待一秒再请求 System.Threading.Thread.Sleep(1000); result = http.PostData(); } StringBuilder errorMes = new StringBuilder(); List <Dictionary <string, string> > lstFreiInfo = AnalysisResult(result, ref errorMes); if (errorMes.Length > 0) { } var freiData = lstFreiInfo.Where(o => o["F_HS_FreTiltle"].Contains(order.F_HS_DropShipDeliveryChannel)).FirstOrDefault(); if (freiData != null) { dict = new Dictionary <string, object>(); string outLogisWay = freiData["F_HS_FreTiltle"]; //线上发货方式 string freiAmount = freiData["F_HS_FreAmount"]; //运费金额(结算币别) string freiAmountUSD = freiData["F_HS_AmountNoteUSD"]; //各发货仓运费(USD) dict.Add("F_HS_FreTiltle", outLogisWay == null ? "": outLogisWay); dict.Add("F_HS_FreAmount", freiAmount); dict.Add("F_HS_AmountNoteUSD", freiAmountUSD == null ?"": freiAmountUSD); } } } return(dict); }
private List <K3SalOrderInfo> GetK3SalOrderInfos(List <DynamicObject> objs) { List <K3SalOrderInfo> orders = null; K3SalOrderInfo order = null; string message = string.Empty; if (objs != null && objs.Count > 0) { orders = new List <K3SalOrderInfo>(); foreach (var obj in objs) { if (obj != null) { string documentstatus = SQLUtils.GetFieldValue(obj, "DocumentStatus"); bool isSyn = Convert.ToBoolean(SQLUtils.GetFieldValue(obj, "F_HS_YNSyncCollection")); DynamicObject oSrc = obj["F_HS_SaleOrderSource"] as DynamicObject; string oSource = SQLUtils.GetFieldValue(oSrc, "FNumber"); if (documentstatus.CompareTo("C") == 0 && !isSyn && oSource.CompareTo("HCWebProcessingOder") == 0) { if (Convert.ToDecimal(SQLUtils.GetFieldValue(obj, "F_HS_PayTotal")) > 0) { order = new K3SalOrderInfo(); order.FDate = Convert.ToDateTime(SQLUtils.GetFieldValue(obj, "Date")); order.FBillNo = SQLUtils.GetFieldValue(obj, "BillNo"); DynamicObject cust = obj["CustId"] as DynamicObject; order.FCustId = SQLUtils.GetFieldValue(cust, "Number"); DynamicObject b2cCust = obj["F_HS_B2CCustId"] as DynamicObject; order.F_HS_B2CCustId = SQLUtils.GetFieldValue(b2cCust, "Number"); DynamicObject saler = obj["SalerId"] as DynamicObject; order.FSalerId = SQLUtils.GetFieldValue(saler, "Number"); DynamicObject saleOrg = obj["SaleOrgId"] as DynamicObject; order.FSaleOrgId = SQLUtils.GetFieldValue(saleOrg, "Number"); DynamicObject saleDept = obj["SaleDeptId"] as DynamicObject; order.FSaleDeptId = SQLUtils.GetFieldValue(saleDept, "Number"); DynamicObject pay = obj["F_HS_PaymentModeNew"] as DynamicObject; order.F_HS_PaymentModeNew = SQLUtils.GetFieldValue(pay, "FNumber"); order.F_HS_TransactionID = SQLUtils.GetFieldValue(obj, "F_HS_TransactionID"); order.F_HS_PayTotal = SQLUtils.GetFieldValue(obj, "F_HS_PayTotal"); order.F_HS_RateToUSA = Convert.ToDecimal(SQLUtils.GetFieldValue(obj, "F_HS_RateToUSA")); K3SaleOrderFinance fin = GetK3SaleOrderFinance(obj); if (fin != null) { order.FSettleCurrId = fin.FSettleCurrID; } orders.Add(order); } else { message += "销售订单:【" + SQLUtils.GetFieldValue(obj, "BillNo") + "】的Pay_Total的金额小于零,不允许生成收款单!" + Environment.NewLine; } } else { message += "销售订单:【" + SQLUtils.GetFieldValue(obj, "BillNo") + "】收款单生成只能是processing和未生成收款单的销售订单" + Environment.NewLine; } } } } if (!string.IsNullOrWhiteSpace(message)) { _result = new HttpResponseResult(); _result.Message = message; _result.Success = false; } return(orders); }