3.0.1.2 Requirements & tidy
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user