<?php
//  Copyright (c) 2004-2009 randshop
//  http://www.randshop.com
//
//  Unter Lizenz von randshop
//	
//	Letzte Bearbeitung: 19.02.2009

$abfrageTemp = "SELECT * FROM " . TABLE_TEMPLATES . " where aktiv = '1'"; 
$ergebnisTemp = errorlogged_mysql_query($abfrageTemp);
$rowTemp = mysql_fetch_object($ergebnisTemp);
	
	$stepcounter = 1;
	
	// ********************************************************************************
	// ***** Sessionvariablen setzen                                              *****
	// ********************************************************************************
	$_SESSION["stepcounter"] = 1;

	// ********************************************************************************
	// ***** Wenn keine Daten im Warenkob sind                                     ****
	// ********************************************************************************
	if (GetWarenkorbAnzahl($_SESSION["sessionId"]) == 0) {
		
		// Template ausgeben
		$contentFile = DATEIPFAD . "templates/" . $rowTemp->name . "/website/bestellen/bestell_geloescht.tpl";


	// ********************************************************************************
	// ***** Zahlungsarten einlesen und f�r die Ausgabe aufbereiten                ****
	// ********************************************************************************
	} else {

        if($_POST['action'] == 'speichern') {
            if ($_POST["zahlungsart"]) {
                $ZahlungsartID = $_POST["zahlungsart"];
                if (GetZahlungsartBonitaetspruefung($ZahlungsartID)) {

                    $KundenObject = GetKundenDetail($_SESSION["mail"]);

                    if (!$KundenObject->bonitaetspruefung_inaktiv) {

                        $CheckBonitaetspruefungResult = CheckBonitaetspruefung($ZahlungsartID, $KundenObject->id);

                        if ($CheckBonitaetspruefungResult['bonitaetspruefung'] == false) {

                            $tpl_errormessage = $CheckBonitaetspruefungResult['bonitaetspruefung_message'];

                            ResetKundenZahlungsart($KundenObject->id);

                            $error = true;
                        }
                    }
                }

                if (GetZahlungsartBankdaten($ZahlungsartID)) {

                    // Fehler bei der Eingabe der Bankdaten
                    if (($_POST["bank"] == "") || ($_POST["blz"] == "")) {
                        $error = true;
                        $tpl_errormessage = $str_keineBankdaten;
                        // Daten der Zahlungsart sichern
                    } else {
                        if($_SESSION["gast_mail"] =="") {
                            $SQLString = "UPDATE " . TABLE_KUNDEN . " SET zahlungsart = '" . $ZahlungsartID . "', bank = '" . $_POST["bank"] . "', blz = '" . $_POST["blz"] . "', konto_nr = '" . $_POST["konto_nr"] . "' WHERE email = '" . $_SESSION["mail"] . "'";
                            $MySQLQueryReference = errorlogged_mysql_query($SQLString);
                        } else {
                            $_SESSION["gast_zahlungsart"] = $ZahlungsartID;
                            $_SESSION["gast_bank"] = $_POST["bank"];
                            $_SESSION["gast_blz"] = $_POST["blz"];
                            $_SESSION["gast_konto_nr"] = $_POST["konto_nr"];
                        }
                    }

                    // Daten der Zahlungsart sichern
                } elseif (GetZahlungsartKreditdaten($ZahlungsartID)) {

                    // Fehler bei der Eingabe der Bankdaten
                    if (($_POST["kartenart"] == "") || ($_POST["kartennummer"] == "") || ($_POST["kartenablaufdatum"] == "")) {
                        $error = true;
                        $tpl_errormessage = $str_keineBankdaten;
                        // Daten der Zahlungsart sichern
                    } else {
                        $kredTypCrypt = md5_encrypt($_POST["kartenart"], $_SESSION["sessionId"]);
                        $kredNrCrypt = md5_encrypt($_POST["kartennummer"], $_SESSION["sessionId"]);
                        if($_SESSION["gast_mail"] =="") {
                            $SQLString = "UPDATE " . TABLE_KUNDEN . " SET zahlungsart = '" . $ZahlungsartID . "',  kreditk_typ='".$kredTypCrypt."',  kreditk_nr='".$kredNrCrypt."', kreditk_gueltdate='".$_POST["kartenablaufdatum"]."' WHERE email = '" . $_SESSION["mail"] . "'";
                            $MySQLQueryReference = errorlogged_mysql_query($SQLString);
                        } else {
                            $_SESSION["gast_zahlungsart"] = $ZahlungsartID;
                            $_SESSION["gast_kredit_typ"] = $kredTypCrypt;
                            $_SESSION["gast_kreditk_nr"] = $kredNrCrypt;
                            $_SESSION["gast_kreditk_gueltdate"] = $_POST["kartenablaufdatum"];
                        }
                    }

                    // Daten der Zahlungsart sichern
                }

                $ZahlungsartObject = GetZahlungsartDetail($ZahlungsartID);
                if($ZahlungsartObject->paymentsystem == 42) {
                    $paymentInterface = getPaymentInterface($ZahlungsartObject->zahlungsschnittstelle_id, $_SESSION['locale']);
                    if($_POST['interface_params'][$ZahlungsartID]) {
                        $validationResult = $paymentInterface->validateAndSetPaymentChoice($_POST['interface_params'][$ZahlungsartID]);
                        if($validationResult !== true) {
                            $error = true;
                        } else {
                            $_SESSION['paymentInterfaceBestellParams'] = $_POST['interface_params'][$ZahlungsartID];
                        }
                    } else {
                        $_SESSION['paymentInterfaceBestellParams'] = array();
                    }
                }

                    // �berpr�fen, ob Bankdaten erforderlich sind

                if(!$error) {

                    if($_SESSION["gast_mail"] =="") {
                        $SQLString = "UPDATE " . TABLE_KUNDEN . " SET zahlungsart = '" . $ZahlungsartID . "' WHERE email = '" . $_SESSION["mail"] . "'";
                        $MySQLQueryReference = errorlogged_mysql_query($SQLString);
                    } else {
                        $_SESSION["gast_zahlungsart"] = $ZahlungsartID;
                    }
                    if($paymentInterface) {
                        $_SESSION['paymentInterface'] = $paymentInterface;
                        unset($_SESSION['paymentInterfaceRequestParams']);
                    }
                    header('Location: ' . URLPFAD . 'themes/bestellen/index.php?formaction=s1');
                    exit;
                }


            }
        }

		if($_SESSION["gast_mail"] != "") { $KundenEmail = $_SESSION["gast_mail"]; } else { $KundenEmail = $_SESSION["mail"]; }
		
		$tpl_warenkorbdataarray = GetWarenkorbDataArray($_SESSION["sessionId"], $KundenEmail, 0);
		
		// aktive W�hrung einlesen
		$WaehrungObject = GetWaehrungDetail();
				
		// kundenspezifische Zahlungsarten einlesen
		$ZahlunsartArray = GetKundenZahlungsartList($KundenEmail, $tpl_warenkorbdataarray["artikel_download"], $_SESSION["languageid"], $tpl_warenkorbdataarray["gesamtsumme"]);

		// Daten f�r die Ausgabe aufbereiten
		if ($ZahlunsartArray) {
			
			foreach ($ZahlunsartArray as $Zahlungsart) {
	
			    if ($Zahlungsart['bonitaetspruefung_forbidden']) {
			        continue;
			    }
			    
				$ZahlungsartenCounter++;

				$tpl_zahlungsartenarray[$ZahlungsartenCounter]["id"] = $Zahlungsart["id"];
				$tpl_zahlungsartenarray[$ZahlungsartenCounter]["name"] = $Zahlungsart["name"];
				$tpl_zahlungsartenarray[$ZahlungsartenCounter]["preis"] = number_format($Zahlungsart["preis"], 2, ",", ".");

                if($ZahlungsartID) {
                    $tpl_zahlungsartenarray[$ZahlungsartenCounter]["checked"] = ($Zahlungsart['id'] == $ZahlungsartID?' checked="checked"':'');
                } else {
                    $tpl_zahlungsartenarray[$ZahlungsartenCounter]["checked"] = $Zahlungsart["checked"];
                }
				$tpl_zahlungsartenarray[$ZahlungsartenCounter]["beschreibung"] = stripslashes($Zahlungsart["beschreibung"]);
				$tpl_zahlungsartenarray[$ZahlungsartenCounter]["bankdaten"] = $Zahlungsart["bankdaten"];
				$tpl_zahlungsartenarray[$ZahlungsartenCounter]["kreditkarte"] = $Zahlungsart["kreditkarte"];
				$tpl_zahlungsartenarray[$ZahlungsartenCounter]["paymentsystem"] = $Zahlungsart["paymentsystem"];
				$tpl_zahlungsartenarray[$ZahlungsartenCounter]["ab"] = $Zahlungsart["ab"];
				$tpl_zahlungsartenarray[$ZahlungsartenCounter]["bestellungen"] = $Zahlungsart["bestellungen"];
                $tpl_zahlungsartenarray[$ZahlungsartenCounter]["image_imagestring"] = $Zahlungsart["image_imagestring"];
                $tpl_zahlungsartenarray[$ZahlungsartenCounter]["bonitaetspruefung_vendor_id"] = $Zahlungsart["bonitaetspruefung_vendor_id"];
                $tpl_zahlungsartenarray[$ZahlungsartenCounter]["bonitaetspruefung_zusatztext"] = $Zahlungsart["bonitaetspruefung_zusatztext"];
                
				// Bankeinzug
				if ($Zahlungsart["bankdaten"]) {

					// Kundendaten einlesen
					$KundenObject = GetKundenDetail($mail);
					
					// Bankdaten f�r die ausgabe vorbereiten
					$tpl_bank = $KundenObject->bank;
					$tpl_blz = $KundenObject->blz;
					$tpl_kontonummer = $KundenObject->konto_nr;
				}
				
				// �berpr�fen, ob eine Zahlungart gefunden wurde
				if ($tpl_zahlungsartenarray[$ZahlungsartenCounter]["checked"]) {
					$ZahlungartGefunden = true;	
				}

                if($Zahlungsart['paymentsystem'] == 42) {
                    $paymentInterface = getPaymentInterface($Zahlungsart['zahlungsschnittstelle_id'], $_SESSION['locale']);
                    $tpl_zahlungsartenarray[$ZahlungsartenCounter]['zahlungsschnittstelle_param_array'] = $paymentInterface->getPaymentChoiceTemplate();
                    if($Zahlungsart['id'] == $ZahlungsartID) {
                        $tpl_zahlungsartenarray[$ZahlungsartenCounter]['zahlungsschnittstelle_validation_result'] = $validationResult;
                        $tpl_zahlungsartenarray[$ZahlungsartenCounter]['zahlungsschnittstelle_values'] = $_POST['interface_params'][$ZahlungsartID];
                    } else {
                        // automatische Vorbelegungen für Eingabefelder mit bestimmten Bezeichnern eintragen
                        foreach($tpl_zahlungsartenarray[$ZahlungsartenCounter]['zahlungsschnittstelle_param_array'] as $paramCfg) {
                            if($paramCfg->name == 'phoneNumber') {
                                $KundenObject = GetKundenDetail($_SESSION['mail']);
                                $tpl_zahlungsartenarray[$ZahlungsartenCounter]['zahlungsschnittstelle_values'][$paramCfg->name] = $KundenObject->telefon;
                            }
                        }
                    }
                }
			}

			// wenn keine Zahlungsart gefunden wurde, die erste auswahlen
			if (!$ZahlungartGefunden && count($tpl_zahlungsartenarray)) {
				$tpl_zahlungsartenarray[1]["checked"] = " checked=\"checked\"";
			}
			
			$tpl_symbol = $WaehrungObject->symbol;
			$tpl_stepcounter = $_SESSION["stepcounter"];

			// Meldung der Bonitätsprüfung
			if ($_SESSION['bonitaetspruefung_message']) {
                $tpl_errormessage = $_SESSION['bonitaetspruefung_message'];
			    unset($_SESSION['bonitaetspruefung_message']);
			}
			
		// wenn keine Zahlungsart vorhanden ist
		} else {

			$tpl_keinLand = $str_keinLand;
			
		}

		if (!count($tpl_zahlungsartenarray)) {
            $tpl_keinLand = $str_keinLand;
		}
    	
		
		$contentFile = DATEIPFAD . "templates/" . $rowTemp->name . "/website/bestellen/zahlungsart_auswahl.tpl";

	}

