public IEnumerable <BillViewModel> getFManagerBills(string username) { EmployeeRepository employeerepo = new EmployeeRepository(_context); BillFMRepository bfmrepo = new BillFMRepository(_context); List <BillViewModel> fmanagerBillslist = new List <BillViewModel>(0); var fmanagerbills = bfmrepo.GetAllByBillFMID(employeerepo.GetByEmpNo(username).Emp_ID); foreach (var billfm in fmanagerbills) { Bill_Detail billDetail = _context.Bill_Details.Find(billfm.Bill_ID); BillViewModel bvm = new BillViewModel(); Bill bill = _context.Bills.Find(billfm.Bill_ID); String manager = _context.Bill_Ms.Where(bm => bm.Bill_ID == billDetail.Bill_ID).Select(bmn => bmn.Manager.Emp_Name).Single(); //There will always be a Entry for a Bill. Just to double Check in case of Incosistent Data if (billDetail != null) { bvm.BillID = billfm.Bill_ID; bvm.BillAmount = billDetail.Bill_Amount; bvm.BillDate = billDetail.Bill_Date; bvm.BillStatus = billfm.Bill.Bill_Status; bvm.BillType = billDetail.Bill_Type; bvm.ModeOfPayment = billDetail.Bill_ModeOfPayment; bvm.FManager = billfm.FinanceManager.Emp_Name; bvm.Manager = manager; bvm.BillSCopy = (billDetail.Bill_have_SCopy) ? _context.Bill_SCopies.Find(bill.Bill_ID).SCopy : null; } fmanagerBillslist.Add(bvm); } return(fmanagerBillslist); }
public void NotificationOfApproval(Int64 bill_ID) { NotificationRepository ntf = new NotificationRepository(_context); Bill bill = new Bill(); bill = _context.Bills.Find(bill_ID); Notification _ntf = new Notification() { Emp_ID = bill.Emp_ID, Seen = false, Ntf_Body = "Bill Number " + bill.Bill_ID.ToString() + " has been approved", Ntf_Subject = "Approval of Bill", TimeStamp = DateTime.Now }; ntf.AddNotification(_ntf); Bill_FM bill_fm = new Bill_FM(); BillFMRepository bfm = new BillFMRepository(_context); bill_fm = bfm.GetByBillId(bill_ID); _ntf = new Notification(); _ntf.Emp_ID = bill_fm.Bill_FM_ID; _ntf.Ntf_Body = "New bill for financing has arrived"; _ntf.Ntf_Subject = "New Bill"; _ntf.TimeStamp = DateTime.Now; ntf.AddNotification(_ntf); return; }
public Boolean AlloteFinanceManager(Int64 bill_Id, String dept_name) { Department dept; DepartmentRepository _dept = new DepartmentRepository(_context); List <Employee> list; Bill_FM bill_fm = new Bill_FM(); dept = _dept.GetByDepartName(dept_name); list = _context.Employees.Where(a => a.Dept_ID == dept.Dept_ID).ToList(); var um = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new ApricotContext())); var im = new IdentityManager(); Employee emp_min_bill = new Employee(); foreach (var employee in list) { var userId = um.Users.First(u => u.UserName == employee.Emp_No).Id; var userroles = um.GetRoles(userId); int n = 1000000, k; bool inrole = false; foreach (var role in userroles) { if (role == "Finance Manager") { inrole = true; break; } } if (inrole == true) { if (n > (k = _context.Bill_FMs.Where(a => a.Bill_FM_ID == employee.Emp_ID).Count())) { n = k; emp_min_bill = employee; } } } bill_fm.Bill_FM_ID = emp_min_bill.Emp_ID; bill_fm.Bill_ID = bill_Id; BillFMRepository B = new BillFMRepository(_context); B.AddBillFM(bill_fm); return(false); }
public BillViewModel getBillDetail(Int64 id) { BillRepository billrepo = new BillRepository(_context); BillDetailRepository billdetailrepo = new BillDetailRepository(_context); BillMRepository billmrepo = new BillMRepository(_context); BillFMRepository billfmrepo = new BillFMRepository(_context); BillSCopyRepository billscopyrepo = new BillSCopyRepository(_context); BillViewModel bvm = new BillViewModel(); Bill bill = billrepo.GetByBillID(id); Bill_Detail billdetail = billdetailrepo.GetByBillID(id); Bill_M billmanager = billmrepo.GetByBillID(id); Bill_FM billfmanager = null; Bill_SCopy billscopy = null; if (bill.Bill_Status == ApricotEnums.BillSatusEnum.APPROVED || bill.Bill_Status == ApricotEnums.BillSatusEnum.CLOSED) { billfmanager = billfmrepo.GetByBillId(id); } if (billdetail.Bill_have_SCopy) { billscopy = billscopyrepo.GetByBillID(id); } bvm.BillID = bill.Bill_ID; bvm.BillStatus = bill.Bill_Status; bvm.BillAmount = billdetail.Bill_Amount; bvm.BillDate = billdetail.Bill_Date; bvm.BillSCopy = null; bvm.BillType = billdetail.Bill_Type; bvm.FManager = (billfmanager != null) ? billfmanager.FinanceManager.Emp_No : "Not Aviablable"; bvm.Manager = billmanager.Manager.Emp_Name; bvm.ModeOfPayment = billdetail.Bill_ModeOfPayment; return(bvm); }