Inheritance: System.Data.Linq.DataContext
 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;
 }
Beispiel #5
0
        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);
            }
        }
Beispiel #6
0
        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;
        }
Beispiel #7
0
        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";
            }
        }