Interface ITransaction
The system entity for a transaction
See https://web.lemonedge.com/help/transactions/ for more information
Inherited Members
Namespace: LemonEdge.API.Entities
Assembly: API.dll
Syntax
[EntityDefinition(EntityID.Transaction, "dbo.LT_Transactions", "Transaction", LabelColumn = "Reference", IsStandingDataEntity = false, HelpURL = "transactions")]
[DefaultEntityIcon(ImageType.Transaction)]
[EntityLinkToAnyParentRelationshipModifier(EntityID.PeriodEnd, "IncludeItemChildTransactionsID", "ID", PartOfThisSet = true)]
public interface ITransaction : IHeaderTransactionalEntity, ITransactionalEntity, ICanBeLocked, IBaseEntityWithPermissions, ITransactionValue, IBaseEntity, IEquatable<IBaseEntity>, INotifyPropertyChanged, INotifyPropertyChanging, ICloneableAsync, ICanTrackProperties, ISetCopier
Properties
AllocationType
The Allocation Amount to use when allocating the values in this Transaction to their ultimate owners through the Allocation Path. Possible values are:
Default: This indicates to use the AmountA amount through the Path for allocation
AmountB: This indicates to use the AmountB amount through the Path for allocationDeclaration
[EntityProperty(SQLType.SmallInt, false)]
[EntityDescription("The allocation mechanism to use.")]
AllocationType AllocationType { get; set; }
Property Value
| Type | Description |
|---|---|
| AllocationType |
CurrencyID
Links to ICurrency. This is the local currency the values for this Transaction will be entered in.
This is calculated from the currency of the Instrument against this transaction, or if there is none it is the currency of the Entity.
Declaration
[EntityProperty(SQLType.UniqueIdentifier, false)]
[EntityRelationship(EntityID.Currency, "ID", SingleJoinType.One, "Currency", "ITransaction", DeleteWithRelationship = false, PartOfParentSet = false, LinkToItemInSet = false, InheritPermissions = false)]
[EntityDescription("The local currency for this transaction.")]
Guid CurrencyID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Guid |
EntityID
Links to IObjectEntity. The legal entity this transaction is being booked against
Declaration
[EntityProperty(SQLType.UniqueIdentifier, false)]
[EntityRelationship(EntityID.ObjectEntity, "ID", SingleJoinType.One, "ObjectEntity", "ITransaction", DeleteWithRelationship = false, PartOfParentSet = false, LinkToItemInSet = false, InheritPermissions = false)]
[EntityDescription("The entity this transaction is against.")]
Guid EntityID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Guid |
FinancialDate
The Financial Date for this Transaction. This is calculated from the Transaction Date and the latest Period Closing on the Entity for this Transaction.
If the Transaction Date is less than the Latest Period Closing for the Entity, then the Financial Date will be the next day after the latest Period Closing for that Entity.Otherwise it will match the Transaction Date if it is in an open period.
Declaration
[EntityProperty(SQLType.DateTimeOffset, false, IsDate = true)]
[EntityDescription("The gl financial date for this transaction.")]
DateTimeOffset FinancialDate { get; set; }
Property Value
| Type | Description |
|---|---|
| System.DateTimeOffset |
FuncNetAmount
The total of all values in this transaction stored in the functional currency, which is the currency of the legal EntityID of this transaction
Declaration
[EntityProperty(SQLType.Decimal, (short)21, (short)3, true)]
[EntityDescription("The summary of the functional amounts involved in this transaction.")]
decimal? FuncNetAmount { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Decimal> |
FXRate
Holds the FX Rate automatically pulled from the exchange rates table from the Local Currency to the Functional Currency of this transaction.
Declaration
[EntityProperty(SQLType.Decimal, (short)21, (short)10, false)]
[EntityDescription("The exchange rate for this transaction between the local and functional currency.")]
decimal FXRate { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Decimal |
InstrumentID
Links to IInstrument. Optional - The Financial Instrument, if any, this Transaction is operating against.
Unless specifying Allocations of the Transaction Values individually, then the Path is required if this is not provided.
Declaration
[EntityProperty(SQLType.UniqueIdentifier, true)]
[EntityRelationship(EntityID.Instrument, "ID", SingleJoinType.ZeroToOne, "Instrument", "ITransaction", DeleteWithRelationship = false, PartOfParentSet = false, LinkToItemInSet = false, InheritPermissions = false)]
[EntityDescription("The instrument to use to allocate this transaction, through instrument mappings to allocation paths.")]
Guid? InstrumentID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Guid> |
IsHeaderTransaction
Indicates this transaction is a new root transaction part of the parent transaction set.
Declaration
[EntityProperty(SQLType.Bit, false)]
[EntityDescription("Indicates this transaction is a new root transaction part of the parent transaction set.")]
bool IsHeaderTransaction { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
LedgerID
Links to ILedger. The Ledger this transaction entry if to be reported against. This ledger, unless overridden, will be the ledger used for the GL Posting entries too
Declaration
[EntityProperty(SQLType.UniqueIdentifier, false)]
[EntityRelationship(EntityID.Ledger, "ID", SingleJoinType.One, "Ledger", "ITransaction", DeleteWithRelationship = false, PartOfParentSet = false, LinkToItemInSet = false, InheritPermissions = false)]
[EntityDescription("The ledger this transaction is against.")]
Guid LedgerID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Guid |
LocalNetAmount
The total of all values in this transaction stored in the local currency
Declaration
[EntityProperty(SQLType.Decimal, (short)21, (short)3, true)]
[EntityDescription("The summary of the local amounts involved in this transaction.")]
decimal? LocalNetAmount { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Decimal> |
ParentItemID
If this transaction is a child of a parent entity, this is the id of that entity
Declaration
[EntityProperty(SQLType.UniqueIdentifier, true)]
[EntityDescription("The parent item, if any.")]
[EntityLinkToAnyParentRelationship("ParentItemTypeID", SingleJoinType.ZeroToOne, "Transactions", false, new Type[]{typeof(ITransaction), typeof(ITransactionAllocated), typeof(IGLPosting), typeof(IGLPostingAllocated), typeof(IHasTransactionSetting)})]
Guid? ParentItemID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Guid> |
ParentItemTypeID
If this transaction is a child of a parent entity, this is the type of entity it is a child of
Declaration
[EntityProperty(SQLType.UniqueIdentifier, true, IsEntityTypeLink = true)]
[EntityDescription("The parent item type, if any.")]
Guid? ParentItemTypeID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Guid> |
ParentTransactionID
Links to ITransaction. The direct parent transaction of this one if it is a sub transaction for a different entity
Declaration
[EntityProperty(SQLType.UniqueIdentifier, true)]
[EntityRelationship(EntityID.Transaction, "ID", SingleJoinType.ZeroToOne, "Transaction", "ITransaction", DeleteWithRelationship = false, PartOfParentSet = true, LinkToItemInSet = false, InheritPermissions = false, PreventAutoConstraint = true)]
[EntityDescription("The parent transaction.")]
Guid? ParentTransactionID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Guid> |
PathID
Links to IAllocationPath. Optional - The Path to use when allocating the Values from this Transaction to their ultimate owners. Unless specifying Allocations of the Transaction Values individually, then the Instrument is required if this is not provided.
Declaration
[EntityProperty(SQLType.UniqueIdentifier, true)]
[EntityRelationship(EntityID.AllocationPath, "ID", SingleJoinType.ZeroToOne, "AllocationPath", "ITransaction", DeleteWithRelationship = false, PartOfParentSet = false, LinkToItemInSet = false, InheritPermissions = false)]
[EntityDescription("The path to use to allocate this transaction.")]
Guid? PathID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Guid> |
Price
The Price for a Unit in this Transaction. Only available depending on the Transaction Code configuration.
Declaration
[EntityProperty(SQLType.Decimal, (short)21, (short)3, true)]
[EntityDescription("The price involved in this transaction.")]
decimal? Price { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Decimal> |
RelatedItemKey
A unique key to any related item for this transaction. Usually used by processes that dynamically create the transaction itself.
Declaration
[EntityProperty(SQLType.NVarChar, (short)500, true)]
[EntityDescription("A unique key to any related item for this transaction. Usually used by processes that dynamically create the transaction itself.")]
string RelatedItemKey { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
ReportingFXRate
Holds the FX Rate automatically pulled from the exchange rates table from the Local Currency to the Reporting Currency of this transaction.
Declaration
[EntityProperty(SQLType.Decimal, (short)21, (short)10, false, "0")]
[EntityDescription("The exchange rate for this transaction between the local and reporting currency.")]
decimal ReportingFXRate { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Decimal |
ReportingNetAmount
The total of all values in this transaction stored in the reporting currency, which is the currency of the Entity Set this Entity belongs to. In other words the common currency for consolidating reporting across all entities in the entity structure
Declaration
[EntityProperty(SQLType.Decimal, (short)21, (short)3, true, "FuncNetAmount")]
[EntityDescription("The summary of the reporting amounts involved in this transaction.")]
decimal? ReportingNetAmount { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Decimal> |
RootTransactionID
Links to ITransaction. The root transaction this sub-transaction belongs to if part of a set
Declaration
[EntityProperty(SQLType.UniqueIdentifier, false)]
[EntityRelationship(EntityID.Transaction, "ID", SingleJoinType.One, "Transaction", "ITransaction", DeleteWithRelationship = false, PartOfParentSet = false, LinkToItemInSet = false, InheritPermissions = false, PreventAutoConstraint = true)]
[EntityDescription("The root transaction of a set.")]
[FormulaDefaultValueOnNew("ItemAs<LemonEdge.API.Entities.ITransaction>().ID")]
Guid RootTransactionID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Guid |
Rounding
This indicates the type of rounding to apply when automatically creating allocated transaction entries for the value amounts.
Declaration
[EntityProperty(SQLType.SmallInt, false)]
[EntityDescription("The type of rounding to apply to any calculations.")]
RoundingLevel Rounding { get; set; }
Property Value
| Type | Description |
|---|---|
| RoundingLevel |
SettingsID
The item holding any custom settings against this transaction.
Declaration
[EntityProperty(SQLType.UniqueIdentifier, true)]
[EntityDescription("The item holding any settings against this transaction.")]
Guid? SettingsID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Guid> |
SettingsTypeID
The type that holds any custom settings against this transaction.
Declaration
[EntityProperty(SQLType.UniqueIdentifier, true, IsEntityTypeLink = true)]
[EntityDescription("The type that holds any settings against this transaction.")]
Guid? SettingsTypeID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Guid> |
TransactionCodeID
Links to ITransactionCode. The Transaction Code for this Transaction which defines the Requirements, Values, Rules and Processing of this Transaction
Declaration
[EntityProperty(SQLType.UniqueIdentifier, false)]
[EntityRelationship(EntityID.TransactionCode, "ID", SingleJoinType.One, "TransactionCode", "ITransaction", DeleteWithRelationship = false, PartOfParentSet = false, LinkToItemInSet = false, InheritPermissions = false)]
[EntityDescription("The transaction code that defines the behaviour of this transaction operation.")]
Guid TransactionCodeID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Guid |
Value10IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value10IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value11IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value11IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value12IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value12IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value13IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value13IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value14IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value14IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value15IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value15IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value16IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value16IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value17IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value17IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value18IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value18IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value19IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value19IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value1IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, false)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value1IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value20IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value20IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value2IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, false)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value2IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value3IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, false)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value3IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value4IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value4IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value5IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value5IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value6IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value6IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value7IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value7IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value8IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value8IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |
Value9IndexID
Indicates what transaction type value (ValueIndex) is held in the corrosponding Valx field.
Declaration
[EntityProperty(SQLType.SmallInt, true, true)]
[EntityDescription("Indicates what transaction type value is held in the corrosponding Valx field.")]
short? Value9IndexID { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Int16> |