/// <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; } } } } }
public FeeOngoOnYear NewOnYearDetail() { FeeOngoOnYear newItem = new FeeOngoOnYear() { FEM_ID = this.FEM_ID, OfMarketingFee = this, UNIT_BY_YEAR = 0 }; this.OnYears.Add(newItem); return(newItem); }
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); }