Exemple #1
0
        public string GenerateBillBGWise(long BillGroupDetailId)
        {
            var result     = "Success";
            var billsToAdd = new List <Bill>();
            var bgDetail   = GetBillGroup(BillGroupDetailId);
            var monthYear  = bgDetail.BillMonth.ToString("00") + bgDetail.BillYear.ToString();
            var units      = from unit in UnitSummary
                             where unit.billgroupid == bgDetail.BillGroupId &&
                             unit.divisionid == bgDetail.DivisionId
                             select unit;
            var exist = (from bill in Bills
                         join ui in units
                         on bill.UnitId equals ui.id
                         where bill.MonthYear == monthYear
                         select ui).Any();

            if (exist)
            {
                return("Already Bill Generated for this Period.");
            }
            foreach (var unit in units.ToList())
            {
                billsToAdd.Add(GenerateBillForUnit(bgDetail, unit, monthYear));
            }
            Bills.AddRange(billsToAdd);
            SaveChanges();
            var bgd = (from bg in BillGroupDetail
                       where bg.Id == BillGroupDetailId
                       select bg).FirstOrDefault();

            bgd.Status = "Generated";
            BillGroupDetail.Update(bgd);
            SaveChanges();


            return(result);
        }