"""Constants.""" from abacus_common_logic.utils.enum import enum DEFAULT_PAGE_LIMIT = 100 DEFAULT_MAX_PAGE_LIMIT = 300 DEFAULT_PAGE_OFFSET = 0 DEFAULT_SORT_BY = 'account_name' DEFAULT_SORT_ORDER = 'asc' NO_POSTED_PAYMENT = 'Payee {payee_id} has no posted payments' # default timeout for s3 download links, in seconds S3_PRESIGNED_URL_DEFAULT_EXPIRATION = 30 PAYMENT_ACCOUNT_SORTABLE_COLUMNS = [ 'account_name', 'account_id', 'balance_after_tax', 'currency_code', 'current_balance', 'last_payment', 'last_statement_period_id', 'note', 'payment_difference', 'percent_difference', 'tax_withholding', 'payment_status', 'payment_error_code', 'payoneer_program_id', 'vat_amount', ] WORKSHEET_PAYABLE_BALANCE_AFTER_TAX_SORTABLE_COLUMNS = [ 'contract_id', 'contract_name', 'account_id', 'account_name', 'payable_amount_pre_tax', 'tax_withholding_amount', 'vat_amount', 'payable_amount_post_tax', 'currency_code', 'country_of_tax_residence', 'statement_period_id', ] STATEMENT_PERIOD_STATUSES = enum( 'StatementPeriodStatuses', OPEN='open', CURRENT='current', CLOSED='closed', ) ACTION_STATUSES = enum( 'ActionStatuses', INIT='init', RUNNING='running', ERROR='error', COMPLETE='complete', APPROVED='approved', REJECTED='rejected', ) PAYMENT_GROUP_PAYMENT_ACTIONS = enum( 'PaymentGroupPaymentActions', GENERATE_PAYMENTS='generate_payments', GENERATE_EXPORT='generate_export', UPLOAD_APPROVAL='upload_approval', SEND_PAYMENTS='send_payments', ) PAYMENT_GROUP_PAYMENT_ACTION_STATUSES = enum( 'PaymentGroupPaymentActionStatuses', INIT='init', RUNNING='running', ERROR='error', COMPLETE='complete', ) PAYMENT_GROUP_PAYMENT_ACCOUNT_ACTION_NAMES = enum( 'PaymentGroupPaymentAccountActionNames', SEND_PAYMENTS='send_payments' ) PAYMENT_GROUP_PAYMENT_BATCH_ACTION_NAMES = enum( 'PaymentGroupPaymentBatchActionNames', SEND_PAYMENT='send_payment' ) WORKSHEET_PAYMENT_CONTRACT_ADVANCE_ACTIONS = enum( 'WorksheetPaymentContractAdvanceActions', SEND_PAYMENTS='send_payments', ) WORKSHEET_PAYMENT_CUSTOM_ACTIONS = enum( 'WorksheetPaymentCustomActions', SEND_PAYMENTS='send_payments', ) PAYMENT_METHODS = enum( 'PaymentMethods', CHECK='Check', WESTERN_UNION='Western Union', WIRE_TRANSFER='Wire Transfer', ) WORKSHEET_PAYMENT_CONTRACT_ADVANCE_STATUSES = enum( 'WorksheetPaymentContractAdvanceStatuses', INIT='init', RUNNING='running', ERROR='error', COMPLETE='complete', REJECTED='rejected', ) WORKSHEET_PAYMENT_CUSTOM_STATUSES = enum( 'WorksheetPaymentCustomStatuses', INIT='init', RUNNING='running', ERROR='error', COMPLETE='complete', REJECTED='rejected', ) PAYMENT_SCHEDULE = enum( 'PaymentSchedule', SCHEDULE_30_DAYS_MONTH='30_days_after_month_end', SCHEDULE_45_DAYS_MONTH='45_days_after_month_end', SCHEDULE_60_DAYS_MONTH='60_days_after_month_end', SCHEDULE_90_DAYS_MONTH='90_days_after_month_end', SCHEDULE_30_DAYS_QUARTER='30_days_after_quarter_end', SCHEDULE_45_DAYS_QUARTER='45_days_after_quarter_end', SCHEDULE_60_DAYS_QUARTER='60_days_after_quarter_end', SCHEDULE_90_DAYS_QUARTER='90_days_after_quarter_end', SCHEDULE_30_DAYS_HALFYEAR='30_days_after_half_year_end', SCHEDULE_45_DAYS_HALFYEAR='45_days_after_half_year_end', SCHEDULE_60_DAYS_HALFYEAR='60_days_after_half_year_end', SCHEDULE_90_DAYS_HALFYEAR='90_days_after_half_year_end', TEMPORARY='TEMPORARY', ) REPORT_TYPE = enum('ReportType', APPROVAL='approval', SUMMARY='summary') VALID_PAYMENT_BATCH_STATUSES = ['failed', 'pending', 'success'] ABACUS_EVENT_TARGET_TYPES = enum( 'AbacusEventTargetTypes', PAYMENT_GROUP_PAYMENT='payment_group_payment' ) PAYMENT_TYPES = enum('PaymentTypes', WHT='wht', PAYMENT='payment', VAT='vat') PAYMENT_TYPE_TO_ATTR = { PAYMENT_TYPES.WHT: 'tax_withholding_amount', PAYMENT_TYPES.PAYMENT: 'payable_amount_post_tax', PAYMENT_TYPES.VAT: 'vat_amount', } CORRECTION_TYPES = enum('CorrectionTypes', WHT='wht', VAT='vat') # Used for correction types to IDs mapping, and as a constant with correction types IDs. CORRECTION_TYPE_TO_PAYABLE_DETAIL_TYPE_ID = { CORRECTION_TYPES.WHT: 4, CORRECTION_TYPES.VAT: 5, } CORRECTION_STATUSES = enum('CorrectionStatuses', ACTIVE='active', PENDING='pending') REVENUE_TRANSACTION_TYPES = enum( 'RevenueTransactionTypes', DIGITAL='digital', PHYSICAL='physical', CLOSING_BALANCE='closing_balance', ) BULK_ENDPOINT_SUCCESS_RESPONSE = {'message': 'OK'} PAYMENT_SEARCH_TYPES = enum( 'PaymentSearchTypes', BALANCE_PAYMENT='balance_payment', ADVANCE_PAYMENT='advance_payment', CUSTOM_PAYMENT='custom_payment', ) PAYMENT_SEARCH_STATUSES = enum( 'PaymentSearchStatuses', PENDING_ACCEPTANCE='pending_acceptance', ACCEPTED='accepted', FAILURE='failure', SUCCESSFUL='successful', CANCELLED='cancelled', NOT_PAID='not_paid', ) PAYMENT_SEARCH_COLUMNS = enum( 'PaymentSearchColumns', ID='_id', ACCOUNT_ID='account_id', ACCOUNT_NAME='account_name', CONTRACT_ID='contract_id', CONTRACT_NAME='contract_name', CURRENCY='currency', ERROR_MESSAGE='error_message', PAYMENT_CREATED_DATE='payment_created_date', PAYMENT_ID='payment_id', PAYMENT_NAME='payment_name', PAYMENT_RELEASE_DATE='payment_release_date', PAYMENT_STATUS='payment_status', PAYMENT_TYPE='payment_type', POST_TAX_AMOUNT='post_tax_amount', PRE_TAX_AMOUNT='pre_tax_amount', STATEMENT_PERIOD_ID='statement_period_id', STATEMENT_PERIOD_NAME='statement_period_name', SENT_STATEMENT_PERIOD_ID='sent_statement_period_id', SENT_STATEMENT_PERIOD_NAME='sent_statement_period_name', ) PAYMENT_SEARCH_LIMIT = 1000 PAYMENT_SEARCH_QUERY = '*' REFERENCE_PAYMENT_TYPES = enum( 'ReferencePaymentTypes', ADVANCE='advance', BULK_PAYOUTS='bulk_payouts', ) VAT_CATEGORIES = enum( 'VatCategories', DISTRIBUTION_FEE='distribution_fee', GROSS_REVENUE='gross_revenue', CLOSING_BALANCE='closing_balance', COMMISSION='commission', ) SPECIFIC_ACCOUNTS_PAYMENT_GROUP_NAME = 'Multiple Accounts' PERMISSIONS_ACTIONS = enum( 'PermissionsActions', VIEW='view', EDIT='edit', DELETE='delete', VIEW_PENDING_PAYMENT='view_pending_payment', ) PERMISSIONS_RESOURCES = enum( 'PermissionsResources', CONTRACT_ADVANCE_PAYMENT='contract_advance_payment', REFERENCE_PAYMENT_TYPE='reference_payment_type', ACCOUNT='account', ) PERMISSIONS_TENANT_TYPES = enum('PermissionsTenantTypes', ACCOUNT='account') PAYEE_TYPES = enum( 'PayeeTypes', ACCOUNT_PAYEE='account_payee', PAYEE='payee', ) PAYMENT_ALLOCATION_TYPES = enum( 'AllocationTypes', COLLABORATOR='collaborator', FLOWTHROUGH='flowthrough', TRANSFER_OF_EARNING='transfer_of_earning', ) PAYMENT_ALLOCATION_STATUSES = enum( 'PaymentAllocationStatuses', INIT='init', ATTACHED_TO_PAYMENT='attached_to_payment', PAID='paid', RETURNED='returned', ) PAYMENT_ALLOCATION_LEDGER_STATUSES = enum( 'PaymentAllocationLedgerStatuses', DEBITED='debited', RETURNED='returned', INIT='init', ATTACHED_TO_PAYMENT='attached_to_payment', ) PAYMENT_ALLOCATION_FLOWTHROUGH_STATUS_TRANSITIONS = { None: [PAYMENT_ALLOCATION_STATUSES.INIT], PAYMENT_ALLOCATION_STATUSES.INIT: [PAYMENT_ALLOCATION_STATUSES.ATTACHED_TO_PAYMENT], PAYMENT_ALLOCATION_STATUSES.RETURNED: [ PAYMENT_ALLOCATION_STATUSES.ATTACHED_TO_PAYMENT ], PAYMENT_ALLOCATION_STATUSES.ATTACHED_TO_PAYMENT: [ PAYMENT_ALLOCATION_STATUSES.PAID, PAYMENT_ALLOCATION_STATUSES.INIT, PAYMENT_ALLOCATION_STATUSES.RETURNED, ], PAYMENT_ALLOCATION_STATUSES.PAID: [PAYMENT_ALLOCATION_STATUSES.RETURNED], } DEFAULT_BULK_MAX_LIMIT = 300