Skip to content

Commit

Permalink
Fix merge
Browse files Browse the repository at this point in the history
  • Loading branch information
pxwxnvermx committed Aug 29, 2024
1 parent ad6be4a commit c4aad90
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 55 deletions.
22 changes: 2 additions & 20 deletions commcare_connect/opportunity/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@
UserInvite,
UserInviteStatus,
UserVisit,
VisitReviewStatus,
VisitValidationStatus,
)
from commcare_connect.opportunity.utils.completed_work import update_status
from commcare_connect.users.models import User
from commcare_connect.utils.datetime import is_date_before
from commcare_connect.utils.sms import send_sms
Expand Down Expand Up @@ -329,25 +329,7 @@ def bulk_approve_completed_work():
completed_works = access.completedwork_set.exclude(
status__in=[CompletedWorkStatus.rejected, CompletedWorkStatus.over_limit]
)
access.payment_accrued = 0
for completed_work in completed_works:
if completed_work.completed_count > 0:
approved_count = completed_work.approved_count
if access.opportunity.managed:
visits = completed_work.uservisit_set.filter(review_status=VisitReviewStatus.agree).values_list(
"status", "reason"
)
else:
visits = completed_work.uservisit_set.values_list("status", "reason")
if any(status == "rejected" for status, _ in visits):
completed_work.update_status(CompletedWorkStatus.rejected)
completed_work.reason = "\n".join(reason for _, reason in visits if reason)
elif all(status == "approved" for status, _ in visits):
completed_work.update_status(CompletedWorkStatus.approved)
if approved_count > 0 and completed_work.status == CompletedWorkStatus.approved:
access.payment_accrued += approved_count * completed_work.payment_unit.amount
completed_work.save()
access.save()
update_status(completed_works, access, True)


@celery_app.task()
Expand Down
26 changes: 13 additions & 13 deletions commcare_connect/opportunity/utils/completed_work.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from commcare_connect.opportunity.models import CompletedWorkStatus
from commcare_connect.opportunity.models import CompletedWorkStatus, VisitReviewStatus


def update_status(completed_works, opportunity_access, compute_payment=True):
Expand All @@ -11,7 +11,18 @@ def update_status(completed_works, opportunity_access, compute_payment=True):
continue

if opportunity_access.opportunity.auto_approve_payments:
update_completed_work_status(completed_work)
if opportunity_access.opportunity.managed:
visits = completed_work.uservisit_set.filter(review_status=VisitReviewStatus.agree).values_list(
"status", "reason"
)
else:
visits = completed_work.uservisit_set.values_list("status", "reason")
if any(status == "rejected" for status, _ in visits):
completed_work.status = CompletedWorkStatus.rejected
completed_work.reason = "\n".join(reason for _, reason in visits if reason)
elif all(status == "approved" for status, _ in visits):
completed_work.status = CompletedWorkStatus.approved
completed_work.save()

if compute_payment:
approved_count = completed_work.approved_count
Expand All @@ -21,14 +32,3 @@ def update_status(completed_works, opportunity_access, compute_payment=True):
if compute_payment:
opportunity_access.payment_accrued = payment_accrued
opportunity_access.save()


def update_completed_work_status(completed_work):
visits = completed_work.uservisit_set.values_list("status", "reason")
if any(status == "rejected" for status, _ in visits):
completed_work.status = CompletedWorkStatus.rejected
completed_work.reason = "\n".join(reason for _, reason in visits if reason)
elif all(status == "approved" for status, _ in visits):
completed_work.status = CompletedWorkStatus.approved

completed_work.save()
24 changes: 2 additions & 22 deletions commcare_connect/opportunity/visit_import.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
OpportunityAccess,
Payment,
UserVisit,
VisitReviewStatus,
VisitValidationStatus,
)
from commcare_connect.opportunity.tasks import send_payment_notification
from commcare_connect.opportunity.utils.completed_work import update_status
from commcare_connect.utils.file import get_file_extension
from commcare_connect.utils.itertools import batched

Expand Down Expand Up @@ -160,27 +160,7 @@ def update_payment_accrued(opportunity: Opportunity, users):
completed_works = access.completedwork_set.exclude(
status__in=[CompletedWorkStatus.rejected, CompletedWorkStatus.over_limit]
).select_related("payment_unit")
access.payment_accrued = 0
for completed_work in completed_works:
# Auto Approve Payment conditions
if completed_work.completed_count > 0:
if opportunity.auto_approve_payments:
if opportunity.managed:
visits = completed_work.uservisit_set.filter(
review_status=VisitReviewStatus.agree
).values_list("status", "reason")
else:
visits = completed_work.uservisit_set.values_list("status", "reason")
if any(status == "rejected" for status, _ in visits):
completed_work.update_status(CompletedWorkStatus.rejected)
completed_work.reason = "\n".join(reason for _, reason in visits if reason)
elif all(status == "approved" for status, _ in visits):
completed_work.update_status(CompletedWorkStatus.approved)
approved_count = completed_work.approved_count
if approved_count > 0 and completed_work.status == CompletedWorkStatus.approved:
access.payment_accrued += approved_count * completed_work.payment_unit.amount
completed_work.save()
access.save()
update_status(completed_works, access, True)


def get_status_by_visit_id(dataset) -> dict[int, VisitValidationStatus]:
Expand Down

0 comments on commit c4aad90

Please sign in to comment.