-
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);
}
}
}
}