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> |