Exemplo n.º 1
0
        public FEE_SETTING_UPFRONT_ONPAY NewUpFrontOnPay()
        {
            FEE_SETTING_UPFRONT_ONPAY NewData = new FEE_SETTING_UPFRONT_ONPAY();

            NewData.FES_ID       = this.FES_ID;
            NewData.DataStatus   = EnumDataStatus.NewData;
            NewData.SettingOwner = this;

            this.SettingUpFrontOnPays.Add(NewData);

            return(NewData);
        }
Exemplo n.º 2
0
        public decimal CalculateFeeUpFrontReward()
        {
            if (this.OnDateAgentFee.SettingOwner.AgentOwner.IsTBank)
            {
                // get setting
                var setting = this.OnDateAgentFee.SettingOwner;
                if (setting != null)
                {
                    // get rate onpay
                    FEE_SETTING_UPFRONT_ONPAY settingOnpay = ((FEE_SETTING_TBANK)setting).GetUpFrontOnPaySettingByCondition(this.FEE_DATE);
                    if (settingOnpay != null)
                    {
                        this.RATE_UPFRONT_ONPAY_USED = settingOnpay.RateMktCalculated;
                    }
                    else
                    {
                        this.RATE_UPFRONT_ONPAY_USED = 0m;
                    }

                    // get rate twealth
                    var settingTWealth = ((FEE_SETTING_TBANK)setting).GetUpFrontTWealth();
                    if (settingTWealth.Any())
                    {
                        this.RATE_UPFRONT_TWEALTH_USED = settingTWealth.First().RateMktCalculated; // จิงๆเป็น 1 ต่อ หนึ่ง แต่ออกแบบมาเผื่อไว้ก่อน
                    }
                    else
                    {
                        this.RATE_UPFRONT_TWEALTH_USED = 0m;
                    }

                    // calculate reward for each upfront
                    foreach (var itemUpFront in this.UpFrontDetails)
                    {
                        itemUpFront.ReLevelFromSetting();
                        itemUpFront.CalculateFeeOnpay();
                        itemUpFront.CalculateFeeReward();
                    }

                    this.TOTAL_FEE_UPFRONT_REWARD = this.UpFrontDetails.Sum(m => m.TOTAL_FEE_REWARD);
                }
            }

            return(this.TOTAL_FEE_UPFRONT_REWARD ?? 0);
        }