Exemple #1
0
        public Pay_Refund GetRefund(Pay_Order order, decimal refundMoney, string refundDesc)
        {
            var sql    = "select * from pay_refund where order_id=@orderid and status=1";
            var refund = Session.QueryFirst <Pay_Refund>(sql, new { orderId = order.Id });

            if (refund == null)
            {
                sql = "select isnull(sum(order_money),0) as refunded,count(*) as count " +
                      "from pay_refund where order_id=@orderid and status=2";
                var result = Session.QuerySingle <RefundedResult>(sql, new { orderId = order.Id });

                if (result.Refunded + refundMoney > order.Order_Money)
                {
                    throw new AceException($"退款金额大于支付金额!");
                }

                refund = new Pay_Refund();
                refund.InitializeId();
                refund.DCreate     = DateTime.Now;
                refund.Order_Id    = order.Id;
                refund.Order_SN    = $"{order.Order_SN}_{result.Count}";
                refund.Order_Money = refundMoney;
                refund.Order_Desc  = refundDesc;
                refund.State       = RefundState.Refunding;
                Session.Insert(refund);
            }

            return(refund);
        }
Exemple #2
0
 public Pay_Refund Refunded(Pay_Refund refund, string refundId, decimal refundMoney, string refundTime)
 {
     refund.DUpdate      = DateTime.Now;
     refund.Refund_Id    = refundId;
     refund.Refund_Money = refundMoney;
     refund.Refund_Time  = refundTime;
     Session.Update(refund);
     return(refund);
 }