Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

215 linhas
8.2 KiB

  1. <?
  2. include ('../functions.php');
  3. // repairbeschreibungen();
  4. // getbestellungen();
  5. repairhmnr();
  6. exit;
  7. function repairhmnr() {
  8. $startdate = '2011-01-01 00:00:00';
  9. $enddate = '2011-05-31 23:59:59';
  10. $query = "SELECT * from kontobewegungen
  11. WHERE datum >= UNIX_TIMESTAMP('$startdate')
  12. AND datum <= UNIX_TIMESTAMP('$enddate')
  13. AND praemienid != ''
  14. AND wert < 0
  15. ORDER by datum";
  16. $result = mysql_query($query) or error("Cannot select: $query - " . mysql_error());
  17. print "Results: " . mysql_num_rows($result) . "\n";
  18. $i=0;
  19. while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
  20. $pkey = $row['pkey'];
  21. $datum = date('Y-m-d',$row['datum']);
  22. $beschreibung = $row['beschreibung'];
  23. $praemienid = $row['praemienid'];
  24. $praemienhmid = $row['praemienhmid'];
  25. $name = '';
  26. $zusatz = '';
  27. if (!preg_match('/Bestellung der Pr.mie:? (.*)$/',$beschreibung,$matches)) {
  28. die ("Kein Prämienname gefunden: $beschreibung, $pkey\n");
  29. }
  30. $praemienname = $matches[1];
  31. $zusatz = '';
  32. if (preg_match('/^(.*) - (.+)$/',$praemienname,$matches)) {
  33. $praemienname = $matches[1];
  34. $zusatz = $matches[2];
  35. }
  36. $praemienname = str_replace(' - ','',$praemienname);
  37. if (preg_match('/^Spende/',$praemienname)) {
  38. continue;
  39. }
  40. /* Search for praemie */
  41. $subquery = "SELECT * FROM praemien
  42. WHERE id = $praemienid";
  43. $subresult = mysql_query($subquery) or die("Cannot select: $subquery");
  44. if (mysql_num_rows($subresult) == 0) {
  45. die("Cannot find Praemie $praemienname ($praemienid) - $subquery\n");
  46. }
  47. $subrow = mysql_fetch_array($subresult);
  48. $geldpraemie = $subrow['geldpraemie'];
  49. if ($geldpraemie == 1) { continue; }
  50. $i++;
  51. /* Find Artikel */
  52. $subquery = "SELECT * FROM praemienartikel
  53. WHERE praemienid = $praemienid";
  54. $subresult = mysql_query($subquery) or die("Cannot select: $subquery");
  55. if (mysql_num_rows($subresult) == 0) {
  56. print "Cannot find Artikel $praemienname\n";
  57. continue;
  58. }
  59. if (mysql_num_rows($subresult) > 1) {
  60. if ($zusatz == '') {
  61. $datum = $row['datum'];
  62. print "Es gibt mehrere Artikel zur Praemie, aber im Kontoauszug ist keiner vermerkt: ($pkey) ($praemienid) $praemienname" . date('Y-m-d',$datum) . "\n";
  63. continue;
  64. }
  65. $praemienhmnr = 0;
  66. while ($subrow = mysql_fetch_array($subresult))
  67. {
  68. $anzeige = $subrow['anzeige'];
  69. # print "Anzeige: '$anzeige', Zusatz: '$zusatz'\n";
  70. if ($anzeige == $zusatz) {
  71. $praemienhmnr = $subrow['hmnr'];
  72. break;
  73. }
  74. }
  75. if ($praemienhmnr == 0) {
  76. print "Konnte Artikel nicht finden: ($praemienid) $praemienname - $zusatz\n";
  77. exit;
  78. }
  79. } else {
  80. $subrow = mysql_fetch_array($subresult);
  81. $praemienhmnr = $subrow['hmnr'];
  82. }
  83. // if ($zusatz != '') {
  84. if ($praemienhmid != $praemienhmnr) {
  85. if ($praemienhmnr == '') {
  86. die ("Kann Praemienhmnr nicht finden:" .utf8_encode($praemienname) . ' - ' . utf8_encode($zusatz) . "($praemienhmid, $praemienhmnr, $pkey)\n");
  87. }
  88. print utf8_encode($praemienname) . ' - ' . utf8_encode($zusatz) . "($praemienhmid, $praemienhmnr, $pkey)\n";
  89. $subquery = "UPDATE kontobewegungen
  90. SET praemienhmid = $praemienhmnr
  91. WHERE pkey = $pkey";
  92. mysql_query($subquery) or die(mysql_error());
  93. }
  94. // }
  95. }
  96. print "Processed $i lines\n";
  97. }
  98. function getbestellungen() {
  99. $startdate = '2011-01-01 00:00:00';
  100. $enddate = '2011-05-31 23:59:59';
  101. $query = "SELECT * from kontobewegungen
  102. WHERE datum >= UNIX_TIMESTAMP('$startdate')
  103. AND datum <= UNIX_TIMESTAMP('$enddate')
  104. AND praemienid != ''
  105. AND wert < 0
  106. ORDER by datum";
  107. $result = mysql_query($query) or error("Cannot select: $query");
  108. while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
  109. print ".";
  110. $pkey = $row['pkey'];
  111. $datum = date('Y-m-d',$row['datum']);
  112. $beschreibung = $row['beschreibung'];
  113. $praemienid = $row['praemienid'];
  114. $name = '';
  115. if (!preg_match('/Bestellung der Pr.mie:? (.*)$/',$beschreibung,$matches)) {
  116. die ("Kein Prämienname gefunden: $beschreibung, $pkey\n");
  117. }
  118. $praemienname = $matches[1];
  119. if (preg_match('/^Spende/',$praemienname)) {
  120. continue;
  121. }
  122. $zusatz = '';
  123. if (preg_match('/^(.*) - (.+)$/',$praemienname,$matches)) {
  124. $praemienname = $matches[1];
  125. $zusatz = $matches[2];
  126. }
  127. $praemienname = str_replace(' - ','',$praemienname);
  128. $subquery = "SELECT name FROM praemien
  129. WHERE id = $praemienid";
  130. $subresult = mysql_query($subquery) or error("Cannot select: $subquery");
  131. if (mysql_num_rows($subresult) > 1) {
  132. print $datum . ' - ' . $praemienid . ' - ' .
  133. utf8_encode($praemienname) . ' - ' .
  134. utf8_encode($name) . "\n";
  135. die("Mehr als eine Praemie gefunden: $pkey\n");
  136. }
  137. if (mysql_num_rows($subresult) == 0) {
  138. print $datum . ' - ' . $praemienid . ' - ' .
  139. utf8_encode($praemienname) . ' - ' .
  140. utf8_encode($name) . "\n";
  141. die("Keine Praemie gefunden: $pkey\n");
  142. } else {
  143. $row = mysql_fetch_array($subresult,MYSQL_ASSOC);
  144. $name = $row['name'];
  145. }
  146. print $datum . ' - ' . $praemienid . ' - ' .
  147. utf8_encode($praemienname) . ' - ' .
  148. utf8_encode($name) . "\n";
  149. if ($praemienname != $name) {
  150. print "Falsch: $pkey\n";
  151. $id = getpraemiebyname($praemienname);
  152. print "Eventuell: $id\n";
  153. #exit;
  154. }
  155. }
  156. }
  157. function repairbeschreibungen() {
  158. $query = 'SELECT pkey, kommentar, beschreibung
  159. FROM kontobewegungen
  160. WHERE 1';
  161. $result = mysql_query($query);
  162. while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
  163. {
  164. $pkey = $row['pkey'];
  165. $kommentar = $row['kommentar'];
  166. $beschreibung = $row['beschreibung'];
  167. $kommentar = html_entity_decode($kommentar,ENT_QUOTES,'ISO-8859-15');
  168. $beschreibung = html_entity_decode($beschreibung,ENT_QUOTES,'ISO-8859-15');
  169. $kommentarnew = str_replace('\\','',$kommentar);
  170. $beschreibungnew = str_replace('\\','',$beschreibung);
  171. if (($kommentarnew != $kommentar) || ($beschreibungnew != $beschreibung)) {
  172. print 'Kommentar: ' .
  173. utf8_encode($kommentar) .' - '.
  174. utf8_encode($kommentarnew) . "\n";
  175. print 'Beschreib: ' .
  176. utf8_encode($beschreibung) . ' - ' .
  177. utf8_encode($beschreibungnew) . "\n";
  178. }
  179. $subquery = "UPDATE kontobewegungen
  180. SET kommentar = '" . _mysqlescapestring($kommentarnew) . "',
  181. beschreibung = '" . _mysqlescapestring($beschreibungnew) . "'
  182. WHERE pkey = $pkey";
  183. mysql_query($subquery) or error("Kann nicht updaten: $subquery");
  184. }
  185. }
  186. function getpraemiebyname($name) {
  187. $query = "SELECT id FROM praemien WHERE name = '$name'";
  188. $result = mysql_query($query) or die("Cannot select: $query");
  189. if (mysql_num_rows($result) == 0) {
  190. return 0;
  191. }
  192. if (mysql_num_rows($result) > 1) {
  193. print "Mehrere gefunden: $name\n";
  194. return 0;
  195. }
  196. $row = mysql_fetch_array($result,MYSQL_ASSOC);
  197. return $row['id'];
  198. }
  199. ?>