Skip to content
Snippets Groups Projects
  • Eric Laufer's avatar
    weitere Updates · bc971845
    Eric Laufer authored
    - classen kommen dazu
    - neue mysql verbindung
    - auflösung der functions.lib.php begonnen
    bc971845
ein_aus_zahlung.class.php 4.22 KiB
<?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);
			}
		}
	}
}