feat: hide authorizer for rental orders, auto-set sale type
Rental orders no longer show the "Authorizer Required?" question or the Authorizer field. The sale type is automatically set to 'Rentals' when creating or confirming a rental order. Validation logic also skips authorizer checks for rental sale type. Made-with: Cursor
This commit is contained in:
@@ -66,17 +66,21 @@ class PoyntTerminal(models.Model):
|
||||
|
||||
# === BUSINESS METHODS === #
|
||||
|
||||
def _get_provider_sudo(self):
|
||||
return self.provider_id.sudo()
|
||||
|
||||
def action_refresh_status(self):
|
||||
"""Refresh the terminal status from Poynt Cloud."""
|
||||
for terminal in self:
|
||||
try:
|
||||
store_id = terminal.store_id_poynt or terminal.provider_id.poynt_store_id
|
||||
provider = terminal._get_provider_sudo()
|
||||
store_id = terminal.store_id_poynt or provider.poynt_store_id
|
||||
if store_id:
|
||||
endpoint = f'stores/{store_id}/storeDevices/{terminal.device_id}'
|
||||
else:
|
||||
endpoint = f'storeDevices/{terminal.device_id}'
|
||||
|
||||
result = terminal.provider_id._poynt_make_request('GET', endpoint)
|
||||
result = provider._poynt_make_request('GET', endpoint)
|
||||
poynt_status = result.get('status', 'UNKNOWN')
|
||||
|
||||
if poynt_status == 'ACTIVATED':
|
||||
@@ -130,7 +134,8 @@ class PoyntTerminal(models.Model):
|
||||
if order_id:
|
||||
payment_request['orderId'] = order_id
|
||||
|
||||
store_id = self.store_id_poynt or self.provider_id.poynt_store_id or ''
|
||||
provider = self._get_provider_sudo()
|
||||
store_id = self.store_id_poynt or provider.poynt_store_id or ''
|
||||
|
||||
data_str = json.dumps({
|
||||
'action': 'sale',
|
||||
@@ -142,12 +147,12 @@ class PoyntTerminal(models.Model):
|
||||
})
|
||||
|
||||
try:
|
||||
result = self.provider_id._poynt_make_request(
|
||||
result = provider._poynt_make_request(
|
||||
'POST',
|
||||
'cloudMessages',
|
||||
business_scoped=False,
|
||||
payload={
|
||||
'businessId': self.provider_id.poynt_business_id,
|
||||
'businessId': provider.poynt_business_id,
|
||||
'storeId': store_id,
|
||||
'deviceId': self.device_id,
|
||||
'ttl': 300,
|
||||
@@ -173,7 +178,7 @@ class PoyntTerminal(models.Model):
|
||||
:return: The full callback URL.
|
||||
:rtype: str
|
||||
"""
|
||||
base_url = self.provider_id.get_base_url()
|
||||
base_url = self._get_provider_sudo().get_base_url()
|
||||
return f"{base_url}/payment/poynt/terminal/callback"
|
||||
|
||||
def action_check_terminal_payment_status(self, reference):
|
||||
@@ -188,8 +193,9 @@ class PoyntTerminal(models.Model):
|
||||
"""
|
||||
self.ensure_one()
|
||||
|
||||
provider = self._get_provider_sudo()
|
||||
try:
|
||||
txn_result = self.provider_id._poynt_make_request(
|
||||
txn_result = provider._poynt_make_request(
|
||||
'GET',
|
||||
'transactions',
|
||||
params={
|
||||
@@ -201,7 +207,7 @@ class PoyntTerminal(models.Model):
|
||||
transactions = txn_result.get('transactions', [])
|
||||
|
||||
if not transactions:
|
||||
txn_result = self.provider_id._poynt_make_request(
|
||||
txn_result = provider._poynt_make_request(
|
||||
'GET',
|
||||
'transactions',
|
||||
params={
|
||||
|
||||
Reference in New Issue
Block a user