Skip to content

Commit 548d48c

Browse files
authored
Add MoneybirdReceipt admin and update receipt API endpoints (#3940)
* Add MoneybirdReceipt admin and update receipt API endpoints * Improve the admin a little
1 parent 7d6d837 commit 548d48c

2 files changed

Lines changed: 40 additions & 2 deletions

File tree

website/moneybirdsynchronization/admin.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
MoneybirdExternalInvoice,
99
MoneybirdPayment,
1010
MoneybirdProject,
11+
MoneybirdReceipt,
1112
)
1213

1314

@@ -152,3 +153,40 @@ class MoneybirdProjectAdmin(admin.ModelAdmin):
152153
)
153154

154155
search_fields = ("name", "moneybird_id")
156+
157+
158+
@admin.register(MoneybirdReceipt)
159+
class MoneybirdReceiptAdmin(admin.ModelAdmin):
160+
"""Manage moneybird receipts."""
161+
162+
list_display = ("moneybird_receipt_id", "reimbursement_link")
163+
search_fields = (
164+
"moneybird_receipt_id",
165+
"moneybird_attachment_id",
166+
"reimbursement__date_incurred",
167+
"reimbursement__owner__first_name",
168+
"reimbursement__owner__last_name",
169+
"reimbursement__description",
170+
)
171+
raw_id_fields = ("reimbursement",)
172+
173+
def reimbursement_link(self, obj):
174+
return format_html(
175+
'<a href="{}">{}</a>',
176+
reverse(
177+
"admin:reimbursements_reimbursement_change",
178+
args=[obj.reimbursement.pk],
179+
),
180+
obj.reimbursement,
181+
)
182+
183+
reimbursement_link.short_description = "Reimbursement"
184+
185+
def get_readonly_fields(self, request, obj=None):
186+
if not obj:
187+
return ()
188+
return ("reimbursement",)
189+
190+
def get_queryset(self, request):
191+
qs = super().get_queryset(request)
192+
return qs.select_related("reimbursement")

website/moneybirdsynchronization/moneybird.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,11 @@ def delete_financial_statement(self, statement_id):
5454
return self._administration.delete(f"financial_statements/{statement_id}")
5555

5656
def create_receipt(self, receipt_data):
57-
return self._administration.post("receipts", receipt_data)
57+
return self._administration.post("documents/receipts", receipt_data)
5858

5959
def add_receipt_attachment(self, receipt_id, receipt_attachment):
6060
return self._administration.post(
61-
f"receipts/{receipt_id}/attachments", receipt_attachment
61+
f"documents/receipts/{receipt_id}/attachments", receipt_attachment
6262
)
6363

6464
def link_mutation_to_booking(

0 commit comments

Comments
 (0)