private ActivityConfig.ACSeriesRow SelectedACSeries() { int ACSeriesId = Convert.ToInt32(ucActivity.SelectedValue); ActivityConfig.ACSeriesRow AcSeries = this.AtMng.acMng.DB.ACSeries.FindByACSeriesId(ACSeriesId); return(AcSeries); }
protected override void AfterAdd(DataRow dr) { ActivityConfig.ACSeriesRow acr = (ActivityConfig.ACSeriesRow)dr; acr.ACSeriesId = myA.AtMng.PKIDGet("ACSeries", 1); acr.Finish = false; if (acr.SeriesRow.GetACSeriesRows().Length == 1) { acr.Start = true; } else { acr.Start = false; } acr.OnceOnly = true; acr.Seq = acr.SeriesRow.GetACSeriesRows().Length * 10; acr.InitialStep = 5; acr.StepType = (int)StepType.Activity; acr.ForAgent = false; acr.ForClient = false; acr.ForOwner = false; acr.ForLead = false; acr.Obsolete = false; acr.StepCode = acr.ACSeriesId.ToString(); acr.AutoChain = false; acr.AllowFileType = true; acr.NoResurface = false; acr.PauseParent = false; acr.StartParent = false; acr.StopParent = false; acr.ShowDisb = false; acr.ShowSkipDoc = false; }
public bool hasPerformADMSLookup(ActivityConfig.ACSeriesRow acs) { lmDatasets.ActivityConfig.ActivityFieldRow[] afrs = (lmDatasets.ActivityConfig.ActivityFieldRow[])myA.DB.ActivityField.Select("AcSeriesId=" + acs.ACSeriesId, "step, seq"); bool hasNewADMSLookupRow = false; bool hasCall = false; bool hasSend = false; foreach (lmDatasets.ActivityConfig.ActivityFieldRow afr in afrs) { if (afr.TaskType == "N" && afr.ObjectName == "ADMSLookup") { hasNewADMSLookupRow = true; } if (afr.TaskType == "F" && afr.ObjectName == "ADMSLookup" && afr.FieldName == "Call") { hasCall = true; } if (afr.TaskType == "F" && afr.ObjectName == "ADMSLookup" && afr.FieldName == "Send" && (!afr.IsDefaultValueNull() && afr.DefaultValue.ToUpper() == "TRUE")) { hasSend = true; } } if (hasNewADMSLookupRow && hasCall && hasSend) { return(true); } return(false); }
public void ReplaceRelFields(ActivityConfig.ACSeriesRow asr, ActivityConfig.ACSeriesRow tempAC, bool ReplaceValues) { //delete ac field if (ReplaceValues) { foreach (ActivityConfig.ActivityFieldRow afrOld in asr.GetActivityFieldRows()) { afrOld.Delete(); } } //this works if all the rel fields are for the same object //TODO:this fails if there are no activity field rows - why do we need the max instance //int instance=myA.GetActivityField().InstanceMax(asr,tempAC.GetActivityFieldRows()[0].ObjectName); //clone acfield reocrds ActivityConfig.ActivityFieldRow[] arfs = (ActivityConfig.ActivityFieldRow[])myA.DB.ActivityField.Select("ACSeriesId=" + tempAC.ACSeriesId, "Step,Seq"); foreach (lmDatasets.ActivityConfig.ActivityFieldRow arf in arfs) { lmDatasets.ActivityConfig.ActivityFieldRow newArf = myA.DB.ActivityField.NewActivityFieldRow(); newArf.ItemArray = arf.ItemArray; newArf.ACSeriesId = asr.ACSeriesId; myA.DB.ActivityField.AddActivityFieldRow(newArf); newArf.Seq = arf.Seq; newArf.Step = arf.Step; newArf.TaskType = arf.TaskType; //newArf.Instance = arf.Instance;// instance; newArf.Visible = arf.Visible; newArf.Required = arf.Required; newArf.ReadOnly = arf.ReadOnly; newArf.ObjectAlias = arf.ObjectAlias; } }
public void OutOfOfficeReply(atriumDB.ActivityRow activity) { if (myFM.AtMng.GetSetting(AppBoolSetting.useOutOfOfficeFunctionality)) { if (activity.Communication) { docDB.DocumentRow docr = myFM.GetDocMng().DB.Document.FindByDocId(activity.DocId); docDB.RecipientRow[] recips = docr.GetRecipientRows(); officeDB.OfficerRow officerRow; foreach (docDB.RecipientRow rr in recips) { if (rr.Type != "0" && !rr.IsOfficerIdNull()) { //check to see if they are out of the office //always load in case person just set their out off office flag officerRow = (officeDB.OfficerRow)myFM.AtMng.OfficeMng.GetOfficer().Load(rr.OfficerId); //jll 2018-04-24 - if recipient is external, this check should never happen. if (officerRow != null && officerRow.OutOfOffice) { if (DateTime.Now >= officerRow.OutOfOfficeStartDate && DateTime.Now <= officerRow.OutOfOfficeEndDate) { // do out of office activity ActivityConfig.ACSeriesRow acsr = myFM.AtMng.acMng.DB.ACSeries.FindByACSeriesId(myFM.AtMng.GetSetting(AppIntSetting.OutOfOfficeNotification)); CurrentACE = null; AutoAC(activity, acsr, officerRow.OfficerId, ACEngine.RevType.OutOfOffice, false); } } } } } } }
private void InternalDecisionRule(ActivityConfig.ACSeriesRow acsr) { if (acsr.StepType == (int)StepType.Decision && acsr.GetActivityFieldRows().Length > 0) { //make sure connectors are Yes and No foreach (ActivityConfig.ACDependencyRow acdr in acsr.GetACDependencyRowsByNextSteps()) { if (acdr.DescEng == "Yes" || acdr.DescEng == "No") { //good } else { AddValidationRecord(acsr, ValidationType.Error, "Internal decision has invalid answer descriptions"); } if (acdr.DescFre == "Oui" || acdr.DescFre == "Non") { //good } else { AddValidationRecord(acsr, ValidationType.Error, "Internal decision has invalid answer descriptions"); } } } }
public void DoAutoAC(NextStep ns, ActivityConfig.ACSeriesRow asr, int revId, ACEngine.RevType revType, DateTime acDate) { try { if (ns == null) { AutoAC(null, asr, revId, revType, acDate, null, true); } else { AutoAC(ns.prevAc, asr, revId, revType, acDate, ns.FlowQ, true); } CurrentACE = null; FM.GetDocMng().DB.DocContent.AcceptChanges(); } catch (Exception xx) { if (CurrentACE != null) { CurrentACE.Cancel(); } CurrentACE = null; throw xx; } }
private void gridEX1_LinkClicked(object sender, Janus.Windows.GridEX.ColumnActionEventArgs e) { try { if (e.Column.Key == "AcSeriesHelp") { DataRow dr = (DataRow)((DataRowView)gridEX1.GetRow().DataRow).Row; if (dr["AcSeriesDeskbookLink"].ToString() == Properties.Resources.mHelp) { ActivityConfig.ACSeriesRow acsr = (ActivityConfig.ACSeriesRow)UIHelper.AtMng.acMng.DB.ACSeries.FindByACSeriesId(CurrentAcSeriesId()); fTriangle HelpTriangle = new fTriangle(acsr, UIHelper.AtMng); HelpTriangle.Show(); } } if (e.Column.Key == "SeriesHelp") { DataRow dr = (DataRow)((DataRowView)gridEX1.GetRow().DataRow).Row; if (dr["SeriesDeskbookLink"].ToString() == Properties.Resources.mHelp) { ActivityConfig.SeriesRow asr = (ActivityConfig.SeriesRow)UIHelper.AtMng.acMng.DB.Series.FindBySeriesId(CurrentSeriesId()); fTriangle HelpTriangle = new fTriangle(asr, UIHelper.AtMng); HelpTriangle.Show(); } } } catch (Exception x) { UIHelper.HandleUIException(x); } }
private void Init(ActivityConfig.ACSeriesRow acsr) { this.SuspendLayout(); //flowLayoutPanel1.Controls.Clear(); if (myRF != null) { myRF.Dispose(); } myRF = null; MyACE = new ACEngine(FM); MyACE.myAcSeries = acsr; MyACE.myActivityCode = acsr.ActivityCodeRow; MyACE.DoRelFields(); MyACE.DoStep(ACEngine.Step.RelatedFields0, true); MyACE.DoStep(ACEngine.Step.RelatedFields1, true); MyACE.DoStep(ACEngine.Step.RelatedFields2, true); MyACE.DoStep(ACEngine.Step.RelatedFields3, true); MyACE.DoStep(ACEngine.Step.RelatedFields4, true); MyACE.DoStep(ACEngine.Step.RelatedFields5, true); MyACE.DoStep(ACEngine.Step.RelatedFields6, true); BuildForm(acsr); if (first) { foreach (DataView dv in MyACE.relTables.Values) { DataTable dt = dv.Table; dt.ColumnChanged += new DataColumnChangeEventHandler(dt_ColumnChanged); atLogic.ObjectBE obe = FM.GetBEFromTable(dt); obe.OnUpdate += new atLogic.UpdateEventHandler(ucSSTCase_OnUpdate); } first = false; } this.ResumeLayout(); }
public void ExecuteAction(FileManager fm, appDB.ddRuleRow ddrr, DataRow dr2Validate) { //can't handle document right now //can't have associated data ActivityConfig.ACSeriesRow acsr = myA.acMng.DB.ACSeries.FindByACSeriesId(ddrr.ACSeriesId); ExecuteAction(fm, dr2Validate, acsr); }
private void CreateAC(int fileId, int acseriesId, DateTime acDate, string ctxTable, int ctxId) { ActivityConfig.ACSeriesRow acsr = myA.acMng.DB.ACSeries.FindByACSeriesId(acseriesId); FileManager fm = myA.GetFile(fileId); ActivityBP abp = fm.InitActivityProcess(); abp.CreateAC(acseriesId, acDate, ctxTable, ctxId, 0, ACEngine.RevType.Nothing); }
//****begin rules //verify Related Fields data private void RelatedFieldsVerify(ActivityConfig.ACSeriesRow acsr) { List <string> objAliases = new List <string>(); //Task Types // I - Issue // P - prompt // N - new record // D - delete record // F - Related field // T - include // Q - queried record must return one record // S - select records can return 0 or more // L - load a record will load from db if record not already loaded // G - gets all records no criteria required // O - special object // R - repeat for block // U - one or more records must be returned // C - Query or new // M - most recent for criteria for (int i = -10; i < 20; i++) { foreach (lmDatasets.ActivityConfig.ActivityFieldRow afr in acMng.DB.ActivityField.Select("TaskType<>'F' and Step=" + i.ToString() + " and ACseriesid=" + acsr.ACSeriesId.ToString(), "seq")) { if (!objAliases.Contains(afr.ObjectAlias) && (afr.TaskType == "Z" | afr.TaskType == "U" | afr.TaskType == "M" | afr.TaskType == "D" | afr.TaskType == "C" | afr.TaskType == "R" | afr.TaskType == "O" | afr.TaskType == "N" | afr.TaskType == "G" | afr.TaskType == "L" | afr.TaskType == "Q" | afr.TaskType == "S")) { objAliases.Add(afr.ObjectAlias); } if (afr.TaskType == "T") { //need to resolve "T" tasks foreach (lmDatasets.ActivityConfig.ActivityFieldRow afrT in acMng.DB.ActivityField.Select("ACseriesid=" + afr.DefaultValue, "step,seq")) { if (!objAliases.Contains(afrT.ObjectAlias) && (afr.TaskType == "Z" | afrT.TaskType == "U" | afrT.TaskType == "M" | afrT.TaskType == "C" | afrT.TaskType == "R" | afrT.TaskType == "O" | afrT.TaskType == "N" | afrT.TaskType == "G" | afrT.TaskType == "L" | afrT.TaskType == "Q" | afrT.TaskType == "S")) { objAliases.Add(afrT.ObjectAlias); } } //skip rules } else { //put rules that test individual related field records here RelatedFieldsVerify(afr, objAliases); } } foreach (lmDatasets.ActivityConfig.ActivityFieldRow afr in acMng.DB.ActivityField.Select("TaskType='F' and Step=" + i.ToString() + " and ACseriesid=" + acsr.ACSeriesId.ToString(), "seq")) { //put rules that test individual related field records here RelatedFieldsVerify(afr, objAliases); } } }
private void ConnectorRules(ActivityConfig.ACSeriesRow acsr) { foreach (ActivityConfig.ACDependencyRow acdr in acsr.GetACDependencyRowsByNextSteps()) { if (!acsr.SeriesRow.OncePerFile & !acsr.SeriesRow.SingleInstancePerFile & acdr.LinkType == (int)ConnectorType.Transfer) { AddValidationRecord(acsr, ValidationType.Error, "You cannot use a 'Transfer' connector in a series that is not single instance or once per file."); } } }
//public ACEngine Add(DateTime acDate, ActivityConfig.ACSeriesRow acSeries, atriumDB.ProcessRow process, bool adHoc, atriumDB.ActivityRow prevAc, string conversationIndex) //{ // if (myACE != null) // throw new AtriumException("You cannot enter more than one activity at a time on a file."); // myACE = new ACEngine(FM, acDate, acSeries, process, adHoc, conversationIndex, prevAc, ConnectorType.NextStep, null, 0, ACEngine.RevType.Nothing); // return myACE; //} public ACEngine Add(DateTime acDate, ActivityConfig.ACSeriesRow acSeries, atriumDB.ProcessRow process, bool adHoc, atriumDB.ActivityRow prevAc) { if (myACE != null) { throw new AtriumException("You cannot enter more than one activity at a time on a file."); } myACE = new ACEngine(FM, acDate, acSeries, process, adHoc, null, prevAc, ConnectorType.NextStep, null, 0, ACEngine.RevType.Nothing, null); return(myACE); }
public ActivityConfig.ACSeriesRow GetAutoStep(ActivityConfig.ACSeriesRow acs) { foreach (lmDatasets.ActivityConfig.ACDependencyRow acdr in acs.GetACDependencyRowsByNextSteps()) { if (acdr.LinkType == (int)atriumBE.ConnectorType.Auto) { return(acdr.ACSeriesRowByPreviousSteps); } } return(null); }
private void DoBlock(ActivityConfig.ACSeriesRow acsr, bool HasBlock, int step) { if (HasBlock) { MyACE.LoadDataForStep(step, acsr.ACSeriesId); if (!MyACE.skipBlock) { myRF.DoRelFields(acsr, step); } ; } }
public int InstanceMax(ActivityConfig.ACSeriesRow acsr, string oName) { int InstanceCount = -1; foreach (lmDatasets.ActivityConfig.ActivityFieldRow afr in acsr.GetActivityFieldRows()) { if (!afr.IsNull("ObjectName") && afr.ObjectName == oName && afr.Instance > InstanceCount) { InstanceCount = afr.Instance; } } return(InstanceCount + 1); }
//check finish step type //JLL:2013-07-09 private void FinishTypeRule(ActivityConfig.ACSeriesRow acsr) { switch ((StepType)acsr.StepType) { case StepType.Activity: case StepType.Subseries: //ok break; default: AddValidationRecord(acsr, ValidationType.Warning, "Process should end on a Recorded Activity or a Subprocess."); break; } }
private bool IsEnabled(ActivityConfig.ACSeriesRow nextStep) { bool enable = true; //JLL 2018-04-23 //if (myFM.AtMng.SecurityManager.CanOverride(0, atSecurity.SecurityManager.Features.SysAdmin) == atSecurity.SecurityManager.ExPermissions.Yes) // return enable; if (!nextStep.IsRoleCodeNull()) { if (!myFM.AtMng.OfficeMng.GetOfficer().IsInRole(nextStep.RoleCode) & !myFM.GetFileContact().IsInRole(nextStep.RoleCode)) { enable = false; } ; } if (enable & (nextStep.ForAgent | nextStep.ForClient | nextStep.ForLead | nextStep.ForOwner)) { //get fileoffice row lmDatasets.atriumDB.FileOfficeRow[] fos = (lmDatasets.atriumDB.FileOfficeRow[])myFM.DB.FileOffice.Select("Fileid=" + myFM.CurrentFile.FileId.ToString() + " and OfficeId=" + myFM.AtMng.WorkingAsOfficer.OfficeId.ToString()); if (fos.Length != 1) { enable = false; } else { lmDatasets.atriumDB.FileOfficeRow fo = fos[0]; //check isowner etc. enable = false; if (nextStep.ForOwner & fo.IsOwner) { enable = true; } if (nextStep.ForLead & fo.IsLead) { enable = true; } if (nextStep.ForClient & fo.IsClient) { enable = true; } if (nextStep.ForAgent & fo.IsAgent) { enable = true; } } } return(enable); }
//public override void FixLookups(System.Data.DataRow ddr) //{ // atriumDB.ActivityBFRow dr = (atriumDB.ActivityBFRow)ddr; // OfficerBE ofr = this.myA.AtMng.OfficeMng.GetOfficer(); // if (!dr.IsBFOfficerCodeNull()) // dr.BFOfficerID = ofr.LookupId(dr.BFOfficerCode); // else // dr.SetBFOfficerIDNull(); //} public void AutoCompleteBFs(atriumDB.ActivityRow newAC) { //this.myA..AppMan.ExecuteSP("ActivityAutoComplete", dr.FileId, dr.OfficerId, dr.ActivityDate, dr.ActivityCodeID); if (newAC.ACSeriesId == myA.AtMng.GetSetting(AppIntSetting.OutOfOfficeNotification)) { return; } stackLimit = 0; if (!newAC.IsACSeriesIdNull()) { ActivityConfig.ACSeriesRow acsr = this.myA.AtMng.acMng.DB.ACSeries.FindByACSeriesId(newAC.ACSeriesId); AutoCompleteBFs(newAC, acsr); } }
//check start step type private void StartTypeRule(ActivityConfig.ACSeriesRow acsr) { switch ((StepType)acsr.StepType) { case StepType.Activity: case StepType.Decision: case StepType.NonRecorded: //ok break; default: AddValidationRecord(acsr, ValidationType.Error, "Process must start on a Recorded Activity, Decision or Non-Recorded Step."); break; } }
//If StepTemplate has template, is language specified? private bool TemplateLanguageNotSpecified(ActivityConfig.ACSeriesRow acsr) { bool languageSpecified = false; foreach (lmDatasets.ActivityConfig.ActivityFieldRow afr in acsr.GetActivityFieldRows()) { if (!afr.IsNull("ObjectName") && afr.ObjectName.ToUpper() == "DOCUMENT" && afr.FieldName.ToUpper() == "LANGUAGECODE") { if (!afr.IsDefaultValueNull() || (!afr.IsDefaultObjectNameNull() && !afr.IsDefaultFieldNameNull())) { languageSpecified = true; break; } } } return(languageSpecified); }
private void TemplateRule(ActivityConfig.ACSeriesRow acsr) { bool hasDoc = false; bool templateHookedUp = false; bool isEmail = false; bool languageSpecified = false; bool templateExists = false; foreach (lmDatasets.ActivityConfig.ActivityFieldRow afr in acsr.GetActivityFieldRows()) { //If StepTemplate is "isEmail", doc template must be hooked up if (acsr.ActivityCodeRow.Communication) { isEmail = true; } if (!afr.IsNull("ObjectName") && afr.ObjectName.ToUpper() == "DOCUMENT" && afr.FieldName.ToUpper() == "TEMPLATECODE") { hasDoc = true; templateHookedUp = true; languageSpecified = TemplateLanguageNotSpecified(acsr); if (afr.IsDefaultValueNull()) { AddValidationRecord(acsr, ValidationType.Warning, "Related Fields reference a blank template code."); } else { templateExists = TemplateExists(afr.DefaultValue); } } } if (isEmail && !templateHookedUp) //add error row { AddValidationRecord(acsr, ValidationType.Error, "Step is intended to be an e-mail, yet a template is not hooked up in Related Fields"); } if (hasDoc && !languageSpecified) { AddValidationRecord(acsr, ValidationType.Warning, "Step has a document, yet the language is not set through Related Fields."); } if (hasDoc && !templateExists) { AddValidationRecord(acsr, ValidationType.Error, "Related Fields reference a template code that does not exist."); } }
public string GetRecordedStepText(ActivityConfig.ACSeriesRow acsr) { string lang = "Eng", acText = ""; if (myA.AppMan.Language.ToUpper() == "FRE") { lang = "Fre"; } acText = acsr.ActivityCodeRow["ActivityName" + lang].ToString(); if (acsr["Desc" + lang].ToString().Length > 0) { acText += " " + acsr["Desc" + lang].ToString(); } return(acText); }
public void LoadACS(string form) { int acsid = System.Convert.ToInt32(form.Replace("acs-", "")); Atmng = FM.AtMng; myACSeries = Atmng.acMng.DB.ACSeries.FindByACSeriesId(acsid); appDB.ddTableRow[] dtrs = (appDB.ddTableRow[])Atmng.DB.ddTable.Select("DefaultFormID=" + acsid.ToString()); myPrimaryTable = dtrs[0]; secReadOnly = Atmng.SecurityManager.CanUpdate(FM.CurrentFileId, MyFeatureID()) == atSecurity.SecurityManager.LevelPermissions.No; tsScreenTitle.Text = myACSeries["Desc" + Atmng.AppMan.Language].ToString(); Init(myACSeries); FileTreeView.BuildMenu(FM, tsActions, myACSeries.StepCode); }
public static bool AllowedForRole(ActivityConfig.ACSeriesRow acsr, atriumManager atmng, FileManager fm) { if (!acsr.IsRoleCodeNull()) { if (atmng.OfficeMng.GetOfficer().IsInRole(acsr.RoleCode) || (fm != null && fm.GetFileContact().IsInRole(acsr.RoleCode))) { return(true); } else { return(false); } } else { return(true); } }
public Diagram(Graphics g, ActivityConfig.ACSeriesRow initialStep) { mySeries = initialStep.SeriesRow; drawingSurface = g; g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit; g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; drawingSurface.Clear(drawingSurfaceBGColor); curPoint = new Point(100, 10); BFConverter.Init(); if (initialStep != null) { AddStep(initialStep); } }
private void AddValidationRecord(ActivityConfig.ACSeriesRow acsr, ValidationType ErrorType, string validationText) { acMng.DB.WFValidation.AddWFValidationRow((int)ErrorType, acsr.StepCode, validationText, acsr.ACSeriesId, "", ""); acMng.DB.WFValidation.AcceptChanges(); switch (ErrorType) { case ValidationType.Error: errorCount++; break; case ValidationType.Message: messageCount++; break; case ValidationType.Warning: warningCount++; break; } }
private void ucActivity_ASelectedValueChanged(object sender, EventArgs e) { try { //check to see if step has templates ActivityConfig.ACSeriesRow acsr = SelectedACSeries(); ACEngine ace = new ACEngine(fmCurrent); ace.TestForSteps(acsr.ACSeriesId); if (ace.HasDoc & ace.TemplateList != null) { uiTemplate.Enabled = true; UIHelper.ComboBoxInit(ace.TemplateList, uiTemplate, fmCurrent); } else { uiTemplate.Enabled = false; uiTemplate.SelectedValue = null; } //check for fields that require prompting ctx = new Dictionary <string, object>(); foreach (ActivityConfig.ActivityFieldRow afr in acsr.GetActivityFieldRows()) { if (afr.TaskType == "F" & afr.Visible & !afr.ReadOnly & afr.IsDefaultObjectNameNull() & (afr.IsDefaultValueNull() || !afr.DefaultValue.StartsWith("["))) { ctx.Add(afr.ObjectAlias + afr.FieldName, null); } } if (ctx.Count == 0) { ctx = null; } } catch (Exception x) { UIHelper.HandleUIException(x); } }
public static bool Allowed(ActivityConfig.ACSeriesRow acsr, atriumManager atmng, FileManager fm) { bool allow = false; //check security if (atmng.SecurityManager.CanAdd(fm.CurrentFileId, atSecurity.SecurityManager.Features.Activity) > atSecurity.SecurityManager.ExPermissions.No) { if (acsr.InitialStep == (int)ACEngine.Step.CreateFile | acsr.InitialStep == (int)ACEngine.Step.PickIssue) { allow = fm.CurrentFile.FileMetaTypeRow.AllowSubFiles; } else { allow = fm.CurrentFile.FileMetaTypeRow.AllowActivities; } return(AllowForFileType(acsr, fm) & AllowedForRole(acsr, atmng, fm) & !acsr.Obsolete & allow); } else { return(false); } }