|
- <?
- include ('../functions.php');
- // repairbeschreibungen();
- // getbestellungen();
- repairhmnr();
- exit;
-
- function repairhmnr() {
- $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 - " . 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'];
- }
- ?>
|