Files
gsinghpal 0e1aebe60b feat: add Pending status for delivery/technician tasks
- 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>
2026-02-24 04:21:05 -05:00

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',
}