/// <summary> /// 折扣 /// </summary> /// <param name="recordInfo"></param> public decimal Discount(ProcessRecord recordInfo, CRPreferentialDetails details) { decimal disMoney = 1; decimal.TryParse(details.PREFERENTIAL_CONTENT.ToString(), out disMoney); return(recordInfo.INOUT_RECODE.CHARGE_MONEY * (1 - disMoney)); }
/// <summary> /// 现金减免 /// </summary> /// <param name="recordInfo"></param> public decimal Discount(ProcessRecord recordInfo, CRPreferentialDetails details) { decimal disMoney = 0; decimal.TryParse(details.PREFERENTIAL_CONTENT.ToString(), out disMoney); return(disMoney); }
/// <summary> /// 计?算?优??惠Y值|ì /// </summary> /// <param name="recordInfo"></param> private void ReDiscount() { #region _____统a3计?优??惠Y信?息?é_____ decimal totalperMoney = 0; /////////////////手工优惠////////////////////////// decimal perMoney = 0; string Pident = "manual-0001"; decimal.TryParse(this.tbPreMoney.Text, out perMoney); ListDiscount.Remove(ListDiscount.Where(x => x.PREFERENTIA_IDENT == Pident).FirstOrDefault()); decimal tbChargeMoney = chargeMoney; if (perMoney > 0 && perMoney <= tbChargeMoney) { CRPreferentialDetails details = new CRPreferentialDetails(); details.PREFERENTIAL_NAME = "手工优惠"; details.MODEL_NAME = "现金优惠"; details.PREFERENTIA_IDENT = Pident; details.PREFERENTIAL_CONTENT = perMoney; details.PREFERENTIAL_MONEY = perMoney; details.PREFERENTIAL_TYPE = enumPreferentialType.CASH_TICKET; ListDiscount.Add(details); } foreach (var temp in ListDiscount.OrderBy(x => x.CR_LEVEL)) { var discount = EngineContext.Current.Resolve <IDiscount>(temp.PREFERENTIAL_TYPE.ToString()); decimal tempMoney = discount.Discount(recordInfo, temp); totalperMoney += tempMoney; temp.PREFERENTIAL_MONEY = tempMoney; } recordInfo.ListDiscount = ListDiscount; totalperMoney = totalperMoney > chargeMoney ? chargeMoney : totalperMoney; this.lbChargeMoney.Text = (chargeMoney - totalperMoney) < 0 ? "0" : (chargeMoney - totalperMoney).ToString("#0.00"); this.lbPreMoney.Text = (PreMoney + totalperMoney).ToString("#0.00"); #endregion #region ___优??惠Y打?¨°折?后¨?放¤?行D_____ //优惠后需要缴纳的费用小于零,直接放行 //if (recordInfo.INOUT_RECODE.CHARGE_MONEY <= 0) //{ // recordInfo.OpenGate = true; // this.Close(); //} dgDiscount.DataSource = ListDiscount.ToArray(); recordInfo.INOUT_RECODE.DUE_MONEY = decimal.Parse(this.lbDueMoney.Text.Trim()); recordInfo.INOUT_RECODE.CHARGE_MONEY = decimal.Parse(this.lbChargeMoney.Text.Trim()); recordInfo.INOUT_RECODE.PRE_MONEY = decimal.Parse(this.lbPreMoney.Text.Trim()); recordInfo.INOUT_RECODE.PRE_MONEY = recordInfo.INOUT_RECODE.PRE_MONEY > recordInfo.INOUT_RECODE.DUE_MONEY ? recordInfo.INOUT_RECODE.DUE_MONEY : recordInfo.INOUT_RECODE.PRE_MONEY; this.tbQRcode.Text = string.Empty; ////////////////免费放行////////////// if (recordInfo.IsFree) { CRPreferentialDetails details = new CRPreferentialDetails(); details.PREFERENTIAL_NAME = "手工全免"; details.MODEL_NAME = "现金优惠"; details.PREFERENTIA_IDENT = Pident; details.PREFERENTIAL_CONTENT = recordInfo.INOUT_RECODE.DUE_MONEY; details.PREFERENTIAL_MONEY = recordInfo.INOUT_RECODE.DUE_MONEY; details.PREFERENTIAL_TYPE = enumPreferentialType.CASH_TICKET; ListDiscount.Add(details); } #endregion }
public decimal Discount(ProcessRecord recordInfo, CRPreferentialDetails details) { return(details.PREFERENTIAL_CONTENT); }