<?php if(isset($_POST['id'])){ require_once("lib/schnittstellen/".$_POST['id'] .".php"); } class ein_aus_zahlung{ private $uid; private $betrag; private $pass; private $schnitt; private $m_konto; private $art; private $db; private $session = array(); private $error = 0; private $meldung; private $array = array(); function __construct(){ global $datenbank,$_SESSION; $this->db = $datenbank; $this->session = $this->db->escape($_SESSION); } public function set_art($art){ $this->art = $art; } public function set_uid($uid){ if(!is_numeric($uid)){ $this->uid = 0; $error = 1;}else{ $this->uid = $uid;} } public function set_betrag($betrag){ if(!is_numeric($betrag)){ $this->betrag = 0; $this->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(){ $array = $this->make_array(); $this->kontostand($array['betrag']); $this->schnitt_erlaubt(); $this->multi_konto(); $this->schnitt_kont(); if($this->error == 0){ $this->zahlung(); } } public function einzahlen($post){ $array = $this->make_array($post); $this->kontostand($array['betrag']); $this->schnitt_erlaubt(); $this->multi_konto(); $this->schnitt_kont(); if($this->error == 0){ $this->zahlung(); } } protected function zahlung(){ global $k_buchung,$trans_ausgabe; $schnitt = $this->db->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,''); } $this->db->insert(PREFIX . S_ANF , array("zeit" => time(), "uid" => $this->uid, "betrag" => $this->betrag, "art" => $this->art) ); if($this->error == 0){ if($this->art == 2){ $k_buchung->set_var($this->uid,$this->betrag,'-',"Auszahlung"); $this->meldung = AUSZAHLUNG_TRUE; }else{ $k_buchung->set_var($this->uid,$this->betrag * $schnitt->wertepunkt,'+',"Einzahlung"); $this->meldung = EINZAHLUNG_TRUE; } }else{ $this->error = 1; $this->meldung = $trans_ausgabe; } meldung($this->error,$this->meldung); } private function schnitt_kont(){ $schnitt = $this->db->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){ $this->error = 1; $this->meldung .= AUSZAHLUNG_BETRAG_HIGHT;}} }else{ if($schnitt->einzahlsumme != 0){ if($schnitt->einzahlsumme > $this->betrag){ $this->error = 1; $this->meldung .= EINZAHLUNG_BETRAG_HIGHT;}} } meldung($this->error,$this->meldung); } private function multi_konto(){ $results = $this->db->get_results("SELECT kontoid FROM ". PREFIX . MULTIK ." WHERE uid='$this->uid' AND waehrung='$this->schnitt' LIMIT 1 "); if(count((array)$results) != 1){ $this->error = 1; $this->meldung .= AUSZAHLUNG_MULTI_KONTO_FALSE; }else{ $this->m_konto = $results->{1}->kontoid; } meldung($this->error,$this->meldung); } private function schnitt_erlaubt(){ $stelle = $this->db->get_row("SELECT aktiv_aus FROM ". PREFIX . SCHNITT ." WHERE schnittstelle = '$this->schnitt' ",true); if($stelle->aktiv_aus != 1){ $this->error = 1; $this->meldung .= AUSZAHLUNG_SCHNITT_STELLE_FALSE;} meldung($this->error,$this->meldung); } private function kontostand($betrag){ $konto = $this->db->get_row("SELECT kontostand_a,auszahlung_sperre FROM ". PREFIX . KONTO . " WHERE uid = '$this->uid' ",true); if($konto->kontostand_a < $betrag){ $this->error = 1; $this->meldung .= AUSZAHLUNG_KONTO_FALSE;} if($konto->auszahlung_sperre == 1){ $this->error = 1; $this->meldung .= AUSZAHLUNG_SPERRE_TRUE;} meldung($this->error,$this->meldung); } private function make_array($post){ foreach($_POST AS $key => $value){ if($key != 'auszahlen' && $key != '' && $key != 'veri'){ $this->array[$key] = $this->db->escape($value); } } } public function veri($post){ $this->make_array($post); $row = $this->db->get_row("SELECT * FROM " . PREFIX . SCHNITT . " WHERE schnittstelle='" . $this->array['schnittstelle'] . "' AND aktiv > 0 LIMIT 1",true); // User beim Betreiber prüfen $this->db->insert(PREFIX . SCHNITTA, array("zeit" => time(), "uid" => $this->session['uid'])); require_once ("lib/schnittstellen/" . $row->schnittstelle . ".php"); uservalidate($row->betreiber_id, $row->betreiber_passwort, $this->array['veri_id'], $this->array['veri_pw']); $error = $trans_ausgabe; if (!$error){ $datenbank->insert(PREFIX . MK ,array("uid" => $this->session['uid'], "kontoid" => $this->db->escape($this->array['veri_id']),"waehrung" => $this->db->escape($this->array['schnittstelle']))); meldung(0,MK_SAVE_TRUE); }else{ meldung(1,MK_SAVE_FALSE.$error); } } }