def details( request ):
	params = defaults(request)
	params["MenuBetreute"] = True
	params["Betreute"] = []
	try:
		params["ID"] = request.GET.get("ID")
		B = Betreute.objects.get( id=params["ID"] )
		Sozialarbeiter = AuthUser.objects.get( id=B.sozialarbeiter )
	except:
		setsession(request, "Fehler", "Fehler beim Abrufen des Klienten")
		return HttpResponseRedirect("/Kontenverwaltung/Betreute/Liste")
	params["vorname"] = B.vorname
	params["nachname"] = B.nachname
	params["geburtstag"] = B.geburtstag
	params["startkontostand"] = currency(float(B.startkontostand))
	params["sozialarbeiter"] = Sozialarbeiter.first_name+" "+Sozialarbeiter.last_name
	Vorgaenge = []
	kontostand = float(B.startkontostand)
	Zs = Zuteilungen.objects.filter( betreuter=B.id )
	for Z in Zs:
		G = Geldeingaenge.objects.get( id=Z.geldeingang )
		Vorgaenge.append( { "datum":G.datum, "vorgang":"Zuteilung", "details":G.geldgeber, "betrag":currency(float(Z.betrag)), "link":"/Kontenverwaltung/Zuteilungen/Entfernen?ID="+str(Z.id) } )
		kontostand = kontostand + Z.betrag
	As = Auszahlungen.objects.filter( betreuter=B.id )
	for A in As:
		Vorgaenge.append( { "datum":A.datum, "vorgang":"Auszahlung", "details":"", "betrag":currency(-float(A.betrag)), "link":"/Kontenverwaltung/Auszahlungen/Entfernen?ID="+str(A.id) } )
		kontostand = kontostand - A.betrag
	Fs = Forderungen.objects.filter( schuldner=B.id )
	for F in Fs:
		Ts = Tilgungen.objects.filter( forderung=F.id )
		for T in Ts:
			Vorgaenge.append( { "datum":T.datum, "vorgang":"Tilgung", "details":F.kreditor, "betrag":currency(-float(T.betrag)), "link":"/Kontenverwaltung/Tilgungen/Entfernen?ID="+str(T.id) } )
			kontostand = kontostand - T.betrag
	params["Vorgaenge"] = sorted( Vorgaenge, key=lambda x: x['datum'] ) 
	params["Anzahl"] = len( Vorgaenge )
	params["kontostand"] = currency(kontostand)
	return render_to_response("Betreute/Details.html", params)
def liste( request ):
	setsession( request, "Schuldner", "" )
	setsession( request, "Kreditor", "" )
	setsession( request, "Gesamtforderung", "" )
	setsession( request, "Erhebungsdatum", datetime.strftime( datetime.today(), "%d.%m.%Y" ) )
	params = defaults(request)
	params["MenuForderungen"] = True
	params["Forderungen"] = []
	if params["Sekretariat"]:
		Bs = Betreute.objects.all()
	else:
		Bs = Betreute.objects.filter( sozialarbeiter=request.user.id )
	BetreuteIDs = []
	for b in Bs:
		BetreuteIDs.append( b.id )
#                kontostand = float(B.startkontostand)
#                Zs = Zuteilungen.objects.filter( betreuter=B.id )
#                for Z in Zs:
#                        kontostand = kontostand + Z.betrag
#                As = Auszahlungen.objects.filter( betreuter=B.id )
#                for A in As:
#                        kontostand = kontostand - A.betrag
#                Fs = Forderungen.objects.filter( schuldner=B.id )
#                for F in Fs:
#                        Ts = Tilgungen.objects.filter( forderung=F.id )
#                        for T in Ts:
#                                kontostand = kontostand - T.betrag
#		if kontostand < 0:
#			params["Forderungen"].append(  )
	Fs = Forderungen.objects.filter( schuldner__in=BetreuteIDs ).order_by("-erhebungsdatum")
	for F in Fs:
		Ts = Tilgungen.objects.filter( forderung=F.id ).order_by("id")
		Tz = []
		verbleibend = F.gesamtforderung
		for T in Ts:
			Tz.append( {"id":T.id, "datum":T.datum, "forderung":T.forderung, "betrag":currency(float(T.betrag))} )
			verbleibend = verbleibend - T.betrag
		if verbleibend < 0:
			params["Fehler"] = "Achtung: Es sind &uuml;bertilgte Forderungen vorhanden"
			params["Fehlerbox"] = True
		B = Betreute.objects.get( id=F.schuldner )
		params["Forderungen"].append( { "id":F.id, "schuldner":F.schuldner, "schuldnerName":B.vorname+" "+B.nachname, "kreditor":F.kreditor, "gesamtforderung":currency(float(-F.gesamtforderung)), "offeneforderung":currency(float(-verbleibend)), "erhebungsdatum":F.erhebungsdatum, "notiz":F.notiz, "tilgungen":Tz} )
	params["Anzahl"] = Fs.count()
	params["showoptions"] = True
	params["options"] = {}
	params["options"]["Eine neue Forderung eingeben"] = "Forderungen/Neu"
	return render_to_response("Forderungen/Liste.html", params)
def liste( request ):
	params = defaults(request)
	params["MenuAuszahlungen"] = True
	if params["Sekretariat"]:
		B = Betreute.objects.all()
	else:
		B = Betreute.objects.filter( sozialarbeiter=request.user.id )
	BetreuteIDs = []
	for b in B:
		BetreuteIDs.append( b.id )
	As = Auszahlungen.objects.filter( betreuter__in=BetreuteIDs ).order_by("-datum")
	params["Auszahlungen"] = []
	for A in As:
		B = Betreute.objects.get( id=A.betreuter )
		params["Auszahlungen"].append( { "id":A.id, "datum":A.datum, "betrag":currency(float(-A.betrag)), "betreuterID":A.betreuter, "betreuterName":B.vorname+" "+B.nachname } )
	params["Anzahl"] = As.count()
	params["showoptions"] = True
	params["options"] = {}
	params["options"]["Eine neue Auszahlung verbuchen"] = "Auszahlungen/Neu"
	return render_to_response("Auszahlungen/Liste.html", params)
def liste( request ):
	setsession( request, "Geldgeber", "" )
	setsession( request, "Betrag", "" )
	setsession( request, "Verwendungszweck", "" )
	params = defaults(request)
	params["MenuGeldeingaenge"] = True
	if params["Sekretariat"]:
		Gs = Geldeingaenge.objects.all().order_by("-datum")
	else:
		Gs = Geldeingaenge.objects.filter( benutzer=request.user.id ).order_by("-datum")
	params["Geldeingaenge"] = []
	for G in Gs:
		Zs = Zuteilungen.objects.filter( geldeingang=G.id ).order_by("id")
		zs = []
		verbleibend = G.betrag
		for Z in Zs:
			verbleibend = verbleibend - Z.betrag
			B = Betreute.objects.get( id=Z.betreuter )
			zs.append( { "id":Z.id, "betreuter":Z.betreuter, "betreuterName":B.vorname+" "+B.nachname, "betrag":currency(float(-Z.betrag)) } )
		params["Geldeingaenge"].append( { "id":G.id, "datum":G.datum, "geldgeber":G.geldgeber, "verwendungszweck":G.verwendungszweck, "betrag":currency(float(G.betrag)), "verbleibend":currency(float(verbleibend)), "zuteilungen":zs} )
	params["Anzahl"] = Gs.count()
	params["showoptions"] = True
	params["options"] = {}
	params["options"]["Einen neuen Geldeingang verbuchen"] = "Geldeingaenge/Neu"
	return render_to_response("Geldeingaenge/Liste.html", params)
def liste( request ):
	setsession( request, "Vorname", "" )
	setsession( request, "Nachname", "" )
	setsession( request, "Geburtstag", "" )
	setsession( request, "Startkontostand", "" )
	params = defaults(request)
	params["MenuBetreute"] = True
	params["Betreute"] = []
	if params["Sekretariat"]:
		Bs = Betreute.objects.all().order_by("nachname")
	else:
		Bs = Betreute.objects.filter( sozialarbeiter=request.user.id ).order_by("nachname")
	for B in Bs:
		kontostand = float(B.startkontostand)
		Zs = Zuteilungen.objects.filter( betreuter=B.id )
		for Z in Zs:
			kontostand = kontostand + Z.betrag
		As = Auszahlungen.objects.filter( betreuter=B.id )
		for A in As:
			kontostand = kontostand - A.betrag
		Fs = Forderungen.objects.filter( schuldner=B.id )
		for F in Fs:
			Ts = Tilgungen.objects.filter( forderung=F.id )
			for T in Ts:
				kontostand = kontostand - T.betrag
		params["Betreute"].append( { "id":B.id, "vorname":B.vorname, "nachname":B.nachname, "geburtstag":B.geburtstag, "kontostand":currency(float(kontostand)) } )
	params["Anzahl"] = Bs.count()
#	params["Sozialarbeiter"] = AuthUser.objects.all()
	params["showoptions"] = True
	params["options"] = {}
	params["options"]["Einen neuen Klienten eingeben"] = "Betreute/Neu"
#	params["options"]["Einen Betreuten aus der Liste l&ouml;schen"] = "javascript:alert('Betreuten l&ouml;schen','Um einen Betreuten zu l&ouml;schen, klicken sie in der &Uuml;bersicht auf das rote Symbol neben dem entsprechenden Betreuten');"
	return render_to_response("Betreute/Liste.html", params)