<?php
/**
 * Voorbeeld van een PHP script dat de voorraadmutaties (incrementele methode)
 * die Hexon vestuurt verwerkt
 *
 */

// Optioneel: Controleer de logingegevens (HTTP BASIC AUTH)

$xmldoc = file_get_contents('php://input');

$xml = parseXml($xmldoc);

// Welke actie moeten we uitvoeren (add/change/delete)
switch((string)$xml['actie']) {
	case 'add':
		// Controles uitvoeren
		controleer_voertuig($xml);

		// Voertuig toevoegen aan database
		$sql = 'INSERT INTO voertuigen (hexon_nr, kenteken, merk) VALUES ('. (string) $xml->voertuignr_hexon .', "'. addslashes((string) $xml->kenteken) .'", "'. addslashes((string) $xml->merk) .'")';
		// ...

		// Foto's opslaan
		verwerk_fotos($xml->afbeeldingen);
		break;

	case 'change':
		// Controles uitvoeren
		controleer_voertuig($xml);

		// Voertuig wijzigen in database
		$sql = 'UPDATE voertuigen SET kenteken = "'. addslashes((string) $xml->kenteken) .'", merk = "'. addslashes((string) $xml->merk) .'" WHERE hexon_nr = '. $xml->voertuignr_hexon .' LIMIT 1';
		// ...

		// Foto's opnieuw ophalen
		verwerk_fotos($xml->afbeeldingen);
		break;

	case 'delete':
		// Voertuig verwijderen uit database
		$sql = 'DELETE FROM voertuigen WHERE hexon_nr = '. (string) $xml->voertuignr_hexon .' LIMIT 1';
		// ...
		break;
}

// Alles is goed gegaan
print("1");

function parseXml($xmldoc) {
	// XML inlezen met je favoriete XML-parser. Het voorbeeld gebruikt simpleXML.
	$xml = @simplexml_load_string($xmldoc);
	if(!$xml) {
		// Foutmelding teruggeven aan server van Hexon
		print("Geen geldige XML ontvangen");
		exit;
	}
}

function controleer_voertuig($xml) {
	if(empty($xml->fotos)) {
		// Foutmelding teruggeven aan server van Hexon
		print("Op de eigen website zijn alleen voertuigen met foto toegestaan");
		exit;
	}
}

function verwerk_fotos($fotos) {
	foreach($fotos as $foto_nr => $foto_url) {
		$bestandsnaam = 'fotos/'. $_GET['hexon_nr'] .'-'. $foto_nr .'.jpg';

		$imgdata = file_get_contents($foto_url);
		file_put_contents($bestandsnaam, $imgdata);
	}
}

