private bool AnalysisCodeIsActive(String AAccountCode, String AAnalysisCode = "") { bool retVal = true; if ((AAnalysisCode == string.Empty) || (AAccountCode == string.Empty)) { return(retVal); } DataView dv = new DataView(FCacheDS.AAnalysisAttribute); dv.RowFilter = String.Format("{0}={1} AND {2}='{3}' AND {4}='{5}' AND {6}=true", AAnalysisAttributeTable.GetLedgerNumberDBName(), FLedgerNumber, AAnalysisAttributeTable.GetAccountCodeDBName(), AAccountCode, AAnalysisAttributeTable.GetAnalysisTypeCodeDBName(), AAnalysisCode, AAnalysisAttributeTable.GetActiveDBName()); retVal = (dv.Count > 0); return(retVal); }
public static GLSetupTDS LoadAAnalysisAttributes(Int32 ALedgerNumber, Boolean AActiveOnly = false) { GLSetupTDS CacheDS = new GLSetupTDS(); bool NewTransaction; TDBTransaction Transaction = DBAccess.GDBAccessObj.GetNewOrExistingTransaction(IsolationLevel.ReadCommitted, out NewTransaction); AAnalysisTypeAccess.LoadAll(CacheDS, Transaction); if (!AActiveOnly) { AFreeformAnalysisAccess.LoadViaALedger(CacheDS, ALedgerNumber, Transaction); AAnalysisAttributeAccess.LoadViaALedger(CacheDS, ALedgerNumber, Transaction); } else { AFreeformAnalysisTable FFTable = new AFreeformAnalysisTable(); AFreeformAnalysisRow TemplateFFRow = FFTable.NewRowTyped(false); TemplateFFRow.LedgerNumber = ALedgerNumber; TemplateFFRow.Active = true; AFreeformAnalysisAccess.LoadUsingTemplate(CacheDS, TemplateFFRow, Transaction); AAnalysisAttributeTable AATable = new AAnalysisAttributeTable(); AAnalysisAttributeRow TemplateAARow = AATable.NewRowTyped(false); TemplateAARow.LedgerNumber = ALedgerNumber; TemplateAARow.Active = true; AAnalysisAttributeAccess.LoadUsingTemplate(CacheDS, TemplateAARow, Transaction); } if (NewTransaction) { DBAccess.GDBAccessObj.RollbackTransaction(); } return CacheDS; }
/// <summary> /// /// </summary> /// <param name="AAccountCode"></param> /// <param name="AAnalysisAttribute"></param> /// <param name="AAnalysisCode"></param> /// <returns></returns> public bool AnalysisCodeIsActive(string AAccountCode, AAnalysisAttributeTable AAnalysisAttribute, String AAnalysisCode = "") { bool retVal = true; if ((AAnalysisCode == string.Empty) || (AAccountCode == string.Empty)) { return retVal; } DataView dv = new DataView(AAnalysisAttribute); dv.RowFilter = String.Format("{0}={1} AND {2}='{3}' AND {4}='{5}' AND {6}=true", AAnalysisAttributeTable.GetLedgerNumberDBName(), FLedgerNumber, AAnalysisAttributeTable.GetAccountCodeDBName(), AAccountCode, AAnalysisAttributeTable.GetAnalysisTypeCodeDBName(), AAnalysisCode, AAnalysisAttributeTable.GetActiveDBName()); retVal = (dv.Count > 0); return retVal; }
// // Called from cmbDetailAccountCode.SelectedValueChanged, // I need to load the Analysis Types Pane with the required attributes for this account, // and show any assignments already made. void ShowAnalysisAttributesForAccount(object sender, EventArgs e) { // // It's possible that my TDS doesn't even have an AnalAttrib table... if (FMainDS.AApAnalAttrib == null) { FMainDS.Merge(new AApAnalAttribTable()); } if (FPetraUtilsObject.SuppressChangeDetection || (FPreviouslySelectedDetailRow == null)) { return; } //Empty the grid FMainDS.AApAnalAttrib.DefaultView.RowFilter = "1=2"; FPSAttributesRow = null; if (grdAnalAttributes.Columns.Count < 2) // This is initialisation but I moved it here because sometimes this is called before Show(). { grdAnalAttributes.SpecialKeys = GridSpecialKeys.Default | GridSpecialKeys.Tab; cmbAnalAttribValues = new SourceGrid.Cells.Editors.ComboBox(typeof(string)); cmbAnalAttribValues.Control.DropDownStyle = ComboBoxStyle.DropDownList; cmbAnalAttribValues.EnableEdit = true; cmbAnalAttribValues.EditableMode = EditableMode.Focus; cmbAnalAttribValues.Control.SelectedValueChanged += new EventHandler(AnalysisAttributeValueChanged); grdAnalAttributes.AddTextColumn("Value", FMainDS.AApAnalAttrib.Columns[AApAnalAttribTable.GetAnalysisAttributeValueDBName()], 120, cmbAnalAttribValues); grdAnalAttributes.Selection.SelectionChanged += new RangeRegionChangedEventHandler(AnalysisAttributesGrid_RowSelected); } grdAnalAttributes.Columns[0].Width = 90; // for some unknown reason, this doesn't work. grdAnalAttributes.Columns[1].Width = 120; AccountsPayableTDSAApDocumentDetailRow DetailRow = GetSelectedDetailRow(); DetailRow.AccountCode = cmbDetailAccountCode.GetSelectedString(); // // So I want to remove any attributes attached to this row that don't have the new account code... FMainDS.AApAnalAttrib.DefaultView.RowFilter = String.Format("{0}={1} AND {2}={3} AND {4}={5} AND {6}<>'{7}'", AApAnalAttribTable.GetLedgerNumberDBName(), DetailRow.LedgerNumber, AApAnalAttribTable.GetApDocumentIdDBName(), DetailRow.ApDocumentId, AApAnalAttribTable.GetDetailNumberDBName(), DetailRow.DetailNumber, AApAnalAttribTable.GetAccountCodeDBName(), DetailRow.AccountCode); for (Int32 RowIdx = FMainDS.AApAnalAttrib.DefaultView.Count; RowIdx > 0; RowIdx--) { FMainDS.AApAnalAttrib.DefaultView[RowIdx - 1].Row.Delete(); } FMainDS.AAnalysisAttribute.DefaultView.RowFilter = String.Format("{0}='{1}'", AAnalysisAttributeTable.GetAccountCodeDBName(), DetailRow.AccountCode); String AccountCodeRowFilter = String.Format("{0}={1} AND {2}={3} AND {4}={5} AND {6}='{7}'", AApAnalAttribTable.GetLedgerNumberDBName(), DetailRow.LedgerNumber, AApAnalAttribTable.GetApDocumentIdDBName(), DetailRow.ApDocumentId, AApAnalAttribTable.GetDetailNumberDBName(), DetailRow.DetailNumber, AApAnalAttribTable.GetAccountCodeDBName(), DetailRow.AccountCode); foreach (DataRowView rv in FMainDS.AAnalysisAttribute.DefaultView) // List of attributes required for this account { AAnalysisAttributeRow AttrRow = (AAnalysisAttributeRow)rv.Row; FMainDS.AApAnalAttrib.DefaultView.RowFilter = AccountCodeRowFilter + String.Format(" AND {0}='{1}'", AApAnalAttribTable.GetAnalysisTypeCodeDBName(), AttrRow.AnalysisTypeCode); if (FMainDS.AApAnalAttrib.DefaultView.Count == 0) // No Entry yet for this attribute. This is likely, given I just deleted everything... { AApAnalAttribRow AARow = FMainDS.AApAnalAttrib.NewRowTyped(); AARow.LedgerNumber = DetailRow.LedgerNumber; AARow.ApDocumentId = DetailRow.ApDocumentId; AARow.DetailNumber = DetailRow.DetailNumber; AARow.AnalysisTypeCode = AttrRow.AnalysisTypeCode; AARow.AccountCode = DetailRow.AccountCode; FMainDS.AApAnalAttrib.Rows.Add(AARow); } } FMainDS.AApAnalAttrib.DefaultView.RowFilter = AccountCodeRowFilter; FMainDS.AApAnalAttrib.DefaultView.Sort = AApAnalAttribTable.GetAnalysisTypeCodeDBName(); grdAnalAttributes.DataSource = null; grdAnalAttributes.DataSource = new DevAge.ComponentModel.BoundDataView(FMainDS.AApAnalAttrib.DefaultView); UpdateAttributeLabel(DetailRow); if (grdAnalAttributes.Rows.Count > 2) { grdAnalAttributes.Enabled = true; grdAnalAttributes.SelectRowWithoutFocus(1); AnalysisAttributesGrid_RowSelected(null, null); } else { grdAnalAttributes.Enabled = false; } }
private static bool DetailLineAttributesRequired(ref bool AllPresent, AccountsPayableTDS Atds, AApDocumentDetailRow DetailRow) { Atds.AAnalysisAttribute.DefaultView.RowFilter = String.Format("{0}='{1}'", AAnalysisAttributeTable.GetAccountCodeDBName(), DetailRow.AccountCode); if (Atds.AAnalysisAttribute.DefaultView.Count > 0) { bool IhaveAllMyAttributes = true; // // It's possible that my TDS doesn't even have an AnalAttrib table... if (Atds.AApAnalAttrib == null) { Atds.Merge(new AApAnalAttribTable()); } foreach (DataRowView rv in Atds.AAnalysisAttribute.DefaultView) { AAnalysisAttributeRow AttrRow = (AAnalysisAttributeRow)rv.Row; Atds.AApAnalAttrib.DefaultView.RowFilter = String.Format("{0}={1} AND {2}='{3}'", AApAnalAttribTable.GetDetailNumberDBName(), DetailRow.DetailNumber, AApAnalAttribTable.GetAccountCodeDBName(), AttrRow.AccountCode); if (Atds.AApAnalAttrib.DefaultView.Count == 0) { IhaveAllMyAttributes = false; break; } foreach (DataRowView rv2 in Atds.AApAnalAttrib.DefaultView) { AApAnalAttribRow AttribValueRow = (AApAnalAttribRow)rv2.Row; if (AttribValueRow.AnalysisAttributeValue == "") { IhaveAllMyAttributes = false; break; } // Is the referenced AttribValue active? AFreeformAnalysisRow referencedRow = (AFreeformAnalysisRow)Atds.AFreeformAnalysis.Rows.Find( new Object[] { AttribValueRow.LedgerNumber, AttribValueRow.AnalysisTypeCode, AttribValueRow.AnalysisAttributeValue } ); if ((referencedRow == null) || !referencedRow.Active) { IhaveAllMyAttributes = false; break; } } if (IhaveAllMyAttributes == false) // because of the test above.. { break; } } AllPresent = IhaveAllMyAttributes; return(true); } else { AllPresent = true; // This detail line is fully specified return(false); // No attributes are required } }
/// <summary> /// /// </summary> /// <param name="AAccountCode"></param> /// <param name="AAnalysisAttributeTbl"></param> /// <param name="AAnalysisCode"></param> /// <returns></returns> public bool AnalysisCodeIsActive(string AAccountCode, AAnalysisAttributeTable AAnalysisAttributeTbl, String AAnalysisCode = "") { #region Validate Arguments if ((AAccountCode == string.Empty) || (AAnalysisCode == string.Empty)) { return true; } else if (AAnalysisAttributeTbl == null) { throw new EFinanceSystemDataObjectNullOrEmptyException(String.Format(Catalog.GetString( "Function:{0} - The Analysis Attributes table is null!"), Utilities.GetMethodName(true))); } #endregion Validate Arguments DataView AnalysisDV = new DataView(AAnalysisAttributeTbl); AnalysisDV.RowFilter = String.Format("{0}={1} AND {2}='{3}' AND {4}='{5}' AND {6}=true", AAnalysisAttributeTable.GetLedgerNumberDBName(), FLedgerNumber, AAnalysisAttributeTable.GetAccountCodeDBName(), AAccountCode, AAnalysisAttributeTable.GetAnalysisTypeCodeDBName(), AAnalysisCode, AAnalysisAttributeTable.GetActiveDBName()); return AnalysisDV.Count > 0; }
public static GLSetupTDS LoadAAnalysisAttributes(Int32 ALedgerNumber, Boolean AActiveOnly = false) { #region Validate Arguments if (ALedgerNumber <= 0) { throw new EFinanceSystemInvalidLedgerNumberException(String.Format(Catalog.GetString( "Function:{0} - The Ledger number must be greater than 0!"), Utilities.GetMethodName(true)), ALedgerNumber); } #endregion Validate Arguments GLSetupTDS MainDS = new GLSetupTDS(); TDBTransaction Transaction = null; try { DBAccess.GDBAccessObj.GetNewOrExistingAutoReadTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, ref Transaction, delegate { AAnalysisTypeAccess.LoadViaALedger(MainDS, ALedgerNumber, Transaction); if (!AActiveOnly) { AFreeformAnalysisAccess.LoadViaALedger(MainDS, ALedgerNumber, Transaction); AAnalysisAttributeAccess.LoadViaALedger(MainDS, ALedgerNumber, Transaction); } else { AFreeformAnalysisTable FFTable = new AFreeformAnalysisTable(); AFreeformAnalysisRow TemplateFFRow = FFTable.NewRowTyped(false); TemplateFFRow.LedgerNumber = ALedgerNumber; TemplateFFRow.Active = true; AFreeformAnalysisAccess.LoadUsingTemplate(MainDS, TemplateFFRow, Transaction); AAnalysisAttributeTable AATable = new AAnalysisAttributeTable(); AAnalysisAttributeRow TemplateAARow = AATable.NewRowTyped(false); TemplateAARow.LedgerNumber = ALedgerNumber; TemplateAARow.Active = true; AAnalysisAttributeAccess.LoadUsingTemplate(MainDS, TemplateAARow, Transaction); } }); MainDS.AcceptChanges(); } catch (Exception ex) { TLogging.Log(String.Format("Method:{0} - Unexpected error!{1}{1}{2}", Utilities.GetMethodSignature(), Environment.NewLine, ex.Message)); throw ex; } return MainDS; }
public static bool AccountHasAnalysisAttributes(Int32 ALedgerNumber, String AAccountCode, bool AActiveOnly = false) { #region Validate Arguments if (ALedgerNumber <= 0) { throw new EFinanceSystemInvalidLedgerNumberException(String.Format(Catalog.GetString( "Function:{0} - The Ledger number must be greater than 0!"), Utilities.GetMethodName(true)), ALedgerNumber); } #endregion Validate Arguments AAnalysisAttributeTable AnalysisAttributeTable = null; bool AccountAnalysisAttributeExists = false; TDBTransaction Transaction = null; try { DBAccess.GDBAccessObj.GetNewOrExistingAutoReadTransaction(IsolationLevel.ReadCommitted, TEnforceIsolationLevel.eilMinimum, ref Transaction, delegate { if (!AActiveOnly) { AnalysisAttributeTable = AAnalysisAttributeAccess.LoadViaAAccount(ALedgerNumber, AAccountCode, Transaction); } else { AAnalysisAttributeTable AATable = new AAnalysisAttributeTable(); AAnalysisAttributeRow TemplateAARow = AATable.NewRowTyped(false); TemplateAARow.LedgerNumber = ALedgerNumber; TemplateAARow.AccountCode = AAccountCode; TemplateAARow.Active = true; AnalysisAttributeTable = AAnalysisAttributeAccess.LoadUsingTemplate(TemplateAARow, Transaction); } }); AccountAnalysisAttributeExists = (AnalysisAttributeTable.Count > 0); } catch (Exception ex) { TLogging.Log(String.Format("Method:{0} - Unexpected error!{1}{1}{2}", Utilities.GetMethodSignature(), Environment.NewLine, ex.Message)); throw ex; } return AccountAnalysisAttributeExists; }
public static bool AccountHasAnalysisAttributes(Int32 ALedgerNumber, String AAccountCode, bool AActiveOnly = false) { TDBTransaction Transaction = DBAccess.GDBAccessObj.BeginTransaction(IsolationLevel.ReadCommitted); AAnalysisAttributeTable AnalysisAttributeTable = null; bool AccountAnalysisAttributeExists = false; try { if (!AActiveOnly) { AnalysisAttributeTable = AAnalysisAttributeAccess.LoadViaAAccount(ALedgerNumber, AAccountCode, Transaction); } else { AAnalysisAttributeTable AATable = new AAnalysisAttributeTable(); AAnalysisAttributeRow TemplateAARow = AATable.NewRowTyped(false); TemplateAARow.LedgerNumber = ALedgerNumber; TemplateAARow.AccountCode = AAccountCode; TemplateAARow.Active = true; AnalysisAttributeTable = AAnalysisAttributeAccess.LoadUsingTemplate(TemplateAARow, Transaction); } AccountAnalysisAttributeExists = (AnalysisAttributeTable.Count > 0); } catch (Exception ex) { TLogging.Log("Unexpected error in AccountHasAnalysisAttributes: " + ex.Message); } finally { DBAccess.GDBAccessObj.RollbackTransaction(); } return AccountAnalysisAttributeExists; }