Example #1
0
        /// <summary>
        /// ปรับค่า bfrmf เฉพาะกองพิเศษ โดยที่เมื่อมีการโอนออกจากผู้โอน ที่ agent และ fund เดียวกัน
        /// จำนวนโอนออกคิดเป็นสัดส่วนเทียบกับค่า bf
        /// </summary>
        /// <param name="traferOutData">ข้อมูลการโอนออกทังหมด</param>
        /// <param name="feeDateBefore">fee วันก่อนหน้าของ กอง และ ตัวแทนเดียวกัน</param>
        public void ReBfValueFromTranOut(List <OPNTTRAN> traferOutData, FeeAgentDaily feeDateBefore)
        {
            if (this.OnDateAgentFee.SettingOwner.FundOwner.IsExtraFund)
            {
                // ต้องเป็นกองพิเศษ
                if (this.UNIT_TRANOUT > 0 & this.UNIT_BF > 0)
                {
                    // หา mkt โอนออกมาให้ และ ต้องมีค่า bf
                    var mktTranOuts = traferOutData.Where(q => q.FUND_CODE == this.OnDateAgentFee.FUND_ID)
                                      .Where(q => q.BR_CODE_OLD == this.OnDateAgentFee.AGENT_ID)
                                      .Where(q => q.TRAN_DATE == this.OnDateAgentFee.FEE_DATE)
                                      .Where(q => q.MKT_CODE_OLD == this.MKT)
                                      .Where(q => q.SHARE_UNIT > 0)
                                      .ToList();

                    decimal BfSum = 0;
                    foreach (var itemTranOut in mktTranOuts)
                    {
                        var mktTranInCode           = itemTranOut.MKT_CODE;
                        var feeDailyBfFromMktTranIn = feeDateBefore.GetMarktingByCode(mktTranInCode);

                        if (feeDailyBfFromMktTranIn != null)
                        {
                            BfSum = BfSum + ((decimal)itemTranOut.SHARE_UNIT / (decimal)this.TOTAL_UNIT_ONGO_BEFORE_DATE) * this.UNIT_BF_BEFORE_DATE;
                        }
                    }

                    this.UNIT_BF = (this.UNIT_BF - BfSum) < 0 ? 0 : this.UNIT_BF - BfSum;
                }
            }
        }
Example #2
0
        /// <summary>
        ///  ปรับค่า bfrmf เฉพาะกองพิเศษ โดยที่เมื่อมีการโอนเข้าจากผู้โอน ที่ agent และ fund เดียวกัน ถ้าผู้โอนมีค่า bfrmf ต้องนำมาบวกค่า bf ให้กับ marketing คนนี้ด้วย
        ///  จำนวนโอนเข้าคิดเป็นสัดส่วนเทียบกับค่า bf
        /// </summary>
        /// <param name="traferInData">ข้อมูลการโอนเข้าทังหมด</param>
        /// <param name="feeDateBefore">fee วันก่อนหน้าของ กอง และ ตัวแทนเดียวกัน</param>
        public void ReBfValueFromTranIn(List <OPNTTRAN> traferInData, FeeAgentDaily feeDateBefore)
        {
            if (this.OnDateAgentFee.SettingOwner.FundOwner.IsExtraFund)
            {
                // ต้องเป็นกองพิเศษ
                if (this.UNIT_TRANIN > 0)
                {
                    // หา mkt โอนออกมาให้ ต้องมีค่า bf
                    var mktTranIns = traferInData.Where(q => q.FUND_CODE == this.OnDateAgentFee.FUND_ID)
                                     .Where(q => q.BR_CODE == this.OnDateAgentFee.AGENT_ID)
                                     .Where(q => q.TRAN_DATE == this.OnDateAgentFee.FEE_DATE)
                                     .Where(q => q.MKT_CODE == this.MKT)
                                     .Where(q => q.SHARE_UNIT > 0)
                                     .ToList();

                    decimal BfSum = 0;
                    foreach (var itemTranIn in mktTranIns)
                    {
                        var mktTranOutCode           = itemTranIn.MKT_CODE_OLD;
                        var feeDailyBfFromMktTranOut = feeDateBefore.GetMarktingByCode(mktTranOutCode);

                        if (feeDailyBfFromMktTranOut != null)
                        {
                            if (feeDailyBfFromMktTranOut.UNIT_BF > 0)
                            {
                                // คนโอนต้องมีค่า bf ถ้าไมมีก็ไม่จำเป็นต้องคำนวน
                                BfSum = BfSum + ((decimal)itemTranIn.SHARE_UNIT / (decimal)feeDailyBfFromMktTranOut.TOTAL_UNIT_ONGO) * feeDailyBfFromMktTranOut.UNIT_BF;
                            }
                        }
                    }

                    this.UNIT_BF = this.UNIT_BF + BfSum;
                }
            }
        }