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);
        }
Example #2
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            string sWorkflowTemplagteName = this.txtWorkflowTemplate.Text.Trim();
            string sWorkflowType          = this.ddlWorkflowType.SelectedValue;
            bool   bEnabled           = this.chkEnabled.Checked;
            string sDesc              = this.txtDesc.Text.Trim();
            string sCalcDueDateMethod = this.ddlCalcDueDateMethod.SelectedValue;
            bool   bDefault           = this.chkDefault.Checked;

            #region get stage data

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

            #endregion

            Template_Workflow WorkflowTemplateManager = new Template_Workflow();

            #region build stage list

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

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

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

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

                    #region format StageName

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

                    #endregion

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

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

                    #region add rows

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

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

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

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

                    StageRow["TemplStageId"] = sStageTempID;

                    StageList.Rows.Add(StageRow);

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

                    #endregion
                }
            }

            #endregion

            sWorkflowType = this.gWorkflowType;

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

            // success
            this.ClientScript.RegisterClientScriptBlock(this.GetType(), "_Success", "$('#divContainer').hide();alert('Update workflow template successfully.');window.parent.location.href=window.parent.location.href;", true);
        }
        private 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;
            }
        }