- New 'pending' status allows tasks to be created without a schedule, acting as a queue for unscheduled work that gets assigned later - Pending group appears in the Delivery Map sidebar with amber color - Other modules can create tasks in pending state for scheduling - scheduled_date no longer required (null for pending tasks) - New Pending Tasks menu item under Field Service - Pending filter added to search view Co-authored-by: Cursor <cursoragent@cursor.com>
85 lines
1.9 KiB
Python
85 lines
1.9 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
API_BASE_URL = 'https://services.poynt.net'
|
|
API_VERSION = '1.2'
|
|
|
|
# Poynt test/sandbox environment
|
|
API_BASE_URL_TEST = 'https://services-eu.poynt.net'
|
|
|
|
TOKEN_ENDPOINT = '/token'
|
|
|
|
# Poynt OAuth authorization URL for merchant onboarding
|
|
OAUTH_AUTHORIZE_URL = 'https://poynt.net/applications/authorize'
|
|
OAUTH_SIGNOUT_URL = 'https://services.poynt.net/auth/signout'
|
|
|
|
# Poynt public key URL for JWT verification
|
|
POYNT_PUBLIC_KEY_URL = 'https://poynt.net'
|
|
|
|
DEFAULT_PAYMENT_METHOD_CODES = {
|
|
'card',
|
|
'visa',
|
|
'mastercard',
|
|
'amex',
|
|
'discover',
|
|
}
|
|
|
|
# Mapping of Poynt transaction statuses to Odoo payment transaction states.
|
|
STATUS_MAPPING = {
|
|
'authorized': ('AUTHORIZED',),
|
|
'done': ('CAPTURED', 'SETTLED'),
|
|
'cancel': ('VOIDED', 'CANCELED'),
|
|
'error': ('DECLINED', 'FAILED', 'REFUND_FAILED'),
|
|
'refund': ('REFUNDED',),
|
|
}
|
|
|
|
# Poynt transaction actions
|
|
TRANSACTION_ACTION = {
|
|
'authorize': 'AUTHORIZE',
|
|
'capture': 'CAPTURE',
|
|
'refund': 'REFUND',
|
|
'void': 'VOID',
|
|
'sale': 'SALE',
|
|
}
|
|
|
|
# Webhook event types we handle
|
|
HANDLED_WEBHOOK_EVENTS = [
|
|
'TRANSACTION_AUTHORIZED',
|
|
'TRANSACTION_CAPTURED',
|
|
'TRANSACTION_VOIDED',
|
|
'TRANSACTION_REFUNDED',
|
|
'TRANSACTION_DECLINED',
|
|
'TRANSACTION_UPDATED',
|
|
'ORDER_COMPLETED',
|
|
'ORDER_CANCELLED',
|
|
]
|
|
|
|
# Card brand mapping from Poynt scheme to Odoo payment method codes
|
|
CARD_BRAND_MAPPING = {
|
|
'VISA': 'visa',
|
|
'MASTERCARD': 'mastercard',
|
|
'AMERICAN_EXPRESS': 'amex',
|
|
'DISCOVER': 'discover',
|
|
'DINERS_CLUB': 'diners_club',
|
|
'JCB': 'jcb',
|
|
}
|
|
|
|
# Terminal statuses
|
|
TERMINAL_STATUS = {
|
|
'online': 'ONLINE',
|
|
'offline': 'OFFLINE',
|
|
'unknown': 'UNKNOWN',
|
|
}
|
|
|
|
# Poynt amounts are in cents (minor currency units)
|
|
CURRENCY_DECIMALS = {
|
|
'JPY': 0,
|
|
'KRW': 0,
|
|
}
|
|
|
|
# Sensitive keys that should be masked in logs
|
|
SENSITIVE_KEYS = {
|
|
'poynt_private_key',
|
|
'accessToken',
|
|
'refreshToken',
|
|
}
|