Speichere Gläubiger-ID mit dem Mandat und erlaube auch Mandat für die Vergangenheit, wenn das Datum gleich dem Datum der ältesten offenen Rechnung ist.
Bernd Wurst

Bernd Wurst commited on 2014-01-10 13:23:59
Zeige 2 geänderte Dateien mit 13 Einfügungen und 4 Löschungen.

... ...
@@ -167,7 +167,7 @@ function generate_bezahlcode_image($id)
167 167
 function get_sepamandate() 
168 168
 {
169 169
   $cid = (int) $_SESSION['customerinfo']['customerno'];
170
-  $result = db_query("SELECT id, mandatsreferenz, erteilt, medium, gueltig_ab, gueltig_bis, erstlastschrift, kontoinhaber, adresse, iban, bic, bankname FROM kundendaten.sepamandat WHERE kunde={$cid}");
170
+  $result = db_query("SELECT id, mandatsreferenz, glaeubiger_id, erteilt, medium, gueltig_ab, gueltig_bis, erstlastschrift, kontoinhaber, adresse, iban, bic, bankname FROM kundendaten.sepamandat WHERE kunde={$cid}");
171 171
   $ret = array();
172 172
   while ($entry = mysql_fetch_assoc($result)) {
173 173
     array_push($ret, $entry);
... ...
@@ -196,7 +196,14 @@ function invalidate_sepamandat($id, $date)
196 196
 function sepamandat($name, $adresse, $iban, $bankname, $bic, $gueltig_ab)
197 197
 {
198 198
   $cid = (int) $_SESSION['customerinfo']['customerno'];
199
-  if ($gueltig_ab < date('Y-m-d')) {
199
+  $first_date = date('Y-m-d');
200
+  $invoices = my_invoices();
201
+  foreach ($invoices as $i) {
202
+    if ($i['bezahlt'] == 0 && $i['datum'] < $first_date) {
203
+      $first_date = $i['datum'];
204
+    }
205
+  }
206
+  if ($gueltig_ab < date('Y-m-d') && $gueltig_ab != $first_date) {
200 207
     system_failure('Das Mandat kann nicht rückwirkend erteilt werden. Bitte geben Sie ein Datum in der Zukunft an.');
201 208
   }
202 209
   $alte_mandate = get_sepamandate();
... ...
@@ -217,8 +224,10 @@ function sepamandat($name, $adresse, $iban, $bankname, $bic, $gueltig_ab)
217 224
   }
218 225
   DEBUG('Nächste freie Mandatsreferenz: '. $referenz);
219 226
 
227
+  $glaeubiger_id = config('glaeubiger_id');
228
+
220 229
   $today = date('Y-m-d');
221
-  db_query("INSERT INTO kundendaten.sepamandat (mandatsreferenz, kunde, erteilt, medium, gueltig_ab, kontoinhaber, adresse, iban, bic, bankname) VALUES ('{$referenz}', {$cid}, '{$today}', 'online', '{$gueltig_ab}', '{$name}', '{$adresse}', '{$iban}', '{$bic}', '{$bankname}')");
230
+  db_query("INSERT INTO kundendaten.sepamandat (mandatsreferenz, glaeubiger_id, kunde, erteilt, medium, gueltig_ab, kontoinhaber, adresse, iban, bic, bankname) VALUES ('{$referenz}', '${glaeubiger_id}', {$cid}, '{$today}', 'online', '{$gueltig_ab}', '{$name}', '{$adresse}', '{$iban}', '{$bic}', '{$bankname}')");
222 231
 }
223 232
 
224 233
 
... ...
@@ -54,7 +54,7 @@ if ($m['medium'] == 'legacy') {
54 54
 output('<h3>Stammdaten</h3>
55 55
 <dl>
56 56
 <dt>Mandatsreferenz</dt><dd>'.$m['mandatsreferenz'].'</dd>
57
-<dt>Unsere Gläubiger-ID<dt><dd>'.config('glaeubiger_id').'</dd>
57
+<dt>Unsere Gläubiger-ID<dt><dd>'.$m['glaeubiger_id'].'</dd>
58 58
 </dl>');
59 59
 
60 60
 output('<h3>Gültigkeit</h3>');
61 61