Example #1
0
        /// <summary>
        /// 根据LoanStage.Completed更新point file stage
        /// neo 2011-01-17
        /// </summary>
        /// <param name="iLoanID"></param>
        /// <param name="iLoginUserID"></param>
        /// <param name="iLoanStageID"></param>
        /// <returns></returns>
        public static string UpdatePointFileStage(int iLoanID, int iLoginUserID, int iLoanStageID)
        {
            #region get loan stage info

            Loans     LoanManager1   = new Loans();
            DataTable LoanStageInfo  = LoanManager1.GetLoanStage(" and LoanStageId=" + iLoanStageID);
            string    sStageName     = LoanStageInfo.Rows[0]["StageName"].ToString();
            string    sCompletedDate = LoanStageInfo.Rows[0]["Completed"].ToString();

            #region 获取Template_Wfl_Stages.Name

            string sLoanStage = sStageName;
            if (LoanStageInfo.Rows[0]["WflStageId"] != DBNull.Value)
            {
                string sWflStageId = LoanStageInfo.Rows[0]["WflStageId"].ToString();
                Template_Wfl_Stages Template_Wfl_Stages1     = new Template_Wfl_Stages();
                DataSet             Template_Wfl_Stages_Info = Template_Wfl_Stages1.GetList(" WflStageId=" + sWflStageId);
                if (Template_Wfl_Stages_Info.Tables[0].Rows.Count > 0)
                {
                    string sName = Template_Wfl_Stages_Info.Tables[0].Rows[0]["Name"].ToString();
                    if (sName != string.Empty)
                    {
                        sLoanStage = sName;
                    }
                }
            }

            #endregion

            #endregion

            #region invoke PointManager.UpdateStage()

            string sError     = string.Empty;
            bool   bCompleted = false;
            if (!string.IsNullOrEmpty(sCompletedDate))
            {
                bCompleted     = true;
                sCompletedDate = DateTime.Now.ToShortDateString();
            }

            sError = UpdatePointFileStage(bCompleted, sCompletedDate, iLoanID, iLoginUserID, sLoanStage, iLoanStageID);
            #endregion

            return(sError);
        }
        private void BindStage()
        {
            DataSet ds = new DataSet();

            try
            {
                if (WflTemplId == 0)
                {
                    Template_Stages stage = new Template_Stages();
                    ds = stage.GetList("");
                    if (ds == null || ds.Tables.Count < 1 || ds.Tables[0].Rows.Count < 1)
                    {
                        return;
                    }
                    ddlStage.DataValueField = "TemplStageId";
                    ddlStage.DataTextField  = "Name";
                    ddlStage.DataSource     = ds;
                    ddlStage.DataBind();
                    ddlStage.Items.Insert(0, new ListItem("All", "0"));
                }
                else
                {
                    Template_Wfl_Stages stage = new Template_Wfl_Stages();
                    ds = stage.GetList(0, "WflTemplId = " + WflTemplId.ToString(), "SequenceNumber");

                    if (ds == null || ds.Tables.Count < 1 || ds.Tables[0].Rows.Count < 1)
                    {
                        return;
                    }
                    ddlStage.DataValueField = "WflStageId";
                    ddlStage.DataTextField  = "Name";
                    ddlStage.DataSource     = ds;
                    ddlStage.DataBind();
                    ddlStage.Items.Insert(0, new ListItem("All", "0"));

                    txbEstClose.Text = ds.Tables[0].Rows[0]["DaysFromEstClose"].ToString();
                }
            }
            catch
            { }
        }
 private void BindControls()
 {
     if (WflTemplId == 0)
     {
         return;
     }
     try
     {
         LPWeb.Model.Template_Workflow model = new Model.Template_Workflow();
         model = template.GetModel(WflTemplId);
         if (model == null)
         {
             return;
         }
         txbTemplateName.Text = model.Name;
         txbEescription.Text  = model.Desc;
         cbEnabled.Checked    = model.Enabled;
     }
     catch
     { }
     try
     {
         string strWhere           = string.Format(" WflTemplId= {0} AND WflStageId = {1}", WflTemplId.ToString(), StageID);
         Template_Wfl_Stages stage = new Template_Wfl_Stages();
         DataSet             ds    = stage.GetList(strWhere);
         if (ds == null || ds.Tables.Count < 1 || ds.Tables[0].Rows.Count < 1)
         {
             txbEstClose.Text = string.Empty;
         }
         else
         {
             txbEstClose.Text = ds.Tables[0].Rows[0]["DaysFromEstClose"].ToString();
         }
     }
     catch
     { }
 }
Example #4
0
    protected void btnSave_Click(object sender, EventArgs e)
    {
        string sErrorJs = string.Empty;

        if (this.Request.QueryString["CloseDialogCodes"] == null)
        {
            sErrorJs = "window.parent.RefreshPage();";
        }
        else
        {
            sErrorJs = this.Request.QueryString["CloseDialogCodes"] + ";";
        }

        int iStageID = Convert.ToInt32(this.LoanTaskInfo.Rows[0]["LoanStageId"]);

        int iCurrentUserID = this.CurrUser.iUserID;

        string sTaskName = string.Empty;

        if (radTaskList.Checked == true)
        {
            sTaskName = this.ddlTaskList.SelectedValue;
            if (sTaskName == "-- select --")
            {
                sTaskName = string.Empty;
            }
        }
        else
        {
            sTaskName = this.txtTaskName.Text.Trim();
        }
        string sDesc = this.txtDescription.Text.Trim();

        int    iOwnerID = Convert.ToInt32(this.ddlOwner.SelectedItem.Value);
        string sDueDate = this.txtDueDate.Text.Trim();

        int iPrerequisiteID = Convert.ToInt32(this.ddlPrerequisite.SelectedItem.Value);

        //Get task template Calculation Method
        int iCalculationMethod = 0;

        if (this.LoanTaskInfo.Rows[0]["TemplTaskId"].ToString() != "" && this.LoanTaskInfo.Rows[0]["TemplTaskId"].ToString() != "0")
        {
            LPWeb.BLL.Template_Wfl_Tasks   taskTempMgr   = new Template_Wfl_Tasks();
            LPWeb.Model.Template_Wfl_Tasks taskTempModel = taskTempMgr.GetModel(int.Parse(this.LoanTaskInfo.Rows[0]["TemplTaskId"].ToString()));

            if (taskTempModel != null)
            {
                LPWeb.BLL.Template_Wfl_Stages   stageWflMgr = new Template_Wfl_Stages();
                LPWeb.Model.Template_Wfl_Stages stageModel  = stageWflMgr.GetModel(taskTempModel.WflStageId);
                if (stageModel != null)
                {
                    LPWeb.BLL.Template_Workflow   templateMgr   = new Template_Workflow();
                    LPWeb.Model.Template_Workflow templateModel = templateMgr.GetModel(stageModel.WflTemplId);
                    if (templateModel != null)
                    {
                        iCalculationMethod = templateModel.CalculationMethod;
                    }

                    if (stageModel.CalculationMethod != null && stageModel.CalculationMethod.Value != 0)
                    {
                        iCalculationMethod = stageModel.CalculationMethod.Value;
                    }
                }
            }
        }

        int iDaysToEstClose = 0;

        if (this.txtDaysToEst.Text != string.Empty)
        {
            if (iCalculationMethod == 2 && this.txtDaysAfterCreation.Text != string.Empty)
            {
                iDaysToEstClose        = 0;
                this.txtDaysToEst.Text = "";
            }
            else
            {
                iDaysToEstClose = Convert.ToInt32(this.txtDaysToEst.Text);
            }
        }

        int iDaysAfterCreation = 0;

        if (this.txtDaysAfterCreation.Text != string.Empty)
        {
            if (iCalculationMethod == 1 && this.txtDaysToEst.Text != string.Empty)
            {
                iDaysAfterCreation             = -1;
                this.txtDaysAfterCreation.Text = "";
            }
            else
            {
                iDaysAfterCreation = Convert.ToInt32(this.txtDaysAfterCreation.Text);
            }
        }

        int iDaysDueAfterPre = 0;

        if (this.txtDaysDueAfter.Text != string.Empty)
        {
            iDaysDueAfterPre = Convert.ToInt32(this.txtDaysDueAfter.Text);
        }

        int iWarningEmailID = Convert.ToInt32(this.ddlWarningEmail.SelectedItem.Value);
        int iOverdueEmailID = Convert.ToInt32(this.ddlOverdueEmail.SelectedItem.Value);

        // 原Loan Stage ID
        int iOldStageID = string.IsNullOrEmpty(ddlStage.SelectedValue) ? Convert.ToInt32(this.LoanTaskInfo.Rows[0]["LoanStageId"]) : Convert.ToInt32(ddlStage.SelectedValue);  //CR54 this.iCurrentLoanStageId; //Convert.ToInt32(this.LoanTaskInfo.Rows[0]["LoanStageId"]);

        #region 检查任务名称重复
        if (string.IsNullOrEmpty(sTaskName) || sTaskName.Trim() == string.Empty)
        {
            PageCommon.AlertMsg(this, "The task name cannot be blank.");
            return;
        }

        var loanInfo = this.LoanManager.GetModel(this.iLoanID);
        if (loanInfo == null || loanInfo.Status != "Prospect")  //CR54 当为Prospect时检查重复
        {
            bool bIsExist = this.LoanTaskManager.IsLoanTaskExists_Update(this.iLoanID, this.iTaskID, sTaskName);
            if (bIsExist == true)
            {
                PageCommon.AlertMsg(this, "The task name is already taken.");
                return;
            }
        }

        LPWeb.Model.LoanTasks taskModel = new LPWeb.Model.LoanTasks();
        taskModel.LoanTaskId  = iTaskID;
        taskModel.Name        = sTaskName.Trim();
        taskModel.Desc        = sDesc.Trim();
        taskModel.LoanStageId = iStageID;
        if (iStageID == iOldStageID || iOldStageID <= 0)
        {
            taskModel.OldLoanStageId = 0;
        }
        else
        {
            taskModel.OldLoanStageId = iOldStageID;
        }

        taskModel.Owner        = iOwnerID;
        taskModel.ModifiedBy   = iCurrentUserID;
        taskModel.LastModified = DateTime.Now;
        taskModel.FileId       = iLoanID;

        if (string.IsNullOrEmpty(sDueDate))
        {
            taskModel.Due = DateTime.MinValue;
        }
        else
        {
            taskModel.Due = DateTime.Parse(sDueDate);
        }

        string sDueTime = this.ddlDueTime_hour.Text + ":" + this.ddlDueTime_min.Text;
        sDueTime = sDueTime.Replace("am", "").Replace("pm", "");
        DateTime DTN           = DateTime.Now;
        string   sDueTime_Span = null;
        TimeSpan DueTime       = new TimeSpan();

        if (sDueTime == string.Empty)
        {
            taskModel.DueTime = null;
        }
        else
        {
            taskModel.DueTime = null;
            if (DateTime.TryParse(sDueTime, out DTN) == true)
            {
                sDueTime_Span = DTN.ToString("HH:mm");
                if (TimeSpan.TryParse(sDueTime_Span, out DueTime) == true)
                {
                    taskModel.DueTime = DueTime;
                }
            }
        }

        taskModel.DaysDueFromEstClose      = (short)iDaysToEstClose;
        taskModel.DaysFromCreation         = (short)iDaysAfterCreation;
        taskModel.PrerequisiteTaskId       = iPrerequisiteID;
        taskModel.DaysDueAfterPrerequisite = (short)iDaysDueAfterPre;

        taskModel.WarningEmailId = iWarningEmailID;
        taskModel.OverdueEmailId = iOverdueEmailID;

        taskModel.ExternalViewing = false;

        if (this.chkCompleted.Checked == true)
        {
            taskModel.Completed   = DateTime.Now;
            taskModel.CompletedBy = iCurrentUserID;
        }

        #endregion

        // update
        bool bIsSuccess1 = LPWeb.BLL.WorkflowManager.UpdateTask(taskModel, this.txtDaysToEst.Text.Trim(), this.txtDaysAfterCreation.Text.Trim(), this.txtDaysDueAfter.Text.Trim(), this.txtDaysDueAfterPrevStage.Text.Trim());
        if (bIsSuccess1 == true)
        {
            SaveCompletetionEmails(iTaskID);

            #region completed

            if (chkCompleted.Checked == true)
            {
                string sResult = this.CompleteTask(this.iTaskID);
                if (sResult != string.Empty)
                {
                    this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Failed", "$('#divContainer').hide();alert('Failed to complete task.');" + sErrorJs, true);
                }
            }

            #endregion

            // save and create
            if (((Button)sender).Text == "Save and Create Another")
            {
                this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Redirect", "$('#divContainer').hide();alert('Saved successfully.');window.parent.CloseDialog_EditTask();window.parent.ShowDialog_AddTask();", true);
            }
            else
            {
                this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Success", "$('#divContainer').hide();alert('Saved successfully.');" + sErrorJs, true);
            }
        }
        else
        {
            this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Failed", "$('#divContainer').hide();alert('Failed to save the record.');" + sErrorJs, true);
        }
    }
Example #5
0
    /// <summary>
    /// Binds the page.
    /// </summary>
    private void BindPage()
    {
        if (CurrentFileId < 1)
        {
            PageCommon.WriteJsEnd(this, sErrorMsg, "window.location.href='" + sReturnPage + "'");
            return;
        }

        DataSet ds = bllStages.GetLoanStageSetupInfo(CurrentFileId);

        if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
        {
            //PageCommon.AlertMsg(this, "There is no data in database.");
            return;
        }

        foreach (DataRow LoanStageRow in ds.Tables[0].Rows)
        {
            int iLoanStageId = Convert.ToInt32(LoanStageRow["LoanStageId"]);

            LoanStages LoanStagesMrg = new LoanStages();
            DataTable  LoanStageInfo = LoanStagesMrg.GetList(" LoanStageId=" + iLoanStageId).Tables[0];

            if (LoanStageInfo.Rows.Count > 0)
            {
                #region 获取Template_Stage.Alias

                string sWflStageName = LoanStageInfo.Rows[0]["StageName"].ToString();
                string sDiaplayAs    = LoanStageInfo.Rows[0]["StageName"].ToString();

                if (LoanStageInfo.Rows[0]["WflStageId"] != DBNull.Value)
                {
                    string sWflStageId = LoanStageInfo.Rows[0]["WflStageId"].ToString();

                    Template_Wfl_Stages Template_Wfl_Stages1     = new Template_Wfl_Stages();
                    DataTable           Template_Wfl_Stages_info = Template_Wfl_Stages1.GetList(" WflStageId=" + sWflStageId).Tables[0];
                    if (Template_Wfl_Stages_info.Rows.Count > 0)
                    {
                        sWflStageName = Template_Wfl_Stages_info.Rows[0]["Name"].ToString();

                        string sTemplStageId = Template_Wfl_Stages_info.Rows[0]["TemplStageId"].ToString();
                        if (sTemplStageId != string.Empty)
                        {
                            Template_Stages Template_Stages1    = new Template_Stages();
                            DataTable       Template_Stage_Info = Template_Stages1.GetStageTemplateList(" and TemplStageId=" + sTemplStageId);
                            if (Template_Stage_Info.Rows.Count > 0)
                            {
                                string sAlias = Template_Stage_Info.Rows[0]["Alias"].ToString();
                                if (sAlias != string.Empty)
                                {
                                    sDiaplayAs = sAlias;
                                }
                            }
                        }
                    }
                }

                LoanStageRow["StageName"] = sWflStageName;
                LoanStageRow["Alias"]     = sDiaplayAs;

                #endregion
            }
        }



        DateTime dtMin = DateTime.MinValue;
        if (DateTime.TryParse(ds.Tables[0].Rows[0]["EstCloseDate"].ToString(), out dtMin))
        {
            tbxTargetCloseDate.Text = dtMin.ToShortDateString();
        }
        Loans             loanMgr   = new Loans();
        LPWeb.Model.Loans loanModel = loanMgr.GetModel(CurrentFileId);
        if (loanModel.EstCloseDate != null)
        {
            tbxTargetCloseDate.Text = loanModel.EstCloseDate.Value.ToShortDateString();
        }
        gvWfGrid.DataSource = ds;
        gvWfGrid.DataBind();
    }
Example #6
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            string sWorkflowTemplagteName = this.txtWorkflowTemplate.Text.Trim();
            string sWorkflowType          = this.ddlWorkflowType.SelectedValue;
            bool   bEnabled           = this.chkEnabled.Checked;
            string sDesc              = this.txtDesc.Text.Trim();
            string sCalcDueDateMethod = this.ddlCalcDueDateMethod.SelectedValue;
            bool   bDefault           = this.chkDefault.Checked;

            #region get stage data

            string sWflStageIDs            = this.hdnWflStageIDs.Text;
            string sSequences              = this.hdnSequences.Text;
            string sStageTempIDs           = this.hdnStageTemplateIDs.Text;
            string sStageNames             = this.hdnStageNames.Text; // Open$Submit$Approve
            string sEnableds               = this.hdnEnableds.Text;
            string sDaysFromEstCloseDates  = this.hdnDaysFromEstCloseDates.Text;
            string sDaysAfterCreationDates = this.hdnDaysAfterCreationDates.Text;
            string sRemovedStageIDs        = this.hdnRemovedStageIDs.Text;

            #endregion

            Template_Workflow WorkflowTemplateManager = new Template_Workflow();

            #region build stage list

            DataTable StageList = WorkflowTemplateManager.GetWflStageList(" and (1=0)");

            if (sWflStageIDs != string.Empty)
            {
                string[] WflStageIDArray            = sWflStageIDs.Split(',');
                string[] SequenceArray              = sSequences.Split(',');
                string[] StageTempIDArray           = sStageTempIDs.Split(',');
                string[] StageNameArray             = sStageNames.Split(',');
                string[] EnabledArray               = sEnableds.Split(',');
                string[] DaysFromEstCloseDateArray  = sDaysFromEstCloseDates.Split(',');
                string[] DaysAfterCreationDateArray = sDaysAfterCreationDates.Split(',');

                for (int i = 0; i < WflStageIDArray.Length; i++)
                {
                    string sWflStageID = WflStageIDArray[i];
                    int    iWflStageID = Convert.ToInt32(sWflStageID);

                    string sSequence              = SequenceArray[i];
                    string sStageTempID           = StageTempIDArray[i];
                    string sStageNameBlock        = StageNameArray[i];
                    string sEnabled               = EnabledArray[i];
                    string sDaysFromEstCloseDate  = DaysFromEstCloseDateArray[i];
                    string sDaysAfterCreationDate = DaysAfterCreationDateArray[i];

                    #region format StageName

                    string sStageName = sStageNameBlock.Replace("[$", string.Empty);
                    sStageName = sStageName.Replace("$]", string.Empty);

                    #endregion

                    #region Get stage calcDueDateMethod
                    BLL.Template_Wfl_Stages   twsMgr   = new Template_Wfl_Stages();
                    Model.Template_Wfl_Stages twsModel = twsMgr.GetModel(iWflStageID);
                    string sCalcMethod = "";
                    if (twsModel != null)
                    {
                        sCalcMethod = twsModel.CalculationMethod.Value.ToString();
                    }
                    int iCalcMethod = 1;
                    //if (sCalcMethod == "" || sCalcMethod == "0")
                    //{
                    //    if (sCalcDueDateMethod == "Creation Date")
                    //    {
                    //        sCalcMethod = "2";
                    //    }
                    //    else
                    //    {
                    //        sCalcMethod = "1";
                    //    }
                    //}

                    if (sCalcDueDateMethod == "Est Close Date")
                    {
                        sCalcMethod = "1";
                    }
                    else if (sCalcDueDateMethod == "Creation Date")
                    {
                        sCalcMethod = "2";
                    }
                    else
                    {
                        sCalcMethod = "3";
                    }
                    iCalcMethod = int.Parse(sCalcMethod);
                    #endregion

                    #region add rows

                    DataRow StageRow = StageList.NewRow();
                    StageRow["WflStageId"]     = iWflStageID;
                    StageRow["WflTemplId"]     = this.iWorkflowTemplateID;
                    StageRow["Name"]           = sStageName;
                    StageRow["SequenceNumber"] = Convert.ToInt16(sSequence);
                    StageRow["Enabled"]        = Convert.ToBoolean(sEnabled);

                    //if (iCalcMethod == 1)
                    //{
                    if (sDaysFromEstCloseDate == "null")
                    {
                        StageRow["DaysFromEstClose"] = DBNull.Value;
                    }
                    else
                    {
                        StageRow["DaysFromEstClose"] = Convert.ToInt16(sDaysFromEstCloseDate);
                    }

                    //StageRow["DaysFromCreation"] = DBNull.Value;
                    StageRow["CalculationMethod"] = iCalcMethod;
                    //}
                    //else
                    //{
                    //StageRow["DaysFromEstClose"] = DBNull.Value;

                    if (sDaysAfterCreationDate == "null")
                    {
                        StageRow["DaysFromCreation"] = DBNull.Value;
                    }
                    else
                    {
                        StageRow["DaysFromCreation"] = Convert.ToInt16(sDaysAfterCreationDate);
                    }
                    //StageRow["CalculationMethod"] = iCalcMethod;
                    // }

                    StageRow["TemplStageId"] = sStageTempID;

                    StageList.Rows.Add(StageRow);

                    if (iWflStageID > 0)
                    {
                        StageRow.AcceptChanges();
                        StageRow.SetModified();
                    }

                    #endregion
                }
            }

            #endregion

            sWorkflowType = this.gWorkflowType;

            // update
            WorkflowTemplateManager.UpdateWorkflowTemplate(this.iWorkflowTemplateID, sWorkflowTemplagteName, bEnabled, sDesc, sWorkflowType, bDefault, sCalcDueDateMethod, StageList, sRemovedStageIDs);

            // success
            this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Success", "$('#divContainer').hide();alert('Update workflow template successfully.');window.parent.location.href=window.parent.location.href;", true);
        }
        private LPWeb.Model.Template_Wfl_Tasks SetTaskModel()
        {
            Template_Workflow templateMgr = new Template_Workflow();

            LPWeb.Model.Template_Workflow tempModel = new Model.Template_Workflow();
            tempModel = templateMgr.GetModel(this.iTemplateID);

            Template_Wfl_Stages wflStageMgr = new Template_Wfl_Stages();

            LPWeb.Model.Template_Wfl_Stages stageModel = new Model.Template_Wfl_Stages();

            this.iCalculationMethod = tempModel.CalculationMethod;
            if (this.iStageID != 0)
            {
                stageModel = wflStageMgr.GetModel(this.iStageID);
                if (stageModel.CalculationMethod.ToString() != "" && stageModel.CalculationMethod.ToString() != "0")
                {
                    iCalculationMethod = int.Parse(stageModel.CalculationMethod.ToString());
                }
            }

            LPWeb.Model.Template_Wfl_Tasks reModel = new Model.Template_Wfl_Tasks();
            reModel.TemplTaskId = 0;
            reModel.WflStageId  = 0;
            reModel.Type        = 1;
            if (this.iTaskID != 0)
            {
                reModel = this.taskTmpMgr.GetModel(this.iTaskID);
                //reModel.TemplTaskId = this.iTaskID;
            }
            else
            {
                reModel.Enabled = true;
            }
            reModel.TemplTaskId = Convert.ToInt32(this.hdnTaskID.Value);
            reModel.Name        = this.tbxTaskName.Text.Trim();
            reModel.Description = this.tbxDescription.Text.Trim();
            if (chkEnable.Checked)
            {
                reModel.Enabled = true;
            }
            else
            {
                reModel.Enabled = false;
            }

            if (chkExternalViewing.Checked)
            {
                reModel.ExternalViewing = true;
            }
            else
            {
                reModel.ExternalViewing = false;
            }

            if (this.ddlStage.SelectedIndex >= 0)
            {
                reModel.WflStageId = Convert.ToInt32(this.ddlStage.SelectedValue);
            }
            else
            {
                reModel.WflStageId = 0;
            }
            if (this.ddlOwner.SelectedIndex >= 0)
            {
                reModel.OwnerRoleId = Convert.ToInt32(this.ddlOwner.SelectedValue);
            }
            else
            {
                reModel.OwnerRoleId = 0;
            }
            int iDays = 0;

            if (this.ddlPrerequisiteTask.SelectedIndex > 0)
            {
                reModel.DaysDueFromCoe     = null;
                reModel.DaysFromCreation   = null;
                reModel.PrerequisiteTaskId = Convert.ToInt32(this.ddlPrerequisiteTask.SelectedValue);
                if (this.tbxDueDaysByTask.Text.Trim() != "" && Int32.TryParse(this.tbxDueDaysByTask.Text, out iDays))
                {
                    reModel.DaysDueAfterPrerequisite = iDays;
                }
                else
                {
                    reModel.DaysDueAfterPrerequisite = 0;
                }
            }
            else
            {
                reModel.PrerequisiteTaskId       = 0;
                reModel.DaysDueAfterPrerequisite = null;
                if (this.iCalculationMethod == 1)
                {
                    if (this.tbxDueDaysByDate.Text.Trim() != "" && Int32.TryParse(this.tbxDueDaysByDate.Text, out iDays))
                    {
                        reModel.DaysDueFromCoe   = iDays;
                        reModel.DaysFromCreation = null;
                    }
                    else
                    {
                        reModel.DaysDueFromCoe = null;
                    }

                    if (this.tbxDaysDueAfterCreationDate.Text.Trim() != "" && Int32.TryParse(this.tbxDaysDueAfterCreationDate.Text, out iDays) && reModel.DaysDueFromCoe == null)
                    {
                        reModel.DaysFromCreation = iDays;
                    }
                    else
                    {
                        reModel.DaysFromCreation = null;
                    }
                }
                if (this.iCalculationMethod == 2)
                {
                    if (this.tbxDaysDueAfterCreationDate.Text.Trim() != "" && Int32.TryParse(this.tbxDaysDueAfterCreationDate.Text, out iDays))
                    {
                        reModel.DaysFromCreation = iDays;
                        reModel.DaysDueFromCoe   = null;
                    }
                    else
                    {
                        reModel.DaysFromCreation = null;
                    }
                    if (this.tbxDueDaysByDate.Text.Trim() != "" && Int32.TryParse(this.tbxDueDaysByDate.Text, out iDays) && reModel.DaysFromCreation == null)
                    {
                        reModel.DaysDueFromCoe = iDays;
                    }
                    else
                    {
                        reModel.DaysDueFromCoe = null;
                    }
                }
            }
            //if (this.ddlCompletionEmail.SelectedIndex >= 0)
            //{
            //    reModel.CompletionEmailId = Convert.ToInt32(this.ddlCompletionEmail.SelectedValue);
            //}
            //else
            //{
            //    reModel.CompletionEmailId = null;
            //}
            if (this.ddlOverdueEmail.SelectedIndex >= 0)
            {
                reModel.OverdueEmailId = Convert.ToInt32(this.ddlOverdueEmail.SelectedValue);
            }
            else
            {
                reModel.OverdueEmailId = null;
            }
            if (this.ddlWarningEmail.SelectedIndex >= 0)
            {
                reModel.WarningEmailId = Convert.ToInt32(this.ddlWarningEmail.SelectedValue);
            }
            else
            {
                reModel.WarningEmailId = null;
            }

            return(reModel);
        }
        private void LoadTaskData()
        {
            this.tbxTemplateName.Text = "";

            this.tbxTaskName.Text                  = "";
            this.tbxDescription.Text               = "";
            this.ddlOwner.SelectedIndex            = -1;
            this.tbxDueDaysByDate.Text             = "";
            this.tbxDueDaysByTask.Text             = "";
            this.tbxDaysDueAfterCreationDate.Text  = "";
            this.ddlPrerequisiteTask.SelectedIndex = -1;
            this.ddlWarningEmail.SelectedIndex     = -1;
            //this.ddlCompletionEmail.SelectedIndex = -1;
            this.ddlOverdueEmail.SelectedIndex = -1;
            this.ddlStage.SelectedIndex        = -1;

            LPWeb.Model.Template_Wfl_Tasks model = null;
            try
            {
                Template_Workflow             templateMgr = new Template_Workflow();
                LPWeb.Model.Template_Workflow tempModel   = new Model.Template_Workflow();
                tempModel = templateMgr.GetModel(this.iTemplateID);

                Template_Wfl_Stages             wflStageMgr = new Template_Wfl_Stages();
                LPWeb.Model.Template_Wfl_Stages stageModel  = new Model.Template_Wfl_Stages();

                this.iCalculationMethod = tempModel.CalculationMethod;
                if (this.iStageID != 0)
                {
                    stageModel = wflStageMgr.GetModel(this.iStageID);
                    if (stageModel.CalculationMethod.ToString() != "" && stageModel.CalculationMethod.ToString() != "0")
                    {
                        iCalculationMethod = int.Parse(stageModel.CalculationMethod.ToString());
                    }
                }

                this.tbxTemplateName.Text = tempModel.Name;


                model = this.taskTmpMgr.GetModel(this.iTaskID);
                if (this.iTaskID == 0 || model == null)
                {
                    if (this.iTemplateID != 0)
                    {
                        if (this.iStageID != 0)
                        {
                            this.ddlStage.SelectedValue = this.iStageID.ToString();
                        }
                    }
                    this.chkEnable.Checked = true;
                    return;
                }
                //Get Template Name by taskid
                this.ddlStage.SelectedValue            = model.WflStageId.ToString();
                this.tbxTaskName.Text                  = model.Name;
                this.tbxDescription.Text               = model.Description;
                this.ddlOwner.SelectedValue            = model.OwnerRoleId.ToString();
                this.tbxDueDaysByDate.Text             = model.DaysDueFromCoe.ToString();
                this.tbxDueDaysByTask.Text             = model.DaysDueAfterPrerequisite.ToString();
                this.tbxDaysDueAfterCreationDate.Text  = model.DaysFromCreation.ToString();
                this.ddlPrerequisiteTask.SelectedValue = model.PrerequisiteTaskId.ToString();
                if (this.ddlPrerequisiteTask.SelectedIndex > 0)
                {
                    this.ddlStage.Enabled = false;
                }
                if (model.Enabled)
                {
                    this.chkEnable.Checked = true;
                }
                else
                {
                    this.chkEnable.Checked = false;
                }

                if (model.ExternalViewing)
                {
                    this.chkExternalViewing.Checked = true;
                }
                else
                {
                    this.chkExternalViewing.Checked = false;
                }

                //
                if (iCalculationMethod == 1)
                {
                    this.tbxDueDaysByDate.Enabled = true;
                    if (model.DaysFromCreation.ToString() == "" || model.DaysFromCreation.ToString() == "0")
                    {
                        this.tbxDaysDueAfterCreationDate.Enabled = false;
                    }
                    //this.tbxDaysDueAfterCreationDate.Text = "";
                }
                else if (iCalculationMethod == 2)
                {
                    if (model.DaysDueFromCoe.ToString() == "" || model.DaysDueFromCoe.ToString() == "0")
                    {
                        this.tbxDueDaysByDate.Enabled = false;
                    }
                    //this.tbxDueDaysByDate.Text = "";
                    this.tbxDaysDueAfterCreationDate.Enabled = true;
                }

                this.ddlWarningEmail.SelectedValue = model.WarningEmailId.ToString();
                //this.ddlCompletionEmail.SelectedValue = model.CompletionEmailId.ToString();
                this.ddlOverdueEmail.SelectedValue = model.OverdueEmailId.ToString();

                //Set prerequisitetask status base on taskid
                DataTable dtTask = this.taskTmpMgr.GetList(" PrerequisiteTaskId=" + this.iTaskID.ToString()).Tables[0];
                if (dtTask.Rows.Count > 0)
                {
                    this.ddlPrerequisiteTask.SelectedIndex    = -1;
                    this.tbxDueDaysByTask.Text                = "";
                    this.tbxDueDaysByTask.ReadOnly            = true;
                    this.tbxDaysDueAfterCreationDate.Text     = "";
                    this.tbxDaysDueAfterCreationDate.ReadOnly = true;
                    this.ddlPrerequisiteTask.Enabled          = false;
                    this.ddlStage.Enabled      = false;
                    this.hdnIsDependTask.Value = "true";
                }
                //Check Referenced
                LoanTasks loanTaskMgr = new LoanTasks();
                if (loanTaskMgr.GetLoanTaskList(" AND a.TemplTaskId=" + this.iTaskID.ToString()).Rows.Count > 0)
                {
                    this.hdnIsReferenced.Value = "true";
                }
                this.hdnTaskID.Value = this.iTaskID.ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #9
0
    protected void btnSave_Click(object sender, EventArgs e)
    {
        int iStageID = Convert.ToInt32(this.ddlStage.SelectedItem.Value);

        #region Update Loan Stage of Point File

        DataTable SelectedStageInfo   = this.LoanManager.GetLoanStage(" and LoanStageId=" + iStageID);
        string    sStageCompletedDate = SelectedStageInfo.Rows[0]["Completed"].ToString();
        if (sStageCompletedDate != string.Empty)
        {
            bool bIsSuccess = true;

            // invoke PointManager.UpdateLoanStage()

            if (bIsSuccess == false)
            {
                PageCommon.AlertMsg(this, "Failed to update status date in Point.");
                return;
            }
        }

        #endregion

        LoginUser CurrentUser    = new LoginUser();
        int       iCurrentUserID = CurrentUser.iUserID;

        string sTaskName = this.txtTaskName.Text.Trim();

        int    iOwnerID = Convert.ToInt32(this.ddlOwner.SelectedItem.Value);
        string sDueDate = this.txtDueDate.Text.Trim();

        int iPrerequisiteID = Convert.ToInt32(this.ddlPrerequisite.SelectedItem.Value);
        //Get task template Calculation Method
        int iCalculationMethod = 0;
        if (this.LoanTaskInfo.Rows[0]["TemplTaskId"].ToString() != "" && this.LoanTaskInfo.Rows[0]["TemplTaskId"].ToString() != "0")
        {
            LPWeb.BLL.Template_Wfl_Tasks   taskTempMgr   = new Template_Wfl_Tasks();
            LPWeb.Model.Template_Wfl_Tasks taskTempModel = taskTempMgr.GetModel(int.Parse(this.LoanTaskInfo.Rows[0]["TemplTaskId"].ToString()));

            if (taskTempModel != null)
            {
                LPWeb.BLL.Template_Wfl_Stages   stageWflMgr = new Template_Wfl_Stages();
                LPWeb.Model.Template_Wfl_Stages stageModel  = stageWflMgr.GetModel(taskTempModel.WflStageId);
                if (stageModel != null)
                {
                    LPWeb.BLL.Template_Workflow   templateMgr   = new Template_Workflow();
                    LPWeb.Model.Template_Workflow templateModel = templateMgr.GetModel(stageModel.WflTemplId);
                    if (templateModel != null)
                    {
                        iCalculationMethod = templateModel.CalculationMethod;
                    }

                    if (stageModel.CalculationMethod != null && stageModel.CalculationMethod.Value != 0)
                    {
                        iCalculationMethod = stageModel.CalculationMethod.Value;
                    }
                }
            }
        }
        int iDaysToEstClose = 0;
        if (this.txtDaysToEst.Text != string.Empty)
        {
            if (iCalculationMethod == 2 && this.txtDaysAfterCreation.Text != string.Empty)
            {
                iDaysToEstClose        = 0;
                this.txtDaysToEst.Text = "";
            }
            else
            {
                iDaysToEstClose = Convert.ToInt32(this.txtDaysToEst.Text);
            }
        }
        int iDaysAfterCreation = 0;
        if (this.txtDaysAfterCreation.Text != string.Empty)
        {
            if (iCalculationMethod == 1 && this.txtDaysToEst.Text != string.Empty)
            {
                iDaysAfterCreation             = -1;
                this.txtDaysAfterCreation.Text = "";
            }
            else
            {
                iDaysAfterCreation = Convert.ToInt32(this.txtDaysAfterCreation.Text);
            }
        }

        int iDaysDueAfterPre = 0;
        if (this.txtDaysDueAfter.Text != string.Empty)
        {
            iDaysDueAfterPre = Convert.ToInt32(this.txtDaysDueAfter.Text);
        }

        //int iDaysDueAfterPrevStage = 0;
        //if (this.txtDaysDueAfterPrevStage.Text != string.Empty)
        //{
        //    iDaysDueAfterPrevStage = Convert.ToInt32(this.txtDaysDueAfterPrevStage.Text.Trim());
        //}


        int iCompletionEmailID = Convert.ToInt32(this.ddlCompletionEmail.SelectedItem.Value);
        int iWarningEmailID    = Convert.ToInt32(this.ddlWarningEmail.SelectedItem.Value);
        int iOverdueEmailID    = Convert.ToInt32(this.ddlOverdueEmail.SelectedItem.Value);

        // 原Loan Stage ID
        int iOldStageID = Convert.ToInt32(this.LoanTaskInfo.Rows[0]["LoanStageId"]);

        #region 检查任务名称重复
        if (string.IsNullOrEmpty(sTaskName) || sTaskName.Trim() == string.Empty)
        {
            PageCommon.AlertMsg(this, "The task name cannot be blank.");
            return;
        }
        bool bIsExist = this.LoanTaskManager.IsLoanTaskExists_Update(this.iLoanID, this.iTaskID, sTaskName);
        if (bIsExist == true)
        {
            PageCommon.AlertMsg(this, "The task name is already taken.");
            return;
        }
        LPWeb.Model.LoanTasks taskModel = new LPWeb.Model.LoanTasks();
        taskModel.LoanTaskId  = iTaskID;
        taskModel.Name        = sTaskName.Trim();
        taskModel.LoanStageId = iStageID;
        if (iStageID == iOldStageID || iOldStageID <= 0)
        {
            taskModel.OldLoanStageId = 0;
        }
        else
        {
            taskModel.OldLoanStageId = iOldStageID;
        }

        taskModel.Owner        = iOwnerID;
        taskModel.ModifiedBy   = iCurrentUserID;
        taskModel.LastModified = DateTime.Now;
        taskModel.FileId       = iLoanID;

        if (string.IsNullOrEmpty(sDueDate))
        {
            taskModel.Due = DateTime.MinValue;
        }
        else
        {
            taskModel.Due = DateTime.Parse(sDueDate);
        }

        taskModel.DaysDueFromEstClose      = (short)iDaysToEstClose;
        taskModel.DaysFromCreation         = (short)iDaysAfterCreation;
        taskModel.PrerequisiteTaskId       = iPrerequisiteID;
        taskModel.DaysDueAfterPrerequisite = (short)iDaysDueAfterPre;

        taskModel.CompletionEmailId = iCompletionEmailID;
        taskModel.WarningEmailId    = iWarningEmailID;
        taskModel.OverdueEmailId    = iOverdueEmailID;

        taskModel.ExternalViewing = chbExternalViewing.Checked;

        //taskModel.DaysDueAfterPrevStage = (short)iDaysDueAfterPrevStage;

        #endregion

        // update
        //bool bIsSuccess1 = this.LoanTaskManager.UpdateLoanTask(this.iTaskID, sTaskName, sDueDate, iCurrentUserID, iOwnerID, iStageID, iPrerequisiteID, iDaysToEstClose, iDaysDueAfterPre, iWarningEmailID, iOverdueEmailID, iCompletionEmailID, iOldStageID);
        // we need to invoke Workflow Manager UpdateTask in order to set up everything correctly!
        //bool bIsSuccess1 = LPWeb.BLL.WorkflowManager.UpdateTask(this.iTaskID, sTaskName, sDueDate, iCurrentUserID, iOwnerID, iStageID, iPrerequisiteID, iDaysToEstClose, iDaysDueAfterPre, iWarningEmailID, iOverdueEmailID, iCompletionEmailID, iOldStageID);
        bool bIsSuccess1 = LPWeb.BLL.WorkflowManager.UpdateTask(taskModel, this.txtDaysToEst.Text.Trim(), this.txtDaysAfterCreation.Text.Trim(), this.txtDaysDueAfter.Text.Trim(), this.txtDaysDueAfterPrevStage.Text.Trim());
        if (bIsSuccess1 == true)
        {
            SaveCompletetionEmails(iTaskID);
            this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Success", "$('#divContainer').hide();alert('Saved successfully.');window.parent.RefreshPage();", true);
        }
        else
        {
            this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Failed", "$('#divContainer').hide();alert('Failed to save the record.');window.parent.RefreshPage();", true);
        }
    }
Example #10
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string sErrorJs = "window.parent.CloseDialog_EditTask();";

        #region 检查必要参数

        bool bIsValid = PageCommon.ValidateQueryString(this, "LoanID", QueryStringType.ID);
        if (bIsValid == false)
        {
            PageCommon.RegisterJsMsg(this, "Missing required query string.", sErrorJs);
            return;
        }

        this.iLoanID = Convert.ToInt32(this.Request.QueryString["LoanID"]);

        bIsValid = PageCommon.ValidateQueryString(this, "TaskID", QueryStringType.ID);
        if (bIsValid == false)
        {
            PageCommon.RegisterJsMsg(this, "Missing required query string.", sErrorJs);
            return;
        }

        this.iTaskID = Convert.ToInt32(this.Request.QueryString["TaskID"]);

        #endregion

        // server now
        this.hdnNow.Value = DateTime.Now.ToString("MM/dd/yyyy");

        // task icon
        this.imgTaskIcon.ImageUrl = "../images/task/" + WorkflowManager.GetTaskIcon(this.iTaskID);

        #region 加载Loan Task信息

        this.LoanTaskInfo = this.LoanTaskManager.GetLoanTaskInfo(this.iTaskID);
        if (this.LoanTaskInfo.Rows.Count == 0)
        {
            PageCommon.RegisterJsMsg(this, "Invalid required query string.", sErrorJs);
            return;
        }

        #endregion

        #region 检查是否是Prerequisite(is a father?)

        bool bIsPrerequisite = this.LoanTaskManager.IsPrerequisite(this.iTaskID);
        this.hndIsPrerequisite.Value = bIsPrerequisite.ToString();

        #endregion

        #region 获取Borrower和Property信息

        #region Property

        DataTable LoanInfo = this.LoanManager.GetLoanInfo(this.iLoanID);
        if (LoanInfo.Rows.Count == 0)
        {
            PageCommon.RegisterJsMsg(this, "Invalid required query string.", sErrorJs);
            return;
        }
        string sPropertyAddress = LoanInfo.Rows[0]["PropertyAddr"].ToString();
        string sPropertyCity    = LoanInfo.Rows[0]["PropertyCity"].ToString();
        string sPropertyState   = LoanInfo.Rows[0]["PropertyState"].ToString();
        string sPropertyZip     = LoanInfo.Rows[0]["PropertyZip"].ToString();

        string sProperty = sPropertyAddress + ", " + sPropertyCity + ", " + sPropertyState + " " + sPropertyZip;

        // 存储Loan.EstCloseDate
        if (LoanInfo.Rows[0]["EstCloseDate"] != DBNull.Value)
        {
            this.hdnEstCloseDate.Value = Convert.ToDateTime(LoanInfo.Rows[0]["EstCloseDate"]).ToString("MM/dd/yyyy");
        }

        #endregion

        #region Borrower

        DataTable BorrowerInfo = this.LoanManager.GetBorrowerInfo(this.iLoanID);
        if (BorrowerInfo.Rows.Count == 0)
        {
            PageCommon.RegisterJsMsg(this, "There is no Borrower in this loan.", sErrorJs);
            return;
        }
        string sFirstName  = BorrowerInfo.Rows[0]["FirstName"].ToString();
        string sMiddleName = BorrowerInfo.Rows[0]["MiddleName"].ToString();
        string sLastName   = BorrowerInfo.Rows[0]["LastName"].ToString();

        string sBorrower = sLastName + ",  " + sFirstName;
        if (sMiddleName != string.Empty)
        {
            sBorrower += " " + sMiddleName;
        }

        this.lbProperty.Text = sProperty;
        this.lbBorrower.Text = sBorrower;

        #endregion

        #endregion

        if (this.IsPostBack == false)
        {
            #region 加载Stage

            DataTable LoanStages = this.LoanManager.GetLoanStages(this.iLoanID);

            this.ddlStage.DataSource = LoanStages;
            this.ddlStage.DataBind();

            this.ddlStage2.DataSource = LoanStages;
            this.ddlStage2.DataBind();

            #endregion

            #region 加载Owner

            DataTable OwnerList = this.LoanTaskManager.GetLoanTaskOwers(this.iLoanID);

            DataRow EmptyOwnerRow = OwnerList.NewRow();
            EmptyOwnerRow["UserID"]   = 0;
            EmptyOwnerRow["FullName"] = "-- select a task owner--";
            OwnerList.Rows.InsertAt(EmptyOwnerRow, 0);

            this.ddlOwner.DataSource = OwnerList;
            this.ddlOwner.DataBind();

            #endregion

            #region 加载Prerequisite

            // 先绑定Stage
            this.ddlStage.SelectedValue = this.LoanTaskInfo.Rows[0]["LoanStageId"].ToString();

            string sSelectedStageID = string.Empty;
            if (this.Request.QueryString["Stage"] == null)
            {
                sSelectedStageID = this.ddlStage.SelectedItem.Value;
            }
            else
            {
                sSelectedStageID = this.Request.QueryString["Stage"].ToString();
            }

            DataTable PrerequisiteList    = this.LoanTaskManager.GetPrerequisiteList(" and FileID=" + this.iLoanID + " and LoanStageId = " + sSelectedStageID + " and PrerequisiteTaskId is null and LoanTaskId !=" + iTaskID);
            DataRow   NonePrerequisiteRow = PrerequisiteList.NewRow();
            NonePrerequisiteRow["LoanTaskId"] = 0;
            NonePrerequisiteRow["Name"]       = "None";
            PrerequisiteList.Rows.InsertAt(NonePrerequisiteRow, 0);

            this.ddlPrerequisite.DataSource = PrerequisiteList;
            this.ddlPrerequisite.DataBind();

            this.ddlPrerequisite2.DataSource = PrerequisiteList;
            this.ddlPrerequisite2.DataBind();

            #endregion

            #region 加载email template

            Template_Email EmailTempManager = new Template_Email();
            EmailTemplates = EmailTempManager.GetEmailTemplate(" and Enabled = 1");

            DataRow NoneEmailTemplateRow = EmailTemplates.NewRow();
            NoneEmailTemplateRow["TemplEmailId"] = 0;
            NoneEmailTemplateRow["Name"]         = "None";
            EmailTemplates.Rows.InsertAt(NoneEmailTemplateRow, 0);

            this.ddlCompletionEmail.DataSource = EmailTemplates;
            this.ddlCompletionEmail.DataBind();

            this.ddlWarningEmail.DataSource = EmailTemplates;
            this.ddlWarningEmail.DataBind();

            this.ddlOverdueEmail.DataSource = EmailTemplates;
            this.ddlOverdueEmail.DataBind();


            this.ddlEmailTemplate.DataSource = EmailTemplates;
            this.ddlEmailTemplate.DataBind();

            #endregion

            #region 绑定对应模板列表

            LPWeb.BLL.LoanTask_CompletionEmails bllTaskMail = new LoanTask_CompletionEmails();

            gridCompletetionEmails.DataSource = bllTaskMail.GetList("LoanTaskid=" + iTaskID);
            gridCompletetionEmails.DataBind();

            #endregion

            #region Bind Data

            this.txtTaskName.Text = this.LoanTaskInfo.Rows[0]["Name"].ToString();


            #region Owner

            string sOwnerID = this.LoanTaskInfo.Rows[0]["Owner"].ToString();
            if (sOwnerID == string.Empty)
            {
                this.ddlOwner.SelectedIndex = 0;
            }
            else
            {
                this.ddlOwner.SelectedValue = sOwnerID;
            }

            #endregion

            #region ExternalViewing

            if (this.LoanTaskInfo.Rows[0]["ExternalViewing"] != null && this.LoanTaskInfo.Rows[0]["ExternalViewing"].ToString() != "")
            {
                bool ExternalViewing = Convert.ToBoolean(this.LoanTaskInfo.Rows[0]["ExternalViewing"]);

                this.chbExternalViewing.Checked = ExternalViewing;
            }

            #endregion


            #region Due Date

            string sDueDate = this.LoanTaskInfo.Rows[0]["Due"].ToString();
            if (sDueDate != string.Empty)
            {
                this.txtDueDate.Text = Convert.ToDateTime(this.LoanTaskInfo.Rows[0]["Due"]).ToString("MM/dd/yyyy");
            }

            #endregion

            //#region Completed Date

            string sCompletedDate = this.LoanTaskInfo.Rows[0]["Completed"].ToString();
            if (sCompletedDate != string.Empty)
            {
                this.hdnCompleted.Value = Convert.ToDateTime(this.LoanTaskInfo.Rows[0]["Completed"]).ToString("MM/dd/yyyy");
            }

            //#endregion

            this.txtDaysToEst.Text         = this.LoanTaskInfo.Rows[0]["DaysDueFromEstClose"] == DBNull.Value ? string.Empty : this.LoanTaskInfo.Rows[0]["DaysDueFromEstClose"].ToString();
            this.txtDaysAfterCreation.Text = this.LoanTaskInfo.Rows[0]["DaysFromCreation"] == DBNull.Value ? string.Empty : this.LoanTaskInfo.Rows[0]["DaysFromCreation"].ToString();

            this.txtDaysDueAfterPrevStage.Text = this.LoanTaskInfo.Rows[0]["DaysDueAfterPrevStage"] == DBNull.Value ? string.Empty : this.LoanTaskInfo.Rows[0]["DaysDueAfterPrevStage"].ToString();


            //Get task template Calculation Method
            if (this.LoanTaskInfo.Rows[0]["TemplTaskId"].ToString() != "" && this.LoanTaskInfo.Rows[0]["TemplTaskId"].ToString() != "0")
            {
                LPWeb.BLL.Template_Wfl_Tasks   taskTempMgr   = new Template_Wfl_Tasks();
                LPWeb.Model.Template_Wfl_Tasks taskTempModel = taskTempMgr.GetModel(int.Parse(this.LoanTaskInfo.Rows[0]["TemplTaskId"].ToString()));
                int iCalculationMethod = 0;
                if (taskTempModel != null)
                {
                    LPWeb.BLL.Template_Wfl_Stages   stageWflMgr = new Template_Wfl_Stages();
                    LPWeb.Model.Template_Wfl_Stages stageModel  = stageWflMgr.GetModel(taskTempModel.WflStageId);
                    if (stageModel != null)
                    {
                        LPWeb.BLL.Template_Workflow   templateMgr   = new Template_Workflow();
                        LPWeb.Model.Template_Workflow templateModel = templateMgr.GetModel(stageModel.WflTemplId);
                        if (templateModel != null)
                        {
                            iCalculationMethod = templateModel.CalculationMethod;
                        }

                        if (stageModel.CalculationMethod != null && stageModel.CalculationMethod.Value != 0)
                        {
                            iCalculationMethod = stageModel.CalculationMethod.Value;
                        }
                    }
                }

                if (iCalculationMethod == 1 && this.txtDaysAfterCreation.Text == "")
                {
                    this.txtDaysToEst.Enabled         = true;
                    this.txtDaysAfterCreation.Enabled = false;
                }
                else if (iCalculationMethod == 2 && this.txtDaysToEst.Text == "")
                {
                    this.txtDaysToEst.Enabled         = false;
                    this.txtDaysAfterCreation.Enabled = true;
                }
            }
            #region Prerequisite Task Id

            string sPrerequisiteTaskId = this.LoanTaskInfo.Rows[0]["PrerequisiteTaskId"] == DBNull.Value ? string.Empty : this.LoanTaskInfo.Rows[0]["PrerequisiteTaskId"].ToString();
            if (sPrerequisiteTaskId == string.Empty)
            {
                this.ddlPrerequisite.SelectedIndex = 0;
            }
            else
            {
                this.ddlPrerequisite.SelectedValue = sPrerequisiteTaskId;
            }

            #endregion

            this.txtDaysDueAfter.Text = LoanTaskInfo.Rows[0]["DaysDueAfterPrerequisite"] == DBNull.Value ? string.Empty : this.LoanTaskInfo.Rows[0]["DaysDueAfterPrerequisite"].ToString();

            #region Completion Email

            string sCompletionEmailID = this.LoanTaskInfo.Rows[0]["CompletionEmailId"].ToString();
            if (sCompletionEmailID == string.Empty)
            {
                this.ddlCompletionEmail.SelectedIndex = 0;
            }
            else
            {
                this.ddlCompletionEmail.SelectedValue = sCompletionEmailID;
            }

            #endregion

            #region Warning Email

            string sWarningEmailId = this.LoanTaskInfo.Rows[0]["WarningEmailId"].ToString();
            if (sWarningEmailId == string.Empty)
            {
                this.ddlWarningEmail.SelectedIndex = 0;
            }
            else
            {
                this.ddlWarningEmail.SelectedValue = sWarningEmailId;
            }

            #endregion

            #region Overdue Email

            string sOverdueEmailId = this.LoanTaskInfo.Rows[0]["OverdueEmailId"].ToString();
            if (sOverdueEmailId == string.Empty)
            {
                this.ddlOverdueEmail.SelectedIndex = 0;
            }
            else
            {
                this.ddlOverdueEmail.SelectedValue = sOverdueEmailId;
            }

            #endregion

            #endregion
        }
    }
        /// <summary>
        /// Bind Grid
        /// </summary>
        private void BindTemplatesGrid()
        {
            int    pageSize       = AspNetPager1.PageSize;
            int    pageIndex      = PageIndex;
            string queryCondition = GenerateQueryCondition();

            int recordCount = 0;

            DataSet   tpLists = null;
            DataTable dtList  = null;

            try
            {
                tpLists = template.GetTemplateWorkflows(pageSize, pageIndex, queryCondition, out recordCount, OrderName, OrderType);
                if (!tpLists.Tables[0].Columns.Contains("Stages"))
                {
                    tpLists.Tables[0].Columns.Add("Stages");
                }
                if (!tpLists.Tables[0].Columns.Contains("Custom_Cov"))
                {
                    tpLists.Tables[0].Columns.Add("Custom_Cov");
                }
                if (!tpLists.Tables[0].Columns.Contains("Default_Cov"))
                {
                    tpLists.Tables[0].Columns.Add("Default_Cov");
                }
                if (!tpLists.Tables[0].Columns.Contains("Enabled_Cov"))
                {
                    tpLists.Tables[0].Columns.Add("Enabled_Cov");
                }

                Template_Wfl_Stages stage;
                DataSet             ds;
                string sName        = "";
                string Default_Type = "";
                int    search_idx   = -1;
                int    iWflTempId   = 0;

                Template_Workflow WorkflowTemplateManager = new Template_Workflow();

                foreach (DataRow dr in tpLists.Tables[0].Rows)
                {
                    if (dr["WflTemplId"] != DBNull.Value)
                    {
                        iWflTempId = (int)dr["WflTemplId"];
                    }

                    if ((dr["Name"] != DBNull.Value) && (dr["Name"].ToString() != ""))
                    {
                        sName = (string)dr["Name"];
                        if (sName != null)
                        {
                            sName      = sName.ToLower();
                            search_idx = sName.IndexOf("prospect");
                            if (search_idx >= 0)
                            {
                                Default_Type = "Prospect";
                            }
                            else
                            {
                                Default_Type = "Processing";
                            }
                        }
                    }

                    if (dr["WorkflowType"] == DBNull.Value || dr["WorkflowType"].ToString() == "")
                    {
                        //Default Processing
                        dr["WorkflowType"] = Default_Type;
                        WorkflowTemplateManager.UpdateWorkflowType(iWflTempId, Default_Type);
                    }
                    if (dr["Default"] == DBNull.Value || dr["Default"].ToString() == "" || dr["Default"].ToString() == "0" || dr["Default"].ToString() == "False")
                    {
                        //Default No
                        dr["Default_Cov"] = "No";
                    }
                    else
                    {
                        dr["Default_Cov"] = "Yes";
                    }
                    if (dr["Custom"] == DBNull.Value || dr["Custom"].ToString() == "" || dr["Custom"].ToString() == "0" || dr["Custom"].ToString() == "False")
                    {
                        //Default Standard
                        dr["Custom_Cov"] = "Standard";
                    }
                    else
                    {
                        dr["Custom_Cov"] = "Custom";
                    }

                    if (dr["Enabled"] == DBNull.Value || dr["Enabled"].ToString() == "" || dr["Enabled"].ToString() == "0" || dr["Enabled"].ToString() == "False")
                    {
                        dr["Enabled_Cov"] = "No";
                    }
                    else
                    {
                        dr["Enabled_Cov"] = "Yes";
                    }

                    stage        = new Template_Wfl_Stages();
                    ds           = stage.GetList(0, "WflTemplId = " + dr["WflTemplId"].ToString(), "SequenceNumber");
                    dr["Stages"] = ds.Tables[0].Rows.Count;
                }
                if (OrderName == "Stages")
                {
                    DataView dv = tpLists.Tables[0].DefaultView;
                    dv.Sort = "Stages " + SortType;
                    dtList  = dv.ToTable();
                }
                else
                {
                    tpLists.AcceptChanges();
                    dtList = tpLists.Tables[0];
                }
            }
            catch (Exception exception)
            {
                LPLog.LogMessage(exception.Message);
            }

            AspNetPager1.PageSize    = pageSize;
            AspNetPager1.RecordCount = recordCount;

            gvWorkFolwList.DataSource = dtList;
            gvWorkFolwList.DataBind();
        }
Example #12
0
    protected void Page_Load(object sender, EventArgs e)
    {
        #region 校验必要参数

        // from
        if (this.Request.QueryString["from"] == null)
        {
            this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Missing3", "$('#divContainer').hide();alert('Missing required query string.');window.parent.location.href='WorkflowTemplateList.aspx');", true);
            return;
        }
        else
        {
            this.sFrom = this.Request.QueryString["from"];
        }

        bool bIsValid = PageCommon.ValidateQueryString(this, "WflStageID", QueryStringType.ID);
        if (bIsValid == false)
        {
            string sWflStageID = this.Request.QueryString["WflStageID"].ToString();
            if (sWflStageID != "0")
            {
                this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Missing1", "$('#divContainer').hide();alert('Missing required query string.');window.parent.location.href='" + this.sFrom + "';", true);
                return;
            }
        }
        this.iWflStageID = Convert.ToInt32(this.Request.QueryString["WflStageID"]);

        bIsValid = PageCommon.ValidateQueryString(this, "WorkflowTemplateID", QueryStringType.ID);
        if (bIsValid == false)
        {
            this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Missing2", "$('#divContainer').hide();alert('Missing required query string.');window.parent.location.href='" + this.sFrom + "';", true);
            return;
        }
        this.iWorkflowTemplateID = Convert.ToInt32(this.Request.QueryString["WorkflowTemplateID"]);

        if (this.Request.QueryString["PageIndex"] != null) // PageIndex
        {
            try
            {
                PageIndex = int.Parse(this.Request.QueryString["PageIndex"].ToString());
            }
            catch
            {
                PageIndex = 1;
            }
        }
        else
        {
            PageIndex = AspNetPager1.CurrentPageIndex;
        }



        #endregion

        Template_Workflow WorkflowTemplateManager = new Template_Workflow();

        #region 加载Workflow Stage信息

        DataTable WflStageInfo = null;
        if (this.iWflStageID > 0)
        {
            WflStageInfo = WorkflowTemplateManager.GetWflStageInfo(this.iWflStageID);
            if (WflStageInfo.Rows.Count == 0)
            {
                this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Invalid1", "$('#divContainer').hide();alert('Invalid required query string.');window.parent..location.href='" + this.sFrom + "';", true);
                return;
            }
        }

        #endregion

        #region 加载Workflow Template信息

        DataTable WorkflowTemplateInfo = WorkflowTemplateManager.GetWorkflowTemplateInfo(this.iWorkflowTemplateID);
        if (WorkflowTemplateInfo.Rows.Count == 0)
        {
            this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Invalid2", "$('#divContainer').hide();alert('Invalid required query string.');window.parent..location.href='" + this.sFrom + "';", true);
            return;
        }

        string sWorkflowTemplate = WorkflowTemplateInfo.Rows[0]["Name"].ToString();
        string sWorkflowType     = WorkflowTemplateInfo.Rows[0]["WorkflowType"].ToString();
        string sCalcMethod       = WorkflowTemplateInfo.Rows[0]["CalculationMethod"].ToString();

        this.lbWorkflowTemplate.Text = sWorkflowTemplate;
        this.lbWorkflowType.Text     = sWorkflowType;

        #endregion

        #region 加载Workflow Task List

        Template_Stages StageTemplateManager = new Template_Stages();

        string sSql       = string.Empty;
        string sOrderName = string.Empty;
        if (this.iWflStageID == 0)   // // All Stages
        {
            //sSql = "select top(10) a.*, b.Name as PrerequisiteTask, c.Name as StageName, case when a.Enabled=1 then 'Yes' else 'No' end as TaskEnabled "
            //            + "from Template_Wfl_Tasks as a left join Template_Wfl_Tasks as b on a.PrerequisiteTaskId = b.TemplTaskId "
            //            + "inner join Template_Wfl_Stages as c on a.WflStageId = c.WflStageId "
            //            + "where a.WflStageId in (select WflStageId from Template_Wfl_Stages where WflTemplId=" + this.iWorkflowTemplateID + ")";
            sSql       = " AND WflTemplId='" + this.iWorkflowTemplateID + "'";
            sOrderName = "StageName";
        }
        else
        {
            //sSql = "select top(10) a.*, b.Name as PrerequisiteTask, c.Name as StageName, case when a.Enabled=1 then 'Yes' else 'No' end as TaskEnabled "
            //            + "from Template_Wfl_Tasks as a left join Template_Wfl_Tasks as b on a.PrerequisiteTaskId = b.TemplTaskId "
            //            + "inner join Template_Wfl_Stages as c on a.WflStageId = c.WflStageId "
            //            + "where a.WflStageId=" + this.iWflStageID;
            sSql       = " AND WflStageId='" + this.iWflStageID + "'";
            sOrderName = "SequenceNumber";
        }
        int pageSize    = AspNetPager1.PageSize;
        int pageIndex   = PageIndex;
        int recordCount = 0;

        //DataTable TaskListData = LPWeb.DAL.DbHelperSQL.ExecuteDataTable(sSql);
        LPWeb.BLL.Template_Wfl_Tasks tBLL = new Template_Wfl_Tasks();
        DataSet TaskListData = tBLL.GetWorkflowStageTasks(pageSize, pageIndex, sOrderName, sSql, out recordCount);

        AspNetPager1.PageSize    = pageSize;
        AspNetPager1.RecordCount = recordCount;

        this.gridWorkflowTaskList.DataSource = TaskListData;
        this.gridWorkflowTaskList.DataBind();

        #endregion

        if (this.IsPostBack == false)
        {
            #region 加载Workflow Stage List

            DataTable WflStageListData = WorkflowTemplateManager.GetWflStageList(this.iWorkflowTemplateID);

            DataRow NewStageRow = WflStageListData.NewRow();
            NewStageRow["TemplStageId"] = DBNull.Value;
            NewStageRow["Name"]         = "All Stages";
            WflStageListData.Rows.InsertAt(NewStageRow, 0);

            this.ddlStage.DataSource = WflStageListData;
            this.ddlStage.DataBind();

            #endregion

            #region 绑定数据

            if (this.iWflStageID == 0)  // All Stages
            {
            }
            else
            {
                this.ddlStage.SelectedValue = this.iWflStageID.ToString();
                this.chkEnabled.Checked     = Convert.ToBoolean(WflStageInfo.Rows[0]["Enabled"]);
                this.txtSeq.Text            = WflStageInfo.Rows[0]["SequenceNumber"].ToString();
                if (WflStageInfo.Rows[0]["CalculationMethod"].ToString() != "" &&
                    WflStageInfo.Rows[0]["CalculationMethod"].ToString() != "0")
                {
                    sCalcMethod = WflStageInfo.Rows[0]["CalculationMethod"].ToString();
                }

                if (sCalcMethod != "3")
                {
                    if (sCalcMethod != "" && sCalcMethod != "0")
                    {
                        this.hdnCalcDueDateMethod.Value = sCalcMethod == "1" ? "Est Close Date" : "Creation Date";
                        //this.ddlCalcDueDateMethod.SelectedValue = sCalcMethod == "1" ? "Est Close Date" : "Creation Date";
                    }
                    if (sCalcMethod == "1")
                    {
                        this.txtDaysFromEstClose.Text     = WflStageInfo.Rows[0]["DaysFromEstClose"].ToString();
                        this.txtDaysFromEstClose.Enabled  = true;
                        this.txtDaysAfterCreation.Enabled = false;
                    }
                    else
                    {
                        this.txtDaysFromEstClose.Enabled  = false;
                        this.txtDaysAfterCreation.Text    = WflStageInfo.Rows[0]["DaysFromCreation"].ToString();
                        this.txtDaysAfterCreation.Enabled = true;
                    }
                }
                else
                {
                    this.hdnCalcDueDateMethod.Value = "Completion Date of the previous Stage";
                }
            }
            #endregion
        }
        Template_Wfl_Stages tempWflStages = new Template_Wfl_Stages();
        this.hdnMinStagesSeq.Value = tempWflStages.GetMinStageSeqNumByWflTempID(this.iWorkflowTemplateID).ToString();
        this.hdnSecStagesSeq.Value = tempWflStages.GetSecStageSeqNumByWflTempID(this.iWorkflowTemplateID).ToString();
    }
Example #13
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Page_Load(object sender, EventArgs e)
    {
        #region 权限验证

        this.CurrentUser = new LoginUser();
        if (this.CurrentUser.userRole.CustomTask.ToString() == "")
        {
            Response.Redirect("../Unauthorize1.aspx");
            return;
        }
        else
        {
            this.hdnCustomTask.Value        = this.CurrentUser.userRole.CustomTask.ToString();
            this.hdnAssignTask.Value        = this.CurrentUser.userRole.AssignTask.ToString();
            this.hdnCompleteOtherTask.Value = this.CurrentUser.userRole.MarkOtherTaskCompl == true ? "True" : "False";
        }

        #endregion

        #region 检查必要参数

        bool bIsValid = PageCommon.ValidateQueryString(this, "LoanID", QueryStringType.ID);
        if (bIsValid == false)
        {
            //this.Response.Write("Missing required query string.");
            try
            {
                this.Response.End();
            }
            catch
            {
            }
        }

        this.iLoanID = Convert.ToInt32(this.Request.QueryString["LoanID"]);

        #endregion

        // login user id
        this.hdnLoginUserID.Value = this.CurrentUser.iUserID.ToString();

        #region 加载Loan

        Loans     LoanManager = new Loans();
        DataTable LoanInfo    = LoanManager.GetLoanInfo(this.iLoanID);
        if (LoanInfo.Rows.Count == 0)
        {
            this.Response.Write("Invalid query string.");
            try
            {
                this.Response.End();
            }
            catch
            {
            }
        }

        #endregion

        #region Active Loan or Not

        string sLoanStatus = LoanInfo.Rows[0]["Status"].ToString();
        this.hdnLoanStatus.Value = sLoanStatus;

        #endregion

        #region Is Post-Close Complated

        string    sSqlx = "select * from LoanStages where FileId=" + this.iLoanID + " and StageName='Post-Close'";
        DataTable PostCloseStageInfo = LPWeb.DAL.DbHelperSQL.ExecuteDataTable(sSqlx);
        if (PostCloseStageInfo.Rows.Count == 0)
        {
            this.hdnIsPostCloseUncompleted.Value = "false";
        }
        else
        {
            string CompletedDate = PostCloseStageInfo.Rows[0]["Completed"].ToString();
            if (CompletedDate == string.Empty)
            {
                this.hdnIsPostCloseUncompleted.Value = "true";
            }
            else
            {
                this.hdnIsPostCloseUncompleted.Value = "false";
            }
        }

        #endregion

        #region hidden fields for Regenerate

        #region 获取Loan Workflow Template ID

        LoanWflTempl LoanWflTemplManager = new LoanWflTempl();
        DataTable    LoanWflTempInfo     = LoanWflTemplManager.GetLoanWorkflowTemplateInfo(this.iLoanID);
        if (LoanWflTempInfo.Rows.Count > 0)
        {
            this.hdnLoanWflTempID.Value = LoanWflTempInfo.Rows[0]["WflTemplId"].ToString();
        }

        #endregion

        #region 获取Default Workflow Template ID and Name

        Template_Workflow WorkflowTempManager     = new Template_Workflow();
        DataTable         DefaultWorkflowTempInfo = WorkflowTempManager.GetDefaultWorkflowTemplateInfo(sLoanStatus);
        if (DefaultWorkflowTempInfo.Rows.Count > 0)
        {
            this.hdnDefaultWflTempID.Value   = DefaultWorkflowTempInfo.Rows[0]["WflTemplId"].ToString();
            this.hdnDefaultWflTempName.Value = DefaultWorkflowTempInfo.Rows[0]["Name"].ToString();
        }

        #endregion

        #endregion

        #region 加载Filter

        #region 加载Task Owner

        DataTable TaskOwners = this.LoanTaskManager.GetTaskOwnerList(this.iLoanID);

        DataRow AllTaskOwnerRow = TaskOwners.NewRow();
        AllTaskOwnerRow["UserID"]   = 0;
        AllTaskOwnerRow["FullName"] = "All";
        TaskOwners.Rows.InsertAt(AllTaskOwnerRow, 0);

        this.ddlTaskOwner.DataSource = TaskOwners;
        this.ddlTaskOwner.DataBind();

        #endregion

        #region 加载Stage

        DataTable LoanStages = LoanManager.GetLoanStages(this.iLoanID);

        DataRow AllStageRow = LoanStages.NewRow();
        AllStageRow["LoanStageID"] = 0;
        AllStageRow["StageName"]   = "All";
        LoanStages.Rows.InsertAt(AllStageRow, 0);

        this.ddlStage.DataSource = LoanStages;
        this.ddlStage.DataBind();

        #endregion

        #endregion

        #region 生成Stage & Task树

        #region 加载筛选后的Loan Stage

        #region sWhere_Stage

        string sWhere_Stage = string.Empty;
        if (this.Request.QueryString["StageFilter"] != null)
        {
            string sStageFilter = this.Request.QueryString["StageFilter"].ToString();
            sWhere_Stage += " and LoanStageId = " + sStageFilter;
        }
        else
        {
            sWhere_Stage += " and FileId = " + this.iLoanID;
        }

        #endregion

        DataTable LoanStageNodes = LoanManager.GetLoanStage(sWhere_Stage);

        #endregion

        StringBuilder sbStageTemplate = new StringBuilder();
        foreach (DataRow StageRow in LoanStageNodes.Rows)
        {
            string sStageName = StageRow["StageName"].ToString();

            #region 获取Template_Stage.Alias

            if (StageRow["WflStageId"] != DBNull.Value)
            {
                string sWflStageId = StageRow["WflStageId"].ToString();

                Template_Wfl_Stages Template_Wfl_Stages1     = new Template_Wfl_Stages();
                DataTable           Template_Wfl_Stages_info = Template_Wfl_Stages1.GetList(" WflStageId=" + sWflStageId).Tables[0];
                if (Template_Wfl_Stages_info.Rows.Count > 0)
                {
                    string sTemplStageId = Template_Wfl_Stages_info.Rows[0]["TemplStageId"].ToString();

                    if (sTemplStageId != string.Empty)
                    {
                        Template_Stages Template_Stages1    = new Template_Stages();
                        DataTable       Template_Stage_Info = Template_Stages1.GetStageTemplateList(" and TemplStageId=" + sTemplStageId);
                        if (Template_Stage_Info.Rows.Count > 0)
                        {
                            string sAlias = Template_Stage_Info.Rows[0]["Alias"].ToString();
                            if (sAlias != string.Empty)
                            {
                                sStageName = sAlias;
                            }
                        }
                    }
                }
            }

            #endregion

            string sLoanStageID       = StageRow["LoanStageId"].ToString();
            int    iLoanStageID       = Convert.ToInt32(StageRow["LoanStageId"]);
            string sCompletedDate     = StageRow["Completed"].ToString() == string.Empty ? string.Empty : " (" + Convert.ToDateTime(StageRow["Completed"]).ToString("MM/dd/yyyy") + ")";
            string sStageIconFileName = this.GetStageIconFileName(iLoanStageID);
            string sLi = "<li><img class='StageIcon' src='../images/stage/" + sStageIconFileName + "' /><a onclick='return Stage_onclick(this);' href='LoanDetailsTask.aspx?LoanID=" + this.iLoanID + "&Stage=" + sLoanStageID + "'><span>" + sStageName + sCompletedDate + "</span></a>";
            sbStageTemplate.AppendLine(sLi);

            #region 加载Stage下的Task

            StringBuilder sbChildTaskList = new StringBuilder();

            #region sWhere_Task

            string sWhere_Task = string.Empty;

            // TaskStatus
            sWhere_Task += this.BuildWhere_TaskStatus();

            // TaskOwner
            sWhere_Task += BuildWhere_TaskOwner();

            // Due
            sWhere_Task += BuildWhere_Due();

            #endregion

            if (sLoanStageID != string.Empty)
            {
                DataTable ChildTasks = this.LoanTaskManager.GetLoanTaskList(" and  FileId = " + this.iLoanID + " and LoanStageId = " + sLoanStageID + " and PrerequisiteTaskId is null" + sWhere_Task);
                if (ChildTasks.Rows.Count > 0)
                {
                    sbChildTaskList.AppendLine("<ul>");

                    foreach (DataRow ChildTaskRow in ChildTasks.Rows)
                    {
                        string sTaskID               = ChildTaskRow["LoanTaskId"].ToString();
                        string sTaskName             = ChildTaskRow["Name"].ToString();
                        string sCmptDate             = ChildTaskRow["Completed"].ToString() == string.Empty ? string.Empty : " " + Convert.ToDateTime(ChildTaskRow["Completed"]).ToString("MM/dd/yyyy");
                        string sLoanTaskIconFileName = this.GetLoanTaskIconFileName(Convert.ToInt32(sTaskID));
                        string sChecked              = ChildTaskRow["Completed"].ToString() == string.Empty ? string.Empty : "checked";
                        string sChildDisabled        = string.Empty;

                        #region 加载Prerequisite Tasks
                        StringBuilder sbPrerequisiteTaskList = new StringBuilder();
                        DataTable     PreTasks = this.LoanTaskManager.GetLoanTaskList(" and  FileId = " + this.iLoanID + " and PrerequisiteTaskId = " + sTaskID);
                        if (PreTasks.Rows.Count > 0)
                        {
                            sbPrerequisiteTaskList.AppendLine("<ul>");

                            foreach (DataRow PreTask in PreTasks.Rows)
                            {
                                string sPreTaskID               = PreTask["LoanTaskId"].ToString();
                                string sPreTaskName             = PreTask["Name"].ToString();
                                string sPreCmptDate             = PreTask["Completed"].ToString() == string.Empty ? string.Empty : " " + Convert.ToDateTime(PreTask["Completed"]).ToString("MM/dd/yyyy");
                                string sPreLoanTaskIconFileName = this.GetLoanTaskIconFileName(Convert.ToInt32(sPreTaskID));
                                string sPreChecked              = PreTask["Completed"].ToString() == string.Empty ? string.Empty : "checked";

                                // 如果prerequisite task未完成,其子task不允许完成
                                string sPreDisabled = string.Empty;
                                if (ChildTaskRow["Completed"].ToString() == string.Empty)
                                {
                                    sPreDisabled = "disabled title='Please complete prerequisite task at first.'";
                                }
                                else
                                {
                                    // 如果如果prerequisite task完成了,如果其下有任一child task也完成了,那么不允许uncomplete prerequisite task
                                    if (sPreCmptDate != string.Empty)
                                    {
                                        sChildDisabled = "disabled title='You cannot un-complete a task that has completed dependent task(s). Please un-complete the dependent task(s) first.'";
                                    }
                                }

                                string sPreTaskTemplate = "<li><input myTaskID='" + sPreTaskID + "' myStageID='" + sLoanStageID + "' type='checkbox' class='TaskCheckbox' " + sPreChecked + " " + sPreDisabled + " /><img class='TaskIcon' src='../images/task/" + sPreLoanTaskIconFileName + "' /><a onclick='return Task_onclick(this);' href='LoanDetailsTask.aspx?LoanID=" + this.iLoanID + "&Stage=" + sLoanStageID + "&TaskID=" + sPreTaskID + "'><span title='" + sPreTaskName + sPreCmptDate + "'>" + sPreTaskName + sPreCmptDate + "</span></a></li>";
                                sbPrerequisiteTaskList.AppendLine(sPreTaskTemplate);
                            }

                            sbPrerequisiteTaskList.AppendLine("</ul>");
                        }

                        #endregion

                        string sTaskTemplate = "<li><input myTaskID='" + sTaskID + "' myStageID='" + sLoanStageID + "' type='checkbox' class='TaskCheckbox' " + sChecked + " " + sChildDisabled + " />"
                                               + "<img class='TaskIcon' src='../images/task/" + sLoanTaskIconFileName + "' />"
                                               + "<a onclick='return Task_onclick(this);' href='LoanDetailsTask.aspx?LoanID=" + this.iLoanID + "&Stage=" + sLoanStageID + "&TaskID=" + sTaskID + "'><span title='" + sTaskName + sCmptDate + "'>" + sTaskName + sCmptDate + "</span></a>";
                        sbChildTaskList.AppendLine(sTaskTemplate);
                        sbChildTaskList.AppendLine(sbPrerequisiteTaskList.ToString());

                        sbChildTaskList.AppendLine("</li>");
                    }

                    sbChildTaskList.AppendLine("</ul>");
                }
            }

            #endregion

            sbStageTemplate.AppendLine(sbChildTaskList.ToString());


            sbStageTemplate.AppendLine("</li>");
        }

        this.ltrStageTaskNodes.Text = sbStageTemplate.ToString();

        #endregion

        #region 加载Task列表

        // default
        string sWhere = " and a.FileID=" + this.iLoanID;

        // TaskStatus
        sWhere += this.BuildWhere_TaskStatus();

        // TaskOwner
        sWhere += BuildWhere_TaskOwner();

        // StageFilter
        sWhere += BuildWhere_StageFilter();

        // Due
        sWhere += BuildWhere_Due();

        // TaskID
        if (this.Request.QueryString["TaskID"] != null)
        {
            string sTaskID = this.Request.QueryString["TaskID"].ToString();
            sWhere += " and a.LoanTaskId = " + sTaskID;
        }

        DataTable LoanTaskData = this.LoanTaskManager.GetLoanTaskList(sWhere);
        this.gridTaskList.DataSource = LoanTaskData;
        this.gridTaskList.DataBind();

        #endregion

        // Add thead and tbody
        PageCommon.MakeGridViewAccessible(this.gridTaskList);
    }