public string GetDynamicVersionData(string data) { return(OrderHelper.GetDynamicVersionData(data)); }
public string GetCleanPhoneNumber(string data) { return(OrderHelper.GetCleanPhoneNumber(data)); }
public static void WMSNotifyAdd() { //基础参数配置 DateTime nowTime = DateTime.Now; string wmsNotifyAddStr = string.Empty; string method = MethodAdd; try { WMSNotifyAdd wmsNotifyAdd = new WMSNotifyAdd(Owner); List <DSMTMALL.DB.Model.M_OrderInfo> orderInfo = null; //执行订单推送 SortedDictionary <string, string> dicQuery = new SortedDictionary <string, string>(); string strWhere = "SuppliersID=101 AND OrderStatus=1 AND PayStatus=2 LIMIT 50"; //1.订单的商品来源要是海淘的,2.订单的状态要已确认,3.订单的支付状态是已付款的 orderInfo = new DSMTMALL.DB.BLL.MY_Bll(DBEnum.Slave).GetModelList <DSMTMALL.DB.Model.M_OrderInfo>(strWhere, null); //获取所有要推送的订单列表 if (orderInfo != null && orderInfo.Count > 0) { List <Payment> payMentList = null; Payment payMentInfo = null; Dictionary <string, string> dicOrderInfo = null; Dictionary <string, string> dicOrderGoods = null; AddContent addContent = null; List <AddRows> addRowsList = null; WMSRetrunInfo resJsonArr = null; OrderHelper wmsStringHandler = new OrderHelper(); List <DSMTMALL.DB.Model.M_OrderGoods> orderGoodsList = null; string resWMSVal = string.Empty; string mailContent = string.Empty; string dicSignStr = string.Empty; string param = string.Empty; for (int i = 0; i < orderInfo.Count; i++) //推送当前列表第一条订单信息 { dicQuery = new SortedDictionary <string, string>(); //每一订单推送后都必须要这个键值对初始化 payMentList = new List <Payment>(); payMentInfo = new Payment(); resJsonArr = new WMSRetrunInfo(); resWMSVal = string.Empty; mailContent = string.Empty; param = string.Empty; nowTime = DateTime.Now; orderGoodsList = new DSMTMALL.DB.BLL.MY_Bll(DBEnum.Slave).GetModelList <DSMTMALL.DB.Model.M_OrderGoods>("OrderSn=@_OrderSn", new { _OrderSn = orderInfo[i].OrderSn }); if (orderGoodsList != null && orderGoodsList.Count > 0)//订单的商品信息不为空 { dicOrderInfo = new Dictionary <string, string>(); dicOrderGoods = new Dictionary <string, string>(); dicOrderInfo.Add("Created", "AddTime"); //订单生成时间 dicOrderInfo.Add("Modified", "UpdateTime"); //最后修改时间 dicOrderInfo.Add("PaymentTime", "PayTime"); //订单付款时间 dicOrderInfo.Add("OrderOuterId", "OrderUnifySn"); //订单外部单号 dicOrderInfo.Add("BuyerMessage", "Postscript"); //顾客留言 dicOrderInfo.Add("SellerComment", "Postscript"); //卖家备注 dicOrderInfo.Add("LogisticCompany", "ShippingName"); //物流公司名称 dicOrderInfo.Add("ReceiverName", "Consignee"); //收货人姓名 dicOrderInfo.Add("ReceiverProvince", "ProvinceName"); //收货人所在省 dicOrderInfo.Add("ReceiverCity", "CityName"); //城市 dicOrderInfo.Add("ReceiverDistrict", "DistrictName"); //地区 dicOrderInfo.Add("ReceiverAddress", "Address"); //详细地址 dicOrderInfo.Add("ReceiverPhone1", "Mobile"); //手机号码 dicOrderInfo.Add("BuyerCode", "Mobile"); //客户编码用手机号代替 dicOrderInfo.Add("BuyerTrueName", "Consignee"); //买家身份证号 dicOrderInfo.Add("BuyerIdCardNo", "ConsigneeCardNo"); //买家真实姓名 dicOrderInfo.Add("FeeAmount", "ShippingFee"); //向买家收取的运费 dicOrderInfo.Add("PayAmount", "OrderAmount"); //总订单价格 addContent = EntityHelper <AddContent> .EntityValueToEntity(orderInfo[i], dicOrderInfo); //商品信息--一笔订单会有多个商品信息 dicOrderGoods.Add("OrderRowId", "OrderID"); //订单行ID dicOrderGoods.Add("MerchId", "GoodsID"); //第三方平台商品ID dicOrderGoods.Add("MerchCode", "GoodsSn"); //商品编号对应海淘 dicOrderGoods.Add("RowDesc", "GoodsAttr"); //行描述 dicOrderGoods.Add("Qty", "BuyNumber"); //购买数量 dicOrderGoods.Add("Price", "GoodsPrice"); //购买价格 addRowsList = EntityHelper <AddRows> .EntityListValueToEntityList(orderGoodsList, dicOrderGoods); if (addRowsList != null && addRowsList.Count > 0) { for (int j = 0; j < addRowsList.Count; j++) { addRowsList[j].Amount = Convert.ToString(Convert.ToInt32(addRowsList[j].Qty) * Convert.ToDecimal(addRowsList[j].Price)); } } addContent.Rows = addRowsList; addContent.ShopId = ShopId; payMentInfo.PaymentMethod = orderInfo[i].PayID.ToString(); payMentInfo.Amount = orderInfo[i].OrderAmount.ToString(); payMentList.Add(payMentInfo); addContent.PayMents = payMentList; wmsNotifyAdd.Content = addContent; wmsNotifyAddStr = new JavaScriptSerializer().Serialize(wmsNotifyAdd);//将该笔订单信息JSON格式化 dicQuery.Add("appkey", AppKey); dicQuery.Add("method", method); dicQuery.Add("param", wmsNotifyAddStr); dicQuery.Add("v", V); dicQuery.Add("timestamp", nowTime.ToString()); dicSignStr = wmsStringHandler.WMSStringHanlder(dicQuery, Appsecret); param = "appkey=" + AppKey + "×tamp=" + nowTime + "&v=" + V + "&method=" + method + "¶m=" + wmsNotifyAddStr + "&sign=" + dicSignStr; FileHelper.logger.Debug(param); try { resWMSVal = ToolHelper.Post(Url, param); FileHelper.logger.Debug(resWMSVal); } catch { FileHelper.logger.Warn(string.Format("订单编号:{0}推送订单至海淘出错,错误信息:与海淘的订单校对接口连接出错", orderInfo[i].OrderSn)); } resJsonArr = new JavaScriptSerializer().Deserialize <WMSRetrunInfo>(resWMSVal); if (resJsonArr != null) //返回数据反序列化成功 { if (resJsonArr.Code == "0") //返回0代表成功 { if (new DSMTMALL.DB.BLL.MY_Bll(DBEnum.Master).UpdateModel <DSMTMALL.DB.Model.M_OrderInfo>(" OrderID=@_OrderID AND Version=@_Version ", new { _OrderID = orderInfo[i].OrderID, _Version = orderInfo[i].Version, OrderStatus = 9, TPLOrderNo = resJsonArr.Desc, Version = orderInfo[i].Version + 1 })) { FileHelper.logger.Info(string.Format("{0}推送成功,返回订单号:{1}", orderInfo[i].OrderSn, resJsonArr.Desc)); } //更新失败必须做处理 ==》改:不必做处理,因为会再次调API接口尝试更新订单信息 } else //返回不为0代表失败 { FileHelper.logger.Warn(string.Format("订单编号:{0}推送订单至海淘出错,错误信息:{1}", orderInfo[i].OrderSn, resJsonArr.Desc)); //返回状态不为0代表失败,失败就不用写异常 } } else//返回数据反序列化失败 { FileHelper.logger.Warn(string.Format("订单编号:{0}推送订单至海淘出错,错误信息:海淘返回信息反序列化出错", orderInfo[i].OrderSn)); } } else//获取当前订单的商品数据出错 { FileHelper.logger.Warn(string.Format("订单编号:{0}推送订单至海淘出错,错误信息:商品不存在", orderInfo[i].OrderSn)); } } //for循环结束 } //没有任务就什么都不执行 } catch (Exception ex) { if (ex.Message == ExceptionHelper.Exception1000) { return;//检测到接口返回数据出错,直接跳出循环体 } else { FileHelper.logger.Warn(ex.Message); } } }
public static void WMSSyncStockOut() { //基础配置 OrderHelper wmsStringHandler = new OrderHelper(); DateTime nowTime = DateTime.Now; string method = MethodStock; double outQuantity = 0; WMSStockQuery notifyQuery = new WMSStockQuery(Owner, ShopId); WMSStockResult resJsonArr = null; List <WMSStocksSku> resWmsSku = null; string resWMSVal = string.Empty; SortedDictionary <string, string> dicQuery = new SortedDictionary <string, string>();//每一订单推送后都必须要这个键值对初始化 try { IEnumerable <dynamic> infoList = new DSMTMALL.DB.BLL.MY_Bll(DBEnum.Slave).GetModelList(" SELECT GoodsSn FROM M_Goods WHERE SuppliersID = 101 AND IsEnable=1 AND IsDelete=0 ORDER BY LastUpdate ASC LIMIT 0,30", null); foreach (var item in infoList) { notifyQuery.SkuInfo += string.IsNullOrEmpty(notifyQuery.SkuInfo) ? item.GoodsSn : ";" + item.GoodsSn; } } catch { notifyQuery.SkuInfo = string.Empty;//错误的情况下写日志并赋值为空 FileHelper.logger.Warn("获取数据库同步库存商品列表失败"); } if (!string.IsNullOrEmpty(notifyQuery.SkuInfo)) { string wmsNotifyQueryStr = new JavaScriptSerializer().Serialize(notifyQuery);//将该笔订单信息JSON格式化 dicQuery.Add("appkey", AppKey); dicQuery.Add("method", method); dicQuery.Add("param", wmsNotifyQueryStr); dicQuery.Add("v", V); dicQuery.Add("timestamp", nowTime.ToString()); string dicSignStr = wmsStringHandler.WMSStringHanlder(dicQuery, Appsecret); string param = "appkey=" + AppKey + "×tamp=" + nowTime + "&v=" + V + "&method=" + method + "¶m=" + wmsNotifyQueryStr + "&sign=" + dicSignStr; try { resWMSVal = ToolHelper.Post(Url, param); resJsonArr = new JavaScriptSerializer().Deserialize <WMSStockResult>(resWMSVal); if (resJsonArr != null) { if (resJsonArr.Code == "0") { if (resJsonArr.Result != null && resJsonArr.Result.Stocks != null) { resWmsSku = resJsonArr.Result.Stocks; for (int i = 0; i < resWmsSku.Count; i++) { outQuantity = 0; if (!string.IsNullOrEmpty(resWmsSku[i].SkuCode) && !string.IsNullOrEmpty(resWmsSku[i].Quantity) && double.TryParse(resWmsSku[i].Quantity, out outQuantity)) { new DSMTMALL.DB.BLL.MY_Bll(DBEnum.Master).UpdateModel <DSMTMALL.DB.Model.M_Goods>("GoodsSn=@_GoodsSn", new { GoodsNumber = (int)outQuantity, LastUpdate = nowTime, _GoodsSn = resWmsSku[i].SkuCode }); } } } else { FileHelper.logger.Warn("同步库存信息失败,错误信息:" + resWMSVal); } } else { FileHelper.logger.Warn("同步库存信息失败,错误信息:" + resJsonArr.Desc); } } } catch (Exception emsg) { FileHelper.logger.Warn("同步库存信息失败" + emsg.ToString()); } } }
protected void GV_List_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { Label lblSeq = (Label)e.Row.FindControl("lblSeq"); Label lblItemCode = (Label)e.Row.FindControl("lblItemCode"); Label lblItemDescription = (Label)e.Row.FindControl("lblItemDescription"); Label lblUom = (Label)e.Row.FindControl("lblUom"); Label lblUnitCount = (Label)e.Row.FindControl("lblUnitCount"); Label lblLocFrom = (Label)e.Row.FindControl("lblLocFrom"); Label lblLocTo = (Label)e.Row.FindControl("lblLocTo"); Label lblPrice = (Label)e.Row.FindControl("lblPrice"); Label lblDiscount = (Label)e.Row.FindControl("lblDiscount"); Label lblDiscountRate = (Label)e.Row.FindControl("lblDiscountRate"); Label lblUnitPrice = (Label)e.Row.FindControl("lblUnitPrice"); Label lblReferenceItemCode = (Label)e.Row.FindControl("lblReferenceItemCode"); Label lblOrderQty = (Label)e.Row.FindControl("tbOrderQty"); Label lblReceivedQty = (Label)e.Row.FindControl("lblReceivedQty"); HiddenField hfId = (HiddenField)e.Row.FindControl("hfId"); TextBox tbReceiveQty = (TextBox)e.Row.FindControl("tbReceiveQty"); HiddenField hfHuOpt = (HiddenField)e.Row.FindControl("hfHuOpt"); TextBox tbHuId = (TextBox)e.Row.FindControl("tbHuId"); TextBox tbHuReceiveQty = (TextBox)e.Row.FindControl("tbHuReceiveQty"); RangeValidator rvReceiveQty = (RangeValidator)e.Row.FindControl("rvReceiveQty"); if (this.ModuleType != BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_PRODUCTION) { #region 颜色 decimal OrderQty = lblOrderQty.Text == string.Empty ? 0M : Convert.ToDecimal(lblOrderQty.Text); decimal ReceivedQty = lblReceivedQty.Text == string.Empty ? 0M : Convert.ToDecimal(lblReceivedQty.Text); decimal ReceiveQty = tbReceiveQty.Text == string.Empty ? 0M : Convert.ToDecimal(tbReceiveQty.Text); if (ReceiveQty < OrderQty - ReceivedQty) { for (int i = 0; i < e.Row.Cells.Count; i++) { e.Row.Cells[i].Attributes.Add("class", "GVRow"); } } else { for (int i = 0; i < e.Row.Cells.Count; i++) { e.Row.Cells[i].Attributes.Add("class", "GVAlternatingRow"); } } #endregion } else { string defaultReceiptOpt = TheEntityPreferenceMgr.LoadEntityPreference(BusinessConstants.ENTITY_PREFERENCE_CODE_DEFAULT_RECEIPT_OPTION).Value; OrderLocationTransaction orderLocTrans = (OrderLocationTransaction)e.Row.DataItem; tbReceiveQty.Text = OrderHelper.GetDefaultReceiptQty(orderLocTrans.OrderDetail, defaultReceiptOpt).ToString(); } #region 收货数控制 if (this.ModuleSubType == BusinessConstants.CODE_MASTER_ORDER_SUB_TYPE_VALUE_RTN) { rvReceiveQty.MaximumValue = "0"; rvReceiveQty.MinimumValue = "-999999999"; } #endregion } }
private void btnSendGoods_Click(object sender, EventArgs e) { OrderInfo orderInfo = OrderHelper.GetOrderInfo(this.orderId); if (orderInfo != null) { if ((orderInfo.GroupBuyId > 0) && (orderInfo.GroupBuyStatus != GroupBuyStatus.Success)) { this.ShowMsg("当前订单为团购订单,团购活动还未成功结束,所以不能发货", false); } else if (!orderInfo.CheckAction(OrderActions.SELLER_SEND_GOODS)) { this.ShowMsg("当前订单状态没有付款或不是等待发货的订单,所以不能发货", false); } else if (!this.radioShippingMode.SelectedValue.HasValue) { this.ShowMsg("请选择配送方式", false); } else if (string.IsNullOrEmpty(this.txtShipOrderNumber.Text.Trim()) || (this.txtShipOrderNumber.Text.Trim().Length > 20)) { this.ShowMsg("运单号码不能为空,在1至20个字符之间", false); } else if (string.IsNullOrEmpty(this.expressRadioButtonList.SelectedValue)) { this.ShowMsg("请选择物流公司", false); } else { ShippingModeInfo shippingMode = SalesHelper.GetShippingMode(this.radioShippingMode.SelectedValue.Value, true); orderInfo.RealShippingModeId = this.radioShippingMode.SelectedValue.Value; orderInfo.RealModeName = shippingMode.Name; ExpressCompanyInfo info3 = ExpressHelper.FindNode(this.expressRadioButtonList.SelectedValue); if (info3 != null) { orderInfo.ExpressCompanyAbb = info3.Kuaidi100Code; orderInfo.ExpressCompanyName = info3.Name; } orderInfo.ShipOrderNumber = this.txtShipOrderNumber.Text; if (OrderHelper.SendGoods(orderInfo)) { SendNote note = new SendNote(); note.NoteId = Globals.GetGenerateId(); note.OrderId = this.orderId; note.Operator = HiContext.Current.User.Username; note.Remark = "后台" + note.Operator + "发货成功"; OrderHelper.SaveSendNote(note); if (!string.IsNullOrEmpty(orderInfo.GatewayOrderId) && (orderInfo.GatewayOrderId.Trim().Length > 0)) { PaymentModeInfo paymentMode = SalesHelper.GetPaymentMode(orderInfo.PaymentTypeId); if (paymentMode != null) { PaymentRequest.CreateInstance(paymentMode.Gateway, HiCryptographer.Decrypt(paymentMode.Settings), orderInfo.OrderId, orderInfo.GetTotal(), "订单发货", "订单号-" + orderInfo.OrderId, orderInfo.EmailAddress, orderInfo.OrderDate, Globals.FullPath(Globals.GetSiteUrls().Home), Globals.FullPath(Globals.GetSiteUrls().UrlData.FormatUrl("PaymentReturn_url", new object[] { paymentMode.Gateway })), Globals.FullPath(Globals.GetSiteUrls().UrlData.FormatUrl("PaymentNotify_url", new object[] { paymentMode.Gateway })), "").SendGoods(orderInfo.GatewayOrderId, orderInfo.RealModeName, orderInfo.ShipOrderNumber, "EXPRESS"); } } int userId = orderInfo.UserId; if (userId == 0x44c) { userId = 0; } IUser user = Users.GetUser(userId); Messenger.OrderShipping(orderInfo, user); orderInfo.OnDeliver(); this.ShowMsg("发货成功", true); } else { this.ShowMsg("发货失败", false); } } } }
private DataSet GetPrintData(string orderIds) { orderIds = "'" + orderIds.Replace(",", "','") + "'"; return(OrderHelper.GetOrdersAndLines(orderIds)); }
protected override void Page_Load(object sender, EventArgs e) { base.Page_Load(sender, e); OrderHelper.SetDynamicLandingPageVersion("mobile", (ClientCartContext)Session["ClientOrderData"]); }
/// <summary> /// 转到打包区出院 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void toPackArea_Out_Click(object sender, EventArgs e) { //info_name toPackArea_Out if (dgv_OrderDetail.Rows.Count > 0 && dgv_OrderDetail.CurrentRow != null) { DataGridViewRow row = dgv_OrderDetail.CurrentRow; string str_isToPackOut = Convert.ToString(row.Cells["isToPackOut"].Value); if (str_isToPackOut == "1") { MessageBox.Show("对不起,该订单已转到清洗了,不能再转了"); return; } string orderNum = Convert.ToString(row.Cells["set_code"].Value); string batch = Convert.ToString(row.Cells["batch"].Value); string orderName = Convert.ToString(row.Cells["ca_name"].Value); SortedList condition = new SortedList(); SortedList orderWorkset = new SortedList(); SortedList bcuWorkset = new SortedList(); SortedList orderSendInfo = new SortedList(); SortedList orderWorksetInfo = new SortedList(); SortedList inOrderWorkset = new SortedList(); CnasRemotCall reCnasRemotCall = new CnasRemotCall(); string str_Seria = reCnasRemotCall.RemotInterface.Get_SerialNumber(1); string workSetTempwf_code = OrderHelper.GetValueCode("HCS-procedure-data", "Order_out_wf"); //3015 string wf_code = OrderHelper.GetValueCode("HCS-procedure-data", "Add_washing_count"); //2030; SortedList par_orderWorkset = new SortedList(); par_orderWorkset.Add(1, workSetTempwf_code); par_orderWorkset.Add(2, orderNum); orderWorkset.Add(1, par_orderWorkset); SortedList par_bcuWorkset = new SortedList(); par_bcuWorkset.Add(1, orderNum); bcuWorkset.Add(1, par_bcuWorkset); SortedList par_orderSendInfo = new SortedList(); par_orderSendInfo.Add(1, orderNum); orderSendInfo.Add(1, par_orderSendInfo); SortedList par_orderWorksetInfo = new SortedList(); par_orderWorksetInfo.Add(1, str_Seria); par_orderWorksetInfo.Add(2, "toPackArea_Out"); par_orderWorksetInfo.Add(3, orderNum); par_orderWorksetInfo.Add(4, 3); par_orderWorksetInfo.Add(5, CnasBaseData.UserID); orderWorksetInfo.Add(1, par_orderWorksetInfo); SortedList par_inOrderWorkset = new SortedList(); par_inOrderWorkset.Add(1, orderNum); par_inOrderWorkset.Add(2, orderNum); par_inOrderWorkset.Add(3, orderName); par_inOrderWorkset.Add(4, wf_code); par_inOrderWorkset.Add(5, CnasBaseData.UserID); par_inOrderWorkset.Add(6, str_Seria); par_inOrderWorkset.Add(7, string.Empty); //container_code par_inOrderWorkset.Add(8, string.Empty); //BCU_code par_inOrderWorkset.Add(9, 0); //status par_inOrderWorkset.Add(10, "再次清洗"); //remark par_inOrderWorkset.Add(11, 0); par_inOrderWorkset.Add(12, batch); inOrderWorkset.Add(1, par_inOrderWorkset); condition.Add(1, orderWorkset); condition.Add(2, bcuWorkset); condition.Add(3, orderSendInfo); condition.Add(4, orderWorksetInfo); condition.Add(5, inOrderWorkset); string testUpData = reCnasRemotCall.RemotInterface.CheckUPDataList("hcs_work_specialset_info-up008", condition); int saveResult = reCnasRemotCall.RemotInterface.UPDataList("hcs_work_specialset_info-up008", condition); if (saveResult > 0) { MessageBox.Show(PromptMessageXmlHelper.Instance.GetPromptMessage("addsuccessful", EnumPromptMessage.warning, new string[] { "订单处理" }), "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show(PromptMessageXmlHelper.Instance.GetPromptMessage("adddefeat", EnumPromptMessage.warning, new string[] { "订单处理" }), "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } LoadData(); } }
/// <summary> /// 加载数据 /// </summary> private void LoadData() { dgv_OrderDetail.Rows.Clear(); string orderCode = txtOrderCode.Text.Trim(); //条码 string getCustValue = GetSelectComBoBox(cbbCust, 1); //客户编码 string getLocationVAlue = GetSelectComBoBox(cbbLocation, 1); //使用地点id string getTempCode = txtTempCode.Text.Trim(); //铁牌 string getHandleState = GetSelectComBoBox(cbbOrderState, 1); //状态 CnasRemotCall reCnasRemotCall = new CnasRemotCall(); string orderStr = string.Empty; string otherStr = string.Empty; string workSetTempwf_code = OrderHelper.GetValueCode("HCS-procedure-data", "Order_out_wf"); bool isAllOrderState = string.IsNullOrEmpty(getHandleState); if (!isAllOrderState) { otherStr += "and handle_state ='" + getHandleState + "'"; } //custmoer bool isAllCust = getCustValue == "0" || string.IsNullOrEmpty(getCustValue); bool isAllLocation = string.IsNullOrEmpty(getLocationVAlue) || getLocationVAlue.Equals("0"); //custmoer if (_inappid == "1050") { //custmoer if (isAllCust) //使用区则所配的医院barcode { string customerArrange = OrderHelper.GetDicToArrangeStr(_customerDic); otherStr += " and hcs_customer.bar_code in ('" + customerArrange + "') "; //需要改 是一个范围 if (isAllLocation) //使用区所匹配的使用地点id { Dictionary <string, string> dic = OrderHelper.GetAllHandleLocation(getCustValue, _inappid == "1050", true, true); //该处可成为私有变量放在界面初始化 string locationArrange = OrderHelper.GetDicToArrangeStr(dic); otherStr += " and orderIdSet.location_id in ('" + locationArrange + "') "; //需要改 是一个范围 } } //custmoer if (!isAllCust) { otherStr += " and hcs_customer.bar_code='" + getCustValue + "' "; //location if (isAllLocation) //使用区所匹配的使用地点id { string locationArrange = OrderHelper.GetDicToArrangeStr(_locationDic); otherStr += " and orderIdSet.location_id in ('" + locationArrange + "') "; //需要改 是一个范围 } //location if (!isAllLocation) { otherStr += " and orderIdSet.location_id='" + getLocationVAlue + "' "; } } } else { //custmoer if (!isAllCust) { otherStr += " and hcs_customer.bar_code='" + getCustValue + "' "; } //location if (!isAllLocation) { otherStr += " and orderIdSet.location_id='" + getLocationVAlue + "' "; } } //orderCode if (!string.IsNullOrEmpty(orderCode)) { orderStr += " and set_code like '%" + orderCode + "%'"; } if (!string.IsNullOrEmpty(getTempCode)) { if (getTempCode.Length == 13) { otherStr += "and orderSet.set_code in ( SELECT set_code from (SELECT set_code from hcs_set_mapping where tem_code='" + getTempCode + "' ORDER BY cre_date desc LIMIT 0,1)t)"; } if (getTempCode.Length != 13) { otherStr += "and orderSet.set_code in ( SELECT set_code from hcs_set_mapping where tem_code like '%" + getTempCode + "%')"; } } DateTime creStartValue = creStartTime.Value; DateTime creEndValue = creEndTime.Value; if (_isFirst) { creStartValue = new DateTime(1900, 1, 1); creEndValue = DateTime.Now; } if (!string.IsNullOrEmpty(orderNameTxt.Text)) { otherStr += string.Format(" and orderIdSet.ca_name like '%{0}%'", orderNameTxt.Text); } SortedList condition = new SortedList(); condition.Add(1, creEndValue); condition.Add(2, creStartValue); condition.Add(3, orderStr); condition.Add(4, workSetTempwf_code); condition.Add(5, otherStr); string testDataSql = reCnasRemotCall.RemotInterface.CheckSelectData("hcs_work_specialset_info-sec016", condition); DataTable data = reCnasRemotCall.RemotInterface.SelectData("hcs_work_specialset_info-sec016", condition); if (data != null && data.Rows.Count > 0) { for (int i = 0; i < data.Rows.Count; i++) { DataRow row = data.Rows[i]; int index = dgv_OrderDetail.Rows.Add(); string wf_code_str = Convert.ToString(row["wf_code"]); string[] arr_wf_code = wf_code_str.Split(','); string show_wf_code = string.Empty; foreach (string item in arr_wf_code) { if (!string.IsNullOrEmpty(item) && sl_allpd != null && sl_allpd.ContainsKey(item)) { show_wf_code += item + ":" + Convert.ToString(sl_allpd[item]) + ","; } } if (show_wf_code.Length > 0) { show_wf_code = show_wf_code.Substring(0, show_wf_code.Length - ",".Length); } string tempSet_Code = Convert.ToString(row["set_code"]); dgv_OrderDetail.Rows[index].Cells["batch"].Value = Convert.ToString(row["batch"]); dgv_OrderDetail.Rows[index].Cells["cu_name"].Value = Convert.ToString(row["cu_name"]); dgv_OrderDetail.Rows[index].Cells["u_uname"].Value = Convert.ToString(row["u_uname"]); //dgv_OrderDetail.Rows[index].Cells["order_type"].Value = tempSet_Code.Length > 4 ? InitDgvDataOrderType(tempSet_Code.Substring(0, 5)) : InitDgvDataOrderType(tempSet_Code); dgv_OrderDetail.Rows[index].Cells["set_code"].Value = Convert.ToString(row["set_code"]); dgv_OrderDetail.Rows[index].Cells["ca_name"].Value = Convert.ToString(row["ca_name"]); dgv_OrderDetail.Rows[index].Cells["handle_state"].Value = OrderHelper.GetHandleStateType(Convert.ToString(row["handle_state"])); dgv_OrderDetail.Rows[index].Cells["user_name"].Value = Convert.ToString(row["user_name"]); dgv_OrderDetail.Rows[index].Cells["cre_date"].Value = Convert.ToString(row["cre_date"]); dgv_OrderDetail.Rows[index].Cells["wf_code_back"].Value = wf_code_str; dgv_OrderDetail.Rows[index].Cells["wf_code"].Value = show_wf_code; dgv_OrderDetail.Rows[index].Cells["isToPackOut"].Value = Convert.ToString(row["isToPackOut"]); } dgv_OrderDetail.ClearSelection(); dgv_OrderDetail.ContextMenuStrip = dgv_Do; } if (data == null || data.Rows.Count == 0) { dgv_OrderDetail.ContextMenuStrip = null; } }
/// <summary> /// 仅仅设置客户名称 /// </summary> private void InitCustomerItem() { _customerDic = OrderHelper.GetAllHandleCustomer(); DicBindCbb(cbbCust, _customerDic); }
/// <summary> /// 订单处理状态 /// </summary> private void SetComOrderStateItem() { Dictionary <string, string> dic = OrderHelper.GetAllHandleState(); DicBindCbb(cbbOrderState, dic); }
/// <summary> /// 保存事件 /// </summary> private void OnSaveClick() { //p Data string p_Number = txt_pNumber.Text.Trim(); string p_Name = txt_pName.Text.Trim(); string p_Sex = txt_pSex.SelectedValue.ToString();//性别 string p_Age = txt_pAge.Text.Trim(); string p_Operation = txt_pOperation.Text.Trim(); string p_Doctor = txt_pDoctor.Text.Trim(); DateTime p_OperationTime = txt_pOperationTime.Value; // v Data string v_id = string.Empty; string v_name = string.Empty; string v_packName = txt_pack.Text.Trim(); string v_checkName = txt_check.Text.Trim(); string v_sendName = txt_send.Text.Trim(); string v_linkNum = txt_link.Text.Trim(); DateTime v_noteDate = date_note.Value; DateTime v_arriveDate = date_arrive.Value; string v_remark = txt_remark.Text.Trim(); if (cbb_vender.Items.Count > 0) { if (cbb_vender.SelectedItem != null && cbb_vender.SelectedItem is KeyValuePair <string, string> ) { KeyValuePair <string, string> item = (KeyValuePair <string, string>)cbb_vender.SelectedItem; v_id = item.Key; v_name = item.Value; } } //start check Data if (string.IsNullOrEmpty(p_Number)) { MessageBox.Show("对不起,请填写住院号"); return; } if (string.IsNullOrEmpty(p_Name)) { MessageBox.Show("对不起,请填写病人姓名"); return; } if (string.IsNullOrEmpty(p_Age)) { MessageBox.Show("对不起,请填写年龄"); return; } int tempAge; if (!int.TryParse(p_Age, out tempAge)) { MessageBox.Show("对不起,年龄请填写整数"); return; } if (string.IsNullOrEmpty(p_Operation)) { MessageBox.Show("对不起,请填写手术名称"); return; } if (string.IsNullOrEmpty(p_Doctor)) { MessageBox.Show("对不起,请填写医生名称"); return; } if (string.IsNullOrEmpty(v_id)) { MessageBox.Show("对不起,没有外来器械供应商,请联系管理员登记"); return; } if (string.IsNullOrEmpty(v_packName)) { MessageBox.Show("对不起,请填写配货人"); return; } if (string.IsNullOrEmpty(v_checkName)) { MessageBox.Show("对不起,请填写复核人"); return; } if (string.IsNullOrEmpty(v_sendName)) { MessageBox.Show("对不起,请填写下送人"); return; } if (string.IsNullOrEmpty(v_linkNum)) { MessageBox.Show("对不起,请填写联系方式"); return; } //验证电话号码 if (!OrderHelper.IsPhone(v_linkNum)) { MessageBox.Show("对不起,请填写正确的联系方式"); return; } //end check Data if (PatientList == null) { PatientList = new SortedList(); } if (PatientList.ContainsKey("p_Number")) { PatientList["p_Number"] = p_Number; } else { PatientList.Add("p_Number", p_Number); } if (PatientList.ContainsKey("p_Name")) { PatientList["p_Name"] = p_Name; } else { PatientList.Add("p_Name", p_Name); } if (PatientList.ContainsKey("p_Sex")) { PatientList["p_Sex"] = p_Sex; } else { PatientList.Add("p_Sex", p_Sex); } if (PatientList.ContainsKey("p_Age")) { PatientList["p_Age"] = p_Age; } else { PatientList.Add("p_Age", p_Age); } if (PatientList.ContainsKey("p_Operation")) { PatientList["p_Operation"] = p_Operation; } else { PatientList.Add("p_Operation", p_Operation); } if (PatientList.ContainsKey("p_Doctor")) { PatientList["p_Doctor"] = p_Doctor; } else { PatientList.Add("p_Doctor", p_Doctor); } if (PatientList.ContainsKey("p_OperationTime")) { PatientList["p_OperationTime"] = p_OperationTime; } else { PatientList.Add("p_OperationTime", p_OperationTime); } SortedList condition = new SortedList(); //插入 SortedList sea_condition = new SortedList(); //查询 SortedList condition1 = new SortedList(); SortedList condition2 = new SortedList(); SortedList par_condition = new SortedList(); SortedList par_condition2 = new SortedList(); //p Datas par_condition.Add(1, p_Number); par_condition.Add(2, p_Name); par_condition.Add(3, p_Sex); par_condition.Add(4, p_Age); par_condition.Add(5, p_Operation); par_condition.Add(6, p_Doctor); par_condition.Add(7, p_OperationTime); par_condition.Add(8, 1); condition1.Add(1, par_condition); condition.Add(1, condition1); //v Datas par_condition2.Add(1, v_id); par_condition2.Add(2, v_name); par_condition2.Add(3, v_packName); par_condition2.Add(4, v_checkName); par_condition2.Add(5, v_sendName); par_condition2.Add(6, v_linkNum); par_condition2.Add(7, v_noteDate); par_condition2.Add(8, v_arriveDate); par_condition2.Add(9, v_remark); par_condition2.Add(10, CnasBaseData.UserID); condition2.Add(1, par_condition2); condition.Add(2, condition2); // sea_condition.Add(1, p_Number); sea_condition.Add(2, p_Name); sea_condition.Add(3, v_id); sea_condition.Add(4, v_packName); sea_condition.Add(5, v_checkName); sea_condition.Add(6, v_sendName); sea_condition.Add(7, v_linkNum); sea_condition.Add(8, v_noteDate); sea_condition.Add(9, v_arriveDate); CnasRemotCall reCnasRemotCall = new CnasRemotCall(); //string testsql = reCnasRemotCall.RemotInterface.CheckUPDataList("HCS-specialset-person-up002", condition); int rect = reCnasRemotCall.RemotInterface.UPDataList("HCS-specialset-person-up002", condition); if (rect > 0) { //string testSecData = reCnasRemotCall.RemotInterface.CheckSelectData("HCS-specialset-person-sec002", sea_condition); DataTable data = reCnasRemotCall.RemotInterface.SelectData("HCS-specialset-person-sec002", sea_condition); if (data != null && data.Rows.Count > 0) { for (int i = 0; i < data.Rows.Count; i++) { string tempId = Convert.ToString(data.Rows[i]["id"]); string tempType = Convert.ToString(data.Rows[i]["idType"]); switch (tempType) { case "1": int.TryParse(tempId, out Patient_Id); break; case "2": int.TryParse(tempId, out Venderinfo_id); break; default: break; } } } else { MessageBox.Show("对不起,保存失败!"); } } else { MessageBox.Show("对不起,保存失败!"); } Close(); }
private XmlNode GetConfig() { return(OrderHelper.GetDefaultFulFillmentHouseConfig()); }
public void EvaluateOrderStatus(Order order) { if (order == null) { _logger.LogError <Order>(new ArgumentNullException(nameof(Order)), "Can't update a null order"); return; } if (new List <OrderStatus> { OrderStatus.Cancelled, OrderStatus.Returned, OrderStatus.PartiallyReturned, OrderStatus.Closed, OrderStatus.SubscriptionCancelled }.Contains(order.OrderStatus)) { return; } //if order is complete already, give up if (order.OrderStatus == OrderStatus.Complete) { var returnRequests = _returnRequestService.GetOrderReturnRequests(order.Id).ToList(); if (returnRequests.Any(x => x.ReturnRequestStatus != ReturnRequestStatus.Complete)) { return; //do nothing } if (returnRequests.Count < order.OrderItems.Count || returnRequests.Sum(x => x.Quantity) < order.OrderItems.Sum(x => x.Quantity)) { order.OrderStatus = OrderStatus.PartiallyReturned; } else { order.OrderStatus = OrderStatus.Returned; } _orderService.Update(order); return; } //is that an order for digital products only if (order.PaymentStatus == PaymentStatus.Complete && OrderHelper.IsDownloadOnly(order)) { //the order can be marked complete here order.OrderStatus = OrderStatus.Complete; _orderService.Update(order); return; } //we can't do anything to update order status for now if (order.Shipments == null) { //we'll fetch all the products and see if there is any shippable var productIds = order.OrderItems.Select(x => x.ProductId).ToList(); var products = _productService.GetProducts(productIds); if (products.All(x => !x.IsShippable)) { //no product is shippable, was payment done? order.OrderStatus = order.PaymentStatus == PaymentStatus.Complete ? OrderStatus.Complete : OrderStatus.Processing; _orderService.Update(order); } return; } var orderStatus = order.OrderStatus; var orderItemIds = order.OrderItems.Select(x => x.Id).ToList(); var shippedOrderItemIds = order.Shipments.Where(x => x.ShipmentStatus == ShipmentStatus.InTransit || x.ShipmentStatus == ShipmentStatus.Packaged) .SelectMany(x => x.ShipmentItems.Select(y => y.OrderItemId)) .ToList(); if (orderItemIds.Count > shippedOrderItemIds.Count) { orderStatus = OrderStatus.PartiallyShipped; } else { //check if there is partial shipment for individual item var shippedOrderItemsCount = order.Shipments.SelectMany(x => x.ShipmentItems) .GroupBy(x => x.OrderItemId, x => x.Quantity) .ToList(); foreach (var oic in shippedOrderItemsCount) { var orderItemId = oic.Key; var shippedCount = oic.Sum(); //if any individual items is short in supply then mark as partially shipped if (order.OrderItems.First(x => x.Id == orderItemId).Quantity > shippedCount) { orderStatus = OrderStatus.PartiallyShipped; break; } } } //has the order status changed, if not check further for other possibilities if (order.OrderStatus == orderStatus || orderStatus == OrderStatus.PartiallyShipped) { if (order.Shipments.All(x => x.ShipmentStatus == ShipmentStatus.Packaged)) { orderStatus = OrderStatus.Processing; } else if (order.Shipments.All(x => x.ShipmentStatus == ShipmentStatus.Returned)) { orderStatus = OrderStatus.Returned; } else if (order.Shipments.All(x => x.ShipmentStatus == ShipmentStatus.InTransit) && orderStatus != OrderStatus.PartiallyShipped) { orderStatus = OrderStatus.Shipped; } else if (order.Shipments.All(x => x.ShipmentStatus == ShipmentStatus.OutForDelivery) && orderStatus != OrderStatus.PartiallyShipped) { orderStatus = OrderStatus.Shipped; } else if (order.Shipments.Any(x => x.ShipmentStatus == ShipmentStatus.InTransit)) { orderStatus = OrderStatus.PartiallyShipped; } if (order.PaymentStatus == PaymentStatus.Complete) { if (order.Shipments.All(x => x.ShipmentStatus == ShipmentStatus.Delivered)) { orderStatus = OrderStatus.Complete; } } else { if (order.Shipments.All(x => x.ShipmentStatus == ShipmentStatus.Delivered)) { orderStatus = OrderStatus.OnHold; //COD may be? } } } //update the order status to db if (order.OrderStatus != orderStatus) { order.OrderStatus = orderStatus; _orderService.Update(order); //depending on the order status, we'll update the popularity var productIds = order.OrderItems.Select(x => x.ProductId).ToArray(); switch (orderStatus) { case OrderStatus.Complete: _productService.UpdatePopularityIndex(true, productIds); break; case OrderStatus.Returned: _productService.UpdatePopularityIndex(false, productIds); break; } } }
public string formatcc(string moneys) { return(OrderHelper.GetPriceStr(DataConverter.CDouble(moneys), Eval("AllMoney_Json").ToString())); }
protected override void Page_Load(object sender, EventArgs e) { base.Page_Load(sender, e); OrderHelper.RedirectMobile(); }
private void BindData() { if (orderId > 0) { Order orderData = CSResolve.Resolve <IOrderService>().GetOrderDetails(orderId, true); dlordersList.DataSource = orderData.SkuItems.FindAll(x => x.SkuId != 153);; dlordersList.DataBind(); ltOfferDetails.Text = OrderHelper.GetOfferDatails(); if (string.IsNullOrEmpty(ltOfferDetails.Text)) { cart_offer_wrap_m.Visible = false; } else { cart_offer_wrap_m.Visible = true; } LiteralSubTotal.Text = Math.Round(orderData.SubTotal, 2).ToString(); LiteralShipping.Text = Math.Round(orderData.ShippingCost, 2).ToString(); LiteralTax.Text = Math.Round(orderData.Tax, 2).ToString(); LiteralTotal.Text = Math.Round(orderData.Total, 2).ToString(); ltCardNumber.Text = orderData.CreditInfo.CreditCardNumber.Substring(orderData.CreditInfo.CreditCardNumber.Length - 4, 4); ltCardType.Text = orderData.CreditInfo.CreditCardName;//.Substring(0, 1); ltExpDate.Text = orderData.CreditInfo.CreditCardExpired.ToString("MM/yyyy"); if (orderData.RushShippingCost > 0) { pnlRushLabel.Visible = true; pnlRush.Visible = true; LiteralRushShipping.Text = Math.Round(orderData.RushShippingCost, 2).ToString(); } if (orderData.DiscountCode.Length > 0) { pnlPromotionLabel.Visible = true; pnlPromotionalAmount.Visible = true; lblPromotionPrice.Text = String.Format("(${0:0.00})", orderData.DiscountAmount); } LiteralName.Text = String.Format("{0} {1}", orderData.CustomerInfo.ShippingAddress.FirstName, orderData.CustomerInfo.ShippingAddress.LastName); LiteralEmail.Text = orderData.CustomerInfo.Email; LiteralAddress.Text = orderData.CustomerInfo.ShippingAddress.Address1; LiteralAddress2.Text = orderData.CustomerInfo.ShippingAddress.Address2; if (LiteralAddress2.Text.Equals("")) { pnlSAddress2.Visible = false; } else { pnlSAddress2.Visible = true; } LiteralCity.Text = orderData.CustomerInfo.ShippingAddress.City; LiteralZip.Text = orderData.CustomerInfo.ShippingAddress.ZipPostalCode; LiteralState.Text = StateManager.GetStateName(orderData.CustomerInfo.ShippingAddress.StateProvinceId); LiteralCountry.Text = CountryManager.CountryName(orderData.CustomerInfo.ShippingAddress.CountryId); LiteralName_b.Text = String.Format("{0} {1}", orderData.CustomerInfo.BillingAddress.FirstName, orderData.CustomerInfo.BillingAddress.LastName); LiteralAddress_b.Text = orderData.CustomerInfo.BillingAddress.Address1; LiteralAddress2_b.Text = orderData.CustomerInfo.BillingAddress.Address2; if (LiteralAddress2_b.Text.Equals("")) { pnlBAddress2.Visible = false; } else { pnlBAddress2.Visible = true; } LiteralCity_b.Text = orderData.CustomerInfo.BillingAddress.City; LiteralZip_b.Text = orderData.CustomerInfo.BillingAddress.ZipPostalCode; LiteralState_b.Text = StateManager.GetStateName(orderData.CustomerInfo.BillingAddress.StateProvinceId); LiteralCountry_b.Text = CountryManager.CountryName(orderData.CustomerInfo.BillingAddress.CountryId); LiteralPhone.Text = orderData.CustomerInfo.BillingAddress.PhoneNumber; //Google Analutics E-Commerce Pixel //LoadGoogleAnalytics(orderData); } }
private void btnAcceptReturn_Click(object sender, EventArgs e) { int num = this.Page.Request["ReturnId"].ToInt(0); string text = Globals.StripAllTags(this.txtAdminShipAddress.Text); string adminShipTo = Globals.StripAllTags(this.txtAdminShipTo.Text); string adminCellPhone = Globals.StripAllTags(this.txtAdminCellPhone.Text); ReturnInfo returnInfo = TradeHelper.GetReturnInfo(num); string adminRemark = Globals.StripAllTags(this.txtAdminRemark.Text); string text2 = "退货"; if (returnInfo == null) { this.ShowMsg("售后信息错误!", false); } else { bool flag = false; if (returnInfo.AfterSaleType == AfterSaleTypes.OnlyRefund) { text2 = "退款"; flag = true; } string skuId = returnInfo.SkuId; OrderInfo orderInfo = TradeHelper.GetOrderInfo(returnInfo.OrderId); if (orderInfo == null) { this.ShowMsg("订单不存在!", false); } else if (!orderInfo.LineItems.ContainsKey(skuId)) { this.ShowMsg("订单中不存在要退货的商品!", false); } else { LineItemInfo lineItemInfo = orderInfo.LineItems[skuId]; decimal num2 = default(decimal); if (lineItemInfo.Status != LineItemStatus.ReturnApplied) { this.ShowMsg(text2 + "状态不正确.", false); } else if (!decimal.TryParse(this.txtRefundMoney.Text, out num2)) { this.ShowMsg("退款金额需为数字格式!", false); } else if (num2 < decimal.Zero) { this.ShowMsg("退款金额必须大于等于0", false); } else { if (this.UserStoreId != returnInfo.StoreId && returnInfo.StoreId >= 0) { if (!flag) { this.ShowMsg("同意" + text2 + "只能由发货的店铺或者平台进行处理!", false); return; } if (orderInfo.IsStoreCollect) { this.ShowMsg("门店收的款,只能由门店进行退款确认处理!", false); return; } } if (!flag && string.IsNullOrEmpty(text)) { this.ShowMsg("请输入收货地址,告之用户发货的地址和联系方式", false); } else { GroupBuyInfo groupbuy = null; if (orderInfo.GroupBuyId > 0) { groupbuy = ProductBrowser.GetGroupBuy(orderInfo.GroupBuyId); } decimal canRefundAmount = orderInfo.GetCanRefundAmount(skuId, groupbuy, 0); if (num2 > canRefundAmount) { this.ShowMsg("退款金额不能大于退货订单或者商品的金额!", false); } else if (flag) { RefundTypes refundType = returnInfo.RefundType; string userRemark = returnInfo.UserRemark; MemberInfo user = Users.GetUser(orderInfo.UserId); string text3 = ""; if (RefundHelper.IsBackReturn(orderInfo.Gateway) && returnInfo.RefundType == RefundTypes.BackReturn) { text3 = RefundHelper.SendRefundRequest(orderInfo, num2, returnInfo.RefundOrderId, false); if (text3 == "") { if (OrderHelper.AgreedReturns(num, num2, adminRemark, orderInfo, returnInfo.SkuId, text, adminShipTo, adminCellPhone, flag, false)) { VShopHelper.AppPushRecordForOrder(orderInfo.OrderId, returnInfo.SkuId, EnumPushOrderAction.OrderReturnConfirm); Messenger.OrderRefund(user, orderInfo, returnInfo.SkuId); this.ShowMsg("成功的完成退款并且已成功原路退回退款金额!", true, HttpContext.Current.Request.Url.ToString()); } } else { this.ShowMsg("退款原路返回错误,错误信息" + text3 + ",请重新尝试!", false); } } else if (OrderHelper.AgreedReturns(num, num2, adminRemark, orderInfo, returnInfo.SkuId, text, adminShipTo, adminCellPhone, flag, returnInfo.RefundType == RefundTypes.InBalance)) { VShopHelper.AppPushRecordForOrder(orderInfo.OrderId, returnInfo.SkuId, EnumPushOrderAction.OrderReturnConfirm); Messenger.OrderRefund(user, orderInfo, returnInfo.SkuId); if (returnInfo.RefundType == RefundTypes.InBalance) { this.ShowMsg("成功确定了退款,退款金额已退回用户预付款帐号!", true, HttpContext.Current.Request.Url.ToString()); } else { this.ShowMsg("成功的完成了退款,请即时给用户退款", true, HttpContext.Current.Request.Url.ToString()); } } } else if (OrderHelper.AgreedReturns(num, num2, adminRemark, orderInfo, returnInfo.SkuId, text, adminShipTo, adminCellPhone, flag, false)) { VShopHelper.AppPushRecordForOrder(orderInfo.OrderId, returnInfo.SkuId, EnumPushOrderAction.OrderReturnConfirm); this.ShowMsg("成功的确认了售后", true, HttpContext.Current.Request.Url.ToString()); } else { this.ShowMsg("确认售后失败!", false); } } } } } }
private void btnSendGoods_Click(object sender, System.EventArgs e) { OrderInfo orderInfo = OrderHelper.GetOrderInfo(this.orderId); if (orderInfo == null) { return; } if (orderInfo.GroupBuyId > 0 && orderInfo.GroupBuyStatus != GroupBuyStatus.Success) { this.ShowMsg("当前订单为团购订单,团购活动还未成功结束,所以不能发货", false); return; } if (!orderInfo.CheckAction(OrderActions.SELLER_SEND_GOODS)) { this.ShowMsg("当前订单状态没有付款或不是等待发货的订单,所以不能发货", false); return; } if (!this.radioShippingMode.SelectedValue.HasValue) { this.ShowMsg("请选择配送方式", false); return; } if (string.IsNullOrEmpty(this.txtShipOrderNumber.Text.Trim()) || this.txtShipOrderNumber.Text.Trim().Length > 20) { this.ShowMsg("运单号码不能为空,在1至20个字符之间", false); return; } if (string.IsNullOrEmpty(this.expressRadioButtonList.SelectedValue)) { this.ShowMsg("请选择物流公司", false); return; } ShippingModeInfo shippingMode = SalesHelper.GetShippingMode(this.radioShippingMode.SelectedValue.Value, true); orderInfo.RealShippingModeId = this.radioShippingMode.SelectedValue.Value; orderInfo.RealModeName = shippingMode.Name; ExpressCompanyInfo expressCompanyInfo = ExpressHelper.FindNode(this.expressRadioButtonList.SelectedValue); if (expressCompanyInfo != null) { orderInfo.ExpressCompanyAbb = expressCompanyInfo.Kuaidi100Code; orderInfo.ExpressCompanyName = expressCompanyInfo.Name; } orderInfo.ShipOrderNumber = this.txtShipOrderNumber.Text; if (OrderHelper.SendGoods(orderInfo)) { SendNote sendNote = new SendNote(); sendNote.NoteId = Globals.GetGenerateId(); sendNote.OrderId = this.orderId; sendNote.Operator = Hidistro.Membership.Context.HiContext.Current.User.Username; sendNote.Remark = "后台" + sendNote.Operator + "发货成功"; OrderHelper.SaveSendNote(sendNote); if (this.orderId.IndexOf("OP") != -1) { string purchaseOrderId = this.orderId.Substring(this.orderId.IndexOf("_") + 1); PurchaseOrderInfo purchaseOrder = SalesHelper.GetPurchaseOrder(purchaseOrderId); if (purchaseOrder == null && !string.IsNullOrEmpty(purchaseOrder.TaobaoOrderId)) { try { ExpressCompanyInfo expressCompanyInfo2 = ExpressHelper.FindNode(orderInfo.ExpressCompanyName); string requestUriString = string.Format("http://order1.kuaidiangtong.com/UpdateShipping.ashx?tid={0}&companycode={1}&outsid={2}", purchaseOrder.TaobaoOrderId, expressCompanyInfo2.TaobaoCode, orderInfo.ShipOrderNumber); System.Net.WebRequest webRequest = System.Net.WebRequest.Create(requestUriString); webRequest.GetResponse(); } catch { } } } orderInfo.OnDeliver(); this.CloseWindow(); return; } this.ShowMsg("发货失败", false); }
private void btnFinishReturn_Click(object sender, EventArgs e) { int returnId = this.Page.Request["ReturnId"].ToInt(0); string text = ""; text = this.txtAdminRemark.Text; ReturnInfo returnInfo = TradeHelper.GetReturnInfo(returnId); OrderInfo orderInfo = TradeHelper.GetOrderInfo(returnInfo.OrderId); decimal num = this.txtRefundMoney.Text.ToDecimal(0); if (orderInfo == null) { this.ShowMsg("订单不存在!", false); } else if (returnInfo == null) { this.ShowMsg("退货信息错误!", false); } else if (orderInfo.IsStoreCollect && this.UserStoreId == 0) { this.ShowMsg("该订单为门店收款,完成退货(退款)操作操作只能由门店进行操作", false); } else { if (!orderInfo.IsStoreCollect && this.UserStoreId != 0) { this.ShowMsg("非门店收款订单,只能由平台进行完成退货(退款)操作!", false); } if (returnInfo.HandleStatus != ReturnStatus.GetGoods && returnInfo.HandleStatus != ReturnStatus.Deliverying) { this.ShowMsg("当前状态不允许完成退货!", false); } else { GroupBuyInfo groupbuy = null; if (orderInfo.GroupBuyId > 0) { groupbuy = ProductBrowser.GetGroupBuy(orderInfo.GroupBuyId); } decimal canRefundAmount = orderInfo.GetCanRefundAmount(returnInfo.SkuId, groupbuy, 0); if (num < decimal.Zero) { this.ShowMsg("退款金额必须大于等于0", false); } else if (num > canRefundAmount) { this.ShowMsg("退款金额不能大于退货订单或者商品的金额!", false); } else { if (string.IsNullOrEmpty(text)) { text = returnInfo.AdminRemark; } string skuId = returnInfo.SkuId; if (!orderInfo.LineItems.ContainsKey(skuId)) { this.ShowMsg("订单中不存在要退货的商品!", false); } else { LineItemInfo lineItemInfo = orderInfo.LineItems[skuId]; if (this.UserStoreId != 0 && lineItemInfo.Status != LineItemStatus.DeliveryForReturn && lineItemInfo.Status != LineItemStatus.GetGoodsForReturn) { this.ShowMsg("当前状态不允许完成退货.", false); } else { MemberInfo user = Users.GetUser(orderInfo.UserId); string text2 = ""; if (RefundHelper.IsBackReturn(orderInfo.Gateway) && returnInfo.RefundType == RefundTypes.BackReturn) { text2 = RefundHelper.SendRefundRequest(orderInfo, num, returnInfo.RefundOrderId, false); if (text2 == "") { if (OrderHelper.CheckReturn(returnInfo, orderInfo, HiContext.Current.Manager.UserName, num, text, true, false)) { this.ShowMsg("成功的完成退货并且已成功原路退回退款金额", true, HttpContext.Current.Request.Url.ToString()); } } else { this.ShowMsg("退货退款原路返回请求失败,错误信息:" + text2 + ",请重试!", false); } } else if (OrderHelper.CheckReturn(returnInfo, orderInfo, HiContext.Current.Manager.UserName, num, text, true, false)) { Messenger.OrderRefund(user, orderInfo, returnInfo.SkuId); if (returnInfo.RefundType == RefundTypes.InBalance) { this.ShowMsg("成功确定了退款,退款金额已退回用户预付款帐号!", true, HttpContext.Current.Request.Url.ToString()); } else { this.ShowMsg("成功的完成了退款,请即时给用户退款", true, HttpContext.Current.Request.Url.ToString()); } } } } } } } }
/// <summary> /// 查询订单进行校队 /// </summary> public static void WMSNotifyQuery() { //基础配置 OrderHelper wmsStringHandler = new OrderHelper(); DateTime nowTime = DateTime.Now; string method = MethodQuery; string email = Email; string mailContent = string.Empty; string wmsNotifyQueryStr = string.Empty; WMSNotifyQuery notifyQuery = new WMSNotifyQuery(Owner); List <DSMTMALL.DB.Model.M_OrderGoods> orderGoodsList = null; List <WMSStockOutRow> wmsStockOutRow = null; WMSReturnQuery resJsonArr = null; List <DSMTMALL.DB.Model.M_OrderInfo> orderInfo = null; SortedDictionary <string, string> dicQuery = null; // new SortedDictionary<string, string>();//每一订单推送后都必须要这个键值对初始化 string strWhere = "SuppliersID=101 AND OrderStatus=9 AND PayStatus=2 AND IsVerify=0 LIMIT 50"; //1.订单的商品来源要是海淘的,2.订单的状态要已推送订单,3.订单的支付状态是已付款的 4.订单校对为0未校对 try { orderInfo = new DSMTMALL.DB.BLL.MY_Bll(DBEnum.Slave).GetModelList <DSMTMALL.DB.Model.M_OrderInfo>(strWhere, null);//获取所有要校对的订单列表 } catch (Exception esql) { orderInfo = null; FileHelper.logger.Warn(string.Format("获取要校对的订单列表信息出错" + esql.Message)); } if (orderInfo != null && orderInfo.Count > 0) { for (int i = 0; i < orderInfo.Count; i++)//对符合条件的内容进行for循环 { string dicSignStr = string.Empty; string resWMSVal = string.Empty; nowTime = DateTime.Now; string param = string.Empty; orderGoodsList = null; wmsStockOutRow = null; mailContent = string.Empty; wmsNotifyQueryStr = string.Empty; resJsonArr = null; try { if (!string.IsNullOrEmpty(orderInfo[i].TPLOrderNo)) //第三方系统推送回的订单号不为空的情况下执行订单校对 { dicQuery = new SortedDictionary <string, string>(); //每一订单推送后都必须要这个键值对初始化 notifyQuery.Code = orderInfo[i].TPLOrderNo; wmsNotifyQueryStr = new JavaScriptSerializer().Serialize(notifyQuery); //将该笔订单信息JSON格式化 dicQuery.Add("appkey", AppKey); dicQuery.Add("method", method); dicQuery.Add("param", wmsNotifyQueryStr); dicQuery.Add("v", V); dicQuery.Add("timestamp", nowTime.ToString()); dicSignStr = wmsStringHandler.WMSStringHanlder(dicQuery, Appsecret); param = "appkey=" + AppKey + "×tamp=" + nowTime + "&v=" + V + "&method=" + method + "¶m=" + wmsNotifyQueryStr + "&sign=" + dicSignStr; try { resWMSVal = ToolHelper.Post(Url, param); } catch { FileHelper.logger.Warn(string.Format("{0}与海淘校对订单信息出错,错误信息:与海淘的订单校对接口连接出错", orderInfo[i].OrderSn)); } resJsonArr = new JavaScriptSerializer().Deserialize <WMSReturnQuery>(resWMSVal); if (resJsonArr != null) //返回数据反序列化成功 { if (resJsonArr.Code == "0") //返回0-成功 { wmsStockOutRow = resJsonArr.Result.Rows; orderGoodsList = new DSMTMALL.DB.BLL.MY_Bll(DBEnum.Slave).GetModelList <DSMTMALL.DB.Model.M_OrderGoods>(" OrderSn=@_OrderSn", new { _OrderSn = orderInfo[i].OrderSn }); //获取该订单商品列表 if (orderGoodsList != null && wmsStockOutRow != null && orderGoodsList.Count > 0 && wmsStockOutRow.Count > 0) //该订单商品信息不为空 { if (orderGoodsList.Count == wmsStockOutRow.Count) //商品信息品类等长 { orderGoodsList.Sort((DSMTMALL.DB.Model.M_OrderGoods x, DSMTMALL.DB.Model.M_OrderGoods y) => x.GoodsSn.CompareTo(y.GoodsSn)); wmsStockOutRow.Sort((WMSStockOutRow x, WMSStockOutRow y) => x.MerchId.CompareTo(y.MerchId)); bool isSame = true; for (int j = 0; j < orderGoodsList.Count; j++) { //对俩个按照商品编号排序后的商品信息集合进行校对商品编号与数量是否一致, if (orderGoodsList[j].GoodsSn != wmsStockOutRow[j].MerchId || Convert.ToDouble(orderGoodsList[j].BuyNumber) != Convert.ToDouble(wmsStockOutRow[j].Qty)) { isSame = false; break; } } if (isSame) { if (new DSMTMALL.DB.BLL.MY_Bll(DBEnum.Master).UpdateModel <DSMTMALL.DB.Model.M_OrderInfo>(" OrderID=@_OrderID AND Version=@_Version ", new { _OrderID = orderInfo[i].OrderID, _Version = orderInfo[i].Version, IsVerify = 1, Version = orderInfo[i].Version + 1 })) { FileHelper.logger.Info(string.Format("{0}校对成功,返回信息:{1}--物流公司:{2}/物流单号:{3}/发货时间:{4}", orderInfo[i].OrderSn, resJsonArr.Desc, resJsonArr.Result.LogisticCompany, resJsonArr.Result.LogisiticNumber, resJsonArr.Result.StockOutDate)); }//校队失败必须做处理,==》改:不必做处理,因为会再次调API接口尝试校队订单信息 } else { FileHelper.logger.Warn(string.Format("订单编号:{0}与海淘校对订单信息出错,错误信息:返回的商品编号与数量不一致{1}", orderInfo[i].OrderSn, resWMSVal)); throw new Exception(ExceptionHelper.Exception1003);//1003与海淘校对订单出错 } } else { FileHelper.logger.Warn(string.Format("订单编号:{0}与海淘校对订单信息出错,错误信息:返回的商品数量不一致{1}", orderInfo[i].OrderSn, resWMSVal)); throw new Exception(ExceptionHelper.Exception1003); } } else//订单商品信息为空 { FileHelper.logger.Warn(string.Format("订单编号:{0}与海淘校对订单信息出错,错误信息:返回的商品数据为空{1}", orderInfo[i].OrderSn, resWMSVal)); throw new Exception(ExceptionHelper.Exception1003); } } else//返回1 { FileHelper.logger.Warn(string.Format("订单编号:{0}与海淘校对订单信息出,错误信息:{1}}", orderInfo[i].OrderSn, resJsonArr.Desc)); } } else { FileHelper.logger.Warn(string.Format("订单编号:{0},与海淘校对订单信息出错,错误信息:海淘返回信息反序列化出错", orderInfo[i].OrderSn)); } } else { FileHelper.logger.Warn(string.Format("订单编号:{0}与海淘校对订单信息出错,错误信息:该订单没有第三方系统后返回的订单编号", orderInfo[i].OrderSn)); } } catch (Exception e) { if (e.Message == ExceptionHelper.Exception1000) { break;//检测到接口返回数据出错,直接跳出循环体 } else { new TryCatchErrHelper().HandlerError(orderInfo[i].OrderID, orderInfo[i].OrderSn, e.Message); } } } } }
protected void Page_Load(object sender, EventArgs e) { this.stype = Globals.RequestQueryNum("stype"); switch (Globals.RequestFormStr("isCallback")) { case "true": { int num; string str2; string str3; if (string.IsNullOrEmpty(base.Request["ReturnsId"])) { base.Response.Write("{\"Status\":\"0\"}"); base.Response.End(); return; } OrderInfo orderInfo = OrderHelper.GetOrderInfo(base.Request["orderId"]); StringBuilder builder = new StringBuilder(); if (base.Request["type"] == "refund") { RefundHelper.GetRefundType(base.Request["orderId"], out num, out str3); } else { num = 0; str3 = ""; } if (num == 1) { str2 = "退到预存款"; } else { str2 = "银行转帐"; } builder.AppendFormat(",\"OrderTotal\":\"{0}\"", Globals.FormatMoney(orderInfo.GetTotal())); if (!(base.Request["type"] == "replace")) { builder.AppendFormat(",\"RefundType\":\"{0}\"", num); builder.AppendFormat(",\"RefundTypeStr\":\"{0}\"", str2); } builder.AppendFormat(",\"Contacts\":\"{0}\"", orderInfo.ShipTo); builder.AppendFormat(",\"Email\":\"{0}\"", orderInfo.EmailAddress); builder.AppendFormat(",\"Telephone\":\"{0}\"", (orderInfo.TelPhone + " " + orderInfo.CellPhone).Trim()); builder.AppendFormat(",\"Address\":\"{0}\"", orderInfo.Address); builder.AppendFormat(",\"Remark\":\"{0}\"", str3.Replace("\r\n", "")); builder.AppendFormat(",\"PostCode\":\"{0}\"", orderInfo.ZipCode); builder.AppendFormat(",\"GroupBuyId\":\"{0}\"", (orderInfo.GroupBuyId > 0) ? orderInfo.GroupBuyId : 0); base.Response.Clear(); base.Response.ContentType = "application/json"; base.Response.Write("{\"Status\":\"1\"" + builder.ToString() + "}"); base.Response.End(); break; } case "GetOrdersStates": { base.Response.ContentType = "application/json"; DataTable allOrderID = OrderHelper.GetAllOrderID(); int length = allOrderID.Select("OrderStatus=" + 5).Length; int num3 = allOrderID.Select("OrderStatus=" + 5 + " and Gateway = 'hishop.plugins.payment.podrequest'").Length; string s = string.Concat(new object[] { "{\"type\":\"1\",\"finishedcount\":", length, ",\"count1\":", num3, "}" }); base.Response.Write(s); base.Response.End(); break; } } this.Reurl = base.Request.Url.ToString(); if (!this.Reurl.Contains("?")) { this.Reurl = this.Reurl + "?pageindex=1"; } this.Reurl = Regex.Replace(this.Reurl, @"&t=(\d+)", ""); this.Reurl = Regex.Replace(this.Reurl, @"(\?)t=(\d+)", "?"); this.btnSearchButton.Click += new EventHandler(this.btnSearchButton_Click); this.btnRemark.Click += new EventHandler(this.btnRemark_Click); this.btnCloseOrder.Click += new EventHandler(this.btnCloseOrder_Click); this.btnDeleteCheck.Click += new EventHandler(this.btnDeleteCheck_Click); this.btnProductGoods.Click += new EventHandler(this.btnProductGoods_Click); this.btnOrderGoods.Click += new EventHandler(this.btnOrderGoods_Click); if (!this.Page.IsPostBack) { this.bindOrderType(); this.BindOrders(); } }
/// <summary> /// 查询订单-更新发货信息//每天晚上24点之后执行一次,一次同步所有发货信息 /// </summary> public static void WMSNotifyQueryStockOut() { //基础配置 OrderHelper wmsStringHandler = new OrderHelper(); DateTime nowTime = DateTime.Now; string method = MethodQuery; WMSNotifyQuery notifyQuery = new WMSNotifyQuery(Owner); WMSReturnQuery resJsonArr = null; List <DSMTMALL.DB.Model.M_OrderInfo> orderInfo = null; DSMTMALL.DB.Model.M_OrderInfo orderInfoNow = null; SortedDictionary <string, string> dicQuery = null; // new SortedDictionary<string, string>();//每一订单推送后都必须要这个键值对初始化 //string strWhere = "SuppliersID=101 AND ( OrderStatus=9 OR OrderStatus=1) AND PayStatus=2 ";//1.订单的商品来源要是海淘的,2.订单的状态要已推送订单,3.订单的支付状态是已付款的 string strWhere = "SuppliersID=101 AND OrderStatus=9 AND IsVerify=1 AND PayStatus=2 "; //1.订单的商品来源要是海淘的,2.订单的状态要已推送订单,3.订单的支付状态是已付款的 4.已校对的 try { orderInfo = new DSMTMALL.DB.BLL.MY_Bll(DBEnum.Slave).GetModelList <DSMTMALL.DB.Model.M_OrderInfo>(strWhere, null);//获取所有要校对的订单列表 } catch (Exception esql) { orderInfo = null; FileHelper.logger.Warn("获取要同步物流状态的订单列表信息出错,错误信息:" + esql.Message); } if (orderInfo != null || orderInfo.Count > 0) { for (int i = 0; i < orderInfo.Count; i++)//对符合条件的内容进行for循环 { string dicSignStr = string.Empty; string resWMSVal = string.Empty; nowTime = DateTime.Now; string param = string.Empty; resJsonArr = null; if (!string.IsNullOrEmpty(orderInfo[i].TPLOrderNo)) //第三方系统推送回的订单号不为空的情况下执行订单校对 { dicQuery = new SortedDictionary <string, string>(); //每一订单推送后都必须要这个键值对初始化 notifyQuery.Code = orderInfo[i].TPLOrderNo; string wmsNotifyQueryStr = new JavaScriptSerializer().Serialize(notifyQuery); //将该笔订单信息JSON格式化 dicQuery.Add("appkey", AppKey); dicQuery.Add("method", method); dicQuery.Add("param", wmsNotifyQueryStr); dicQuery.Add("v", V); dicQuery.Add("timestamp", nowTime.ToString()); dicSignStr = wmsStringHandler.WMSStringHanlder(dicQuery, Appsecret); param = "appkey=" + AppKey + "×tamp=" + nowTime + "&v=" + V + "&method=" + method + "¶m=" + wmsNotifyQueryStr + "&sign=" + dicSignStr; try { resWMSVal = ToolHelper.Post(Url, param); resJsonArr = new JavaScriptSerializer().Deserialize <WMSReturnQuery>(resWMSVal); if (resJsonArr != null) //返回数据反序列化成功 { if (resJsonArr.Code == "0") //返回0-成功 ,并且订单物流状态为0已取消或者40已发货 { if (resJsonArr.Status == "40" || resJsonArr.Status == "10" || (resJsonArr.Status == "20" || resJsonArr.Status == "30") && !string.IsNullOrEmpty(resJsonArr.WhsStatus)) { orderInfoNow = new DSMTMALL.DB.BLL.MY_Bll(DBEnum.Slave).GetModel <DSMTMALL.DB.Model.M_OrderInfo>(" OrderID=@_OrderID ", new { _OrderID = orderInfo[i].OrderID });//为了严谨再次查数据库从数据库取这个实体 if (orderInfoNow != null) { if (resJsonArr.Status == "40")//对方已发货更新物流状态 { orderInfoNow.Logistical = string.IsNullOrEmpty(resJsonArr.Result.LogisticCompany) ? string.Empty : resJsonArr.Result.LogisticCompany; orderInfoNow.LogisticalNumber = string.IsNullOrEmpty(resJsonArr.Result.LogisiticNumber) ? string.Empty : resJsonArr.Result.LogisiticNumber; orderInfoNow.ShippingTime = string.IsNullOrEmpty(resJsonArr.Result.StockOutDate) ? nowTime : Convert.ToDateTime(resJsonArr.Result.StockOutDate); if (new DSMTMALL.DB.BLL.MY_Bll(DBEnum.Master).UpdateModel <DSMTMALL.DB.Model.M_OrderInfo>(" OrderID=@_OrderID ", new { _OrderID = orderInfo[i].OrderID, Logistical = orderInfoNow.Logistical, LogisticalNumber = orderInfoNow.LogisticalNumber, ShippingTime = orderInfoNow.ShippingTime, ShippingStatus = 1, OrderStatus = 5, Version = orderInfoNow.Version + 1 }) )//更新数据,更新失败不做任何处理--如果成功则发送微信-发货成功 { WeChatAPI.SendMsg("商品发货提醒", "您的订单" + orderInfo[i].OrderSn + "已从仓库发出,请等待收货,物流单号为:" + orderInfoNow.LogisticalNumber, orderInfo[i].OpenID); } } else if (resJsonArr.Status == "10")//对方已取消发货 { new DSMTMALL.DB.BLL.MY_Bll(DBEnum.Master).UpdateModel <DSMTMALL.DB.Model.M_OrderInfo>(" OrderID=@_OrderID ", new { _OrderID = orderInfo[i].OrderID, OrderStatus = 7, Postscript = "海淘取消订单发货:" + resJsonArr.WhsStatus, //异常状态描述 Version = orderInfoNow.Version + 1 }); //更新数据,更新失败不做任何处理 } else if ((resJsonArr.Status == "20" || resJsonArr.Status == "30") && !string.IsNullOrEmpty(resJsonArr.WhsStatus)) //对方订单待确认或已配送确认,并且订单异常状态描述不为空,代表有异常信息 { if (resJsonArr.WhsStatus != "未推送到海关系统" || nowTime > orderInfo[i].PayTime.AddDays(1)) //如果返回的错误信息不是 未推送到海关系统 或者 订单付款时间已经超过24小时 { new DSMTMALL.DB.BLL.MY_Bll(DBEnum.Master).UpdateModel <DSMTMALL.DB.Model.M_OrderInfo>(" OrderID=@_OrderID ", new { _OrderID = orderInfo[i].OrderID, OrderStatus = 7, Postscript = "海淘返回的订单状态存在异常,异常原因:" + resJsonArr.WhsStatus, //异常状态描述 Version = orderInfoNow.Version + 1 }); //更新数据,更新失败不做任何处理 } } } }//海淘尚未推送订单给海关,暂不作任何处理 } else { FileHelper.logger.Warn(string.Format("{0}订单物流状态更新失败,失败原因:{1}", orderInfo[i].OrderSn, resWMSVal)); } } } catch (Exception exmsg) { FileHelper.logger.Warn(string.Format("{0}订单物流状态更新失败,失败原因:{1}", orderInfo[i].OrderSn, exmsg.Message)); } } } } }
protected void rptList_ItemDataBound(object sender, RepeaterItemEventArgs e) { if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem)) { Repeater repeater = (Repeater)e.Item.FindControl("rptSubList"); OrderInfo orderInfo = OrderHelper.GetOrderInfo(DataBinder.Eval(e.Item.DataItem, "OrderID").ToString()); if ((orderInfo != null) && (orderInfo.LineItems.Count > 0)) { repeater.DataSource = orderInfo.LineItems.Values; repeater.DataBind(); } OrderStatus status = (OrderStatus)DataBinder.Eval(e.Item.DataItem, "OrderStatus"); string str = ""; if (!(DataBinder.Eval(e.Item.DataItem, "Gateway") is DBNull)) { str = (string)DataBinder.Eval(e.Item.DataItem, "Gateway"); } int num = (DataBinder.Eval(e.Item.DataItem, "GroupBuyId") != DBNull.Value) ? ((int)DataBinder.Eval(e.Item.DataItem, "GroupBuyId")) : 0; HtmlInputButton button = (HtmlInputButton)e.Item.FindControl("btnModifyPrice"); HtmlInputButton button2 = (HtmlInputButton)e.Item.FindControl("btnSendGoods"); Button button3 = (Button)e.Item.FindControl("btnPayOrder"); Button button4 = (Button)e.Item.FindControl("btnConfirmOrder"); HtmlInputButton button5 = (HtmlInputButton)e.Item.FindControl("btnCloseOrderClient"); HtmlAnchor anchor1 = (HtmlAnchor)e.Item.FindControl("lkbtnCheckRefund"); HtmlAnchor anchor2 = (HtmlAnchor)e.Item.FindControl("lkbtnCheckReturn"); HtmlAnchor anchor3 = (HtmlAnchor)e.Item.FindControl("lkbtnCheckReplace"); Literal literal = (Literal)e.Item.FindControl("WeiXinNickName"); Literal literal2 = (Literal)e.Item.FindControl("litOtherInfo"); int totalPointNumber = orderInfo.GetTotalPointNumber(); MemberInfo member = MemberProcessor.GetMember(orderInfo.UserId, true); if (member != null) { literal.Text = "买家:" + member.UserName; } StringBuilder builder = new StringBuilder(); decimal total = orderInfo.GetTotal(); if (total > 0M) { builder.Append("<strong>¥" + total.ToString("F2") + "</strong>"); builder.Append("<small>(含运费¥" + orderInfo.AdjustedFreight.ToString("F2") + ")</small>"); } if (totalPointNumber > 0) { builder.Append("<small>" + totalPointNumber.ToString() + "积分</small>"); } if (orderInfo.PaymentType == "货到付款") { builder.Append("<span class=\"setColor bl\"><strong>货到付款</strong></span>"); } if (string.IsNullOrEmpty(builder.ToString())) { builder.Append("<strong>¥" + total.ToString("F2") + "</strong>"); } literal2.Text = builder.ToString(); if (status == OrderStatus.WaitBuyerPay) { button.Visible = true; button.Attributes.Add("onclick", "DialogFrame('../trade/EditOrder.aspx?OrderId=" + DataBinder.Eval(e.Item.DataItem, "OrderID") + "&reurl='+ encodeURIComponent(goUrl),'修改订单价格',900,450)"); button5.Attributes.Add("onclick", "CloseOrderFun('" + DataBinder.Eval(e.Item.DataItem, "OrderID") + "')"); button5.Visible = true; if (str != "hishop.plugins.payment.podrequest") { button3.Visible = true; } } if (num > 0) { GroupBuyStatus status2 = (GroupBuyStatus)DataBinder.Eval(e.Item.DataItem, "GroupBuyStatus"); button2.Visible = (status == OrderStatus.BuyerAlreadyPaid) && (status2 == GroupBuyStatus.Success); } else { button2.Visible = (status == OrderStatus.BuyerAlreadyPaid) || ((status == OrderStatus.WaitBuyerPay) && (str == "hishop.plugins.payment.podrequest")); } button2.Attributes.Add("onclick", "DialogFrame('../trade/SendOrderGoods.aspx?OrderId=" + DataBinder.Eval(e.Item.DataItem, "OrderID") + "&reurl='+ encodeURIComponent(goUrl),'订单发货',750,220)"); button4.Visible = status == OrderStatus.SellerAlreadySent; } }
private void btnSendGoods_Click(object sender, EventArgs e) { if (this.grdOrderGoods.Rows.Count <= 0) { this.ShowMsg("没有要进行发货的订单。", false); } else { DropdownColumn column = (DropdownColumn)this.grdOrderGoods.Columns[4]; ListItemCollection selectedItems = column.SelectedItems; DropdownColumn column2 = (DropdownColumn)this.grdOrderGoods.Columns[5]; ListItemCollection items2 = column2.SelectedItems; int num = 0; for (int i = 0; i < selectedItems.Count; i++) { string orderId = (string)this.grdOrderGoods.DataKeys[this.grdOrderGoods.Rows[i].RowIndex].Value; TextBox box = (TextBox)this.grdOrderGoods.Rows[i].FindControl("txtShippOrderNumber"); ListItem item = selectedItems[i]; ListItem item2 = items2[i]; int result = 0; int.TryParse(item.Value, out result); if ((!string.IsNullOrEmpty(box.Text.Trim()) && !string.IsNullOrEmpty(item.Value)) && ((int.Parse(item.Value) > 0) && !string.IsNullOrEmpty(item2.Value))) { OrderInfo orderInfo = OrderHelper.GetOrderInfo(orderId); if ((((orderInfo.GroupBuyId <= 0) || (orderInfo.GroupBuyStatus == GroupBuyStatus.Success)) && (((orderInfo.OrderStatus == OrderStatus.WaitBuyerPay) && (orderInfo.Gateway == "hishop.plugins.payment.podrequest")) || (orderInfo.OrderStatus == OrderStatus.BuyerAlreadyPaid))) && (((result > 0) && !string.IsNullOrEmpty(box.Text.Trim())) && (box.Text.Trim().Length <= 20))) { ShippingModeInfo shippingMode = SalesHelper.GetShippingMode(result, true); orderInfo.RealShippingModeId = shippingMode.ModeId; orderInfo.RealModeName = shippingMode.Name; orderInfo.ExpressCompanyAbb = item2.Value; orderInfo.ExpressCompanyName = item2.Text; orderInfo.ShipOrderNumber = box.Text; if (OrderHelper.SendGoods(orderInfo)) { SendNote note = new SendNote(); note.NoteId = Globals.GetGenerateId() + num; note.OrderId = orderId; note.Operator = HiContext.Current.User.Username; note.Remark = "后台" + note.Operator + "发货成功"; OrderHelper.SaveSendNote(note); if (!string.IsNullOrEmpty(orderInfo.GatewayOrderId) && (orderInfo.GatewayOrderId.Trim().Length > 0)) { PaymentModeInfo paymentMode = SalesHelper.GetPaymentMode(orderInfo.PaymentTypeId); if (paymentMode != null) { PaymentRequest.CreateInstance(paymentMode.Gateway, HiCryptographer.Decrypt(paymentMode.Settings), orderInfo.OrderId, orderInfo.GetTotal(), "订单发货", "订单号-" + orderInfo.OrderId, orderInfo.EmailAddress, orderInfo.OrderDate, Globals.FullPath(Globals.GetSiteUrls().Home), Globals.FullPath(Globals.GetSiteUrls().UrlData.FormatUrl("PaymentReturn_url", new object[] { paymentMode.Gateway })), Globals.FullPath(Globals.GetSiteUrls().UrlData.FormatUrl("PaymentNotify_url", new object[] { paymentMode.Gateway })), "").SendGoods(orderInfo.GatewayOrderId, orderInfo.RealModeName, orderInfo.ShipOrderNumber, "EXPRESS"); } } int userId = orderInfo.UserId; if (userId == 0x44c) { userId = 0; } IUser user = Users.GetUser(userId); Messenger.OrderShipping(orderInfo, user); orderInfo.OnDeliver(); num++; } } } } if (num == 0) { this.ShowMsg("批量发货失败!", false); } else if (num > 0) { this.BindData(); this.ShowMsg(string.Format("批量发货成功!发货数量{0}个", num), true); } } }
protected void Page_Load(object sender, EventArgs e) { string[] parts = Request.Url.AbsolutePath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); if (Session["oid"] != null) { orderId = Convert.ToInt32(Session["oid"].ToString()); } else if (CartContext.OrderId > 0) { orderId = CartContext.OrderId; } else { Response.Redirect("index.aspx"); } Order orderData = CSResolve.Resolve <IOrderService>().GetOrderDetails(orderId, true); if (orderData.OrderStatusId == 2) { // this means that customer clicked back, so should be directed to receipt page. Response.Redirect("receipt.aspx"); } if (Session["oid"] == null && OrderHelper.IsCustomerOrderFlowCompleted(CartContext.OrderId)) { Response.Redirect("receipt.aspx"); } if (!IsPostBack) { //Calculate and save tax new CSWeb.FulfillmentHouse.DataPakTax().PostOrderToDataPak(orderId); string[] testCreditCards; testCreditCards = ResourceHelper.GetResoureValue("TestCreditCard").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);; foreach (string word in testCreditCards) { if (orderData.CreditInfo.CreditCardNumber.Equals(word)) { CSResolve.Resolve <IOrderService>().UpdateOrderStatus(orderData.OrderId, 7); UserSessions.InsertSessionEntry(HttpContext.Current, false, 0, 0, orderId); // This will avoid order from getting posted to OMX for test orders Session["OrderStatus"] = "Receipt"; Response.Redirect("receipt.aspx"); } } bool authSuccess = false; // Check if payment gateway service is enabled or not. if (CSFactory.GetCacheSitePref().PaymentGatewayService) { try { authSuccess = orderData.OrderStatusId == 4 || orderData.OrderStatusId == 5 || // fulfillment failure (fulfillment was attempted after payment success), so don't charge again. OrderHelper.AuthorizeOrder(orderId); ////if (!authSuccess) //// OrderHelper.SendOrderDeclinedEmail(orderId); } catch (Exception ex) { CSCore.CSLogger.Instance.LogException("AuthorizeOrder - auth error - orderid: " + Convert.ToString(orderId), ex); throw; } } else { authSuccess = true; } if (authSuccess) { // Check if fulfillment gateway service is enabled or not. if (CSFactory.GetCacheSitePref().FulfillmentHouseService) { try { new CSWeb.FulfillmentHouse.DataPak().PostOrderToDataPak(orderId); } catch (Exception ex) { CSCore.CSLogger.Instance.LogException("AuthorizeOrder - fulfillment post error - orderid: " + Convert.ToString(orderId), ex); } Session["OrderStatus"] = "Receipt"; if (Request.QueryString != null) { Response.Redirect("receipt.aspx?" + Request.QueryString); } else { Response.Redirect("receipt.aspx"); } } } else { Response.Redirect(string.Format("carddecline.aspx?returnUrl={0}", string.Concat("/", string.Join("/", parts, 0, parts.Length - 1), "/receipt.aspx")), true); } } Session["OrderStatus"] = "Receipt"; Response.Redirect("receipt.aspx"); }
protected void Page_Load(object sender, EventArgs e) { string[] parts = Request.Url.AbsolutePath.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); if (Request["oid"] != null) { orderId = Convert.ToInt32(Request["oid"].ToString()); } else { orderId = CartContext.OrderId; } Order orderData = CSResolve.Resolve <IOrderService>().GetOrderDetails(orderId, true); if (orderData.OrderStatusId == 2) { // this means that customer clicked back, so should be directed to receipt page. Response.Redirect("receipt.aspx"); } if (!IsPostBack) { CSWebBase.SiteBasePage.TempOrderFix(CartContext, orderData.OrderStatusId); Dictionary <string, AttributeValue> orderAttributes = new Dictionary <string, AttributeValue>(); if (orderData.CreditInfo.CreditCardNumber.Equals("4444333322221111")) { CSResolve.Resolve <IOrderService>().UpdateOrderAttributes(orderData.OrderId, orderAttributes, 7); Response.Redirect("receipt.aspx"); } else if (orderData.CreditInfo.CreditCardNumber.Equals("4111111111111111") && !orderData.CreditInfo.CreditCardCSC.Equals("999")) { CSResolve.Resolve <IOrderService>().UpdateOrderAttributes(orderData.OrderId, orderAttributes, 7); Response.Redirect(string.Format("carddecline.aspx?returnUrl={0}", string.Concat("/", string.Join("/", parts, 0, parts.Length - 1), "/receipt.aspx")), true); } bool authSuccess = false; // Check if payment gateway service is enabled or not. if (CSFactory.GetCacheSitePref().PaymentGatewayService) { try { authSuccess = orderData.OrderStatusId == 4 || orderData.OrderStatusId == 5 || // fulfillment failure (fulfillment was attempted after payment success), so don't charge again. OrderHelper.AuthorizeOrder(orderId); } catch (Exception ex) { CSCore.CSLogger.Instance.LogException("AuthorizeOrder - auth error - orderid: " + Convert.ToString(orderId), ex); throw; } } else { authSuccess = true; } if (authSuccess || orderData.CreditInfo.CreditCardNumber.Equals("341111111111111")) { // Check if fulfillment gateway service is enabled or not. if (CSFactory.GetCacheSitePref().FulfillmentHouseService) { try { if (Request["oid"] != null) { new CSWeb.FulfillmentHouse.DataPak().PostOrderToDataPak(orderId); } } catch (Exception ex) { CSCore.CSLogger.Instance.LogException("AuthorizeOrder - fulfillment post error - orderid: " + Convert.ToString(orderId), ex); throw; } if (Request.QueryString != null) { Response.Redirect("receipt.aspx?" + Request.QueryString); } else { Response.Redirect("receipt.aspx"); } } } else { Response.Redirect(string.Format("carddecline.aspx?returnUrl={0}", string.Concat("/", string.Join("/", parts, 0, parts.Length - 1), "/receipt.aspx")), true); } } Response.Redirect("receipt.aspx"); }
private void UserPayOrder() { if (this.Order.OrderStatus == OrderStatus.BuyerAlreadyPaid) { base.Response.Write("success"); return; } string json = Newtonsoft.Json.JsonConvert.SerializeObject(payNotify); //如果需要拆单 if (TradeHelper.CheckIsUnpack(OrderId) && Order.OrderStatus == OrderStatus.WaitBuyerPay) { ErrorLog.Write(string.Format("微信App支付拆单,原订单{0},返回信息{1}", this.Order.OrderId, json)); if (this.Order.CheckAction(OrderActions.BUYER_PAY) && TradeHelper.UserPayOrder(this.Order, false, 1)) { //OrderHelper.SetOrderPayStatus(OrderId, 2); OrderHelper.SetOrderPayStatus(OrderId, 2, Order.PaymentTypeId, Order.PaymentType, Order.Gateway, Order.GatewayOrderId); if (this.Order.UserId != 0 && this.Order.UserId != 1100) { IUser user = Users.GetUser(this.Order.UserId); if (user != null && user.UserRole == UserRole.Member) { Messenger.OrderPayment(user, this.Order, this.Order.GetTotal()); } } this.Order.OnPayment(); base.Response.Write("success"); } } else if (Order.OrderType == (int)OrderType.WillMerge && Order.OrderStatus == OrderStatus.WaitBuyerPay)//合并单据 { ErrorLog.Write(string.Format("微信App支付合并单据,原订单{0},返回信息{1}", this.Order.OrderId, json)); bool b = ShoppingProcessor.mergeOrder(this.Order); int flag = 0; if (b) { flag = 2; } if (this.Order.CheckAction(OrderActions.BUYER_PAY) && TradeHelper.UserPayOrder(this.Order, false, flag)) { //OrderHelper.SetOrderPayStatus(OrderId, 2); OrderHelper.SetOrderPayStatus(OrderId, 2, Order.PaymentTypeId, Order.PaymentType, Order.Gateway, Order.GatewayOrderId); if (this.Order.UserId != 0 && this.Order.UserId != 1100) { IUser user = Users.GetUser(this.Order.UserId); if (user != null && user.UserRole == UserRole.Member) { Messenger.OrderPayment(user, this.Order, this.Order.GetTotal()); } } this.Order.OnPayment(); base.Response.Write("success"); } } else { ErrorLog.Write(string.Format("微信App支付正常单据,原订单{0},返回信息{1}", this.Order.OrderId, json)); if (this.Order.CheckAction(OrderActions.BUYER_PAY) && TradeHelper.UserPayOrder(this.Order, false)) { //OrderHelper.SetOrderPayStatus(OrderId, 2); OrderHelper.SetOrderPayStatus(OrderId, 2, Order.PaymentTypeId, Order.PaymentType, Order.Gateway, Order.GatewayOrderId); if (this.Order.UserId != 0 && this.Order.UserId != 1100) { IUser user = Users.GetUser(this.Order.UserId); if (user != null && user.UserRole == UserRole.Member) { Messenger.OrderPayment(user, this.Order, this.Order.GetTotal()); } } this.Order.OnPayment(); base.Response.Write("success"); } } }
public PaymentHelper(DataContext db, OrderHelper orderHelper) { this.db = db; this.orderHelper = orderHelper; }
protected string GetSpitLink(object oSplitState, object oOrderStatus, object oOrderID) { string result = string.Empty; int num = Globals.ToNum(oSplitState); if (num < 1) { string text = oOrderID.ToString(); OrderStatus orderStatus = (OrderStatus)oOrderStatus; if ((orderStatus == OrderStatus.BuyerAlreadyPaid || orderStatus == OrderStatus.WaitBuyerPay) && OrderHelper.GetItemNumByOrderID(text) > 1) { result = string.Concat(new string[] { "<a href='OrderSplit.aspx?OrderId=", text, "&reurl=", base.Server.UrlEncode(base.Request.Url.ToString()), "' target='_blank' class='btn btn-default resetSize inputw100 bl mb5'>订单拆分</a>" }); } } return(result); }