add saving button and iban/bic has no whitespace
This commit is contained in:
@@ -36,6 +36,7 @@ class BankDataAdmin(admin.ModelAdmin):
|
|||||||
"name",
|
"name",
|
||||||
"iban",
|
"iban",
|
||||||
"bic",
|
"bic",
|
||||||
|
"is_disabled",
|
||||||
]
|
]
|
||||||
|
|
||||||
ordering = ["name"]
|
ordering = ["name"]
|
||||||
|
|||||||
@@ -22,10 +22,14 @@ class BankDataForm(forms.ModelForm):
|
|||||||
|
|
||||||
|
|
||||||
class BillCreateForm(forms.ModelForm):
|
class BillCreateForm(forms.ModelForm):
|
||||||
resolution_text = forms.CharField(max_length=128)
|
# bank data
|
||||||
name_text = forms.CharField(max_length=128)
|
name_text = forms.CharField(max_length=128)
|
||||||
iban_text = forms.CharField(max_length=34)
|
iban_text = forms.CharField(max_length=34)
|
||||||
bic_text = forms.CharField(max_length=11)
|
bic_text = forms.CharField(max_length=11)
|
||||||
|
saving = forms.BooleanField()
|
||||||
|
|
||||||
|
# resolution
|
||||||
|
resolution_text = forms.CharField(max_length=128)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Bill
|
model = Bill
|
||||||
@@ -45,7 +49,6 @@ class BillCreateForm(forms.ModelForm):
|
|||||||
]
|
]
|
||||||
|
|
||||||
labels = {
|
labels = {
|
||||||
"bill_creator": "Verantwortliche:r für die Einreichung",
|
|
||||||
"date": "Rechnungsdatum",
|
"date": "Rechnungsdatum",
|
||||||
"invoice": "Rechnungsaussteller",
|
"invoice": "Rechnungsaussteller",
|
||||||
"amount": "Betrag (EUR)",
|
"amount": "Betrag (EUR)",
|
||||||
@@ -88,6 +91,7 @@ class BillCreateForm(forms.ModelForm):
|
|||||||
self.fields["name_text"].initial = bank_data.name
|
self.fields["name_text"].initial = bank_data.name
|
||||||
self.fields["iban_text"].initial = bank_data.iban
|
self.fields["iban_text"].initial = bank_data.iban
|
||||||
self.fields["bic_text"].initial = bank_data.bic
|
self.fields["bic_text"].initial = bank_data.bic
|
||||||
|
self.fields["saving"].initial = True
|
||||||
|
|
||||||
self.fields["name_text"].label = "Kontoinhaber:in"
|
self.fields["name_text"].label = "Kontoinhaber:in"
|
||||||
self.fields["name_text"].required = False
|
self.fields["name_text"].required = False
|
||||||
@@ -98,6 +102,9 @@ class BillCreateForm(forms.ModelForm):
|
|||||||
self.fields["bic_text"].label = "BIC"
|
self.fields["bic_text"].label = "BIC"
|
||||||
self.fields["bic_text"].required = False
|
self.fields["bic_text"].required = False
|
||||||
|
|
||||||
|
self.fields["saving"].label = "Bankdaten speichern."
|
||||||
|
self.fields["saving"].required = False
|
||||||
|
|
||||||
# resolution fields
|
# resolution fields
|
||||||
self.fields["resolution_text"].label = "Beschlussnummer"
|
self.fields["resolution_text"].label = "Beschlussnummer"
|
||||||
self.fields["resolution_text"].required = False
|
self.fields["resolution_text"].required = False
|
||||||
@@ -111,6 +118,7 @@ class BillCreateForm(forms.ModelForm):
|
|||||||
payer = cleaned_data.get("payer")
|
payer = cleaned_data.get("payer")
|
||||||
name = cleaned_data.get("name_text")
|
name = cleaned_data.get("name_text")
|
||||||
iban = cleaned_data.get("iban_text")
|
iban = cleaned_data.get("iban_text")
|
||||||
|
saving = cleaned_data.get("saving")
|
||||||
|
|
||||||
only_digital = cleaned_data.get("only_digital")
|
only_digital = cleaned_data.get("only_digital")
|
||||||
file_field = cleaned_data.get("file_field")
|
file_field = cleaned_data.get("file_field")
|
||||||
@@ -134,13 +142,13 @@ class BillCreateForm(forms.ModelForm):
|
|||||||
)
|
)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if payer == "M":
|
if payer == Bill.Payer.ME:
|
||||||
if name == "" or iban == "":
|
if name == "" or iban == "":
|
||||||
raise ValidationError(
|
raise ValidationError(
|
||||||
f"Bankdaten unvollständig (Kontoinhaber: {name}, IBAN: {iban})."
|
f"Bankdaten unvollständig (Kontoinhaber: {name}, IBAN: {iban})."
|
||||||
)
|
)
|
||||||
|
|
||||||
if payer == "V":
|
if payer == Bill.Payer.VEREIN or saving is not True:
|
||||||
cleaned_data["name_text"] = ""
|
cleaned_data["name_text"] = ""
|
||||||
cleaned_data["iban_text"] = ""
|
cleaned_data["iban_text"] = ""
|
||||||
cleaned_data["bic_text"] = ""
|
cleaned_data["bic_text"] = ""
|
||||||
|
|||||||
@@ -25,6 +25,13 @@ class BankData(models.Model):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.name} - {self.iban}"
|
return f"{self.name} - {self.iban}"
|
||||||
|
|
||||||
|
def clean(self):
|
||||||
|
if self.iban:
|
||||||
|
self.iban = self.iban.replace(" ", "")
|
||||||
|
|
||||||
|
if self.bic:
|
||||||
|
self.bic = self.bic.replace(" ", "")
|
||||||
|
|
||||||
|
|
||||||
class Resolution(models.Model):
|
class Resolution(models.Model):
|
||||||
id = models.CharField(
|
id = models.CharField(
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin
|
from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin
|
||||||
|
from django.db.models import Q
|
||||||
from django.shortcuts import redirect
|
from django.shortcuts import redirect
|
||||||
from django.urls import reverse, reverse_lazy
|
from django.urls import reverse, reverse_lazy
|
||||||
from django.views.generic import ListView, TemplateView
|
from django.views.generic import ListView, TemplateView
|
||||||
@@ -25,14 +26,15 @@ class BillCreateView(LoginRequiredMixin, CreateView):
|
|||||||
resolution = form.cleaned_data["resolution_text"]
|
resolution = form.cleaned_data["resolution_text"]
|
||||||
if resolution != "":
|
if resolution != "":
|
||||||
obj, created = Resolution.objects.get_or_create(
|
obj, created = Resolution.objects.get_or_create(
|
||||||
id=resolution, defaults={"name": resolution}
|
id=resolution,
|
||||||
|
defaults={"name": resolution},
|
||||||
)
|
)
|
||||||
form.instance.resolution = obj
|
form.instance.resolution = obj
|
||||||
|
|
||||||
# get or create bankdata object
|
# get or create bankdata object
|
||||||
name = form.cleaned_data["name_text"]
|
name = form.cleaned_data["name_text"]
|
||||||
iban = form.cleaned_data["iban_text"]
|
iban = form.cleaned_data["iban_text"].replace(" ", "")
|
||||||
bic = form.cleaned_data["bic_text"]
|
bic = form.cleaned_data["bic_text"].replace(" ", "")
|
||||||
if name != "" and iban != "" and bic != "":
|
if name != "" and iban != "" and bic != "":
|
||||||
obj, created = BankData.objects.get_or_create(
|
obj, created = BankData.objects.get_or_create(
|
||||||
name=name,
|
name=name,
|
||||||
@@ -42,6 +44,14 @@ class BillCreateView(LoginRequiredMixin, CreateView):
|
|||||||
)
|
)
|
||||||
form.instance.bankdata = obj
|
form.instance.bankdata = obj
|
||||||
|
|
||||||
|
# disable old bank data
|
||||||
|
qs = BankData.objects.filter(
|
||||||
|
~Q(id=obj.id)
|
||||||
|
& Q(bankdata_creator=obj.bankdata_creator)
|
||||||
|
& Q(is_disabled=False)
|
||||||
|
)
|
||||||
|
qs.update(is_disabled=True)
|
||||||
|
|
||||||
add_log_action(self.request, form, "finance", "bill", True)
|
add_log_action(self.request, form, "finance", "bill", True)
|
||||||
return super().form_valid(form)
|
return super().form_valid(form)
|
||||||
|
|
||||||
|
|||||||
@@ -29,10 +29,7 @@
|
|||||||
{% include "baseform/text.html" with field=form.bic_text %}
|
{% include "baseform/text.html" with field=form.bic_text %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-span-full">
|
<div class="col-span-full">
|
||||||
<label>
|
{% include "baseform/checkbox.html" with field=form.saving %}
|
||||||
<input type="checkbox">
|
|
||||||
<span>Bankdaten speichern.</span>
|
|
||||||
</label>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
Reference in New Issue
Block a user