<?php require_once("lib/schnittstellen/".$_POST['id'] .".php"); class EIN_AUS_ZAHLUNG{ private $uid; private $betrag; private $pass; private $schnitt; private $m_konto; private $art; public function set_art($art){ $this->art = $art; } public function set_uid($uid){ global $error; if(!is_numeric($uid)){ $this->uid = 0; $error = 1;}else{ $this->uid = $uid;} } public function set_betrag($betrag){ global $error; if(!is_numeric($betrag)){ $this->betrag = 0; $error = 1;}else{ $this->betrag = $betrag;} } public function set_pass($pass){ $this->pass = $pass; } public function set_schnitt($id){ $this->schnitt = $id; } public function auszahlen(){ global $error; $array = $this->make_array(); $this->kontostand($array['betrag']); $this->schnitt_erlaubt(); $this->multi_konto(); $this->schnitt_kont(); if($error == 0){ $this->zahlung(); } } public function einzahlen(){ global $error; $array = $this->make_array(); $this->kontostand($array['betrag']); $this->schnitt_erlaubt(); $this->multi_konto(); $this->schnitt_kont(); if($error == 0){ $this->zahlung(); } } protected function zahlung(){ global $error,$meldung,$datenbank,$k_buchung,$trans_ausgabe; $schnitt = $datenbank->get_row("SELECT betreiber_id,betreiber_passwort,betreiber_kennung,auszahltext,einzahltext,punktewert,wertepunkt FROM ". PREFIX . SCHNITT ." WHERE schnittstelle = '$this->schnitt' ",true); if($this->art == 2){ auszahlen ($schnitt->betreiber_id,$schnitt->betreiber_passwort,$this->m_konto,$this->pass,$schnitt->betreiber_kennung,$this->betrag /= $schnitt->punktewert ,$schnitt->auszahltext,''); }else{ einzahlen($schnitt->betreiber_id,$schnitt->betreiber_passwort,$this->m_konto,$this->pass,$schnitt->betreiber_kennung,$this->betrag,$schnitt->einzahltext,''); } $datenbank->insert(PREFIX . S_ANF , array("zeit" => time(), "uid" => $this->uid, "betrag" => $this->betrag, "art" => $this->art) ); if($error == 0){ if($this->art == 2){ $k_buchung->set_var($this->uid,$this->betrag,'-',"Auszahlung"); $meldung = AUSZAHLUNG_TRUE; }else{ $k_buchung->set_var($this->uid,$this->betrag * $schnitt->wertepunkt,'+',"Einzahlung"); $meldung = EINZAHLUNG_TRUE; } }else{ $error = 1; $meldung = $trans_ausgabe; } } private function schnitt_kont(){ global $datenbank,$error,$meldung; $schnitt = $datenbank->get_row("SELECT auszahlsumme,einzahlsumme,anfragen_user FROM ". PREFIX . SCHNITT ." WHERE schnittstelle = '$this->schnitt' ",true); if($schnitt->anfragen_user != 0){ $error = 1; $meldung .= AUSZAHLUNG_ANFRAGEN_USER_FALSE;} if($this->art == 2){ if($schnitt->auszahlsumme != 0){ if($schnitt->auszahlsumme > $this->betrag){ $error = 1; $meldung .= AUSZAHLUNG_BETRAG_HIGHT;}} }else{ if($schnitt->einzahlsumme != 0){ if($schnitt->einzahlsumme > $this->betrag){ $error = 1; $meldung .= EINZAHLUNG_BETRAG_HIGHT;}} } } private function multi_konto(){ global $datenbank,$error,$meldung; $results = $datenbank->get_results("SELECT kontoid FROM ". PREFIX . MULTIK ." WHERE uid='$this->uid' AND waehrung='$this->schnitt' LIMIT 1 "); if(count((array)$results) != 1){ $error = 1; $meldung .= AUSZAHLUNG_MULTI_KONTO_FALSE; }else{ $this->m_konto = $results->{1}->kontoid; } } private function schnitt_erlaubt(){ global $datenbank,$error,$meldung; $stelle = $datenbank->get_row("SELECT aktiv_aus FROM ". PREFIX . SCHNITT ." WHERE schnittstelle = '$this->schnitt' ",true); if($stelle->aktiv_aus != 1){ $error = 1; $meldung .= AUSZAHLUNG_SCHNITT_STELLE_FALSE;} } private function kontostand($betrag){ global $datenbank,$error,$meldung; $konto = $datenbank->get_row("SELECT kontostand_a,auszahlung_sperre FROM ". PREFIX . KONTO . " WHERE uid = '$this->uid' ",true); if($konto->kontostand_a < $betrag){ $error = 1; $meldung .= AUSZAHLUNG_KONTO_FALSE;} if($konto->auszahlung_sperre == 1){ $error = 1; $meldung .= AUSZAHLUNG_SPERRE_TRUE;} } private function make_array(){ global $_POST,$datenbank; $array = array(); foreach($_POST AS $key => $value){ if($key != 'auszahlen'){ $array['key'] = $datenbank->escape($value); } } } }