diff --git a/include/konto.class.php b/include/konto.class.php index 09afa5303..f5de5b439 100644 --- a/include/konto.class.php +++ b/include/konto.class.php @@ -553,31 +553,38 @@ class konto extends basis_db /** * Überprüft, ob das Konto einer Person ausgeglichen ist, oder ob noch Zahlungen offen sind - * @param $person_id ID der Person, die geprüft werden soll - * @return true wenn ausgeglichen, false wenn Zahlungen offen, false mit errormsg wenn ein Fehler aufgetreten ist + * @param int $person_id ID der Person, die geprüft werden soll. + * @param bool $aktuelleBuchungenOnly True, wenn nur Zahlungen mit Buchungsdatum <= aktuelles Datum berücksichtigt werden sollen. + * @return boolean true wenn ausgeglichen, false wenn Zahlungen offen, false mit errormsg wenn ein Fehler aufgetreten ist */ - public function checkKontostand($person_id) + public function checkKontostand($person_id, $aktuelleBuchungenOnly = false) { - $qry="SELECT sum(betrag) as summe FROM public.tbl_konto WHERE person_id=".$this->db_add_param($person_id); - if($result=$this->db_query($qry)) + $qry = "SELECT sum(betrag) as summe + FROM public.tbl_konto + WHERE person_id=".$this->db_add_param($person_id); + + if($aktuelleBuchungenOnly) + $qry .= " AND buchungsdatum <= now()"; + + if ($result = $this->db_query($qry)) { - if($row=$this->db_fetch_object()) + if ($row = $this->db_fetch_object()) { - if($row->summe>=0) + if ($row->summe >= 0) return true; else return false; } else { + $this->errormsg = "Fehler beim Holen der Daten"; return false; - $this->errormsg="Fehler beim Holen der Daten"; } } else { + $this->errormsg = "Fehler bei der Datenbankabfrage"; return false; - $this->errormsg="Fehler bei der Datenbankabfrage"; } }