public void AllRmbs(int portalid, int tabmoduleid, int status) { if (isFinance(tabmoduleid)) { Item tree = new Item("All Staff"); if (status == RmbStatus.Submitted || status == RmbStatus.Processing || status == RmbStatus.Paid) { StaffRmbDataContext d = new StaffRmbDataContext(); foreach (AP_Staff_Rmb rmb in from c in d.AP_Staff_Rmbs where c.Status == status && c.PortalId == portalid select c) { DotNetNuke.Entities.Users.UserInfo staffMember = DotNetNuke.Entities.Users.UserController.GetUserById(portalid, rmb.UserId); string firstLetter = (staffMember.LastName!=null?staffMember.LastName.ToUpper().Substring(0, 1):"-"); Item letter = tree.Needs(firstLetter); Item staff = letter.Needs(staffMember.LastName!=null?(staffMember.LastName + ", " + staffMember.FirstName):staffMember.DisplayName); string id = rmb.RID.ToString().PadLeft(5, '0'); Item reimbursement = staff.Needs(id + " : " + (rmb.RmbDate == null ? "" : rmb.RmbDate.Value.ToShortDateString()) + " : " + rmb.SpareField1, false); //false means reverse sort if (rmb.PrivComment != null) { reimbursement.label += " *"; } reimbursement.setRmbNo(rmb.RMBNo.ToString()); } } var result = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(new Item[] { tree }); HttpContext.Current.Response.ContentType = "application/json"; HttpContext.Current.Response.Write(result); } }
//Constructor public ReceiptUploader() { _presenter = new ReceiptUploaderPresenter(this); StaffRmbDataContext d = new StaffRmbDataContext(); _rmbs = d.AP_Staff_Rmbs; _lines = d.AP_Staff_RmbLines; }
public void GetAccountNumbers(string term) { var result = new StaffRmbDataContext().AP_StaffBroker_CostCenters .Select(s => new { label = s.CostCentreCode + ":" + s.CostCentreName, value = s.CostCentreCode }) .Where(w => w.label.Contains(term)) .OrderBy(o => o.value); string json = JsonConvert.SerializeObject(result); HttpContext.Current.Response.ContentType = "application/json"; HttpContext.Current.Response.Write(json); }
public ReceiptUploaderPresenter(IReceiptUploader view) { _view = view; _view.InitializeEvent += InitializeEvent; _view.UploadEvent += UploadEvent; StaffRmbDataContext d = new StaffRmbDataContext(); _rmbs = d.AP_Staff_Rmbs; _lines = d.AP_Staff_RmbLines; _images = d.AP_Staff_RmbLine_Files; _log = d.AP_Staff_Rmb_Logs; }
public static int GetNewRID(int PortalId) { string NextRID = StaffBrokerFunctions.GetSetting("NextRID", PortalId); if (NextRID == "") { StaffRmbDataContext d = new StaffRmbDataContext(); var MaxRID = (from c in d.AP_Staff_Rmbs where c.PortalId == PortalId select c.RID); if (MaxRID.Count() == 0) { StaffBrokerFunctions.SetSetting("NextRID", "2", PortalId); return 1; } else { StaffBrokerFunctions.SetSetting("NextRID", (MaxRID.Max() + 1).ToString(), PortalId); return MaxRID.First(); } } else { StaffBrokerFunctions.SetSetting("NextRID", (Convert.ToInt32(NextRID) + 1).ToString(), PortalId); return Convert.ToInt32( NextRID); } }
public static int AuthenticateAdv(int UserId, int AdvanceId, int PortalId) { StaffRmbDataContext d = new StaffRmbDataContext(); var adv = from c in d.AP_Staff_AdvanceRequests where c.AdvanceId == AdvanceId && c.PortalId == PortalId select c; if (adv.Count() > 0) { if (adv.First().UserId == UserId) return RmbAccess.Owner; else if (adv.First().ApproverId == UserId) return RmbAccess.Approver; else { var spouseId = StaffBrokerFunctions.GetSpouseId(UserId); if (adv.First().UserId == spouseId) return RmbAccess.Spouse; else { var team = from c in StaffBrokerFunctions.GetTeam(UserId) select c.UserID; if (team.Contains((int)(adv.First().UserId)) ) return RmbAccess.Approver; } } } return RmbAccess.Denied; }
public static 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; }
protected void LogThis(int RID, short logType, String Message) { AP_Staff_Rmb_Log entry = new AP_Staff_Rmb_Log(); entry.Timestamp=DateTime.Now; entry.LogType=logType; entry.RID=RID; entry.Username = "******"; entry.Message = Message; StaffRmbDataContext d = new StaffRmbDataContext(); d.AP_Staff_Rmb_Logs.InsertOnSubmit(entry); d.SubmitChanges(); }
public void UploadEvent(object sender, MobileEventArgs args) { DateTime tokenTime = getTimeFromToken(args.token); int rmbNo = getRmbNoFromToken(args.token); if (tokenTime.AddMinutes(EXPIRE_MINUTES) <= DateTime.Now) { _view.Expire(); int RID = _rmbs.Where(a => a.RMBNo==rmbNo).SingleOrDefault().RID; LogThis(RID, 0, "Attempt to upload receipt with expired token: "+args.token + " to rmb #"+getRmbNoFromToken(args.token)+", line #"+getLineNoFromToken(args.token)+", time: "+getTimeFromToken(args.token).ToShortTimeString()); return; } int lineNo = getLineNoFromToken(args.token); AP_Staff_Rmb rmb = null; AP_Staff_RmbLine line = null; try { rmb = _rmbs.Where(a => a.SpareField4==args.token).Single(); if (rmb.RMBNo != rmbNo) throw new Exception(); line = _lines.Where(a => a.RmbLineNo == lineNo && a.RmbNo == rmbNo).Single(); } catch { } try // Upload { // initialize folder/permissions int recnum; try { recnum = _images.Where(a => a.RmbLineNo == lineNo && a.RMBNo == rmbNo).Select(a => a.RecNum).Max() + 1; } catch { // The above will fail for new lines. This statement should catch those try { recnum = _images.Where(a => a.RmbLineNo == null && a.RMBNo == rmbNo).Select(a => a.RecNum).Max() + 1; } catch { recnum = 1; } } IFileInfo file; string strUrl = ""; if (_testing) { file = new DotNetNuke.Services.FileSystem.FileInfo() { FileId = -1 }; } else { PortalSettings PS = (PortalSettings)HttpContext.Current.Items["PortalSettings"]; Filesystem.ensureFolderExists(PS.PortalId); IFolderInfo imageFolder = Filesystem.getImageFolder(rmb.UserId, PS.PortalId); Filesystem.checkFolderPermissions(PS.PortalId, imageFolder, rmb.UserId, null); //no approvers list sent because it is an async function string filename = "R" + rmbNo.ToString()+"L"+(lineNo<0?"New":lineNo.ToString()) + "Rec" + recnum.ToString() + ".png"; // save file to DNN database string base64Data = Regex.Match(_view.ImageData, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value; byte[] image_data = Convert.FromBase64String(base64Data); //byte[] image_data = _view.ImageFile; //_view.ImageUrl= "data:image/png;base64," + Convert.ToBase64String(image_data); if (image_data == null || image_data.Length == 0) return; MemoryStream image_stream = resizeImage(image_data); file = FileManager.Instance.AddFile(imageFolder, filename, image_stream, false); //true is for overwrite string URL = FileManager.Instance.GetUrl(file); string strPathAndQuery = HttpContext.Current.Request.Url.PathAndQuery; strUrl = HttpContext.Current.Request.Url.AbsoluteUri.Replace(strPathAndQuery, URL); } // link file to image AP_Staff_RmbLine_File image = new AP_Staff_RmbLine_File() { RMBNo = rmbNo, RecNum = recnum, FileId = file.FileId }; if (lineNo >= 0) image.RmbLineNo = lineNo; //A null RmbLineNo indicates that the line hasn't been saved yet image.URL = strUrl; StaffRmbDataContext d = new StaffRmbDataContext(); d.AP_Staff_RmbLine_Files.InsertOnSubmit(image); d.SubmitChanges(); LogThis(rmb.RID, 2, "Receipt image uploaded via mobile page"); _view.Message = "Image uploaded."; } catch (Exception ex) { LogThis(rmb.RID, 4, "Error saving receipt image via mobile page " + ex.Message + ex.StackTrace); _view.Message = "Image Upload Failed"; } }