Rationalise business objects.

This commit is contained in:
Andy Howard
2025-02-01 17:53:13 +00:00
parent a3ac029d55
commit 7930ef5604
245 changed files with 6394 additions and 4806 deletions
@@ -16,12 +16,12 @@ using System.Linq;
namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
{
//=======================================================================
// Price manager - Price Sets.
//=======================================================================
partial class SbmPriceMgr_Dbas
{
//*******************************************************************
// P r i c e S e t
//*******************************************************************
//-------------------------------------------------------------------
// Utilities.
private List<StringPair> GetLogProperties(SbmPriceSet priceSet)
{
@@ -34,6 +34,22 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
};
}
//-------------------------------------------------------------------
// Associated data.
public override bool PriceSetHasPrices(SysId priceSetId)
{
ClearErrorState();
if (!SysId.IsValid(priceSetId)) return false;
String tablePrice = SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaPrice);
if (Database.TableExists(tablePrice))
{
List<String> filter = new List<String>();
filter.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.SaPrice_PriceSetId)}={SysId.ToLong(priceSetId)}");
return Database.GetRowCount(tablePrice, filter.Concat(" AND ", "(", ")")) > 0;
}
return false;
}
//-------------------------------------------------------------------
// Get item.
public override SbmPriceSet GetPriceSet(SbmPriceSet.Params prm)
@@ -76,12 +92,12 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
public override SbmPriceSet CreatePriceSet(String reference, Sbm.PriceType priceType)
{
ClearErrorState();
return new SbmPriceSet_Dbas(Internals, new SysId(), UserContext.OrganisationAffiliateId, reference, priceType, 0);
return new SbmPriceSet_Dbas(new SysId(), UserContext.OrganisationAffiliateId, reference, priceType, 0);
}
private SbmPriceSet_Dbas CreatePriceSet(SaPriceSet_Db dbPriceSet)
{
ClearErrorState();
SbmPriceSet_Dbas priceSet = new SbmPriceSet_Dbas(Internals, new SysId(dbPriceSet._Id), new SysId(dbPriceSet._AffIdOwner), dbPriceSet._Ref, (Sbm.PriceType)dbPriceSet._Type, (ushort)dbPriceSet._Flags);
SbmPriceSet_Dbas priceSet = new SbmPriceSet_Dbas(new SysId(dbPriceSet._Id), new SysId(dbPriceSet._AffIdOwner), dbPriceSet._Ref, (Sbm.PriceType)dbPriceSet._Type, (ushort)dbPriceSet._Flags);
PopulateFrom(dbPriceSet, priceSet);
return priceSet;
}
@@ -113,7 +129,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
if (SaPriceSet_Db.FieldsNonId.Contains("Id"))
{
// Generate next Id.
dbPriceSet._Id = SysId.ToInt(Database.GetNextId("PriceSet", dbUpdateInfo));
dbPriceSet._Id = SysId.ToInt(Database.GetNextId("SaPriceSet", dbUpdateInfo));
}
dbPriceSet.ExecuteInsertCommand(dbCommand);
priceSet.Id = new SysId(dbPriceSet._Id);
@@ -479,33 +495,33 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
query.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.SaPriceSet), aliasPriceSet);
// PriceSet Properties - add columns as defined in query list.
if (columns.HasId((int)SbmPriceSet.Column.Id))
if (columns.HasId(SbmPriceSet.Column.Id))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaPriceSet_Id, aliasPriceSet));
if (columns.HasId((int)SbmPriceSet.Column.PriceType) || columns.HasId((int)SbmPriceSet.Column.PriceType_Desc))
if (columns.HasId(SbmPriceSet.Column.PriceType) || columns.HasId(SbmPriceSet.Column.PriceType_Desc))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaPriceSet_Type, aliasPriceSet));
if (columns.HasId((int)SbmPriceSet.Column.Reference))
if (columns.HasId(SbmPriceSet.Column.Reference))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaPriceSet_Ref, aliasPriceSet));
if (columns.HasId((int)SbmPriceSet.Column.Name))
if (columns.HasId(SbmPriceSet.Column.Name))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaPriceSet_Name, aliasPriceSet));
if (columns.HasId((int)SbmPriceSet.Column.CurrencyId))
if (columns.HasId(SbmPriceSet.Column.CurrencyId))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaPriceSet_CurrencyId, aliasPriceSet));
if (columns.HasId((int)SbmPriceSet.Column.HasStaticPrices_Tick) || columns.HasId((int)SbmPriceSet.Column.HasStaticPrices_Y))
if (columns.HasId(SbmPriceSet.Column.HasStaticPrices_Tick) || columns.HasId(SbmPriceSet.Column.HasStaticPrices_Y))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaPriceSet_Flags, aliasPriceSet));
// Common Properties
if (columns.HasId((int)SbmPriceSet.Column.Notes))
if (columns.HasId(SbmPriceSet.Column.Notes))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaPriceSet_Notes, aliasPriceSet));
if (columns.HasId((int)SbmPriceSet.Column.Status) || columns.HasId((int)SbmPriceSet.Column.Status_Desc) || columns.HasId((int)SbmPriceSet.Column.Status_Ind))
if (columns.HasId(SbmPriceSet.Column.Status) || columns.HasId(SbmPriceSet.Column.Status_Desc) || columns.HasId(SbmPriceSet.Column.Status_Ind))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaPriceSet_Status, aliasPriceSet));
if (columns.HasId((int)SbmPriceSet.Column.CreateOn_Date))
if (columns.HasId(SbmPriceSet.Column.CreateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaPriceSet_CreateOn, aliasPriceSet));
if (columns.HasId((int)SbmPriceSet.Column.UpdateOn_Date))
if (columns.HasId(SbmPriceSet.Column.UpdateOn_Date))
query.Columns.Add(SbmDbDfn.GetColumnNameQual(SbmDbDfn.ColumnIdx.SaPriceSet_UpdateOn, aliasPriceSet));
//---------------------------------------------------------------
// Currency.
bool hasCurrencyCols = false;
if (!hasCurrencyCols) hasCurrencyCols = columns.HasId((int)SbmPriceSet.Column.Currency_Code);
if (!hasCurrencyCols) hasCurrencyCols = columns.HasId((int)SbmPriceSet.Column.Currency_Name);
if (!hasCurrencyCols) hasCurrencyCols = columns.HasId(SbmPriceSet.Column.Currency_Code);
if (!hasCurrencyCols) hasCurrencyCols = columns.HasId(SbmPriceSet.Column.Currency_Name);
if (hasCurrencyCols)
{
DbQueryJoin joinCurrency = new DbQueryJoin(DbJoinType.LeftOuter);
@@ -524,7 +540,7 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
//---------------------------------------------------------------
// Price count.
if (columns.HasId((int)SbmPriceSet.Column.PriceCount))
if (columns.HasId(SbmPriceSet.Column.PriceCount))
{
String aliasPriceCount = "PriceCount";
DbQuery qryPrice = new DbQuery(Database.DbmsType);