Beispiel #1
0
        protected void btnDelete_Click(object sender, EventArgs e)
        {
            Template_Workflow WorkflowTemplateManager = new Template_Workflow();

            WorkflowTemplateManager.DeleteWorkflowTemplate(this.iWorkflowTemplateID);
            // success
            this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Success", "$('#divContainer').hide();alert('Delete workflow template successfully.');window.parent.location.href='WorkflowTemplateList.aspx';", true);
        }
        private void SetControlsReadyonly()
        {
            this.tbxTemplateName.ReadOnly = true;

            this.tbxTaskName.ReadOnly                 = false;
            this.tbxDescription.ReadOnly              = false;
            this.tbxDueDaysByDate.ReadOnly            = false;
            this.tbxDueDaysByTask.ReadOnly            = false;
            this.tbxDaysDueAfterCreationDate.ReadOnly = false;
            this.ddlStage.Enabled            = true;
            this.ddlOwner.Enabled            = true;
            this.ddlPrerequisiteTask.Enabled = true;
            //this.ddlCompletionEmail.Enabled = true;
            this.ddlOverdueEmail.Enabled    = true;
            this.ddlWarningEmail.Enabled    = true;
            this.chkEnable.Enabled          = true;
            this.chkExternalViewing.Enabled = true;

            if (this.iTaskID == 0)
            {
                this.btnDelete.Enabled = false;
            }
            else
            {
                this.btnDelete.Enabled = true;
            }
            this.btnDelete.Visible = true;
            this.btnSave.Visible   = true;

            Template_Workflow templateMgr = new Template_Workflow();

            LPWeb.Model.Template_Workflow tempModel = new Model.Template_Workflow();
            tempModel = templateMgr.GetModel(this.iTemplateID);
            this.hdnCustomTemplate.Value = tempModel.Custom.ToString();
            if (tempModel.Custom == false)
            {
                this.tbxTemplateName.Enabled = false;

                this.tbxTaskName.Enabled                 = false;
                this.tbxDescription.Enabled              = false;
                this.tbxDueDaysByDate.Enabled            = false;
                this.tbxDueDaysByTask.Enabled            = false;
                this.tbxDaysDueAfterCreationDate.Enabled = false;
                this.ddlStage.Enabled            = false;
                this.ddlOwner.Enabled            = false;
                this.ddlPrerequisiteTask.Enabled = false;
                //this.ddlCompletionEmail.Enabled = false;
                this.ddlOverdueEmail.Enabled    = false;
                this.ddlWarningEmail.Enabled    = false;
                this.chkEnable.Enabled          = false;
                this.chkExternalViewing.Enabled = false;

                this.btnSave.Enabled   = false;
                this.btnDelete.Enabled = false;
            }
        }
        protected void btnDelete_Click(object sender, EventArgs e)
        {
            string TWFIDs = hdnTmpIDs.Value;

            if (TWFIDs.Length <= 0)
            {
                return;
            }
            string[] templIdList;
            try
            {
                templIdList = TWFIDs.Split(',');
                if (templIdList.Length <= 0)
                {
                    return;
                }
                int wflTemplId           = 0;
                BLL.Template_Workflow tw = new Template_Workflow();
                foreach (string tempId in templIdList)
                {
                    try
                    {
                        wflTemplId = 0;
                        int.TryParse(tempId, out wflTemplId);
                        if (wflTemplId > 0)
                        {
                            tw.WorkflowTemplateDelete(wflTemplId);
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                }
                BindTemplatesGrid();
            }
            catch
            { }
            finally
            {
                hdnTmpIDs.Value = string.Empty;
            }
        }
Beispiel #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            #region 校验必要参数

            // WorkflowTemplateID
            bool bIsValid = PageCommon.ValidateQueryString(this, "WorkflowTemplateID", QueryStringType.ID);
            if (bIsValid == false)
            {
                PageCommon.WriteJsEnd(this, "Missing required query string.", "window.parent.location.href=window.parent.location.href");
            }
            this.iWorkflowTemplateID = Convert.ToInt32(this.Request.QueryString["WorkflowTemplateID"]);

            #endregion

            if (Request.Url != null)
            {
                FromURL = Request.Url.ToString();
            }

            Template_Workflow WorkflowTemplateManager = new Template_Workflow();

            #region 加载Workflow Template信息

            DataTable WorkflowTemplateInfo = WorkflowTemplateManager.GetWorkflowTemplateInfo(this.iWorkflowTemplateID);
            if (WorkflowTemplateInfo.Rows.Count == 0)
            {
                PageCommon.WriteJsEnd(this, "Invalid required query string.", "window.parent.location.href=window.parent.location.href");
            }

            #endregion

            // is custom
            this.hdnIsCustom.Text = WorkflowTemplateInfo.Rows[0]["Custom"].ToString();
            this.gWorkflowType    = WorkflowTemplateInfo.Rows[0]["WorkflowType"].ToString();

            // __doPostBack
            this.GetPostBackEventReference(this.btnSave);

            if (this.IsPostBack == false)
            {
                #region build ddlSeq options

                StringBuilder sbSeqOptions = new StringBuilder();
                for (int i = 0; i < 999; i++)
                {
                    int iSeq = i + 1;
                    sbSeqOptions.AppendLine("<option value=\"" + iSeq + "\">" + iSeq + "</option>");
                }
                this.ltrSeqOptions.Text = sbSeqOptions.ToString();

                #endregion

                #region 加载Stage Template List

                Template_Stages StageTemplateManager = new Template_Stages();

                // Processing and Prospect
                DataTable StageTemplateList = StageTemplateManager.GetStageTemplateList(" and [Enabled]=1");
                this.ddlStageTemplateList.DataSource = StageTemplateList;
                this.ddlStageTemplateList.DataBind();

                // Processing
                DataView StageTemplateListView1 = new DataView(StageTemplateList);
                StageTemplateListView1.RowFilter   = "WorkflowType='Processing'";
                this.StageTemplateList1            = this.AddSelectStageRow(StageTemplateListView1.ToTable());
                this.ddlStageProcessing.DataSource = StageTemplateList1;
                this.ddlStageProcessing.DataBind();

                // Prospect
                DataView StageTemplateListView2 = new DataView(StageTemplateList);
                StageTemplateListView2.RowFilter = "WorkflowType='Prospect'";
                this.StageTemplateList2          = this.AddSelectStageRow(StageTemplateListView2.ToTable());
                this.ddlStageProspect.DataSource = StageTemplateList2;
                this.ddlStageProspect.DataBind();

                #endregion

                #region 绑定数据

                if (WorkflowTemplateInfo.Rows[0]["Name"] == DBNull.Value)
                {
                    this.txtWorkflowTemplate.Text = "";
                }
                else
                {
                    this.txtWorkflowTemplate.Text = WorkflowTemplateInfo.Rows[0]["Name"].ToString();
                }
                if ((WorkflowTemplateInfo.Rows[0]["WorkflowType"] == DBNull.Value) ||
                    (WorkflowTemplateInfo.Rows[0]["WorkflowType"].ToString() == ""))
                {
                    this.ddlWorkflowType.SelectedValue = "Processing";
                }
                else
                {
                    //this.ddlWorkflowType.SelectedValue = WorkflowTemplateInfo.Rows[0]["WorkflowType"].ToString();
                    if (WorkflowTemplateInfo.Rows[0]["WorkflowType"].ToString().ToUpper() == "PROCESSING")
                    {
                        this.ddlWorkflowType.SelectedValue = "Processing";
                    }
                    if (WorkflowTemplateInfo.Rows[0]["WorkflowType"].ToString().ToUpper() == "PROSPECT")
                    {
                        this.ddlWorkflowType.SelectedValue = "Prospect";
                    }
                }

                if (WorkflowTemplateInfo.Rows[0]["Desc"] != DBNull.Value)
                {
                    this.txtDesc.Text = WorkflowTemplateInfo.Rows[0]["Desc"].ToString();
                }

                if (WorkflowTemplateInfo.Rows[0]["Enabled"] == DBNull.Value)
                {
                    this.chkEnabled.Checked = false;
                }
                else
                {
                    this.chkEnabled.Checked = Convert.ToBoolean(WorkflowTemplateInfo.Rows[0]["Enabled"]);
                }

                // cr47
                if (this.chkEnabled.Checked == true)
                {
                    this.btnRegen.Disabled = false;
                }
                else
                {
                    this.btnRegen.Disabled = true;
                }

                if (WorkflowTemplateInfo.Rows[0]["CalculationMethod"] == DBNull.Value)
                {
                    this.ddlCalcDueDateMethod.SelectedValue = "Est Close Date";
                }
                else if (WorkflowTemplateInfo.Rows[0]["CalculationMethod"].ToString() == "1")
                {
                    this.ddlCalcDueDateMethod.SelectedValue = "Est Close Date";
                }
                else if (WorkflowTemplateInfo.Rows[0]["CalculationMethod"].ToString() == "2")
                {
                    this.ddlCalcDueDateMethod.SelectedValue = "Creation Date";
                }
                else
                {
                    this.ddlCalcDueDateMethod.SelectedValue = "Completion Date of the previous Stage";
                }

                //this.ddlCalcDueDateMethod.SelectedValue = WorkflowTemplateInfo.Rows[0]["CalculationMethod"].ToString() == "1" ? "Est Close Date" : "Creation Date";

                if (WorkflowTemplateInfo.Rows[0]["Default"] == DBNull.Value)
                {
                    this.chkDefault.Checked = false;
                }
                else
                {
                    this.chkDefault.Checked = Convert.ToBoolean(WorkflowTemplateInfo.Rows[0]["Default"]);
                }

                #endregion

                #region 加载Workflow Stage List

                DataTable WflStageListData = WorkflowTemplateManager.GetWflStageList(this.iWorkflowTemplateID);
                this.gridStageList.DataSource = WflStageListData;
                this.gridStageList.DataBind();

                #endregion

                // set counter
                this.hdnCounter.Value = WflStageListData.Rows.Count.ToString();
            }
        }
Beispiel #5
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);
        }
Beispiel #6
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            string sWorkflowTemplagteName = this.txtWorkflowTemplate.Text.Trim();
            string sWorkflowType          = this.ddlWorkflowType.SelectedValue;
            string sDesc = this.txtDesc.Text.Trim();
            string sCalcDueDateMethod = this.ddlCalcDueDateMethod.SelectedValue;
            bool   bDefault           = this.chkDefault.Checked;

            #region get stage data

            string sSequences              = this.hdnSequences.Text;
            string sStageTempIDs           = this.hdnStageIDs.Text;
            string sStageNames             = this.hdnStageNames.Text; // Open$Submit$Approve
            string sEnableds               = this.hdnEnableds.Text;
            string sDaysFromEstCloseDates  = this.hdnDaysFromEstCloseDates.Text;
            string sDaysAfterCreationDates = this.hdnDaysAfterCreationDates.Text;

            #endregion

            Template_Workflow WorkflowTemplateManager = new Template_Workflow();

            #region build stage list

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

            if (sSequences != string.Empty)
            {
                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 < SequenceArray.Length; i++)
                {
                    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 add rows

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

                    if (sCalcDueDateMethod == "Est Close Date")
                    {
                        if (sDaysFromEstCloseDate == "null")
                        {
                            StageRow["DaysFromEstClose"] = DBNull.Value;
                        }
                        else
                        {
                            StageRow["DaysFromEstClose"] = Convert.ToInt16(sDaysFromEstCloseDate);
                        }

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

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

                    StageRow["TemplStageId"] = sStageTempID;

                    StageList.Rows.Add(StageRow);

                    #endregion
                }
            }

            #endregion

            // insert
            WorkflowTemplateManager.InsertWorkflowTemplate(sWorkflowTemplagteName, true, sDesc, sWorkflowType, bDefault, sCalcDueDateMethod, StageList);

            // success
            this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Success", "$('#divContainer').hide();alert('Create workflow template successfully.');window.location.href='WorkflowTemplateList.aspx';", 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);
        }
    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();
    }
    private void BindDropdownList()
    {
        object obj = LPWeb.DAL.DbHelperSQL.GetSingle("Select [Status] from Loans where FileId=" + CurrentFileId);

        sLoanStatus = obj == null ? string.Empty : obj.ToString().ToUpper().Trim();

        //add by shawn ,for prospect
        string strWhere = " Enabled=1 ";

        if (sLoanStatus == "PROCESSING")
        {
            strWhere += " AND WorkflowType = 'Processing' ";
        }
        else if (sLoanStatus == "PROSPECT")
        {
            strWhere += " AND WorkflowType = 'Prospect' ";
        }

        DataSet dsWflTemps = new Template_Workflow().GetList(strWhere);

        ddlWfTemps.DataTextField  = "Name";
        ddlWfTemps.DataValueField = "WflTemplId";
        ddlWfTemps.DataSource     = dsWflTemps;
        ddlWfTemps.DataBind();

        ddlWfTemps.Items.Insert(0, new ListItem("— select a workflow template –", "-1"));

        var models = bllWflTemp.GetModelList(string.Format("FileId={0}", CurrentFileId));

        lblWflTemplApplied.Text = string.Empty;
        lblWflAppliedDate.Text  = string.Empty;
        lblWflAppliedBy.Text    = string.Empty;
        if (models == null || models.Count == 0)
        {
            ddlWfTemps.Items[0].Selected = true;
            return;
        }
        if (models[0].WflTemplId > 0)
        {
            object ob1 = LPWeb.DAL.DbHelperSQL.GetSingle(string.Format("Select [Name] from Template_Workflow where WflTemplId={0} ", models[0].WflTemplId));
            lblWflTemplApplied.Text = ob1 == null ? string.Empty : ob1.ToString();
        }
        lblWflAppliedDate.Text = models[0].ApplyDate == DateTime.MinValue ? string.Empty : models[0].ApplyDate.ToString();
        if (models[0].ApplyBy > 0)
        {
            object ob = LPWeb.DAL.DbHelperSQL.GetSingle(string.Format("Select dbo.lpfn_GetUserName({0}) ", models[0].ApplyBy));
            lblWflAppliedBy.Text = ob == null ? string.Empty : ob.ToString();
        }
        int idx = 0;

        foreach (ListItem item in ddlWfTemps.Items)
        {
            if (item.Value == models[0].WflTemplId.ToString())
            {
                item.Selected = true;
                ddlWfTemps.Items[idx].Selected = true;
                return;
            }
            idx = idx + 1;
        }
    }
Beispiel #10
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);
        }
    }
Beispiel #11
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();
        }
    protected void btnSave_Click(object sender, EventArgs e)
    {
        short iSeq               = Convert.ToInt16(this.txtSeq.Text);
        bool  bEnabled           = this.chkEnabled.Checked;
        short iDaysFromEstClose  = this.txtDaysFromEstClose.Text == string.Empty ? Int16.Parse("0") : Convert.ToInt16(this.txtDaysFromEstClose.Text);
        short iDaysAfterCreation = this.txtDaysAfterCreation.Text == string.Empty ? Int16.Parse("0") : Convert.ToInt16(this.txtDaysAfterCreation.Text);
        short iCalcMethod        = 0;

        if (this.hdnCalcDueDateMethod.Value == "Est Close Date")
        {
            iCalcMethod = 1;
        }
        else if (this.hdnCalcDueDateMethod.Value == "Creation Date")
        {
            iCalcMethod = 2;
        }
        else if (this.hdnCalcDueDateMethod.Value == "Completion Date of the previous Stage")
        {
            iCalcMethod = 3;
        }

        Template_Workflow WorkflowTemplateManager = new Template_Workflow();

        #region 检查Rule Name是否重复

        bool bIsExist = WorkflowTemplateManager.IsWflStageSeqExist(this.iWorkflowTemplateID, this.iWflStageID, iSeq);
        if (bIsExist == true)
        {
            this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Duplicate", "$('#divContainer').hide();alert('The Sequence has been taken. Please use a different number.');$('#divContainer').show();", true);
            return;
        }

        #endregion


        WorkflowTemplateManager.UpdateWflStage(this.iWflStageID, iSeq, bEnabled, iDaysFromEstClose, iDaysAfterCreation, iCalcMethod);

        #region update seq no of workflow task

        string sSeqNos = this.hdnSeqNos.Value;
        if (sSeqNos != string.Empty)
        {
            string[] IDSeqs = sSeqNos.Split(',');

            foreach (string IDSeq in IDSeqs)
            {
                string[] temp = IDSeq.Split(':');

                string sTaskID = temp[0];
                string sSeqNo  = temp[1];

                int iTaskID = Convert.ToInt32(sTaskID);
                int iSeqNo  = Convert.ToInt32(sSeqNo);

                this.UpdateWflTaskSeqNo(iTaskID, iSeqNo);
            }
        }

        #endregion

        // success
        this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Success", "$('#divContainer').hide();alert('Update workflow stage successfully.');window.parent.location.href='" + this.sFrom + "';", true);
    }
Beispiel #14
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (this.IsPostBack == false)
        {
            #region  加载 ddlLeadSource
            Company_Lead_Sources LeadSourceManager = new Company_Lead_Sources();
            DataTable            LeadSourceList    = LeadSourceManager.GetList("1=1 order by LeadSource").Tables[0];

            DataRow NewLeadSourceRow = LeadSourceList.NewRow();
            NewLeadSourceRow["LeadSourceID"] = 0;
            NewLeadSourceRow["LeadSource"]   = "- select -";
            NewLeadSourceRow["Default"]      = DBNull.Value;

            LeadSourceList.Rows.InsertAt(NewLeadSourceRow, 0);

            this.ddlLeadSource.DataSource = LeadSourceList;
            this.ddlLeadSource.DataBind();
            // set default selected
            DataRow[] DefaultRowArray = LeadSourceList.Select("Default=1");
            if (DefaultRowArray.Length > 0)
            {
                string sLeadSource = DefaultRowArray[0]["LeadSourceID"].ToString();
                this.ddlLeadSource.SelectedValue = sLeadSource;
            }
            #endregion

            #region 加载 ddlLoanOfficer

            DataTable dtLoadOfficer = this.GetLoanOfficerList(CurrUser.iUserID);

            DataRow drNew = dtLoadOfficer.NewRow();
            //2014/1/16 CR072 Add the current user in the Loan Officer dropdown list
            if (dtLoadOfficer.Select("ID=" + CurrUser.iUserID.ToString()).Length < 1)
            {
                drNew["ID"]        = CurrUser.iUserID;
                drNew["Name"]      = CurrUser.sFullName;
                drNew["LastName"]  = CurrUser.sLastName;
                drNew["FirstName"] = CurrUser.sFirstName;
                dtLoadOfficer.Rows.InsertAt(drNew, 0);
            }
            drNew         = dtLoadOfficer.NewRow();
            drNew["ID"]   = 0;
            drNew["Name"] = "Lead Routing Engine";
            dtLoadOfficer.Rows.InsertAt(drNew, 0);

            drNew         = dtLoadOfficer.NewRow();
            drNew["ID"]   = -1;
            drNew["Name"] = "Unassigned";
            dtLoadOfficer.Rows.InsertAt(drNew, 0);

            drNew         = dtLoadOfficer.NewRow();
            drNew["ID"]   = -2;
            drNew["Name"] = "- select -";
            dtLoadOfficer.Rows.InsertAt(drNew, 0);

            ddlLoanOfficer.DataSource     = dtLoadOfficer;
            ddlLoanOfficer.DataTextField  = "Name";
            ddlLoanOfficer.DataValueField = "ID";
            //if (dtLoadOfficer.Select("ID=" + CurrUser.iUserID.ToString()).Length > 0)
            //{
            //    ddlLoanOfficer.SelectedValue = CurrUser.iUserID.ToString();
            //}
            //else
            //{
            ddlLoanOfficer.SelectedValue = "0";
            //}
            ddlLoanOfficer.DataBind();
            #endregion

            #region 加载ddlWorkflow

            Template_Workflow WflTempMgr   = new Template_Workflow();
            DataTable         WorkflowList = WflTempMgr.GetWorkflowTemplateList(" and WorkflowType='Prospect' and Enabled=1", "Name");
            this.ddlWorkflow.DataSource = WorkflowList;
            this.ddlWorkflow.DataBind();

            // set default selected
            DefaultRowArray = WorkflowList.Select("Default=1");
            if (DefaultRowArray.Length > 0)
            {
                string sWflTemplId = DefaultRowArray[0]["WflTemplId"].ToString();

                this.ddlWorkflow.SelectedValue = sWflTemplId;
            }

            #endregion

            #region 加载Marketing enrollment

            MailChimpLists MailChimpListsMgr = new MailChimpLists();

            DataTable MailChimpList = null;

            CheckRolePermistion(this.CurrUser.iUserID);

            if (_isAccessAllMailChimpList == true)
            {
                if (this.CurrUser.bIsCompanyExecutive == true)
                {
                    MailChimpList = MailChimpListsMgr.GetMailChimpList(" and 1=1 ", "Name");
                }
                else
                {
                    if (this.CurrUser.bIsBranchManager == true)
                    {
                        MailChimpList = MailChimpListsMgr.GetMailChimpList_BranchManager(this.CurrUser.iUserID);
                    }
                    else
                    {
                        MailChimpList = MailChimpListsMgr.GetMailChimpList(" and UserId=" + this.CurrUser.iUserID, "Name");
                    }
                }
            }
            else
            {
                MailChimpList = MailChimpListsMgr.GetMailChimpList(" and UserId=" + this.CurrUser.iUserID, "Name");
            }

            DataRow NewMarkingRow = MailChimpList.NewRow();
            NewMarkingRow["LID"]  = "";
            NewMarkingRow["Name"] = "-- select --";
            MailChimpList.Rows.InsertAt(NewMarkingRow, 0);

            this.ddlMarketing.DataSource = MailChimpList;
            this.ddlMarketing.DataBind();

            #endregion

            #region 加载ddlTaskList

            LeadTaskList LeadTaskListMgr = new LeadTaskList();

            string sOrderBy = string.Empty;
            if (this.CurrUser.SortTaskPickList == "S")
            {
                sOrderBy = "SequenceNumber";
            }
            else
            {
                sOrderBy = "TaskName";
            }

            DataTable LeadTaskList1 = LeadTaskListMgr.GetLeadTaskList(" and Enabled=1", sOrderBy);

            DataRow NewTaskRow = LeadTaskList1.NewRow();
            NewTaskRow["TaskName"]       = "-- select --";
            NewTaskRow["SequenceNumber"] = 0;
            NewTaskRow["Enabled"]        = "True";
            LeadTaskList1.Rows.InsertAt(NewTaskRow, 0);

            this.ddlTaskList.DataSource = LeadTaskList1;
            this.ddlTaskList.DataBind();

            #endregion

            // set default value
            this.txtDueDate.Text = DateTime.Now.ToString("MM/dd/yyyy");


            this.txtDueTime.Text = System.DateTime.Now.AddHours(2).ToString("HH:mm");


            this.txtReminderUser.Text    = this.CurrUser.sLastName + ", " + this.CurrUser.sFirstName;
            this.hdnReminderUserID.Value = this.CurrUser.iUserID.ToString();
        }
    }
        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;
            }
        }
Beispiel #16
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);
        }
    }
Beispiel #17
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);
    }