/// <summary> /// 若銀行手續費類型不為每筆總手續費時,分潤%設置為0 /// </summary> /// <param name="row"></param> private static void ResetRowPercent(BizCustomerFeeDetailModel row) { if (row.BankFeeType != BankFeeType.TotalFee) { row.IntroPercent = 0; } }
/// <summary> /// 設置費用 /// </summary> private static void SetFee(ReceiptBillModel receiptBill, BizCustomerSet bizCustomerSet, CollectionTypeSet collectionTypeSet) { CollectionTypeDetailModel collectionTypeDetailModel = collectionTypeSet.CollectionTypeDetail.FirstOrDefault(p => p.ChannelId.Equals(receiptBill.ChannelId) && (p.SRange <= receiptBill.PayAmount && p.ERange >= receiptBill.PayAmount)); BizCustomerFeeDetailModel bizCustomerFeeDetailModel = bizCustomerSet.BizCustomerFeeDetail.FirstOrDefault(p => p.ChannelGroupType.Equals(receiptBill.Channel.ChannelGroupType)); BizCustomerFeeDetailModel hiTrust = bizCustomerSet.BizCustomerFeeDetail.FirstOrDefault(p => p.BankFeeType.Equals(BankFeeType.Hitrust_ClearFee_CurMonth) || p.BankFeeType.Equals(BankFeeType.Hitrust_ClearFee_NextMonth)); receiptBill.ChargePayType = collectionTypeSet.CollectionType.ChargePayType; receiptBill.BankFeeType = bizCustomerFeeDetailModel.BankFeeType; if (receiptBill.BankFeeType.Equals(BankFeeType.TotalFee)) { switch (receiptBill.CollectionType.ChargePayType) { case ChargePayType.Deduction: { receiptBill.ThirdFee = FeeDeduct(bizCustomerFeeDetailModel.Fee, collectionTypeDetailModel.ChannelTotalFee, bizCustomerFeeDetailModel.IntroPercent); receiptBill.BankFee = bizCustomerFeeDetailModel.Fee - receiptBill.ThirdFee; } break; case ChargePayType.Increase: { receiptBill.ThirdFee = FeePlus(bizCustomerFeeDetailModel.Fee, bizCustomerFeeDetailModel.IntroPercent); receiptBill.BankFee = bizCustomerFeeDetailModel.Fee - receiptBill.ThirdFee; } break; } } else { receiptBill.BankFee = bizCustomerFeeDetailModel.Fee; receiptBill.ThirdFee = 0m; } receiptBill.ThirdFee = null != hiTrust ? hiTrust.IntroPercent : receiptBill.ThirdFee; receiptBill.ChannelFeedBackFee = collectionTypeDetailModel.ChannelFeedBackFee; receiptBill.ChannelRebateFee = collectionTypeDetailModel.ChannelRebateFee; receiptBill.ChannelFee = collectionTypeDetailModel.ChannelFee; receiptBill.ChannelTotalFee = collectionTypeDetailModel.ChannelTotalFee; receiptBill.TotalFee = receiptBill.BankFeeType.Equals(BankFeeType.TotalFee) ? bizCustomerFeeDetailModel.Fee : collectionTypeDetailModel.ChannelTotalFee; }