using System; using System.Collections.Generic; using System.Data.Common; using System.Linq; using Sarand.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Core; using Sarand.Net.Standard.Base.Bus; using Sarand.Net.Standard.Base.Dbas; using Sarand.Net.Standard.Base.ReferenceData; using Sarand.Net.Standard.Dbas.Data; using Sarand.Net.Standard.Dbas.ReferenceData.Internal; using Sarand.Net.Standard.Dbas.ReferenceData.UpdateLog; using Sarand.Net.Standard.Base.Utils; namespace Sarand.Net.Standard.Dbas.ReferenceData { //======================================================================= internal partial class SaReferenceDataMgr_Dbas : SaReferenceDataMgr { //******************************************************************* // T a x C o d e s //******************************************************************* // Create TaxCode. public override SaTaxCode CreateTaxCode () { ClearErrorState(); return new SaTaxCode_Dbas(null, 0); } private SaTaxCode_Dbas CreateTaxCode (TaxCode_Db dbTaxCode) { ClearErrorState(); SaTaxCode_Dbas taxCode = new SaTaxCode_Dbas(new SysId(dbTaxCode._Id), (ushort)dbTaxCode._Flags); PopulateFrom(dbTaxCode, taxCode); return taxCode; } private SaTaxCode CreateTaxCode (DbDataReader dataReader) { TaxCode_Db dbTaxCode = new TaxCode_Db(DbInfo); dbTaxCode.PopulateFrom(dataReader); return CreateTaxCode(dbTaxCode); } //------------------------------------------------------------------- // TaxCode exists. public override bool TaxCodeExistsById (SysId id) { ClearErrorState(); if (!SysId.IsValid(id)) return false; return GetTaxCodeCount(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_Id, aliasTaxCode) + "=" + SysId.ToString(id)) == 1; } public override bool TaxCodeExistsByCode (string code) { ClearErrorState(); if (StringUtil.IsEmpty(code)) return false; return GetTaxCodeCount(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_Code, aliasTaxCode) + "='" + DbQuery.FormatForCondition(code) + "'") == 1; } //------------------------------------------------------------------- // Get TaxCode. public override SaTaxCode GetTaxCode (SaTaxCode.Params prm) { return GetTaxCode(GetTaxCodeQueryFilter(prm).Concat(" AND ", "(", ")")); } private SaTaxCode GetTaxCode (String filter) { ClearErrorState(); long count = GetTaxCodeCount(filter); if (count == 0) return null; if (count != 1) { SetErrorState("Multiple taxCodes found"); return null; } SaTaxCode taxCode = null; // Query data. using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { dbConnection.Open(); TaxCode_Db dbTaxCode = new TaxCode_Db(DbInfo); dbTaxCode.PopulateFrom(dbCommand, aliasTaxCode, filter); taxCode = CreateTaxCode(dbTaxCode); } catch (Exception exc) { SetErrorState("Database query exception"); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } return taxCode; } public override SaTaxCode GetTaxCodeById (SysId id) { ClearErrorState(); if (!SysId.IsValid(id)) return null; return GetTaxCode("Id=" + SysId.ToString(id)); } public override SaTaxCode GetTaxCodeByCode (string code) { ClearErrorState(); if (StringUtil.IsEmpty(code)) return null; return GetTaxCode("Code='" + DbQuery.FormatForCondition(code) + "'"); } //------------------------------------------------------------------- // Validate item. public override bool IsValidTaxCodeData (SaTaxCode.Data data, SaTaxCode.ErrField errField) { ClearErrorState(); if (!base.IsValidTaxCodeData(data, errField)) return false; return true; } //------------------------------------------------------------------- // Insert item. public override bool InsertTaxCode (SaTaxCode taxCode, DbUpdateInfo dbUpdateInfo) { ClearErrorState(); if (!IsValidTaxCode(taxCode)) return false; if (SysId.IsValid(taxCode.Id)) return SetErrorState(ErrorMessage.ValiditemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { dbConnection.Open(); TaxCode_Db dbTaxCode = new TaxCode_Db(DbInfo); PopulateTo(dbTaxCode, taxCode, dbUpdateInfo); if (TaxCode_Db.FieldsNonId.Contains("Id")) { // Generate next Id. dbTaxCode._Id = SysId.ToInt(Database.GetNextId("TaxCode", dbUpdateInfo)); } dbTaxCode.ExecuteInsertCommand(dbCommand); taxCode.Id = new SysId(dbTaxCode._Id); } catch (Exception exc) { SetErrorState(exc.Message); } } return !HasErrorState(); } //------------------------------------------------------------------- // Update item. public override bool UpdateTaxCode (SaTaxCode taxCode, DbUpdateInfo dbUpdateInfo) { ClearErrorState(); if (!IsValidTaxCode(taxCode)) return false; if (!SysId.IsValid(taxCode.Id)) return SetErrorState(ErrorMessage.InvalidItemId); using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { // Retrieve item. dbConnection.Open(); TaxCode_Db dbTaxCode = new TaxCode_Db(DbInfo); dbTaxCode.PopulateFrom(dbCommand, aliasTaxCode, "Id=" + SysId.ToString(taxCode.Id)); SaUpdateLogItemMonitor_TaxCode updateLogMonitor = new SaUpdateLogItemMonitor_TaxCode(ReferenceDataConsole, CreateTaxCode(dbTaxCode), dbUpdateInfo); // Update item. PopulateTo(dbTaxCode, taxCode, dbUpdateInfo); dbTaxCode.ExecuteUpdateCommand(dbCommand); // Record updates. updateLogMonitor.RecordUpdatedValues(taxCode); updateLogMonitor.LogUpdates(); } catch (Exception exc) { SetErrorState(exc.Message); } } return !HasErrorState(); } //------------------------------------------------------------------- // Delete item. public override bool TaxCodeCanBeDeleted (SaTaxCode taxCode) { ClearErrorState(); if (!base.TaxCodeCanBeDeleted(taxCode)) return false; return true; } public override bool DeleteTaxCode (SaTaxCode taxCode, DbUpdateInfo dbUpdateInfo) { ClearErrorState(); if (!TaxCodeCanBeDeleted(taxCode)) return false; using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { // Retrieve item. dbConnection.Open(); TaxCode_Db dbTaxCode = new TaxCode_Db(DbInfo); dbTaxCode.PopulateFrom(dbCommand, aliasTaxCode, "Id=" + taxCode.Id.ToString()); // Delete item. dbCommand.CommandType = System.Data.CommandType.Text; dbCommand.CommandText = "DELETE FROM " + ReferenceDataConsole.TableName_TaxCode + " WHERE Id=" + SysId.ToString(taxCode.Id) + ";"; dbCommand.ExecuteNonQuery(); } catch (Exception exc) { SetErrorState(exc.Message); } } return !HasErrorState(); } //------------------------------------------------------------------- // Copy data properties to and from database. private void PopulateTo (TaxCode_Db dbTaxCode, SaTaxCode taxCode, DbUpdateInfo dbUpdateInfo) { dbTaxCode._Id = taxCode.Id.ToInt(); dbTaxCode._Code = taxCode.Code; dbTaxCode._CodeAlt1 = taxCode.CodeAlt1; dbTaxCode._CodeAlt2 = taxCode.CodeAlt2; dbTaxCode._Description = taxCode.Description; dbTaxCode._RegionId = SysId.ToInt(taxCode.RegionId); dbTaxCode._EffectFrom = taxCode.EffectFrom; dbTaxCode._EffectTo = taxCode.EffectTo; dbTaxCode._TaxRate = (double)taxCode.TaxRate; dbTaxCode._TaxRatePrev = (double)taxCode.TaxRatePrev; dbTaxCode._TaxCodeIdLink = SysId.ToInt(taxCode.TaxCodeIdLink); // Common properties. dbTaxCode._Notes = taxCode.Notes; dbTaxCode._Status = SacsSystem.GetStatusCode(taxCode.Status); dbTaxCode._Flags = (short)taxCode.Flags; if (!SysId.IsValid(taxCode.Id)) { dbTaxCode._CreateOn = DateTime.UtcNow; dbTaxCode._CreateBy = dbUpdateInfo.UserId.ToInt(); dbTaxCode._CreateHost = dbUpdateInfo.Host; } dbTaxCode._UpdateOn = DateTime.UtcNow; dbTaxCode._UpdateBy = dbUpdateInfo.UserId.ToInt(); dbTaxCode._UpdateHost = dbUpdateInfo.Host; } private void PopulateFrom (TaxCode_Db dbTaxCode, SaTaxCode taxCode) { //taxCode.Id = new SysId(dbTaxCode._Id); //taxCode.Code = dbTaxCode._Code; taxCode.CodeAlt1 = dbTaxCode._CodeAlt1; taxCode.CodeAlt2 = dbTaxCode._CodeAlt2; taxCode.Description = dbTaxCode._Description; taxCode.RegionId = new SysId(dbTaxCode._RegionId); taxCode.EffectFrom = dbTaxCode._EffectFrom; taxCode.EffectTo = dbTaxCode._EffectTo; taxCode.TaxRate = (decimal)dbTaxCode._TaxRate; taxCode.TaxRatePrev = (decimal)dbTaxCode._TaxRatePrev; taxCode.TaxCodeIdLink = new SysId(dbTaxCode._TaxCodeIdLink); // Common properties. taxCode.Notes = dbTaxCode._Notes; taxCode.Status = SacsSystem.GetStatusForCode(dbTaxCode._Status); taxCode.SetCreateStamp(dbTaxCode._CreateOn, new SysId(dbTaxCode._CreateBy), dbTaxCode._CreateHost); taxCode.SetUpdateStamp(dbTaxCode._UpdateOn, new SysId(dbTaxCode._UpdateBy), dbTaxCode._UpdateHost); taxCode.AcceptChanges(); } //------------------------------------------------------------------- // TaxCode column definitions. private static readonly String aliasTaxCode = "aTax"; private void SetTaxCodeColDfn (ColumnDfn col, String caption, int width, SaReferenceDataDbDfn.ColumnIdx dbCol, ColumnAlignment align = ColumnAlignment.Default, DataValue.DataType dataType = DataValue.DataType.String, String alias = "", String prefix = "") { if (String.IsNullOrEmpty(alias) && SaReferenceDataDbDfn.GetTableForColumn(dbCol) == SaReferenceDataDbDfn.TableIdx.TaxCode) alias = aliasTaxCode; col.Set(caption, width, (int)dbCol, prefix + SaReferenceDataDbDfn.GetColumnName(dbCol, false), SaReferenceDataDbDfn.GetColumnNameQual(dbCol, alias), dataType, align); if (dataType == DataValue.DataType.String && dbCol != SaReferenceDataDbDfn.ColumnIdx.Unknown) col.MaxLength = (int)SaReferenceDataDbDfn.GetColTextLen(dbCol); } //------------------------------------------------------------------- // Getting taxcode column definition. public override ColumnDfn GetTaxCodeColumnDfn (SaTaxCode.Column columnId, string caption = "", int width = 0) { ColumnDfn columnDfn = new ColumnDfn((int)columnId, caption, width); switch (columnId) { case SaTaxCode.Column.Pos: SetTaxCodeColDfn(columnDfn, "Pos", 45, SaReferenceDataDbDfn.ColumnIdx.Unknown, ColumnAlignment.Right); columnDfn.SortMode = ColumnDfn.ColumnSortMode.Off; columnDfn.ReadOnly = true; columnDfn.Resizable = false; break; case SaTaxCode.Column.Id: SetTaxCodeColDfn(columnDfn, "Id", 60, SaReferenceDataDbDfn.ColumnIdx.TaxCode_Id, ColumnAlignment.Right, DataValue.DataType.Long); columnDfn.ReadOnly = true; break; // TaxCode Properties. case SaTaxCode.Column.Code: SetTaxCodeColDfn(columnDfn, "Code", 100, SaReferenceDataDbDfn.ColumnIdx.TaxCode_Code); break; case SaTaxCode.Column.CodeAlt1: SetTaxCodeColDfn(columnDfn, "CodeAlt1", 100, SaReferenceDataDbDfn.ColumnIdx.TaxCode_CodeAlt1); break; case SaTaxCode.Column.CodeAlt2: SetTaxCodeColDfn(columnDfn, "CodeAlt2", 80, SaReferenceDataDbDfn.ColumnIdx.TaxCode_CodeAlt2, ColumnAlignment.Center, DataValue.DataType.Double); columnDfn.NumDecimals = 3; break; case SaTaxCode.Column.Description: SetTaxCodeColDfn(columnDfn, "Description", 80, SaReferenceDataDbDfn.ColumnIdx.TaxCode_Description, ColumnAlignment.Center, DataValue.DataType.Double); columnDfn.NumDecimals = 3; break; case SaTaxCode.Column.RegionId: SetTaxCodeColDfn(columnDfn, "RegionId", 80, SaReferenceDataDbDfn.ColumnIdx.TaxCode_RegionId, ColumnAlignment.Center, DataValue.DataType.Double); columnDfn.NumDecimals = 3; break; case SaTaxCode.Column.EffectFrom: SetTaxCodeColDfn(columnDfn, "Effect From", 100, SaReferenceDataDbDfn.ColumnIdx.TaxCode_EffectFrom); break; case SaTaxCode.Column.EffectTo: SetTaxCodeColDfn(columnDfn, "Effect To", 80, SaReferenceDataDbDfn.ColumnIdx.TaxCode_EffectTo, ColumnAlignment.Center, DataValue.DataType.Double); columnDfn.NumDecimals = 3; break; case SaTaxCode.Column.TaxRate: SetTaxCodeColDfn(columnDfn, "Tax Rate", 80, SaReferenceDataDbDfn.ColumnIdx.TaxCode_TaxRate, ColumnAlignment.Center, DataValue.DataType.Double); columnDfn.NumDecimals = 3; break; case SaTaxCode.Column.TaxRatePrev: SetTaxCodeColDfn(columnDfn, "Tax Rate Prev", 80, SaReferenceDataDbDfn.ColumnIdx.TaxCode_TaxRatePrev, ColumnAlignment.Center, DataValue.DataType.Double); columnDfn.NumDecimals = 3; break; case SaTaxCode.Column.TaxCodeIdLink: SetTaxCodeColDfn(columnDfn, "Tax Code Id Link", 80, SaReferenceDataDbDfn.ColumnIdx.TaxCode_TaxCodeIdLink, ColumnAlignment.Center, DataValue.DataType.Double); columnDfn.NumDecimals = 3; break; // Derived properties. // Common properties. case SaTaxCode.Column.Notes: SetTaxCodeColDfn(columnDfn, "Notes", 240, SaReferenceDataDbDfn.ColumnIdx.TaxCode_Notes); break; case SaTaxCode.Column.Status: SetTaxCodeColDfn(columnDfn, "Status", 80, SaReferenceDataDbDfn.ColumnIdx.TaxCode_Status, ColumnAlignment.Center); break; case SaTaxCode.Column.Status_Desc: SetTaxCodeColDfn(columnDfn, "Status", 90, SaReferenceDataDbDfn.ColumnIdx.TaxCode_Status, ColumnAlignment.Center); break; case SaTaxCode.Column.Status_Ind: SetTaxCodeColDfn(columnDfn, "Status", 80, SaReferenceDataDbDfn.ColumnIdx.TaxCode_Status, ColumnAlignment.Center, DataValue.DataType.TriState); columnDfn.TriStateFormat = ColumnTriStateFormat.Lights; break; case SaTaxCode.Column.CreateOn_Date: SetTaxCodeColDfn(columnDfn, "Created", 80, SaReferenceDataDbDfn.ColumnIdx.TaxCode_CreateOn, ColumnAlignment.Center, DataValue.DataType.Date); columnDfn.ReadOnly = true; break; case SaTaxCode.Column.UpdateOn_Date: SetTaxCodeColDfn(columnDfn, "Updated", 80, SaReferenceDataDbDfn.ColumnIdx.TaxCode_UpdateOn, ColumnAlignment.Center, DataValue.DataType.Date); columnDfn.ReadOnly = true; break; } if (!String.IsNullOrEmpty(caption)) columnDfn.Caption = caption; if (width > 0) columnDfn.Width = width; return columnDfn; } //------------------------------------------------------------------- // TaxCode query filter. public override List GetTaxCodeQueryFilter (SaTaxCode.Params prm) { List filter = new List(); // TaxCode Id. String includedIds = prm.IncludedIds.Concat(","); if (!includedIds.IsEmpty()) filter.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_Id, aliasTaxCode) + " IN (" + includedIds + ")"); String excludedIds = prm.ExcludedIds.Concat(","); if (!excludedIds.IsEmpty()) filter.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_Id, aliasTaxCode) + " NOT IN (" + excludedIds + ")"); // Code. if (!StringUtil.IsEmpty(prm.Code)) filter.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_Code, aliasTaxCode) + "='" + DbQuery.FormatForCondition(prm.Code) + "'"); if (!StringUtil.IsEmpty(prm.CodePartial)) filter.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_Code, aliasTaxCode) + " LIKE '%" + DbQuery.FormatForLike(prm.CodePartial) + "%'"); // CodeAlt1. if (!StringUtil.IsEmpty(prm.CodeAlt1)) filter.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_CodeAlt1, aliasTaxCode) + "='" + DbQuery.FormatForCondition(prm.CodeAlt1) + "'"); // CodeAlt2. if (!StringUtil.IsEmpty(prm.CodeAlt2)) filter.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_CodeAlt2, aliasTaxCode) + "='" + DbQuery.FormatForCondition(prm.CodeAlt2) + "'"); // RegionId. if (SysId.IsValid(prm.RegionId)) filter.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_RegionId, aliasTaxCode) + "=" + SysId.ToInt(prm.RegionId)); // EffectOn. if (DateUtil.IsValid(prm.EffectOn)) { filter.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_EffectFrom, aliasTaxCode) + ">" + DbQuery.FormatDateForCondition(prm.EffectOn)); filter.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_EffectTo, aliasTaxCode) + "<" + DbQuery.FormatDateForCondition(DateUtil.IncrementDate(prm.EffectOn,1))); } // Notes. if (!StringUtil.IsEmpty(prm.NotesPartial)) filter.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_Notes, aliasTaxCode) + " LIKE '%" + DbQuery.FormatForLike(prm.NotesPartial) + "%'"); // Status. if (prm.StatusCat == SaTaxCode.StatusCat.ActiveOnly) filter.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_Status, aliasTaxCode) + " In ('" + SacsSystem.GetStatusCode(SaStatus.Current) + "','" + SacsSystem.GetStatusCode(SaStatus.Active) + "')"); if (filter.Count < 1 && prm.IncludeDefaultFilter) filter.Add("1=1"); return filter; } // TaxCode sort columns. public List GetTaxCodeSortColumns (SaTaxCode.Params prm) { // Sort sequence: List sortColumnNames = new List(); foreach (var columnDfn in prm.SortColumns) { // Need to ensure correct alias used for TaxCode columns in case of conflict. String sortCol = String.Empty; if (SaReferenceDataDbDfn.GetTableForColumn((SaReferenceDataDbDfn.ColumnIdx)columnDfn.DbColumn) == SaReferenceDataDbDfn.TableIdx.TaxCode) { sortCol = SaReferenceDataDbDfn.GetColumnNameQual((SaReferenceDataDbDfn.ColumnIdx)columnDfn.DbColumn, aliasTaxCode); } else { sortCol = columnDfn.DataName; if (!StringUtil.IsEmpty(columnDfn.SortDataName)) sortCol = columnDfn.SortDataName; } if (!sortCol.IsEmpty()) { DbOrderByNullMode orderByNullMode = DbOrderByNullMode.Default; // eSaOrderByDemoteNulls, eSaOrderByPromoteNulls sortColumnNames.Add(DbQuery.FormatForOrderBy(sortCol, columnDfn.SortAscending, orderByNullMode).Concat(", ")); } } sortColumnNames.RemoveBlanks(); if (sortColumnNames.IsEmpty()) { // Default sort columns: sortColumnNames.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_Code, aliasTaxCode) + " ASC"); } return sortColumnNames; } //------------------------------------------------------------------- // TaxCode count. private long GetTaxCodeCount (String filter) { ClearErrorState(); return Database.GetRowCount(ReferenceDataConsole.TableName_TaxCode + " As " + aliasTaxCode, filter); } public override long GetTaxCodeCount (SaTaxCode.Params prm) { ClearErrorState(); return GetTaxCodeCount(GetTaxCodeQueryFilter(prm).Concat(" AND ", "(", ")")); } //------------------------------------------------------------------- // TaxCode list. public override List GetTaxCodeList (SaTaxCode.Params prm) { ClearErrorState(); List taxCodes = new List(); DbQuery qry = new DbQuery(Database.DbmsType); qry.Tables.Add(ReferenceDataConsole.TableName_TaxCode, aliasTaxCode); TaxCode_Db dbTaxCode = new TaxCode_Db(DbInfo); qry.Columns.AddRange(dbTaxCode.ExistingColumnNames); qry.Filters.AddRange(GetTaxCodeQueryFilter(prm)); qry.OrderBy.AddRange(GetTaxCodeSortColumns(prm)); // Query data. using (var dbConnection = Database.CreateConnection()) using (var dbCommand = dbConnection.CreateCommand()) { try { dbConnection.Open(); dbCommand.CommandText = qry.BuildQuery(prm.ResultsPaging); using (DbDataReader dbDataReader = dbCommand.ExecuteReader()) { while (dbDataReader.Read()) taxCodes.Add(CreateTaxCode(dbDataReader)); } } catch (Exception exc) { SetErrorState("Database query exception"); SaLogger.Warn($"{SysUtil.Fn}\n\tQuery: {dbCommand.CommandText}\n\t{ExceptionUtil.GetErrorStateMessage(exc)}"); } } return taxCodes; } //------------------------------------------------------------------- // TaxCode query execution. public override DbResultSet ExecuteTaxCodeQuery (List columns, SaTaxCode.Params prm) { ClearErrorState(); //--------------------------------------------------------------------- // Construct query. DbQuery query = new DbQuery(Database.DbmsType); query.Tables.Add(ReferenceDataConsole.TableName_TaxCode, aliasTaxCode); // TaxCode Properties - add columns as defined in query list. if (columns.HasId((int)SaTaxCode.Column.Id)) query.Columns.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_Id, aliasTaxCode)); if (columns.HasId((int)SaTaxCode.Column.Code)) query.Columns.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_Code, aliasTaxCode)); if (columns.HasId((int)SaTaxCode.Column.CodeAlt1)) query.Columns.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_CodeAlt1, aliasTaxCode)); if (columns.HasId((int)SaTaxCode.Column.CodeAlt2)) query.Columns.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_CodeAlt2, aliasTaxCode)); if (columns.HasId((int)SaTaxCode.Column.Description)) query.Columns.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_Description, aliasTaxCode)); if (columns.HasId((int)SaTaxCode.Column.RegionId)) query.Columns.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_RegionId, aliasTaxCode)); if (columns.HasId((int)SaTaxCode.Column.EffectFrom)) query.Columns.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_EffectFrom, aliasTaxCode)); if (columns.HasId((int)SaTaxCode.Column.EffectTo)) query.Columns.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_EffectTo, aliasTaxCode)); if (columns.HasId((int)SaTaxCode.Column.TaxRate)) query.Columns.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_TaxRate, aliasTaxCode)); if (columns.HasId((int)SaTaxCode.Column.TaxRatePrev)) query.Columns.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_TaxRatePrev, aliasTaxCode)); if (columns.HasId((int)SaTaxCode.Column.TaxCodeIdLink)) query.Columns.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_TaxCodeIdLink, aliasTaxCode)); // Common Properties. if (columns.HasId((int)SaTaxCode.Column.Notes)) query.Columns.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_Notes, aliasTaxCode)); if (columns.HasId((int)SaTaxCode.Column.Status) || columns.HasId((int)SaTaxCode.Column.Status_Desc) || columns.HasId((int)SaTaxCode.Column.Status_Ind)) query.Columns.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_Status, aliasTaxCode)); if (columns.HasId((int)SaTaxCode.Column.CreateOn_Date)) query.Columns.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_CreateOn, aliasTaxCode)); if (columns.HasId((int)SaTaxCode.Column.UpdateOn_Date)) query.Columns.Add(SaReferenceDataDbDfn.GetColumnNameQual(SaReferenceDataDbDfn.ColumnIdx.TaxCode_UpdateOn, aliasTaxCode)); //--------------------------------------------------------------------- // Populate filter. query.Filters.AddRange(GetTaxCodeQueryFilter(prm)); if (prm.IncludedIds.Count != 1) { // Configure sort sequence. foreach (String sortColumn in GetTaxCodeSortColumns(prm)) query.OrderBy.Add(sortColumn); } //--------------------------------------------------------------------- //return new DbResultSet_DataTableReader(Database, query.BuildQuery()); return DbResultSet_DataReader.ExecuteQuery(Database, query.BuildQuery()); } //------------------------------------------------------------------- } //======================================================================= }