Dr. Arne Jachens

Arnes Skriptbibliothek

dtaus

Wird verwendet von:

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>";

}
?>
1fraktal.php
2VereinsverwaltungKartei.php
3VereinsverwaltungKarteikarte.php
4VereinsverwaltungKonto.php
5VereinsverwaltungLastschriften.php
6VereinsverwaltungMenue.php
7whichLengthDoWeHaveInXfigFile.php
8XML_extractAttribute.php
9XML_extractElement.php
10XML_extractTag.php
11XML_findAllElements.php
12XML_readFile.php
13writeNamedData.php
14menu.php
15content.php
16cms.php
17indexCms.php
18areaOfPolygon.php
19areaOfTriangle.php
20calculateAreasOfPolygonsInXfig.php
21calculateMeanStd.php
22checkChanges.php
23closeFigures.php
24db.php
25distanceOfPoints.php
26dtaus.php
27enumerateFiles.php
28fileGrep.php
29fitData.php
30fotoalbum.php
31genAlbum.php
32genDTAUS.php
33genFotoalbum.php
34genThumbnails.php
35globals.php
36hex2dec.php
37LaTeXbrief.php
38norm.php
39pdf.php
40plotResult.php
41pointsOfPolygon.php
42polynominalFit.php
43readData.php
44readDymolaOuput.php
45readFilenames.php
46readFromStdIn.php
47readNamedData.php
48readXmlFile.php
49searchMedian.php
50sortIEindex.php
51sortIntoBins.php
52sortPDF.php
53synchronise.php
54synchroniseDirectories.php
55Vereinsverwaltung.php
56writeData.php

 

gnuplot

gnuplot is used to visualise the results - via script you can do infinite diagrams in 1 second.
Run 'test' in gnuplot to get an owerview of the available line- and symbolstyles.