= UNIX_TIMESTAMP('$startdate') AND datum <= UNIX_TIMESTAMP('$enddate') AND praemienid != '' AND wert < 0 ORDER by datum"; $result = mysql_query($query) or error("Cannot select: $query - " . mysql_error()); print "Results: " . mysql_num_rows($result) . "\n"; $i=0; while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) { $pkey = $row['pkey']; $datum = date('Y-m-d',$row['datum']); $beschreibung = $row['beschreibung']; $praemienid = $row['praemienid']; $praemienhmid = $row['praemienhmid']; $name = ''; $zusatz = ''; if (!preg_match('/Bestellung der Pr.mie:? (.*)$/',$beschreibung,$matches)) { die ("Kein Prämienname gefunden: $beschreibung, $pkey\n"); } $praemienname = $matches[1]; $zusatz = ''; if (preg_match('/^(.*) - (.+)$/',$praemienname,$matches)) { $praemienname = $matches[1]; $zusatz = $matches[2]; } $praemienname = str_replace(' - ','',$praemienname); if (preg_match('/^Spende/',$praemienname)) { continue; } /* Search for praemie */ $subquery = "SELECT * FROM praemien WHERE id = $praemienid"; $subresult = mysql_query($subquery) or die("Cannot select: $subquery"); if (mysql_num_rows($subresult) == 0) { die("Cannot find Praemie $praemienname ($praemienid) - $subquery\n"); } $subrow = mysql_fetch_array($subresult); $geldpraemie = $subrow['geldpraemie']; if ($geldpraemie == 1) { continue; } $i++; /* Find Artikel */ $subquery = "SELECT * FROM praemienartikel WHERE praemienid = $praemienid"; $subresult = mysql_query($subquery) or die("Cannot select: $subquery"); if (mysql_num_rows($subresult) == 0) { print "Cannot find Artikel $praemienname\n"; continue; } if (mysql_num_rows($subresult) > 1) { if ($zusatz == '') { $datum = $row['datum']; print "Es gibt mehrere Artikel zur Praemie, aber im Kontoauszug ist keiner vermerkt: ($pkey) ($praemienid) $praemienname" . date('Y-m-d',$datum) . "\n"; continue; } $praemienhmnr = 0; while ($subrow = mysql_fetch_array($subresult)) { $anzeige = $subrow['anzeige']; # print "Anzeige: '$anzeige', Zusatz: '$zusatz'\n"; if ($anzeige == $zusatz) { $praemienhmnr = $subrow['hmnr']; break; } } if ($praemienhmnr == 0) { print "Konnte Artikel nicht finden: ($praemienid) $praemienname - $zusatz\n"; exit; } } else { $subrow = mysql_fetch_array($subresult); $praemienhmnr = $subrow['hmnr']; } // if ($zusatz != '') { if ($praemienhmid != $praemienhmnr) { if ($praemienhmnr == '') { die ("Kann Praemienhmnr nicht finden:" .utf8_encode($praemienname) . ' - ' . utf8_encode($zusatz) . "($praemienhmid, $praemienhmnr, $pkey)\n"); } print utf8_encode($praemienname) . ' - ' . utf8_encode($zusatz) . "($praemienhmid, $praemienhmnr, $pkey)\n"; $subquery = "UPDATE kontobewegungen SET praemienhmid = $praemienhmnr WHERE pkey = $pkey"; mysql_query($subquery) or die(mysql_error()); } // } } print "Processed $i lines\n"; } function getbestellungen() { $startdate = '2011-01-01 00:00:00'; $enddate = '2011-05-31 23:59:59'; $query = "SELECT * from kontobewegungen WHERE datum >= UNIX_TIMESTAMP('$startdate') AND datum <= UNIX_TIMESTAMP('$enddate') AND praemienid != '' AND wert < 0 ORDER by datum"; $result = mysql_query($query) or error("Cannot select: $query"); while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) { print "."; $pkey = $row['pkey']; $datum = date('Y-m-d',$row['datum']); $beschreibung = $row['beschreibung']; $praemienid = $row['praemienid']; $name = ''; if (!preg_match('/Bestellung der Pr.mie:? (.*)$/',$beschreibung,$matches)) { die ("Kein Prämienname gefunden: $beschreibung, $pkey\n"); } $praemienname = $matches[1]; if (preg_match('/^Spende/',$praemienname)) { continue; } $zusatz = ''; if (preg_match('/^(.*) - (.+)$/',$praemienname,$matches)) { $praemienname = $matches[1]; $zusatz = $matches[2]; } $praemienname = str_replace(' - ','',$praemienname); $subquery = "SELECT name FROM praemien WHERE id = $praemienid"; $subresult = mysql_query($subquery) or error("Cannot select: $subquery"); if (mysql_num_rows($subresult) > 1) { print $datum . ' - ' . $praemienid . ' - ' . utf8_encode($praemienname) . ' - ' . utf8_encode($name) . "\n"; die("Mehr als eine Praemie gefunden: $pkey\n"); } if (mysql_num_rows($subresult) == 0) { print $datum . ' - ' . $praemienid . ' - ' . utf8_encode($praemienname) . ' - ' . utf8_encode($name) . "\n"; die("Keine Praemie gefunden: $pkey\n"); } else { $row = mysql_fetch_array($subresult,MYSQL_ASSOC); $name = $row['name']; } print $datum . ' - ' . $praemienid . ' - ' . utf8_encode($praemienname) . ' - ' . utf8_encode($name) . "\n"; if ($praemienname != $name) { print "Falsch: $pkey\n"; $id = getpraemiebyname($praemienname); print "Eventuell: $id\n"; #exit; } } } function repairbeschreibungen() { $query = 'SELECT pkey, kommentar, beschreibung FROM kontobewegungen WHERE 1'; $result = mysql_query($query); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $pkey = $row['pkey']; $kommentar = $row['kommentar']; $beschreibung = $row['beschreibung']; $kommentar = html_entity_decode($kommentar,ENT_QUOTES,'ISO-8859-15'); $beschreibung = html_entity_decode($beschreibung,ENT_QUOTES,'ISO-8859-15'); $kommentarnew = str_replace('\\','',$kommentar); $beschreibungnew = str_replace('\\','',$beschreibung); if (($kommentarnew != $kommentar) || ($beschreibungnew != $beschreibung)) { print 'Kommentar: ' . utf8_encode($kommentar) .' - '. utf8_encode($kommentarnew) . "\n"; print 'Beschreib: ' . utf8_encode($beschreibung) . ' - ' . utf8_encode($beschreibungnew) . "\n"; } $subquery = "UPDATE kontobewegungen SET kommentar = '" . _mysqlescapestring($kommentarnew) . "', beschreibung = '" . _mysqlescapestring($beschreibungnew) . "' WHERE pkey = $pkey"; mysql_query($subquery) or error("Kann nicht updaten: $subquery"); } } function getpraemiebyname($name) { $query = "SELECT id FROM praemien WHERE name = '$name'"; $result = mysql_query($query) or die("Cannot select: $query"); if (mysql_num_rows($result) == 0) { return 0; } if (mysql_num_rows($result) > 1) { print "Mehrere gefunden: $name\n"; return 0; } $row = mysql_fetch_array($result,MYSQL_ASSOC); return $row['id']; } ?>