You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

207 line
7.7 KiB

  1. <?php
  2. $client = new user('',$userId);
  3. $client->konto = new konto($client->userId);
  4. $numBewegungen = count($client->konto->kontoBewegungen);
  5. /* Lies Kinder und Partner für die Familienpraemie ein */
  6. $tmpkinder = $client->getChildren(true);
  7. $tmppartners = $client->getPartners();
  8. $kinder = array();
  9. if ($tmpkinder) {
  10. foreach ($tmpkinder as $kind)
  11. {
  12. if ($kind->userId)
  13. {
  14. $konto = new konto($kind->userId);
  15. // if ($konto->hasminbestellpunkte())
  16. // {
  17. array_push($kinder,$kind);
  18. // }
  19. }
  20. }
  21. }
  22. $partners = array();
  23. if ($tmppartners) {
  24. foreach ($tmppartners as $partner)
  25. {
  26. if ($partner->userId)
  27. {
  28. $konto = new konto($partner->userId);
  29. if ($konto->hasminbestellpunkte())
  30. {
  31. array_push($partners,$partner);
  32. }
  33. }
  34. }
  35. }
  36. $client->writeaddress($loggedIn->windowslogin,$loggedIn->name, $loggedIn->email);
  37. if (!empty($submitted) && $points != '' && !empty($description))
  38. {
  39. $errormsg = '';
  40. if ($praemienid) {
  41. $praemie = new praemie($praemienid);
  42. if (!$praemie->id)
  43. {
  44. /* Context: praemienid (form) = praemienhmid (db) */
  45. $praemie = $praemie->getPraemieByHmNr($praemienid);
  46. if ($praemie->id)
  47. {
  48. $praemienhmnr = $praemienid;
  49. $praemienid = $praemie->id;
  50. }
  51. }
  52. }
  53. if ($praemie->familienpraemie) {
  54. if ((!$valuekind) ||(!$valuepartner)) {
  55. $errormsg = 'Kein Kind angegeben\n';
  56. } else {
  57. $eligible = true;
  58. // Berechtigung pruefen. Genuegend Punkte? Bereits Geldpraemie bestellt?
  59. foreach($valuekind as $kindid => $value) {
  60. if ($value <= 0) {
  61. continue;
  62. }
  63. $kinduser = new user(0,$kindid);
  64. $konto = new konto($kinduser->userId);
  65. if (($konto->praemienlimit($praemienid) || ($konto->geldpraemienlimit($praemienid)))) {
  66. $errormsg = 'Das Kind <b>' . $kinduser->vorname . '</b> hat bereits eine Geldpraemie in diesem Jahr bestellt.';
  67. $eligible = false;
  68. break;
  69. } else {
  70. }
  71. }
  72. foreach($valuepartner as $parentid => $value) {
  73. if ($errormsg) {
  74. break;
  75. }
  76. if ($value <= 0) {
  77. continue;
  78. }
  79. $parentuser = new user(0,$parentid);
  80. $konto = new konto($parentuser->userId);
  81. if ($konto->getsaldo() < $value) {
  82. $errormsg = 'Das Elternteil <b>' . $parentuser->vorname . '</b> hat nicht gen&uuml;gend Punkte';
  83. $eligible = false;
  84. break;
  85. } elseif (($konto->praemienlimit($praemienid) || ($konto->geldpraemienlimit($praemienid)))) {
  86. $errormsg = 'Das Elternteil <b>' . $parentuser->vorname . '</b> hat bereits eine Geldpraemie in diesem Jahr bestellt.';
  87. $eligible = false;
  88. break;
  89. }
  90. }
  91. if ($eligible) {
  92. /* Kinder */
  93. foreach($valuekind as $kindid => $value) {
  94. if ($value <= 0) {
  95. continue;
  96. }
  97. $kinduser = new user(0,$kindid);
  98. $konto = new konto($kinduser->userId);
  99. // Buche ab
  100. $row = array();
  101. $row['userId'] = $kinduser->userId;
  102. $row['datum'] = dateToTimestamp($datum);
  103. $row['datumerwerb'] = convertdate($datum);
  104. $row['beschreibung'] = $description;
  105. $row['wert'] = 0-$value;
  106. if ($praemienid) {
  107. $row['praemienid'] = $praemienid;
  108. }
  109. $kinduser->konto = $konto;
  110. $kontoBewegung = new kontobewegung($row);
  111. $kinduser->konto->addKontobewegung($kontoBewegung);
  112. $loggedIn->log($description , $kinduser->userId);
  113. // Lese Kontostand neu ein, damit neue Bewegung richtig einsortiert wird
  114. $kinduser->konto = new konto($kinduser->userId);
  115. }
  116. /* Eltern */
  117. foreach($valuepartner as $parentid => $value) {
  118. if ($errormsg) {
  119. break;
  120. }
  121. if ($value <= 0) {
  122. continue;
  123. }
  124. $parentuser = new user(0,$parentid);
  125. $konto = new konto($parentuser->userId);
  126. // Buche ab
  127. $row = array();
  128. $row['userId'] = $parentuser->userId;
  129. $row['datum'] = dateToTimestamp($datum);
  130. $row['datumerwerb'] = convertdate($datum);
  131. $row['beschreibung'] = $description;
  132. $row['wert'] = 0-$value;
  133. if ($praemienid) {
  134. $row['praemienid'] = $praemienid;
  135. }
  136. $parentuser->konto = $konto;
  137. $kontoBewegung = new kontobewegung($row);
  138. $parentuser->konto->addKontobewegung($kontoBewegung);
  139. $loggedIn->log($description , $parentuser->userId);
  140. // Lese Kontostand neu ein, damit neue Bewegung richtig einsortiert wird
  141. $parentuser->konto = new konto($parentuser->userId);
  142. }
  143. }
  144. if (!$errormsg) {
  145. print "<h2>Pr&auml;mie wurde gebucht</h2>\n";
  146. }
  147. }
  148. } else { /* keine Familienpraemie: */
  149. if (count($praemie->zusaetze) == 1)
  150. {
  151. $praemienhmid = $praemie->zusaetze[0]->hmnr;
  152. } else {
  153. /* FIXME */
  154. $praemienhmid = 0;
  155. }
  156. if ($praemienhmnr) $praemienhmid = $praemienhmnr;
  157. $description = dbEscapeString($description);
  158. $row = array();
  159. $row['userId'] = $client->userId;
  160. $row['datum'] = dateToTimestamp($datum);
  161. $row['datumerwerb'] = convertdate($datum);
  162. $row['beschreibung'] = $description;
  163. $row['wert'] = 0-$points;
  164. if ($praemienid) {
  165. $row['praemienid'] = $praemienid;
  166. }
  167. if ($praemienhmid) {
  168. $row['praemienhmid'] = $praemienhmid;
  169. }
  170. $kontoBewegung = new kontobewegung($row);
  171. $client->konto->addKontobewegung($kontoBewegung);
  172. $numBewegungen++;
  173. $loggedIn->log($description , $client->userId);
  174. // Lese Kontostand neu ein, damit neue Bewegung richtig einsortiert wird
  175. $client->konto = new konto($client->userId);
  176. print "<h2>Pr&auml;mie wurde gebucht</h2>\n";
  177. }
  178. if ($errormsg != '') {
  179. print "<h2>$errormsg</h2>\n";
  180. }
  181. }
  182. if (!$client->checklegalage()) {
  183. $liste = new Praemienliste(U18PRAEMIEN);
  184. $praemien = $liste->getPraemienSorted();
  185. $liste = new Praemienliste(UPRAEMIEN);
  186. $praemien = array_merge($praemien , $liste->getPraemienSorted());
  187. } else {
  188. $liste = new Praemienliste(O18PRAEMIEN);
  189. $praemien = $liste->getPraemienSorted();
  190. $liste = new Praemienliste(U18PRAEMIEN);
  191. $praemien = array_merge($praemien , $liste->getPraemienSorted());
  192. $liste = new Praemienliste(UPRAEMIEN);
  193. $praemien = array_merge($praemien , $liste->getPraemienSorted());
  194. }
  195. include("views/$module/addbonus.php");
  196. ?>