예제 #1
0
 public static bool ConfirmOrderFinish(OrderInfo order)
 {
     bool flag = false;
     if (order.CheckAction(OrderActions.BUYER_CONFIRM_GOODS))
     {
         flag = TradeProvider.Instance().ConfirmOrderFinish(order);
     }
     return flag;
 }
예제 #2
0
 public static bool ConfirmOrderFinish(OrderInfo order)
 {
     bool flag = false;
     if (order.CheckAction(OrderActions.BUYER_CONFIRM_GOODS))
     {
         order.OrderStatus = OrderStatus.Finished;
         order.FinishDate = new DateTime?(DateTime.Now);
         flag = new OrderDao().UpdateOrder(order, null);
     }
     return flag;
 }
예제 #3
0
 public static bool MondifyAddress(OrderInfo order)
 {
     ManagerHelper.CheckPrivilege(Privilege.EditOrders);
     if (order.CheckAction(OrderActions.MASTER_SELLER_MODIFY_DELIVER_ADDRESS))
     {
         bool flag = SalesProvider.Instance().SaveShippingAddress(order);
         if (flag)
         {
             EventLogs.WriteOperationLog(Privilege.EditOrders, string.Format(CultureInfo.InvariantCulture, "修改了订单“{0}”的收货地址", new object[] { order.OrderId }));
         }
         return flag;
     }
     return false;
 }
예제 #4
0
 public static bool ConfirmPay(OrderInfo order)
 {
     ManagerHelper.CheckPrivilege(Privilege.CofimOrderPay);
     bool flag = false;
     if (order.CheckAction(OrderActions.SELLER_CONFIRM_PAY))
     {
         flag = SalesProvider.Instance().ConfirmPay(order) > 0;
         if (flag)
         {
             SalesProvider.Instance().UpdatePayOrderStock(order.OrderId);
             SalesProvider.Instance().UpdateProductSaleCounts(order.LineItems);
             UpdateUserAccount(order);
             EventLogs.WriteOperationLog(Privilege.CofimOrderPay, string.Format(CultureInfo.InvariantCulture, "确认收款编号为\"{0}\"的订单", new object[] { order.OrderId }));
         }
     }
     return flag;
 }
예제 #5
0
 public static bool ConfirmOrderFinish(OrderInfo order)
 {
     ManagerHelper.CheckPrivilege(Privilege.EditOrders);
     bool flag = false;
     if (order.CheckAction(OrderActions.SELLER_FINISH_TRADE))
     {
         flag = SalesProvider.Instance().ConfirmOrderFinish(order);
         if (flag)
         {
             EventLogs.WriteOperationLog(Privilege.EditOrders, string.Format(CultureInfo.InvariantCulture, "完成编号为\"{0}\"的订单", new object[] { order.OrderId }));
         }
     }
     return flag;
 }
예제 #6
0
 public static bool CloseTransaction(OrderInfo order)
 {
     ManagerHelper.CheckPrivilege(Privilege.EditOrders);
     if (order.CheckAction(OrderActions.SELLER_CLOSE))
     {
         bool flag = SalesProvider.Instance().CloseTransaction(order);
         if (flag)
         {
             EventLogs.WriteOperationLog(Privilege.EditOrders, string.Format(CultureInfo.InvariantCulture, "关闭了订单“{0}”", new object[] { order.OrderId }));
         }
         return flag;
     }
     return false;
 }
예제 #7
0
 public static bool UpdateOrderShippingMode(OrderInfo order)
 {
     return (order.CheckAction(OrderActions.SUBSITE_SELLER_MODIFY_SHIPPING_MODE) && SubsiteSalesProvider.Instance().UpdateOrderShippingMode(order));
 }
예제 #8
0
 public static bool UserPayOrder(OrderInfo order, bool isBalancePayOrder)
 {
     bool flag = false;
     if (order.CheckAction(OrderActions.BUYER_PAY))
     {
         using (DbConnection connection = DatabaseFactory.CreateDatabase().CreateConnection())
         {
             connection.Open();
             DbTransaction dbTran = connection.BeginTransaction();
             try
             {
                 if (!TradeProvider.Instance().UserPayOrder(order, isBalancePayOrder, dbTran))
                 {
                     dbTran.Rollback();
                     return false;
                 }
                 if ((HiContext.Current.SiteSettings.IsDistributorSettings && (order.GroupBuyId <= 0)) && !PurchaseOrderProvider.CreateInstance().CreatePurchaseOrder(order, dbTran))
                 {
                     dbTran.Rollback();
                     return false;
                 }
                 flag = true;
                 dbTran.Commit();
             }
             catch
             {
                 dbTran.Rollback();
                 return false;
             }
             finally
             {
                 connection.Close();
             }
         }
         if (!flag)
         {
             return flag;
         }
         if (!HiContext.Current.SiteSettings.IsDistributorSettings)
         {
             TradeProvider.Instance().UpdateStockPayOrder(order.OrderId);
         }
         TradeProvider.Instance().UpdateProductSaleCounts(order.LineItems);
         if ((order.UserId == 0) || (order.UserId == 0x44c))
         {
             return flag;
         }
         IUser user = Users.GetUser(order.UserId, false);
         if (((user == null) || (user.UserRole != UserRole.Member)) && ((user == null) || (user.UserRole != UserRole.Underling)))
         {
             return flag;
         }
         Member member = user as Member;
         UserPointInfo point = new UserPointInfo();
         point.OrderId = order.OrderId;
         point.UserId = member.UserId;
         point.TradeDate = DateTime.Now;
         point.TradeType = UserPointTradeType.Bounty;
         point.Increased = new int?(order.GetTotalPoints());
         point.Points = order.GetTotalPoints() + member.Points;
         if ((point.Points > 0x7fffffff) || (point.Points < 0))
         {
             point.Points = 0x7fffffff;
         }
         TradeProvider.Instance().AddMemberPoint(point);
         int referralDeduct = HiContext.Current.SiteSettings.ReferralDeduct;
         if (((referralDeduct > 0) && member.ReferralUserId.HasValue) && (member.ReferralUserId.Value > 0))
         {
             IUser user2 = Users.GetUser(member.ReferralUserId.Value, false);
             if ((user2 != null) && ((user2.UserRole == UserRole.Member) || (user2.UserRole == UserRole.Underling)))
             {
                 Member member2 = user2 as Member;
                 if ((member.ParentUserId == member2.ParentUserId) && member2.IsOpenBalance)
                 {
                     decimal num2 = member2.Balance + ((order.GetTotal() * referralDeduct) / 100M);
                     BalanceDetailInfo balanceDetails = new BalanceDetailInfo();
                     balanceDetails.UserId = member2.UserId;
                     balanceDetails.UserName = member2.Username;
                     balanceDetails.TradeDate = DateTime.Now;
                     balanceDetails.TradeType = TradeTypes.ReferralDeduct;
                     balanceDetails.Income = new decimal?((order.GetTotal() * referralDeduct) / 100M);
                     balanceDetails.Balance = num2;
                     balanceDetails.Remark = string.Format("提成来自'{0}'的订单{1}", order.Username, order.OrderId);
                     PersonalProvider.Instance().AddBalanceDetail(balanceDetails);
                 }
             }
         }
         TradeProvider.Instance().UpdateUserAccount(order.GetTotal(), point.Points, order.UserId);
         int historyPoint = TradeProvider.Instance().GetHistoryPoint(member.UserId);
         TradeProvider.Instance().ChangeMemberGrade(member.UserId, member.GradeId, historyPoint);
         Users.ClearUserCache(user);
     }
     return flag;
 }
예제 #9
0
 public static bool UpdateOrderShippingMode(OrderInfo order)
 {
     ManagerHelper.CheckPrivilege(Privilege.EditOrders);
     if (order.CheckAction(OrderActions.MASTER_SELLER_MODIFY_SHIPPING_MODE))
     {
         bool flag = SalesProvider.Instance().UpdateOrderShippingMode(order);
         if (flag)
         {
             EventLogs.WriteOperationLog(Privilege.EditOrders, string.Format(CultureInfo.InvariantCulture, "修改了订单“{0}”的配送方式", new object[] { order.OrderId }));
         }
         return flag;
     }
     return false;
 }
예제 #10
0
 public static bool SendGoods(OrderInfo order)
 {
     bool flag = false;
     if (order.CheckAction(OrderActions.SELLER_SEND_GOODS))
     {
         order.OrderStatus = OrderStatus.SellerAlreadySent;
         flag = SubsiteSalesProvider.Instance().SendGoods(order) > 0;
     }
     return flag;
 }
예제 #11
0
 public static bool MondifyAddress(OrderInfo order)
 {
     return (order.CheckAction(OrderActions.SUBSITE_SELLER_MODIFY_DELIVER_ADDRESS) && SubsiteSalesProvider.Instance().SaveShippingAddress(order));
 }
예제 #12
0
 public static bool CreatePurchaseOrder(OrderInfo order)
 {
     if (order.CheckAction(OrderActions.SUBSITE_CREATE_PURCHASEORDER))
     {
         using (DbConnection connection = DatabaseFactory.CreateDatabase().CreateConnection())
         {
             connection.Open();
             DbTransaction dbTran = connection.BeginTransaction();
             try
             {
                 SubsiteSalesProvider provider = SubsiteSalesProvider.Instance();
                 PurchaseOrderInfo purchaseOrder = provider.ConvertOrderToPurchaseOrder(order);
                 if (!provider.CreatePurchaseOrder(purchaseOrder, dbTran))
                 {
                     dbTran.Rollback();
                     return false;
                 }
                 dbTran.Commit();
                 return true;
             }
             catch
             {
                 dbTran.Rollback();
                 return false;
             }
             finally
             {
                 connection.Close();
             }
         }
     }
     return false;
 }
예제 #13
0
 public static bool ConfirmPay(OrderInfo order)
 {
     if (order.CheckAction(OrderActions.SELLER_CONFIRM_PAY))
     {
         bool flag;
         using (DbConnection connection = DatabaseFactory.CreateDatabase().CreateConnection())
         {
             connection.Open();
             DbTransaction dbTran = connection.BeginTransaction();
             try
             {
                 SubsiteSalesProvider provider = SubsiteSalesProvider.Instance();
                 if (provider.ConfirmPay(order, dbTran) <= 0)
                 {
                     dbTran.Rollback();
                     return false;
                 }
                 if (order.GroupBuyId <= 0)
                 {
                     PurchaseOrderInfo purchaseOrder = provider.ConvertOrderToPurchaseOrder(order);
                     if (!provider.CreatePurchaseOrder(purchaseOrder, dbTran))
                     {
                         dbTran.Rollback();
                         return false;
                     }
                 }
                 dbTran.Commit();
                 flag = true;
             }
             catch
             {
                 dbTran.Rollback();
                 flag = false;
             }
             finally
             {
                 connection.Close();
             }
         }
         if (flag)
         {
             SubsiteSalesProvider.Instance().UpdateProductSaleCounts(order.LineItems);
             UpdateUserAccount(order);
         }
         return flag;
     }
     return false;
 }
예제 #14
0
 public static bool ConfirmOrderFinish(OrderInfo order)
 {
     return (order.CheckAction(OrderActions.SELLER_FINISH_TRADE) && SubsiteSalesProvider.Instance().ConfirmOrderFinish(order));
 }
예제 #15
0
 public static bool CloseTransaction(OrderInfo order)
 {
     return (order.CheckAction(OrderActions.SELLER_CLOSE) && SubsiteSalesProvider.Instance().CloseTransaction(order));
 }
예제 #16
0
 public static bool SendGoods(OrderInfo order)
 {
     ManagerHelper.CheckPrivilege(Privilege.OrderSendGoods);
     bool flag = false;
     if (order.CheckAction(OrderActions.SELLER_SEND_GOODS))
     {
         order.OrderStatus = OrderStatus.SellerAlreadySent;
         flag = SalesProvider.Instance().SendGoods(order) > 0;
         if (flag)
         {
             EventLogs.WriteOperationLog(Privilege.OrderSendGoods, string.Format(CultureInfo.InvariantCulture, "发货编号为\"{0}\"的订单", new object[] { order.OrderId }));
         }
     }
     return flag;
 }
예제 #17
0
 public static bool UpdateOrderAmount(OrderInfo order)
 {
     ManagerHelper.CheckPrivilege(Privilege.EditOrders);
     bool flag = false;
     if (order.CheckAction(OrderActions.SELLER_MODIFY_TRADE))
     {
         flag = SalesProvider.Instance().UpdateOrderAmount(order, null);
         if (flag)
         {
             EventLogs.WriteOperationLog(Privilege.EditOrders, string.Format(CultureInfo.InvariantCulture, "修改了编号为\"{0}\"订单的金额", new object[] { order.OrderId }));
         }
     }
     return flag;
 }
예제 #18
0
 public static bool UpdateOrderAmount(OrderInfo order)
 {
     return (order.CheckAction(OrderActions.SELLER_MODIFY_TRADE) && SubsiteSalesProvider.Instance().UpdateOrderAmount(order, null));
 }
예제 #19
0
 private void SetControl(OrderInfo order)
 {
     if (!order.CheckAction(OrderActions.SELLER_REJECT_REFUND))
     {
         base.GotoResourceNotFound();
     }
     else
     {
         lblTotalPrice.Money = order.GetTotal();
         Member user = Users.GetUser(order.UserId, false) as Member;
         if (user == null)
         {
             base.GotoResourceNotFound();
         }
         if (!user.IsOpenBalance)
         {
             rdolist.Items[1].Enabled = false;
             divBalance.Visible = true;
         }
         if (order.OrderStatus == OrderStatus.SellerAlreadySent)
         {
             lblDescription.InnerHtml = "退款金额不得大于订单总金额.已发货订单允许全额或部分退款,退款后订单自动变为交易成功状态。";
             lblTui.InnerHtml = "部分退款";
         }
         else
         {
             lblDescription.InnerHtml = "已付款等待发货订单只允许全额退款.团购订单若不是以团购失败结束,则会扣除违约金,退款后订单自动变为关闭状态";
             lblTui.InnerHtml = "全额退款";
             if ((order.GroupBuyId > 0) && (order.GroupBuyStatus != GroupBuyStatus.Failed))
             {
                 txtRefundTotal.Text = (order.GetTotal() - order.NeedPrice).ToString();
             }
             else
             {
                 txtRefundTotal.Text = order.GetTotal().ToString();
             }
             txtRefundTotal.Enabled = false;
         }
     }
 }
예제 #20
0
 public static bool UpdateOrderPaymentType(OrderInfo order)
 {
     return (order.CheckAction(OrderActions.SUBSITE_SELLER_MODIFY_PAYMENT_MODE) && SubsiteSalesProvider.Instance().UpdateOrderPaymentType(order));
 }