Abrechnung angepasst
This commit is contained in:
parent
746e797ac6
commit
0d31f2b7fe
|
|
@ -57,7 +57,7 @@ class AgencyBillPlan(forms.ModelForm):
|
||||||
"agency_email" : "E-Mail",
|
"agency_email" : "E-Mail",
|
||||||
"phone" : "Telefon",
|
"phone" : "Telefon",
|
||||||
"agb" : "AGB akzeptieren",
|
"agb" : "AGB akzeptieren",
|
||||||
"contract" : "Auftragsdatenverarbeitung akzeptieren"
|
"contract" : "AV-Vertrag akzeptieren"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -77,7 +77,7 @@ class AgencyBillPlan(forms.ModelForm):
|
||||||
self.fields['city'] = forms.CharField(required=True, label="Stadt")
|
self.fields['city'] = forms.CharField(required=True, label="Stadt")
|
||||||
|
|
||||||
self.fields['agb'] = forms.BooleanField(required=True, label="AGB's akzeptieren")
|
self.fields['agb'] = forms.BooleanField(required=True, label="AGB's akzeptieren")
|
||||||
self.fields['contract'] = forms.BooleanField(required=True, label="Auftragsdatenverarbeitung akzeptieren")
|
self.fields['contract'] = forms.BooleanField(required=True, label="AV-Vertrag akzeptieren")
|
||||||
|
|
||||||
|
|
||||||
class AgencyEndBillPlan(forms.ModelForm):
|
class AgencyEndBillPlan(forms.ModelForm):
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,8 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
{% loadUserCount request.user as usercount %}
|
{% loadUserCount request.user as usercount %}
|
||||||
<td>Zusätzliche Nutzer (3,00 € pro Nutzer)</td><td>{{usercount}}</td>
|
{% loadUserCountMoney request.user as usercount_pay %}
|
||||||
|
<td>{{usercount}} zusätzliche Nutzer (3,00 € pro Nutzer)</td><td>{{usercount_pay|floatformat:2}} €</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
{% loadMWST user as mwst %}
|
{% loadMWST user as mwst %}
|
||||||
|
|
@ -35,24 +36,20 @@
|
||||||
<h5 class="card-title">Ihre Zahlungsweise</h5>
|
<h5 class="card-title">Ihre Zahlungsweise</h5>
|
||||||
|
|
||||||
{% getNextMonth request.user.profile.agency as nextMonth %}
|
{% getNextMonth request.user.profile.agency as nextMonth %}
|
||||||
Ihre Agentur wurde am {{ request.user.profile.agency.registerdate|date:"d.m.Y" }} registriert.
|
|
||||||
{% if bills|length == 0 %}
|
{% if bills|length == 0 %}
|
||||||
Es wurde noch kein Abonnement gestartet und keine Rechnungen gefunden. Sie können die Digitale Agentur bis zum {{nextMonth|date:"d.m.Y"}} kostenlos nutzen. Möchten Sie die Digitale Agentur auch nach diesem Zeitraum nutzen, starten Sie bitte ein neues Abonnement.
|
Es wurde noch kein Abonnement gestartet und keine Rechnungen gefunden. Sie können die Digitale Agentur bis zum {{nextMonth|date:"d.m.Y"}} kostenlos nutzen. Möchten Sie die Digitale Agentur auch nach diesem Zeitraum nutzen, starten Sie bitte ein neues Abonnement.
|
||||||
<br />
|
<br />
|
||||||
<a href="{% url 'ag-billplanupdate' request.user.profile.agency.pk %}" class="btn btn-primary btn mt-2" onclick="">Abonnement starten</a>
|
<a href="{% url 'ag-billplanupdate' request.user.profile.agency.pk %}" class="btn btn-primary btn mt-2" onclick="">Abonnement starten</a>
|
||||||
{% elif bills|length > 0 and request.user.profile.agency.paymentplan == 0 %}
|
{% elif bills|length > 0 and request.user.profile.agency.paymentplan == 0 %}
|
||||||
Ihre aktuelle Rechnungen erlaubt Ihnen die Nutzung der digitalen Agentur bis zum {{bills.0.end|date:"d.m.Y"}}. Danach wird der Zugang gesperrt. Starten Sie ein neues Abonnement, um die digitale Agentur auch weiterhin zu nutzen.<br />
|
Ihre aktuelle Rechnungen erlaubt Ihnen die Nutzung der Digitalen Agentur bis zum {{bills.0.end|date:"d.m.Y"}}. Danach wird der Zugang gesperrt. Starten Sie ein neues Abonnement, um die Digitale Agentur auch weiterhin zu nutzen.<br />
|
||||||
<a href="{% url 'ag-billplanupdate' request.user.profile.agency.pk %}" class="btn btn-primary btn mt-2" onclick="">Abonnement starten</a>
|
<a href="{% url 'ag-billplanupdate' request.user.profile.agency.pk %}" class="btn btn-primary btn mt-2" onclick="">Abonnement starten</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<br />
|
Die Abrechnung erfolgt monatlich. Die nächste Rechnungserstellung erfolgt am {{bills.0.end|date:"d.m.Y"}}.<br />
|
||||||
Nächste Rechnungserstellung am {{bills.0.end|date:"d.m.Y"}}<br />
|
|
||||||
<a href="{% url 'ag-billplanend' request.user.profile.agency.pk %}" class="btn btn-primary btn mt-2" onclick="">Abonnement kündigen</a>
|
<a href="{% url 'ag-billplanend' request.user.profile.agency.pk %}" class="btn btn-primary btn mt-2" onclick="">Abonnement kündigen</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<hr>
|
<hr>
|
||||||
<h5 class="card-title.">Fragen, Hilfe, Kündigung</h5>
|
<h5 class="card-title.">Fragen, Hilfe, Kündigung</h5>
|
||||||
Bei Fragen zu Ihrer Abrechnung melden Sie sich bitte per E-Mail an <a href="mailto:abrechnung@digitale-agentur.com">abrechnung@digitale-agentur.com</a>.
|
Bei Fragen zu Ihrer Abrechnung oder Kündigung wenden Sie sich bitte über das <a href="{% url 'supportda' %}">Kontaktformular</a> an uns. Weitere Informationen finden Sie in den AGB's.
|
||||||
<!-- TASK: Kündigungsmodaliäten einfügen -->
|
|
||||||
Die Kündigungsmodalitäten finden Sie in den AGB's. Alternativ wenden Sie sich an den Support.
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -61,7 +58,7 @@
|
||||||
<div class="card d-block mb-3">
|
<div class="card d-block mb-3">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5 class="card-title">E-Mail-Adresse</h5>
|
<h5 class="card-title">E-Mail-Adresse</h5>
|
||||||
Informationen über neue Rechnungen werden automatisch an folgende E-Mailadresse gesendet:<br />
|
Bei neuen Rechnungen erfolgt eine automatische Benachrichtigung an folgende E-Mailadresse:<br />
|
||||||
{% if request.user.profile.agency.payment_address == None %}
|
{% if request.user.profile.agency.payment_address == None %}
|
||||||
<i>Es wurde keine Adresse hinterlegt. Die Adresse wird an die Agenturadresse versendet:</i> <b>{{request.user.profile.agency.agency_email}}</b>
|
<i>Es wurde keine Adresse hinterlegt. Die Adresse wird an die Agenturadresse versendet:</i> <b>{{request.user.profile.agency.agency_email}}</b>
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
@ -78,9 +75,26 @@
|
||||||
{% if bills|length == 0 %}
|
{% if bills|length == 0 %}
|
||||||
Es liegen keine Rechnungen vor.
|
Es liegen keine Rechnungen vor.
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% for bill in bills %}
|
<table style="width: 70%;">
|
||||||
<a href="{% url 'ag-getbillpdf' bill.pk %}" target="_blank">Rechnung vom {{bill.billdate|date:"d.m.Y"}} ({{bill.billnumber}})</a> - {% if bill.billstatus == "open" %} Offen {% elif bill.billstatus == "paid" %} Bezahlt {% endif %} <br />
|
<thead>
|
||||||
{% endfor %}
|
<tr>
|
||||||
|
<td>Rechnungs-Nr.</td>
|
||||||
|
<td>Datum</td>
|
||||||
|
<td>Status</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for bill in bills %}
|
||||||
|
<tr>
|
||||||
|
<td><a href="{% url 'ag-getbillpdf' bill.pk %}" target="_blank">{{bill.billnumber}}</a></td>
|
||||||
|
<td>{{bill.billdate|date:"d.m.Y"}}</td>
|
||||||
|
<td>
|
||||||
|
{% if bill.billstatus == "open" %} <i class="far fa-times-circle" style="color: red"></i> {% elif bill.billstatus == "paid" %} <i class="far fa-check-circle" style="color: green"></i> {% endif %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -23,14 +23,14 @@
|
||||||
<div class="col-4">
|
<div class="col-4">
|
||||||
<h5>Abonnement festlegen</h5>
|
<h5>Abonnement festlegen</h5>
|
||||||
<hr>
|
<hr>
|
||||||
<p>Das Abonnement der digitalen Agentur umfasst die Nutzung inkl. der aktuellen Nutzeranzahl über einen Monat. Nach jedem Monat wird eine neue Rechnung generiert, um die aktuelle Nutzeranzahl zu erfassen. Sie können innerhalb des Monats ihr Abonnement kündigen.
|
<p>Das Abonnement der Digitalen Agentur umfasst die Nutzung inkl. der aktuellen Nutzeranzahl und verlängert sich automatisch. Nach jedem Monat wird eine neue Rechnung erstellt. Sie können innerhalb eines Monats ihr Abonnement kündigen.
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<p>Mit Klick auf dem Button <i>Jetzt kostenpflichtig bestellen</i> wird eine Rechnung für Ihre Agentur generiert und per E-Mail an die hinterlegte Rechnungs-E-Mailadresse oder an die Agentur-E-Mailadresse versendet. Der Rechnungsbetrag muss innerhalb von 14 Tagen beglichen werden.
|
<p>Mit Klick auf dem Button <i>Jetzt kostenpflichtig bestellen</i> wird eine Rechnung für Ihre Agentur generiert und per E-Mail an die hinterlegte Rechnungs-E-Mailadresse oder an die Agentur-E-Mailadresse versendet. Der Rechnungsbetrag muss innerhalb von 14 Tagen beglichen werden.
|
||||||
<hr>
|
<hr>
|
||||||
<b>Beginn des Leistungszeitraums: </b>{{end|date:"d.m.Y"}}<br />
|
<b>Beginn des Leistungszeitraums: </b>{{end|date:"d.m.Y"}}<br />
|
||||||
{% loadFinalMoney user as fm %}
|
{% loadFinalMoney user as fm %}
|
||||||
<b>Rechnungsbetrag: <span id="billfinal">{{fm|floatformat:2|intcomma}}</span> €</b>
|
<b>Aktueller Rechnungsbetrag: <span id="billfinal">{{fm|floatformat:2|intcomma}}</span> €</b>
|
||||||
<hr>
|
<hr>
|
||||||
{{form.contract|as_crispy_field}}
|
{{form.contract|as_crispy_field}}
|
||||||
{{form.agb|as_crispy_field}}
|
{{form.agb|as_crispy_field}}
|
||||||
|
|
|
||||||
|
|
@ -1650,7 +1650,7 @@ class BillPlanUpdate(UpdateView):
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type" : "custom",
|
"type" : "custom",
|
||||||
"name" : "Digitale Agentur: Zusätzliche Mitarbeiter",
|
"name" : "Digitale Agentur: Zusätzliche Nutzer",
|
||||||
"description" : "Zeitraum " + start_date_string + " - " + end_date_string,
|
"description" : "Zeitraum " + start_date_string + " - " + end_date_string,
|
||||||
"quantity" : usercount,
|
"quantity" : usercount,
|
||||||
"unitName" : "Stück",
|
"unitName" : "Stück",
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -732,6 +732,17 @@ def loadFinalMoney(user):
|
||||||
return finalMoney
|
return finalMoney
|
||||||
|
|
||||||
|
|
||||||
|
@register.simple_tag
|
||||||
|
def loadUserCountMoney(user):
|
||||||
|
usercount = len(User.objects.filter(profile__agency=user.profile.agency))
|
||||||
|
|
||||||
|
if(usercount < 4):
|
||||||
|
usercount = 0
|
||||||
|
else:
|
||||||
|
usercount = usercount - 3
|
||||||
|
|
||||||
|
return usercount*3
|
||||||
|
|
||||||
|
|
||||||
@register.simple_tag
|
@register.simple_tag
|
||||||
def gethistoryuser(userid):
|
def gethistoryuser(userid):
|
||||||
|
|
|
||||||
|
|
@ -1171,7 +1171,7 @@ def cronactionsbill(request, code):
|
||||||
if(code == settings.CRONAPIKEY):
|
if(code == settings.CRONAPIKEY):
|
||||||
today = date.today()
|
today = date.today()
|
||||||
# Check, ob Rechnungen bezahlt wurden
|
# Check, ob Rechnungen bezahlt wurden
|
||||||
unpaid_bills = AgencyBills.objects.filter(billstatus="open")
|
unpaid_bills = AgencyBills.objects.all()
|
||||||
|
|
||||||
for bill in unpaid_bills:
|
for bill in unpaid_bills:
|
||||||
# Für jede Rechnung eine Anfrage an die LexOffice API und voucherStatus auslesen
|
# Für jede Rechnung eine Anfrage an die LexOffice API und voucherStatus auslesen
|
||||||
|
|
@ -1187,6 +1187,10 @@ def cronactionsbill(request, code):
|
||||||
if(json.loads(r.text)["voucherStatus"] == "paid"):
|
if(json.loads(r.text)["voucherStatus"] == "paid"):
|
||||||
bill.billstatus="paid"
|
bill.billstatus="paid"
|
||||||
bill.save()
|
bill.save()
|
||||||
|
else:
|
||||||
|
bill.billstatus="open"
|
||||||
|
bill.save()
|
||||||
|
|
||||||
|
|
||||||
# Monatliche Berechnung
|
# Monatliche Berechnung
|
||||||
# Alle Rechnungen laden, deren Letzter Tag HEUTE ist und bei ausgewähltem Paymentplan 1 eine neue Rechnung erstellen, Mailverschicke, Nutzeraccouns zählen und neue Rechnung in der Agentur hinterlegen
|
# Alle Rechnungen laden, deren Letzter Tag HEUTE ist und bei ausgewähltem Paymentplan 1 eine neue Rechnung erstellen, Mailverschicke, Nutzeraccouns zählen und neue Rechnung in der Agentur hinterlegen
|
||||||
|
|
@ -1253,7 +1257,7 @@ def cronactionsbill(request, code):
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type" : "custom",
|
"type" : "custom",
|
||||||
"name" : "Digitale Agentur: Zusätzliche Mitarbeiter",
|
"name" : "Digitale Agentur: Zusätzliche Nutzer",
|
||||||
"description" : "Zeitraum " + start_date_string + " - " + end_date_string,
|
"description" : "Zeitraum " + start_date_string + " - " + end_date_string,
|
||||||
"quantity" : usercount,
|
"quantity" : usercount,
|
||||||
"unitName" : "Stück",
|
"unitName" : "Stück",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue