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;
        }
        /// <summary>
        /// Add Bill ID And Corresponding Bill Finance Manager ID
        /// </summary>
        /// <param name="BillFM">Bill_FM</param>
        public void AddBillFM(Bill_FM BillFM)
        {
            if (BillFM == null)
            {
                throw new ArgumentNullException();
            }

            _context.Bill_FMs.Add(BillFM);

            _context.SaveChanges();
        }
예제 #3
0
        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 void NotificationofComment(Int64 billID, Int64 emp_ID)
        {
            Employee           emp, man, fin_man;
            EmployeeRepository _emp = new EmployeeRepository(_context);
            Bill bill = new Bill();

            bill = _context.Bills.Find(billID);
            emp  = new Employee();
            emp  = _emp.GetByEmpID(bill.Emp_ID);
            man  = new Employee();
            Bill_M billm = new Bill_M();

            billm   = _context.Bill_Ms.Where(a => a.Emp_ID == billID).Single();
            man     = _emp.GetByEmpID(billm.Emp_ID);
            fin_man = new Employee();
            Bill_FM billfm = new Bill_FM();

            billfm  = _context.Bill_FMs.Where(a => a.Bill_ID == billID).Single();
            fin_man = _emp.GetByEmpID(billfm.Bill_FM_ID);
            NotificationGenerationAfterComment(emp, man, fin_man, emp_ID, bill);
            return;
        }
        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);
        }