Zum Inhalt springen

DTAUS Klasse

.DTAUS Dateien sind eigentlich relativ einfach aufgebaut – dementsprechend unkompliziert ist auch entsprechende Klasse zur Erstellung dieser. Die Klasse soll hauptsächlich zur Orientierung dienen, die Variablennamen sind verständlich gewählt. Eine Gewähr auf Vollständigkeit, Sicherheit oder korrekter Funktion wird nicht gegeben.

<?php

class dtaus  {
// Standardwerte
var $mBLZ = „575642312“;
var $mKonto = „“;
var $mAuftraggeber = „“;
var $mTxt = „“;
var $mSummeC = 0;
var $mSummeBlz = 0;
var $mSummeKonto = 0;
var $mSummeBetrag = 0;
var $mFilePath = „d:/“;
var $mFileName = „dtaus0.txt“;
var $mFile = „“;
var $mReferenz = „0000000000“;
var $mAusfuehrung = „“;
var $mTyp = „L“;    //L = Lastschrift; G = Überweisung

function dtaus ($cAuftraggeber, $cKonto, $cBlz, $cTyp, $cTxt) {
$this->mAuftraggeber = str_pad (substr($cAuftraggeber,0,27), 27);
$this->mKonto = str_pad ($cKonto, 10, „0“, STR_PAD_LEFT);
$this->mBLZ = str_pad ($cBlz, 8, „0“, STR_PAD_LEFT);
$this->mTyp = str_pad ($cTyp, 1);
$this->mTxt = str_pad ($cTxt, 5);
$this->mAusfuehrung = date („tmY“, time());
If ($cTyp == „G“) {
$this->mFileName = „dtaus1.txt“;
}
If ($cTyp == „L“) {
$this->mFileName = „dtaus0.txt“;
}
}

Function Job ($gName, $gKonto, $gBLZ, $gBetrag, $gVz, $gNummer) {
$gName = str_pad ($gName, 27);
$gKonto = str_pad ($gKonto, 10, „0“, STR_PAD_LEFT);
$gBLZ = str_pad ($gBLZ, 8, „0“, STR_PAD_LEFT);
$gBetrag = str_pad(($gBetrag * 100), 11, „0“, STR_PAD_LEFT);
$gNummer = str_pad ($gNummer, 11, „0“, STR_PAD_LEFT);
$s = „C00000000“ . $gBLZ . $gKonto . „0“ . $gNummer .  „0“  .  $this->mTxt . “ 00000000000″ . $this->mBLZ . $this->mKonto . $gBetrag . “   “ . $gName . “        “    . $this->mAuftraggeber ;
$gVz = substr($gVz,0,81);

$AnzVz = ceil(strlen($gVz) / 27);
switch ($AnzVz) {
Case 2:
$s = „0216“ . $s . str_pad(substr($gVz,0,27),27) . „1  0102″ . str_pad( substr($gVz,27,27),27) . str_repeat(“ „, 40);
break;
case 3:
$s = „0245“ . $s . str_pad(substr($gVz,0,27),27) . „1  0202“ . str_pad( substr($gVz,27,27),27) . „02“ . str_pad( substr($gVz,54,27),27) . str_repeat(“ „, 11);
break;
default:        $s = „0187“ . $s . str_pad(substr($gVz,0,27),27) . „1  00                                                                     „;
}

$this->mSummeC = $this->mSummeC + 1;
$this->mSummeBlz = $this->mSummeBlz + $gBLZ;
$this->mSummeKonto = $this->mSummeKonto + $gKonto;
$this->mSummeBetrag = $this->mSummeBetrag + $gBetrag;
$this->mFile =  $this->mFile .  $s;
}

Function CreateFile () {

header(„Content-Type: application/text“);
header(„Content-Disposition: attachment; filename=$this->mFileName“);
header(„Pragma: no-cache“);
header(„Expires: 0“);

$a = „0128A“ . $this->mTyp . „K“ . $this->mBLZ . „00000000“ . $this->mAuftraggeber . date(„dmy“, time() ) . “    “ . $this->mKonto . $this->mReferenz . “               “    . $this->mAusfuehrung . “                        1″;
$c = $this->mFile;
$e =  „0128E     “ . str_pad ($this->mSummeC, 7, „0“, STR_PAD_LEFT) . „0000000000000“ . str_pad ($this->mSummeKonto, 17, „0“, STR_PAD_LEFT) . str_pad ($this->mSummeBlz, 17, „0“, STR_PAD_LEFT) . str_pad ($this->mSummeBetrag, 13, „0“, STR_PAD_LEFT) . “                                                   „;

$s = strtoupper ($a . $c . $e);

echo $s;
exit;

}

}

?>