示例#1
0
        /// <summary>
        /// ทำการปรับ lot ตามที่ตั้งค่าไว้ ถ้าเป็นการคำนวนข้ามปีจะทำการ ship unit ให้ด้วย
        /// </summary>
        /// <param name="setting"></param>
        public void ReLotYearFormSetting()
        {
            if (this.OnDateAgentFee.SettingOwner != null)
            {
                // ควรมี lot เท่ากับ lot ที่มีการตั้งค่าไว้
                var settingYears = ((FEE_SETTING_TBANK)this.OnDateAgentFee.SettingOwner).SettingOngoYears;

                if (settingYears.Any())
                {
                    // เพิ่ม lot
                    var yearSettings = settingYears.Select(m => m.YearForResult).ToList();
                    var yearResults  = this.OnYears.Select(m => m.YEAR_ORDER).ToList();

                    // เอาเฉพาะปีที่มีการตั้งค่า แล้วไม่มีใน lot มาเพิ่ม lot เข้าไป
                    var addYears = yearSettings.Where(q => !yearResults.Contains(q)).ToList();
                    foreach (var year in addYears)
                    {
                        var newLotYear = NewOnYearDetail();
                        newLotYear.YEAR_ORDER = year;
                    }

                    // ลด lot ในกรณีที่มีการตั้งค่า แบบลดลงต้องเอา lot นั้นออกไปไม่งั้นจะมีการคิดค่า fee
                    var removeYears = yearResults.Where(q => !yearSettings.Contains(q)).ToList();
                    foreach (var year in removeYears)
                    {
                        FeeOngoOnYear itemYear = this.OnYears.Single(q => q.YEAR_ORDER == year);
                        this.OnYears.Remove(itemYear);
                    }
                }


                // ถ้าขึ้นปีใหม่ ทำการ ship unit ไปปีถัดไป
                if (this.OnYears.Any() & this.OnDateAgentFee.DiffFeeYear == 1)
                {
                    decimal unitTranfer = 0;
                    foreach (var itemYear in this.OnYears.OrderBy(m => m.YEAR_ORDER))
                    {
                        decimal temp = 0;
                        if (itemYear.YEAR_ORDER == "1")
                        {
                            unitTranfer           = itemYear.UNIT_BY_YEAR;
                            itemYear.UNIT_BY_YEAR = 0;
                        }
                        else
                        {
                            temp = itemYear.UNIT_BY_YEAR;
                            itemYear.UNIT_BY_YEAR = unitTranfer;
                            unitTranfer           = temp;
                        }
                    }
                }
            }
        }
示例#2
0
        public FeeOngoOnYear NewOnYearDetail()
        {
            FeeOngoOnYear newItem = new FeeOngoOnYear()
            {
                FEM_ID         = this.FEM_ID,
                OfMarketingFee = this,
                UNIT_BY_YEAR   = 0
            };

            this.OnYears.Add(newItem);

            return(newItem);
        }
示例#3
0
        public List <FeeOngoOnYear> DuplicateOnYearDetails()
        {
            List <FeeOngoOnYear> onyears = new List <FeeOngoOnYear>();

            foreach (var itemDetail in this.OnYears)
            {
                FeeOngoOnYear newItem = new FeeOngoOnYear()
                {
                    UNIT_BY_YEAR = itemDetail.UNIT_BY_YEAR,
                    YEAR_ORDER   = itemDetail.YEAR_ORDER
                };

                onyears.Add(newItem);
            }

            return(onyears);
        }