From bfbad6e7ce975c0001d380c94742addabdede293 Mon Sep 17 00:00:00 2001 From: Wilson Cheung Date: Wed, 12 Jun 2019 13:03:29 +0800 Subject: [PATCH 1/2] WildlifeCompliance: #6430 - update customer status on final_decision to update approval state --- .../components/applications/models.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/wildlifecompliance/components/applications/models.py b/wildlifecompliance/components/applications/models.py index fc8584b954..7a2e2a7e22 100644 --- a/wildlifecompliance/components/applications/models.py +++ b/wildlifecompliance/components/applications/models.py @@ -1686,6 +1686,22 @@ def final_decision(self, request): ", ".join([activity.licence_activity.name for activity in failed_payment_activities]) )) + self.update_customer_approval_status() + + def update_customer_approval_status(self): + # Update application customer approval status depending on count of approved/declined activities + total_activity_count = self.selected_activities.count() + approved_activity_count = self.selected_activities.filter( + processing_status=ApplicationSelectedActivity.PROCESSING_STATUS_ACCEPTED).count() + declined_activity_count = self.selected_activities.filter( + processing_status=ApplicationSelectedActivity.PROCESSING_STATUS_DECLINED).count() + if 0 < approved_activity_count < total_activity_count: + self.customer_status = Application.CUSTOMER_STATUS_PARTIALLY_APPROVED + elif approved_activity_count == total_activity_count: + self.customer_status = Application.CUSTOMER_STATUS_ACCEPTED + elif declined_activity_count == total_activity_count: + self.customer_status = Application.CUSTOMER_STATUS_DECLINED + def generate_returns(self, licence, selected_activity, request): from wildlifecompliance.components.returns.models import Return licence_expiry = selected_activity.expiry_date From dd6744b404670b8ab06960e61efb6cecc8460b8d Mon Sep 17 00:00:00 2001 From: Wilson Cheung Date: Wed, 12 Jun 2019 13:05:53 +0800 Subject: [PATCH 2/2] WildlifeCompliance: #6430 - update customer status on final_decision to update approval state --- wildlifecompliance/components/applications/models.py | 1 + 1 file changed, 1 insertion(+) diff --git a/wildlifecompliance/components/applications/models.py b/wildlifecompliance/components/applications/models.py index 7a2e2a7e22..f5cc05891f 100644 --- a/wildlifecompliance/components/applications/models.py +++ b/wildlifecompliance/components/applications/models.py @@ -1701,6 +1701,7 @@ def update_customer_approval_status(self): self.customer_status = Application.CUSTOMER_STATUS_ACCEPTED elif declined_activity_count == total_activity_count: self.customer_status = Application.CUSTOMER_STATUS_DECLINED + self.save() def generate_returns(self, licence, selected_activity, request): from wildlifecompliance.components.returns.models import Return