php Library
dtaus
Keine Erläuterungen gefunden.
<?php session_start(); include 'globals.php'; include 'apl.php'; include 'DB.php'; $flag=2; $step=$_GET['step']; if (empty($step)){$step=$_POST['step'];} if (empty($step)){$step="sort";} $jahr=$_POST['jahr']; $IDs=explode(",",$_POST['IDs']); if (!empty($_POST['jahr'])){$step="genDTAUS";} kopf($flag); echo "<h1>DTAUS</h1>"; switch ($step){ case sort: list($goodguys,$badguys)=sortGuys(); break; case genDTAUS: genDTAUS($IDs,$jahr); break; case show: echo "<table>"; echo $_POST['dtaus']; echo "</table>"; break; } fuss($flag); ?> <?php function sortGuys(){ $goodGuys=array(); $badGuysMail=array(); $badGuysPost=array(); $beitragsSumme=0; $IDs=getIDs("active"); for($i=0;$i<count($IDs);$i++){ $flag=true; $Karteikarte=getKarteikarte($IDs[$i]); $beitragsSumme=$beitragsSumme+$Karteikarte[17]; if ($Karteikarte[17]<=0){ #echo "korp. Mitl. ".$Karteikarte[1]."<br>"; $flag=false; }else if ($Karteikarte[18]>=0){ $paied.="<tr><td align='right'>".$Karteikarte[0]."</td> <td>".$Karteikarte[2]." ".$Karteikarte[3]."</td> <td align='right'>".$Karteikarte[17]." €</td></tr>"; $flag=false; }else if ($Karteikarte[22]!="j" | empty($Karteikarte[13]) | empty($Karteikarte[14]) | empty($Karteikarte[15])){ #keine Lastschriftberechtigung if (empty($Karteikarte[6])){ array_push($badGuysPost,$Karteikarte[0]); }else{ array_push($badGuysMail,$Karteikarte[0]); } $flag=false; }else if ($Karteikarte[10]!="D" & $Karteikarte[10]!="Deutschland"){ $undeutsch.="<tr><td>".$Karteikarte[0]."</td><td>".$Karteikarte[10]."</td></tr>"; if (empty($Karteikarte[6])){ array_push($badGuysPost,$Karteikarte[0]); }else{ array_push($badGuysMail,$Karteikarte[0]); } $flag=false; } if ($flag){ array_push($goodGuys,$Karteikarte[0]); } } #i echo "<h2>Summe der jährlichen Zuwendungen</h2>"; echo "<p><strong>".$beitragsSumme." €</strong></p>"; echo "<h2>bereits gezahlt haben</h2>"; echo "<table>".$paied."</table>"; echo "<h2>nicht aus Deutschland, werden aussortiert</h2>"; echo "<table>".$undeutsch."</table>"; echo "<h2>an Lastschrift beteiligen sich</h2>"; for($i=0;$i<count($goodGuys);$i++){ echo $goodGuys[$i].", "; } $ggString=implode(",",$goodGuys); echo "<p><a href='mail.php?what2do=Uve2pay&type=announce&IDs=".$ggString."'> versende Ankündigung</a></p>"; echo "<p>Erzeuge Datenaustauschformat:</p>"; echo "<form action='dtaus.php?step=getDTAUS' method='post'>"; echo "<input name='IDs' type='hidden' size='10' maxlength='10' value='".$ggString."'>"; echo "Jahreszahl: <input name='jahr' type='text' size='4' maxlength='4' value='".date('Y')."'><br>"; echo "<input type='submit' value='DTAUS'></form>"; echo "<h2>Querulanten</h2><p>Müssen per Mail aufgefordert werden, den Beitrag zu überweisen.<br>"; $string=""; for($i=0;$i<count($badGuysMail);$i++){ $string.=$badGuysMail[$i].","; } $string=substr($string,0,strlen($string)-1); echo $string."</p>"; echo "<p><a href='mail.php?what2do=Uve2pay&type=call&IDs=".$string."'> versende Bitte um Zahlung</a><br>"; echo "<a href='mail.php?what2do=Uve2pay&type=remind&IDs=".$string."'> versende Mahnung</a></p>"; $string=""; for($i=0;$i<count($badGuysPost);$i++){ $string.=$badGuysPost[$i].","; } $string=substr($string,0,strlen($string)-1); echo "<p>".$string."<br><a href='brief.php?myref=".$string."'>Serienbrief erstellen</a></p>"; return array($goodguys,$badguys); } ?> <?php function genDTAUS($IDs,$jahr){ echo "<p>Dieses Skript erstellt aus der Mitgliederkartei einen Datensatz im DTAUS-Format, das an die Bank übermittelt werden kann.</p>"; echo "<p>Die abzubuchenden Beträge sind der Jahresbeitrag inklusive freiwilliger jährlicher Spenden gemäß der Mitgliederkartei. </p>"; echo "<p><em>Wenn du nicht ganz genau weisst, was du tust, lass die Finger von diesem Skript!</em> </p>"; $maximumPerDay=2000; #mit Sparkasse vereinbart #------------------------------------------------# # Datensatz A (Datentraeger-Vorsatz) # # Der Datensatz A enthaelt den Diskettenabsender # # und -empfaenger; er ist je logische Datei nur # # einmal vorhanden. # #------------------------------------------------# $BVSM_BLZ="34050000"; $BVSM_Konto="101626"; $absender="BVSM E.V."; # < 27 Zeichen $interneKundenNr=str_pad($interneKundenNr,13,'0'); $BVSM_Konto=str_pad($BVSM_Konto,10,'0',STR_PAD_left); $absender=str_pad($absender,27,' '); $date1=date("dmy"); $date2=date("dmY"); $leerfeld=str_pad($leerfeld,4,' '); $referenznummer="0000000000"; $reserve1=str_pad($reserve1,15,' '); $reserve2=str_pad($reserve2,24,' '); $euro="1"; $DatensatzA="0128ALK".$BVSM_BLZ."00000000".$absender.$date1.$leerfeld.$BVSM_Konto.$referenznummer.$reserve1.$date2.$reserve2.$euro; #echo "<pre>".$DatensatzA."</pre>"; for($df=0;$df<10;$df++){ $anzahl[$df]=0; $summeKto[$df]=0; $summeBLZ[$df]=0; $summeBetrag[$df]=0; $DatensatzC[$df]=""; $DatensatzE[$df]=""; } $summe=0; $df=0; for($i=0;$i<count($IDs);$i++){ $Karteikarte=getKarteikarte($IDs[$i]); # $Karteikarte[18] ist SOLL des Mitgliedskontos if ($summe-$Karteikarte[18]<$maximumPerDay){ $summe=$summe-$Karteikarte[18]; }else{ $summeDTAUS[$df]=$summe; $summe=-$Karteikarte[18]; $df++; } if ($i==count($IDs)-1){$summeDTAUS[$df]=$summe;} #------------------------------------------------# # DatensatzC (Zahlungsaustauschsatz) # # Der Datensatz C enthaelt Einzelheiten ueber # # die auszufuehrenden Auftraege (Lastschriften). # # Er gliedert sich in einen konstanten und einen # # variablen Teil. # #------------------------------------------------# #if ($Karteikarte[0]==3 | $Karteikarte[0]==17){ #test $kontonummer=str_pad($Karteikarte[13],10,'0',STR_PAD_LEFT); $BLZ=$Karteikarte[14]; $bank=$Karteikarte[15]; $betrag=abs($Karteikarte[18]); $satzlaenge="0187"; $reserve3=str_pad($reserve3,11,'0'); $reserve4=str_pad($reserve4,3,' '); $reserve5=str_pad($reserve5,8,' '); $reserve6=str_pad($reserve6,2,' '); $ErwTVerwZ=str_pad($ErwTVerwZ,27,' '); $leerzeichen=str_pad($leerzeichen,11,' '); $html[$df].="<tr><td>".$Karteikarte[0]."</td><td>".abs($Karteikarte[18])."</td></tr>"; # Falls Kontoinhaber abweichend vom Namen if (empty($Karteikarte[16])) { $kontoinhaber=$Karteikarte[3].", ".$Karteikarte[2]; }else{ $kontoinhaber=$Karteikarte[16]; }; $umlaute=array("ä","ö","ü","Ä","Ö","Ü","ß","é"); $ersatz=array("ae","oe","ue","AE","OE","UE","ss","e"); $kontoinhaber=str_replace ($umlaute,$ersatz,$kontoinhaber); #ArJ 2009-08-15 $kontoinhaber = preg_replace("/[^A-Za-z0-9]+/", " ", $kontoinhaber); if(strlen($kontoinhaber)>27){ $kontoinhaber=substr($kontoinhaber,0,27); } $kontoinhaber=strtoupper($kontoinhaber); $betrag=$betrag."00"; #hier werden die Cent ergaenzt $kontoinhaber=str_pad($kontoinhaber,27,' '); $VerwZweck="MITGLNR ".$Karteikarte[0]." BEITRAG ".$jahr; $VerwZweck=str_pad($VerwZweck,27,' '); $betrag=str_pad($betrag,11,'0',STR_PAD_LEFT); $DatensatzC[$df].=$satzlaenge."C".$BVSM_BLZ.$BLZ.$kontonummer.$interneKundenNr."05000 ".$reserve3.$BVSM_BLZ.$BVSM_Konto.$betrag.$reserve4.$kontoinhaber.$reserve5.$absender.$VerwZweck.$euro.$reserve6."00".str_pad($leerzeichen,69,' '); #echo "<pre>".$DatensatzC[$df]."</pre>"; #Pruefsummen $anzahl[$df] =$anzahl[$df] +1; $summeKto[$df] =$summeKto[$df] +$kontonummer; $summeBLZ[$df] =$summeBLZ[$df] +$BLZ; $summeBetrag[$df]=$summeBetrag[$df]+$betrag; #}#test } #i echo "<table>"; for($df=0;$df<count($summeDTAUS);$df++){ #------------------------------------------------# # Datensatz E (Datentraeger-Nachsatz) # # Der Datensatz E dient der Abstimmung; er ist # # je logische Datei nur einmal vorhanden. # #------------------------------------------------# $reserve7=str_pad($reserve7,5,' '); $reserve8=str_pad($reserve8,13,'0'); $reserve9=str_pad($reserve9,51,' '); $anzahl[$df]=str_pad($anzahl[$df],7,'0',STR_PAD_LEFT); $summeKto[$df]=str_pad($summeKto[$df],17,'0',STR_PAD_LEFT); $summeBLZ[$df]=str_pad($summeBLZ[$df],17,'0',STR_PAD_LEFT); $summeBetrag[$df]=str_pad($summeBetrag[$df],13,'0',STR_PAD_LEFT); $DatensatzE[$df]="0128E".$reserve7.$anzahl[$df].$reserve8.$summeKto[$df].$summeBLZ[$df].$summeBetrag[$df].$reserve9; $DTAUS[$df]=$DatensatzA.$DatensatzC[$df].$DatensatzE[$df]; #echo "<pre>".$DTAUS[$df]."</pre>"; echo "<tr><td align='right'>".$summeDTAUS[$df]." €</td>"; echo "<td><form action='downloadDTAUS.php' method='post'>"; echo "<input name='dtaus' type='hidden' value='".$DTAUS[$df]."'>"; echo "<input name='df' type='hidden' value='".$df."'>"; echo "<input type='submit' value='DTAUS".$df."'></form></td>"; echo "<td><form action='dtaus.php?step=show' method='post'>"; echo "<input name='dtaus' type='hidden' value='".$html[$df]."'>"; echo "<input type='submit' value='lesbar'></form></td></tr>"; } echo "</table>"; echo "<p>Der erste Button schickt dir das DTAUS-Format, dass du lokal speicherst und dann über das Internetbanking der Sparkasse hochlädst:<ol><li>Banking</li><li>DTA-Datei übertragen</li></ol>Der zweite Button zeigt dir zu dieser DTAUS-Datei die Mitgliedsnummer und den Beitrag, um sie leichter in die Buchführung eingeben zu können. <br><em>Bedenke, dass sich die DTAUS-Dateinen bei einem erneuten Aufruf ändern, nachdem du die ersten Beiträge verbucht hast!. Speichere dir also lieber diese Datein - oder wenn du die Liste ausdruckst, kannst du die Posten zu jeder Buchung abhaken.</em>"; } ?>
Index of Library
Der gesamte Sourcecode darf gemäß GNU General Public License weiterverbreitet werden.