Search Results for

    Show / Hide Table of Contents

    Interface ITransactionsHelper

    Namespace: LemonEdge.API.Entities.FinancialServices.Processors.Transactional
    Assembly: LemonEdge.API.Entities.FinancialServices.dll
    Syntax
    public interface ITransactionsHelper

    Properties

    PreventBackingIntoFXCalcs

    Prevents any calculation from backing into creating a new fx rate. Used to override behaviour for auto-generated transactions, such as step changes, that fix fx rates.

    Declaration
    bool PreventBackingIntoFXCalcs { get; set; }
    Property Value
    Type Description
    bool

    Methods

    ConsolidateTransfers(ITransaction)

    Takes any transferred records, aggregates them and adds them to single individual records, removing the transferred records themselves

    Declaration
    Task ConsolidateTransfers(ITransaction tran)
    Parameters
    Type Name Description
    ITransaction tran
    Returns
    Type Description
    Task

    GetSharedTransactionFormulaContext(ITransaction, ITransactionAllocated, IGLPosting)

    Declaration
    TransactionContext GetSharedTransactionFormulaContext(ITransaction tran, ITransactionAllocated allocated = null, IGLPosting posting = null)
    Parameters
    Type Name Description
    ITransaction tran
    ITransactionAllocated allocated
    IGLPosting posting
    Returns
    Type Description
    TransactionContext

    GetTransactionAllocatedValue(ITransaction, ITransactionTypeValue, Guid)

    Gets the values of the transaction allocation for the specified ITransactionTypeValue in all currencies for the specified allocateToEntityID

    Declaration
    (decimal? LocalValue, decimal? FuncValue, decimal? ReportingValue) GetTransactionAllocatedValue(ITransaction transaction, ITransactionTypeValue typeValue, Guid allocateToEntityID)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction to return the allocated value for

    ITransactionTypeValue typeValue

    The ITransactionTypeValue value to return from the transaction allocation

    Guid allocateToEntityID
    Returns
    Type Description
    (decimal? LocalValue, decimal? FuncValue, decimal? ReportingValue)

    The values of the transaction allocation for the specified Code in all currencies for the specified allocateToEntityID

    GetTransactionAllocatedValue(ITransaction, string, Guid)

    Gets the values of the transaction allocation for the specified Code in all currencies for the specified allocateToEntityID

    Declaration
    Task<(decimal? LocalValue, decimal? FuncValue, decimal? ReportingValue)> GetTransactionAllocatedValue(ITransaction transaction, string transactionTypeValueCode, Guid allocateToEntityID)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction to return the allocated value for

    string transactionTypeValueCode

    The code of the ITransactionTypeValue value to return from the transaction allocation

    Guid allocateToEntityID
    Returns
    Type Description
    Task<(decimal? LocalValue, decimal? FuncValue, decimal? ReportingValue)>

    The values of the transaction allocation for the specified Code in all currencies for the specified allocateToEntityID

    GetTransactionNote(ITransaction, ITransactionTypeValue)

    Gets the note of the transaction for the specified Code

    Declaration
    string GetTransactionNote(ITransaction transaction, ITransactionTypeValue transactionTypeValue)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction to return the note for

    ITransactionTypeValue transactionTypeValue

    The code of the ITransactionTypeValue note to return from the transaction

    Returns
    Type Description
    string

    The note of the transaction for the specified Code

    GetTransactionNote(ITransaction, string)

    Gets the note of the transaction for the specified Code

    Declaration
    Task<string> GetTransactionNote(ITransaction transaction, string transactionTypeValueCode)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction to return the note for

    string transactionTypeValueCode

    The code of the ITransactionTypeValue note to return from the transaction

    Returns
    Type Description
    Task<string>

    The note of the transaction for the specified Code

    GetTransactionSetting(ITransaction, string)

    Declaration
    Task<IBaseEntity> GetTransactionSetting(ITransaction tran, string customEntityName)
    Parameters
    Type Name Description
    ITransaction tran
    string customEntityName
    Returns
    Type Description
    Task<IBaseEntity>

    GetTransactionSettingValue(ITransaction, string, string)

    Declaration
    Task<object> GetTransactionSettingValue(ITransaction tran, string customEntityName, string customEntityProperty)
    Parameters
    Type Name Description
    ITransaction tran
    string customEntityName
    string customEntityProperty
    Returns
    Type Description
    Task<object>

    GetTransactionValue(ITransaction, ITransactionTypeValue)

    Gets the values of the transaction for the specified ITransactionTypeValue in all currencies

    Declaration
    (decimal ReportingValue, decimal FuncValue, decimal LocalValue) GetTransactionValue(ITransaction transaction, ITransactionTypeValue typeValue)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction to return the value for

    ITransactionTypeValue typeValue

    The ITransactionTypeValue value to return from the transaction

    Returns
    Type Description
    (decimal ReportingValue, decimal FuncValue, decimal LocalValue)

    The values of the transaction for the specified ITransactionTypeValue in all currencies

    GetTransactionValue(ITransaction, string)

    Gets the values of the transaction for the specified Code in all currencies

    Declaration
    Task<(decimal ReportingValue, decimal FuncValue, decimal LocalValue)> GetTransactionValue(ITransaction transaction, string transactionTypeValueCode)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction to return the value for

    string transactionTypeValueCode

    The code of the ITransactionTypeValue value to return from the transaction

    Returns
    Type Description
    Task<(decimal ReportingValue, decimal FuncValue, decimal LocalValue)>

    The values of the transaction for the specified Code in all currencies

    SetTransactionAllocatedValue(ITransaction, ITransactionTypeValue, Guid, decimal?, decimal?, decimal?, bool, bool)

    Sets the value of the specified transactionTypeValueCode ( Code) of the specified transaction allocation in all currencies

    If the specified allocateToEntityID does not have an allocation one is created.

    Then it updates the parent transaction total and net amounts. It also then provides any TransactionProcessorExtender an opportunity to process the change too
    Declaration
    Task SetTransactionAllocatedValue(ITransaction transaction, ITransactionTypeValue typeValue, Guid allocateToEntityID, decimal? repValue, decimal? funcValue, decimal? localValue, bool updateGL = true, bool updateTotals = true)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction to update the allocation with new values in all currencies

    ITransactionTypeValue typeValue

    The ITransactionTypeValue of the value against this transaction allocation to update

    Guid allocateToEntityID

    The entity to update the transaction allocation amount for

    decimal? repValue

    The new value in reporting currency

    decimal? funcValue

    The new value in functional currency

    decimal? localValue

    The new value in local currency

    bool updateGL
    bool updateTotals
    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    SetTransactionAllocatedValue(ITransaction, string, Guid, decimal?, decimal?, decimal?)

    Sets the value of the specified transactionTypeValueCode ( Code) of the specified transaction allocation in all currencies

    If the specified allocateToEntityID does not have an allocation one is created.

    Then it updates the parent transaction total and net amounts. It also then provides any TransactionProcessorExtender an opportunity to process the change too
    Declaration
    Task SetTransactionAllocatedValue(ITransaction transaction, string transactionTypeValueCode, Guid allocateToEntityID, decimal? repValue, decimal? funcValue, decimal? localValue)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction to update the allocation with new values in all currencies

    string transactionTypeValueCode

    The Code of the value against this transaction allocation to update

    Guid allocateToEntityID

    The entity to update the transaction allocation amount for

    decimal? repValue

    The new value in reporting currency

    decimal? funcValue

    The new value in functional currency

    decimal? localValue

    The new value in local currency

    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    SetTransactionNote(ITransaction, ITransactionTypeValue, string)

    Set the note of the transaction for the specified Code

    Declaration
    void SetTransactionNote(ITransaction transaction, ITransactionTypeValue transactionTypeValue, string note)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction to set the note for

    ITransactionTypeValue transactionTypeValue

    The code of the ITransactionTypeValue note to set for the transaction

    string note

    The note value to set

    SetTransactionNote(ITransaction, string, string)

    Set the note of the transaction for the specified Code

    Declaration
    Task SetTransactionNote(ITransaction transaction, string transactionTypeValueCode, string note)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction to set the note for

    string transactionTypeValueCode

    The code of the ITransactionTypeValue note to set for the transaction

    string note

    The note value to set

    Returns
    Type Description
    Task

    SetTransactionValue(ITransaction, string, decimal?, decimal?, decimal?)

    Sets the value of the specified transactionTypeValueCode ( Code) of the specified transaction in all currencies

    Once set the system updates all the allocations for this transaction (if any), the gl and the net amounts. It also then provides any TransactionProcessorExtender an opportunity to process the change too

    Declaration
    Task SetTransactionValue(ITransaction transaction, string transactionTypeValueCode, decimal? repValue, decimal? funcValue, decimal? localValue)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction to update with new values in all currencies

    string transactionTypeValueCode

    The Code of the value against this transaction to update

    decimal? repValue

    The new value in reporting currency

    decimal? funcValue

    The new value in functional currency

    decimal? localValue

    The new value in local currency

    Returns
    Type Description
    Task

    UpdateAllocations()

    Updates all the allocations for all the transactions in the processor

    Declaration
    Task UpdateAllocations()
    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    UpdateAllocations(ITransaction, bool, ITransactionCodeValue)

    For a given transaction this automatically processes the specified value (or all if null) and allocates them to any transaction allocations according to the path (determined dynamically) for that transaction if the Allocation is configured to not be None

    The allocation only occurs if the value on the transaction has been manually entered Transaction.GetManualChange(ITransaction, short) or force is true.

    The allocation creates Allocation records if they do not exist, and also creates new transaction records (and their allocations too) if the path includes entities above
    Declaration
    Task UpdateAllocations(ITransaction transaction, bool force = false, ITransactionCodeValue codeValue = null)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction to automatically allocate to ITransactionAllocated records according to the relevant path, including creating new transactions and allocations for entities above

    bool force

    Indicates the allocation should be forced, overriding any allocated values that are manually entered

    ITransactionCodeValue codeValue

    The value to allocate. Null indicates all values in this transaction should be allocated

    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    UpdateAllocations(ITransactionAllocated, ITransactionCodeValue)

    For a given transaction allocation this automatically processes updates the totals for the parent transaction, and if this allocation points to another transaction it updates that total, and in turn its allocations

    Declaration
    Task UpdateAllocations(ITransactionAllocated allocated, ITransactionCodeValue codeValue = null)
    Parameters
    Type Name Description
    ITransactionAllocated allocated

    The transaction allocation to automatically have its parent updated, and to allocate any matching transaction with too

    ITransactionCodeValue codeValue

    The value to allocate. Null indicates all total values in the parent transaction should be allocated

    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    UpdateAllocationsStructureFromPath(ITransaction)

    Updates the allocation structure for the specified header transaction according to the path set against the transaction

    This will remove any transactions in the set that are against entities no longer in the path, and will add any required missing ones, along with the allocations for each transaction

    This only creates the correct structure for the transactions, and allocations, it does not update any values
    Declaration
    Task UpdateAllocationsStructureFromPath(ITransaction headerTransaction)
    Parameters
    Type Name Description
    ITransaction headerTransaction

    The header transaction that requires a structure to be correctly created depending on the path selected

    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    UpdateBoundValues(IGLPosting)

    Declaration
    Task UpdateBoundValues(IGLPosting posting)
    Parameters
    Type Name Description
    IGLPosting posting
    Returns
    Type Description
    Task

    UpdateDate(ITransaction, DateTimeOffset, DateTimeOffset?, bool)

    Updates the root transaction to use the specified date, if it already has the same date it will only update again if forceUpdate is true

    This is replicated for all transaction in the processor, then updates the allocations (if any) and gl incase the date change impacted any of that

    Declaration
    Task UpdateDate(ITransaction transaction, DateTimeOffset date, DateTimeOffset? dateOverride, bool forceUpdate)
    Parameters
    Type Name Description
    ITransaction transaction
    DateTimeOffset date

    The new transaction date for all transactions in the processor

    DateTimeOffset? dateOverride
    bool forceUpdate

    Indicates all transactions, allocations, and gl should update from the specified date even if it is the same as the current root transaction date

    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    UpdateFormulaValues(ITransaction)

    Declaration
    Task UpdateFormulaValues(ITransaction transaction)
    Parameters
    Type Name Description
    ITransaction transaction
    Returns
    Type Description
    Task

    UpdateFromFxRate(ITransaction, ITransactionAllocated, ITransactionCodeValue, ITransactionTypeValue, TransactionValueType?)

    Updates a specified transaction allocation to automatically calculate and update the other currencies for a specified transaction code value according to the ITransactionCodeValue settings

    Declaration
    Task UpdateFromFxRate(ITransaction transaction, ITransactionAllocated allocation, ITransactionCodeValue codeValue, ITransactionTypeValue valueDef, TransactionValueType? source)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction that has the allocation to udpate the amounts in other currencies for

    ITransactionAllocated allocation

    The transaction allocation to update the amounts in other currencies for

    ITransactionCodeValue codeValue

    The value configuration for how the other currencies should be updated - from formulas, or fx calcs

    ITransactionTypeValue valueDef

    The value to be updated

    TransactionValueType? source
    Returns
    Type Description
    Task

    UpdateFromFxRate(ITransaction, ITransactionCodeValue, ITransactionTypeValue, TransactionValueType?)

    Updates a specified transaction to automatically calculate and update the other currencies for a specified transaction code value according to the ITransactionCodeValue settings

    Declaration
    Task UpdateFromFxRate(ITransaction transaction, ITransactionCodeValue codeValue, ITransactionTypeValue valueDef, TransactionValueType? source)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction to udpate the amounts in other currencies for

    ITransactionCodeValue codeValue

    The value configuration for how the other currencies should be updated - from formulas, or fx calcs

    ITransactionTypeValue valueDef

    The value to be updated

    TransactionValueType? source
    Returns
    Type Description
    Task

    UpdateGL()

    Updates the gl entries and allocations for every transaction in the processor. This only occurs if the transaction status is greater than or equal to committed

    Declaration
    Task UpdateGL()
    Returns
    Type Description
    Task

    A task indicating completion of the operation

    UpdateGL(IGLPosting)

    Updates all the gl posting allocations against the specified gl posting entry, if the ITransactionCode is configured for allocations

    Declaration
    Task UpdateGL(IGLPosting posting)
    Parameters
    Type Name Description
    IGLPosting posting

    The gl posting entry to update the allocations for

    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    UpdateGL(IGLPostingAllocated)

    Updates the parent gl posting of the specified gl posting allocation, to ensure the totals correctly reflect the modified allocation amount

    Declaration
    void UpdateGL(IGLPostingAllocated alloc)
    Parameters
    Type Name Description
    IGLPostingAllocated alloc

    The gl posting allocation to update the parent posting amounts for

    UpdateGL(ITransaction, ITransactionCodeValue)

    Updates the GL entries against all transactions in the specified transactionHeader set, according to the ITransactionCode automated rules for the gl entries

    If the gl entries do not exist, the system will automatically create them. This only occurs if the transaction status is greater than or equal to committed

    Declaration
    Task UpdateGL(ITransaction transactionHeader, ITransactionCodeValue codeValue = null)
    Parameters
    Type Name Description
    ITransaction transactionHeader

    The IHeaderTransactionalEntity for which all transactions in the set will have their gl entries updated

    ITransactionCodeValue codeValue

    The value on the transactions that should be used to update the gl entries. Null implies all values on the transactions will be used to update the gl entries

    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    UpdateGLBankAccountsToMatchEntity()

    Updates all gl accounts that are selectable bank accounts to make sure they match the posting entity

    Declaration
    Task UpdateGLBankAccountsToMatchEntity()
    Returns
    Type Description
    Task

    UpdateGLPostingFromCreated(ITransaction, IGLPosting, ITransactionCodeGLEntry, bool)

    Updates the specified newly created posting with a default entity and currency from the owning transaction

    Declaration
    Task UpdateGLPostingFromCreated(ITransaction owningTransaction, IGLPosting posting, ITransactionCodeGLEntry glEntry = null, bool updatePostingInfo = true)
    Parameters
    Type Name Description
    ITransaction owningTransaction

    The transaction record this glposting is a child of

    IGLPosting posting

    The newly created gl posting record

    ITransactionCodeGLEntry glEntry

    An optional associated transaction code gl entry specifiying the rules for the creation of the gl posting. Can be null if created manually

    bool updatePostingInfo

    Optional - default true. If true, some of the glposting's properties will be set to transaction values

    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    UpdateGLPostingInfo(ITransaction, IGLPosting, ITransactionCodeGLEntry, bool)

    Updates the specified gl posting entry with the correct path, status, and fx rates. Also updates the account, ledger, etc from the glEntry settings from the ITransactionCode is specified

    Declaration
    Task UpdateGLPostingInfo(ITransaction owningTransaction, IGLPosting posting, ITransactionCodeGLEntry glEntry = null, bool updateFxRate = true)
    Parameters
    Type Name Description
    ITransaction owningTransaction

    The owning transaction the gl posting has as a parent

    IGLPosting posting

    The gl posting entry to update

    ITransactionCodeGLEntry glEntry

    An optional transaction code gl entry configuration specifying how the system should update the entry. Can be null if just added by a user.

    bool updateFxRate

    If true fx rate will be set from transaction

    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    UpdateNetAmounts()

    Updates the LocalNetAmount, FuncNetAmount , and ReportingNetAmount to hold the aggregate of all other values stored against all transactions in this processor

    Declaration
    void UpdateNetAmounts()

    UpdateNetAmounts(ITransaction)

    Updates the LocalNetAmount, FuncNetAmount , and ReportingNetAmount to hold the aggregate of all other values stored in this transaction

    If the transaction has allocations then it sums the values for each allocation and updates the transaction total to be the sum of the allocations if it does not match already

    Declaration
    void UpdateNetAmounts(ITransaction tran)
    Parameters
    Type Name Description
    ITransaction tran

    The transaction to update the net amounts for

    UpdatePathFromEntity(ITransaction)

    Attempts to automatically update the path for the transaction from the selected entity, if the Path is set to Manual and that entity is only involved in one IAllocationPath

    Declaration
    Task UpdatePathFromEntity(ITransaction transaction)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction to automatically update the path for

    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    UpdatePathFromInstrument(ITransaction)

    Updates the path for the specified transaction if the Path is set to AutoFromInstrument

    Retrieves the path from the IAllocationMapping entries to determine the correct path from the transactions instrument

    Declaration
    Task UpdatePathFromInstrument(ITransaction tran)
    Parameters
    Type Name Description
    ITransaction tran

    The transaction to automatically update its path from the instrument

    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    UpdateStatus(TransactionStatus)

    Updates all transactions, transaction allocations, glpostings, and gl posting allocations in this processor to have the same API.Core.TransactionStatus

    When a transaction is API.Core.TransactionStatus.InProgress the system does not generate any gl entries for it. Only when it is moved to API.Core.TransactionStatus.Committed or API.Core.TransactionStatus.Finalized does it do so

    So when this status is updated it also calls UpdateGL() to ensure any gl entries are created if the status was previously API.Core.TransactionStatus.InProgress
    Declaration
    Task UpdateStatus(TransactionStatus status)
    Parameters
    Type Name Description
    TransactionStatus status

    The transaction status to set all records to

    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    UpdateTransactionFromEntityDateChange(ITransaction)

    Declaration
    Task UpdateTransactionFromEntityDateChange(ITransaction transaction)
    Parameters
    Type Name Description
    ITransaction transaction
    Returns
    Type Description
    Task

    UpdateTransactionFromEntityDateChange(ITransaction, bool, bool, string, bool)

    Updates the specified transaction, and all in the set too, from its transaction date being changed.

    This involves reevaluating path allocations, financial date calculations and fx

    Declaration
    Task UpdateTransactionFromEntityDateChange(ITransaction transaction, bool forceNewFX, bool forceUpdateFromFX, string propChanged = null, bool updateAllOtherHeaders = true)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction, and all associated ones in the set, to update from a transaction date change

    bool forceNewFX
    bool forceUpdateFromFX

    Indicates all values calculated from fx should be recalculated even if the fx has not changed from the date moving

    string propChanged

    Optional: The name of the property that was changed. Used when updating hte transaction's local currency.

    bool updateAllOtherHeaders
    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    UpdateTransactionFromPropertyChanged(ITransaction, string)

    Updated the specified transaction, and all in the set too, from any property being changed.

    This involves reevaluating path allocations, financial date calculations and fx

    Declaration
    Task UpdateTransactionFromPropertyChanged(ITransaction transaction, string propertyChanged)
    Parameters
    Type Name Description
    ITransaction transaction

    The transaction, and all associated ones in the set, to update from the property changed

    string propertyChanged

    The name of the property that was changed. Used when updating the transaction's local currency

    Returns
    Type Description
    Task

    UpdateTransactionInfo(ITransaction, ITransaction, bool)

    Ensures the specified subTransaction has all the correct matching properties as the parentTransaction such as status, dates, allocation types, codes, inctruments and paths

    Declaration
    void UpdateTransactionInfo(ITransaction subTransaction, ITransaction parentTransaction, bool updateAllOtherHeaders = true)
    Parameters
    Type Name Description
    ITransaction subTransaction

    The transaction in a set to make sure it has the same standard properties such as transaction date and status

    ITransaction parentTransaction

    The parent transaction in the set to make sure all child ones have the same standard properties such as status and transaction date

    bool updateAllOtherHeaders

    UpdateTransactionTotalsFrom(ITransaction, ITransactionCodeValue, bool)

    Updates totals for transactions above this one in the heirarchy (transaction set GetTransactionSet(ITransaction))

    Declaration
    void UpdateTransactionTotalsFrom(ITransaction fromTran, ITransactionCodeValue codeValue, bool markFrom)
    Parameters
    Type Name Description
    ITransaction fromTran

    The transaction to start from and update all other transactions above this one with

    ITransactionCodeValue codeValue

    The value to update for the totals for all transactions above. If null, this updates all values against the transactions.

    bool markFrom

    Indicates that the specified transaction should be marked as having the value being manually changed

    Extension Methods

    LinqExtensions.AsArray<T>(T)
    LinqExtensions.ToArrayOfOne<T>(T)
    LinqExtensions.ToListOfOne<T>(T)
    MiscExtensions.SetIfNotEqual<T, TP>(T, Expression<Func<T, TP>>, TP)
    WeakReferenceExtensions.WeakReference(object)
    SQLExtensions.ToSQLValue(object, bool)
    ReflectionExtensions.ClearEventInvocations(object, string)
    StringExtensions.ToCSVFormatString(object, Type)
    In this article
    Back to top © LemonEdge Technologies. All rights reserved.