Host Account

class q2_sdk.hq.db.host_account.HostAccountRow[source]

Bases: RepresentationRowBase

HostAccountID: IntElement = 'HostAccountID'
AccountNumberInternal: StringElement = 'AccountNumberInternal'
AccountNumberExternal: StringElement = 'AccountNumberExternal'
ProductID: IntElement = 'ProductID'
ProductName: StringElement = 'ProductName'
ProductNickName: StringElement = 'ProductNickName'
AccountDesc: StringElement = 'AccountDesc'
CIFInternal: StringElement = 'CIFInternal'
CIFExternal: StringElement = 'CIFExternal'
DefaultPwd: StringElement = 'DefaultPwd'
DataAsOfDate: StringElement = 'DataAsOfDate'
BranchID: IntElement = 'BranchID'
SkipBalanceCheck: BoolElement = 'SkipBalanceCheck'
ABA: StringElement = 'ABA'
IsExternalAccount: BoolElement = 'IsExternalAccount'
AccountInfo: StringElement = 'AccountInfo'
LastStatusChange: StringElement = 'LastStatusChange'
AccountStatusID: IntElement = 'AccountStatusID'
LastHistoryDate: StringElement = 'LastHistoryDate'
class q2_sdk.hq.db.host_account.HostAccountCustomerRow[source]

Bases: RepresentationRowBase

CustomerID: IntElement = 'CustomerID'
UserID: IntElement = 'UserID'
HostAccountID: IntElement = 'HostAccountID'
AccountNumberInternal: StringElement = 'AccountNumberInternal'
AccountNumberExternal: StringElement = 'AccountNumberExternal'
ProductID: IntElement = 'ProductID'
ProductName: StringElement = 'ProductName'
AccountDesc: StringElement = 'AccountDesc'
CIFInternal: StringElement = 'CIFInternal'
CIFExternal: StringElement = 'CIFExternal'
DataAsOfDate: StringElement = 'DataAsOfDate'
ProductTypeName: StringElement = 'ProductTypeName'
ABA: StringElement = 'ABA'
IsExternalAccount: BoolElement = 'IsExternalAccount'
class q2_sdk.hq.db.host_account.HostAccountCustomerWithProductRow[source]

Bases: RepresentationRowBase

CustomerID: IntElement = 'CustomerID'
HostAccountID: IntElement = 'HostAccountID'
ProductName: StringElement = 'ProductName'
ProductID: IntElement = 'ProductID'
AccountStatus: StringElement = 'AccountStatus'
class q2_sdk.hq.db.host_account.UpdateAccountRightsParameters(hostAccountId, userId, can_view, can_deposit, can_withdraw)[source]

Bases: object

UpdateAccountRightsParameters(hostAccountId: int, userId: int, can_view: bool, can_deposit: bool, can_withdraw: bool)

hostAccountId: int
userId: int
can_view: bool
can_deposit: bool
can_withdraw: bool
calculate_access()[source]
Return type:

int

build_sql_parameters()[source]
class q2_sdk.hq.db.host_account.ProductChangeParameters(host_account_id, old_product_id, new_product_id)[source]

Bases: object

ProductChangeParameters(host_account_id: int, old_product_id: int, new_product_id: int)

host_account_id: int
old_product_id: int
new_product_id: int
build_xml_node()[source]
enum q2_sdk.hq.db.host_account.ProductChangeStatus(value)[source]

Bases: Enum

Valid values are as follows:

Ok = <ProductChangeStatus.Ok: 'OK'>
AllRecordsSkipped = <ProductChangeStatus.AllRecordsSkipped: 'AllRecordsSkipped'>
PartialUpdate = <ProductChangeStatus.PartialUpdate: 'PartialUpdate'>
class q2_sdk.hq.db.host_account.ProductChangeResults(result, successful_accounts, skipped_accounts)[source]

Bases: object

ProductChangeResults(result: q2_sdk.hq.db.host_account.ProductChangeStatus, successful_accounts: list, skipped_accounts: list)

result: ProductChangeStatus
successful_accounts: list
skipped_accounts: list
class q2_sdk.hq.db.host_account.HostAccount(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)

REPRESENTATION_ROW_CLASS

alias of HostAccountRow

add_arguments(parser)[source]

Hook for subclassed DbObjects to add custom arguments.

async check_adapter_mode()[source]

Note: this only works in the dev environment

async update_to_batch()[source]

Note: this only works in the dev environment

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

HostAccountRow

async create(account_internal, account_external, product_id, cif, account_description, is_external=False)[source]

Note: this only works in the dev environment

Return type:

list[HostAccountRow]

async search_by_external_number(external_account_number)[source]
Return type:

list[HostAccountRow]

async search_by_internal_number(internal_account_number)[source]
Return type:

list[HostAccountRow]

async update_account_rights(parameters)[source]

Update the account rights for an account linked to a user. This only works for accounts explicitly linked to the user, and will not work for accounts linked by a cif.

async get_customer_host_accounts(customer_ids)[source]

Retrieves multiple accounts associated to the customers in the list. For DB performance reason, the customer id list should be limited to 20

Parameters:

customer_ids (list[int]) – list of Q2_Customer.CustomerID <= 20

Return type:

list[HostAccountCustomerRow]

async get_accounts_by_product(group_id, product_id=None)[source]

Searches a group of customers for accounts with a specific product id

Parameters:
  • group_id (int) – Group to search [Q2_Group.GroupID]

  • product_id (Optional[int]) – Product ID of the target product [Q2_Product.ProductID]

Return type:

list[HostAccountCustomerWithProductRow]

async change_account_product(account_changes)[source]

Changes the product of a list of accounts :type account_changes: list[ProductChangeParameters] :param account_changes: list of ProductChangeParameters objects. :rtype: ProductChangeResults :return: ProductChangeResults object