/// <summary> /// 保存退款信息 /// </summary> /// <param name="paymentId"></param> private void SavePaymentReturn(string paymentId) { IList <string> returnIDs = new List <string>(); To_PaymentReturn paymentReturn = new To_PaymentReturn(); paymentReturn.PaymentID = paymentId; if (hidPayReturn.Value.Trim().TrimEnd('@') != string.Empty) { IEnumerable <string> returnList = hidPayReturn.Value.Trim().TrimEnd('@').Split('@').Where(x => x.Trim() != string.Empty); if (returnList.Count() > 0) { foreach (string list in returnList) { string[] item = list.Split('$'); paymentReturn.orderRetID = int.Parse(item[0].Trim()); //订单退款信息明细表id if (!returnIDs.Contains(item[0].Trim())) { returnIDs.Add(item[0].Trim()); } paymentReturn.OrderNum = item[1].Trim(); //订单编号 paymentReturn.ShouldReturn = double.Parse(item[2].Trim()); //应退金额 paymentReturn.ReturnAmount = double.Parse(item[3].Trim()); //本次退付金额 To_PaymentReturnManager.addTo_PaymentReturn(paymentReturn); } } for (int i = 0; i < returnIDs.Count; i++) { if (returnIDs[i] != "") { double hasAmount = To_PaymentReturnManager.GetHasAmount(returnIDs[i]); //得到该退款信息明细表关联的所有退过款的金额 double shouldAmount = To_OrderRefunDetialManager.getTo_OrderRefunDetialById(int.Parse(returnIDs[i])).Money; //得到应退金额 string getstatus = ""; if (hasAmount == 0) { getstatus = "未退款"; } else if (shouldAmount > hasAmount) { getstatus = "部分退款"; } else { getstatus = "完成退款"; } To_OrderRefunDetialManager.updateDetialStatusAndMoney(returnIDs[i], getstatus, hasAmount.ToString()); } } } }
/// <summary> /// 得到可退款金额 /// </summary> /// <param name="money"></param> /// <param name="orderId"></param> /// <param name="payerId"></param> /// <returns></returns> protected string GetCanAmount(object money, object orderRetID) { double hasAmount = To_PaymentReturnManager.GetHasAmount(orderRetID.ToString()); double amount = double.Parse(money.ToString()); if (amount != 0) { return((amount - hasAmount).ToString("F2")); } else { return(amount.ToString()); } }
/// <summary> /// 得到已经退过款的金额 /// </summary> /// <param name="orderId"></param> /// <param name="payerId"></param> /// <returns></returns> protected string GetHasAmount(object orderRetID) { double hasAmount = To_PaymentReturnManager.GetHasAmount(orderRetID.ToString()); return(hasAmount.ToString("F2")); }