/*====================================================*/

		protected virtual bool WfTaskOutcome_CreateNewTaskAssignments(XmlNodeList aTaskNodeList)
		{

			foreach (XmlNode aTaskNode in aTaskNodeList) {

				//check if WfTaskAssignment already exists for GranteeProjectID, PersonID, WfTaskID
				int aNewTaskID = cXMLDoc.AttributeToInt(aTaskNode, "TaskKey", 0);
				string aUpdateExistingWFTA = cXMLDoc.AttributeToString(aTaskNode, "UpdateExistingWFTA", "True");
				String aNewPersonProperty;
				int aNewPersonID = -1;
				int aDefaultWorkgroupID = -1;
				if (!cXMLDoc.AttributeToBool(aTaskNode, "NoPersonID", false)) {
					aNewPersonProperty = cXMLDoc.AttributeToString(aTaskNode, "PersonID");
					if (aNewPersonProperty == "")
						aNewPersonProperty = "PersonID";
					aNewPersonID = this.GetRelatedPropertyInt(aNewPersonProperty, -1);
					if (aNewPersonID == 0 || aNewPersonID == -1) {
						aNewPersonID = -1;
						aDefaultWorkgroupID = cXMLDoc.AttributeToInt(aTaskNode, "DefaultWorkgroupID", -1);
					}
				}
				XmlNode aDataObjectNode;
				XmlNode aFiltersNode;
				cXMLDoc aXmlDoc = this.DataObjectList.DataObjectFactory.CreateDataObjectNode("WfTaskAssignment", out aDataObjectNode, out aFiltersNode);
				aFiltersNode.AppendChild(this.DataObjectList.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "GranteeProjectID", this.GetPropertyString("GranteeProjectID")));
				if (aNewPersonID != -1)
					aFiltersNode.AppendChild(this.DataObjectList.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "PersonID", aNewPersonID.ToString()));
				aFiltersNode.AppendChild(this.DataObjectList.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "WfTaskID", aNewTaskID.ToString()));
				aFiltersNode.AppendChild(this.DataObjectList.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "AppWftaID", this.GetPropertyString("WfTaskAssignmentID")));
				XmlNodeList aExistingFiltersList = aTaskNode.SelectNodes("ExistingWfTAFilters/Argument");
				foreach (XmlNode aExistingFilterNode in aExistingFiltersList) {
					WfTaskOutcome_SetRelatedDataObjectArgValues(null, aExistingFilterNode);
					aFiltersNode.InnerXml += aExistingFilterNode.OuterXml;
				}
				cWfTaskAssignment aWfTaskAssgDataObject = (cWfTaskAssignment)this.DataObjectList.DataObjectFactory.GetDataObject(aDataObjectNode);

				if (aWfTaskAssgDataObject == null){ //create new WfTaskAssignment object
					aWfTaskAssgDataObject = (cWfTaskAssignment)DataObjectFactory.CreateNewDataObjectFromKey("WfTaskAssignment");
					aWfTaskAssgDataObject["WfTaskID"] = aNewTaskID;
					if (aNewPersonID != -1)
						aWfTaskAssgDataObject["PersonID"] = aNewPersonID;
					else if (aDefaultWorkgroupID != -1)
						aWfTaskAssgDataObject["WorkgroupID"] = aDefaultWorkgroupID;
					WfTaskOutcome_SaveNewTaskAssignment(aWfTaskAssgDataObject, aTaskNode);
				}
				else
					if (aUpdateExistingWFTA == "True")
					{
						WfTaskOutcome_SaveNewTaskAssignment(aWfTaskAssgDataObject, aTaskNode);
					}

				if (!aWfTaskAssgDataObject.ContinueProcessing)
					return false;
				//create related data objects
				XmlNodeList aRelatedDOList = aTaskNode.SelectNodes("RelatedDataObject");
				foreach (XmlNode aRelatedDONode in aRelatedDOList)
					WfTaskOutcome_CreateTARelatedDataObject(aWfTaskAssgDataObject, aRelatedDONode);
			}
			return true;
		}
		public void Notify_DataModified_HHMI(cDataObjectFactory aDataObjectFactory) {
			cWfTaskAssignment aApplWfTA = this;

			//find the applicant WfTaskAssignment
			int aRoleID = this.GetPropertyInt("WfTaskRoleID", 0);
			if (aRoleID != 1) {
				cDataObject aGP = this.GetRelatedPropertyDataObject("GranteeProject");
				cDataObjectList aDOL;
				aDOL = aGP.GetRelatedPropertyDataObjectList("ApplWfTaskAssignments");
				foreach (cDataObject aDO in aDOL) {
					if (aDO.GetRelatedPropertyInt("WfTask.WfTaskTypeID", 0) == 1) {
						aApplWfTA = (cWfTaskAssignment) aDO;
						break;
					}
				}
			}

			cDataObjectList aWfProjectPDFList = aApplWfTA.GetRelatedPropertyDataObjectList("GranteeProject.WfProjectPDF");
			foreach (cDataObject aWfProjectPDF in aWfProjectPDFList) {
				if (aWfProjectPDF.GetPropertyInt("PDFGenerationID", 0) == 1) {
					string aReportOutputDefinitionID = aWfProjectPDF.GetRelatedPropertyString("FinalPDFReportKeyLink.ReportOutputDefinitionID");
					cDataObject aReportOutputDO = aDataObjectFactory.GetDataObjectListWithFilter("ReportOutput", "DefinitionID", aReportOutputDefinitionID, "EntityID", aApplWfTA.GetPropertyString("WfTaskAssignmentID"))[0];
					if (aReportOutputDO != null) {
						if (aRoleID != 1 && aWfProjectPDF.GetPropertyInt("ReportOutputDefinitionTypeID", 1) == 1)
							continue; //skip applicant pdf when make changes to third party data
						//delete existing pdf
						aDataObjectFactory.DeleteData(aReportOutputDO);
					}
				}
			}
		}
Exemple #3
0
/*----------------------------------------------------*/

        public static cGranteeProjectOutcomes  Create_Outcome(cWfTaskAssignment aWfTA, bool aComplete, bool aCreatePrevious, bool aCreateNext)
        {
            cGranteeProjectOutcomes aGranteeProjectOutcomes = null;
            cDataObjectFactory      aDataObjectFactory;

            aDataObjectFactory = aWfTA.DataObjectFactory;

            int aOutcomeID = aWfTA.GetPropertyInt("WfTaskOutcomeID", 0);
            int aGPID      = aWfTA.GetPropertyInt("GranteeProjectID", 0);
            int aWfTaskID  = aWfTA.GetPropertyInt("WfTaskID", 0);

            if (aGPID > 0 && aWfTaskID > 0)
            {
                aGranteeProjectOutcomes = cGranteeProjectOutcomes.Create_Outcome(aDataObjectFactory, aGPID, aWfTaskID, aOutcomeID, aComplete, aCreatePrevious, aCreateNext);
            }
            return(aGranteeProjectOutcomes);
        }
Exemple #4
0
/*----------------------------------------------------*/

        public static void  Validate_For_WfTA_Update(cWfTaskAssignment aWfTA)
        {
            cXMLDoc            aXMLDoc;
            XmlNode            aDataObjectNode;
            XmlNode            aFiltersNode;
            XmlNode            aArgNode;
            cDataObject        aGranteeProjectOutcomes;
            cDataObjectFactory aDataObjectFactory;

            aDataObjectFactory = aWfTA.DataObjectFactory;

            aXMLDoc  = aDataObjectFactory.CreateDataObjectNode("GranteeProjectOutcomes", out aDataObjectNode, out aFiltersNode);
            aArgNode = aDataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "GranteeProjectID", aWfTA.GetPropertyString("GranteeProjectID"));
            aFiltersNode.AppendChild(aArgNode);
            aArgNode = aDataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "WfTaskID", aWfTA.GetPropertyString("WfTaskID"));
            aFiltersNode.AppendChild(aArgNode);
            aGranteeProjectOutcomes = (cGranteeProjectOutcomes)aDataObjectFactory.GetDataObject(aDataObjectNode);
            if (aGranteeProjectOutcomes != null)
            {
                //Update the Outcome
                if (aWfTA.GetPropertyInt("WfTaskOutcomeID", 0) > 0)
                {
                    aGranteeProjectOutcomes["OutcomeID"] = aWfTA.GetPropertyInt("WfTaskOutcomeID");
                }
            }
            else
            {
                //Create a new data object.
                aGranteeProjectOutcomes = aDataObjectFactory.CreateNewDataObjectFromKey("GranteeProjectOutcomes");
                aGranteeProjectOutcomes["GranteeProjectID"] = aWfTA.GetPropertyInt("GranteeProjectID");
                aGranteeProjectOutcomes["WfTaskID"]         = aWfTA.GetPropertyInt("WfTaskID");
                if (aWfTA.GetPropertyInt("WfTaskOutcomeID", 0) > 0)
                {
                    aGranteeProjectOutcomes["OutcomeID"] = aWfTA.GetPropertyInt("WfTaskOutcomeID");
                }
                aGranteeProjectOutcomes["Complete"] = false;
            }
            aGranteeProjectOutcomes.SaveData();
        }