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
|
||||
show_hidden = is_admin and (request.args.get("show_hidden") in ("1", "true", "yes"))
|
||||
|
||||
# wpłaty / wydatki z filtrem ukrycia
|
||||
# Wpłaty
|
||||
wplaty = [
|
||||
{"typ": "wpłata", "kwota": w.kwota, "opis": w.opis, "data": w.data, "ukryta": getattr(w, "ukryta", False)}
|
||||
for w in zb.wplaty
|
||||
if show_hidden or not getattr(w, "ukryta", False)
|
||||
]
|
||||
|
||||
# Wydatki
|
||||
wydatki = [
|
||||
{"typ": "wydatek", "kwota": x.kwota, "opis": x.opis, "data": x.data, "ukryta": getattr(x, "ukryta", False)}
|
||||
for x in zb.wydatki
|
||||
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 = [
|
||||
{
|
||||
"typ": "przesunięcie_przych",
|
||||
@@ -388,10 +389,10 @@ def zbiorka(zbiorka_id):
|
||||
"ukryta": getattr(p, "ukryta", False)
|
||||
}
|
||||
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 = [
|
||||
{
|
||||
"typ": "przesunięcie_wych",
|
||||
@@ -403,7 +404,7 @@ def zbiorka(zbiorka_id):
|
||||
"ukryta": getattr(p, "ukryta", False)
|
||||
}
|
||||
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
|
||||
@@ -727,6 +728,7 @@ def dodaj_wplate(zbiorka_id):
|
||||
return redirect(next_url or url_for("transakcje_zbiorki", zbiorka_id=zb.id))
|
||||
return render_template("admin/dodaj_wplate.html", zbiorka=zb)
|
||||
|
||||
|
||||
@app.route("/admin/zbiorka/<int:zbiorka_id>/wplata/<int:wplata_id>/przesun", methods=["GET", "POST"])
|
||||
@login_required
|
||||
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 przesunięcia
|
||||
if opis_dodatkowy:
|
||||
opis_przesuniecia = f"Przesunięcie wpłaty: {wplata.opis or 'bez opisu'} - {opis_dodatkowy}"
|
||||
else:
|
||||
opis_przesuniecia = f"Przesunięcie wpłaty: {wplata.opis or 'bez opisu'}"
|
||||
|
||||
# Utwórz przesunięcie
|
||||
nowe_przesuniecie = Przesuniecie(
|
||||
zbiorka_zrodlo_id=zb_zrodlo.id,
|
||||
zbiorka_cel_id=zb_cel.id,
|
||||
@@ -774,13 +774,9 @@ def przesun_wplate(zbiorka_id, wplata_id):
|
||||
wplata_id=wplata.id
|
||||
)
|
||||
|
||||
# Zaktualizuj stany
|
||||
zb_zrodlo.stan = (zb_zrodlo.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
|
||||
|
||||
db.session.add(nowe_przesuniecie)
|
||||
db.session.commit()
|
||||
|
||||
@@ -789,7 +785,6 @@ def przesun_wplate(zbiorka_id, wplata_id):
|
||||
next_url = request.args.get("next")
|
||||
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()
|
||||
return render_template("admin/przesun_wplate.html",
|
||||
zbiorka=zb_zrodlo,
|
||||
@@ -797,6 +792,7 @@ def przesun_wplate(zbiorka_id, wplata_id):
|
||||
dostepne_zbiorki=dostepne_zbiorki)
|
||||
|
||||
|
||||
|
||||
@app.route("/admin/zbiorka/usun/<int:zbiorka_id>", methods=["POST"])
|
||||
@login_required
|
||||
def usun_zbiorka(zbiorka_id):
|
||||
|
||||
Reference in New Issue
Block a user