3.0.1.2 Requirements & tidy

This commit is contained in:
Andy Howard
2025-02-26 18:42:52 +00:00
parent d7dc5f8fbc
commit 80b085cf29
79 changed files with 2472 additions and 594 deletions
@@ -69,16 +69,43 @@ namespace Sarand.BusinessMgr.Net.Standard.Dbas.Mgr
return detailsAreReadOnly;
}
//-------------------------------------------------------------------
// Transaction properties.
public override Sbm.TransactionType GetTransactionType(SysId transactionId)
{
if (SysId.IsValid(transactionId))
{
// Construct the query.
String colType = "TransType";
DbQuery qry = new DbQuery(Database.DbmsType);
qry.Tables.Add(SbmDbDfn.GetTableName(SbmDbDfn.TableIdx.Transaction));
qry.Columns.Add(SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Transaction_Type), colType);
qry.Filters.Add($"{SbmDbDfn.GetColumnName(SbmDbDfn.ColumnIdx.Transaction_Id)}={SysId.ToLong(transactionId)}");
using (DbResultSet dbResultSet = DbResultSet_DataReader.ExecuteQuery(Database, qry.BuildQuery()))
{
if (dbResultSet != null && dbResultSet.NextRecord())
{
NamedValue.Map values = dbResultSet.GetRecordValues();
return (Sbm.TransactionType)values.GetLong(colType);
}
}
}
return Sbm.TransactionType.Unknown;
}
//-------------------------------------------------------------------
public override bool RefreshTransactionTotals(SbmTransaction transaction, IEnumerable<SbmRequirement> requirements)
{
// Recalculate the amounts stored against the transaction in line with the list of requirements.
ClearErrorState();
if (transaction == null) return SetErrorState(ErrorMessage.InvalidStatus);
if (transaction == null) return SetErrorState(ErrorMessage.ItemNotSpecified);
if (requirements == null) requirements = new List<SbmRequirement>();
// Total weight.
decimal totalWeight = requirements.GetTotalWeight(Internals.GetDefaultUnitOfMeasureByCategory(SaUomCategory.Weight)?.Id);
transaction.Weight = totalWeight;
SysId uomIdWeight = transaction.UomIdWeight;
if (!SysId.IsValid(uomIdWeight))
uomIdWeight = Internals.GetDefaultUnitOfMeasureByCategory(SaUomCategory.Weight)?.Id;
transaction.Weight = requirements.GetTotalWeight(uomIdWeight);
// Set the allocation status:
transaction.ClearAllocationStatus();