Example #1
0
        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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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;
                    }
                }
            }
        }