66from django .conf import settings
77from django .contrib import messages
88from django .contrib .auth .mixins import LoginRequiredMixin
9- from django .db .models import Prefetch
109from django .core .exceptions import ValidationError
10+ from django .db .models import Prefetch
1111from django .db .models import Q
1212from django .db .models import Sum
1313from django .http import HttpResponse
@@ -415,16 +415,8 @@ class ReimbursementCreateView(CampViewMixin, ExpensePermissionMixin, CreateView)
415415
416416 def dispatch (self , request , * args , ** kwargs ):
417417 """Get any approved and un-reimbursed expenses and revenues, or return error."""
418- self .expenses = request .user .expenses .filter (
419- reimbursement__isnull = True ,
420- approved = True ,
421- payment_status = "PAID_NEEDS_REIMBURSEMENT" ,
422- )
423- self .revenues = request .user .revenues .filter (
424- reimbursement__isnull = True ,
425- approved = True ,
426- payment_status = "PAID_NEEDS_REDISBURSEMENT" ,
427- )
418+ self .expenses = request .user .profile .paid_expenses_needs_reimbursement
419+ self .revenues = request .user .profile .paid_revenues_needs_redisbursement
428420 if not self .expenses and not self .revenues :
429421 messages .error (
430422 request ,
@@ -458,28 +450,8 @@ def form_valid(self, form):
458450 reverse ("economy:dashboard" , kwargs = {"camp_slug" : self .camp .slug }),
459451 )
460452
461- # get the expenses for this user
462- expenses = Expense .objects .filter (
463- user = self .request .user ,
464- approved = True ,
465- reimbursement__isnull = True ,
466- payment_status = "PAID_NEEDS_REIMBURSEMENT" ,
467- )
468- expenses_total = expenses .aggregate (Sum ("amount" ))["amount__sum" ] or 0
469-
470- # get the revenues for this user
471- revenues = Revenue .objects .filter (
472- user = self .request .user ,
473- approved = True ,
474- reimbursement__isnull = True ,
475- payment_status = "PAID_NEEDS_REDISBURSEMENT" ,
476- )
477- revenues_total = revenues .aggregate (Sum ("amount" ))["amount__sum" ] or 0
478- if not expenses and not revenues :
479- messages .error (self .request , "No approved unhandled expenses or revenues found" )
480- return redirect (
481- reverse ("economy:dashboard" , kwargs = {"camp_slug" : self .camp .slug }),
482- )
453+ expenses_total = self .expenses .aggregate (Sum ("amount" ))["amount__sum" ] or 0
454+ revenues_total = self .revenues .aggregate (Sum ("amount" ))["amount__sum" ] or 0
483455
484456 # calculate the reimbursement total
485457 reimbursement_total = expenses_total - revenues_total
@@ -502,12 +474,12 @@ def form_valid(self, form):
502474 reimbursement .save ()
503475
504476 # add all expenses to reimbursement
505- for expense in expenses :
477+ for expense in self . expenses :
506478 expense .reimbursement = reimbursement
507479 expense .save ()
508480
509481 # add all revenues to reimbursement
510- for revenue in revenues :
482+ for revenue in self . revenues :
511483 revenue .reimbursement = reimbursement
512484 revenue .save ()
513485
0 commit comments