Beispiel #1
0
        public bool SaveSendNote(SendNoteInfo note)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append(" insert into Hishop_OrderSendNote(NoteId,OrderId,Operator,Remark) values(@NoteId,@OrderId,@Operator,@Remark)");
            System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand(stringBuilder.ToString());
            this.database.AddInParameter(sqlStringCommand, "NoteId", System.Data.DbType.String, note.NoteId);
            this.database.AddInParameter(sqlStringCommand, "OrderId", System.Data.DbType.String, note.OrderId);
            this.database.AddInParameter(sqlStringCommand, "Operator", System.Data.DbType.String, note.Operator);
            this.database.AddInParameter(sqlStringCommand, "Remark", System.Data.DbType.String, note.Remark);
            return(this.database.ExecuteNonQuery(sqlStringCommand) > 0);
        }
Beispiel #2
0
 public static bool SaveSendNote(SendNoteInfo note)
 {
     return(new SendNoteDao().SaveSendNote(note));
 }
Beispiel #3
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            if (Globals.RequestQueryStr("type") == "saveorders")
            {
                this.type = "saveorders";
            }
            string text = Globals.RequestFormStr("posttype");

            this.orderIds = Globals.RequestQueryStr("OrderId").Trim(new char[]
            {
                ','
            });
            if (string.IsNullOrEmpty(this.ReUrl))
            {
                this.ReUrl = "manageorder.aspx";
            }
            string a;

            if ((a = text) != null)
            {
                if (a == "saveorders")
                {
                    string text2 = Globals.RequestFormStr("data");
                    base.Response.ContentType = "application/json";
                    string s      = "{\"type\":\"0\",\"tips\":\"指定物流失败!\"}";
                    JArray jArray = (JArray)JsonConvert.DeserializeObject(text2);
                    string text3  = string.Empty;
                    if (jArray != null)
                    {
                        if (jArray.Count > 1)
                        {
                            text3 = "批量";
                        }
                        bool flag = true;
                        using (System.Collections.Generic.IEnumerator <JToken> enumerator = jArray.GetEnumerator())
                        {
                            while (enumerator.MoveNext())
                            {
                                JObject jObject = (JObject)enumerator.Current;
                                if (!this.CheckOrderCompany(jObject["orderid"].ToString(), jObject["companycode"].ToString(), jObject["compname"].ToString(), jObject["shipordernumber"].ToString()))
                                {
                                    flag = false;
                                }
                            }
                        }
                        if (flag)
                        {
                            using (System.Collections.Generic.IEnumerator <JToken> enumerator2 = jArray.GetEnumerator())
                            {
                                while (enumerator2.MoveNext())
                                {
                                    JObject jObject2 = (JObject)enumerator2.Current;
                                    OrderHelper.UpdateOrderCompany(jObject2["orderid"].ToString(), jObject2["companycode"].ToString(), jObject2["compname"].ToString(), jObject2["shipordernumber"].ToString());
                                }
                            }
                            s = "{\"type\":\"1\",\"tips\":\"" + text3 + "指定物流成功!\"}";
                        }
                        else
                        {
                            s = "{\"type\":\"0\",\"tips\":\"" + text3 + "指定物流失败,请检测数据的正确性!\"}";
                        }
                    }
                    base.Response.Write(s);
                    base.Response.End();
                    return;
                }
                if (a == "saveoneorders")
                {
                    string text2 = Globals.RequestFormStr("data");
                    base.Response.ContentType = "application/json";
                    string s      = "{\"type\":\"0\",\"tips\":\"指定物流失败!\"}";
                    JArray jArray = (JArray)JsonConvert.DeserializeObject(text2);
                    string text3  = string.Empty;
                    if (jArray != null)
                    {
                        bool   flag2      = true;
                        string shipNumber = "1111111111";
                        using (System.Collections.Generic.IEnumerator <JToken> enumerator3 = jArray.GetEnumerator())
                        {
                            while (enumerator3.MoveNext())
                            {
                                JObject jObject3 = (JObject)enumerator3.Current;
                                if (!this.CheckOrderCompany(jObject3["orderid"].ToString(), jObject3["companycode"].ToString(), jObject3["compname"].ToString(), shipNumber))
                                {
                                    flag2 = false;
                                }
                            }
                        }
                        if (flag2)
                        {
                            using (System.Collections.Generic.IEnumerator <JToken> enumerator4 = jArray.GetEnumerator())
                            {
                                while (enumerator4.MoveNext())
                                {
                                    JObject jObject4 = (JObject)enumerator4.Current;
                                    OrderHelper.UpdateOrderCompany(jObject4["orderid"].ToString(), jObject4["companycode"].ToString(), jObject4["compname"].ToString(), "");
                                }
                            }
                            s = "{\"type\":\"1\",\"tips\":\"" + text3 + "指定物流成功!\"}";
                        }
                        else
                        {
                            s = "{\"type\":\"0\",\"tips\":\"" + text3 + "指定物流失败,请检测数据的正确性!\"}";
                        }
                    }
                    base.Response.Write(s);
                    base.Response.End();
                    return;
                }
                if (a == "sendorders")
                {
                    string text2 = Globals.RequestFormStr("data");
                    base.Response.ContentType = "application/json";
                    string s      = "{\"type\":\"0\",\"tips\":\"发货失败!\"}";
                    JArray jArray = (JArray)JsonConvert.DeserializeObject(text2);
                    string text3  = string.Empty;
                    if (jArray != null)
                    {
                        if (jArray.Count > 1)
                        {
                            text3 = "批量";
                        }
                        bool flag3 = true;
                        using (System.Collections.Generic.IEnumerator <JToken> enumerator5 = jArray.GetEnumerator())
                        {
                            while (enumerator5.MoveNext())
                            {
                                JObject jObject5 = (JObject)enumerator5.Current;
                                if (!this.CheckOrderCompany(jObject5["orderid"].ToString(), jObject5["companycode"].ToString(), jObject5["compname"].ToString(), jObject5["shipordernumber"].ToString()))
                                {
                                    flag3 = false;
                                }
                            }
                        }
                        if (flag3)
                        {
                            int num = 0;
                            using (System.Collections.Generic.IEnumerator <JToken> enumerator6 = jArray.GetEnumerator())
                            {
                                while (enumerator6.MoveNext())
                                {
                                    JObject   jObject6  = (JObject)enumerator6.Current;
                                    OrderInfo orderInfo = OrderHelper.GetOrderInfo(jObject6["orderid"].ToString());
                                    if ((orderInfo.GroupBuyId <= 0 || orderInfo.GroupBuyStatus == GroupBuyStatus.Success) && ((orderInfo.OrderStatus == OrderStatus.WaitBuyerPay && orderInfo.Gateway == "hishop.plugins.payment.podrequest") || orderInfo.OrderStatus == OrderStatus.BuyerAlreadyPaid) && !string.IsNullOrEmpty(jObject6["shipordernumber"].ToString().Trim()) && jObject6["shipordernumber"].ToString().Trim().Length <= 30)
                                    {
                                        orderInfo.ExpressCompanyAbb  = jObject6["companycode"].ToString();
                                        orderInfo.ExpressCompanyName = jObject6["compname"].ToString();
                                        orderInfo.ShipOrderNumber    = jObject6["shipordernumber"].ToString();
                                        if (OrderHelper.SendGoods(orderInfo))
                                        {
                                            Express.SubscribeExpress100(jObject6["companycode"].ToString(), jObject6["shipordernumber"].ToString());
                                            SendNoteInfo sendNoteInfo = new SendNoteInfo();
                                            sendNoteInfo.NoteId   = Globals.GetGenerateId() + num;
                                            sendNoteInfo.OrderId  = jObject6["orderid"].ToString();
                                            sendNoteInfo.Operator = ManagerHelper.GetCurrentManager().UserName;
                                            sendNoteInfo.Remark   = "后台" + sendNoteInfo.Operator + "发货成功";
                                            OrderHelper.SaveSendNote(sendNoteInfo);
                                            if (!string.IsNullOrEmpty(orderInfo.GatewayOrderId) && orderInfo.GatewayOrderId.Trim().Length > 0)
                                            {
                                                if (orderInfo.Gateway == "hishop.plugins.payment.ws_wappay.wswappayrequest")
                                                {
                                                    PaymentModeInfo paymentMode = SalesHelper.GetPaymentMode(orderInfo.PaymentTypeId);
                                                    if (paymentMode != null)
                                                    {
                                                        PaymentRequest paymentRequest = 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
                                                        })), "");
                                                        paymentRequest.SendGoods(orderInfo.GatewayOrderId, orderInfo.RealModeName, orderInfo.ShipOrderNumber, "EXPRESS");
                                                    }
                                                }
                                                if (orderInfo.Gateway == "hishop.plugins.payment.weixinrequest")
                                                {
                                                    SiteSettings masterSettings = SettingsManager.GetMasterSettings(false);
                                                    PayClient    payClient;
                                                    if (masterSettings.EnableSP)
                                                    {
                                                        payClient = new PayClient(masterSettings.Main_AppId, masterSettings.WeixinAppSecret, masterSettings.Main_Mch_ID, masterSettings.Main_PayKey, true, masterSettings.WeixinAppId, masterSettings.WeixinPartnerID);
                                                    }
                                                    else
                                                    {
                                                        payClient = new PayClient(masterSettings.WeixinAppId, masterSettings.WeixinAppSecret, masterSettings.WeixinPartnerID, masterSettings.WeixinPartnerKey, false, "", "");
                                                    }
                                                    payClient.DeliverNotify(new DeliverInfo
                                                    {
                                                        TransId    = orderInfo.GatewayOrderId,
                                                        OutTradeNo = orderInfo.OrderId,
                                                        OpenId     = MemberHelper.GetMember(orderInfo.UserId).OpenId
                                                    });
                                                }
                                            }
                                            orderInfo.OnDeliver();
                                            num++;
                                        }
                                    }
                                }
                            }
                            if (num == 0)
                            {
                                s = "{\"type\":\"0\",\"tips\":\"" + text3 + "发货失败!\"}";
                            }
                            else
                            {
                                s = string.Concat(new object[]
                                {
                                    "{\"type\":\"1\",\"tips\":\"",
                                    text3,
                                    "发货成功!发货数量",
                                    num,
                                    "个\"}"
                                });
                            }
                        }
                        else
                        {
                            s = "{\"type\":\"0\",\"tips\":\"" + text3 + "发货失败,请检测数据的正确性!\"}";
                        }
                    }
                    base.Response.Write(s);
                    base.Response.End();
                    return;
                }
                if (a == "getcompany")
                {
                    base.Response.ContentType = "application/json";
                    string text2 = "[{\"type\":\"0\",\"data\":[]}]";
                    System.Collections.Generic.IList <ExpressCompanyInfo> allExpress = ExpressHelper.GetAllExpress();
                    int num2 = 0;
                    System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();
                    foreach (ExpressCompanyInfo current in allExpress)
                    {
                        if (num2 == 0)
                        {
                            stringBuilder.Append(string.Concat(new string[]
                            {
                                "{\"code\":\"",
                                SendOrderGoods.String2Json(current.Kuaidi100Code),
                                "\",\"name\":\"",
                                SendOrderGoods.String2Json(current.Name),
                                "\"}"
                            }));
                        }
                        else
                        {
                            stringBuilder.Append(string.Concat(new string[]
                            {
                                ",{\"code\":\"",
                                SendOrderGoods.String2Json(current.Kuaidi100Code),
                                "\",\"name\":\"",
                                SendOrderGoods.String2Json(current.Name),
                                "\"}"
                            }));
                        }
                        num2++;
                    }
                    if (!string.IsNullOrEmpty(stringBuilder.ToString()))
                    {
                        text2 = "[{\"type\":\"1\",\"data\":[" + stringBuilder.ToString() + "]}]";
                    }
                    base.Response.Write(text2);
                    base.Response.End();
                    return;
                }
            }
            if (string.IsNullOrEmpty(this.orderIds))
            {
                base.GotoResourceNotFound();
                return;
            }
            string[] array = this.orderIds.Split(new char[]
            {
                ','
            });
            bool flag4 = true;

            string[] array2 = array;
            for (int i = 0; i < array2.Length; i++)
            {
                string lstr = array2[i];
                if (!Globals.IsOrdersID(lstr))
                {
                    flag4 = false;
                    break;
                }
            }
            if (flag4)
            {
                System.Data.DataSet ordersByOrderIDList = OrderHelper.GetOrdersByOrderIDList(this.orderIds);
                this.rptItemList.DataSource = ordersByOrderIDList;
                this.rptItemList.DataBind();
                this.litOrdersCount.Text = ordersByOrderIDList.Tables[0].Rows.Count.ToString();
                return;
            }
            base.Response.Write("非法参数请求!");
            base.Response.End();
        }
Beispiel #4
0
        protected void btnSubmit_Click(object sender, System.EventArgs e)
        {
            SiteSettings masterSettings = SettingsManager.GetMasterSettings(false);

            for (int i = 0; i < this.Orders.Rows.Count; i++)
            {
                OrderInfo orderInfo = OrderHelper.GetOrderInfo(this.Orders.Rows[i]["OrderId"].ToString());
                if (orderInfo != null)
                {
                    ManagerInfo currentManager = ManagerHelper.GetCurrentManager();//获取目前的管理员信息
                    if (orderInfo.GroupBuyId > 0 && orderInfo.GroupBuyStatus != GroupBuyStatus.Success)
                    {
                        this.ShowMsg("当前订单为团购订单,团购活动还未成功结束,所以不能发货", false);
                    }
                    else
                    {
                        if (!orderInfo.CheckAction(OrderActions.SELLER_SEND_GOODS))
                        {
                            this.ShowMsg("当前订单状态没有付款或不是等待发货的订单,所以不能发货", false);
                        }
                        else
                        {
                            orderInfo.RealShippingModeId = 1;//固定为1,为第一种快递方式(店家初始化时自己配置的第一种方式是什么这里就是什么)
                            orderInfo.RealModeName       = "快速收银";
                            orderInfo.ShipOrderNumber    = "";
                            if (OrderHelper.SendGoods(orderInfo))
                            {
                                SendNoteInfo info5 = new SendNoteInfo();
                                info5.NoteId   = Globals.GetGenerateId();
                                info5.OrderId  = orderInfo.OrderId;
                                info5.Operator = currentManager.UserName;
                                info5.Remark   = "后台" + info5.Operator + "发货成功";
                                OrderHelper.SaveSendNote(info5);
                                MemberInfo member = MemberHelper.GetMember(orderInfo.UserId);
                                Messenger.OrderShipping(orderInfo, member);
                                if (!string.IsNullOrEmpty(orderInfo.GatewayOrderId) && orderInfo.GatewayOrderId.Trim().Length > 0)
                                {
                                    if (orderInfo.Gateway == "hishop.plugins.payment.ws_wappay.wswappayrequest")
                                    {
                                        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");
                                        }
                                    }
                                    if (orderInfo.Gateway == "hishop.plugins.payment.weixinrequest")
                                    {
                                        //SiteSettings masterSettings = SettingsManager.GetMasterSettings(false);
                                        PayClient   client  = new PayClient(masterSettings.WeixinAppId, masterSettings.WeixinAppSecret, masterSettings.WeixinPartnerID, masterSettings.WeixinPartnerKey, masterSettings.WeixinPaySignKey);
                                        DeliverInfo deliver = new DeliverInfo
                                        {
                                            TransId    = orderInfo.GatewayOrderId,
                                            OutTradeNo = orderInfo.OrderId,
                                            OpenId     = MemberHelper.GetMember(orderInfo.UserId).OpenId
                                        };
                                        client.DeliverNotify(deliver);
                                    }
                                }
                                orderInfo.OnDeliver();
                                //this.ShowMsg("发货成功", true);

                                //发送成功后,确认收货
                                bool flag = false;
                                orderInfo = ShoppingProcessor.GetOrderInfo(this.Orders.Rows[i]["OrderId"].ToString());
                                Dictionary <string, LineItemInfo> lineItems = orderInfo.LineItems;
                                LineItemInfo lineItemInfo = new LineItemInfo();
                                foreach (KeyValuePair <string, LineItemInfo> lineItem in lineItems)
                                {
                                    lineItemInfo = lineItem.Value;
                                    if (lineItemInfo.OrderItemsStatus != OrderStatus.ApplyForRefund && lineItemInfo.OrderItemsStatus != OrderStatus.ApplyForReturns)
                                    {
                                        continue;
                                    }
                                    flag = true;
                                }
                                if (flag)
                                {
                                    Response.Write("<script>alert('订单中商品有退货(款)不允许完成');</script>");
                                    return;
                                }
                                if (orderInfo == null || !MemberProcessor.ConfirmOrderFinish(orderInfo))
                                {
                                    Response.Write("<script>alert('订单当前状态不允许完成');</script>");
                                    return;
                                }
                                DistributorsBrower.UpdateCalculationCommission(orderInfo);//增加佣金记录、更新分销商的有效推广佣金和订单总额
                                MemberInfo currentMember = MemberProcessor.GetMember(orderInfo.UserId);
                                int        num           = 0;
                                if (masterSettings.IsRequestDistributor && !string.IsNullOrEmpty(masterSettings.FinishedOrderMoney.ToString()) && currentMember.Expenditure >= masterSettings.FinishedOrderMoney)
                                {
                                    num = 1;
                                }
                                foreach (LineItemInfo value in orderInfo.LineItems.Values)
                                {
                                    if (value.OrderItemsStatus.ToString() != OrderStatus.SellerAlreadySent.ToString())
                                    {
                                        continue;
                                    }
                                    ShoppingProcessor.UpdateOrderGoodStatu(orderInfo.OrderId, value.SkuId, 5);
                                }
                                DistributorsInfo distributorsInfo = new DistributorsInfo();
                                distributorsInfo = DistributorsBrower.GetUserIdDistributors(orderInfo.UserId);
                                if (distributorsInfo != null && distributorsInfo.UserId > 0)
                                {
                                    num = 0;
                                }
                                this.Orders.Clear();
                                dlstOrders.DataSource = this.Orders;
                                dlstOrders.DataBind();
                                this.ShowMsg("收银成功", true);
                            }
                            else
                            {
                                this.ShowMsg("发货失败", false);
                            }
                        }
                    }
                }
            }
        }
Beispiel #5
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;

            orderInfo.ShippingModeId = this.radioShippingMode.SelectedValue.Value;
            orderInfo.ModeName       = 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;

            orderInfo.ShippingDate = DateTime.Now;
            if (OrderHelper.SendGoods(orderInfo))
            {
                SendNoteInfo sendNoteInfo = new SendNoteInfo();
                sendNoteInfo.NoteId   = Globals.GetGenerateId();
                sendNoteInfo.OrderId  = this.orderId;
                sendNoteInfo.Operator = HiContext.Current.User.Username;
                sendNoteInfo.Remark   = "后台" + sendNoteInfo.Operator + "发货成功";
                OrderHelper.SaveSendNote(sendNoteInfo);
                if (orderInfo.Gateway == "Ecdev.plugins.payment.weixinrequest")
                {
                    SiteSettings masterSettings = SettingsManager.GetMasterSettings(false);
                    PayClient    payClient      = new PayClient(masterSettings.WeixinAppId, masterSettings.WeixinAppSecret, masterSettings.WeixinPartnerID, masterSettings.WeixinPartnerKey, masterSettings.WeixinPaySignKey);
                    payClient.DeliverNotify(new DeliverInfo
                    {
                        TransId    = orderInfo.GatewayOrderId,
                        OutTradeNo = orderInfo.OrderId,
                        OpenId     = MemberHelper.GetMember(orderInfo.UserId).OpenId
                    });
                }
                else
                {
                    if (!string.IsNullOrEmpty(orderInfo.GatewayOrderId) && orderInfo.GatewayOrderId.Trim().Length > 0)
                    {
                        PaymentModeInfo paymentMode = SalesHelper.GetPaymentMode(orderInfo.Gateway);
                        if (paymentMode != null && !string.IsNullOrEmpty(paymentMode.Settings) &&  paymentMode.Settings != "1hSUSkKQ/ENo0JDZah8KKQweixin")
                        {
                            PaymentRequest paymentRequest = 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
                            })), "");
                            paymentRequest.SendGoods(orderInfo.GatewayOrderId, orderInfo.RealModeName, orderInfo.ShipOrderNumber, "EXPRESS");
                        }
                    }
                    if (!string.IsNullOrEmpty(orderInfo.TaobaoOrderId))
                    {
                        try
                        {
                            string requestUriString = string.Format("http://vip.ecdev.cn/UpdateShipping.ashx?tid={0}&companycode={1}&outsid={2}&Host={3}", new object[]
                            {
                                orderInfo.TaobaoOrderId,
                                expressCompanyInfo.TaobaoCode,
                                orderInfo.ShipOrderNumber,
                                HiContext.Current.SiteUrl
                            });
                            System.Net.WebRequest webRequest = System.Net.WebRequest.Create(requestUriString);
                            webRequest.GetResponse();
                        }
                        catch
                        {
                        }
                    }
                }
                int num = orderInfo.UserId;
                if (num == 1100)
                {
                    num = 0;
                }
                IUser user = Users.GetUser(num);
                Messenger.OrderShipping(orderInfo, user);
                orderInfo.OnDeliver();
                //this.ShowMsg("发货成功", true);
                this.CloseWindow();
                return;
            }
            this.ShowMsg("发货失败", false);
        }
Beispiel #6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string str2;
            string str3;
            JArray array;
            string str4;

            if (Globals.RequestQueryStr("type") == "saveorders")
            {
                this.type = "saveorders";
            }
            string str = Globals.RequestFormStr("posttype");

            this.orderIds = Globals.RequestQueryStr("OrderId").Trim(new char[] { ',' });
            if (string.IsNullOrEmpty(this.ReUrl))
            {
                this.ReUrl = "manageorder.aspx";
            }
            switch (str)
            {
            case "saveorders":
                str2 = Globals.RequestFormStr("data");
                base.Response.ContentType = "application/json";
                str3  = "{\"type\":\"0\",\"tips\":\"指定物流失败!\"}";
                array = (JArray)JsonConvert.DeserializeObject(str2);
                str4  = string.Empty;
                if (array != null)
                {
                    if (array.Count > 1)
                    {
                        str4 = "批量";
                    }
                    bool flag = true;
                    foreach (JObject obj2 in array)
                    {
                        if (!this.CheckOrderCompany(obj2["orderid"].ToString(), obj2["companycode"].ToString(), obj2["compname"].ToString(), obj2["shipordernumber"].ToString()))
                        {
                            flag = false;
                        }
                    }
                    if (flag)
                    {
                        foreach (JObject obj3 in array)
                        {
                            OrderHelper.UpdateOrderCompany(obj3["orderid"].ToString(), obj3["companycode"].ToString(), obj3["compname"].ToString(), obj3["shipordernumber"].ToString());
                        }
                        str3 = "{\"type\":\"1\",\"tips\":\"" + str4 + "指定物流成功!\"}";
                    }
                    else
                    {
                        str3 = "{\"type\":\"0\",\"tips\":\"" + str4 + "指定物流失败,请检测数据的正确性!\"}";
                    }
                }
                base.Response.Write(str3);
                base.Response.End();
                return;

            case "saveoneorders":
                str2 = Globals.RequestFormStr("data");
                base.Response.ContentType = "application/json";
                str3  = "{\"type\":\"0\",\"tips\":\"指定物流失败!\"}";
                array = (JArray)JsonConvert.DeserializeObject(str2);
                str4  = string.Empty;
                if (array != null)
                {
                    bool   flag2      = true;
                    string shipNumber = "1111111111";
                    foreach (JObject obj4 in array)
                    {
                        if (!this.CheckOrderCompany(obj4["orderid"].ToString(), obj4["companycode"].ToString(), obj4["compname"].ToString(), shipNumber))
                        {
                            flag2 = false;
                        }
                    }
                    if (flag2)
                    {
                        foreach (JObject obj5 in array)
                        {
                            OrderHelper.UpdateOrderCompany(obj5["orderid"].ToString(), obj5["companycode"].ToString(), obj5["compname"].ToString(), "");
                        }
                        str3 = "{\"type\":\"1\",\"tips\":\"" + str4 + "指定物流成功!\"}";
                    }
                    else
                    {
                        str3 = "{\"type\":\"0\",\"tips\":\"" + str4 + "指定物流失败,请检测数据的正确性!\"}";
                    }
                }
                base.Response.Write(str3);
                base.Response.End();
                return;

            case "sendorders":
                str2 = Globals.RequestFormStr("data");
                base.Response.ContentType = "application/json";
                str3  = "{\"type\":\"0\",\"tips\":\"发货失败!\"}";
                array = (JArray)JsonConvert.DeserializeObject(str2);
                str4  = string.Empty;
                if (array != null)
                {
                    if (array.Count > 1)
                    {
                        str4 = "批量";
                    }
                    bool flag3 = true;
                    foreach (JObject obj6 in array)
                    {
                        if (!this.CheckOrderCompany(obj6["orderid"].ToString(), obj6["companycode"].ToString(), obj6["compname"].ToString(), obj6["shipordernumber"].ToString()))
                        {
                            flag3 = false;
                        }
                    }
                    if (flag3)
                    {
                        int num = 0;
                        foreach (JObject obj7 in array)
                        {
                            OrderInfo orderInfo = OrderHelper.GetOrderInfo(obj7["orderid"].ToString());
                            if ((((orderInfo.GroupBuyId <= 0) || (orderInfo.GroupBuyStatus == GroupBuyStatus.Success)) && (((orderInfo.OrderStatus == OrderStatus.WaitBuyerPay) && (orderInfo.Gateway == "hishop.plugins.payment.podrequest")) || (orderInfo.OrderStatus == OrderStatus.BuyerAlreadyPaid))) && (!string.IsNullOrEmpty(obj7["shipordernumber"].ToString().Trim()) && (obj7["shipordernumber"].ToString().Trim().Length <= 30)))
                            {
                                orderInfo.ExpressCompanyAbb  = obj7["companycode"].ToString();
                                orderInfo.ExpressCompanyName = obj7["compname"].ToString();
                                orderInfo.ShipOrderNumber    = obj7["shipordernumber"].ToString();
                                if (OrderHelper.SendGoods(orderInfo))
                                {
                                    SendNoteInfo info2 = new SendNoteInfo();
                                    Express.SubscribeExpress100(obj7["companycode"].ToString(), obj7["shipordernumber"].ToString());
                                    info2 = new SendNoteInfo
                                    {
                                        NoteId   = Globals.GetGenerateId() + num,
                                        OrderId  = obj7["orderid"].ToString(),
                                        Operator = ManagerHelper.GetCurrentManager().UserName,
                                        Remark   = "后台" + info2.Operator + "发货成功"
                                    };
                                    OrderHelper.SaveSendNote(info2);
                                    if (!string.IsNullOrEmpty(orderInfo.GatewayOrderId) && (orderInfo.GatewayOrderId.Trim().Length > 0))
                                    {
                                        if (orderInfo.Gateway == "hishop.plugins.payment.ws_wappay.wswappayrequest")
                                        {
                                            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");
                                            }
                                        }
                                        if (orderInfo.Gateway == "hishop.plugins.payment.weixinrequest")
                                        {
                                            PayClient    client;
                                            SiteSettings masterSettings = SettingsManager.GetMasterSettings(false);
                                            if (masterSettings.EnableSP)
                                            {
                                                client = new PayClient(masterSettings.Main_AppId, masterSettings.WeixinAppSecret, masterSettings.Main_Mch_ID, masterSettings.Main_PayKey, true, masterSettings.WeixinAppId, masterSettings.WeixinPartnerID);
                                            }
                                            else
                                            {
                                                client = new PayClient(masterSettings.WeixinAppId, masterSettings.WeixinAppSecret, masterSettings.WeixinPartnerID, masterSettings.WeixinPartnerKey, false, "", "");
                                            }
                                            DeliverInfo deliver = new DeliverInfo
                                            {
                                                TransId    = orderInfo.GatewayOrderId,
                                                OutTradeNo = orderInfo.OrderId,
                                                OpenId     = MemberHelper.GetMember(orderInfo.UserId).OpenId
                                            };
                                            client.DeliverNotify(deliver);
                                        }
                                    }
                                    orderInfo.OnDeliver();
                                    num++;
                                }
                            }
                        }
                        if (num == 0)
                        {
                            str3 = "{\"type\":\"0\",\"tips\":\"" + str4 + "发货失败!\"}";
                        }
                        else
                        {
                            str3 = "{\"type\":\"1\",\"tips\":\"" + num + "个订单发货成功!\"}";
                        }
                    }
                    else
                    {
                        str3 = "{\"type\":\"0\",\"tips\":\"" + str4 + "发货失败,请检测数据的正确性!\"}";
                    }
                }
                base.Response.Write(str3);
                base.Response.End();
                return;

            case "getcompany":
            {
                base.Response.ContentType = "application/json";
                str2 = "[{\"type\":\"0\",\"data\":[]}]";
                IList <ExpressCompanyInfo> allExpress = ExpressHelper.GetAllExpress();
                int           num2    = 0;
                StringBuilder builder = new StringBuilder();
                foreach (ExpressCompanyInfo info5 in allExpress)
                {
                    if (num2 == 0)
                    {
                        builder.Append("{\"code\":\"" + String2Json(info5.Kuaidi100Code) + "\",\"name\":\"" + String2Json(info5.Name) + "\"}");
                    }
                    else
                    {
                        builder.Append(",{\"code\":\"" + String2Json(info5.Kuaidi100Code) + "\",\"name\":\"" + String2Json(info5.Name) + "\"}");
                    }
                    num2++;
                }
                if (!string.IsNullOrEmpty(builder.ToString()))
                {
                    str2 = "[{\"type\":\"1\",\"data\":[" + builder.ToString() + "]}]";
                }
                base.Response.Write(str2);
                base.Response.End();
                return;
            }

            case "updateExpress":
            {
                str2 = Globals.RequestFormStr("data");
                base.Response.ContentType = "application/json";
                str3  = "{\"type\":\"0\",\"tips\":\"修改失败!\"}";
                array = (JArray)JsonConvert.DeserializeObject(str2);
                bool flag4 = true;
                foreach (JObject obj8 in array)
                {
                    if (!this.CheckOrderCompany(obj8["orderid"].ToString(), obj8["companycode"].ToString(), obj8["compname"].ToString(), obj8["shipordernumber"].ToString()))
                    {
                        flag4 = false;
                    }
                }
                if (flag4)
                {
                    bool flag5 = false;
                    foreach (JObject obj9 in array)
                    {
                        OrderInfo order = OrderHelper.GetOrderInfo(obj9["orderid"].ToString());
                        order.ExpressCompanyAbb  = obj9["companycode"].ToString();
                        order.ExpressCompanyName = obj9["compname"].ToString();
                        order.ShipOrderNumber    = obj9["shipordernumber"].ToString();
                        flag5 = OrderHelper.UpdateOrder(order);
                        if (flag5)
                        {
                            Express.SubscribeExpress100(obj9["companycode"].ToString(), obj9["shipordernumber"].ToString());
                        }
                    }
                    if (flag5)
                    {
                        str3 = "{\"type\":\"1\",\"tips\":\"修改成功!\"}";
                    }
                }
                else
                {
                    str3 = "{\"type\":\"0\",\"tips\":\"数据验证失败!\"}";
                }
                base.Response.Write(str3);
                base.Response.End();
                return;
            }
            }
            if (string.IsNullOrEmpty(this.orderIds))
            {
                base.GotoResourceNotFound();
            }
            else
            {
                string[] strArray = this.orderIds.Split(new char[] { ',' });
                bool     flag6    = true;
                foreach (string str6 in strArray)
                {
                    if (!Globals.IsOrdersID(str6))
                    {
                        flag6 = false;
                        break;
                    }
                }
                if (flag6)
                {
                    DataSet ordersByOrderIDList = OrderHelper.GetOrdersByOrderIDList(this.orderIds);
                    this.rptItemList.DataSource = ordersByOrderIDList;
                    this.rptItemList.DataBind();
                    this.litOrdersCount.Text = ordersByOrderIDList.Tables[0].Rows.Count.ToString();
                }
                else
                {
                    base.Response.Write("非法参数请求!");
                    base.Response.End();
                }
            }
        }
Beispiel #7
0
        private void btnSendGoods_Click(object sender, EventArgs e)
        {
            OrderInfo orderInfo = OrderHelper.GetOrderInfo(this.orderId);

            if (orderInfo != null)
            {
                ManagerInfo currentManager = ManagerHelper.GetCurrentManager();
                if (currentManager != 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 info4 = ExpressHelper.FindNode(this.expressRadioButtonList.SelectedValue);
                        if (info4 != null)
                        {
                            orderInfo.ExpressCompanyAbb  = info4.Kuaidi100Code;
                            orderInfo.ExpressCompanyName = info4.Name;
                        }
                        orderInfo.ShipOrderNumber = this.txtShipOrderNumber.Text;
                        if (OrderHelper.SendGoods(orderInfo))
                        {
                            SendNoteInfo info5 = new SendNoteInfo();

                            info5.NoteId   = Globals.GetGenerateId();
                            info5.OrderId  = this.orderId;
                            info5.Operator = currentManager.UserName;
                            info5.Remark   = "后台" + info5.Operator + "发货成功";

                            OrderHelper.SaveSendNote(info5);
                            MemberInfo member = MemberHelper.GetMember(orderInfo.UserId);
                            Messenger.OrderShipping(orderInfo, member);
                            if (!string.IsNullOrEmpty(orderInfo.GatewayOrderId) && (orderInfo.GatewayOrderId.Trim().Length > 0))
                            {
                                if (orderInfo.Gateway == "hishop.plugins.payment.ws_wappay.wswappayrequest")
                                {
                                    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");
                                    }
                                }
                                if (orderInfo.Gateway == "hishop.plugins.payment.weixinrequest")
                                {
                                    SiteSettings masterSettings = SettingsManager.GetMasterSettings(false);
                                    PayClient    client         = new PayClient(masterSettings.WeixinAppId, masterSettings.WeixinAppSecret, masterSettings.WeixinPartnerID, masterSettings.WeixinPartnerKey, masterSettings.WeixinPaySignKey);
                                    DeliverInfo  deliver        = new DeliverInfo
                                    {
                                        TransId    = orderInfo.GatewayOrderId,
                                        OutTradeNo = orderInfo.OrderId,
                                        OpenId     = MemberHelper.GetMember(orderInfo.UserId).OpenId
                                    };
                                    client.DeliverNotify(deliver);
                                }
                            }
                            orderInfo.OnDeliver();
                            this.ShowMsg("发货成功", true);
                        }
                        else
                        {
                            this.ShowMsg("发货失败", false);
                        }
                    }
                }
            }
        }
Beispiel #8
0
        public string SendLogistic(string tid, string company_name, string out_sid)
        {
            OrderInfo orderInfo = OrderHelper.GetOrderInfo(tid);

            if ((orderInfo == null) || string.IsNullOrEmpty(orderInfo.OrderId))
            {
                return(OpenApiErrorMessage.ShowErrorMsg(OpenApiErrorCode.Trade_not_Exists, "tid"));
            }
            if ((orderInfo.GroupBuyId > 0) && (orderInfo.GroupBuyStatus != GroupBuyStatus.Success))
            {
                return(OpenApiErrorMessage.ShowErrorMsg(OpenApiErrorCode.Trade_Status_Send, "group order"));
            }
            if (!orderInfo.CheckAction(OrderActions.SELLER_SEND_GOODS))
            {
                return(OpenApiErrorMessage.ShowErrorMsg(OpenApiErrorCode.Trade_Status_Send, "orderstatue"));
            }
            if (string.IsNullOrEmpty(out_sid))
            {
                return(OpenApiErrorMessage.ShowErrorMsg(OpenApiErrorCode.Missing_Required_Arguments, "out_sid"));
            }
            ExpressCompanyInfo info2 = ExpressHelper.FindNode(company_name);

            if (info2 == null)
            {
                return(OpenApiErrorMessage.ShowErrorMsg(OpenApiErrorCode.Company_not_Exists, "company_name"));
            }
            orderInfo.ExpressCompanyAbb  = info2.Kuaidi100Code;
            orderInfo.ExpressCompanyName = info2.Name;
            orderInfo.ShipOrderNumber    = out_sid;
            if (!OrderHelper.SendGoods(orderInfo))
            {
                return(OpenApiErrorMessage.ShowErrorMsg(OpenApiErrorCode.Trade_Status_Send, "send good"));
            }
            Express.SubscribeExpress100(orderInfo.ExpressCompanyAbb, out_sid);
            SendNoteInfo note = new SendNoteInfo {
                NoteId   = Globals.GetGenerateId(),
                OrderId  = orderInfo.OrderId,
                Operator = orderInfo.UserId.ToString(),
                Remark   = "接口发货成功"
            };

            OrderHelper.SaveSendNote(note);
            if (!string.IsNullOrEmpty(orderInfo.GatewayOrderId) && (orderInfo.GatewayOrderId.Trim().Length > 0))
            {
                if (orderInfo.Gateway == "hishop.plugins.payment.ws_wappay.wswappayrequest")
                {
                    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");
                    }
                }
                if (orderInfo.Gateway == "hishop.plugins.payment.weixinrequest")
                {
                    PayClient    client;
                    SiteSettings masterSettings = SettingsManager.GetMasterSettings(false);
                    if (masterSettings.EnableSP)
                    {
                        client = new PayClient(masterSettings.Main_AppId, masterSettings.WeixinAppSecret, masterSettings.Main_Mch_ID, masterSettings.Main_PayKey, true, masterSettings.WeixinAppId, masterSettings.WeixinPartnerID);
                    }
                    else
                    {
                        client = new PayClient(masterSettings.WeixinAppId, masterSettings.WeixinAppSecret, masterSettings.WeixinPartnerID, masterSettings.WeixinPartnerKey, false, "", "");
                    }
                    DeliverInfo deliver = new DeliverInfo {
                        TransId    = orderInfo.GatewayOrderId,
                        OutTradeNo = orderInfo.OrderId,
                        OpenId     = MemberHelper.GetMember(orderInfo.UserId).OpenId
                    };
                    client.DeliverNotify(deliver);
                }
            }
            orderInfo.OnDeliver();
            string format = "{{\"logistics_send_response\":{{\"shipping\":{{\"is_success\":{0}}}}}}}";

            return(string.Format(format, "true"));
        }
Beispiel #9
0
        protected void btnBatchSend_Click(object sender, System.EventArgs e)//新增上传excel来发货
        {
            this.btnBatchSend.Enabled = false;
            HttpPostedFile file = this.excelFile.PostedFile;

            if (file.ContentLength == 0)
            {
                this.btnBatchSend.Enabled = true;
                this.ShowMsg("请选择文件!", false);
                return;
            }
            string expandName = file.FileName.Substring(file.FileName.LastIndexOf('.') + 1);
            int    excelType  = 0;

            if (expandName == "xls")
            {
                excelType = 1;
            }
            else if (expandName == "xlsx")
            {
                excelType = 2;
            }
            else
            {
                this.btnBatchSend.Enabled = true;
                this.ShowMsg("请上传excel文件!", false);
                return;
            }
            ExcelHelper excelHelper = new ExcelHelper(file.InputStream);
            DataTable   dtExcel     = excelHelper.ExcelToDataTable("", true, excelType);

            if (dtExcel == null || dtExcel.Columns.Count < 4)
            {
                this.btnBatchSend.Enabled = true;
                this.ShowMsg("excel表格列数错误!", false);
                return;
            }
            if (!(dtExcel.Columns[0].ToString() == "订单编号" && dtExcel.Columns[1].ToString() == "发货时间" && dtExcel.Columns[2].ToString() == "快递公司" && dtExcel.Columns[3].ToString() == "快递单号"))
            {
                this.btnBatchSend.Enabled = true;
                this.ShowMsg("excel表格列名称错误!", false);
                return;
            }
            List <string>               orderIds                 = new List <string>();
            List <string>               expressCompanyName       = new List <string>();
            List <string>               ShipOrderNumber          = new List <string>();
            List <DateTime>             deliveryTimes            = new List <DateTime>();
            Dictionary <string, string> deliverFailOrders        = new Dictionary <string, string>();
            List <deliverFailOrderInfo> listdeliverFailOrderInfo = new List <deliverFailOrderInfo>();
            int num = 0;

            #region 整理发货单数据
            if (dtExcel != null)
            {
                int count = dtExcel.Rows.Count;
                for (int i = 0; i < count; i++)
                {
                    string   tmpOrderId            = string.Empty;
                    string   tmpexpressCompanyName = string.Empty;
                    string   tmpkuaidi100Code      = string.Empty;
                    DateTime tmpdeliveryTime       = DateTime.Now;

                    tmpOrderId = dtExcel.Rows[i][0].ToString();
                    DateTime.TryParse(dtExcel.Rows[i][1].ToString(), out tmpdeliveryTime);
                    tmpexpressCompanyName = dtExcel.Rows[i][2].ToString();
                    tmpkuaidi100Code      = dtExcel.Rows[i][3].ToString();
                    string[] singleLineOrderIds = tmpOrderId.Split(',');//单行可能多个订单号
                    for (int j = 0; j < singleLineOrderIds.Length; j++)
                    {
                        tmpOrderId = singleLineOrderIds[j];
                        if (string.IsNullOrEmpty(tmpOrderId))
                        {
                            continue;
                        }
                        orderIds.Add(tmpOrderId);
                        deliveryTimes.Add(tmpdeliveryTime);
                        expressCompanyName.Add(tmpexpressCompanyName);
                        ShipOrderNumber.Add(tmpkuaidi100Code);
                    }
                }
            }
            #endregion

            #region 发货业务逻辑处理
            for (int i = 0; i < orderIds.Count; i++)
            {
                deliverFailOrderInfo failOrderInfo = null;
                if (string.IsNullOrEmpty(orderIds[i]) && string.IsNullOrEmpty(expressCompanyName[i]) && string.IsNullOrEmpty(ShipOrderNumber[i]))
                {
                    if (!deliverFailOrders.ContainsKey(orderIds[i]))
                    {
                        failOrderInfo                    = new deliverFailOrderInfo();
                        failOrderInfo.OrderId            = orderIds[i];
                        failOrderInfo.FailInfo           = "订单号、快递公司或快递单号不能为空";
                        failOrderInfo.ExpressCompanyCode = ShipOrderNumber[i];
                        failOrderInfo.ExpressCompanyName = expressCompanyName[i];
                        listdeliverFailOrderInfo.Add(failOrderInfo);
                        deliverFailOrders.Add(orderIds[i], "订单号、快递公司或快递单号不能为空");

                        continue;
                    }
                }
                OrderInfo orderInfo = OrderHelper.GetOrderInfo(orderIds[i]);
                if (orderInfo == null)
                {
                    if (!deliverFailOrders.ContainsKey(orderIds[i]))
                    {
                        failOrderInfo                    = new deliverFailOrderInfo();
                        failOrderInfo.OrderId            = orderIds[i];
                        failOrderInfo.FailInfo           = "不存在该订单";
                        failOrderInfo.ExpressCompanyCode = ShipOrderNumber[i];
                        failOrderInfo.ExpressCompanyName = expressCompanyName[i];
                        listdeliverFailOrderInfo.Add(failOrderInfo);
                        deliverFailOrders.Add(orderIds[i], "不存在该订单");
                    }
                    continue;
                }
                if ((orderInfo.GroupBuyId <= 0 || orderInfo.GroupBuyStatus == GroupBuyStatus.Success) && ((orderInfo.OrderStatus == OrderStatus.WaitBuyerPay && orderInfo.Gateway == "hishop.plugins.payment.podrequest") || orderInfo.OrderStatus == OrderStatus.BuyerAlreadyPaid))
                {
                    string           exCompanyName         = expressCompanyName[i];
                    ShippingModeInfo shippingModeByCompany = SalesHelper.GetShippingModeByCompany(exCompanyName);
                    if (shippingModeByCompany != null)
                    {
                        if (shippingModeByCompany.ModeId > 0)
                        {
                            orderInfo.RealModeName       = shippingModeByCompany.Name;
                            orderInfo.RealShippingModeId = shippingModeByCompany.ModeId;
                        }
                        else
                        {
                            orderInfo.RealShippingModeId = 2;//配送方式
                            orderInfo.RealModeName       = "圆通";
                        }
                    }
                    else
                    {
                        orderInfo.RealShippingModeId = 2;//配送方式
                        orderInfo.RealModeName       = "圆通";
                    }

                    ExpressCompanyInfo expressCompanyInfo = ExpressHelper.FindNode(expressCompanyName[i]);//物流公司
                    if (expressCompanyInfo == null)
                    {
                        if (!deliverFailOrders.ContainsKey(orderIds[i]))
                        {
                            failOrderInfo                    = new deliverFailOrderInfo();
                            failOrderInfo.OrderId            = orderIds[i];
                            failOrderInfo.FailInfo           = "不存在物流公司";
                            failOrderInfo.ExpressCompanyCode = ShipOrderNumber[i];
                            failOrderInfo.ExpressCompanyName = expressCompanyName[i];
                            listdeliverFailOrderInfo.Add(failOrderInfo);
                            deliverFailOrders.Add(orderIds[i], "不存在物流公司");
                        }
                        continue;
                    }
                    orderInfo.ExpressCompanyName = expressCompanyInfo.Name;
                    orderInfo.ExpressCompanyAbb  = expressCompanyInfo.Kuaidi100Code;
                    orderInfo.ShipOrderNumber    = ShipOrderNumber[i];
                    orderInfo.ShippingDate       = deliveryTimes[i];
                    //todo 发货时间
                    if (OrderHelper.SendGoods(orderInfo))
                    {
                        SendNoteInfo sendNoteInfo = new SendNoteInfo();
                        sendNoteInfo.NoteId   = Globals.GetGenerateId() + num;
                        sendNoteInfo.OrderId  = orderIds[i];
                        sendNoteInfo.Operator = HiContext.Current.User.Username;
                        sendNoteInfo.Remark   = "后台" + sendNoteInfo.Operator + "发货成功";
                        OrderHelper.SaveSendNote(sendNoteInfo);
                        if (!string.IsNullOrEmpty(orderInfo.GatewayOrderId) && orderInfo.GatewayOrderId.Trim().Length > 0)
                        {
                            PaymentModeInfo paymentMode = SalesHelper.GetPaymentMode(orderInfo.Gateway);
                            if (paymentMode != null && !string.IsNullOrEmpty(paymentMode.Settings) && paymentMode.Settings != "1hSUSkKQ/ENo0JDZah8KKQweixin")
                            {
                                PaymentRequest paymentRequest = 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
                                })), "");
                                if (paymentRequest != null)
                                {
                                    paymentRequest.SendGoods(orderInfo.GatewayOrderId, orderInfo.RealModeName, orderInfo.ShipOrderNumber, "EXPRESS");
                                }
                            }
                        }
                        if (!string.IsNullOrEmpty(orderInfo.TaobaoOrderId))
                        {
                            try
                            {
                                string requestUriString = string.Format("http://order2.ecdev.cn/UpdateShipping.ashx?tid={0}&companycode={1}&outsid={2}&Host={3}", new object[]
                                {
                                    orderInfo.TaobaoOrderId,
                                    expressCompanyInfo.TaobaoCode,
                                    orderInfo.ShipOrderNumber,
                                    HiContext.Current.SiteUrl
                                });
                                System.Net.WebRequest webRequest = System.Net.WebRequest.Create(requestUriString);
                                webRequest.GetResponse();
                            }
                            catch
                            {
                            }
                        }
                        int num3 = orderInfo.UserId;
                        if (num3 == 1100)
                        {
                            num3 = 0;
                        }
                        IUser user = Users.GetUser(num3);
                        Messenger.OrderShipping(orderInfo, user);
                        orderInfo.OnDeliver();
                        num++;
                    }
                    else
                    {
                        if (!deliverFailOrders.ContainsKey(orderIds[i]))
                        {
                            failOrderInfo                    = new deliverFailOrderInfo();
                            failOrderInfo.OrderId            = orderIds[i];
                            failOrderInfo.FailInfo           = "发货失败";
                            failOrderInfo.ExpressCompanyCode = ShipOrderNumber[i];
                            failOrderInfo.ExpressCompanyName = expressCompanyName[i];
                            listdeliverFailOrderInfo.Add(failOrderInfo);
                            deliverFailOrders.Add(orderIds[i], "发货失败");
                        }
                    }
                }
                else
                {
                    if (!deliverFailOrders.ContainsKey(orderIds[i]))
                    {
                        failOrderInfo                    = new deliverFailOrderInfo();
                        failOrderInfo.OrderId            = orderIds[i];
                        failOrderInfo.FailInfo           = "该订单不满足发货条件";
                        failOrderInfo.ExpressCompanyCode = ShipOrderNumber[i];
                        failOrderInfo.ExpressCompanyName = expressCompanyName[i];
                        listdeliverFailOrderInfo.Add(failOrderInfo);
                        deliverFailOrders.Add(orderIds[i], "该订单不满足发货条件");
                    }
                }
            }
            #endregion

            #region 失败订单抛出
            if (deliverFailOrders.Count > 0)
            {
                System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();
                stringBuilder.AppendLine("<html><head><meta http-equiv=Content-Type content=\"text/html; charset=gb2312\"></head><body>");
                stringBuilder.AppendLine("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">");
                stringBuilder.AppendLine("<caption style='text-align:center;'>发货未成功订单列表</caption>");
                stringBuilder.AppendLine("<tr style=\"font-weight: bold; white-space: nowrap;\">");
                stringBuilder.AppendLine("<td>订单号</td>");
                stringBuilder.AppendLine("<td>物流公司</td>");
                stringBuilder.AppendLine("<td>物流单号</td>");
                stringBuilder.AppendLine("<td>错误信息</td>");
                stringBuilder.AppendLine("</tr>");

                foreach (deliverFailOrderInfo failOrderInfo in listdeliverFailOrderInfo)
                {
                    stringBuilder.AppendLine("<tr>");
                    stringBuilder.AppendLine(string.Format("<td style=\"vnd.ms-excel.numberformat:@\">{0}</td>", failOrderInfo.OrderId));
                    stringBuilder.AppendLine(string.Format("<td style=\"vnd.ms-excel.numberformat:@\">{0}</td>", failOrderInfo.ExpressCompanyName));
                    stringBuilder.AppendLine(string.Format("<td style=\"vnd.ms-excel.numberformat:@\">{0}</td>", failOrderInfo.ExpressCompanyCode));
                    stringBuilder.AppendLine(string.Format("<td style=\"vnd.ms-excel.numberformat:@\">{0}</td>", failOrderInfo.FailInfo));
                    stringBuilder.AppendLine("</tr>");
                }
                stringBuilder.AppendLine("</table>");
                stringBuilder.AppendLine("</body></html>");
                base.Response.Clear();
                base.Response.Buffer  = false;
                base.Response.Charset = "GB2312";
                base.Response.AppendHeader("Content-Disposition", "attachment;filename=发货未成功订单_" + System.DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls");
                base.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
                base.Response.ContentType     = "application/ms-excel";
                this.EnableViewState          = false;
                base.Response.Write(stringBuilder.ToString());
            }
            #endregion
            this.btnBatchSend.Enabled = true;
            this.ShowMsg("操作完成!", true);
            //base.Response.End();
        }
Beispiel #10
0
        /// <summary>
        /// 发货回传接口
        /// </summary>
        /// <param name="data"></param>
        private void DeliverGoodsData(string data)
        {
            WMSHelper.SaveLog("DeliverGoodsData", data, "调用方法", "info", "in");
            XmlDocument xmlDocument = new XmlDocument();

            xmlDocument.LoadXml(data);

            if (xmlDocument == null)
            {
                result = ReturnXML("0001", "xml文档格式错误", "0", "");
                WMSHelper.SaveLog("DeliverGoodsData", data, "xml文档格式错误", "error", "in");

                return;
            }



            XmlNode orderlistxml = xmlDocument.SelectSingleNode("xmldata/orderlist");

            if (orderlistxml == null)
            {
                result = ReturnXML("0001", "不包含订单信息", "0", "");
                WMSHelper.SaveLog("DeliverGoodsData", data, "不包含订单信息", "error", "in");
                return;
            }

            try
            {
                List <ErrorDeliverGoods> errorlist = new List <ErrorDeliverGoods>();
                foreach (XmlNode orderNode in orderlistxml.SelectNodes("item"))
                {
                    string orderid            = orderNode.SelectSingleNode("orderid").InnerText;
                    string ShipOrderNumber    = orderNode.SelectSingleNode("ShipOrderNumber").InnerText;
                    string ExpressCompanyName = orderNode.SelectSingleNode("ExpressCompanyName").InnerText;
                    string ExpressCompanyCode = orderNode.SelectSingleNode("ExpressCompanyCode ").InnerText;

                    string strExpressDate = orderNode.SelectSingleNode("ExpressDate").InnerText;

                    #region 参数判断
                    DateTime ExpressDate;

                    if (!DateTime.TryParse(strExpressDate, out ExpressDate))
                    {
                        ErrorDeliverGoods erroinfo = new ErrorDeliverGoods();
                        erroinfo.ExpressCompanyCode = ExpressCompanyCode;
                        erroinfo.orderid            = orderid;
                        erroinfo.ExpressCompanyName = ExpressCompanyName;
                        erroinfo.ExpressDate        = strExpressDate;
                        erroinfo.ShipOrderNumber    = ShipOrderNumber;
                        erroinfo.errorcode          = "0001";
                        erroinfo.errordescr         = "日期格式不正确";

                        errorlist.Add(erroinfo);

                        continue;
                    }

                    if (string.IsNullOrEmpty(orderid))
                    {
                        ErrorDeliverGoods erroinfo = new ErrorDeliverGoods();
                        erroinfo.ExpressCompanyCode = ExpressCompanyCode;
                        erroinfo.orderid            = orderid;
                        erroinfo.ExpressCompanyName = ExpressCompanyName;
                        erroinfo.ExpressDate        = strExpressDate;
                        erroinfo.ShipOrderNumber    = ShipOrderNumber;
                        erroinfo.errorcode          = "0001";
                        erroinfo.errordescr         = "订单id不能为空";

                        errorlist.Add(erroinfo);

                        continue;
                    }

                    if (string.IsNullOrEmpty(ExpressCompanyCode))
                    {
                        ErrorDeliverGoods erroinfo = new ErrorDeliverGoods();
                        erroinfo.ExpressCompanyCode = ExpressCompanyCode;
                        erroinfo.orderid            = orderid;
                        erroinfo.ExpressCompanyName = ExpressCompanyName;
                        erroinfo.ExpressDate        = strExpressDate;
                        erroinfo.ShipOrderNumber    = ShipOrderNumber;
                        erroinfo.errorcode          = "0001";
                        erroinfo.errordescr         = "快递公司编号不能为空";

                        errorlist.Add(erroinfo);

                        continue;
                    }

                    if (string.IsNullOrEmpty(ShipOrderNumber))
                    {
                        ErrorDeliverGoods erroinfo = new ErrorDeliverGoods();
                        erroinfo.ExpressCompanyCode = ExpressCompanyCode;
                        erroinfo.orderid            = orderid;
                        erroinfo.ExpressCompanyName = ExpressCompanyName;
                        erroinfo.ExpressDate        = strExpressDate;
                        erroinfo.ShipOrderNumber    = ShipOrderNumber;
                        erroinfo.errorcode          = "0001";
                        erroinfo.errordescr         = "快递单号不能为空";

                        errorlist.Add(erroinfo);

                        continue;
                    }

                    //if (string.IsNullOrEmpty(ExpressCompanyName))
                    //{
                    //    ErrorDeliverGoods erroinfo = new ErrorDeliverGoods();
                    //    erroinfo.ExpressCompanyCode = ExpressCompanyCode;
                    //    erroinfo.orderid = orderid;
                    //    erroinfo.ExpressCompanyName = ExpressCompanyName;
                    //    erroinfo.ExpressDate = strExpressDate;
                    //    erroinfo.ShipOrderNumber = ShipOrderNumber;
                    //    erroinfo.errorcode = "0001";
                    //    erroinfo.errordescr = "快递公司名称不能为空";

                    //    errorlist.Add(erroinfo);

                    //    continue;
                    //}



                    OrderInfo orderInfo = OrderHelper.GetOrderInfo(orderid);
                    if (orderInfo == null)
                    {
                        ErrorDeliverGoods erroinfo1 = new ErrorDeliverGoods();
                        erroinfo1.ExpressCompanyCode = ExpressCompanyCode;
                        erroinfo1.orderid            = orderid;
                        erroinfo1.ExpressCompanyName = ExpressCompanyName;
                        erroinfo1.ExpressDate        = strExpressDate;
                        erroinfo1.ShipOrderNumber    = ShipOrderNumber;
                        erroinfo1.errorcode          = "0001";
                        erroinfo1.errordescr         = "订单不存在";

                        errorlist.Add(erroinfo1);

                        continue;
                    }

                    if (orderInfo.OrderStatus != OrderStatus.BuyerAlreadyPaid)
                    {
                        ErrorDeliverGoods erroinfo1 = new ErrorDeliverGoods();
                        erroinfo1.ExpressCompanyCode = ExpressCompanyCode;
                        erroinfo1.orderid            = orderid;
                        erroinfo1.ExpressCompanyName = ExpressCompanyName;
                        erroinfo1.ExpressDate        = strExpressDate;
                        erroinfo1.ShipOrderNumber    = ShipOrderNumber;
                        erroinfo1.errorcode          = "0001";
                        erroinfo1.errordescr         = "订单状态不是已付款";

                        errorlist.Add(erroinfo1);

                        continue;
                    }

                    #endregion

                    ExpressCompanyInfo expressCompanyInfo    = ExpressHelper.FindNodeByKuaidi100Code(ExpressCompanyCode);
                    string             getExpressCompanyName = "";

                    if (expressCompanyInfo != null)
                    {
                        getExpressCompanyName = expressCompanyInfo.Name;
                    }
                    ShippingModeInfo shippingMode = SalesHelper.GetShippingModeByCompany(getExpressCompanyName);
                    if (shippingMode != null)
                    {
                        orderInfo.RealShippingModeId = shippingMode.ModeId;
                        orderInfo.RealModeName       = shippingMode.Name;

                        orderInfo.ShippingModeId = shippingMode.ModeId;
                        orderInfo.ModeName       = shippingMode.Name;
                    }

                    orderInfo.ExpressCompanyAbb  = ExpressCompanyCode;
                    orderInfo.ExpressCompanyName = getExpressCompanyName;
                    orderInfo.ShipOrderNumber    = ShipOrderNumber;

                    orderInfo.ShippingDate = ExpressDate;
                    if (OrderHelper.WMSSendGoods(orderInfo))
                    {
                        SendNoteInfo sendNoteInfo = new SendNoteInfo();
                        sendNoteInfo.NoteId   = Globals.GetGenerateId();
                        sendNoteInfo.OrderId  = orderInfo.OrderId;
                        sendNoteInfo.Operator = orderInfo.Username;
                        sendNoteInfo.Remark   = "后台" + sendNoteInfo.Operator + "发货成功";
                        OrderHelper.SaveSendNote(sendNoteInfo);
                        this.PaySendGoodsNotice(orderInfo);
                        this.SendGoodsMessage(orderInfo);
                        orderInfo.OnDeliver();
                    }

                    else
                    {
                        ErrorDeliverGoods erroinfo2 = new ErrorDeliverGoods();
                        erroinfo2.ExpressCompanyCode = ExpressCompanyCode;
                        erroinfo2.orderid            = orderid;
                        erroinfo2.ExpressCompanyName = ExpressCompanyName;
                        erroinfo2.ExpressDate        = strExpressDate;
                        erroinfo2.ShipOrderNumber    = ShipOrderNumber;
                        erroinfo2.errorcode          = "0001";
                        erroinfo2.errordescr         = "发货失败";

                        errorlist.Add(erroinfo2);
                    }
                }

                if (errorlist.Count > 0)
                {
                    StringBuilder sb = new StringBuilder();
                    foreach (ErrorDeliverGoods info in errorlist)
                    {
                        sb.Append("<resultInfo>");
                        sb.AppendFormat("<orderid>{0}</orderid>", info.orderid);
                        sb.AppendFormat("<ExpressCompanyName>{0}</ExpressCompanyName>", info.ExpressCompanyName);
                        sb.AppendFormat("<ExpressCompanyCode>{0}</ExpressCompanyCode>", info.ExpressCompanyCode);
                        sb.AppendFormat("<ExpressDate>{0}</ExpressDate>", info.ExpressDate);
                        sb.AppendFormat("<errorcode>{0}</errorcode>", info.errorcode);
                        sb.AppendFormat("<errordescr>{0}</errordescr>", info.errordescr);
                        sb.Append("</resultInfo>");
                    }

                    WMSHelper.SaveLog("DeliverGoodsData", data, "部分操作成功:" + sb.ToString(), "info", "in");
                    result = ReturnXML("0001", "部分操作成功", "2", sb.ToString());

                    return;
                }

                else
                {
                    WMSHelper.SaveLog("DeliverGoodsData", data, "操作成功", "info", "in");
                    result = ReturnXML("0000", "操作成功", "0", "");

                    return;
                }
            }
            catch (Exception ex)
            {
                WMSHelper.SaveLog("DeliverGoodsData", data, ex.ToString(), "error", "in");
                result = ReturnXML("0001", this.FilterXMLCode(ex.ToString()), "0", "");

                return;
            }
        }
Beispiel #11
0
        private void btnSendGoods_Click(object sender, System.EventArgs e)
        {
            if (this.grdOrderGoods.Rows.Count <= 0)
            {
                this.ShowMsg("没有要进行发货的订单。", false);
                return;
            }
            DropdownColumn dropdownColumn = (DropdownColumn)this.grdOrderGoods.Columns[4];

            System.Web.UI.WebControls.ListItemCollection selectedItems = dropdownColumn.SelectedItems;
            DropdownColumn dropdownColumn2 = (DropdownColumn)this.grdOrderGoods.Columns[5];

            System.Web.UI.WebControls.ListItemCollection selectedItems2 = dropdownColumn2.SelectedItems;
            int num = 0;

            for (int i = 0; i < selectedItems.Count; i++)
            {
                string orderId = (string)this.grdOrderGoods.DataKeys[this.grdOrderGoods.Rows[i].RowIndex].Value;
                System.Web.UI.WebControls.TextBox  textBox   = (System.Web.UI.WebControls.TextBox) this.grdOrderGoods.Rows[i].FindControl("txtShippOrderNumber");
                System.Web.UI.WebControls.ListItem listItem  = selectedItems[i];
                System.Web.UI.WebControls.ListItem listItem2 = selectedItems2[i];
                int num2 = 0;
                int.TryParse(listItem.Value, out num2);
                if (!string.IsNullOrEmpty(textBox.Text.Trim()) && !string.IsNullOrEmpty(listItem.Value) && int.Parse(listItem.Value) > 0 && !string.IsNullOrEmpty(listItem2.Value))
                {
                    OrderInfo orderInfo = OrderHelper.GetOrderInfo(orderId);
                    if ((orderInfo.GroupBuyId <= 0 || orderInfo.GroupBuyStatus == GroupBuyStatus.Success) && ((orderInfo.OrderStatus == OrderStatus.WaitBuyerPay && orderInfo.Gateway == "Ecdev.plugins.payment.podrequest") || orderInfo.OrderStatus == OrderStatus.BuyerAlreadyPaid) && num2 > 0 && !string.IsNullOrEmpty(textBox.Text.Trim()) && textBox.Text.Trim().Length <= 20)
                    {
                        ShippingModeInfo shippingMode = SalesHelper.GetShippingMode(num2, true);
                        orderInfo.RealShippingModeId = shippingMode.ModeId;
                        orderInfo.RealModeName       = shippingMode.Name;
                        ExpressCompanyInfo expressCompanyInfo = ExpressHelper.FindNode(listItem2.Value);
                        orderInfo.ExpressCompanyName = expressCompanyInfo.Name;
                        orderInfo.ExpressCompanyAbb  = expressCompanyInfo.Kuaidi100Code;
                        orderInfo.ShipOrderNumber    = textBox.Text;
                        if (OrderHelper.SendGoods(orderInfo))
                        {
                            SendNoteInfo sendNoteInfo = new SendNoteInfo();
                            sendNoteInfo.NoteId   = Globals.GetGenerateId() + num;
                            sendNoteInfo.OrderId  = orderId;
                            sendNoteInfo.Operator = HiContext.Current.User.Username;
                            sendNoteInfo.Remark   = "后台" + sendNoteInfo.Operator + "发货成功";
                            OrderHelper.SaveSendNote(sendNoteInfo);
                            if (!string.IsNullOrEmpty(orderInfo.GatewayOrderId) && orderInfo.GatewayOrderId.Trim().Length > 0)
                            {
                                PaymentModeInfo paymentMode = SalesHelper.GetPaymentMode(orderInfo.Gateway);
                                if (paymentMode != null)
                                {
                                    PaymentRequest paymentRequest = 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
                                    })), "");
                                    paymentRequest.SendGoods(orderInfo.GatewayOrderId, orderInfo.RealModeName, orderInfo.ShipOrderNumber, "EXPRESS");
                                }
                            }
                            if (!string.IsNullOrEmpty(orderInfo.TaobaoOrderId))
                            {
                                try
                                {
                                    string requestUriString = string.Format("http://vip.ecdev.cn/UpdateShipping.ashx?tid={0}&companycode={1}&outsid={2}&Host={3}", new object[]
                                    {
                                        orderInfo.TaobaoOrderId,
                                        expressCompanyInfo.TaobaoCode,
                                        orderInfo.ShipOrderNumber,
                                        HiContext.Current.SiteUrl
                                    });
                                    System.Net.WebRequest webRequest = System.Net.WebRequest.Create(requestUriString);
                                    webRequest.GetResponse();
                                }
                                catch
                                {
                                }
                            }
                            int num3 = orderInfo.UserId;
                            if (num3 == 1100)
                            {
                                num3 = 0;
                            }
                            IUser user = Users.GetUser(num3);
                            Messenger.OrderShipping(orderInfo, user);
                            orderInfo.OnDeliver();
                            num++;
                        }
                    }
                }
            }
            if (num == 0)
            {
                this.ShowMsg("批量发货失败!", false);
                return;
            }
            if (num > 0)
            {
                this.BindData();
                this.ShowMsg(string.Format("批量发货成功!发货数量{0}个", num), true);
            }
        }
Beispiel #12
0
        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))
                            {
                                SendNoteInfo info3 = new SendNoteInfo();

                                info3.NoteId   = Globals.GetGenerateId() + num;
                                info3.OrderId  = orderId;
                                info3.Operator = ManagerHelper.GetCurrentManager().UserName;
                                info3.Remark   = "后台" + info3.Operator + "发货成功";


                                OrderHelper.SaveSendNote(info3);
                                if (!string.IsNullOrEmpty(orderInfo.GatewayOrderId) && (orderInfo.GatewayOrderId.Trim().Length > 0))
                                {
                                    if (orderInfo.Gateway == "hishop.plugins.payment.ws_wappay.wswappayrequest")
                                    {
                                        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");
                                        }
                                    }
                                    if (orderInfo.Gateway == "hishop.plugins.payment.weixinrequest")
                                    {
                                        SiteSettings masterSettings = SettingsManager.GetMasterSettings(false);
                                        PayClient    client         = new PayClient(masterSettings.WeixinAppId, masterSettings.WeixinAppSecret, masterSettings.WeixinPartnerID, masterSettings.WeixinPartnerKey, masterSettings.WeixinPaySignKey);
                                        DeliverInfo  deliver        = new DeliverInfo {
                                            TransId    = orderInfo.GatewayOrderId,
                                            OutTradeNo = orderInfo.OrderId,
                                            OpenId     = MemberHelper.GetMember(orderInfo.UserId).OpenId
                                        };
                                        client.DeliverNotify(deliver);
                                    }
                                }
                                orderInfo.OnDeliver();
                                num++;
                            }
                        }
                    }
                }
                if (num == 0)
                {
                    this.ShowMsg("批量发货失败!", false);
                }
                else if (num > 0)
                {
                    this.BindData();
                    this.ShowMsg(string.Format("批量发货成功!发货数量{0}个", num), true);
                }
            }
        }
Beispiel #13
0
        private void btnSendGoods_Click(object sender, System.EventArgs e)
        {
            OrderInfo orderInfo = OrderHelper.GetOrderInfo(this.orderId);

            if (orderInfo != null)
            {
                ManagerInfo currentManager = ManagerHelper.GetCurrentManager();
                if (currentManager != 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 (CustomConfigHelper.Instance.BrandShow == false)
                                //{
                                //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 info4 = ExpressHelper.FindNode(this.expressRadioButtonList.SelectedValue);
                                    if (info4 != null)
                                    {
                                        orderInfo.ExpressCompanyAbb  = info4.Kuaidi100Code;
                                        orderInfo.ExpressCompanyName = info4.Name;
                                    }
                                    orderInfo.ShipOrderNumber = this.txtShipOrderNumber.Text;
                                    if (OrderHelper.SendGoods(orderInfo))
                                    {
                                        SendNoteInfo info5 = new SendNoteInfo();
                                        info5.NoteId   = Globals.GetGenerateId();
                                        info5.OrderId  = this.orderId;
                                        info5.Operator = currentManager.UserName;
                                        info5.Remark   = "后台" + info5.Operator + "发货成功";
                                        OrderHelper.SaveSendNote(info5);
                                        MemberInfo member = MemberHelper.GetMember(orderInfo.UserId);
                                        Messenger.OrderShipping(orderInfo, member);
                                        if (!string.IsNullOrEmpty(orderInfo.GatewayOrderId) && orderInfo.GatewayOrderId.Trim().Length > 0)
                                        {
                                            if (orderInfo.Gateway == "hishop.plugins.payment.ws_wappay.wswappayrequest")
                                            {
                                                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");
                                                }
                                            }
                                            if (orderInfo.Gateway == "hishop.plugins.payment.weixinrequest")
                                            {
                                                SiteSettings masterSettings = SettingsManager.GetMasterSettings(false);
                                                PayClient    client         = new PayClient(masterSettings.WeixinAppId, masterSettings.WeixinAppSecret, masterSettings.WeixinPartnerID, masterSettings.WeixinPartnerKey, masterSettings.WeixinPaySignKey);
                                                DeliverInfo  deliver        = new DeliverInfo
                                                {
                                                    TransId    = orderInfo.GatewayOrderId,
                                                    OutTradeNo = orderInfo.OrderId,
                                                    OpenId     = MemberHelper.GetMember(orderInfo.UserId).OpenId
                                                };
                                                client.DeliverNotify(deliver);
                                            }
                                        }
                                        orderInfo.OnDeliver();
                                        if (CustomConfigHelper.Instance.IsSanzuo)    //三作咖啡特殊需求:发货时,打印小票(配送票)
                                        {
                                            //this.ShowMsgAndReUrl("发货成功", true,"ManageOrders.aspx");
                                            CloseWindowAndRedirect();
                                        }
                                        else if (CustomConfigHelper.Instance.IsProLa)   //pro辣特殊需求,发货时增加消息推送
                                        {
                                            WriteLog("进入");
                                            SiteSettings    masterSettings  = SettingsManager.GetMasterSettings(false);
                                            TemplateMessage templateMessage = new TemplateMessage();
                                            templateMessage.Url        = Request.Url.Host + "/vshop/MemberOrders.aspx?status=3"; //单击URL
                                            templateMessage.TemplateId = "pPCCurFLdpgnI0ZWpr5eFJQ5bxS7xboaEW2ScBoOY4U";          //Globals.GetMasterSettings(true).WX_Template_01;// "b1_ARggaBzbc5owqmwrZ15QPj9Ksfs0p5i64C6MzXKw";//消息模板ID
                                            templateMessage.Touser     = member.OpenId;                                          //用户OPENID
                                            string productsDes = ""; int c = 0;
                                            foreach (LineItemInfo info in orderInfo.LineItems.Values)
                                            {
                                                if (c > 3)
                                                {
                                                    break;
                                                }
                                                productsDes += info.ItemDescription + ",";
                                                c++;
                                            }
                                            productsDes = productsDes.TrimEnd(',') + "等菜品";

                                            TemplateMessage.MessagePart[] messateParts = new TemplateMessage.MessagePart[] {
                                                new TemplateMessage.MessagePart {
                                                    Name = "first", Value = "亲,您的菜品已备好,配送在途!"
                                                },
                                                new TemplateMessage.MessagePart {
                                                    Name = "keyword1", Value = "订单" + orderInfo.OrderId + "开始配送"
                                                },
                                                new TemplateMessage.MessagePart {
                                                    Name = "keyword2", Value = productsDes
                                                },
                                                new TemplateMessage.MessagePart {
                                                    Name = "remark", Color = "#FF0000", Value = "预计到达时间:" + txtArriveTime.Text                        /*orderInfo.ShipToDate*/
                                                }
                                            };
                                            templateMessage.Data = messateParts;
                                            TemplateApi.SendMessage(TokenApi.GetToken_Message(masterSettings.WeixinAppId, masterSettings.WeixinAppSecret), templateMessage);
                                            this.ShowMsg("发货成功", true);
                                        }
                                        else
                                        {
                                            this.ShowMsg("发货成功", true);
                                        }
                                    }
                                    else
                                    {
                                        this.ShowMsg("发货失败", false);
                                    }
                                }
                                //}
                            }
                        }
                    }
                }
            }
        }