funkcje rezerw i przesuniec
This commit is contained in:
20
app.py
20
app.py
@@ -363,20 +363,21 @@ def zbiorka(zbiorka_id):
|
|||||||
is_admin = current_user.is_authenticated and current_user.czy_admin
|
is_admin = current_user.is_authenticated and current_user.czy_admin
|
||||||
show_hidden = is_admin and (request.args.get("show_hidden") in ("1", "true", "yes"))
|
show_hidden = is_admin and (request.args.get("show_hidden") in ("1", "true", "yes"))
|
||||||
|
|
||||||
# wpłaty / wydatki z filtrem ukrycia
|
# Wpłaty
|
||||||
wplaty = [
|
wplaty = [
|
||||||
{"typ": "wpłata", "kwota": w.kwota, "opis": w.opis, "data": w.data, "ukryta": getattr(w, "ukryta", False)}
|
{"typ": "wpłata", "kwota": w.kwota, "opis": w.opis, "data": w.data, "ukryta": getattr(w, "ukryta", False)}
|
||||||
for w in zb.wplaty
|
for w in zb.wplaty
|
||||||
if show_hidden or not getattr(w, "ukryta", False)
|
if show_hidden or not getattr(w, "ukryta", False)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# Wydatki
|
||||||
wydatki = [
|
wydatki = [
|
||||||
{"typ": "wydatek", "kwota": x.kwota, "opis": x.opis, "data": x.data, "ukryta": getattr(x, "ukryta", False)}
|
{"typ": "wydatek", "kwota": x.kwota, "opis": x.opis, "data": x.data, "ukryta": getattr(x, "ukryta", False)}
|
||||||
for x in zb.wydatki
|
for x in zb.wydatki
|
||||||
if show_hidden or not getattr(x, "ukryta", False)
|
if show_hidden or not getattr(x, "ukryta", False)
|
||||||
]
|
]
|
||||||
|
|
||||||
# Przesunięcia przychodzące
|
# Przesunięcia przychodzące - TYLKO ogólne (bez konkretnej wpłaty)
|
||||||
przesuniecia_przych = [
|
przesuniecia_przych = [
|
||||||
{
|
{
|
||||||
"typ": "przesunięcie_przych",
|
"typ": "przesunięcie_przych",
|
||||||
@@ -388,10 +389,10 @@ def zbiorka(zbiorka_id):
|
|||||||
"ukryta": getattr(p, "ukryta", False)
|
"ukryta": getattr(p, "ukryta", False)
|
||||||
}
|
}
|
||||||
for p in zb.przesuniecia_przychodzace
|
for p in zb.przesuniecia_przychodzace
|
||||||
if show_hidden or not getattr(p, "ukryta", False)
|
if (show_hidden or not getattr(p, "ukryta", False)) and p.wplata_id is None
|
||||||
]
|
]
|
||||||
|
|
||||||
# Przesunięcia wychodzące
|
# Przesunięcia wychodzące - TYLKO ogólne (bez konkretnej wpłaty)
|
||||||
przesuniecia_wych = [
|
przesuniecia_wych = [
|
||||||
{
|
{
|
||||||
"typ": "przesunięcie_wych",
|
"typ": "przesunięcie_wych",
|
||||||
@@ -403,7 +404,7 @@ def zbiorka(zbiorka_id):
|
|||||||
"ukryta": getattr(p, "ukryta", False)
|
"ukryta": getattr(p, "ukryta", False)
|
||||||
}
|
}
|
||||||
for p in zb.przesuniecia_wychodzace
|
for p in zb.przesuniecia_wychodzace
|
||||||
if show_hidden or not getattr(p, "ukryta", False)
|
if (show_hidden or not getattr(p, "ukryta", False)) and p.wplata_id is None
|
||||||
]
|
]
|
||||||
|
|
||||||
aktywnosci = wplaty + wydatki + przesuniecia_przych + przesuniecia_wych
|
aktywnosci = wplaty + wydatki + przesuniecia_przych + przesuniecia_wych
|
||||||
@@ -727,6 +728,7 @@ def dodaj_wplate(zbiorka_id):
|
|||||||
return redirect(next_url or url_for("transakcje_zbiorki", zbiorka_id=zb.id))
|
return redirect(next_url or url_for("transakcje_zbiorki", zbiorka_id=zb.id))
|
||||||
return render_template("admin/dodaj_wplate.html", zbiorka=zb)
|
return render_template("admin/dodaj_wplate.html", zbiorka=zb)
|
||||||
|
|
||||||
|
|
||||||
@app.route("/admin/zbiorka/<int:zbiorka_id>/wplata/<int:wplata_id>/przesun", methods=["GET", "POST"])
|
@app.route("/admin/zbiorka/<int:zbiorka_id>/wplata/<int:wplata_id>/przesun", methods=["GET", "POST"])
|
||||||
@login_required
|
@login_required
|
||||||
def przesun_wplate(zbiorka_id, wplata_id):
|
def przesun_wplate(zbiorka_id, wplata_id):
|
||||||
@@ -759,13 +761,11 @@ def przesun_wplate(zbiorka_id, wplata_id):
|
|||||||
|
|
||||||
opis_dodatkowy = request.form.get("opis", "").strip()
|
opis_dodatkowy = request.form.get("opis", "").strip()
|
||||||
|
|
||||||
# Opis przesunięcia
|
|
||||||
if opis_dodatkowy:
|
if opis_dodatkowy:
|
||||||
opis_przesuniecia = f"Przesunięcie wpłaty: {wplata.opis or 'bez opisu'} - {opis_dodatkowy}"
|
opis_przesuniecia = f"Przesunięcie wpłaty: {wplata.opis or 'bez opisu'} - {opis_dodatkowy}"
|
||||||
else:
|
else:
|
||||||
opis_przesuniecia = f"Przesunięcie wpłaty: {wplata.opis or 'bez opisu'}"
|
opis_przesuniecia = f"Przesunięcie wpłaty: {wplata.opis or 'bez opisu'}"
|
||||||
|
|
||||||
# Utwórz przesunięcie
|
|
||||||
nowe_przesuniecie = Przesuniecie(
|
nowe_przesuniecie = Przesuniecie(
|
||||||
zbiorka_zrodlo_id=zb_zrodlo.id,
|
zbiorka_zrodlo_id=zb_zrodlo.id,
|
||||||
zbiorka_cel_id=zb_cel.id,
|
zbiorka_cel_id=zb_cel.id,
|
||||||
@@ -774,13 +774,9 @@ def przesun_wplate(zbiorka_id, wplata_id):
|
|||||||
wplata_id=wplata.id
|
wplata_id=wplata.id
|
||||||
)
|
)
|
||||||
|
|
||||||
# Zaktualizuj stany
|
|
||||||
zb_zrodlo.stan = (zb_zrodlo.stan or Decimal("0")) - wplata.kwota
|
zb_zrodlo.stan = (zb_zrodlo.stan or Decimal("0")) - wplata.kwota
|
||||||
zb_cel.stan = (zb_cel.stan or Decimal("0")) + wplata.kwota
|
zb_cel.stan = (zb_cel.stan or Decimal("0")) + wplata.kwota
|
||||||
|
|
||||||
# Przenieś wpłatę do nowej zbiórki
|
|
||||||
wplata.zbiorka_id = zb_cel.id
|
wplata.zbiorka_id = zb_cel.id
|
||||||
|
|
||||||
db.session.add(nowe_przesuniecie)
|
db.session.add(nowe_przesuniecie)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
@@ -789,7 +785,6 @@ def przesun_wplate(zbiorka_id, wplata_id):
|
|||||||
next_url = request.args.get("next")
|
next_url = request.args.get("next")
|
||||||
return redirect(next_url or url_for("transakcje_zbiorki", zbiorka_id=zb_zrodlo.id))
|
return redirect(next_url or url_for("transakcje_zbiorki", zbiorka_id=zb_zrodlo.id))
|
||||||
|
|
||||||
# GET - wyświetl formularz
|
|
||||||
dostepne_zbiorki = Zbiorka.query.filter(Zbiorka.id != zbiorka_id).all()
|
dostepne_zbiorki = Zbiorka.query.filter(Zbiorka.id != zbiorka_id).all()
|
||||||
return render_template("admin/przesun_wplate.html",
|
return render_template("admin/przesun_wplate.html",
|
||||||
zbiorka=zb_zrodlo,
|
zbiorka=zb_zrodlo,
|
||||||
@@ -797,6 +792,7 @@ def przesun_wplate(zbiorka_id, wplata_id):
|
|||||||
dostepne_zbiorki=dostepne_zbiorki)
|
dostepne_zbiorki=dostepne_zbiorki)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@app.route("/admin/zbiorka/usun/<int:zbiorka_id>", methods=["POST"])
|
@app.route("/admin/zbiorka/usun/<int:zbiorka_id>", methods=["POST"])
|
||||||
@login_required
|
@login_required
|
||||||
def usun_zbiorka(zbiorka_id):
|
def usun_zbiorka(zbiorka_id):
|
||||||
|
|||||||
Reference in New Issue
Block a user