示例#1
0
        protected void iBtnDownload_Click(object sender, ImageClickEventArgs e)
        {
            SearchTimeSheetsRequest request = new SearchTimeSheetsRequest(SearchType.QueryReport,
                                                                          false, hidOrderBy.Value, hidOrderDirection.Value);

            request.Keywords    = txtKeyword.Text;
            request.CurrentPage = anpTimesheet.CurrentPageIndex;
            request.PageCount   = anpTimesheet.PageSize;
            request.ProjectID   = int.Parse(ddlProject.SelectedValue);
            request.TicketID    = int.Parse(ddlTickets.SelectedValue);
            request.UserID      = int.Parse(ddlUsers.SelectedValue);

            request.StartDate = StartDate;
            request.EndDate   = EndDate;

            if (ddlProject.SelectedIndex != 0)
            {
                request.OrderExpression = "ticketcode, sheetdate";
                request.OrderDirection  = "asc";
            }
            SearchTimeSheetsResponse response = tsApp.QueryTimesheet(request);
            UserApplication          userApp  = new UserApplication();

            UsersEntity model  = userApp.GetUser(int.Parse(ddlUsers.SelectedValue));
            ExcelReport report = new ExcelReport();

            report.Generate(response.TimeSheetsList, model, ddlProject.SelectedItem.Text, DateTime.Now);
        }
示例#2
0
        public bool SendDailyMail(DateTime date, string office)
        {
            UserApplication userApp = new UserApplication();
            // sunneters
            List <UsersEntity> allUsers         = userApp.GetActiveUserList().FindAll(u => u.Role != RolesEnum.CLIENT && u.IsNotice);
            List <UsersEntity> currentUsers     = allUsers.FindAll(u => u.Office.ToUpper() == office.ToUpper());
            List <UsersEntity> noSubmittedUsers = new List <UsersEntity>();

            TimeSheetApplication    tsApp   = new TimeSheetApplication();
            SearchTimeSheetsRequest request = new SearchTimeSheetsRequest(SearchType.EmailNotice,
                                                                          false, "ModifiedOn", "ASC");

            request.Office     = office;
            request.SearchDate = date;
            SearchTimeSheetsResponse response = tsApp.QueryTimesheet(request);

            if (response.IsError)
            {
                WebLogAgent.Write("SunNet.PMNew.Web.Codes.EmailExecuter.SendDailyMail:136,GetDataError");
                return(false);
            }

            StringBuilder ticketHtml = new StringBuilder();

            StringBuilder usersTickets = new StringBuilder();

            if (response.TimeSheetsList.Count == 0)
            {
                // no timesheet,clear htmlTemplate nodes
                string emptyTmeplate = UserFirstRowSection;
                emptyTmeplate = UserContentSection;
            }
            foreach (UsersEntity user in currentUsers)
            {
                List <TimeSheetTicket> userTickets = response.TimeSheetsList.FindAll(tts => tts.UserID == user.ID);
                if (userTickets == null || userTickets.Count == 0)
                {
                    noSubmittedUsers.Add(user);

                    continue;
                }
                else
                {
                    usersTickets.Append(GetUserTicketsHtml(user, userTickets));
                }
            }
            ticketHtml.Append(GetDateSectionHtml(date, response.TimeSheetsList.Count + noSubmittedUsers.Count + 1));
            ticketHtml.Append(usersTickets);
            ticketHtml.Append(GetUserNoTicketsHtml(noSubmittedUsers));
            // 不需要没有写的汇总了,因为另一封已经包含了。
            //SendNoSubmitEmail(noSubmittedUsers, date);

            foreach (UsersEntity user in noSubmittedUsers)
            {
                SendNoticeToUser(user, date);
            }

            SendSubmittedEmail(ticketHtml.ToString(), date);
            return(true);
        }
示例#3
0
        protected void iBtnDownload_Click(object sender, EventArgs e)
        {
            SearchTimeSheetsRequest request = new SearchTimeSheetsRequest(SearchType.QueryReport,
                                                                          false, OrderBy, OrderDirection);

            request.Keywords    = txtKeyword.Text;
            request.CurrentPage = CurrentPageIndex;
            request.PageCount   = ReportPage.PageSize;
            request.CompanyID   = int.Parse(ddlCompanies.SelectedValue);
            request.Accounting  = int.Parse(dpAccounting.SelectedValue);
            request.ProjectID   = int.Parse(ddlProject.SelectedValue);
            request.TicketID    = int.Parse(ddlTickets.SelectedValue);
            request.UserID      = int.Parse(ddlUsers.SelectedValue);
            request.StartDate   = StartDate;
            request.EndDate     = EndDate;

            if (ddlProject.SelectedValue.ToString() != "0")
            {
                request.OrderExpression = "ticketcode, sheetdate";
                request.OrderDirection  = "asc";
            }

            SearchTimeSheetsResponse response = tsApp.QueryTimesheetsWithTickets(request);
            UserApplication          userApp  = new UserApplication();

            UsersEntity model  = userApp.GetUser(int.Parse(ddlUsers.SelectedValue));
            ExcelReport report = new ExcelReport();

            report.Generate(response.TimeSheetsList, response.TicketProjectsList, model, ddlProject.SelectedItem.Text, DateTime.Now);
        }
示例#4
0
        private void InitControl()
        {
            SearchTimeSheetsRequest request = new SearchTimeSheetsRequest(SearchType.QueryReport,
                                                                          true, OrderBy, OrderDirection);

            request.Keywords    = txtKeyword.Text;
            request.CurrentPage = CurrentPageIndex;
            request.PageCount   = ReportPage.PageSize;
            request.ProjectID   = int.Parse(ddlProject.SelectedValue);
            request.TicketID    = int.Parse(ddlTickets.SelectedValue);
            request.UserID      = int.Parse(ddlUsers.SelectedValue);
            request.StartDate   = StartDate;
            request.Accounting  = int.Parse(dpAccounting.SelectedItem.Value);
            request.CompanyID   = int.Parse(ddlCompanies.SelectedValue);
            request.EndDate     = EndDate;
            int proposalTrackerId = QS("WID", 0);

            if (proposalTrackerId > 0)
            {
                request.WID = proposalTrackerId;
            }
            SearchTimeSheetsResponse response = tsApp.QueryTimesheet(request);

            rptReportList.DataSource = response.TimeSheetsList;
            rptReportList.DataBind();

            ReportPage.RecordCount = response.ResultCount;
        }
示例#5
0
        public SearchTimeSheetsResponse QueryTimesheetsWithTickets(SearchTimeSheetsRequest request)
        {
            this.ClearBrokenRuleMessages();
            SearchTimeSheetsResponse response = mgr.QueryTimesheetsWithTickets(request);

            this.AddBrokenRuleMessages(mgr.BrokenRuleMessages);
            return(response);
        }
示例#6
0
        public SearchTimeSheetsResponse QueryTimesheetsWithTickets(SearchTimeSheetsRequest request)
        {
            this.ClearBrokenRuleMessages();
            SearchTimeSheetsResponse response = tsRepo.QueryTimesheetsWithTickets(request);

            if (response.IsError == true)
            {
                this.AddBrokenRuleMessage();
            }
            return(response);
        }
        private void InitControl()
        {
            SearchTimeSheetsRequest request = new SearchTimeSheetsRequest(SearchType.QueryReport, true, OrderBy, OrderDirection);

            request.CurrentPage = CurrentPageIndex;
            request.PageCount   = ReportPage.PageSize;
            request.ProjectID   = QS("project", 0);
            request.TicketID    = QS("ticket", 0);;
            request.StartDate   = QS("startdate", DateTime.MinValue);
            request.EndDate     = QS("enddate", DateTime.MinValue);
            request.UserID      = QS("user", 0);

            SearchTimeSheetsResponse response = tsApp.QueryTimesheet(request);

            rptReportList.DataSource = response.TimeSheetsList;
            rptReportList.DataBind();
            ReportPage.RecordCount = response.ResultCount;
        }
示例#8
0
        protected void iBtnDownload_Click(object sender, EventArgs e)
        {
            SearchTimeSheetsRequest request = new SearchTimeSheetsRequest(SearchType.QueryReport,
                                                                          false, OrderBy, OrderDirection);

            request.Keywords    = txtKeyword.Text;
            request.CurrentPage = CurrentPageIndex;
            request.PageCount   = ReportPage.PageSize;
            request.ProjectID   = int.Parse(ddlProject.SelectedValue);
            request.TicketID    = int.Parse(ddlTickets.SelectedValue);
            request.UserID      = UserInfo.ID;
            request.StartDate   = StartDate;
            request.EndDate     = EndDate;
            SearchTimeSheetsResponse response = tsApp.QueryTimesheet(request);

            ExcelReport report = new ExcelReport();

            report.Generate(response.TimeSheetsList, null, UserInfo, ddlProject.SelectedItem.Text, DateTime.Now);
        }
示例#9
0
        private void InitControl()
        {
            SearchTimeSheetsRequest request = new SearchTimeSheetsRequest(SearchType.QueryReport,
                                                                          true, OrderBy, OrderDirection);

            request.Keywords    = txtKeyword.Text;
            request.CurrentPage = CurrentPageIndex;
            request.PageCount   = ReportPage.PageSize;
            request.ProjectID   = int.Parse(ddlProject.SelectedValue);
            request.TicketID    = int.Parse(ddlTickets.SelectedValue);
            request.UserID      = UserInfo.ID;
            request.StartDate   = StartDate;
            request.EndDate     = EndDate;
            SearchTimeSheetsResponse response = tsApp.QueryTimesheet(request);

            rptReportList.DataSource = response.TimeSheetsList;
            rptReportList.DataBind();

            ReportPage.RecordCount = response.ResultCount;
        }
示例#10
0
        private void InitControl()
        {
            SearchTimeSheetsRequest request = new SearchTimeSheetsRequest(SearchType.QueryReport,
                                                                          true, hidOrderBy.Value, hidOrderDirection.Value);

            request.Keywords    = txtKeyword.Text;
            request.CurrentPage = anpTimesheet.CurrentPageIndex;
            request.PageCount   = anpTimesheet.PageSize;
            request.ProjectID   = int.Parse(ddlProject.SelectedValue);
            request.TicketID    = int.Parse(ddlTickets.SelectedValue);
            request.UserID      = int.Parse(ddlUsers.SelectedValue);

            request.StartDate = StartDate;
            request.EndDate   = EndDate;

            int workRequestId = QS("WID", 0);

            if (workRequestId > 0)
            {
                request.WID = workRequestId;
            }

            SearchTimeSheetsResponse response = tsApp.QueryTimesheet(request);

            //int workRequestId = QS("WID", 0);
            //if (workRequestId > 0)
            //{
            //    List<int> lstTicketIDs = new List<int>();
            //    List<string> lstStr = wrApp.GetAllRelationStringByWorkRequest(workRequestId);
            //    foreach (string str in lstStr)
            //    {
            //        lstTicketIDs.Add(Convert.ToInt32(str));
            //    }
            //    response.TimeSheetsList = response.TimeSheetsList.FindAll(x =>lstTicketIDs.Contains(x.TicketID));
            //}
            rptTimesheet.DataSource = response.TimeSheetsList;
            rptTimesheet.DataBind();

            anpTimesheet.RecordCount = response.ResultCount;
        }