Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions expenses/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,12 @@ def new_payment(request):
return HttpResponseBadRequest("Alla kvitton måste ha samma ägare")

if expense_owner.bank_name == "" or expense_owner.bank_account == "" or expense_owner.sorting_number == "":
for expense in expenses:
models.Comment(
author=request.user.profile,
expense=expense,
content="Utbetalning misslyckades: användaren saknar fullständiga bankuppgifter"
).save()
return HttpResponseBadRequest("Användaren har inte angett alla sina bankuppgifter")

payment = models.Payment(
Expand Down Expand Up @@ -369,6 +375,12 @@ def api_new_payment(request):
return HttpResponseBadRequest("Alla kvitton måste ha samma ägare")

if expense_owner.bank_name == "" or expense_owner.bank_account == "" or expense_owner.sorting_number == "":
for expense in expenses:
models.Comment(
author=request.user.profile,
expense=expense,
content="Utbetalning misslyckades: användaren saknar fullständiga bankuppgifter"
).save()
return HttpResponseBadRequest("Användaren har inte angett alla sina bankuppgifter")

payment = models.Payment(
Expand Down
28 changes: 27 additions & 1 deletion templates/admin/pay/overview.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
{% block content %}
<div id="app">
<p>Här kan du hitta alla kvitton som är redo att betalas ut ordnade efter användare.</p>
<ul class="messages" v-if="error_message">
<li v-text="error_message"></li>
</ul>
<div class="select" style="margin-left: 10px;float:right">
<select v-model="cost_centre">
<option :value="false">Filtrera på resultatställe</option>
Expand Down Expand Up @@ -142,10 +145,12 @@ <h1>Genomför nedanstående betalning</h1>
expenses: {% autoescape off %}{{ expenses }}{% endautoescape %},
invoices: {% autoescape off %}{{ invoices }}{% endautoescape %},
payment: null,
error_message: '',
}
},
methods: {
save: function (user, e) {
this.error_message = ''
let exps = this.expenses.filter(x => x.checked && x.owner == user && (this.cost_centre == false || x.cost_centres.indexOf(this.cost_centre) > -1))
if (exps.length < 1) {
console.log('Not enough expenses')
Expand All @@ -163,7 +168,25 @@ <h1>Genomför nedanstående betalning</h1>
credentials: 'same-origin',
body: form
})
.then(res => res.json())
.then(async res => {
const body = await res.text()
let parsed = null

if (body) {
try {
parsed = JSON.parse(body)
} catch (err) {
parsed = null
}
}

if (!res.ok) {
const message = (parsed && parsed.error) || body || 'Utbetalningen misslyckades.'
throw new Error(message)
}

return parsed || {}
})
.then(res => {
// Done
console.log(res)
Expand All @@ -176,6 +199,9 @@ <h1>Genomför nedanstående betalning</h1>
})
this.sortExpensesByOwnerTotal()
})
.catch(err => {
this.error_message = err.message || 'Utbetalningen misslyckades.'
})
if (e) e.preventDefault()
},
trim(id, event) {
Expand Down