static public int Authenticate(int UserId, int RmbNo, int PortalId) { StaffRmbDataContext d = new StaffRmbDataContext(); var rmb = from c in d.AP_Staff_Rmbs where c.RMBNo == RmbNo && c.PortalId == PortalId select c; if (rmb.Count() > 0) { if (rmb.First().UserId == UserId) { return(RmbAccess.Owner); } else if (rmb.First().ApprUserId == UserId) { return(RmbAccess.Approver); } else { var spouseId = StaffBrokerFunctions.GetSpouseId(UserId); if (rmb.First().UserId == spouseId) { return(RmbAccess.Spouse); } else { var team = from c in StaffBrokerFunctions.GetTeam(UserId) select c.UserID; string pcc = StaffBrokerFunctions.GetStaffMember(UserId).CostCenter; if (rmb.First().CostCenter == pcc) { if (team.Contains(rmb.First().UserId)) { return(RmbAccess.Approver); } } else { var depts = from c in StaffBrokerFunctions.GetDepartments(UserId) select c.CostCentre; if (depts.Contains(rmb.First().CostCenter)) { return(RmbAccess.Approver); } else if (team.Contains(rmb.First().UserId)) { return(RmbAccess.Leader); } } } } } return(RmbAccess.Denied); }
static public Approvers getAdvApprovers(AP_Staff_AdvanceRequest adv, double LargeTransaction, DotNetNuke.Entities.Users.UserInfo authUser, DotNetNuke.Entities.Users.UserInfo authAuthUser) { StaffBroker.StaffBrokerDataContext dStaff = new StaffBroker.StaffBrokerDataContext(); Approvers rtn = new Approvers(); var st = StaffBrokerFunctions.GetStaffMember((int)adv.UserId); rtn.Name = st.DisplayName; int SpouseId = StaffBrokerFunctions.GetSpouseId((int)adv.UserId); rtn.AmountSpecial = ((double)adv.RequestAmount) > LargeTransaction; rtn.SpouseSpecial = false; rtn.UserIds = new List <DotNetNuke.Entities.Users.UserInfo>(); var app2 = StaffBrokerFunctions.GetLeaders((int)adv.UserId, true); rtn.SpouseSpecial = (app2.Count() == 1 && ((app2.First() == SpouseId) || (app2.First() == (int)adv.UserId))); if (rtn.AmountSpecial || rtn.SpouseSpecial || app2.Count() == 0) { rtn.UserIds.Add(authUser.UserID == adv.UserId ? authAuthUser : authUser); if (app2.Contains((authUser.UserID == adv.UserId ? (authAuthUser.UserID) : authUser.UserID))) { rtn.AmountSpecial = false; } } else { foreach (int i in (from c in app2 where c != adv.UserId && c != SpouseId select c)) { rtn.UserIds.Add(DotNetNuke.Entities.Users.UserController.GetUserById(adv.PortalId, i)); } } return(rtn); }
static public Approvers getApprovers(AP_Staff_Rmb rmb, DotNetNuke.Entities.Users.UserInfo authUser, DotNetNuke.Entities.Users.UserInfo authAuthUser) { StaffBroker.StaffBrokerDataContext dStaff = new StaffBroker.StaffBrokerDataContext(); Approvers rtn = new Approvers(); var st = StaffBrokerFunctions.GetStaffMember(rmb.UserId); rtn.Name = st.DisplayName; int SpouseId = StaffBrokerFunctions.GetSpouseId(rmb.UserId); rtn.AmountSpecial = (from c in rmb.AP_Staff_RmbLines where c.LargeTransaction == true select c).Count() > 0; rtn.isDept = (rmb.CostCenter != st.CostCenter); rtn.SpouseSpecial = false; rtn.UserIds = new List <DotNetNuke.Entities.Users.UserInfo>(); if (rtn.isDept) { var cc = from c in dStaff.AP_StaffBroker_Departments where (c.CostCentre == rmb.CostCenter) && c.PortalId == rmb.PortalId select c; rtn.CCMSpecial = (from c in cc where ((c.CostCentreManager == null && c.CostCentreDelegate == null) == false) && ( ((c.CostCentreManager != rmb.UserId) && (c.CostCentreManager != SpouseId)) || ((c.CostCentreDelegate != rmb.UserId) && (c.CostCentreDelegate != SpouseId)) ) select c.CostCenterId).Count() == 0; if (rtn.CCMSpecial || rtn.AmountSpecial || rtn.SpouseSpecial) { rtn.UserIds.Add(authUser.UserID == rmb.UserId ? authAuthUser : authUser); if (cc.First().CostCentreManager == rtn.UserIds.First().UserID || cc.First().CostCentreDelegate == rtn.UserIds.First().UserID) { rtn.AmountSpecial = false; rtn.CCMSpecial = false; } } else { if (cc.First().CostCentreManager != rmb.UserId && cc.First().CostCentreManager != SpouseId && cc.First().CostCentreManager != null) { rtn.UserIds.Add(DotNetNuke.Entities.Users.UserController.GetUserById(rmb.PortalId, (int)cc.First().CostCentreManager)); } if (cc.First().CostCentreDelegate != rmb.UserId && cc.First().CostCentreDelegate != SpouseId && cc.First().CostCentreDelegate != null) { rtn.UserIds.Add(DotNetNuke.Entities.Users.UserController.GetUserById(rmb.PortalId, (int)cc.First().CostCentreDelegate)); } } if (cc.Count() > 0) { rtn.Name = cc.First().Name; } } else { rtn.CCMSpecial = false; var app2 = StaffBrokerFunctions.GetLeaders(rmb.UserId, true); rtn.SpouseSpecial = (app2.Count() == 1 && ((app2.First() == SpouseId) || (app2.First() == rmb.UserId))); if (rtn.AmountSpecial || rtn.SpouseSpecial || app2.Count() == 0) { rtn.UserIds.Add(authUser.UserID == rmb.UserId ? authAuthUser : authUser); if (app2.Contains(rtn.UserIds.First().UserID)) { rtn.AmountSpecial = false; } } else { foreach (int i in (from c in app2 where c != rmb.UserId && c != SpouseId select c)) { rtn.UserIds.Add(DotNetNuke.Entities.Users.UserController.GetUserById(rmb.PortalId, i)); } } } if (rtn.UserIds.Count() == 0) { rtn.UserIds.Add(authUser.UserID == rmb.UserId ? authAuthUser : authUser); } return(rtn); }