<?php 

include_once(DATEIPFAD . 'includes/functions.shopeinstellung.inc.php');
if(GUTSCHEINAKTIONEN) {
    include_once(DATEIPFAD . 'includes/functions.mod.gutscheinaktionen.inc.php');
}
include_once(DATEIPFAD . 'includes/functions.mail.inc.php');


function GetBewertungDataArray($ArtikelID = "", $All, $Adminanzeige = 0) {
	
	global $str_alleRezis;

	// Gucke nach, ob eine Bewertung existiert
	$SQLString = "SELECT COUNT(DISTINCT id) as anzahl, SUM(bewertung) as summe FROM " . TABLE_BEWERTUNG . " ";
    if($ArtikelID) {
        $SQLString .= "WHERE artId = '" . $ArtikelID . "' GROUP BY artId ";
    }
	$QueryReference = mysql_query($SQLString);
	$BewertungAnzahl = mysql_fetch_object($QueryReference);

	if($BewertungAnzahl->anzahl != 0) {

		// Rufe die Bewertungen zu diesem Artikel auf
		$SQLString = "SELECT bewertung, beschreibung, headline, vorname, ort, kommentar ";
		$SQLString .= "FROM " . TABLE_BEWERTUNG . " ";
		$SQLString .= "INNER JOIN " . TABLE_KUNDEN . " ON ". TABLE_BEWERTUNG . ".kunId = " . TABLE_KUNDEN . ".id ";
		if($Adminanzeige == 0) {
			$SQLString .= " WHERE artId = '" . $ArtikelID . "' ";
		}
		$SQLString .= " ORDER BY " . TABLE_BEWERTUNG . ".id DESC ";
		$QueryReference = mysql_query($SQLString);
		$BewertungenCount =  mysql_affected_rows();

		while($rowBew = mysql_fetch_object($QueryReference)) {

			// Rechne die Bewertungen zusammen
			for($s=1;$s<=$rowBew->bewertung;$s++) {
				$vollpunkt .= '<img src="' . URLPFAD . 'images/dbimages/vollstern.gif" border="0">';
			}
		
			for($d=$rowBew->bewertung;$d<5;$d++) {
				$leerpunkt .= '<img src="' . URLPFAD . 'images/dbimages/leerstern.gif" border="0">';
			}
		
			$tpl_rezi = nl2br($rowBew->beschreibung);
		
			$BewertungenArray[] = array('vollpunkt'=>$vollpunkt,
															'leerpunkt'=>$leerpunkt,
															'titel'=>$rowBew->headline,
															'vorname'=>$rowBew->vorname,
															'ort'=>$rowBew->ort,
															'rezi'=>$tpl_rezi,
															'kommentar'=>$rowBew->kommentar);
			unset($vollpunkt);
			unset($leerpunkt);
			$userBewertungen += $rowBew->bewertung; 
		}

		$erechneDurchschnitt = $BewertungAnzahl->summe / $BewertungAnzahl->anzahl;

		 
		$BewertungenArray["global"]["durchschnitt"] = number_format($erechneDurchschnitt,0,',',''); // Gerundet auf eine ganze Zahl
	
		for ($s=1;$s<=$BewertungenArray["global"]["durchschnitt"];$s++) {
			$vollPunktGesamt .= '<img src="' . URLPFAD . 'images/dbimages/vollstern.gif" border="0">';
		}
	
		for ($d=$BewertungenArray["global"]["durchschnitt"];$d<5;$d++) {
			$leerpunktGesamt .= '<img src="' . URLPFAD . 'images/dbimages/leerstern.gif" border="0">';
		}

		$BewertungenArray["global"]["sterne"] = $vollPunktGesamt . $leerpunktGesamt;
		
		$BewertungenArray["global"]["anzahl"] = $BewertungAnzahl->anzahl;
	
		}

		return $BewertungenArray;
}



function GetBewertungDetail($BewertungsID) {

	$SQLString = "SELECT ";
	$SQLString .= TABLE_BEWERTUNG . ".id, ";
    $SQLString .= TABLE_BEWERTUNG . ".artId, ";
    $SQLString .= TABLE_BEWERTUNG . ".kunId, ";
	$SQLString .= TABLE_BEWERTUNG . ".kommentar, ";
    $SQLString .= 'UNIX_TIMESTAMP('. TABLE_BEWERTUNG . ".datum) as timestamp ";
	$SQLString .= "FROM " . TABLE_BEWERTUNG . " ";
	$SQLString .= "WHERE " . TABLE_BEWERTUNG . ".id = '" . $BewertungsID . "' ";

//    echo $SQLString;

	$BewertungObject = mysql_fetch_object(mysql_query($SQLString));
	
	return $BewertungObject;

}

function AddBewertung($ArtikelID, $KundenID, $Bewertung, $Beschreibung, $Titel)
{
    $eintrag = "INSERT INTO " . TABLE_BEWERTUNG . " (artId, kunId, bewertung, beschreibung, headline, datum) VALUES ('" . $ArtikelID . "', '" . $KundenID . "', '" . $Bewertung . "', '" . $Beschreibung . "', '" . $Titel . "', NOW())";
    $eintragen = mysql_query($eintrag);
    $bewertungsID = mysql_insert_id();

    $bewertungsEinstellungen = GetEinstellungen('punkteProBewertung', 'bewertungen');

    $SQLString = 'UPDATE ' . TABLE_KUNDEN . ' SET bewertungspunkte = bewertungspunkte + ' . $bewertungsEinstellungen->bewertungen->punkteProBewertung;
    errorlogged_mysql_query($SQLString);

    SendMailBewertung($ArtikelID, $KundenID, $Bewertung, $Beschreibung, $Titel, $bewertungsID);
}

function DeleteBewertung($BewertungsID) {
    $SQLString = 'SELECT kunId FROM ' . TABLE_BEWERTUNG . ' WHERE id = \'' . $BewertungsID . '\'';
    $row = mysql_fetch_row(errorlogged_mysql_query($SQLString));
    $KundenID = $row[0];

	$loeschen = "DELETE FROM " . TABLE_BEWERTUNG . " WHERE id = '" . $BewertungsID . "'";
  	$loesch = mysql_query($loeschen);

    $bewertungsEinstellungen = GetEinstellungen('punkteProBewertung', 'bewertungen');

    $SQLString = 'UPDATE ' . TABLE_KUNDEN . ' SET bewertungspunkte = bewertungspunkte - ' . $bewertungsEinstellungen->bewertungen->punkteProBewertung;
    errorlogged_mysql_query($SQLString);

}

function UpdateShopbetreiberKommentar($BewertungsID, $Kommentar) {
	
	$SQLString = "UPDATE " . TABLE_BEWERTUNG . " SET ";
	$SQLString .= TABLE_BEWERTUNG . ".kommentar = '" . $Kommentar . "' ";
	$SQLString .= " WHERE " . TABLE_BEWERTUNG . ".id = '" . $BewertungsID . "'";
	$MySQLQueryReference = mysql_query($SQLString);

    SendMailBewertungsKommentar($BewertungsID);
}

function GetAnzahlBewertungenVonKunde($KundenID, $FilterHeute = false) {
    $SQLString = 'SELECT ';
    $SQLString .= ' count(*) FROM ' . TABLE_BEWERTUNG;
    $SQLString .= ' WHERE ' . TABLE_BEWERTUNG . '.kunId = \'' . $KundenID . '\'';

    if($FilterHeute) {
        $SQLString .= ' AND ' . TABLE_BEWERTUNG . '.datum > CURDATE()';
    }

    $row = mysql_fetch_row(errorlogged_mysql_query($SQLString));
    return $row[0];
}

function ErstelleBewertungsgutschein($KundenID) {
    $bewertungsEinstellungen = GetEinstellungen('', 'bewertungen');

    $gutscheinArr = BewertungsGutscheinHinzufuegen($bewertungsEinstellungen->bewertungen->gutscheinaktion, $KundenID);

    $SQLString = 'UPDATE ' . TABLE_KUNDEN . ' SET ';
    $SQLString .= TABLE_KUNDEN . '.bewertungspunkte = bewertungspunkte - ' . $bewertungsEinstellungen->bewertungen->gutscheinpunkte;
    $SQLString .= ' WHERE ' . TABLE_KUNDEN . '.id = ' . $KundenID;
    errorlogged_mysql_query($SQLString);

}

function SendBewertungsAnfrageMails() {
    $bewertungsEinstellungen = GetEinstellungen('', 'bewertungen');
    if($bewertungsEinstellungen->bewertungen->bewertungsAnfrageMailsSenden) {
        $ShopeinstellungenObject = GetShopeinstellungDetail();
        $WaehrungObject = GetWaehrungDetail();

        $SQLString = 'SELECT id FROM ' . TABLE_BESTELLEN . ' WHERE (versandtdatum + INTERVAL ' . $bewertungsEinstellungen->bewertungen->bewertungsAnfrageMailsSendenTage . ' DAY < NOW()) AND bewertungsanfrage_gesendet = 0 AND kunden_id < ' . GASTKUNDEN_BASE . ' AND lieferantenbestellung = 0';
        $result = errorlogged_mysql_query($SQLString);
        while($row = mysql_fetch_row($result)) {
            $BestellObject = GetBestellenDetail($row[0]);
            $KundenObject = GetKundenDetail('', $BestellObject->kunden_id);
            SendMailBewertungsanfrage($BestellObject, $KundenObject, $ShopeinstellungenObject, $WaehrungObject, $bewertungsEinstellungen->bewertungen->bewertungsGutscheineAktiv);
            $SQLString = 'UPDATE ' . TABLE_BESTELLEN . ' SET bewertungsanfrage_gesendet = 1 WHERE id = ' . $row[0];
            errorlogged_mysql_query($SQLString);
        }
    } else {
        $SQLString = 'UPDATE ' . TABLE_BESTELLEN . ' SET bewertungsanfrage_gesendet = 1 WHERE versandtdatum > 0';
        errorlogged_mysql_query($SQLString);
    }
}

function SetBewertungsAnfrageGesendet() {
    $SQLString = 'UPDATE ' . TABLE_BESTELLEN . ' SET bewertungsanfrage_gesendet = 1 WHERE (versandtdatum + INTERVAL 1 WEEK < NOW()) AND bewertungsanfrage_gesendet = 0 AND kunden_id < ' . GASTKUNDEN_BASE . ' AND lieferantenbestellung = 0';
    errorlogged_mysql_query($SQLString);
}



// Admin


function GetBewertungAdminDataArray($SearchField, $SearchString, $OrderField, $SortDesc, $DataOffset, $DataCount) {
    
    $abfrage = "SELECT ";
    $abfrage .= TABLE_BEWERTUNG . ".id, ";
    $abfrage .= TABLE_BEWERTUNG . ".artId, ";
    $abfrage .= TABLE_BEWERTUNG . ".kunId, ";
    $abfrage .= TABLE_BEWERTUNG . ".headline, ";
    $abfrage .= TABLE_BEWERTUNG . ".datum, ";
    $abfrage .= "DATE_FORMAT(" . TABLE_BEWERTUNG . ".datum, '%d.%m.%Y %H:%i') AS datum_format, ";
    $abfrage .= TABLE_BEWERTUNG . ".bewertung, ";
    $abfrage .= TABLE_BEWERTUNG . ".beschreibung, ";
    $abfrage .= TABLE_ARTIKEL . ".artikel_nr ";
    $abfrage .= "FROM " . TABLE_BEWERTUNG . " ";
    $abfrage .= "LEFT JOIN " . TABLE_ARTIKEL . " ON " . TABLE_BEWERTUNG . ".artId = " . TABLE_ARTIKEL . ".id ";
    if($SearchField !="" && $SearchString !="") {
        $abfrage .= "WHERE " . $SearchField . " like '%" . $SearchString . "%' ";
    }
    $abfrage .= "ORDER BY " . $OrderField . " " . $SortDesc . " LIMIT " . $DataOffset .", ". $DataCount ."";

    $ergebnis = mysql_query($abfrage);
    $BewertungDataArray = array();
    while($BewertungData = mysql_fetch_assoc($ergebnis)) {
        $BewertungDataArray[] = $BewertungData;
    }

    return $BewertungDataArray;
}


function GetSortOrder($SortOrder) {
    
    if($SortOrder == "ASC") {
        $SortOrder = "DESC";
    } else {
        $SortOrder = "ASC";
    }
    
    return $SortOrder;
}