<?php

/**
 * 
 * Copyright (C) Die Randgruppe GmbH
 * 
 * http://www.randshop.com
 * http://www.dierandgruppe.com
 * 
 * Unter der Lizenz von Die Randgruppe GmbH:
 * http://www.randshop.com/Lizenz
 *  
 * $Author$
 * $Date$
 * $Revision$
 * 
 */

include_once(DATEIPFAD . "includes/functions.land.inc.php");

function CheckZahlungsartBestellstatus($BestellstatusID) {

    $SQLString = 'SELECT ';
    $SQLString .= 'COUNT(' . TABLE_ZAHLUNGSART . '.id) AS zahlungsart_anzahl ';
    $SQLString .= 'FROM ';
    $SQLString .= TABLE_ZAHLUNGSART . ' ';
    $SQLString .= 'WHERE ';
    $SQLString .= TABLE_ZAHLUNGSART . '.bestellen_status_id = \'' . $BestellstatusID . '\' ';
    
    $ZahlungsartAnzahlObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));
    
    if ($ZahlungsartAnzahlObject->zahlungsart_anzahl == 0) {
        return true;
    } else {
        return false;
    }
    
}

function GetZahlungsartEinstellungen() {
	
	$SQLString = "SELECT ";
	$SQLString .= TABLE_ALLGEMEIN . ".mp_accesskey, ";
	$SQLString .= TABLE_ALLGEMEIN . ".mp_projektname, ";
	$SQLString .= TABLE_ALLGEMEIN . ".su_userid, ";
	$SQLString .= TABLE_ALLGEMEIN . ".su_projectid, ";
	$SQLString .= TABLE_ALLGEMEIN . ".su_password, ";
	$SQLString .= TABLE_ALLGEMEIN . ".paypaladresse, ";
	$SQLString .= TABLE_ALLGEMEIN . ".status_zahlung_unbestaetigt, ";
	$SQLString .= TABLE_ALLGEMEIN . ".ppexpress_api_username, ";
	$SQLString .= TABLE_ALLGEMEIN . ".ppexpress_api_passwort, ";
	$SQLString .= TABLE_ALLGEMEIN . ".ppexpress_api_signatur, ";
	$SQLString .= TABLE_ALLGEMEIN . ".ppexpress_use_sandbox ";
	
	$SQLString .= "FROM " . TABLE_ALLGEMEIN;
	
	$ZahlungsartEinstellungenObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));

	return $ZahlungsartEinstellungenObject;
	
}

function SaveZahlungsartEinstellungen($MPAccessKey, $MPProjektName, $SUUserID, $SUProjectID, $status_zahlung_unbestaetigt, $SUPassword, $Paypal, $ppexpress_api_username, $ppexpress_api_passwort, $ppexpress_api_signatur, $ppexpress_use_sandbox) {

	$SQLString = "UPDATE " . TABLE_ALLGEMEIN . " SET ";
	$SQLString .= TABLE_ALLGEMEIN . ".mp_accesskey = '" . $MPAccessKey . "', ";
	$SQLString .= TABLE_ALLGEMEIN . ".mp_projektname = '" . $MPProjektName . "', ";
	$SQLString .= TABLE_ALLGEMEIN . ".su_userid = '" . $SUUserID . "', ";
	$SQLString .= TABLE_ALLGEMEIN . ".su_projectid = '" . $SUProjectID . "', ";
	$SQLString .= TABLE_ALLGEMEIN . ".su_password = '" . $SUPassword . "', ";
	$SQLString .= TABLE_ALLGEMEIN . ".paypaladresse = '" . $Paypal . "', ";
	$SQLString .= TABLE_ALLGEMEIN . ".status_zahlung_unbestaetigt = '" . $status_zahlung_unbestaetigt . "', ";
	$SQLString .= TABLE_ALLGEMEIN . ".ppexpress_api_username = '" . $ppexpress_api_username . "', ";
	$SQLString .= TABLE_ALLGEMEIN . ".ppexpress_api_passwort = '" . $ppexpress_api_passwort . "', ";
	$SQLString .= TABLE_ALLGEMEIN . ".ppexpress_api_signatur = '" . $ppexpress_api_signatur . "', ";
	$SQLString .= TABLE_ALLGEMEIN . ".ppexpress_use_sandbox = '" . $ppexpress_use_sandbox . "' ";
	

//	echo $SQLString;
	
	$MySQLQueryReference = errorlogged_mysql_query($SQLString);
	
}


function SaveZahlungsartGrunddaten($ZahlungsartID, $Name, $Preis, $Frei, $Versandland, $Beschreibung, $LanguageID, $ImageArray, $deleteImage, $Mailbeschreibung, $Sort, $PreisProzent) {

    // Shopeinstellungen einlesen
    $ShopeinstellungenObject = GetShopeinstellungDetail();

    // Preis und Kostenfrei     
    if ($ShopeinstellungenObject->preisformat == 1) {
        $PreisBrutto = round(($Preis / 100) * ($ShopeinstellungenObject->mwst + 100), 2);
        $PreisNetto = round($Preis, 2);
        $KostenfreiBrutto = round(($Frei / 100) * ($ShopeinstellungenObject->mwst + 100), 2);
        $KostenfreiNetto = round($Frei, 2);
    } else {
        $PreisBrutto = round($Preis, 2);
        $PreisNetto = round(($Preis / (100 + $ShopeinstellungenObject->mwst)) * 100, 2);
        $KostenfreiBrutto = round($Frei, 2);
        $KostenfreiNetto = round(($Frei / (100 + $ShopeinstellungenObject->mwst)) * 100, 2);
    }
    
    // Versandland ermitteln
    if (substr($Versandland, 0, 3) == "lg:") {
        $LaendergruppenID = substr($Versandland, 3);
        $LandID = 0;
    } else {
        $LaendergruppenID = 0;
        $LandID = $Versandland;
    }
    
    // Wenn die Zahlungsart schon vorhanden ist
    if ($ZahlungsartID) {
        
        $SQLString = "UPDATE " . TABLE_ZAHLUNGSART . " SET ";
        $SQLString .= TABLE_ZAHLUNGSART . ".preis_netto = '" . $PreisNetto . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".preis_brutto = '" . $PreisBrutto . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".frei_netto = '" . $KostenfreiNetto . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".frei_brutto = '" . $KostenfreiBrutto . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".landId = '" . $LandID . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".laendergruppeid = '" . $LaendergruppenID . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".sort = '" . $Sort . "' ";
        $SQLString .= ", " . TABLE_ZAHLUNGSART . ".preis_prozent = '" . $PreisProzent . "' ";
        $SQLString .= "WHERE ";
        $SQLString .= TABLE_ZAHLUNGSART . ".id = '" . $ZahlungsartID . "' ";
        
        $MySQLQueryReference = errorlogged_mysql_query($SQLString);

        $SQLString = "SELECT ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id ";
        $SQLString .= "FROM ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . " ";
        $SQLString .= "WHERE ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id = '" . $ZahlungsartID . "' AND ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".language_id = '" . $LanguageID . "' ";
        
        $LanguageObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));

        if ($LanguageObject) {

            $SQLString = "UPDATE " . TABLE_ZAHLUNGSART_LANGU . " SET ";
            $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".name = '" . $Name . "', ";
            $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".beschreibung = '" . mysql_real_escape_string($Beschreibung) . "', ";
            $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".mailbeschreibung = '" . mysql_real_escape_string($Mailbeschreibung) . "' ";
            $SQLString .= "WHERE ";
            $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id = '" . $ZahlungsartID . "' AND ";
            $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".language_id = '" . $LanguageID . "' ";

            $MySQLQueryReference = errorlogged_mysql_query($SQLString);
        
        } else {
            
            $SQLString = "INSERT INTO " . TABLE_ZAHLUNGSART_LANGU . " SET ";
            $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".name = '" . $Name . "', ";
            $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".beschreibung = '" . mysql_real_escape_string($Beschreibung) . "', ";
            $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".mailbeschreibung = '" . mysql_real_escape_string($Mailbeschreibung) . "', ";
            $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".language_id = '" . $LanguageID . "', ";
            $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id = '" . $ZahlungsartID . "' ";

            $MySQLQueryReference = errorlogged_mysql_query($SQLString);

        }
        
        
    } else {
        
        $SQLString = "INSERT INTO " . TABLE_ZAHLUNGSART . " SET ";
        $SQLString .= TABLE_ZAHLUNGSART . ".preis_netto = '" . $PreisNetto . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".preis_brutto = '" . $PreisBrutto . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".frei_netto = '" . $KostenfreiNetto . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".frei_brutto = '" . $KostenfreiBrutto . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".landId = '" . $LandID . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".laendergruppeid = '" . $LaendergruppenID . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".sort = '" . $Sort . "' ";
        $SQLString .= ", " . TABLE_ZAHLUNGSART . ".preis_prozent = '" . $PreisProzent . "' ";
        $MySQLQueryReference = errorlogged_mysql_query($SQLString);

        $NewZahlungsartID = mysql_insert_id();

        $SQLString = "INSERT INTO " . TABLE_ZAHLUNGSART_LANGU . " SET ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".name = '" . $Name . "', ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".beschreibung = '" . mysql_real_escape_string($Beschreibung) . "', ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".mailbeschreibung = '" . mysql_real_escape_string($Mailbeschreibung) . "', ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".language_id = '" . $LanguageID . "', ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id = '" . $NewZahlungsartID . "' ";

        $MySQLQueryReference = errorlogged_mysql_query($SQLString);

        $ZahlungsartID = $NewZahlungsartID;

    }
    
    
    if ($ImageArray["size"] > 0) {
        
        $NewImageName = "zahlungsart_" . sprintf("%05d", $ZahlungsartID);

        // altes Bild l�schen
        unlink_wc(DATEIPFAD . "images/dbimages/", $NewImageName . ".*");
    
        // tempor�re Datei kopieren
        $TempNameArray = explode(".", $ImageArray["name"]);
        $NewImageName = $NewImageName . "." . $TempNameArray[count($TempNameArray) - 1];
        copy($ImageArray["tmp_name"], DATEIPFAD . "images/dbimages/" . $NewImageName);

        // Datenbank updaten        
        $SQLString = "UPDATE " . TABLE_ZAHLUNGSART . " SET ";
        $SQLString .= TABLE_ZAHLUNGSART . ".image = '" . $NewImageName . "' ";
        $SQLString .= " WHERE " . TABLE_ZAHLUNGSART . ".id = '" . $ZahlungsartID . "'";
        
        $MySQLQueryReference = errorlogged_mysql_query($SQLString);

    }
    
    if ($deleteImage) {
        
        $NewImageName = "zahlungsart_" . sprintf("%05d", $ZahlungsartID);

        // altes Bild l�schen
        unlink_wc(DATEIPFAD . "images/dbimages/", $NewImageName . ".*");
        
        // Datenbank updaten        
        $SQLString = "UPDATE " . TABLE_ZAHLUNGSART . " SET ";
        $SQLString .= TABLE_ZAHLUNGSART . ".image = '' ";
        $SQLString .= " WHERE " . TABLE_ZAHLUNGSART . ".id = '" . $ZahlungsartID . "'";
        
        $MySQLQueryReference = errorlogged_mysql_query($SQLString);
    
    }
    
    return $ZahlungsartID;
}

function SaveZahlungsartZusatzoptionen($ZahlungsartID, $Ab, $Bankdaten, $Kreditkarte, $ArtikelDownload, $BestellStatusID, $BezahltStatus, $TrustedID, $Rabattstaffel) {

    
	// Wenn die Zahlungsart schon vorhanden ist
    if ($ZahlungsartID) {
        
        $SQLString = "UPDATE " . TABLE_ZAHLUNGSART . " SET ";
        $SQLString .= TABLE_ZAHLUNGSART . ".bankdaten = '" . $Bankdaten . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".kreditkarte = '" . $Kreditkarte . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".artikel_download = '" . $ArtikelDownload . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".ab = '" . $Ab . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".bestellen_status_id = '" . $BestellStatusID . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".trustedid = '" . $TrustedID . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".bezahlstatus = '" . $BezahltStatus . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".rabattstaffel = '" . $Rabattstaffel . "' ";
        $SQLString .= "WHERE ";
        $SQLString .= TABLE_ZAHLUNGSART . ".id = '" . $ZahlungsartID . "' ";
        
        $MySQLQueryReference = errorlogged_mysql_query($SQLString);
        
    } else {
        
        $SQLString = "INSERT INTO " . TABLE_ZAHLUNGSART . " SET ";
        $SQLString .= TABLE_ZAHLUNGSART . ".bankdaten = '" . $Bankdaten . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".kreditkarte = '" . $Kreditkarte . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".artikel_download = '" . $ArtikelDownload . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".ab = '" . $Ab . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".bestellen_status_id = '" . $BestellStatusID . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".trustedid = '" . $TrustedID . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".bezahlstatus = '" . $BezahltStatus . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".rabattstaffel = '" . $Rabattstaffel . "' ";

        $MySQLQueryReference = errorlogged_mysql_query($SQLString);

        $NewZahlungsartID = mysql_insert_id();
        
        $ZahlungsartID = $NewZahlungsartID;

    }
     
    return $ZahlungsartID;
}

function SaveZahlungsartSchnittstelle($ZahlungsartID, $Paymentsystem, $PluginPaymentInterfaceID = 0) {

    
	// Wenn die Zahlungsart schon vorhanden ist
    if ($ZahlungsartID) {
        
        $SQLString = "UPDATE " . TABLE_ZAHLUNGSART . " SET ";
        $SQLString .= TABLE_ZAHLUNGSART . ".paymentsystem = '" . $Paymentsystem . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".zahlungsschnittstelle_id = '" . $PluginPaymentInterfaceID . "' ";
        $SQLString .= "WHERE ";
        $SQLString .= TABLE_ZAHLUNGSART . ".id = '" . $ZahlungsartID . "' ";
        
        $MySQLQueryReference = errorlogged_mysql_query($SQLString);
        
    } else {
        
        $SQLString = "INSERT INTO " . TABLE_ZAHLUNGSART . " SET ";
        $SQLString .= TABLE_ZAHLUNGSART . ".paymentsystem = '" . $Paymentsystem . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".zahlungsschnittstelle_id = '" . $PluginPaymentInterfaceID . "' ";
        $MySQLQueryReference = errorlogged_mysql_query($SQLString);

        $NewZahlungsartID = mysql_insert_id();
        
        $ZahlungsartID = $NewZahlungsartID;

    }
     
    return $ZahlungsartID;
}

function SetZahlungsartBonitaetspruefungAktivStatus($ZahlungsartID, $VendorID) {

    global $lang_za_zusatztextVorlage;
    
    $StandardLanguageID = GetDefaultLanguageID();
    
	$SQLString = "UPDATE " . TABLE_ZAHLUNGSART . " SET ";
    $SQLString .= TABLE_ZAHLUNGSART . ".bonitaetspruefung_vendor_id = '" . $VendorID . "' ";
    $SQLString .= "WHERE ";
    $SQLString .= TABLE_ZAHLUNGSART . ".id = '" . $ZahlungsartID . "' ";
    
//    echo '$SQLString: ' . $SQLString . '<br>';  
    
    $MySQLQueryReference = errorlogged_mysql_query($SQLString);
    
    $SQLString = 'SELECT ';
    $SQLString .= TABLE_ZAHLUNGSART_LANGU . '.bonitaetspruefung_zusatztext ';
    $SQLString .= 'FROM ';
    $SQLString .= TABLE_ZAHLUNGSART_LANGU . ' ';
    $SQLString .= 'WHERE ';
    $SQLString .= TABLE_ZAHLUNGSART_LANGU . '.zahlungsart_id = \'' . $ZahlungsartID . '\' ';
    
    $ZahlungsartLanguageObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));
    
    if ($ZahlungsartLanguageObject->bonitaetspruefung_zusatztext == '') {
    
        $SQLString = "UPDATE " . TABLE_ZAHLUNGSART_LANGU . " SET ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".bonitaetspruefung_zusatztext = '" . $lang_za_zusatztextVorlage . "' ";
        $SQLString .= "WHERE ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id = '" . $ZahlungsartID . "' AND ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".language_id = '" . $StandardLanguageID . "' ";
        
        $MySQLQueryReference = errorlogged_mysql_query($SQLString);

    }
    
}

function SaveZahlungsartBonitaetspruefung($ZahlungsartID, $Score, $LanguageID, $Zusatztext, $Ablehnungstext) {

    $SQLString = "UPDATE " . TABLE_ZAHLUNGSART . " SET ";
    $SQLString .= TABLE_ZAHLUNGSART . ".bonitaetspruefung_score = '" . $Score . "' ";
    $SQLString .= "WHERE ";
    $SQLString .= TABLE_ZAHLUNGSART . ".id = '" . $ZahlungsartID . "' ";
    
    $MySQLQueryReference = errorlogged_mysql_query($SQLString);

    $SQLString = "SELECT ";
    $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id ";
    $SQLString .= "FROM ";
    $SQLString .= TABLE_ZAHLUNGSART_LANGU . " ";
    $SQLString .= "WHERE ";
    $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id = '" . $ZahlungsartID . "' AND ";
    $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".language_id = '" . $LanguageID . "' ";
    
    $LanguageObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));

    if ($LanguageObject) {

        $SQLString = "UPDATE " . TABLE_ZAHLUNGSART_LANGU . " SET ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".bonitaetspruefung_zusatztext = '" . addslashes($Zusatztext) . "', ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".bonitaetspruefung_ablehnungstext = '" . addslashes($Ablehnungstext) . "' ";
        $SQLString .= "WHERE ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id = '" . $ZahlungsartID . "' AND ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".language_id = '" . $LanguageID . "' ";

        $MySQLQueryReference = errorlogged_mysql_query($SQLString);
    
    } else {
        
        $SQLString = "INSERT INTO " . TABLE_ZAHLUNGSART_LANGU . " SET ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".bonitaetspruefung_zusatztext = '" . addslashes($Zusatztext) . "', ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".bonitaetspruefung_ablehnungstext = '" . addslashes($Ablehnungstext) . "', ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".language_id = '" . $LanguageID . "', ";
        $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id = '" . $ZahlungsartID . "' ";

        $MySQLQueryReference = errorlogged_mysql_query($SQLString);

    }
    
}
	
function SaveZahlungsart($ZahlungsartID, $Name, $Paymentsystem, $Preis, $Frei, $Versandland, $Ab, $Bankdaten, $Kreditkarte, $ArtikelDownload, $Beschreibung, $LanguageID, $BestellStatusID, $BezahltStatus, $ImageArray, $deleteImage, $Mailbeschreibung, $Sort, $TrustedID, $Rabattstaffel) {

	// Shopeinstellungen einlesen
	$ShopeinstellungenObject = GetShopeinstellungDetail();

	// Preis und Kostenfrei		
	if ($ShopeinstellungenObject->preisformat == 1) {
		$PreisBrutto = round(($Preis / 100) * ($ShopeinstellungenObject->mwst + 100), 2);
		$PreisNetto = round($Preis, 2);
		$KostenfreiBrutto = round(($Frei / 100) * ($ShopeinstellungenObject->mwst + 100), 2);
		$KostenfreiNetto = round($Frei, 2);
	} else {
		$PreisBrutto = round($Preis, 2);
		$PreisNetto = round(($Preis / (100 + $ShopeinstellungenObject->mwst)) * 100, 2);
		$KostenfreiBrutto = round($Frei, 2);
		$KostenfreiNetto = round(($Frei / (100 + $ShopeinstellungenObject->mwst)) * 100, 2);
	}
	
	// Versandland ermitteln
	if (substr($Versandland, 0, 3) == "lg:") {
		$LaendergruppenID = substr($Versandland, 3);
		$LandID = 0;
	} else {
		$LaendergruppenID = 0;
		$LandID = $Versandland;
	}
	
	// Wenn die Zahlungsart schon vorhanden ist
	if ($ZahlungsartID) {
		
		$SQLString = "UPDATE " . TABLE_ZAHLUNGSART . " SET ";
		$SQLString .= TABLE_ZAHLUNGSART . ".preis_netto = '" . $PreisNetto . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".preis_brutto = '" . $PreisBrutto . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".frei_netto = '" . $KostenfreiNetto . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".frei_brutto = '" . $KostenfreiBrutto . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".bankdaten = '" . $Bankdaten . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".kreditkarte = '" . $Kreditkarte . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".artikel_download = '" . $ArtikelDownload . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".paymentsystem = '" . $Paymentsystem . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".ab = '" . $Ab . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".landId = '" . $LandID . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".laendergruppeid = '" . $LaendergruppenID . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".bestellen_status_id = '" . $BestellStatusID . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".sort = '" . $Sort . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".trustedid = '" . $TrustedID . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".bezahlstatus = '" . $BezahltStatus . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".rabattstaffel = '" . $Rabattstaffel . "' ";
		$SQLString .= "WHERE ";
		$SQLString .= TABLE_ZAHLUNGSART . ".id = '" . $ZahlungsartID . "' ";
		
		$MySQLQueryReference = errorlogged_mysql_query($SQLString);

		$SQLString = "SELECT ";
		$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id ";
		$SQLString .= "FROM ";
		$SQLString .= TABLE_ZAHLUNGSART_LANGU . " ";
		$SQLString .= "WHERE ";
		$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id = '" . $ZahlungsartID . "' AND ";
		$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".language_id = '" . $LanguageID . "' ";
		
		$LanguageObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));

		if ($LanguageObject) {

			$SQLString = "UPDATE " . TABLE_ZAHLUNGSART_LANGU . " SET ";
			$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".name = '" . mysql_real_escape_string($Name) . "', ";
			$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".beschreibung = '" . mysql_real_escape_string($Beschreibung) . "', ";
			$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".mailbeschreibung = '" . mysql_real_escape_string($Mailbeschreibung) . "' ";
			$SQLString .= "WHERE ";
			$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id = '" . $ZahlungsartID . "' AND ";
			$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".language_id = '" . $LanguageID . "' ";

			$MySQLQueryReference = errorlogged_mysql_query($SQLString);
		
		} else {
			
			$SQLString = "INSERT INTO " . TABLE_ZAHLUNGSART_LANGU . " SET ";
			$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".name = '" . mysql_real_escape_string($Name) . "', ";
			$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".beschreibung = '" . mysql_real_escape_string($Beschreibung) . "', ";
			$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".mailbeschreibung = '" . mysql_real_escape_string($Mailbeschreibung) . "', ";
			$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".language_id = '" . $LanguageID . "', ";
			$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id = '" . $ZahlungsartID . "' ";

			$MySQLQueryReference = errorlogged_mysql_query($SQLString);

		}
		
		
	} else {
		
		$SQLString = "INSERT INTO " . TABLE_ZAHLUNGSART . " SET ";
		$SQLString .= TABLE_ZAHLUNGSART . ".preis_netto = '" . $PreisNetto . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".preis_brutto = '" . $PreisBrutto . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".frei_netto = '" . $KostenfreiNetto . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".frei_brutto = '" . $KostenfreiBrutto . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".bankdaten = '" . $Bankdaten . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".kreditkarte = '" . $Kreditkarte . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".artikel_download = '" . $ArtikelDownload . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".paymentsystem = '" . $Paymentsystem . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".ab = '" . $Ab . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".landId = '" . $LandID . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".laendergruppeid = '" . $LaendergruppenID . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".bestellen_status_id = '" . $BestellStatusID . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".sort = '" . $Sort . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".trustedid = '" . $TrustedID . "', ";
		$SQLString .= TABLE_ZAHLUNGSART . ".bezahlstatus = '" . $BezahltStatus . "', ";
        $SQLString .= TABLE_ZAHLUNGSART . ".rabattstaffel = '" . $Rabattstaffel . "' ";
		$MySQLQueryReference = errorlogged_mysql_query($SQLString);

		$NewZahlungsartID = mysql_insert_id();

		$SQLString = "INSERT INTO " . TABLE_ZAHLUNGSART_LANGU . " SET ";
		$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".name = '" . mysql_real_escape_string($Name) . "', ";
		$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".beschreibung = '" . mysql_real_escape_string($Beschreibung) . "', ";
		$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".mailbeschreibung = '" . mysql_real_escape_string($Mailbeschreibung) . "', ";
		$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".language_id = '" . $LanguageID . "', ";
		$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id = '" . $NewZahlungsartID . "' ";

		$MySQLQueryReference = errorlogged_mysql_query($SQLString);

		$ZahlungsartID = $NewZahlungsartID;

	}
	
	
	if ($ImageArray["size"] > 0) {
		
		$NewImageName = "zahlungsart_" . sprintf("%05d", $ZahlungsartID);

		// altes Bild l�schen
		unlink_wc(DATEIPFAD . "images/dbimages/", $NewImageName . ".*");
	
		// tempor�re Datei kopieren
		$TempNameArray = explode(".", $ImageArray["name"]);
		$NewImageName = $NewImageName . "." . $TempNameArray[count($TempNameArray) - 1];
		copy($ImageArray["tmp_name"], DATEIPFAD . "images/dbimages/" . $NewImageName);

		// Datenbank updaten		
		$SQLString = "UPDATE " . TABLE_ZAHLUNGSART . " SET ";
		$SQLString .= TABLE_ZAHLUNGSART . ".image = '" . $NewImageName . "' ";
		$SQLString .= " WHERE " . TABLE_ZAHLUNGSART . ".id = '" . $ZahlungsartID . "'";
		
		$MySQLQueryReference = errorlogged_mysql_query($SQLString);

	}
	
	if ($deleteImage) {
		
		$NewImageName = "zahlungsart_" . sprintf("%05d", $ZahlungsartID);

		// altes Bild l�schen
		unlink_wc(DATEIPFAD . "images/dbimages/", $NewImageName . ".*");
		
		// Datenbank updaten		
		$SQLString = "UPDATE " . TABLE_ZAHLUNGSART . " SET ";
		$SQLString .= TABLE_ZAHLUNGSART . ".image = '' ";
		$SQLString .= " WHERE " . TABLE_ZAHLUNGSART . ".id = '" . $ZahlungsartID . "'";
		
		$MySQLQueryReference = errorlogged_mysql_query($SQLString);
	
	}
	
	return $ZahlungsartID;
}

function DeleteZahlungsart($ZahlungsartID) {
	
	$SQLString = "DELETE FROM ";
	$SQLString .= TABLE_ZAHLUNGSART . " ";
	$SQLString .= "WHERE ";
	$SQLString .= TABLE_ZAHLUNGSART . ".id = '" . $ZahlungsartID . "' ";
	
	$MySQLQuery = errorlogged_mysql_query($SQLString);
	
	$SQLString = "DELETE FROM ";
	$SQLString .= TABLE_ZAHLUNGSART_LANGU . " ";
	$SQLString .= "WHERE ";
	$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id = '" . $ZahlungsartID . "' ";
	
	$MySQLQuery = errorlogged_mysql_query($SQLString);
	
    $SQLString = "DELETE FROM ";
    $SQLString .= TABLE_KUNDENGRUPPENVERSANDARTEN . " ";
    $SQLString .= "WHERE ";
    $SQLString .= TABLE_KUNDENGRUPPENVERSANDARTEN . ".versandartenid  = '" . $ZahlungsartID . "' ";
    
    $MySQLQuery = errorlogged_mysql_query($SQLString);

}

function CheckZahlungsart($ZahlungsartID, $LandID, $KundengruppenID) {

	// L�ndergruppen des Landes ermitteln
	$SQLString = "SELECT * FROM " . TABLE_LAENDERGRUPPERELATION . " ";
	$SQLString .= "WHERE " . TABLE_LAENDERGRUPPERELATION . ".landid = '" . $LandID . "'";
	
	$MySQLQuery = errorlogged_mysql_query($SQLString);
	
	while ($LaendergruppenRow = mysql_fetch_array($MySQLQuery)) {
		$LaendergruppenArray[] = $LaendergruppenRow["laendergruppeid"];
	}
	
	// �berpr�fen, ob eine L�ndergruppe dabei ist, f�r die alle Zahlungsarten zul�ssig sind
	$SQLString = "SELECT * FROM " . TABLE_LAENDERGRUPPE . " ";
	$SQLString .= "WHERE " . TABLE_LAENDERGRUPPE . ".allelaender = '1'";
		
	$MySQLQuery = errorlogged_mysql_query($SQLString);
	
	while ($LaendergruppenRow = mysql_fetch_array($MySQLQuery)) {
		$LaendergruppenArray[] = $LaendergruppenRow["id"];
	}
	
	// auf Basis der Kundengruppe alle erlaubten Zahlungsarten ermitteln
	$SQLString = "SELECT * FROM " . TABLE_KUNDENGRUPPEN . " ";
	$SQLString .= "WHERE " . TABLE_KUNDENGRUPPEN . ".id = '" . $KundengruppenID . "'";
	
	$KundengruppenObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));
	
	if ($KundengruppenObject) {

		$SQLString = "SELECT * FROM " . TABLE_KUNDENGRUPPENVERSANDARTEN . " ";
		$SQLString .= "WHERE " . TABLE_KUNDENGRUPPENVERSANDARTEN . ".kundengruppenid = '" . $KundengruppenID . "'";
		
		$MySQLQuery = errorlogged_mysql_query($SQLString);
		
		while ($ZahlungsartenRow = mysql_fetch_array($MySQLQuery)) {
			$ZahlungsartenArray[] = $ZahlungsartenRow["versandartenid"];
		}
		
	}
	
	// Abfrage der Zahlungsart
	$SQLString = "SELECT * FROM " . TABLE_ZAHLUNGSART . " ";
	$SQLString .= "WHERE " . TABLE_ZAHLUNGSART . ".id = '" . $ZahlungsartID . "' AND ";
	$SQLString .= "(" . TABLE_ZAHLUNGSART . ".landid = '" . $LandID . "'";

	if ($LaendergruppenArray) {
		$SQLString .= " OR " . TABLE_ZAHLUNGSART . ".laendergruppeid IN (" . implode( ",", $LaendergruppenArray) . ")";
	}
	
	$SQLString .= ")";

	if ($ZahlungsartenArray) {
		$SQLString .= " AND " . TABLE_ZAHLUNGSART . ".id IN (" . implode( ",", $ZahlungsartenArray) . ")";
	}

	$ZahlungsartObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));
	
	if ($ZahlungsartObject) {
		return true;
	} else {
		return false;	
	}
	
}

function SetZahlungsartOnlinestatus($ZahlungsartID) {

	// aktuellen Onlinestatus ermitteln
	$ZahlungsartObject = GetZahlungsartDetail($ZahlungsartID);

	// neuen Onlinestatus ermitteln
	if ($ZahlungsartObject->aktiv == 1) {
		$NewOnlinestatus = 0;
	} else {
		$NewOnlinestatus = 1;
	}

	// neuen Onlinestatus setzen
	$SQLString = "UPDATE " . TABLE_ZAHLUNGSART . " SET ";
	$SQLString .= TABLE_ZAHLUNGSART . ".aktiv = '" . $NewOnlinestatus . "' ";
	$SQLString .= "WHERE " . TABLE_ZAHLUNGSART . ".id = '" . $ZahlungsartID . "'";

	$MySQLQuerryReferenz = errorlogged_mysql_query($SQLString);

}

function GetZahlungsartList($LanguageID = 0) {

	// Sprache ermitteln
	if (!$LanguageID) {
		$LanguageID = GetDefaultLanguageID();
	}
	
	$StandardLanguageID = GetDefaultLanguageID();

	// SQL-String für die Zahlungsarten zusammensetzen
	$SQLString = "SELECT ";
	$SQLString .= TABLE_ZAHLUNGSART . ".id, ";
	$SQLString .= "IFNULL(" . TABLE_ZAHLUNGSART_LANGU . ".name, table_zahlungsart_langu_standard.name) AS name, ";
	$SQLString .= "!ISNULL(" . TABLE_ZAHLUNGSART_LANGU . ".name) AS translate_name, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".aktiv, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".preis_netto, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".preis_brutto, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".frei_netto, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".frei_brutto, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".landId, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".ab, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".laendergruppeid, ";
	$SQLString .= TABLE_LAND_LANGU . ".name AS landname, ";
	$SQLString .= TABLE_LAENDERGRUPPE . ".name AS laendergruppename ";
	$SQLString .= "FROM " . TABLE_ZAHLUNGSART . " ";
	$SQLString .= "LEFT JOIN " . TABLE_LAND . " ON " . TABLE_ZAHLUNGSART . ".landid = " . TABLE_LAND . ".id ";
	$SQLString .= "LEFT JOIN " . TABLE_LAND_LANGU . " ON ((" . TABLE_LAND . ".id = " . TABLE_LAND_LANGU . ".land_id) AND (" . TABLE_LAND_LANGU . ".language_id = " . $LanguageID . ")) ";
	$SQLString .= "LEFT JOIN " . TABLE_ZAHLUNGSART_LANGU . " ON ((" . TABLE_ZAHLUNGSART . ".id = " . TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id) AND (" . TABLE_ZAHLUNGSART_LANGU . ".language_id = " . $LanguageID . ")) ";
	$SQLString .= "LEFT JOIN " . TABLE_ZAHLUNGSART_LANGU . " table_zahlungsart_langu_standard ON ((" . TABLE_ZAHLUNGSART . ".id = table_zahlungsart_langu_standard.zahlungsart_id) AND (table_zahlungsart_langu_standard.language_id = " . $StandardLanguageID . ")) ";
	$SQLString .= "LEFT JOIN " . TABLE_LAENDERGRUPPE . " ON " . TABLE_ZAHLUNGSART . ".laendergruppeid = " . TABLE_LAENDERGRUPPE . ".id ";
	$SQLString .= " ORDER BY " . TABLE_ZAHLUNGSART . ".sort ASC";
	
//	echo $SQLString;
	
	// Zahlungsarten abfragen
	$MySQLQueryReference = errorlogged_mysql_query($SQLString);
	$ZahlungsartCounter = 0;
	
	while ($ZahlungsartRow = mysql_fetch_array($MySQLQueryReference)) {

		$ZahlungsartArray[$ZahlungsartCounter]["id"] = $ZahlungsartRow["id"];
		$ZahlungsartArray[$ZahlungsartCounter]["name"] = $ZahlungsartRow["name"];
		$ZahlungsartArray[$ZahlungsartCounter]["translate_name"] = $ZahlungsartRow["translate_name"];
		$ZahlungsartArray[$ZahlungsartCounter]["preis_netto"] = $ZahlungsartRow["preis_netto"];
		$ZahlungsartArray[$ZahlungsartCounter]["preis_brutto"] = $ZahlungsartRow["preis_brutto"];
		$ZahlungsartArray[$ZahlungsartCounter]["frei_netto"] = $ZahlungsartRow["frei_netto"];
		$ZahlungsartArray[$ZahlungsartCounter]["frei_brutto"] = $ZahlungsartRow["frei_brutto"];
		$ZahlungsartArray[$ZahlungsartCounter]["landId"] = $ZahlungsartRow["landId"];
		$ZahlungsartArray[$ZahlungsartCounter]["laendergruppeid"] = $ZahlungsartRow["laendergruppeid"];
		$ZahlungsartArray[$ZahlungsartCounter]["ab"] = $ZahlungsartRow["ab"];
		$ZahlungsartArray[$ZahlungsartCounter]["landname"] = $ZahlungsartRow["landname"];
		$ZahlungsartArray[$ZahlungsartCounter]["laendergruppename"] = $ZahlungsartRow["laendergruppename"];
		$ZahlungsartArray[$ZahlungsartCounter]["languagearray"] = GetZahlungsartLanguageDataArray($ZahlungsartRow["id"]);
		
		// Aktivimage
		if ($ZahlungsartRow["aktiv"]) {
			$ZahlungsartArray[$ZahlungsartCounter]["aktiv_imagestring"] = "<img src=\"../images/on.gif\" width=\"20\" height=\"12\" border=\"0\">";
		} else {
			$ZahlungsartArray[$ZahlungsartCounter]["aktiv_imagestring"] = "<img src=\"../images/off.gif\" width=\"21\" height=\"12\" border=\"0\">";
		}

		$ZahlungsartCounter++;

	}
	
	return $ZahlungsartArray;
	
}

function GetZahlungsartLanguageDataArray($ZahlungsartID) {
	
	// Sprachen Abfragen
	$SQLString = "SELECT ";
	$SQLString .= TABLE_LANGUAGE . ".language_id, ";
	$SQLString .= "IF(ISNULL(" . TABLE_ZAHLUNGSART_LANGU . ".name), " . TABLE_LANGUAGE . ".language_image_admintool_inactive, " . TABLE_LANGUAGE . ".language_image_admintool_active) AS language_image_admintool, ";
	$SQLString .= "IF(ISNULL(" . TABLE_ZAHLUNGSART_LANGU . ".name), " . TABLE_LANGUAGE . ".language_image_admintool_inactive_width, " . TABLE_LANGUAGE . ".language_image_admintool_active_width) AS language_image_admintool_width, ";
	$SQLString .= "IF(ISNULL(" . TABLE_ZAHLUNGSART_LANGU . ".name), " . TABLE_LANGUAGE . ".language_image_admintool_inactive_height, " . TABLE_LANGUAGE . ".language_image_admintool_active_height) AS language_image_admintool_height ";
	$SQLString .= "FROM ";
	$SQLString .= TABLE_LANGUAGE . " ";
	$SQLString .= "LEFT JOIN " . TABLE_ZAHLUNGSART_LANGU . " ON ((" . TABLE_LANGUAGE . ".language_id = " . TABLE_ZAHLUNGSART_LANGU . ".language_id) AND (" . TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id = '" . $ZahlungsartID . "')) ";
	
	$MySQLQueryReference = errorlogged_mysql_query($SQLString);
	
	$LanguageCounter = 0;
	
	while ($ZahlungsartLanguageRow = mysql_fetch_array($MySQLQueryReference)) {
		$ZahlungsartLanguageDataArray[$LanguageCounter]["language_image_admintool_imagestring"] = "<img src=\"" . IMAGEPFAD . "dbimages/" . $ZahlungsartLanguageRow["language_image_admintool"] . "\" width=\"" . $ZahlungsartLanguageRow["language_image_admintool_width"] . "\" height=\"" . $ZahlungsartLanguageRow["language_image_admintool_height"] . "\" border=\"0\">";
		$ZahlungsartLanguageDataArray[$LanguageCounter]["language_id"] = $ZahlungsartLanguageRow["language_id"];
		$LanguageCounter++;
	}
	
	return $ZahlungsartLanguageDataArray;

}

function GetZahlungsartBonitaetspruefung($ZahlungsartID) {
    
    // Daten zu der Zahlungsart abfragen
    $ZahlungartObject = GetZahlungsartDetail($ZahlungsartID);
    
    return $ZahlungartObject->bonitaetspruefung_vendor_id;

}


function GetZahlungsartBankdaten($ZahlungsartID) {
    
	// Daten zu der Zahlungsart abfragen
	if(!$LanguageID) {
		$LanguageID = GetDefaultLanguageID();
	}

	$ZahlungartObject = GetZahlungsartDetail($ZahlungsartID,"","",$LanguageID);
	
	return $ZahlungartObject->bankdaten;

}

function GetZahlungsartKreditdaten($ZahlungsartID) {
	// Daten zu der Zahlungsart abfragen
	$ZahlungartObject = GetZahlungsartDetail($ZahlungsartID);
	
	return $ZahlungartObject->kreditkarte;
}

function GetZahlungsartDetail($ZahlungsartID, $Email = "", $GesamtSumme = "", $LanguageID = 0, $GesamtSummeNetto = false, $GesamtSummeBrutto = false) {

	// Sprache ermitteln
	if (!$LanguageID) {
		$LanguageID = GetDefaultLanguageID();
	}

	// Währung einlesen
	$WaehrungsObject = GetWaehrungDetail();

	$StandardLanguageID = GetDefaultLanguageID();

	// SQL-String für die Zahlungsartabfrage zusammensetzen
	$SQLString = "SELECT ";
	$SQLString .= TABLE_ZAHLUNGSART . ".id, ";
	$SQLString .= "table_zahlungsart_langu_standard.name AS standard_name, ";
	$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".name, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".preis_netto, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".preis_brutto, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".frei_netto, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".frei_brutto, ";
	$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".beschreibung, ";
	$SQLString .= "table_zahlungsart_langu_standard.beschreibung AS standard_beschreibung, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".bankdaten, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".kreditkarte, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".aktiv, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".paymentsystem, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".landId, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".laendergruppeid, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".paymentsystem, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".artikel_download, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".ab, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".bestellen_status_id, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".image, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".sort, ";
	$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".mailbeschreibung, ";
	$SQLString .= "table_zahlungsart_langu_standard.mailbeschreibung AS standard_mailbeschreibung, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".bonitaetspruefung_score, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".bonitaetspruefung_vendor_id, ";
	$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".bonitaetspruefung_zusatztext, ";
	$SQLString .= "table_zahlungsart_langu_standard.bonitaetspruefung_zusatztext AS standard_bonitaetspruefung_zusatztext, ";
	$SQLString .= TABLE_ZAHLUNGSART_LANGU . ".bonitaetspruefung_ablehnungstext, ";
    $SQLString .= "table_zahlungsart_langu_standard.bonitaetspruefung_ablehnungstext AS standard_bonitaetspruefung_ablehnungstext, ";
    $SQLString .= TABLE_ZAHLUNGSART . ".trustedid, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".bezahlstatus, ";
    $SQLString .= TABLE_ZAHLUNGSART . ".rabattstaffel, ";
    $SQLString .= TABLE_ZAHLUNGSART . ".zahlungsschnittstelle_id ";
    $SQLString .= ", " . TABLE_ZAHLUNGSART . ".preis_prozent ";
    $SQLString .= "FROM ";
	$SQLString .= TABLE_ZAHLUNGSART . " ";
	$SQLString .= "LEFT JOIN " . TABLE_ZAHLUNGSART_LANGU . " ON ((" . TABLE_ZAHLUNGSART . ".id = " . TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id) AND (" . TABLE_ZAHLUNGSART_LANGU . ".language_id = " . $LanguageID . ")) ";
	$SQLString .= "LEFT JOIN " . TABLE_ZAHLUNGSART_LANGU . " table_zahlungsart_langu_standard ON ((" . TABLE_ZAHLUNGSART . ".id = table_zahlungsart_langu_standard.zahlungsart_id) AND (table_zahlungsart_langu_standard.language_id = " . $StandardLanguageID . ")) ";
	$SQLString .= "WHERE ";
	$SQLString .= TABLE_ZAHLUNGSART . ".id = '" . $ZahlungsartID . "'";
	
	// Zahlungsart abfragen
	$ZahlungsartObject = mysql_fetch_object(errorlogged_mysql_query($SQLString));
	
	if($ZahlungsartObject == NULL) 
		return NULL;
	
	// Abfrage des Preise
	$KundengruppenObject = GetKundengruppenDetail("", $Email);
		
	if ($KundengruppenObject->type == 1) {
		
		if ($ZahlungsartObject->frei_brutto > 0.0 && $GesamtSumme > $ZahlungsartObject->frei_brutto) {
			$ZahlungsartObject->preis = 0;
			$ZahlungsartObject->preis_format = number_format($ZahlungsartObject->preis, 2, ",", ".") . " " . $WaehrungsObject->symbol;
		} else {

			$ZahlungsartObject->preis = $ZahlungsartObject->preis_brutto + $GesamtSumme * $ZahlungsartObject->preis_prozent / 100;
			$ZahlungsartObject->preis_format = number_format($ZahlungsartObject->preis, 2, ",", ".") . " " . $WaehrungsObject->symbol;
            if($GesamtSummeBrutto) {
                $ZahlungsartObject->preis_brutto = $ZahlungsartObject->preis_brutto + $GesamtSummeBrutto * $ZahlungsartObject->preis_prozent / 100;
            }
            if($GesamtSummeNetto) {
                $ZahlungsartObject->preis_netto = $ZahlungsartObject->preis_netto + $GesamtSummeNetto * $ZahlungsartObject->preis_prozent / 100;
            }
		}
		
	} else {
		
		if ($ZahlungsartObject->frei_netto > 0.0 && $GesamtSumme > $ZahlungsartObject->frei_netto) {
			$ZahlungsartObject->preis = 0;
			$ZahlungsartObject->preis_format = number_format($ZahlungsartObject->preis, 2, ",", ".") . " " . $WaehrungsObject->symbol;
		} else {
			$ZahlungsartObject->preis = $ZahlungsartObject->preis_netto + $GesamtSumme * $ZahlungsartObject->preis_prozent / 100;
			$ZahlungsartObject->preis_format = number_format($ZahlungsartObject->preis, 2, ",", ".") . " " . $WaehrungsObject->symbol;
            if($GesamtSummeBrutto) {
                $ZahlungsartObject->preis_brutto = $ZahlungsartObject->preis_brutto + $GesamtSummeBrutto * $ZahlungsartObject->preis_prozent / 100;
            }
            if($GesamtSummeNetto) {
                $ZahlungsartObject->preis_netto = $ZahlungsartObject->preis_netto + $GesamtSummeNetto * $ZahlungsartObject->preis_prozent / 100;
            }

        }

	}

	if ($ZahlungsartObject->image && file_exists(DATEIPFAD . "/images/dbimages/" . $ZahlungsartObject->image)) {
		$ZahlungsartObject->image_imagestring = "<img src=\"" . URLPFAD . "/images/dbimages/" . $ZahlungsartObject->image . "\" alt=\"" . $ZahlungsartObject->name . "\" />";
	}
	return $ZahlungsartObject;

}

function GetKundenZahlungsartList($Email, $ArtikelDownload="", $LanguageID = 0, $Bestellsumme = 0, $KundenID = 0, $nurAktive = true) {

	// Sprache ermitteln
	if (!$LanguageID) {
		$LanguageID = GetDefaultLanguageID();
	}

	$StandardLanguageID = GetDefaultLanguageID();

	// Kundendaten einlesen
    if ($KundenID) {
       $KundenObject = GetKundenDetail('', $KundenID);
    } else {
       $KundenObject = GetKundenDetail($Email);
    }
	
//	if ($KundenObject->lieferung) {
//		$LandID = $KundenObject->la_land;
//	} else {
		$LandID = $KundenObject->land;
//	}

	// Kundengruppendaten einlesen
	$KundengruppenObject = GetKundengruppenDetail($KundenObject->kundengruppe);

	// L�ndergruppen des Landes des Kunden einlesen
	$LaendergruppenArray = GetLaendergruppenList($LandID);
	
	// W�hrung einlesen
	$WaehrungsObject = GetWaehrungDetail();

    $BonitaetspruefungEinstellungen = GetEinstellungen('', 'bonitaetspruefung');
        
	

	// ********************************************************************************
	// ***** Kundengruppe abfrage und ggf. nur die hier ausgew�hlten einlesen      ****
	// ********************************************************************************

	if (!$KundengruppenObject->alleversandarten) {

		$KundengruppenZahlungsartenArray = GetKundengruppenZahlungsartenList($KundengruppenObject->id, $LanguageID);
		
		if ($KundengruppenZahlungsartenArray) {
		
			$SQLStringKundengruppenZahlungsarten = " AND (" . TABLE_ZAHLUNGSART . ".id IN ("; 
		
			foreach ($KundengruppenZahlungsartenArray as $KundengruppenZahlungsarten) {
			
				$SQLStringKundengruppenZahlungsarten .= $KundengruppenZahlungsarten["id"] . ", ";
				
			}
			
			$SQLStringKundengruppenZahlungsarten = substr($SQLStringKundengruppenZahlungsarten, 0, (strlen($SQLStringKundengruppenZahlungsarten) - 2));
			$SQLStringKundengruppenZahlungsarten .= "))";

		}

	}


	// ********************************************************************************
	// ***** L�ndergruppen des Landes ber�cksichtigen                              ****
	// ********************************************************************************
	
	// wenn es L�nderguppen gibt, diese in der Abfrage nach den Zahlungsarten ber�cksichtigen
	if ($LaendergruppenArray) {
		
		$SQLStringLaendergruppenID = " OR (" . TABLE_ZAHLUNGSART . ".laendergruppeid IN (";

		foreach ($LaendergruppenArray as $Laendergruppe) {
		
			$SQLStringLaendergruppenID .= $Laendergruppe["id"] . ", ";
			
		}
		
		$SQLStringLaendergruppenID = substr($SQLStringLaendergruppenID, 0, (strlen($SQLStringLaendergruppenID) - 2));
		$SQLStringLaendergruppenID .= "))";
		
	}

	$SQLStringLandID .= "(" . TABLE_ZAHLUNGSART . ".landid = '" . $LandID . "')";
	

	// ********************************************************************************
	// ***** Nur Zahlungsarten f�r den Artikeldownload einlesen
	// ********************************************************************************
	if ($ArtikelDownload) {
		$SQLStringArtikelDownload = " AND " . TABLE_ZAHLUNGSART . ".artikel_download = 1 ";
	} 	
	// folgende Zeilen reinnehmen wenn man Downloadzahlungsarten nicht für physische Artikel angezeigt haben will
//	else {
//		$SQLStringArtikelDownload = " AND " . TABLE_ZAHLUNGSART . ".artikel_download = 0 ";
//	}

	// ********************************************************************************
	// ***** SQL-String um die Zahlungsarten abzufragen zusammensetzen            *****
	// ********************************************************************************
	
	$SQLString = "SELECT ";
	$SQLString .= TABLE_ZAHLUNGSART . ".id, "; 
	$SQLString .= "IFNULL(" . TABLE_ZAHLUNGSART_LANGU . ".name, table_zahlungsart_langu_standard.name) AS name, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".preis_netto, "; 
	$SQLString .= TABLE_ZAHLUNGSART . ".preis_brutto, ";
    $SQLString .= TABLE_ZAHLUNGSART . ".preis_prozent, ";
    $SQLString .= TABLE_ZAHLUNGSART . ".frei_netto, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".frei_brutto, "; 
	$SQLString .= TABLE_ZAHLUNGSART . ".ab, "; 
	$SQLString .= "IFNULL(" . TABLE_ZAHLUNGSART_LANGU . ".beschreibung, table_zahlungsart_langu_standard.name) AS beschreibung, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".bankdaten, "; 
	$SQLString .= TABLE_ZAHLUNGSART . ".kreditkarte, "; 
	$SQLString .= TABLE_ZAHLUNGSART . ".image, ";
	$SQLString .= TABLE_ZAHLUNGSART . ".paymentsystem, "; 
    $SQLString .= TABLE_ZAHLUNGSART . ".bonitaetspruefung_score, "; 
	$SQLString .= TABLE_ZAHLUNGSART . ".bonitaetspruefung_vendor_id, ";
    $SQLString .= TABLE_ZAHLUNGSART . ".zahlungsschnittstelle_id, ";
    $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".bonitaetspruefung_zusatztext ";
    $SQLString .= " FROM " . TABLE_ZAHLUNGSART . " ";
	$SQLString .= "LEFT JOIN " . TABLE_ZAHLUNGSART_LANGU . " ON ((" . TABLE_ZAHLUNGSART . ".id = " . TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id) AND (" . TABLE_ZAHLUNGSART_LANGU . ".language_id = " . $LanguageID . ")) ";
	$SQLString .= "LEFT JOIN " . TABLE_ZAHLUNGSART_LANGU . " table_zahlungsart_langu_standard ON ((" . TABLE_ZAHLUNGSART . ".id = table_zahlungsart_langu_standard.zahlungsart_id) AND (table_zahlungsart_langu_standard.language_id = " . $StandardLanguageID . ")) ";
	$SQLString .= " WHERE 1 ";
    if($nurAktive)
    	$SQLString .= " AND (" . TABLE_ZAHLUNGSART . ".aktiv = 1)";
    $SQLString .= " AND (" . TABLE_ZAHLUNGSART . ".ab <= '" . $KundenObject->bestellungen . "')";
	$SQLString .= " AND (" . $SQLStringLandID . $SQLStringLaendergruppenID . ")";
	$SQLString .= $SQLStringKundengruppenZahlungsarten;
	$SQLString .= $SQLStringArtikelDownload;
	$SQLString .= "ORDER BY " . TABLE_ZAHLUNGSART . ".sort";
	
	// ********************************************************************************
	// ***** Zahlungsarten abfragen                                               *****
	// ********************************************************************************

	$ZahlungsartenQueryReference = errorlogged_mysql_query($SQLString);
	
	while ($ZahlungsartenRow = mysql_fetch_array($ZahlungsartenQueryReference)) {
		
		$ZahlungsartenCounter++;
		
		$ZahlungsartenArray[$ZahlungsartenCounter] = $ZahlungsartenRow;
		
		$ZahlungsartenArray[$ZahlungsartenCounter]["bestellungen"] = $KundenObject->bestellungen;
		
		if($ZahlungsartenRow["image"] != "" && file_exists(DATEIPFAD . "images/dbimages/" . $ZahlungsartenRow["image"])) {
			$ZahlungsartenArray[$ZahlungsartenCounter]["image_imagestring"] = "<img src=\"" . IMAGEPFAD . "dbimages/" . $ZahlungsartenRow["image"] . "\" alt=\"" . $ZahlungsartenRow["name"] . "\" />";
		}
		

		// Preis
		if ($KundengruppenObject->type == 1) {
			if(($Bestellsumme > 0) && ($ZahlungsartenRow["frei_brutto"] > 0) && ($Bestellsumme >= $ZahlungsartenRow["frei_brutto"])) {
			
				$ZahlungsartenArray[$ZahlungsartenCounter]["preis"] = 0;
				$ZahlungsartenArray[$ZahlungsartenCounter]["preis_format"] = number_format($ZahlungsartenArray[$ZahlungsartenCounter]["preis"], 2, ",", ".") . " " . $WaehrungsObject->symbol;
			} else {
			
				$ZahlungsartenArray[$ZahlungsartenCounter]["preis"] = $ZahlungsartenRow["preis_brutto"] + $Bestellsumme * $ZahlungsartenRow['preis_prozent'] / 100;
				$ZahlungsartenArray[$ZahlungsartenCounter]["preis_format"] = number_format($ZahlungsartenArray[$ZahlungsartenCounter]["preis"], 2, ",", ".") . " " . $WaehrungsObject->symbol;
			} 
		} else {
			
			if(($Bestellsumme > 0) && ($ZahlungsartenRow["frei_netto"] > 0) && ($Bestellsumme >= $ZahlungsartenRow["frei_netto"])) {	
				$ZahlungsartenArray[$ZahlungsartenCounter]["preis"] = 0;
				$ZahlungsartenArray[$ZahlungsartenCounter]["preis_format"] = number_format($ZahlungsartenArray[$ZahlungsartenCounter]["preis"], 2, ",", ".") . " " . $WaehrungsObject->symbol;
			} else {
			
				$ZahlungsartenArray[$ZahlungsartenCounter]["preis"] = $ZahlungsartenRow["preis_netto"] + $Bestellsumme * $ZahlungsartenRow['preis_prozent'] / 100;
				$ZahlungsartenArray[$ZahlungsartenCounter]["preis_format"] = number_format($ZahlungsartenArray[$ZahlungsartenCounter]["preis"], 2, ",", ".") . " " . $WaehrungsObject->symbol;
			}
			
		}
		
        // Bonitätsprüfung deaktiviert		
		if ($KundenObject->bonitaetspruefung_inaktiv) {
		    $ZahlungsartenArray[$ZahlungsartenCounter]["bonitaetspruefung_vendor_id"] = 0; 
            $ZahlungsartenArray[$ZahlungsartenCounter]["bonitaetspruefung_zusatztext"] = ''; 
		}
		
		// Prüfung, ob aufgrund des hinterlegten Scores beim Kunden eine Anzeige Möglich ist
        if (($ZahlungsartenRow["bonitaetspruefung_score"] > 0) && (!$KundenObject->bonitaetspruefung_inaktiv) && $KundenObject->bonitaetspruefung_last_check && ((strtotime($KundenObject->bonitaetspruefung_last_check) + ($BonitaetspruefungEinstellungen->bonitaetspruefung->buergel_pruefungszyklus * (24 * 60 * 60))) > time())) {

            if ($KundenObject->bonitaetspruefung_last_score > $ZahlungsartenRow["bonitaetspruefung_score"]) {
                $ZahlungsartenArray[$ZahlungsartenCounter]["bonitaetspruefung_forbidden"] = true;
            }
		    
        }    
        
        // wenn die Zahlungsart vom Kunden ausgew�hlt wurde
        if ($ZahlungsartenRow["id"] == $KundenObject->zahlungsart) {
            $ZahlungsartenArray[$ZahlungsartenCounter]["checked"] = " checked";
            $ZahlungartGefunden = true;
        } else {
            $ZahlungsartenArray[$ZahlungsartenCounter]["checked"] = "";
        }
        
            
	}

	return $ZahlungsartenArray;
		
}

function SaveZahlungsartVersandarten($zahlungsartID, $versandartIDs)
{
	$SQLString = "DELETE FROM " . TABLE_ZAHLUNGSART_VERSANDART . " WHERE " . TABLE_ZAHLUNGSART_VERSANDART . ".zahlungsart_id = " . $zahlungsartID;
	mysql_query($SQLString);
	
	if($versandartIDs)
	{
		foreach($versandartIDs as $versandartID)
		{
			$SQLString = "INSERT INTO " . TABLE_ZAHLUNGSART_VERSANDART . " SET ";
			$SQLString .= TABLE_ZAHLUNGSART_VERSANDART . ".zahlungsart_id = " . $zahlungsartID;
			$SQLString .= ", " . TABLE_ZAHLUNGSART_VERSANDART . ".versandart_id = " . $versandartID;
			mysql_query($SQLString);
		}
	}	
}

function GetZahlungsartVersandarten($ZahlungsartID, $languageID = 0)
{
	if(!$languageID) {
		$languageID = GetDefaultLanguageID();
	}
		
	$SQLString = "SELECT " . TABLE_ZAHLUNGSART_VERSANDART . ".versandart_id, ";
	$SQLString .= TABLE_VERSANDART_LANGU . ".name FROM " . TABLE_ZAHLUNGSART_VERSANDART;
	$SQLString .= " LEFT JOIN " . TABLE_VERSANDART_LANGU . " ON " . TABLE_ZAHLUNGSART_VERSANDART . ".versandart_id = " . TABLE_VERSANDART_LANGU . ".versandart_id";
	$SQLString .= " WHERE " . TABLE_ZAHLUNGSART_VERSANDART . ".zahlungsart_id = '" . $ZahlungsartID . "' ";
	$SQLString .= " AND " . TABLE_VERSANDART_LANGU . ".language_id = '" . $languageID . "' ";
	
//	echo $SQLString;
	
	$result = mysql_query($SQLString);
	$versandartenArray = array();
	while($versandart = mysql_fetch_assoc($result)) {
		$versandartenArray[$versandart['versandart_id']] = $versandart;	
	}
	
	return $versandartenArray;
}

function GetBestenZahlungsartRabatt($LanguageID)
{
    $SQLString = "SELECT " . TABLE_ZAHLUNGSART . ".id, ";
    $SQLString .= TABLE_ZAHLUNGSART_LANGU . ".name, ";
    $SQLString .= TABLE_RABATTE . ".art_prozent";
    $SQLString .= " FROM " . TABLE_ZAHLUNGSART;
    $SQLString .= " INNER JOIN " . TABLE_RABATTE . " ON " . TABLE_ZAHLUNGSART . ".rabattstaffel = " . TABLE_RABATTE . ".rabattstaffelid";
    $SQLString .= " LEFT JOIN " . TABLE_ZAHLUNGSART_LANGU . " ON " . TABLE_ZAHLUNGSART . ".id = " . TABLE_ZAHLUNGSART_LANGU . ".zahlungsart_id";
    $SQLString .= " WHERE " . TABLE_ZAHLUNGSART_LANGU . ".language_id = '" . $LanguageID . "'";
    $SQLString .= " ORDER BY " . TABLE_RABATTE . ".art_prozent DESC";
    $SQLString .= " LIMIT 0, 1";

	return mysql_fetch_assoc(mysql_query($SQLString));
}

?>