Dr. Arne JachensDr. Arne Jachens

php Library

genDTAUS

Keine Erläuterungen gefunden.

<?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";      # < 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);
    $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

1globals.php
2readData.php
3XML_readFile.php
4fraktal.php
5fileGrep.php
6XML_extractTag.php
7writeNamedData.php
8readXmlFile.php
9readNamedData.php
10XML_findAllElements.php
11readFromStdIn.php
12plotResult.php
13dtaus.php
14pdf.php
15fitData.php
16XML_extractElement.php
17readFilenames.php
18writeData.php
19genDTAUS.php
20closeFigures.php
21XML_extractAttribute.php
22enumerateFiles.php
23db.php
24polynominalFit.php
25LaTeXbrief.php
26hex2dec.php

Der gesamte Sourcecode darf gemäß GNU General Public License weiterverbreitet werden.