GeneratedTransactions

class q2_sdk.hq.db.generated_transactions.GetGeneratedTransactionsParams(customer_id, from_date, to_date, recurring_transaction_id=None)[source]

Bases: object

GetGeneratedTransactionsParams(customer_id: int, from_date: str, to_date: str, recurring_transaction_id: Optional[int] = None)

customer_id: int
from_date: str
to_date: str
recurring_transaction_id: Optional[int] = None
class q2_sdk.hq.db.generated_transactions.AddTransactionNoteParams(transaction_id, admin_login_name, note, note_date=None)[source]

Bases: object

AddTransactionNoteParams(transaction_id: int, admin_login_name: int, note: int, note_date: Optional[str] = None)

transaction_id: int
admin_login_name: int
note: int
note_date: Optional[str] = None
enum q2_sdk.hq.db.generated_transactions.DateColumn(value)[source]

Bases: Enum

Valid values are as follows:

CreateDate = <DateColumn.CreateDate: 'Create'>
ProcessDate = <DateColumn.ProcessDate: 'Process'>
exception q2_sdk.hq.db.generated_transactions.DateTimeEntryError[source]

Bases: Exception

Transaction CreateDates are not entered correctly

class q2_sdk.hq.db.generated_transactions.GeneratedTransactionsPending[source]

Bases: RepresentationRowBase

CustomerID: IntElement = 'CustomerID'
TransactionID: IntElement = 'TransactionID'
TransactionStatus: StringElement = 'TransactionStatus'
TransactionType: StringElement = 'TransactionType'
Description: StringElement = 'Description'
CreatedDate: StringElement = 'CreatedDate'
class q2_sdk.hq.db.generated_transactions.ExternalGeneratedTransfer[source]

Bases: RepresentationRowBase

TransactionDirection: StringElement = 'TransactionDirection'
TransactionID: IntElement = 'TransactionID'
CustomerID: IntElement = 'CustomerID'
UserID: IntElement = 'UserID'
CreateDate: StringElement = 'CreateDate'
TransactionStatusID: IntElement = 'TransactionStatusID'
TransactionStatus: StringElement = 'TransactionStatus'
ProcessDate: StringElement = 'ProcessDate'
ProcessedDate: StringElement = 'ProcessedDate'
OriginatingAccountID: IntElement = 'OriginatingAccountID'
OriginatingAccountNumberExternal: StringElement = 'OriginatingAccountNumberExternal'
OriginatingABA: StringElement = 'OriginatingABA'
TransactionAmount: FloatElement = 'TransactionAmount'
AuthorizedUserID: IntElement = 'AuthorizedUserID'
AuthorizedDate: StringElement = 'AuthorizedDate'
RecurringTransactionID: IntElement = 'RecurringTransactionID'
RecurringMaster: IntElement = 'RecurringMaster'
Description: StringElement = 'Description'
TargetDescription: StringElement = 'TargetDescription'
TargetAccountNumberExternal: StringElement = 'TargetAccountNumberExternal'
TargetABA: StringElement = 'TargetABA'
class q2_sdk.hq.db.generated_transactions.GeneratedTransactionsRow[source]

Bases: RepresentationRowBase

TransactionID: IntElement = 'TransactionID'
CustomerID: IntElement = 'CustomerID'
CustomerName: StringElement = 'CustomerName'
UserID: IntElement = 'UserID'
CreateDate: StringElement = 'CreateDate'
UISourceID: IntElement = 'UISourceID'
UISource: StringElement = 'UISource'
TransactionStatusID: IntElement = 'TransactionStatusID'
TransactionStatus: StringElement = 'TransactionStatus'
TransactionStatusDescription: StringElement = 'TransactionStatusDescription'
TransactionTypeID: IntElement = 'TransactionTypeID'
TransactionType: StringElement = 'TransactionType'
TransactionTypeDescription: StringElement = 'TransactionTypeDescription'
ProcessDate: StringElement = 'ProcessDate'
ProcessedDate: StringElement = 'ProcessedDate'
Diagnostic: StringElement = 'Diagnostic'
HostAccountID: IntElement = 'HostAccountID'
AccountNumberInternal: StringElement = 'AccountNumberInternal'
AccountNumberExternal: StringElement = 'AccountNumberExternal'
ProductID: IntElement = 'ProductID'
ProductName: StringElement = 'ProductName'
ProductTypeID: IntElement = 'ProductTypeID'
ProductTypeName: StringElement = 'ProductTypeName'
CurrencyCode: StringElement = 'CurrencyCode'
AuthorizedByID: IntElement = 'AuthorizedByID'
AuthorizedDate: StringElement = 'AuthorizedDate'
ModifiedByID: IntElement = 'ModifiedByID'
ModifiedBy: StringElement = 'ModifiedBy'
ModifiedDate: StringElement = 'ModifiedDate'
TemplateID: IntElement = 'TemplateID'
HostResult: StringElement = 'HostResult'
HydraProductTypeCode: StringElement = 'HydraProductTypeCode'
HostProductTypeCode: StringElement = 'HostProductTypeCode'
HydraProductCode: StringElement = 'HydraProductCode'
HostProductCode: StringElement = 'HostProductCode'
ProcessingTypeID: IntElement = 'ProcessingTypeID'
ProcessingType: StringElement = 'ProcessingType'
ProcessingTypeDescription: StringElement = 'ProcessingTypeDescription'
TargetDescription: StringElement = 'TargetDescription'
ParentID: IntElement = 'ParentID'
SettlementID: IntElement = 'SettlementID'
HasChildren: BoolElement = 'HasChildren'
IsDistributedFundingChild: BoolElement = 'IsDistributedFundingChild'
SkipBalanceCheck: BoolElement = 'SkipBalanceCheck'
CifInternal: StringElement = 'CifInternal'
AccountNickName: StringElement = 'AccountNickName'
EffectiveDate: StringElement = 'EffectiveDate'
BillPayeeID: IntElement = 'BillPayeeID'
PayeeDisplayName: StringElement = 'PayeeDisplayName'
PayeeName: StringElement = 'PayeeName'
AuditScoreID: IntElement = 'AuditScoreID'
TranScoreStatus: StringElement = 'TranScoreStatus'
TranScoreWeight: IntElement = 'TranScoreWeight'
LoginScoreID: IntElement = 'LoginScoreID'
LoginScoreStatus: StringElement = 'LoginScoreStatus'
LoginScoreWeight: IntElement = 'LoginScoreWeight'
GroupID: IntElement = 'GroupID'
GroupDesc: StringElement = 'GroupDesc'
ToAccountNumberInternal: StringElement = 'ToAccountNumberInternal'
ToProductName: StringElement = 'ToProductName'
ToProductTypeName: StringElement = 'ToProductTypeName'
HasCaseNotes: BoolElement = 'HasCaseNotes'
ScoreAuditID: IntElement = 'ScoreAuditID'
UserRoleID: IntElement = 'UserRoleID'
RecipientCount: IntElement = 'RecipientCount'
SubsidiaryID: IntElement = 'SubsidiaryID'
GTBatchID: IntElement = 'GTBatchID'
RecipientName: StringElement = 'RecipientName'
IntermediaryBankName: StringElement = 'IntermediaryBankName'
BeneficiaryBankName: StringElement = 'BeneficiaryBankName'
MessageToBeneficiary: StringElement = 'MessageToBeneficiary'
TemplateName: StringElement = 'TemplateName'
TemplateDescription: StringElement = 'TemplateDescription'
RecipientAccountNumber: StringElement = 'RecipientAccountNumber'
RecipientAccountType: StringElement = 'RecipientAccountType'
Principal: FloatElement = 'Principal'
Interest: FloatElement = 'Interest'
UsdEquivalentAmount: FloatElement = 'UsdEquivalentAmount'
RecipientIdentificationNumber: StringElement = 'RecipientIdentificationNumber'
IsSameDayAch: BoolElement = 'IsSameDayAch'
CompanyEntryDescription: StringElement = 'CompanyEntryDescription'
PurposeOfWire: StringElement = 'PurposeOfWire'
AchClassCode: StringElement = 'AchClassCode'
HasWageGarnishmentPayments: BoolElement = 'HasWageGarnishmentPayments'
ReplacesTransactionID: IntElement = 'ReplacesTransactionID'
ReplacedByTransactionID: IntElement = 'ReplacedByTransactionID'
IsReversed: BoolElement = 'IsReversed'
ReversedGTID: IntElement = 'ReversedGTID'
IsReversible: BoolElement = 'IsReversible'
ToProductID: IntElement = 'ToProductID'
ToHydraProductTypeCode: StringElement = 'ToHydraProductTypeCode'
ToHydraProductCode: StringElement = 'ToHydraProductCode'
ToHostProductTypeCode: StringElement = 'ToHostProductTypeCode'
ToHostProductCode: StringElement = 'ToHostProductCode'
IsAchIat: BoolElement = 'IsAchIat'
FileName: StringElement = 'FileName'
OobAuthRequired: BoolElement = 'OobAuthRequired'
OobAuthProvided: BoolElement = 'OobAuthProvided'
RecurringTransactionID: IntElement = 'RecurringTransactionID'
TransactionAmount: StringElement = 'TransactionAmount'
Description: StringElement = 'Description'
ToHostAccountID: IntElement = 'ToHostAccountID'
ToAccountNumberExternal: StringElement = 'ToAccountNumberExternal'
GtFlavorID: IntElement = 'GtFlavorID'
class q2_sdk.hq.db.generated_transactions.GeneratedLoanTransaction[source]

Bases: RepresentationRowBase

TransactionID: IntElement = 'TransactionID'
CustomerID: IntElement = 'CustomerID'
CustomerName: StringElement = 'CustomerName'
UserID: IntElement = 'UserID'
GroupID: IntElement = 'GroupID'
GroupDesc: StringElement = 'GroupDesc'
FirstName: StringElement = 'FirstName'
LastName: StringElement = 'LastName'
CreateDate: StringElement = 'CreateDate'
TransactionStatusID: IntElement = 'TransactionStatusID'
TransactionStatus: StringElement = 'TransactionStatus'
TransactionTypeID: IntElement = 'TransactionTypeID'
TransactionType: StringElement = 'TransactionType'
ProcessDate: StringElement = 'ProcessDate'
ProcessedDate: StringElement = 'ProcessedDate'
OriginatingAccountID: IntElement = 'OriginatingAccountID'
OriginatingAccountNumberInternal: StringElement = 'OriginatingAccountNumberInternal'
OriginatingAccountNumberExternal: StringElement = 'OriginatingAccountNumberExternal'
OriginatingAccountCIFInternal: StringElement = 'OriginatingAccountCIFInternal'
OriginatingAccountCIFExternal: StringElement = 'OriginatingAccountCIFExternal'
OriginatingAccountBranchID: IntElement = 'OriginatingAccountBranchID'
TransactionAmount: FloatElement = 'TransactionAmount'
AuthorizedUserID: IntElement = 'AuthorizedUserID'
AuthorizedDate: StringElement = 'AuthorizedDate'
RecurringTransactionID: IntElement = 'RecurringTransactionID'
RecurringMaster: IntElement = 'RecurringMaster'
Description: StringElement = 'Description'
TargetDescription: StringElement = 'TargetDescription'
ToAccountID: IntElement = 'ToAccountID'
TargetAccountNumberInternal: StringElement = 'TargetAccountNumberInternal'
TargetAccountNumberExternal: StringElement = 'TargetAccountNumberExternal'
TargetAccountCIFInternal: StringElement = 'TargetAccountCIFInternal'
TargetAccountCIFExternal: StringElement = 'TargetAccountCIFExternal'
TargetAccountBranchID: IntElement = 'TargetAccountBranchID'
GTDataName: StringElement = 'GTDataName'
GTDataValue: StringElement = 'GTDataValue'
Principal: FloatElement = 'Principal'
Interest: FloatElement = 'Interest'
class q2_sdk.hq.db.generated_transactions.GeneratedTransactions(logger, hq_credentials=None, ret_table_obj=None)[source]

Bases: DbObject

Programmatic access to the Q2 database. Not as flexible as a true ORM, but takes the guesswork out of database schemas and ensures safety in the transactions.

Parameters:
  • logger – Reference to calling request’s logger (self.logger in your extension)

  • hq_credentials (Optional[HqCredentials]) – HQ Connectivity Information (Defaults to settings file)

  • ret_table_obj (Optional[bool]) – Flag to return list of LXML elements if False or TableRow objects from DB calls if True (Defaults to settings file)

NAME = 'GeneratedTransactions'
REPRESENTATION_ROW_CLASS

alias of GeneratedTransactionsRow

add_arguments(parser)[source]

Hook for subclassed DbObjects to add custom arguments.

async get(customer_id, from_date, to_date, recurring_transaction_id=None, serialize_for_cli=False)[source]
Return type:

list[GeneratedTransactionsRow]

async get_by_id(transaction_id, serialize_for_cli=False)[source]
Return type:

list[GeneratedTransactionsRow]

async get_by_recurring_id(recurring_transaction_id, serialize_for_cli=False)[source]
Return type:

list[GeneratedTransactionsRow]

async add_transaction_note(transaction_id, admin_login_name, note, note_date=None)[source]

Adds a note to transaction

Parameters:
  • transaction_id – The id of the transaction the note is added to

  • admin_login_name – The CSR login name who is adding the note

  • note – the note contents

  • note_date (Optional[str]) – Datetime in the form of YYYY-MM-DD HH:MM:SS. If not provided, a “now” timestamp will be used

async get_by_create_date_range(start_date, end_date, page_number=1, page_size=200, transaction_status_filter=None)[source]

Get external transactions by create date range and supports pagination

Parameters:
  • start_date (datetime) – The start date of the date range, as a datetime object

  • end_date (datetime) – The end date of the date range, as a datetime object

  • page_number – the starting point for pagination. Defaults to 1

  • page_size – The number of transactions to get per page

  • transaction_status_filter (Optional[TransactionStatus]) – an optional filter to get transactions that are in a specific status

Return type:

list[ExternalGeneratedTransfer]

Returns:

A list of transactions that fit the provided parameters

async get_by_process_date_range(start_date, end_date, page_number=1, page_size=200, transaction_status_filter=None)[source]

Get external transactions by process date range and supports pagination

Parameters:
  • start_date (datetime) – The start date of the date range, as a datetime object

  • end_date (datetime) – The end date of the date range, as a datetime object

  • page_number – the starting point for pagination. Defaults to 1

  • page_size – The number of transactions to get per page

  • transaction_status_filter (Optional[TransactionStatus]) – an optional filter to get transactions that are in a specific status

Return type:

list[ExternalGeneratedTransfer]

Returns:

A list of transactions that fit the provided parameters

async get_loan_transactions_by_date_range(start_date, end_date, date_column, page_number=1, page_size=200, transaction_status_filter=None, filter_on_gt_data_name=None)[source]

Get generated transactions to hydra product type L by date range and supports pagination

Parameters:
  • start_date (datetime) – The start date of the date range, as a datetime object

  • end_date (datetime) – The end date of the date range, as a datetime object

  • date_column (DateColumn) – The date column to filter the date on

  • page_number – the starting point for pagination. Defaults to 1

  • page_size – The number of transactions to get per page

  • transaction_status_filter (Optional[TransactionStatus]) – an optional filter to get transactions that are in a specific status

  • filter_on_gt_data_name (Optional[str]) – an optional filter to only get transactions with specific gt data attached

Return type:

list[GeneratedLoanTransaction]

Returns:

A list of transactions that fit the provided parameters

async get_transactions_by_date_range_with_gt_data(start_date, end_date, date_column, page_number=1, page_size=200, transaction_status_filter=None, filter_on_gt_data_name=None, customer_id=None)[source]

Get generated transactions with gt data by date range and supports pagination

Parameters:
  • start_date (datetime) – The start date of the date range, as a datetime object

  • end_date (datetime) – The end date of the date range, as a datetime object

  • date_column (DateColumn) – The date column to filter the date on

  • page_number – the starting point for pagination. Defaults to 1

  • page_size – The number of transactions to get per page

  • transaction_status_filter (Optional[TransactionStatus]) – an optional filter to get transactions that are in a specific status

  • filter_on_gt_data_name (Optional[str]) – an optional filter to only get transactions with specific gt data attached

  • customer_id (Optional[int]) – If provided, will filter the results by Q2_Customer.CustomerID

Return type:

list[GeneratedLoanTransaction]

Returns:

A list of transactions that fit the provided parameters

async get_pending_transactions(page_number=1, page_size=200, transaction_type_ids_to_omit=None)[source]

Get pending transactions. Pending transactions include the following statuses: PendingProcessing, Authorized, Drafted, Suspect

Param:

page_number: the starting point for pagination. Defaults to 1

Param:

page_size: The number of transactions to get per page. Defaults to 200

Param:

transaction_type_ids_to_omit: The transaction types to omit from the search

Return type:

list[GeneratedTransactionsPending]