<?php

function display_anzeigen_explora($zeile1, $zeile2)
{
	//display_loeschen_nettun();

	if(defined('KUNDENANZEIGE_COM_PORT') && strlen(KUNDENANZEIGE_COM_PORT) > 0) $PORT = KUNDENANZEIGE_COM_PORT;
	else $PORT="COM6:";
	$ZEILENLAENGE=20;
	
	$zuz=mb_strlen($zeile1, 'UTF-8');
	
	// die zeilen mit Blanks auffuellen
	$zeile1=str_pad($zeile1, $ZEILENLAENGE, " ", STR_PAD_RIGHT);
	//$zeile1=iconv("UTF-8", "ISO-8859-1", $zeile1);
	$zeile2=str_pad($zeile2, $ZEILENLAENGE, " ", STR_PAD_RIGHT);
	//$zeile2=iconv("UTF-8", "ISO-8859-1", $zeile2);
	
	#$zeile1=substr($zeile1,0,$ZEILENLAENGE);
	#$zeile2=substr($zeile2,0,$ZEILENLAENGE);
	$zeile1=utf8_decode ( $zeile1 );
	$zeile2=utf8_decode ( $zeile2 );
	$handle = fopen($PORT, "w+");
	fwrite($handle, "\x0C"); // Display loeschen
	fwrite($handle, "\x1B\x52\x02"); // Deutsches Character Set wählen EPSON Mode
	fclose($handle);
	//$command1="echo $zeile1>$PORT";
	//$command2="echo $zeile2>$PORT";
	$command1="set /p x=$zeile1<nul >$PORT";
	$command2="set /p x=$zeile2<nul >$PORT";
	exec($command1, $output, $error_code);
	$handle = fopen($PORT, "w+");
	fwrite($handle, "\x1F\x24\x01\x02"); // auf zweite Zeile positionieren
	fclose($handle);
	exec($command2, $output, $error_code);
	
}


function display_anzeigen_nettun($zeile1, $zeile2)
{
	# display_loeschen_nettun();
	
	

	$replPat=array('/ß/', '/&/', '/€/');
	$repl=array('ss', 'u.', 'EUR');
	$zeile1=preg_replace($replPat, $repl, $zeile1);
	$zeile2=preg_replace($replPat, $repl, $zeile2);
	$ZEILENLAENGE=20;
	
			#$zeile1=mb_convert_encoding($zeile1,'UTF-8',mb_detect_encoding($zeile1));

	// die zeilen mit Blanks auffuellen

	$zeile1=iconv("UTF-8", "UTF-8//IGNORE", $zeile1);
	$zeile1=iconv("UTF-8", "ISO-8859-1", $zeile1);
	$zeile2=iconv("UTF-8", "ISO-8859-1//IGNORE", $zeile2);

	if(strlen($zeile1) < $ZEILENLAENGE){
		$dif=$ZEILENLAENGE-strlen($zeile1);
		#$zeile1=str_pad($zeile1, ($dif/2)+strlen($zeile1), " ", STR_PAD_LEFT);
		#$zeile1=str_pad($zeile1, $ZEILENLAENGE, " ", STR_PAD_RIGHT);
		$zeile1=str_pad($zeile1, $ZEILENLAENGE, " ", STR_PAD_RIGHT);
	}
	else $zeile1=str_pad($zeile1, $ZEILENLAENGE, " ", STR_PAD_RIGHT);
	if(strlen($zeile2) != $ZEILENLAENGE){
		$dif=$ZEILENLAENGE-strlen($zeile2);
		$zeile2=str_pad($zeile2, ($dif/2)+strlen($zeile2), " ", STR_PAD_LEFT);
		$zeile2=str_pad($zeile2, $ZEILENLAENGE, " ", STR_PAD_RIGHT);
	}
	else $zeile2=str_pad($zeile2, $ZEILENLAENGE, " ", STR_PAD_RIGHT);
	
	$zeile1=substr($zeile1,0,$ZEILENLAENGE);
	$zeile2=substr($zeile2,0,$ZEILENLAENGE);
	
	$command1="start /B display\\write_display_nettun.exe ausgeben \"".$zeile1 ."\" \"". $zeile2 ."\"";
	
	$handle=popen($command1, "w");
		
	if ($handle==false)
	{
		echo("Fehler bei Kundendisplay anzeige: " . $command1);
	}
	else
	{
		pclose($handle);
	}
	
	//echo("Befehl wird ausgefuehrt: " . $command1 . "<br>");
	//exec($command1, $output, $error_code);
	//$error_code=exec($command1);
	//if ($error_code >0 )
	//{
	//	echo("Fehler bei Kundendisplay anzeige: " . $command1);
	//}
	//print_r($output);
}

function display_loeschen_nettun()
{
	$command1="display\\write_display_nettun.exe loeschen ";
	//echo("Befehl wird ausgefuehrt: " . $command1 . "<br>");
	exec($command1, $output, $error_code);
	if ($error_code >0 )
	{
		echo("Fehler beim loeschen des Kunden Display " . $command1);
	}
	//print_r($output);
}

function display_loeschen_explora()
{
	
	if(defined('KUNDENANZEIGE_COM_PORT') && strlen(KUNDENANZEIGE_COM_PORT) > 0) $PORT = KUNDENANZEIGE_COM_PORT;
	else $PORT="COM6:";
	$handle = fopen($PORT, "w+");
	fwrite($handle, "\x0C"); // Display loeschen
	fclose($handle);
	
}

function kundenanzeige_ausgeben($produkt_kd, $stk_kd, $summe_kd, $gesamtsumme_kd)
{

	// Stück hat 3 Zeichen (über 100 Stück haben wir Pech)
	// Stück hat schon deutsches Format, wieder zurückwandeln
	$stk_kd=str_replace('.', '', $stk_kd);
	$stk_kd=str_replace(',', '.', $stk_kd);
	$stk_kd=number_format($stk_kd,0,"","");
	$stk_kd=str_pad($stk_kd."x", 3, " ", STR_PAD_RIGHT);
	
	//Gesamtpreis je Produkt hat maximal 8 Zeichen - ab 10.000,00 Euro wie gehabt Pech
	$laenge_summe=strlen($summe_kd);   // Wie lange ist der Preis tatsächlich?
	
	//Produktname ist 20 minus die Länge der Summe minus 4 (3 zeichen für Stück Länge) und 1 Leerzeichen
	$produkt_laenge=20-$laenge_summe-4;

		$replPat=array('/ß/', '/&/', '/€/');
		$repl=array('ss', 'u.', 'EUR');
		$produkt_kd=preg_replace($replPat, $repl, $produkt_kd);

	$diff=strlen($produkt_kd)-mb_strlen($produkt_kd, 'UTF-8');
	$produkt_kd=substr($produkt_kd,0,$produkt_laenge);
	
	
	$produkt_laenge+=$diff;
	$produkt_kd=str_pad($produkt_kd, $produkt_laenge, " ", STR_PAD_RIGHT);
	$produkt_kd=$produkt_kd . " ";
	
	#$xT=iconv_strlen($produkt_kd,'UTF-8');
	
	
		
	$zeile1_kd=$stk_kd . $produkt_kd . $summe_kd;	
	
	if ( strtoupper(KUNDENANZEIGE_TYP) == 'NETTUN' ){

	}
	
	
	$gesamtsumme_kd=str_pad($gesamtsumme_kd, 12, " ", STR_PAD_LEFT);
	$zeile2_kd="Gesamt: " . $gesamtsumme_kd;
	

	if ( strtolower(KUNDENANZEIGE_TYP) != 'aus')
	{
		if ( strtoupper(KUNDENANZEIGE_TYP) == 'NETTUN' )
		{
			display_anzeigen_nettun($zeile1_kd, $zeile2_kd);
		}
		if ( strtoupper(KUNDENANZEIGE_TYP) == 'EXPLORA' )
		{
			
			display_anzeigen_explora($zeile1_kd, $zeile2_kd);
		}
	
	}
}


function kundenanzeige_ausgeben_text($zeile1, $zeile2)
{
	$zeile1=str_pad($zeile1, 20, " ", STR_PAD_BOTH);
	$zeile2=str_pad($zeile2, 20, " ", STR_PAD_BOTH);
	//$zeile1=iconv("UTF-8", "ISO-8859-1", $zeile1);
	//$zeile2=iconv("UTF-8", "ISO-8859-1", $zeile2);
	
	if ( strtolower(KUNDENANZEIGE_TYP) != 'aus')
	{
		if ( strtoupper(KUNDENANZEIGE_TYP) == 'NETTUN' )
		{
			display_anzeigen_nettun($zeile1, $zeile2);
		}
		if ( strtoupper(KUNDENANZEIGE_TYP) == 'EXPLORA' )
		{
			display_anzeigen_explora($zeile1, $zeile2);
		}
	}
	
}

function kundenanzeige_loeschen()
{
	if ( strtolower(KUNDENANZEIGE_TYP) != 'aus')
	{
		if ( strtoupper(KUNDENANZEIGE_TYP) == 'NETTUN' )
		{
			display_loeschen_nettun();
		}
		if ( strtoupper(KUNDENANZEIGE_TYP) == 'EXPLORA' )
		{
			display_loeschen_explora();
		}
	}
}

//display_anzeigen_explora("ab####ööööüüü€c", "aaßßadef");

?>