public string GetDynamicVersionData(string data)
 {
     return(OrderHelper.GetDynamicVersionData(data));
 }
Example #2
0
 public string GetCleanPhoneNumber(string data)
 {
     return(OrderHelper.GetCleanPhoneNumber(data));
 }
Example #3
0
        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 + "&timestamp=" + nowTime + "&v=" + V + "&method=" + method + "&param=" + 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);
                }
            }
        }
Example #4
0
        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 + "&timestamp=" + nowTime + "&v=" + V + "&method=" + method + "&param=" + 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);
                    }
                }
            }
        }
Example #7
0
 private DataSet GetPrintData(string orderIds)
 {
     orderIds = "'" + orderIds.Replace(",", "','") + "'";
     return(OrderHelper.GetOrdersAndLines(orderIds));
 }
Example #8
0
 protected override void Page_Load(object sender, EventArgs e)
 {
     base.Page_Load(sender, e);
     OrderHelper.SetDynamicLandingPageVersion("mobile", (ClientCartContext)Session["ClientOrderData"]);
 }
Example #9
0
 /// <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();
     }
 }
Example #10
0
        /// <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;
            }
        }
Example #11
0
 /// <summary>
 /// 仅仅设置客户名称
 /// </summary>
 private void InitCustomerItem()
 {
     _customerDic = OrderHelper.GetAllHandleCustomer();
     DicBindCbb(cbbCust, _customerDic);
 }
Example #12
0
        /// <summary>
        /// 订单处理状态
        /// </summary>
        private void SetComOrderStateItem()
        {
            Dictionary <string, string> dic = OrderHelper.GetAllHandleState();

            DicBindCbb(cbbOrderState, dic);
        }
Example #13
0
        /// <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();
        }
Example #14
0
 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();
 }
Example #18
0
        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);
            }
        }
Example #19
0
        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);
                            }
                        }
                    }
                }
            }
        }
Example #20
0
        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);
        }
Example #21
0
        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());
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
Example #22
0
        /// <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 + "&timestamp=" + nowTime + "&v=" + V + "&method=" + method + "&param=" + 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);
                        }
                    }
                }
            }
        }
Example #23
0
        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();
            }
        }
Example #24
0
        /// <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 + "&timestamp=" + nowTime + "&v=" + V + "&method=" + method + "&param=" + 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));
                        }
                    }
                }
            }
        }
Example #25
0
 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");
        }
Example #28
0
        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");
        }
Example #29
0
        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");
                }
            }
        }
Example #30
0
 public PaymentHelper(DataContext db, OrderHelper orderHelper)
 {
     this.db = db;
     this.orderHelper = orderHelper;
 }
Example #31
0
        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);
        }