Exemplo n.º 1
0
 /// <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;
        }