Dr. Arne JachensDr. Arne Jachens

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

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.