/*-----------------------------------------------------*/ public virtual void Submit(bool aForceGenFlag) { bool aReportGenerated = true; String aURL; cDataObjectList aReportDOList; if (aForceGenFlag) { aReportDOList = WfTaskAssignmentObject.GetRelatedPropertyDataObjectList("ReportOutput"); aReportGenerated = aReportDOList.Count > 0 && aReportDOList[0].GetPropertyInt("GenStatus") == -1 && aReportDOList[0].GetPropertyValue("ReportOutputData") != null; } if (aReportGenerated) { Submit(null, PostSubmitModuleName, PostSubmitModuleConfig, ""); } else { aURL = ModulePage_BuildPageKeyURL(PageKey); aURL = cWebLib.AddQuerystringParameter(aURL, "AppNotGenerated", "True"); Response.Redirect(aURL); } }
/*-----------------------------------------------------*/ public virtual cWfTaskAssignment SelectThirdParty(String aPersonRelationshipID, String aRoleID, String aTaskID) { cXMLDoc aXmlDoc; XmlNode aDataObjectNode; XmlNode aFiltersNode; cDataObject aWfTaskAssgObject; cDataObject aPersonRelationshipDataObject; cDataObject aWfTaskAssgRelationshipObject; if (aTaskID == "") { aTaskID = WfTaskAssignmentObject.GetPropertyString("WfTaskID"); } //If no selection has been made, just refresh the page if (aPersonRelationshipID == null || aTaskID == "") { Redirect(); return(null); } //get the Related Person Role aPersonRelationshipDataObject = WebSession.DataObjectFactory.GetDataObjectFromPrimaryKey("PersonRelationship", aPersonRelationshipID); //check to see if this person already has a third party aXmlDoc = WebSession.DataObjectFactory.CreateDataObjectNode("WfTaskAssignment", out aDataObjectNode, out aFiltersNode); aFiltersNode.AppendChild(WebSession.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "WfTaskID", aTaskID)); aFiltersNode.AppendChild(WebSession.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "PersonID", aPersonRelationshipDataObject.GetPropertyString("RelatedPersonID"))); aFiltersNode.AppendChild(WebSession.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "WfTaskRoleID", "4")); aFiltersNode.AppendChild(WebSession.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "RefereeRoleID", aRoleID)); aFiltersNode.AppendChild(WebSession.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "GranteeProjectID", ((cEGUser)ModuleUser).GranteeProjectID.ToString())); aWfTaskAssgObject = WebSession.DataObjectFactory.GetDataObject(aDataObjectNode); if (aWfTaskAssgObject == null) { WebSession.DataObjectFactory.CreateDataObjectNode("WfTaskAssignment", out aDataObjectNode, out aFiltersNode); aWfTaskAssgObject = WebSession.DataObjectFactory.GetNewDataObject(aDataObjectNode); aWfTaskAssgObject["WfTaskID"] = aTaskID; aWfTaskAssgObject["GranteeProjectID"] = ((cEGUser)ModuleUser).GranteeProjectID.ToString(); aWfTaskAssgObject["WfTaskStatusID"] = 3; //3-inactive aWfTaskAssgObject["PersonID"] = aPersonRelationshipDataObject["RelatedPersonID"]; aWfTaskAssgObject["WfTaskRoleID"] = 4; aWfTaskAssgObject["RefereeRoleID"] = aRoleID; WebSession.DataObjectFactory.SaveDataObject(aWfTaskAssgObject); //create WfTaskAssignmentPersonRelationship WebSession.DataObjectFactory.CreateDataObjectNode("WfTaskAssignmentPersonRelationship", out aDataObjectNode, out aFiltersNode); aWfTaskAssgRelationshipObject = WebSession.DataObjectFactory.GetNewDataObject(aDataObjectNode); aWfTaskAssgRelationshipObject["WfTaskAssignmentID"] = aWfTaskAssgObject["WfTaskAssignmentID"]; aWfTaskAssgRelationshipObject["PersonRelationshipID"] = aPersonRelationshipID; WebSession.DataObjectFactory.SaveDataObject(aWfTaskAssgRelationshipObject); } return((cWfTaskAssignment)aWfTaskAssgObject); }
/*-----------------------------------------------------*/ public virtual void NotifyThirdParty(String aWfTaskAssignmentID, String aRedirectFlag) { cWfTaskAssignment aWfTaskAssgObject; aWfTaskAssgObject = (cWfTaskAssignment)WebSession.DataObjectFactory.GetDataObjectFromPrimaryKey("WfTaskAssignment", aWfTaskAssignmentID); aWfTaskAssgObject["OpenDate"] = System.DBNull.Value; aWfTaskAssgObject.SaveData(); aWfTaskAssgObject.SetWfTaskOutcome(WebSession.BuildOutcomeConfig(aWfTaskAssgObject.GetWfProjectTask())); aWfTaskAssgObject["WfTaskStatusID"] = 1; //incomplete aWfTaskAssgObject["OpenDate"] = DateTime.Now; WebSession.DataObjectFactory.SaveDataObject(aWfTaskAssgObject); WfTaskAssignmentObject.Notify_DataModified(WebSession.DataObjectFactory, null); WfTaskAssignmentObject.Notify_DataModified(WebSession.DataObjectFactory, null); if (aRedirectFlag == "True") { ModulePage.Redirect(); } }
/*====================================================*/ ///<summary> ///selects a third party by taking a PersonRelationShip and: ///* creating a WfTaskAssighment for this third party role ///* note that the user already exists ///</summary> public virtual cWfTaskAssignment SelectThirdParty(String aPersonRelationshipID) { cDataObjectList aChildProjectTasksObjectList; // This following code needs to be modified if there are mutiple third parties for one project task. aChildProjectTasksObjectList = WfTaskAssignmentObject.GetRelatedPropertyDataObjectList("WfProjectTask.ChildProjectTasks"); if (aChildProjectTasksObjectList.Count > 1) { cDataObject aPersonRelationshipDO = WebSession.DataObjectFactory.GetDataObjectFromPrimaryKey("PersonRelationship", aPersonRelationshipID); cXMLDoc aXmlDoc; XmlNode aDataObjectNode, aFiltersNode, aArgNode; aXmlDoc = WebSession.DataObjectFactory.CreateDataObjectNode("WfProjectTask", out aDataObjectNode, out aFiltersNode); aFiltersNode.AppendChild(WebSession.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "ParentProjectTaskID", WfTaskAssignmentObject.GetRelatedPropertyString("WfProjectTask.WfProjectTaskID"))); aArgNode = aFiltersNode.AppendChild(WebSession.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "ID", aPersonRelationshipDO.GetPropertyString("RelatedPersonRoleID"))); aArgNode.AppendChild(WebSession.DataObjectFactory.CreateArgumentRelatedPropertyNode(aXmlDoc, "AssignToRoleWorkgroupStaffcontact")); cDataObject aChildProjectTaskDO = WebSession.DataObjectFactory.GetDataObject(aDataObjectNode); return(SelectThirdParty(aPersonRelationshipID, aChildProjectTaskDO.GetPropertyString("WfTaskID"))); } else if (aChildProjectTasksObjectList.Count == 1) { return(SelectThirdParty(aPersonRelationshipID, aChildProjectTasksObjectList[0].GetPropertyString("WfTaskID"))); } return(null); }
/*-----------------------------------------------------*/ private cXMLDoc BuildOutcomeConfig() { cDataObject aWfProjectTask = WfTaskAssignmentObject.GetWfProjectTask(); return(WebSession.BuildOutcomeConfig(aWfProjectTask)); }