Example #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // 获取当前用户信息
        this.CurrentUser    = new LoginUser();
        this.iCurrentUserID = CurrentUser.iUserID;

        #region 页面重定向

        if (this.CurrentUser.sRoleName == "Executive" || this.CurrentUser.sRoleName == "Branch Manager")
        {
            try
            {
                this.Response.Redirect("DashBoardHome2.aspx");
            }
            catch
            {
            }
        }

        #endregion

        #region Get User Home Profile

        LPWeb.BLL.UserHomePref   UserHomePref1 = new LPWeb.BLL.UserHomePref();
        LPWeb.Model.UserHomePref UserHomePref2 = UserHomePref1.GetModel(this.iCurrentUserID);

        #endregion

        #region 角色权限-显示控制

        #region 设置是否显示Alert

        if (this.CurrentUser.userRole.OverdueTaskAlerts == true)
        {
            this.AlertWebPart1.Visible = true;
        }
        else
        {
            this.AlertWebPart1.Visible = false;
        }

        // User Home Profile
        if (UserHomePref2 != null)
        {
            if (UserHomePref2.OverDueTaskAlert == true)
            {
                this.AlertWebPart1.Visible = true;
            }
            else
            {
                this.AlertWebPart1.Visible = false;
            }
        }

        #endregion

        #region 设置是否显示Email Inbox

        if (this.CurrentUser.userRole.ExchangeInbox == true)
        {
            this.divEmailInbox.Visible = true;
        }
        else
        {
            this.divEmailInbox.Visible = false;
        }

        // User Home Profile
        if (UserHomePref2 != null)
        {
            if (UserHomePref2.ExchangeInbox == true)
            {
                this.divEmailInbox.Visible = true;
            }
            else
            {
                this.divEmailInbox.Visible = false;
            }
        }

        #endregion

        #region 设置是否显示Company Announcement

        //if (this.CurrentUser.userRole.Announcements == true)
        //{
        //    this.divCompanyAnn.Visible = true;
        //}
        //else
        //{
        //    this.divCompanyAnn.Visible = false;
        //}

        //// User Home Profile
        //if (UserHomePref2 != null)
        //{
        //    if (UserHomePref2.Announcements == true)
        //    {
        //        this.divCompanyAnn.Visible = true;
        //    }
        //    else
        //    {
        //        this.divCompanyAnn.Visible = false;
        //    }
        //}

        #endregion

        #region 设置是否显示Calendar

        if (this.CurrentUser.userRole.ExchangeCalendar == true)
        {
            this.divCalendar.Visible = true;
        }
        else
        {
            this.divCalendar.Visible = false;
        }

        // User Home Profile
        if (UserHomePref2 != null)
        {
            if (UserHomePref2.ExchangeCalendar == true)
            {
                this.divCalendar.Visible = true;
            }
            else
            {
                this.divCalendar.Visible = false;
            }
        }

        #endregion

        #region 设置是否显示User Goals

        if (this.CurrentUser.userRole.GoalsChart == true)
        {
            this.divUserGoals.Visible = true;
        }
        else
        {
            this.divUserGoals.Visible = false;
        }

        // User Home Profile
        if (UserHomePref2 != null)
        {
            if (UserHomePref2.GoalsChart == true)
            {
                this.divUserGoals.Visible = true;
            }
            else
            {
                this.divUserGoals.Visible = false;
            }
        }

        #endregion

        #region 设置是否显示Pipeline Summary

        if (this.CurrentUser.userRole.PipelineChart == true)
        {
            this.divPipelineAnalysis.Visible = true;
        }
        else
        {
            this.divPipelineAnalysis.Visible = false;
        }

        // User Home Profile
        if (UserHomePref2 != null)
        {
            if (UserHomePref2.PipelineChart == true)
            {
                this.divPipelineAnalysis.Visible = true;
            }
            else
            {
                this.divPipelineAnalysis.Visible = false;
            }
        }

        #endregion

        #region 设置是否显示filter

        if (this.divPipelineAnalysis.Visible == false &&
            this.divUserGoals.Visible == false)
        {
            this.divFilters.Visible = false;
        }

        #endregion

        #region UserHomePref.DashboardLastCompletedStages

        // StageFilter
        string sStageFilter = string.Empty;
        this.ddlStageFilter.Value = "CurrentStages";
        sStageFilter = "CurrentStages";

        if (UserHomePref2 != null && UserHomePref2.DashboardLastCompletedStages != null && UserHomePref2.DashboardLastCompletedStages == 1)
        {
            this.ddlStageFilter.Value = "LastCompletedStages";
            sStageFilter = "LastCompletedStages";
        }

        #endregion

        #region Quick Lead Form

        if (this.CurrentUser.QuickLeadForm == true)
        {
            this.divQuickLead.Visible = true;
        }
        else
        {
            this.divQuickLead.Visible = false;
        }

        #endregion

        #endregion

        string sErrorMsg = "Invalid query string, be ignored.";

        #region 获取页面参数

        int    iRegionID   = 0;
        int    iDivisionID = 0;
        string sRegionID   = string.Empty;
        string sDivisionID = string.Empty;

        string sBranchID = string.Empty;
        string sDateType = string.Empty;
        string sFromDate = string.Empty;
        string sToDate   = string.Empty;

        // Template_Stage.WorkflowType = Loan.Status
        string sWorkflowType = string.Empty;

        #region RegionID

        if (this.Request.QueryString["Region"] != null)
        {
            #region get region id

            string sRegionID_Encode = this.Request.QueryString["Region"].ToString();
            string sRegionID_Decode = Encrypter.Base64Decode(sRegionID_Encode);

            if (sRegionID_Decode == sRegionID_Encode)
            {
                PageCommon.WriteJsEnd(this, sErrorMsg, "window.location.href = window.location.pathname");
            }
            bool IsValid = Regex.IsMatch(sRegionID_Decode, @"^(-)?\d+$");
            if (IsValid == false)
            {
                PageCommon.WriteJsEnd(this, sErrorMsg, "window.location.href = window.location.pathname");
            }

            sRegionID = sRegionID_Decode;
            iRegionID = Convert.ToInt32(sRegionID_Decode);

            #endregion
        }

        #endregion

        #region DivisionID

        if (this.Request.QueryString["Division"] != null)
        {
            #region get division id

            string sDivisionID_Encode = this.Request.QueryString["Division"].ToString();
            string sDivisionID_Decode = Encrypter.Base64Decode(sDivisionID_Encode);

            if (sDivisionID_Decode == sDivisionID_Encode)
            {
                PageCommon.WriteJsEnd(this, sErrorMsg, "window.location.href = window.location.pathname");
            }
            bool IsValid = Regex.IsMatch(sDivisionID_Decode, @"^(-)?\d+$");
            if (IsValid == false)
            {
                PageCommon.WriteJsEnd(this, sErrorMsg, "window.location.href = window.location.pathname");
            }

            sDivisionID = sDivisionID_Decode;
            iDivisionID = Convert.ToInt32(sDivisionID_Decode);

            #endregion
        }

        #endregion

        #region BranchID

        if (this.Request.QueryString["Branch"] != null)
        {
            string sBranch_Encode = this.Request.QueryString["Branch"].ToString();
            sBranchID = Encrypter.Base64Decode(sBranch_Encode);
            if (sBranch_Encode == sBranchID)
            {
                PageCommon.WriteJsEnd(this, sErrorMsg, "window.location.href = window.location.pathname");
            }
            bool IsValid = Regex.IsMatch(sBranchID, @"^(-)?\d+$");
            if (IsValid == false)
            {
                PageCommon.WriteJsEnd(this, sErrorMsg, "window.location.href = window.location.pathname");
            }
        }

        #endregion

        #region Date Type

        if (this.Request.QueryString["DateType"] != null)
        {
            string sDateType_Encode = this.Request.QueryString["DateType"].ToString();
            sDateType = Encrypter.Base64Decode(sDateType_Encode);
            if (sDateType != "CloseDate" && sDateType != "OpenDate")
            {
                PageCommon.WriteJsEnd(this, sErrorMsg, "window.location.href = window.location.pathname");
            }
        }
        else
        {
            sDateType = "CloseDate";
        }

        #endregion

        #region FromDate

        if (this.Request.QueryString["FromDate"] != null)
        {
            string sFromDate_Encode = this.Request.QueryString["FromDate"].ToString();
            sFromDate = Encrypter.Base64Decode(sFromDate_Encode);
            if (sFromDate_Encode == sFromDate)
            {
                PageCommon.WriteJsEnd(this, sErrorMsg, "window.location.href = window.location.pathname");
            }
        }

        #endregion

        #region ToDate

        if (this.Request.QueryString["ToDate"] != null)
        {
            string sToDate_Encode = this.Request.QueryString["ToDate"].ToString();
            sToDate = Encrypter.Base64Decode(sToDate_Encode);
            if (sToDate_Encode == sToDate)
            {
                PageCommon.WriteJsEnd(this, sErrorMsg, "window.location.href = window.location.pathname");
            }
        }

        #endregion

        #region Workflow Type

        if (this.Request.QueryString["WorkflowType"] != null)
        {
            string sWorkflowType_Encode = this.Request.QueryString["WorkflowType"].ToString();
            sWorkflowType = Encrypter.Base64Decode(sWorkflowType_Encode);
            if (sWorkflowType != "Processing" && sWorkflowType != "Prospect" && sWorkflowType != "Archived")
            {
                PageCommon.WriteJsEnd(this, sErrorMsg, "window.location.href = window.location.pathname");
            }
        }
        else
        {
            sWorkflowType = "Processing";
        }

        #endregion

        #region StageFilter

        if (this.Request.QueryString["StageFilter"] != null)
        {
            sStageFilter = this.Request.QueryString["StageFilter"].ToString();

            if (sStageFilter != "CurrentStages")
            {
                sStageFilter = "LastCompletedStages";
            }
        }

        #endregion


        #endregion

        #region load filters

        DataSet OrganFilters = PageCommon.GetOrganFilter(iRegionID, iDivisionID);

        // region filter
        DataTable RegionListData = OrganFilters.Tables["Regions"];
        this.ddlRegions.DataSource = RegionListData;
        this.ddlRegions.DataBind();

        // division filter
        DataTable DivisionListData = OrganFilters.Tables["Divisions"];
        this.ddlDivisions.DataSource = DivisionListData;
        this.ddlDivisions.DataBind();

        // branch filter
        DataTable BranchListData = OrganFilters.Tables["Branches"];
        this.ddlBranches.DataSource = BranchListData;
        this.ddlBranches.DataBind();

        #endregion

        #region Build Search Conditions

        string sWhere = string.Empty;

        // Loans.Status
        if (sWorkflowType == "Archived")
        {
            sWhere += " and (b.Status!='Processing') and (b.Status!='Prospect')";
            //CR063 : Remove the “Suspended” status in the list of the “Archived Loans” status
            sWhere += " AND (b.Status != 'Suspended')";
        }
        else
        {
            sWhere += " and (b.Status='" + sWorkflowType + "')";
        }

        if (sWorkflowType == "Prospect")
        {
            sWhere += " and (b.ProspectLoanStatus='Active')";
        }

        if (sRegionID != string.Empty)
        {
            sWhere += " and (a.RegionID = " + sRegionID + ")";
        }

        if (sDivisionID != string.Empty)
        {
            sWhere += " and (a.DivisionID = " + sDivisionID + ")";
        }

        if (sBranchID != string.Empty)
        {
            sWhere += " and (a.BranchID = " + sBranchID + ")";
        }

        if (sDateType != string.Empty)
        {
            #region FromDate and ToDate

            DateTime?FromDate = null;
            DateTime?ToDate   = null;

            if (sFromDate != string.Empty)
            {
                DateTime FromDate1;
                bool     IsDate1 = DateTime.TryParse(sFromDate, out FromDate1);
                if (IsDate1 == true)
                {
                    FromDate = FromDate1;
                }
            }

            if (sToDate != string.Empty)
            {
                DateTime ToDate1;
                bool     IsDate2 = DateTime.TryParse(sToDate, out ToDate1);
                if (IsDate2 == true)
                {
                    ToDate = ToDate1;
                }
            }

            string sFiledName = string.Empty;
            if (sDateType == "CloseDate")
            {
                sFiledName = "b.LastStageComplDate";
            }
            else
            {
                sFiledName = "b.LastStageComplDate";
            }

            sWhere += SqlTextBuilder.BuildDateSearchCondition(sFiledName, FromDate, ToDate);

            #endregion
        }

        #endregion

        #region Pipeline Summary

        #region get stage template list

        // loan manager
        LPWeb.BLL.Loans LoanManager = new LPWeb.BLL.Loans();

        if (sWorkflowType == "Archived")
        {
            #region init LoanAnalysisData

            this.LoanAnalysisData = new DataTable();
            this.LoanAnalysisData.Columns.Add("StageName", typeof(string));
            this.LoanAnalysisData.Columns.Add("StageAlias", typeof(string));
            this.LoanAnalysisData.Columns.Add("Href", typeof(string));
            this.LoanAnalysisData.Columns.Add("Amount", typeof(decimal));
            this.LoanAnalysisData.Columns.Add("LoanCounts", typeof(int)); //gdc CR40

            DataRow ClosedRow = this.LoanAnalysisData.NewRow();
            ClosedRow["StageName"]  = "Closed";
            ClosedRow["StageAlias"] = "Closed";
            ClosedRow["Href"]       = string.Empty;
            ClosedRow["Amount"]     = decimal.Zero;
            ClosedRow["LoanCounts"] = decimal.Zero;//gdc CR40
            this.LoanAnalysisData.Rows.Add(ClosedRow);

            DataRow CanceledRow = this.LoanAnalysisData.NewRow();
            CanceledRow["StageName"]  = "Canceled";
            CanceledRow["StageAlias"] = "Canceled";
            CanceledRow["Href"]       = string.Empty;
            CanceledRow["Amount"]     = decimal.Zero;
            CanceledRow["LoanCounts"] = decimal.Zero;//gdc CR40
            this.LoanAnalysisData.Rows.Add(CanceledRow);

            DataRow DeniedRow = this.LoanAnalysisData.NewRow();
            DeniedRow["StageName"]  = "Denied";
            DeniedRow["StageAlias"] = "Denied";
            DeniedRow["Href"]       = string.Empty;
            DeniedRow["Amount"]     = decimal.Zero;
            DeniedRow["LoanCounts"] = decimal.Zero;//gdc CR40
            this.LoanAnalysisData.Rows.Add(DeniedRow);

            //CR063 : Remove the “Suspended” status in the list of the “Archived Loans” status
            //DataRow SuspendedRow = this.LoanAnalysisData.NewRow();
            //SuspendedRow["StageName"] = "Suspended";
            //SuspendedRow["StageAlias"] = "Suspended";
            //SuspendedRow["Href"] = string.Empty;
            //SuspendedRow["Amount"] = decimal.Zero;
            //SuspendedRow["LoanCounts"] = decimal.Zero;//gdc CR40
            //this.LoanAnalysisData.Rows.Add(SuspendedRow);

            #endregion

            #region 添加Uncategorized分类

            DataRow UncategorizedRow = this.LoanAnalysisData.NewRow();
            UncategorizedRow["StageName"]  = "Uncategorized";
            UncategorizedRow["StageAlias"] = "Uncategorized";
            UncategorizedRow["Href"]       = string.Empty;
            UncategorizedRow["Amount"]     = decimal.Zero;
            UncategorizedRow["LoanCounts"] = decimal.Zero;//gdc CR40

            this.LoanAnalysisData.Rows.Add(UncategorizedRow);

            #endregion
        }
        else
        {
            string sSql2 = "select Name as StageName, Alias as StageAlias, '' as Href, 0.00 as Amount,0 as LoanCounts  from Template_Stages "
                           + "where WorkflowType=@WorkflowType and [Enabled]=1 order by SequenceNumber";
            SqlCommand SqlCmd2 = new SqlCommand(sSql2);
            DbHelperSQL.AddSqlParameter(SqlCmd2, "@WorkflowType", sWorkflowType);
            this.LoanAnalysisData = DbHelperSQL.ExecuteDataTable(SqlCmd2);

            #region 如果Lead,添加Uncategorized分类

            if (sWorkflowType == "Prospect")
            {
                DataRow NewStageTempRow = this.LoanAnalysisData.NewRow();
                NewStageTempRow["StageName"]  = "Uncategorized";
                NewStageTempRow["StageAlias"] = "Uncategorized";
                NewStageTempRow["Href"]       = string.Empty;
                NewStageTempRow["Amount"]     = decimal.Zero;
                NewStageTempRow["LoanCounts"] = decimal.Zero; //gdc CR40

                this.LoanAnalysisData.Rows.Add(NewStageTempRow);
            }

            #endregion
        }

        #endregion

        #region get user loan list

        string sStageField = string.Empty;

        if (sStageFilter == "CurrentStages")
        {
            sStageField = "b.Stage";
        }
        else
        {
            sStageField = "b.LastCompletedStage";
        }

        //string sSqlx1 = string.Format("select {0} as Stage, b.Amount as Amount from lpfn_GetUserLoans2({1}, {2}) as a inner join V_ProcessingPipelineInfo as b on a.LoanID = b.FileId ", sStageField, iCurrentUserID, (this.CurrentUser.bAccessOtherLoans)?1:0)
        //              + "where (1=1) " + sWhere;
        string sSqlx1 = "select " + sStageField + " as Stage, b.Amount as Amount from lpfn_GetUserLoans(" + this.iCurrentUserID + ") as a inner join V_ProcessingPipelineInfo as b on a.LoanID = b.FileId "
                        + "where (1=1) " + sWhere;
        DataTable UserLoanList = LPWeb.DAL.DbHelperSQL.ExecuteDataTable(sSqlx1);

        #endregion

        #region set Amount and Href
        foreach (DataRow LoanAnaylysisRow in this.LoanAnalysisData.Rows)
        {
            string sStageName  = LoanAnaylysisRow["StageName"].ToString();
            string sStageAlias = LoanAnaylysisRow["StageAlias"] == DBNull.Value ? LoanAnaylysisRow["StageName"].ToString() : LoanAnaylysisRow["StageAlias"].ToString();
            if (sStageName == "Uncategorized")
            {
                #region Amount

                string sSqlx10 = string.Empty;
                if (sWorkflowType == "Prospect")
                {
                    sSqlx10 = "select isnull(SUM(b.Amount),0.00) as TotalAmount,count(1) as Total  from lpfn_GetUserLoans(" + this.iCurrentUserID + ") as a inner join V_ProcessingPipelineInfo as b on a.LoanID=b.FileId "
                              + "where (select COUNT(1) from LoanStages where FileId=a.LoanID)=0 " + sWhere;
                }
                else if (sWorkflowType == "Archived")
                {
                    //string sWhere10 = sWhere.Replace(" and (b.Status!='Processing') and (b.Status!='Prospect')", " and b.Status='Uncategorized Archive'");
                    //CR063 : Remove the “Suspended” status in the list of the “Archived Loans” status
                    string sWhere10 = sWhere.Replace(" and (b.Status!='Processing') and (b.Status!='Prospect') AND (b.Status != 'Suspended')", " and b.Status='Uncategorized Archive'");

                    sSqlx10 = "select isnull(SUM(b.Amount),0.00) as TotalAmount,count(1) as Total   from lpfn_GetUserLoans(" + this.iCurrentUserID + ") as a inner join V_ProcessingPipelineInfo as b on a.LoanID=b.FileId "
                              + "where 1=1 " + sWhere10;
                }

                //object oSum = LPWeb.DAL.DbHelperSQL.ExecuteScalar(sSqlx10);
                //decimal dSum = oSum == DBNull.Value ? decimal.Zero : Convert.ToDecimal(oSum);
                //LoanAnaylysisRow["Amount"] = dSum;


                decimal dSum  = 0;
                int     Total = 0;

                var dt = LPWeb.DAL.DbHelperSQL.ExecuteDataTable(sSqlx10);
                if (dt.Rows.Count > 0)
                {
                    dSum  = dt.Rows[0]["TotalAmount"] == DBNull.Value ? decimal.Zero : Convert.ToDecimal(dt.Rows[0]["TotalAmount"]);
                    Total = dt.Rows[0]["Total"] == DBNull.Value ? 0 : Convert.ToInt32(dt.Rows[0]["Total"]);
                }

                LoanAnaylysisRow["Amount"]     = dSum;
                LoanAnaylysisRow["LoanCounts"] = Total;

                #endregion

                #region Href

                string sPipelineUrl = string.Empty;
                if (sWorkflowType == "Prospect")
                {
                    string sAliasString = this.BuildQueryString_PipelineSummary(sRegionID, sDivisionID, sBranchID, sDateType, sFromDate, sToDate, sWorkflowType, sStageAlias, sStageFilter);
                    sPipelineUrl = "Pipeline/ProspectPipelineSummaryLoan.aspx?q=" + Encrypter.Base64Encode(sAliasString);
                }
                else if (sWorkflowType == "Archived")
                {
                    string sAliasString = this.BuildQueryString_PipelineSummary(sRegionID, sDivisionID, sBranchID, sDateType, sFromDate, sToDate, sStageAlias, string.Empty, sStageFilter);
                    sPipelineUrl = "Pipeline/ProcessingPipelineSummary.aspx?q=" + Encrypter.Base64Encode(sAliasString);
                }

                LoanAnaylysisRow["Href"] = sPipelineUrl;

                #endregion
            }
            else
            {
                #region Amount

                object oLoanAmount = null;
                //oLoanAmount = UserLoanList.Compute("Sum(Amount)", "Stage='" + sStageName + "'");
                oLoanAmount = UserLoanList.Compute("Sum(Amount)", "Stage='" + sStageAlias + "'");

                //gdc CR40
                object oLoanTotal = null;
                oLoanTotal = UserLoanList.Compute("Count(Amount)", "Stage='" + sStageAlias + "'");


                decimal dLoanAmount = decimal.Zero;
                int     iLoanTotal  = 0;

                if ((oLoanAmount != null) && (oLoanAmount != DBNull.Value))
                {
                    dLoanAmount = Convert.ToDecimal(oLoanAmount, null);
                }

                //gdc CR40
                if ((oLoanTotal != null) && (oLoanTotal != DBNull.Value))
                {
                    iLoanTotal = Convert.ToInt32(oLoanTotal, null);
                }

                LoanAnaylysisRow["Amount"]     = dLoanAmount;
                LoanAnaylysisRow["LoanCounts"] = iLoanTotal; //gdc CR40
                #endregion

                #region Href

                string sPipelineUrl = string.Empty;
                if (sWorkflowType == "Processing")
                {
                    string sAliasString = this.BuildQueryString_PipelineSummary(sRegionID, sDivisionID, sBranchID, sDateType, sFromDate, sToDate, sWorkflowType, sStageAlias, sStageFilter);
                    sPipelineUrl = "Pipeline/ProcessingPipelineSummary.aspx?q=" + Encrypter.Base64Encode(sAliasString);
                }
                else if (sWorkflowType == "Prospect")
                {
                    string sAliasString = this.BuildQueryString_PipelineSummary(sRegionID, sDivisionID, sBranchID, sDateType, sFromDate, sToDate, sWorkflowType, sStageAlias, sStageFilter);
                    sPipelineUrl = "Pipeline/ProspectPipelineSummaryLoan.aspx?q=" + Encrypter.Base64Encode(sAliasString);
                }
                else if (sWorkflowType == "Archived")
                {
                    string sAliasString = this.BuildQueryString_PipelineSummary(sRegionID, sDivisionID, sBranchID, sDateType, sFromDate, sToDate, sStageAlias, string.Empty, sStageFilter);
                    sPipelineUrl = "Pipeline/ProcessingPipelineSummary.aspx?q=" + Encrypter.Base64Encode(sAliasString);
                }

                string sHref = sPipelineUrl;
                LoanAnaylysisRow["Href"] = sHref;

                #endregion
            }
        }
        #endregion

        this.rptLoanAnalysis.DataSource = this.LoanAnalysisData;
        this.rptLoanAnalysis.DataBind();
        #endregion

        #region peter's codes

        string strRootUrl = "";
        if (null != ConfigurationManager.AppSettings["WPOWARootUrl"])
        {
            strRootUrl = ConfigurationManager.AppSettings["WPOWARootUrl"];
        }
        try
        {
            OWAInboxPart myInbox = new OWAInboxPart();
            myInbox.OWAServerAddressRoot = strRootUrl;
            myInbox.ViewName             = ConfigurationManager.AppSettings["WPOWAInboxViewName"];
            this.phInbox.Controls.Add(myInbox);
        }
        catch (Exception ex)
        {
            Label lbl = new Label();
            lbl.Text = "Failed to load Webpart OWAInbox error: " + ex.Message;
            this.phInbox.Controls.Add(lbl);
            LPLog.LogMessage(LogType.Logerror, "Failed to load Webpart OWAInbox error: " + ex.Message);
        }
        try
        {
            OWACalendarPart myCalendar = new OWACalendarPart();
            myCalendar.OWAServerAddressRoot = strRootUrl;
            myCalendar.ViewName             = ConfigurationManager.AppSettings["WPOWACalendarViewName"];
            this.phMyCalendar.Controls.Add(myCalendar);
        }
        catch (Exception ex)
        {
            Label lbl = new Label();
            lbl.Text = "Failed to load Webpart OWACalendar error: " + ex.Message;
            this.phMyCalendar.Controls.Add(lbl);
            LPLog.LogMessage(LogType.Logerror, "Failed to load Webpart OWACalendar error: " + ex.Message);
        }

        SPWeb web = this.Web;
        //SPList spList = web.Lists[System.Configuration.ConfigurationManager.AppSettings["WPComAnnName"]];
        //SPView spView = spList.Views[System.Configuration.ConfigurationManager.AppSettings["WPComAnnViewName"]];
        //this.xlvwpComAnn.ListId = spList.ID;
        //this.xlvwpComAnn.ListName = string.Format("{{{0}}}", spList.ID.ToString());
        //this.xlvwpComAnn.ViewGuid = spView.ID.ToString();

        #region =====show company announcement webpart=====

        if (this.CurrentUser.userRole.Announcements == true)
        {
            this.divCompanyAnn.Visible = true;
        }
        else
        {
            this.divCompanyAnn.Visible = false;
        }

        // User Home Profile
        if (UserHomePref2 != null)
        {
            if (UserHomePref2.Announcements == true)
            {
                this.divCompanyAnn.Visible = true;
            }
            else
            {
                this.divCompanyAnn.Visible = false;
            }
        }

        if (this.divCompanyAnn.Visible == true)
        {
            SPList spListComAnn = null;
            SPView spViewComAnn = null;
            try
            {
                spListComAnn = web.Lists[System.Configuration.ConfigurationManager.AppSettings["WPComAnnName"]];
            }
            catch
            {
                spListComAnn = null;
            }
            if (null != spListComAnn)
            {
                try
                {
                    spViewComAnn = spListComAnn.Views[System.Configuration.ConfigurationManager.AppSettings["WPComAnnViewName"]];
                }
                catch
                {
                    spViewComAnn = null;
                }
                if (null != spViewComAnn)
                {
                    strComAnnListUrl = spListComAnn.DefaultViewUrl;

                    XsltListViewWebPart xlvwpComAnn = new XsltListViewWebPart();
                    xlvwpComAnn.ListId   = spListComAnn.ID;
                    xlvwpComAnn.ListName = string.Format("{{{0}}}", spListComAnn.ID.ToString());
                    xlvwpComAnn.ViewGuid = spViewComAnn.ID.ToString();
                    //xlvwpComAnn.Toolbar = "None";
                    xlvwpComAnn.XmlDefinition = @"
    <View Name=""{EC6E2014-F0A2-4273-B6BC-1A9F00110341}"" MobileView=""TRUE"" Type=""HTML"" Hidden=""TRUE"" DisplayName="""" Url=""/SitePages/Home.aspx"" Level=""1"" BaseViewID=""1"" ContentTypeID=""0x"" ImageUrl=""/_layouts/images/announce.png"">
      <Query>
        <OrderBy>
          <FieldRef Name=""Modified"" Ascending=""FALSE""/>
        </OrderBy>
      </Query>
      <ViewFields>
        <FieldRef Name=""LinkTitle""/>
      </ViewFields>
      <RowLimit Paged=""TRUE"">5</RowLimit>
      <Toolbar Type=""None""/>
    </View>";
                    xlvwpComAnn.Xsl           = @"
    <xsl:stylesheet xmlns:x=""http://www.w3.org/2001/XMLSchema"" xmlns:d=""http://schemas.microsoft.com/sharepoint/dsp"" version=""1.0"" exclude-result-prefixes=""xsl msxsl ddwrt"" xmlns:ddwrt=""http://schemas.microsoft.com/WebParts/v2/DataView/runtime"" xmlns:asp=""http://schemas.microsoft.com/ASPNET/20"" xmlns:__designer=""http://schemas.microsoft.com/WebParts/v2/DataView/designer"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"" xmlns:msxsl=""urn:schemas-microsoft-com:xslt"" xmlns:SharePoint=""Microsoft.SharePoint.WebControls"" xmlns:ddwrt2=""urn:frontpage:internal"" xmlns:o=""urn:schemas-microsoft-com:office:office"">
      <xsl:include href=""/_layouts/xsl/main.xsl""/>
      <xsl:include href=""/_layouts/xsl/internal.xsl""/>
      <xsl:param name=""AllRows"" select=""/dsQueryResponse/Rows/Row[$EntityName = '' or (position() &gt;= $FirstRow and position() &lt;= $LastRow)]""/>
      <xsl:param name=""dvt_apos"">'</xsl:param>

      <xsl:template name=""FieldRef_ValueOf.Modified"" ddwrt:dvt_mode=""body"" ddwrt:ghost="""" xmlns:ddwrt2=""urn:frontpage:internal"">
        <xsl:param name=""thisNode"" select="".""/>
        <span style=""color: #FF00FF"">
          <xsl:value-of select=""$thisNode/@*[name()=current()/@Name]"" />
        </span>
      </xsl:template>
    </xsl:stylesheet>";
                    this.phComAnn.Controls.Add(xlvwpComAnn);
                }
                else
                {
                    Label lbl = new Label();
                    lbl.Text = string.Format("Can not find the specified webpart view with name \"{0}\".",
                                             System.Configuration.ConfigurationManager.AppSettings["WPComAnnViewName"]);
                    this.phComAnn.Controls.Add(lbl);
                }
            }
            else
            {
                Label lbl = new Label();
                lbl.Text = string.Format("Can not find the specified webpart with name \"{0}\".",
                                         System.Configuration.ConfigurationManager.AppSettings["WPComAnnName"]);
                this.phComAnn.Controls.Add(lbl);
            }
        }
        #endregion

        #region =====show company calendar webpart=====

        if (this.CurrentUser.userRole.CompanyCalendar == true)
        {
            this.divComCal.Visible = true;
        }
        else
        {
            this.divComCal.Visible = false;
        }

        // User Home Profile
        if (UserHomePref2 != null)
        {
            if (UserHomePref2.CompanyCalendar == true)
            {
                this.divComCal.Visible = true;
            }
            else
            {
                this.divComCal.Visible = false;
            }
        }

        if (this.divComCal.Visible == true)
        {
            SPList spListComCal = null;
            SPView spViewComCal = null;
            try
            {
                spListComCal = web.Lists[System.Configuration.ConfigurationManager.AppSettings["WPComCalName"]];
            }
            catch
            {
                spListComCal = null;
            }
            if (null != spListComCal)
            {
                try
                {
                    spViewComCal = spListComCal.Views[System.Configuration.ConfigurationManager.AppSettings["WPComCalViewName"]];
                }
                catch
                {
                    spViewComCal = null;
                }
                if (null != spViewComCal)
                {
                    strComCalListUrl = spListComCal.DefaultViewUrl;

                    XsltListViewWebPart xlvwpComCal = new XsltListViewWebPart();
                    xlvwpComCal.ListId   = spListComCal.ID;
                    xlvwpComCal.ListName = string.Format("{{{0}}}", spListComCal.ID.ToString());
                    xlvwpComCal.ViewGuid = spViewComCal.ID.ToString();
                    //xlvwpComCal.Toolbar = "None";
                    xlvwpComCal.XmlDefinition = @"<View Name=""{3A64E1C5-8CDF-418C-A94F-5E66F61EB5CF}"" MobileView=""TRUE"" Type=""HTML"" Hidden=""TRUE"" DisplayName="""" Url=""/SitePages/Test webparts.aspx"" Level=""1"" BaseViewID=""2"" ContentTypeID=""0x"" MobileUrl=""_layouts/mobile/viewdaily.aspx"" ImageUrl=""/_layouts/images/events.png"">
				<Query>
					<Where>
						<DateRangesOverlap>
							<FieldRef Name=""EventDate""/>
							<FieldRef Name=""EndDate""/>
							<FieldRef Name=""RecurrenceID""/>
							<Value Type=""DateTime"">
								<Month/>
							</Value>
						</DateRangesOverlap>
					</Where>
				</Query>
				<ViewFields>
					<FieldRef Name=""Title""/>
					<FieldRef Name=""EventDate""/>
				</ViewFields>
				<Toolbar Type=""None""/>
			</View>"            ;
                    xlvwpComCal.Xsl           = @"<xsl:stylesheet xmlns:x=""http://www.w3.org/2001/XMLSchema"" xmlns:d=""http://schemas.microsoft.com/sharepoint/dsp"" version=""1.0"" exclude-result-prefixes=""xsl msxsl ddwrt"" xmlns:ddwrt=""http://schemas.microsoft.com/WebParts/v2/DataView/runtime"" xmlns:asp=""http://schemas.microsoft.com/ASPNET/20"" xmlns:__designer=""http://schemas.microsoft.com/WebParts/v2/DataView/designer"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"" xmlns:msxsl=""urn:schemas-microsoft-com:xslt"" xmlns:SharePoint=""Microsoft.SharePoint.WebControls"" xmlns:ddwrt2=""urn:frontpage:internal"" xmlns:o=""urn:schemas-microsoft-com:office:office""> 
  <xsl:include href=""/_layouts/xsl/main.xsl""/> 
  <xsl:include href=""/_layouts/xsl/internal.xsl""/> 
            <xsl:param name=""AllRows"" select=""/dsQueryResponse/Rows/Row[$EntityName = '' or (position() &gt;= $FirstRow and position() &lt;= $LastRow)]""/>
            <xsl:param name=""dvt_apos"">'</xsl:param>
			<xsl:template name=""FieldRef_Recurrence_body.fRecurrence"" ddwrt:dvt_mode=""body"" match=""FieldRef[@Name='fRecurrence']"" mode=""Recurrence_body"" ddwrt:ghost="""" xmlns:ddwrt2=""urn:frontpage:internal"">
                <xsl:param name=""thisNode"" select="".""/>
                <xsl:variable name=""fRecurrence"" select=""$thisNode/@*[name()=current()/@Name]""/>
                <xsl:variable name=""src"">/_layouts/images/
					<xsl:choose>
                        <xsl:when test=""$fRecurrence='1'"">
                            <xsl:choose>
                                <xsl:when test=""$thisNode/@EventType='3'"">recurEx.gif</xsl:when>
                                <xsl:when test=""$thisNode/@EventType='4'"">recurEx.gif</xsl:when>
                                <xsl:otherwise>recur.gif</xsl:otherwise>
                            </xsl:choose>
        </xsl:when>
                        <xsl:otherwise>blank.gif</xsl:otherwise>
                    </xsl:choose>
    </xsl:variable>
                <xsl:variable name=""alt"">
                    <xsl:if test=""$fRecurrence='1'"">
                        <xsl:choose>
                            <xsl:when test=""@EventType='3'"">
            <xsl:value-of select=""'Exception to Recurring Event'""/>
          </xsl:when>
                            <xsl:when test=""@EventType='4'"">
            <xsl:value-of select=""'Exception to Recurring Event'""/>
          </xsl:when>
                            <xsl:otherwise>
            <xsl:value-of select=""'Recurring Event'""/>
          </xsl:otherwise>
                        </xsl:choose>
      </xsl:if>
    </xsl:variable>
    <img border=""0"" width=""16"" height=""16"" src=""/_layouts/images/
			blank.gif"" alt=""{$alt}"" title=""{$alt}""/>
  </xsl:template></xsl:stylesheet>";
                    this.phComCal.Controls.Add(xlvwpComCal);
                }
                else
                {
                    Label lbl = new Label();
                    lbl.Text = string.Format("Can not find the specified webpart view with name \"{0}\".",
                                             System.Configuration.ConfigurationManager.AppSettings["WPComCalViewName"]);
                    this.phComCal.Controls.Add(lbl);
                }
            }
            else
            {
                Label lbl = new Label();
                lbl.Text = string.Format("Can not find the specified webpart with name \"{0}\".",
                                         System.Configuration.ConfigurationManager.AppSettings["WPComCalName"]);
                this.phComCal.Controls.Add(lbl);
            }
        }
        #endregion

        #region =====show rates sheet webpart=====

        if (this.CurrentUser.userRole.RateSummary == true)
        {
            this.divRates.Visible = true;
        }
        else
        {
            this.divRates.Visible = false;
        }

        // User Home Profile
        if (UserHomePref2 != null)
        {
            if (UserHomePref2.RateSummary == true)
            {
                this.divRates.Visible = true;
            }
            else
            {
                this.divRates.Visible = false;
            }
        }

        if (this.divRates.Visible == true)
        {
            SPList spListRates = null;
            SPView spViewRates = null;
            try
            {
                spListRates = web.Lists[System.Configuration.ConfigurationManager.AppSettings["WPRatesName"]];
            }
            catch
            {
                spListRates = null;
            }
            if (null != spListRates)
            {
                try
                {
                    spViewRates = spListRates.Views[System.Configuration.ConfigurationManager.AppSettings["WPRatesViewName"]];
                }
                catch
                {
                    spViewRates = null;
                }
                if (null != spViewRates)
                {
                    strRatesListUrl = spListRates.DefaultViewUrl;

                    XsltListViewWebPart xlvwpRates = new XsltListViewWebPart();
                    xlvwpRates.ListId   = spListRates.ID;
                    xlvwpRates.ListName = string.Format("{{{0}}}", spListRates.ID.ToString());
                    xlvwpRates.ViewGuid = spViewRates.ID.ToString();
                    //xlvwpRates.Toolbar = "None";
                    xlvwpRates.XmlDefinition = @"<View Name=""{FE66F61E-EBF7-49E8-BD37-F9955793DDCE}"" MobileView=""TRUE"" Type=""HTML"" Hidden=""TRUE"" DisplayName="""" Url=""/SitePages/Test webparts.aspx"" Level=""1"" BaseViewID=""1"" ContentTypeID=""0x"" ImageUrl=""/_layouts/images/dlicon.png"">
				<Query>
					<OrderBy>
						<FieldRef Name=""FileLeafRef""/>
					</OrderBy>
				</Query>
				<ViewFields>
					<FieldRef Name=""LinkFilename""/>
				</ViewFields>
				<RowLimit Paged=""TRUE"">30</RowLimit>
				<Toolbar Type=""None""/>
			</View>"            ;
                    xlvwpRates.Xsl           = @"
    <xsl:stylesheet xmlns:x=""http://www.w3.org/2001/XMLSchema"" xmlns:d=""http://schemas.microsoft.com/sharepoint/dsp"" version=""1.0"" exclude-result-prefixes=""xsl msxsl ddwrt"" xmlns:ddwrt=""http://schemas.microsoft.com/WebParts/v2/DataView/runtime"" xmlns:asp=""http://schemas.microsoft.com/ASPNET/20"" xmlns:__designer=""http://schemas.microsoft.com/WebParts/v2/DataView/designer"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"" xmlns:msxsl=""urn:schemas-microsoft-com:xslt"" xmlns:SharePoint=""Microsoft.SharePoint.WebControls"" xmlns:ddwrt2=""urn:frontpage:internal"" xmlns:o=""urn:schemas-microsoft-com:office:office"">
      <xsl:include href=""/_layouts/xsl/main.xsl""/>
      <xsl:include href=""/_layouts/xsl/internal.xsl""/>
      <xsl:param name=""AllRows"" select=""/dsQueryResponse/Rows/Row[$EntityName = '' or (position() &gt;= $FirstRow and position() &lt;= $LastRow)]""/>
      <xsl:param name=""dvt_apos"">'</xsl:param>

      <xsl:template name=""FieldRef_ValueOf.Modified"" ddwrt:dvt_mode=""body"" ddwrt:ghost="""" xmlns:ddwrt2=""urn:frontpage:internal"">
        <xsl:param name=""thisNode"" select="".""/>
        <span style=""color: #FF00FF"">
          <xsl:value-of select=""$thisNode/@*[name()=current()/@Name]"" />
        </span>
      </xsl:template>
    </xsl:stylesheet>";
                    this.phRates.Controls.Add(xlvwpRates);
                }
                else
                {
                    Label lbl = new Label();
                    lbl.Text = string.Format("Can not find the specified webpart view with name \"{0}\".",
                                             System.Configuration.ConfigurationManager.AppSettings["WPComCalViewName"]);
                    this.phRates.Controls.Add(lbl);
                }
            }
            else
            {
                Label lbl = new Label();
                lbl.Text = string.Format("Can not find the specified webpart with name \"{0}\".",
                                         System.Configuration.ConfigurationManager.AppSettings["WPRatesName"]);
                this.phRates.Controls.Add(lbl);
            }
        }
        #endregion

        #endregion
    }
Example #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            // 获取当前用户信息
            this.CurrentUser    = new LoginUser();
            this.iCurrentUserID = CurrentUser.iUserID;

            #region chart title

            string sChartTitle = string.Empty;

            if (this.Request.QueryString["DateRange"] != null)
            {
                this.sDateRange = this.Request.QueryString["DateRange"].ToString();

                if (this.sDateRange != "ThisMonth" && this.sDateRange != "NextMonth" &&
                    this.sDateRange != "ThisQuarter" && this.sDateRange != "NextQuarter" &&
                    this.sDateRange != "ThisYear" && this.sDateRange != "NextYear")
                {
                    this.sDateRange = "ThisMonth";
                }
            }

            if (this.sDateRange.Contains("Month") == true)
            {
                sChartTitle = "Monthly Production Goals";
            }
            else if (this.sDateRange.Contains("Quarter") == true)
            {
                sChartTitle = "Quarterly Production Goals";
            }
            else if (this.sDateRange.Contains("Year") == true)
            {
                sChartTitle = "Yearly Production Goals";
            }

            #endregion

            #region low/medium/high range

            int iLowRangeEnd    = 0;
            int iMediumRangeEnd = 0;
            int iHighRangeEnd   = 0;

            DataTable UserGoalsInfo;

            // get month
            if (this.sDateRange.Contains("Month") == true)
            {
                int iMonth = 0;
                if (this.sDateRange == "ThisMonth")
                {
                    iMonth = DateTime.Now.Month;
                }
                else // NextMonth
                {
                    iMonth = DateTime.Now.AddMonths(1).Month;
                }

                // get user goals info
                UserGoalsInfo = UserGoalsManager.GetUserGoals(this.iCurrentUserID, iMonth);
            }
            else if (this.sDateRange.Contains("Quarter") == true)
            {
                int    iThisMonth = DateTime.Now.Month;
                string sMonths    = string.Empty;

                // 计算This Quarter
                int iThisQuarter = this.GetQuarter(iThisMonth);

                if (this.sDateRange == "ThisQuarter")
                {
                    #region ThisQuarter

                    if (iThisQuarter == 1)
                    {
                        sMonths = "1,2,3";
                    }
                    else if (iThisQuarter == 2)
                    {
                        sMonths = "4,5,6";
                    }
                    if (iThisQuarter == 3)
                    {
                        sMonths = "7,8,9";
                    }
                    if (iThisQuarter == 4)
                    {
                        sMonths = "10,11,12";
                    }

                    #endregion
                }
                else if (this.sDateRange == "NextQuarter")
                {
                    #region NextQuarter

                    int iNextQuarter = iThisQuarter + 1;
                    if (iNextQuarter > 4)
                    {
                        iNextQuarter = 1;
                    }

                    if (iNextQuarter == 1)
                    {
                        sMonths = "1,2,3";
                    }
                    else if (iNextQuarter == 2)
                    {
                        sMonths = "4,5,6";
                    }
                    if (iNextQuarter == 3)
                    {
                        sMonths = "7,8,9";
                    }
                    if (iNextQuarter == 4)
                    {
                        sMonths = "10,11,12";
                    }

                    #endregion
                }

                // get user goals info
                UserGoalsInfo = UserGoalsManager.GetUserGoals(this.iCurrentUserID, sMonths);
            }
            else
            {
                // get user goals info
                UserGoalsInfo = UserGoalsManager.GetUserGoals(this.iCurrentUserID);
            }

            // if no user goals setup
            if (UserGoalsInfo.Rows.Count == 0)
            {
                this.Response.End();
            }

            if (UserGoalsInfo.Rows[0]["LowRange"] == DBNull.Value ||
                UserGoalsInfo.Rows[0]["MediumRange"] == DBNull.Value ||
                UserGoalsInfo.Rows[0]["HighRange"] == DBNull.Value)
            {
                this.Response.End();
            }

            iLowRangeEnd    = Convert.ToInt32(UserGoalsInfo.Rows[0]["LowRange"]);
            iMediumRangeEnd = Convert.ToInt32(UserGoalsInfo.Rows[0]["MediumRange"]);
            iHighRangeEnd   = Convert.ToInt32(UserGoalsInfo.Rows[0]["HighRange"]);

            #endregion

            #region scale interval

            int iScaleInterval = 6;

            decimal dScaleRange = iHighRangeEnd / iScaleInterval;

            iScaleInterval = Convert.ToInt32(dScaleRange / 1000);

            #endregion

            #region calculate real amount

            int iRealAmount = 0;

            string sWhere = string.Empty;
            string sSqlx1 = string.Empty;

            object    oLoanAmount  = null;
            DataTable UserLoanList = null;

            string sFiledName  = "b.LastStageComplDate";
            string sStageAlias = "Closed";

            if (this.sDateRange.Contains("Month") == true)
            {
                if (this.sDateRange == "ThisMonth")
                {
                    #region ThisMonth

                    // 获取本月天数
                    int iDaysInMonth = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);

                    // 本月开始日期和结束日期
                    DateTime StartDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                    DateTime EndDate   = new DateTime(DateTime.Now.Year, DateTime.Now.Month, iDaysInMonth);

                    //// 获取Loan Amount
                    //decimal dLoanAmount = this.UserGoalsManager.GetUserLoanAmount_This(this.iCurrentUserID, StartDate, EndDate);

                    //// 转换成int
                    //iRealAmount = Convert.ToInt32(dLoanAmount);

                    sWhere += SqlTextBuilder.BuildDateSearchCondition(sFiledName, StartDate, EndDate);

                    sSqlx1 = "select b.Amount as Amount, b.Status as Status from lpfn_GetUserLoans(" + this.iCurrentUserID + ") as a inner join V_ProcessingPipelineInfo as b on a.LoanID = b.FileId "
                             + "where (1=1) and (b.Stage='Closed')  " + sWhere;
                    UserLoanList = LPWeb.DAL.DbHelperSQL.ExecuteDataTable(sSqlx1);

                    oLoanAmount = UserLoanList.Compute("Sum(Amount)", "Status='Closed'");

                    if ((oLoanAmount != null) && (oLoanAmount != DBNull.Value))
                    {
                        iRealAmount = Convert.ToInt32(oLoanAmount, null);
                    }

                    #endregion
                }
                else if (this.sDateRange == "NextMonth")
                {
                    #region NextMonth

                    // 获取下个月天数
                    int iDaysInNextMonth = DateTime.DaysInMonth(DateTime.Now.AddMonths(1).Year, DateTime.Now.AddMonths(1).Month);

                    // 本月开始日期和结束日期
                    DateTime StartDate = new DateTime(DateTime.Now.AddMonths(1).Year, DateTime.Now.AddMonths(1).Month, 1);
                    DateTime EndDate   = new DateTime(DateTime.Now.AddMonths(1).Year, DateTime.Now.AddMonths(1).Month, iDaysInNextMonth);

                    //// 获取Loan Amount
                    //decimal dLoanAmount = this.UserGoalsManager.GetUserLoanAmount_Next(this.iCurrentUserID, StartDate, EndDate);

                    //// 转换成int
                    //iRealAmount = Convert.ToInt32(dLoanAmount);

                    sWhere += SqlTextBuilder.BuildDateSearchCondition(sFiledName, StartDate, EndDate);

                    sSqlx1 = "select b.Amount as Amount, b.Status as Status from lpfn_GetUserLoans(" + this.iCurrentUserID + ") as a inner join V_ProcessingPipelineInfo as b on a.LoanID = b.FileId "
                             + "where (1=1) and (b.Stage='Closed')  " + sWhere;
                    UserLoanList = LPWeb.DAL.DbHelperSQL.ExecuteDataTable(sSqlx1);

                    oLoanAmount = UserLoanList.Compute("Sum(Amount)", "Stage='" + sStageAlias + "'");

                    if ((oLoanAmount != null) && (oLoanAmount != DBNull.Value))
                    {
                        iRealAmount = Convert.ToInt32(oLoanAmount, null);
                    }
                    #endregion
                }
            }
            else if (this.sDateRange.Contains("Quarter") == true)
            {
                // 计算This Quarter
                int iThisQuarter = this.GetQuarter(DateTime.Now.Month);

                if (this.sDateRange == "ThisQuarter")
                {
                    #region ThisQuarter

                    DateTime StartDate = DateTime.Now;
                    DateTime EndDate   = DateTime.Now;

                    if (iThisQuarter == 1)  // 一季度=1,2,3月
                    {
                        // 1月开始日期
                        StartDate = new DateTime(DateTime.Now.Year, 1, 1);

                        // 获取3月天数
                        int iDaysIn3 = DateTime.DaysInMonth(DateTime.Now.Year, 3);
                        // 结束日期
                        EndDate = new DateTime(DateTime.Now.Year, 3, iDaysIn3);
                    }
                    else if (iThisQuarter == 2)  // 二季度=4,5,6月
                    {
                        // 4月开始日期
                        StartDate = new DateTime(DateTime.Now.Year, 4, 1);

                        // 获取6月天数
                        int iDaysIn6 = DateTime.DaysInMonth(DateTime.Now.Year, 6);
                        // 结束日期
                        EndDate = new DateTime(DateTime.Now.Year, 6, iDaysIn6);
                    }
                    else if (iThisQuarter == 3)  // 三季度=7,8,9月
                    {
                        // 7月开始日期
                        StartDate = new DateTime(DateTime.Now.Year, 7, 1);

                        // 获取9月天数
                        int iDaysIn9 = DateTime.DaysInMonth(DateTime.Now.Year, 9);
                        // 结束日期
                        EndDate = new DateTime(DateTime.Now.Year, 9, iDaysIn9);
                    }
                    else if (iThisQuarter == 4)  // 四季度=10,11,12月
                    {
                        // 7月开始日期
                        StartDate = new DateTime(DateTime.Now.Year, 10, 1);

                        // 获取12月天数
                        int iDaysIn12 = DateTime.DaysInMonth(DateTime.Now.Year, 12);
                        // 结束日期
                        EndDate = new DateTime(DateTime.Now.Year, 12, iDaysIn12);
                    }

                    //// 获取Loan Amount
                    //decimal dLoanAmount = this.UserGoalsManager.GetUserLoanAmount_This(this.iCurrentUserID, StartDate, EndDate);

                    //// 转换成int
                    //iRealAmount = Convert.ToInt32(dLoanAmount);

                    sWhere += SqlTextBuilder.BuildDateSearchCondition(sFiledName, StartDate, EndDate);

                    sSqlx1 = "select b.Amount as Amount, b.Status as Status from lpfn_GetUserLoans(" + this.iCurrentUserID + ") as a inner join V_ProcessingPipelineInfo as b on a.LoanID = b.FileId "
                             + "where (1=1) and (b.Stage='Closed')  " + sWhere;
                    UserLoanList = LPWeb.DAL.DbHelperSQL.ExecuteDataTable(sSqlx1);

                    oLoanAmount = UserLoanList.Compute("Sum(Amount)", "Stage='" + sStageAlias + "'");

                    if ((oLoanAmount != null) && (oLoanAmount != DBNull.Value))
                    {
                        iRealAmount = Convert.ToInt32(oLoanAmount, null);
                    }
                    #endregion
                }
                else if (this.sDateRange == "NextQuarter")
                {
                    #region NextQuarter

                    int iNextQuarter = iThisQuarter + 1;
                    int iNextYear    = DateTime.Now.Year;
                    if (iNextQuarter > 4)
                    {
                        iNextQuarter = 1;
                        iNextYear    = DateTime.Now.AddYears(1).Year;
                    }

                    DateTime StartDate = DateTime.Now;
                    DateTime EndDate   = DateTime.Now;

                    if (iNextQuarter == 1)  // 一季度=1,2,3月
                    {
                        // 1月开始日期
                        StartDate = new DateTime(iNextYear, 1, 1);

                        // 获取3月天数
                        int iDaysIn3 = DateTime.DaysInMonth(iNextYear, 3);
                        // 结束日期
                        EndDate = new DateTime(iNextYear, 3, iDaysIn3);
                    }
                    else if (iNextQuarter == 2)  // 二季度=4,5,6月
                    {
                        // 4月开始日期
                        StartDate = new DateTime(iNextYear, 4, 1);

                        // 获取6月天数
                        int iDaysIn6 = DateTime.DaysInMonth(iNextYear, 6);
                        // 结束日期
                        EndDate = new DateTime(iNextYear, 6, iDaysIn6);
                    }
                    else if (iNextQuarter == 3)  // 三季度=7,8,9月
                    {
                        // 7月开始日期
                        StartDate = new DateTime(iNextYear, 7, 1);

                        // 获取9月天数
                        int iDaysIn9 = DateTime.DaysInMonth(iNextYear, 9);
                        // 结束日期
                        EndDate = new DateTime(iNextYear, 9, iDaysIn9);
                    }
                    else if (iNextQuarter == 4)  // 四季度=10,11,12月
                    {
                        // 7月开始日期
                        StartDate = new DateTime(iNextYear, 10, 1);

                        // 获取12月天数
                        int iDaysIn12 = DateTime.DaysInMonth(iNextYear, 12);
                        // 结束日期
                        EndDate = new DateTime(iNextYear, 12, iDaysIn12);
                    }

                    //// 获取Loan Amount
                    //decimal dLoanAmount = this.UserGoalsManager.GetUserLoanAmount_Next(this.iCurrentUserID, StartDate, EndDate);

                    //// 转换成int
                    //iRealAmount = Convert.ToInt32(dLoanAmount);

                    sWhere += SqlTextBuilder.BuildDateSearchCondition(sFiledName, StartDate, EndDate);

                    sSqlx1 = "select b.Amount as Amount, b.Status as Status from lpfn_GetUserLoans(" + this.iCurrentUserID + ") as a inner join V_ProcessingPipelineInfo as b on a.LoanID = b.FileId "
                             + "where (1=1) and (b.Stage='Closed')  " + sWhere;
                    UserLoanList = LPWeb.DAL.DbHelperSQL.ExecuteDataTable(sSqlx1);

                    oLoanAmount = UserLoanList.Compute("Sum(Amount)", "Stage='" + sStageAlias + "'");

                    if ((oLoanAmount != null) && (oLoanAmount != DBNull.Value))
                    {
                        iRealAmount = Convert.ToInt32(oLoanAmount, null);
                    }

                    #endregion
                }
            }
            else if (this.sDateRange.Contains("Year") == true)
            {
                if (this.sDateRange == "ThisYear")
                {
                    #region ThisYear

                    // 开始日期:1月1日
                    DateTime StartDate = new DateTime(DateTime.Now.Year, 1, 1);

                    // 获取12月天数
                    int iDaysIn12 = DateTime.DaysInMonth(DateTime.Now.Year, 12);
                    // 结束日期
                    DateTime EndDate = new DateTime(DateTime.Now.Year, 12, iDaysIn12);

                    //// 获取Loan Amount
                    //decimal dLoanAmount = this.UserGoalsManager.GetUserLoanAmount_This(this.iCurrentUserID, StartDate, EndDate);

                    //// 转换成int
                    //iRealAmount = Convert.ToInt32(dLoanAmount);

                    sWhere += SqlTextBuilder.BuildDateSearchCondition(sFiledName, StartDate, EndDate);

                    sSqlx1 = "select b.Amount as Amount, b.Status as Status from lpfn_GetUserLoans(" + this.iCurrentUserID + ") as a inner join V_ProcessingPipelineInfo as b on a.LoanID = b.FileId "
                             + "where (1=1) and (b.Stage='Closed')  " + sWhere;
                    UserLoanList = LPWeb.DAL.DbHelperSQL.ExecuteDataTable(sSqlx1);

                    oLoanAmount = UserLoanList.Compute("Sum(Amount)", "Stage='" + sStageAlias + "'");

                    if ((oLoanAmount != null) && (oLoanAmount != DBNull.Value))
                    {
                        iRealAmount = Convert.ToInt32(oLoanAmount, null);
                    }

                    #endregion
                }
                else if (this.sDateRange == "NextYear")
                {
                    #region NextYear

                    // 开始日期:1月1日
                    DateTime StartDate = new DateTime(DateTime.Now.AddYears(1).Year, 1, 1);

                    // 获取12月天数
                    int iDaysIn12 = DateTime.DaysInMonth(DateTime.Now.AddYears(1).Year, 12);
                    // 结束日期
                    DateTime EndDate = new DateTime(DateTime.Now.AddYears(1).Year, 12, iDaysIn12);

                    //// 获取Loan Amount
                    //decimal dLoanAmount = this.UserGoalsManager.GetUserLoanAmount_Next(this.iCurrentUserID, StartDate, EndDate);

                    //// 转换成int
                    //iRealAmount = Convert.ToInt32(dLoanAmount);

                    sWhere += SqlTextBuilder.BuildDateSearchCondition(sFiledName, StartDate, EndDate);

                    sSqlx1 = "select b.Amount as Amount, b.Status as Status from lpfn_GetUserLoans(" + this.iCurrentUserID + ") as a inner join V_ProcessingPipelineInfo as b on a.LoanID = b.FileId "
                             + "where (1=1) and (b.Stage='Closed')  " + sWhere;
                    UserLoanList = LPWeb.DAL.DbHelperSQL.ExecuteDataTable(sSqlx1);

                    oLoanAmount = UserLoanList.Compute("Sum(Amount)", "Stage='" + sStageAlias + "'");

                    if ((oLoanAmount != null) && (oLoanAmount != DBNull.Value))
                    {
                        iRealAmount = Convert.ToInt32(oLoanAmount, null);
                    }
                    #endregion
                }
            }

            #endregion

            sLowRangeEnd    = (iLowRangeEnd / 1000).ToString();
            sMediumRangeEnd = (iMediumRangeEnd / 1000).ToString();
            sHighRangeEnd   = (iHighRangeEnd / 1000).ToString();
            sScaleInterval  = iScaleInterval.ToString();
            sRealAmount     = (iRealAmount / 1000).ToString();
        }
    private string GetCondition()
    {
        StringBuilder sWhere = new StringBuilder();

        //ddlCategories
        if (ddlCategories.SelectedIndex > 0)
        {
            string CategoryId = ddlCategories.SelectedValue;
            sWhere.Append(" and CategoryId = '" + CategoryId + "'");
        }

        //Campaigns
        if (ddlCampaigns.SelectedIndex > 0)
        {
            string CampainID = ddlCampaigns.SelectedValue;
            sWhere.Append(" and CampaignId = '" + CampainID + "'");
        }

        // Alphabet
        if (ddlAlphabet.SelectedIndex > 0)
        {
            string sAlphabet = ddlAlphabet.SelectedValue.ToLower();
            sWhere.Append(" and lower(ClientName) like '" + sAlphabet + "%'");
        }

        // Status
        if (ddlStatus.SelectedIndex > 0)
        {
            string sStatus = ddlStatus.SelectedItem.Text;
            sWhere.Append("  and Status='" + sStatus + "'");
        }

        // Type
        if (ddlType.SelectedIndex > 0)
        {
            string sType = ddlType.SelectedItem.Text;
            sWhere.Append(" and Type='" + sType + "'");
        }

        // Started By
        if (ddlStartedBy.SelectedIndex > 0)
        {
            string sStartedBy = ddlStartedBy.SelectedValue;

            sWhere.Append(" and StartedBy='" + sStartedBy + "'");
        }

        #region FromDate and ToDate

        string sFromDate = string.Empty;
        string sToDate   = string.Empty;

        sFromDate = txbFromDate.Text.Trim();
        sToDate   = txbToDate.Text.Trim();

        DateTime?FromDate = null;
        DateTime?ToDate   = null;

        if (sFromDate != string.Empty)
        {
            DateTime FromDate1;
            bool     IsDate1 = DateTime.TryParse(sFromDate, out FromDate1);
            if (IsDate1 == true)
            {
                FromDate = FromDate1;
            }
        }

        if (sToDate != string.Empty)
        {
            DateTime ToDate1;
            bool     IsDate2 = DateTime.TryParse(sToDate, out ToDate1);
            if (IsDate2 == true)
            {
                ToDate = ToDate1;
            }
        }

        sWhere.Append(SqlTextBuilder.BuildDateSearchCondition("Started", FromDate, ToDate));

        #endregion

        return(sWhere.ToString());
    }