Ejemplo n.º 1
0
        public ReturnsInfo GetReturnsInfo(int returnsId)
        {
            ReturnsInfo returnsInfo = null;
            //Username,EmailAddress,RealName,ZipCode,CellPhone
            DbCommand sqlStringCommand = this.database.GetSqlStringCommand("SELECT A.ReturnsId,A.OrderId,A.ApplyForTime,A.RefundType,A.RefundMoney,A.Comments,A.HandleStatus,A.HandleTime,A.AdminRemark,A.Operator,A.ReceiveTime,A1.Username,A1.EmailAddress,A1.RealName,A1.ZipCode,A1.CellPhone,A.LogisticsCompany,A.LogisticsId,A.ExpressFee,A.CustomsClearanceFee,A.FeeAffiliation FROM Ecshop_OrderReturns as A left join Ecshop_Orders as A1 on A.orderId=A1.orderId  where returnsId=@returnsId;SELECT o.Id,o.AId,o.SkuId,o.ProductId,o.ApplyType,o.Quantity,o.ItemAdjustedPrice,o.ItemDescription,o.ThumbnailsUrl,o.Weight,o.SKUContent,o.PromotionId,o.PromotionName,o.TaxRate,o.TemplateId,o.storeId,o.SupplierId,o.DeductFee,s.SupplierName FROM Ecshop_OrderAppFormItems as o left JOIN Ecshop_Supplier as s ON o.SupplierId=s.SupplierId where o.AId=@returnsId and o.ApplyType=1");

            this.database.AddInParameter(sqlStringCommand, "returnsId", DbType.Int32, returnsId);
            using (IDataReader dataReader = this.database.ExecuteReader(sqlStringCommand))
            {
                returnsInfo = ReaderConvert.ReaderToModel <ReturnsInfo>(dataReader);
                if (returnsInfo != null)
                {
                    returnsInfo.ReturnsLineItem = new List <OrderAppFormItems>();
                }
                dataReader.NextResult();
                OrderAppFormItems appFormItem = null;
                while (1 == 1)
                {
                    appFormItem = ReaderConvert.ReaderToModel <OrderAppFormItems>(dataReader);
                    if (appFormItem != null && returnsInfo.ReturnsLineItem != null)
                    {
                        if (appFormItem.SupplierName == null)
                        {
                            appFormItem.SupplierName = "";
                        }
                        returnsInfo.ReturnsLineItem.Add(appFormItem);
                    }
                    if (appFormItem == null)
                    {
                        break;
                    }
                }
            }
            return(returnsInfo);
        }
Ejemplo n.º 2
0
 protected override void AttachChildControls()
 {
     this.returnsId = System.Convert.ToInt32(this.Page.Request.QueryString["ReturnsId"]);
     //this.RefundDetails = (Common_OrderManage_OrderItems)this.FindControl("Common_OrderManage_OrderItems");
     this.RefundDetails          = (VshopTemplatedRepeater)this.FindControl("rptOrderProducts");
     this.txtOrderId             = (System.Web.UI.WebControls.Literal) this.FindControl("txtOrderId");
     this.handleStatus           = (System.Web.UI.WebControls.Literal) this.FindControl("handleStatus");
     this.litAddDate             = (FormatedTimeLabel)this.FindControl("litAddDate");
     this.litRemark              = (System.Web.UI.WebControls.Literal) this.FindControl("litRemark");
     this.litAdminRemark         = (System.Web.UI.WebControls.Literal) this.FindControl("litAdminRemark");
     this.litWeight              = (System.Web.UI.WebControls.Literal) this.FindControl("litWeight");
     this.litType                = (System.Web.UI.WebControls.Literal) this.FindControl("litType");
     this.litTotalPrice          = (FormatedMoneyLabel)this.FindControl("litTotalPrice");
     this.litRefundTotal         = (FormatedMoneyLabel)this.FindControl("litRefundTotal");
     this.litOrderTotal          = (FormatedMoneyLabel)this.FindControl("litOrderTotal");
     this.litLogisticsCompany    = (System.Web.UI.WebControls.Literal) this.FindControl("litLogisticsCompany");
     this.litLogisticsId         = (System.Web.UI.WebControls.Literal) this.FindControl("litLogisticsId");
     this.litFeeAffiliation      = (System.Web.UI.WebControls.Literal) this.FindControl("litFeeAffiliation");
     this.litExpressFee          = (System.Web.UI.WebControls.Literal) this.FindControl("litExpressFee");
     this.litCustomsClearanceFee = (System.Web.UI.WebControls.Literal) this.FindControl("litCustomsClearanceFee");
     if (!this.Page.IsPostBack)
     {
         this.BindReturnsTable(this.returnsId);
         OrderInfo orderInfo = TradeHelper.GetOrderInfo(this.orderId);
         returnsInfo = TradeHelper.GetReturnsInfo(this.returnsId);
         if (returnsInfo == null || returnsInfo.Username != HiContext.Current.User.Username)
         {
             this.Page.Response.Redirect(Globals.ApplicationPath + "/ResourceNotFound.aspx?errorMsg=" + Globals.UrlEncode("该订单不存在或者不属于当前用户的订单"));
             return;
         }
         this.BindOrderItems(orderInfo);
         this.BindRefunds(returnsInfo);
     }
 }
Ejemplo n.º 3
0
        protected System.Web.UI.WebControls.Literal litCustomsClearanceFee; //收取清关费
        protected void Page_Load(object sender, System.EventArgs e)
        {
            if (string.IsNullOrEmpty(this.Page.Request.QueryString["ReturnsId"]))
            {
                base.GotoResourceNotFound();
                return;
            }
            string key    = "orderdetails-frame";
            string script = string.Format("<script>if(window.parent.frames.length == 0) window.location.href=\"{0}\";</script>", Globals.ApplicationPath + "/admin/default.html");
            ClientScriptManager clientScript = this.Page.ClientScript;

            if (!clientScript.IsClientScriptBlockRegistered(key))
            {
                clientScript.RegisterClientScriptBlock(base.GetType(), key, script);
            }
            int.TryParse(this.Page.Request.QueryString["returnsId"], out returnsId);

            this.returnsInfo = OrderHelper.GetReturnsInfo(this.returnsId);
            this.orderId     = returnsInfo.OrderId;
            if (this.returnsInfo == null)
            {
                base.Response.Write("<h3 style=\"color:red;\">退货单不存在,或者已被删除。</h3>");
                base.Response.End();
            }
            else
            {
            }
            if (!this.Page.IsPostBack)
            {
                BindReturnsData();
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 领取操作,把处理人改为当前用户,状态改为处理中,领取时间为当前时间
        /// </summary>
        /// <param name="refundInfo"></param>
        /// <returns></returns>
        public bool UpdateOrderReturnsInfo(ReturnsInfo returnsInfo)
        {
            DbCommand sqlStringCommand = this.database.GetSqlStringCommand("update Ecshop_OrderReturns set HandleStatus = @HandleStatus,Operator=@Operator,ReceiveTime=@ReceiveTime where ReturnsId=@ReturnsId and HandleStatus = 0");

            this.database.AddInParameter(sqlStringCommand, "ReturnsId", DbType.Int32, returnsInfo.ReturnsId);
            this.database.AddInParameter(sqlStringCommand, "HandleStatus", DbType.Int32, returnsInfo.HandleStatus);
            this.database.AddInParameter(sqlStringCommand, "Operator", DbType.String, returnsInfo.Operator);
            this.database.AddInParameter(sqlStringCommand, "ReceiveTime", DbType.DateTime, returnsInfo.ReceiveTime);
            return(this.database.ExecuteNonQuery(sqlStringCommand) > 0);
        }
Ejemplo n.º 5
0
        public bool CreateReturn(ReturnsInfo returnInfo)//创建退回单
        {
            bool result;

            if (returnInfo == null)
            {
                result = false;
            }
            else
            {
                Database database = DatabaseFactory.CreateDatabase();
                using (System.Data.Common.DbConnection dbConnection = database.CreateConnection())
                {
                    dbConnection.Open();
                    System.Data.Common.DbTransaction dbTransaction = dbConnection.BeginTransaction();
                    try
                    {
                        if (!UpdateOrderStatusBeApplyForReturns(returnInfo.OrderId, dbTransaction))
                        {
                            dbTransaction.Rollback();
                            result = false;
                            return(result);
                        }
                        returnInfo.ReturnsId = AddReturnInfo(returnInfo, dbTransaction);
                        if (returnInfo.ReturnsId <= 0)
                        {
                            dbTransaction.Rollback();
                            result = false;
                            return(result);
                        }
                        if (returnInfo.ReturnsLineItem.Count > 0)
                        {
                            if (!AddReturnsItem(returnInfo, dbTransaction))
                            {
                                dbTransaction.Rollback();
                                result = false;
                                return(result);
                            }
                        }
                        dbTransaction.Commit();
                        result = true;
                    }
                    catch
                    {
                        dbTransaction.Rollback();
                        result = false;
                    }
                    finally
                    {
                        dbConnection.Close();
                    }
                }
            }
            return(result);
        }
Ejemplo n.º 6
0
        public bool AddReturnsItem(ReturnsInfo returnsInfo, DbTransaction dbTran)
        {
            bool result;

            if (returnsInfo.ReturnsId == 0)
            {
                result = false;
                return(result);
            }
            if (returnsInfo.ReturnsLineItem == null || returnsInfo.ReturnsLineItem.Count == 0)
            {
                result = false;
            }
            else
            {
                DbCommand     sqlStringCommand = this.database.GetSqlStringCommand(" ");
                StringBuilder stringBuilder    = new StringBuilder();
                int           num = 0;
                foreach (OrderAppFormItems lineItem in returnsInfo.ReturnsLineItem)
                {
                    stringBuilder.Append(" INSERT INTO Ecshop_OrderAppFormItems ([AId],[SkuId],[ProductId],[Quantity],[ItemAdjustedPrice],[ItemDescription],[ThumbnailsUrl],[Weight],[SKUContent],[PromotionId],[PromotionName],[TaxRate],[TemplateId],[storeId],[SupplierId],[ApplyType])  VALUES(").Append("@AId").Append(num).Append(",@SkuId").Append(num).Append(", @ProductId").Append(num).Append(", @Quantity").Append(num).Append(", @ItemAdjustedPrice").Append(num).Append(", @ItemDescription").Append(num).Append(",@ThumbnailsUrl").Append(num).Append(",@Weight").Append(num).Append(", @SKUContent").Append(num).Append(",@PromotionId").Append(num).Append(", @PromotionName").Append(num).Append(",@TaxRate").Append(num).Append(", @TemplateId").Append(num).Append(", @storeId").Append(num).Append(", @SupplierId").Append(num).Append(", @ApplyType").Append(num).Append(")");
                    this.database.AddInParameter(sqlStringCommand, "AId" + num, DbType.Int32, returnsInfo.ReturnsId);
                    this.database.AddInParameter(sqlStringCommand, "SkuId" + num, DbType.String, lineItem.SkuId);
                    this.database.AddInParameter(sqlStringCommand, "ProductId" + num, DbType.Int32, lineItem.ProductId);
                    this.database.AddInParameter(sqlStringCommand, "Quantity" + num, DbType.Int32, lineItem.Quantity);
                    this.database.AddInParameter(sqlStringCommand, "ItemAdjustedPrice" + num, DbType.String, lineItem.ItemAdjustedPrice);
                    this.database.AddInParameter(sqlStringCommand, "ItemDescription" + num, DbType.String, lineItem.ItemDescription);
                    this.database.AddInParameter(sqlStringCommand, "ThumbnailsUrl" + num, DbType.String, lineItem.ThumbnailsUrl);
                    this.database.AddInParameter(sqlStringCommand, "Weight" + num, DbType.Decimal, lineItem.ItemWeight);
                    this.database.AddInParameter(sqlStringCommand, "SKUContent" + num, DbType.String, lineItem.SKUContent);
                    this.database.AddInParameter(sqlStringCommand, "PromotionId" + num, DbType.Int32, lineItem.PromotionId);
                    this.database.AddInParameter(sqlStringCommand, "PromotionName" + num, DbType.String, lineItem.PromotionName);
                    this.database.AddInParameter(sqlStringCommand, "TaxRate" + num, DbType.Decimal, lineItem.TaxRate);
                    this.database.AddInParameter(sqlStringCommand, "TemplateId" + num, DbType.Int32, lineItem.TemplateId);
                    this.database.AddInParameter(sqlStringCommand, "storeId" + num, DbType.Int32, lineItem.storeId);
                    this.database.AddInParameter(sqlStringCommand, "SupplierId" + num, DbType.Int32, lineItem.SupplierId);
                    this.database.AddInParameter(sqlStringCommand, "ApplyType" + num, DbType.Int32, lineItem.ApplyType);
                    num++;
                }
                sqlStringCommand.CommandText = stringBuilder.ToString();
                if (dbTran != null)
                {
                    result = this.database.ExecuteNonQuery(sqlStringCommand, dbTran) > 0;
                }
                else
                {
                    result = this.database.ExecuteNonQuery(sqlStringCommand) > 0;
                }
            }
            return(result);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 退货单领取操作
        /// </summary>
        /// <param name="context"></param>
        public void OrderReturnsReceive(System.Web.HttpContext context)
        {
            context.Response.ContentType = "application/json";

            string        ReturnsId     = context.Request["ReturnsId"];
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("{");

            if (string.IsNullOrEmpty(ReturnsId))
            {
                stringBuilder.Append("\"Status\":\"-1\"");
                stringBuilder.Append("}");
                context.Response.Write(stringBuilder.ToString());
                return;
            }
            IUser user = HiContext.Current.User as SiteManager;

            ReturnsInfo returnsInfo = new ReturnsInfo();

            returnsInfo.ReturnsId    = int.Parse(ReturnsId);
            returnsInfo.ReceiveTime  = DateTime.Now;
            returnsInfo.HandleStatus = 3;//处理中
            if (user != null)
            {
                returnsInfo.Operator = user.Username;
            }

            bool flag = TradeHelper.UpdateOrderReturnsInfo(returnsInfo);

            if (flag)
            {
                stringBuilder.Append("\"Status\":\"OK\"");
                stringBuilder.Append("}");
            }
            else
            {
                stringBuilder.Append("\"Status\":\"-1\"");
                stringBuilder.Append("}");
            }

            context.Response.Write(stringBuilder.ToString());
        }
Ejemplo n.º 8
0
        public int AddReturnInfo(ReturnsInfo ReturnsInfo, DbTransaction dbTran)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append(" insert into Ecshop_OrderReturns(OrderId,ApplyForTime,Comments,HandleStatus,RefundType,RefundMoney,LogisticsCompany,LogisticsId) values(@OrderId,@ApplyForTime,@Comments,0,@RefundType,0,@LogisticsCompany,@LogisticsId);SELECT @@identity ");
            DbCommand sqlStringCommand = this.database.GetSqlStringCommand(stringBuilder.ToString());

            this.database.AddInParameter(sqlStringCommand, "OrderId", DbType.String, ReturnsInfo.OrderId);
            this.database.AddInParameter(sqlStringCommand, "ApplyForTime", DbType.DateTime, DateTime.Now);
            this.database.AddInParameter(sqlStringCommand, "Comments", DbType.String, ReturnsInfo.Comments);
            this.database.AddInParameter(sqlStringCommand, "RefundType", DbType.Int32, ReturnsInfo.RefundType);
            this.database.AddInParameter(sqlStringCommand, "HandleStatus", DbType.Int32, 0);
            this.database.AddInParameter(sqlStringCommand, "RefundMoney", DbType.Decimal, ReturnsInfo.GetAmount());
            this.database.AddInParameter(sqlStringCommand, "LogisticsCompany", DbType.String, ReturnsInfo.LogisticsCompany);
            this.database.AddInParameter(sqlStringCommand, "LogisticsId", DbType.String, ReturnsInfo.LogisticsId);
            int    returnsId;
            object obj;

            if (dbTran != null)
            {
                obj = this.database.ExecuteScalar(sqlStringCommand, dbTran);
            }
            else
            {
                obj = this.database.ExecuteScalar(sqlStringCommand);
            }
            if (obj != DBNull.Value)
            {
                returnsId = Convert.ToInt32(obj);
            }
            else
            {
                returnsId = 0;
            }
            return(returnsId);
        }
Ejemplo n.º 9
0
 private void BindRefunds(ReturnsInfo returnsInfo)
 {
     this.RefundDetails.DataSource = returnsInfo.ReturnsLineItem;
     this.RefundDetails.DataBind();
 }
Ejemplo n.º 10
0
 public bool CheckReturn(ReturnsInfo returns, bool accept, [Optional, DecimalConstant(0, 0, (uint)0, (uint)0, (uint)1)] decimal PointsRate, [Optional, DecimalConstant(0, 0, (uint)0, (uint)0, (uint)0)] decimal RefundAmount, OrderInfo order = null)
 {
     //if (order == null)
     //{
     //    order = new OrderDao().GetOrderInfo(returns.OrderId);
     //    if (order == null)
     //    {
     //        return false;
     //    }
     //}
     //if (RefundAmount <= 0M)
     //{
     //    RefundAmount = returns.RefundMoney;
     //}
     //decimal num = (int) (returns.RefundMoney / PointsRate);
     //decimal num2 = RefundAmount;
     //StringBuilder builder = new StringBuilder();
     //if (!accept)
     //{
     //    if (string.IsNullOrEmpty(returns.SkuId))
     //    {
     //        builder.Append("UPDATE Hishop_Orders SET OrderStatus = @OrderStatus  WHERE OrderId = @OrderId;");
     //    }
     //    else
     //    {
     //        builder.Append("UPDATE Hishop_OrderItems SET Status = @ItemStatus WHERE OrderId = @OrderId AND SkuId = @SkuId;");
     //    }
     //    builder.Append("UPDATE Hishop_OrderReturns set Operator=@Operator, AdminRemark=@AdminRemark,HandleStatus=@HandleStatus,HandleTime=@HandleTime,RefundMoney=@RefundMoney WHERE  OrderId = @OrderId");
     //    if (!(string.IsNullOrEmpty(returns.SkuId) && !(returns.SkuId != "")))
     //    {
     //        builder.Append(" AND SkuId = @SkuId");
     //    }
     //    else
     //    {
     //        builder.Append(" AND (SkuId='' OR SkuId IS NULL)");
     //    }
     //    builder.Append(";");
     //}
     //else
     //{
     //    builder.AppendFormat("UPDATE Hishop_Orders SET FinishDate = CASE WHEN FinishDate IS NULL THEN GETDATE() ELSE FinishDate END WHERE OrderId = @OrderId AND OrderStatus = {0};", 5);
     //    if (string.IsNullOrEmpty(returns.SkuId))
     //    {
     //        builder.Append("UPDATE Hishop_Orders SET OrderStatus = @OrderStatus,RefundAmount = @OrderRefundMoney WHERE OrderId = @OrderId;");
     //    }
     //    else
     //    {
     //        bool flag = true;
     //        foreach (LineItemInfo info in order.LineItems.Values)
     //        {
     //            if ((info.Status == LineItemStatus.Refunded) || (info.Status == LineItemStatus.Returned))
     //            {
     //                if ((info.RefundInfo != null) && (info.Status == LineItemStatus.Refunded))
     //                {
     //                    num2 += info.RefundInfo.RefundAmount;
     //                }
     //                if ((info.ReturnInfo != null) && (info.Status == LineItemStatus.Returned))
     //                {
     //                    num2 += info.ReturnInfo.RefundMoney;
     //                }
     //            }
     //            if ((info.SkuId != returns.SkuId) && (info.Status != LineItemStatus.Returned))
     //            {
     //                flag = false;
     //            }
     //        }
     //        if (flag)
     //        {
     //            builder.Append("UPDATE Hishop_Orders SET OrderStatus = @OrderStatus WHERE OrderId = @OrderId;");
     //        }
     //        builder.Append("UPDATE Hishop_Orders SET RefundAmount = @OrderRefundMoney WHERE OrderId = @OrderId;");
     //        builder.Append("UPDATE Hishop_OrderItems SET RefundAmount = @RefundMoney, Status = @ItemStatus, RealTotalPrice = (ItemAdjustedPrice * Quantity - @RefundMoney) WHERE OrderId = @OrderId AND SkuId = @SkuId;");
     //    }
     //    builder.Append(" UPDATE Hishop_OrderReturns SET Operator = @Operator, AdminRemark = @AdminRemark,HandleStatus = @HandleStatus,HandleTime = @HandleTime,RefundMoney = @RefundMoney where OrderId = @OrderId");
     //    if (!string.IsNullOrEmpty(returns.SkuId))
     //    {
     //        builder.Append(" AND SkuId = @SkuId");
     //    }
     //    else
     //    {
     //        builder.Append(" AND (SkuId='' OR SkuId IS NULL)");
     //    }
     //    builder.Append(";");
     //    if ((returns.RefundType == RefundTypes.InBalance) && accept)
     //    {
     //        string orderId = returns.OrderId;
     //        if (!string.IsNullOrEmpty(returns.SkuId))
     //        {
     //            if (!order.LineItems.ContainsKey(returns.SkuId))
     //            {
     //                return false;
     //            }
     //            orderId = returns.OrderId + " 商品 " + order.LineItems[returns.SkuId].ItemDescription + " ";
     //        }
     //        builder.Append(" INSERT INTO Hishop_BalanceDetails(UserId,UserName,TradeDate,TradeType,Income");
     //        builder.AppendFormat(",Balance,Remark) select UserId,Username,getdate() as TradeDate,{0} as TradeType,", 7);
     //        builder.Append("@RefundMoney as Income,ISNULL((SELECT TOP 1 Balance from Hishop_BalanceDetails b");
     //        builder.AppendFormat(" WHERE b.UserId=a.UserId order by JournalNumber desc),0)+@RefundMoney as Balance,'订单{0}退货' as Remark ", orderId);
     //        builder.Append("FROM Hishop_Orders a WHERE OrderId = @OrderId;");
     //    }
     //}
     //DbCommand sqlStringCommand = this.database.GetSqlStringCommand(builder.ToString());
     //if (accept)
     //{
     //    this.database.AddInParameter(sqlStringCommand, "OrderStatus", DbType.Int32, 10);
     //    this.database.AddInParameter(sqlStringCommand, "HandleStatus", DbType.Int32, 1);
     //    this.database.AddInParameter(sqlStringCommand, "ItemStatus", DbType.Int32, 0x18);
     //}
     //else
     //{
     //    this.database.AddInParameter(sqlStringCommand, "OrderStatus", DbType.Int32, 3);
     //    this.database.AddInParameter(sqlStringCommand, "HandleStatus", DbType.Int32, 2);
     //    this.database.AddInParameter(sqlStringCommand, "ItemStatus", DbType.Int32, 0x19);
     //}
     //this.database.AddInParameter(sqlStringCommand, "OrderRefundMoney", DbType.Decimal, num2);
     //this.database.AddInParameter(sqlStringCommand, "RefundPoint", DbType.Int32, num);
     //this.database.AddInParameter(sqlStringCommand, "OrderId", DbType.String, returns.OrderId);
     //this.database.AddInParameter(sqlStringCommand, "Operator", DbType.String, returns.Operator);
     //this.database.AddInParameter(sqlStringCommand, "AdminRemark", DbType.String, returns.AdminRemark);
     //this.database.AddInParameter(sqlStringCommand, "HandleTime", DbType.DateTime, returns.HandleTime);
     //this.database.AddInParameter(sqlStringCommand, "RefundMoney", DbType.Decimal, RefundAmount);
     //this.database.AddInParameter(sqlStringCommand, "SkuId", DbType.String, returns.SkuId);
     //return (this.database.ExecuteNonQuery(sqlStringCommand) > 0);
     return(false);
 }