Features: 1) Add STATUS_MAP dictionary to map status codes in AmoCRM; 2) Update update_order_status method to use STATUS_MAP for status mapping.
Fixes: 1) Simplify retrieval of `OrderCrmLink` to use `get()` instead of `filter().first()`; 2) Eliminate redundant `Order` lookup by utilizing `link.order`. Extra: Refactored code to enhance readability and efficiency in status update logic.
This commit is contained in:
parent
0ca0756e50
commit
2c67af969e
1 changed files with 7 additions and 9 deletions
|
|
@ -14,6 +14,8 @@ logger = logging.getLogger("django")
|
|||
|
||||
|
||||
class AmoCRM:
|
||||
STATUS_MAP: dict[str, str] = {}
|
||||
|
||||
def __init__(self):
|
||||
try:
|
||||
self.instance = CustomerRelationshipManagementProvider.objects.get(name="amo")
|
||||
|
|
@ -170,14 +172,10 @@ class AmoCRM:
|
|||
OrderCrmLink.objects.create(order=order, crm_lead_id=lead_id, crm=self.instance)
|
||||
return lead_id
|
||||
|
||||
def update_order_status(self, crm_lead_id: str, new_status_code: str) -> None:
|
||||
link = OrderCrmLink.objects.filter(crm_lead_id=crm_lead_id).first()
|
||||
if not link:
|
||||
return
|
||||
from core.models import Order
|
||||
def update_order_status(self, crm_lead_id: str, new_status: str) -> None:
|
||||
link = OrderCrmLink.objects.get(crm_lead_id=crm_lead_id)
|
||||
|
||||
order = Order.objects.get(uuid=link.order_uuid)
|
||||
if order.status == new_status_code:
|
||||
if link.order.status == new_status:
|
||||
return
|
||||
order.status = new_status_code
|
||||
order.save(update_fields=["status"])
|
||||
link.order.status = self.STATUS_MAP.get(new_status)
|
||||
link.order.save(update_fields=["status"])
|
||||
|
|
|
|||
Loading…
Reference in a new issue