public FeeOngoAgent NewOngoDetail() { FeeOngoAgent newOngo = new FeeOngoAgent() { FAD_ID = this.FAD_ID, OnDateAgentFee = this, FEE_BY_LOT = 0, UNIT_BY_LOT = 0 }; this.OngoDetails.Add(newOngo); return(newOngo); }
/// <summary> /// คัดลอก Fee Ongo ทั้งหมด (LOT_DATE_START,LOT_DATE_END,UNIT_BY_LOT) /// </summary> /// <param name="feeDate"></param> /// <returns></returns> public List <FeeOngoAgent> DuplicateOngoDetails() { List <FeeOngoAgent> ongos = new List <FeeOngoAgent>(); foreach (var itemDetail in this.OngoDetails) { FeeOngoAgent newOngo = new FeeOngoAgent() { LOT_DATE_START = itemDetail.LOT_DATE_START, LOT_DATE_END = itemDetail.LOT_DATE_END, UNIT_BY_LOT = itemDetail.UNIT_BY_LOT, FEE_BY_LOT = 0 }; ongos.Add(newOngo); } return(ongos); }
/// <summary> /// ปรับ lot ongo ใหม่เทียบกับที่ตั้งค่าไว้ จะเพิ่มเฉพาะ lotdate ที่ตั้งค่ามีค่ามากกว่า lotdate ล่าสุดที่มีอยู่แล้ว /// ลบ Lot ที่ไม่มีอยู่ใน setting ทิ้ง /// </summary> /// <param name="lotDate"></param> /// <returns></returns> public void ReLotDateFromSetting() { if (this.SettingOwner != null) { var settingOngoInRange = this.SettingOwner.GetOngoLotDateLessThanByDate(this.FEE_DATE); if (settingOngoInRange.Any()) { // ลบ Lot ที่ไม่มีอยู่ใน setting ทิ้ง foreach (var itemOngo in this.OngoDetails) { if (!settingOngoInRange.Any(m => m.START_DATE == itemOngo.LOT_DATE_START & m.END_DATE == itemOngo.LOT_DATE_END)) { this.OngoDetails.Remove(itemOngo); } } // จะสนใจแต่ lot ตั้งค่าที่มีค่ามากกว่า lot date ที่ล่าสุดของที่มีอยู่ ถึงจะนำเอา DateTime lotdateMax = new DateTime(2010, 1, 1); if (this.OngoDetails.Any()) { lotdateMax = this.OngoDetails.Max(m => m.LOT_DATE_START); } var lotAdds = settingOngoInRange.Where(m => m.START_DATE > lotdateMax); foreach (var itemSettings in lotAdds) { FeeOngoAgent newOngo = this.NewOngoDetail(); newOngo.LOT_DATE_START = itemSettings.START_DATE; newOngo.LOT_DATE_END = itemSettings.END_DATE; } } } }