mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-21 14:09:27 +00:00
import leistungsstipendien:
* abbruch, wenn bereits vorhanden fuer stsem * insertamum, insertvon, beschreibungstext
This commit is contained in:
Regular → Executable
+42
-18
@@ -60,7 +60,6 @@ class konto extends basis_db
|
||||
public $aktiv;
|
||||
public $credit_points;
|
||||
public $zahlungsreferenz;
|
||||
public $anmerkung;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
@@ -117,7 +116,6 @@ class konto extends basis_db
|
||||
$this->vornamen = $row->vornamen;
|
||||
$this->credit_points = $row->credit_points;
|
||||
$this->zahlungsreferenz = $row->zahlungsreferenz;
|
||||
$this->anmerkung = $row->anmerkung;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -193,7 +191,7 @@ class konto extends basis_db
|
||||
{
|
||||
|
||||
//Neuen Datensatz einfuegen
|
||||
$qry='BEGIN;INSERT INTO public.tbl_konto (person_id, studiengang_kz, studiensemester_kurzbz, buchungsnr_verweis, betrag, buchungsdatum, buchungstext, mahnspanne, buchungstyp_kurzbz, updateamum, updatevon, insertamum, insertvon, credit_points, zahlungsreferenz, anmerkung) VALUES('.
|
||||
$qry='BEGIN;INSERT INTO public.tbl_konto (person_id, studiengang_kz, studiensemester_kurzbz, buchungsnr_verweis, betrag, buchungsdatum, buchungstext, mahnspanne, buchungstyp_kurzbz, updateamum, updatevon, insertamum, insertvon, credit_points) VALUES('.
|
||||
$this->db_add_param($this->person_id, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->studiensemester_kurzbz).', '.
|
||||
@@ -207,9 +205,7 @@ class konto extends basis_db
|
||||
$this->db_add_param($this->updatevon).', '.
|
||||
$this->db_add_param($this->insertamum).', '.
|
||||
$this->db_add_param($this->insertvon).', '.
|
||||
$this->db_add_param($this->credit_points).', '.
|
||||
$this->db_add_param($this->zahlungsreferenz).', '.
|
||||
$this->db_add_param($this->anmerkung).');';
|
||||
$this->db_add_param($this->credit_points).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -228,9 +224,7 @@ class konto extends basis_db
|
||||
' updatevon='.$this->db_add_param($this->updatevon).','.
|
||||
' insertamum='.$this->db_add_param($this->insertamum).','.
|
||||
' insertvon='.$this->db_add_param($this->insertvon).','.
|
||||
' credit_points='.$this->db_add_param($this->credit_points).','.
|
||||
' zahlungsreferenz='.$this->db_add_param($this->zahlungsreferenz).','.
|
||||
' anmerkung='.$this->db_add_param($this->anmerkung).
|
||||
' credit_points='.$this->db_add_param($this->credit_points).
|
||||
" WHERE buchungsnr='".$this->db_add_param($this->buchungsnr, FHC_INTEGER)."';";
|
||||
|
||||
}
|
||||
@@ -391,9 +385,6 @@ class konto extends basis_db
|
||||
$buchung->nachname = $row->nachname;
|
||||
$buchung->vorname = $row->vorname;
|
||||
$buchung->vornamen = $row->vornamen;
|
||||
$buchung->credit_points = $row->credit_points;
|
||||
$buchung->zahlungsreferenz = $row->zahlungsreferenz;
|
||||
$buchung->anmerkung = $row->anmerkung;
|
||||
|
||||
if($buchung->buchungsnr_verweis!='')
|
||||
{
|
||||
@@ -462,11 +453,11 @@ class konto extends basis_db
|
||||
*/
|
||||
public function getDifferenz($buchungsnr)
|
||||
{
|
||||
$qry = "SELECT
|
||||
$qry = "SELECT
|
||||
sum(betrag) as differenz FROM public.tbl_konto
|
||||
WHERE
|
||||
WHERE
|
||||
(buchungsnr=".$this->db_add_param($buchungsnr, FHC_INTEGER)." OR buchungsnr_verweis=".$this->db_add_param($buchungsnr, FHC_INTEGER).")
|
||||
OR
|
||||
OR
|
||||
(buchungsnr=(SELECT buchungsnr_verweis FROM public.tbl_konto WHERE buchungsnr=".$this->db_add_param($buchungsnr, FHC_INTEGER).") OR buchungsnr_verweis=(SELECT buchungsnr_verweis FROM public.tbl_konto WHERE buchungsnr=".$this->db_add_param($buchungsnr, FHC_INTEGER)."))";
|
||||
|
||||
if($this->db_query($qry))
|
||||
@@ -656,7 +647,7 @@ class konto extends basis_db
|
||||
AND tbl_konto.buchungstyp_kurzbz in(".$this->db_implode4SQL($buchungstyp_kurzbz_array).")";
|
||||
if(!is_null($studiensemester_kurzbz))
|
||||
$subqry.=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
|
||||
|
||||
|
||||
$subqry.="
|
||||
ORDER BY tbl_studiensemester.start DESC";
|
||||
|
||||
@@ -809,7 +800,7 @@ class konto extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert die CreditPoints die ein Studierender für ein Studiensemester zur Verfügung hat
|
||||
* falls dieser einschraenkungen eingetragen hat. Wenn keine Einschraenkung vorhanden ist,
|
||||
@@ -908,7 +899,6 @@ class konto extends basis_db
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->credit_points = $row->credit_points;
|
||||
$this->zahlungsreferenz = $row->zahlungsreferenz;
|
||||
$this->anmerkung = $row->anmerkung;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -924,5 +914,39 @@ class konto extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* ueberprueft, ob leistungsstipendium gebucht ist fuer
|
||||
* student_uid und studiensemester
|
||||
* @param string $uid UserID
|
||||
* @param string $stsem Studiensemester
|
||||
* @return boolean
|
||||
*/
|
||||
public function checkLeistungsstipendium($uid, $stsem)
|
||||
{
|
||||
$subqry = "SELECT tbl_konto.buchungsnr, tbl_konto.buchungsdatum FROM public.tbl_konto, public.tbl_benutzer, public.tbl_student
|
||||
WHERE
|
||||
tbl_konto.studiensemester_kurzbz = ".$this->db_add_param($stsem)."
|
||||
AND tbl_benutzer.uid = ".$this->db_add_param($uid)."
|
||||
AND tbl_benutzer.uid = tbl_student.student_uid
|
||||
AND tbl_benutzer.person_id = tbl_konto.person_id
|
||||
AND tbl_konto.studiengang_kz=tbl_student.studiengang_kz
|
||||
AND tbl_konto.buchungstyp_kurzbz = 'Leistungsstipendium' ORDER BY buchungsnr";
|
||||
|
||||
if($this->db_query($subqry))
|
||||
{
|
||||
if ($this->db_num_rows()==0)
|
||||
return false;
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Abfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
Regular → Executable
+64
-39
@@ -15,7 +15,7 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors:
|
||||
* Authors:
|
||||
*/
|
||||
|
||||
// Requirements here and there
|
||||
@@ -78,7 +78,7 @@ $L_LN_NOT_AVAILABLE = "N/A";
|
||||
function lChkStudiengang($studiengang, $postStudiengang, $rowStudiengang, $studentStudiengang)
|
||||
{
|
||||
$chkStudiengang = false;
|
||||
|
||||
|
||||
foreach($studiengang->result as $val)
|
||||
{
|
||||
if ($val->studiengang_kz == $postStudiengang && $val->kurzbzlang == $rowStudiengang)
|
||||
@@ -87,7 +87,7 @@ function lChkStudiengang($studiengang, $postStudiengang, $rowStudiengang, $stude
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $chkStudiengang && $studentStudiengang == $postStudiengang;
|
||||
}
|
||||
|
||||
@@ -96,6 +96,7 @@ function lChkStudiengang($studiengang, $postStudiengang, $rowStudiengang, $stude
|
||||
*/
|
||||
function lCredit($student, $postStudiensemester, $rowAmount, $rowDate)
|
||||
{
|
||||
$user = get_uid();
|
||||
// To format a date
|
||||
$datum = new datum();
|
||||
// To work on table tbl_konto
|
||||
@@ -108,7 +109,10 @@ function lCredit($student, $postStudiensemester, $rowAmount, $rowDate)
|
||||
$konto->buchungstyp_kurzbz = "Leistungsstipendium";
|
||||
$konto->mahnspanne = 0;
|
||||
$konto->buchungsdatum = $datum->formatDatum($rowDate);
|
||||
|
||||
$konto->buchungstext = "Leistungsstipendium STG ".$postStudiensemester;
|
||||
$konto->insertamum = date('Y-m-d H:i:s');
|
||||
$konto->insertvon = $user;
|
||||
|
||||
return $konto;
|
||||
}
|
||||
|
||||
@@ -133,25 +137,34 @@ function lDebit(&$konto)
|
||||
function lAddToLogArray($code, $lineNumber, $msg)
|
||||
{
|
||||
global $logArray, $errorOccurred, $L_ERROR;
|
||||
|
||||
|
||||
if ($code == $L_ERROR)
|
||||
{
|
||||
$errorOccurred = true;
|
||||
}
|
||||
|
||||
|
||||
$log = new stdClass();
|
||||
$log->code = $code;
|
||||
$log->lineNumber = $lineNumber;
|
||||
$log->msg = $msg;
|
||||
|
||||
|
||||
array_push($logArray, $log);
|
||||
}
|
||||
|
||||
function checkStipExists($uid, $stsem)
|
||||
{
|
||||
$checkkonto = new konto();
|
||||
if ($checkkonto->checkLeistungsstipendium($uid, $stsem))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
// If data has been posted
|
||||
if (isset($_POST["submit"]))
|
||||
{
|
||||
$dataPosted = true;
|
||||
|
||||
|
||||
// If studiensemester and/or studiengang have not been posted
|
||||
if (!$errorOccurred && (empty($_POST["studiensemester"]) || !is_numeric($_POST["studiengang"])))
|
||||
{
|
||||
@@ -204,7 +217,7 @@ if (!$errorOccurred && $dataPosted)
|
||||
$student = new student(); // Object that represents a student
|
||||
$fileRow = false; // Contains a single file row
|
||||
$lineNumber = 0; // lines number counter
|
||||
|
||||
|
||||
// Loops on file rows
|
||||
do
|
||||
{
|
||||
@@ -226,12 +239,12 @@ if (!$errorOccurred && $dataPosted)
|
||||
$rowStudiengang = $fileRow[3];
|
||||
$rowAmount = $fileRow[4];
|
||||
$rowDate = $fileRow[5];
|
||||
|
||||
|
||||
// If this row is not the header
|
||||
if (strtolower($rowName) != "nachname")
|
||||
{
|
||||
// If $rowCode is a matrikelnr gets the uid
|
||||
if ($uid = $student->getUidFromMatrikelnummer($rowCode) === false)
|
||||
if (($uid = $student->getUidFromMatrikelnummer($rowCode)) === false)
|
||||
{
|
||||
// Otherwise $rowCode is already a uid
|
||||
$uid = $rowCode;
|
||||
@@ -245,19 +258,38 @@ if (!$errorOccurred && $dataPosted)
|
||||
// the same which was choose in the interface
|
||||
if (lChkStudiengang($studiengang, $postStudiengang, $rowStudiengang, $student->studiengang_kz) === true)
|
||||
{
|
||||
// Create an object of type konto and fill it with data
|
||||
$konto = lCredit($student, $postStudiensemester, $rowAmount, $rowDate);
|
||||
// Inserting positive amount
|
||||
if ($konto->save(true) === true)
|
||||
if (checkStipExists($uid, $postStudiensemester))
|
||||
{
|
||||
lDebit($konto); // Negative amount
|
||||
if ($konto->save(true) === true) // Inserting negative amount
|
||||
lAddToLogArray(
|
||||
$L_WARNING,
|
||||
$lineNumber,
|
||||
"This file row has been discarted because an entry exists in DB"
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Create an object of type konto and fill it with data
|
||||
$konto = lCredit($student, $postStudiensemester, $rowAmount, $rowDate);
|
||||
// Inserting positive amount
|
||||
if ($konto->save(true) === true)
|
||||
{
|
||||
lAddToLogArray(
|
||||
$L_INFO,
|
||||
$lineNumber,
|
||||
"Added!!!"
|
||||
);
|
||||
lDebit($konto); // Negative amount
|
||||
if ($konto->save(true) === true) // Inserting negative amount
|
||||
{
|
||||
lAddToLogArray(
|
||||
$L_INFO,
|
||||
$lineNumber,
|
||||
"Added!!!"
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
lAddToLogArray(
|
||||
$L_WARNING,
|
||||
$lineNumber,
|
||||
"This file row has been discarted because an error has occurred while inserting in DB"
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -268,14 +300,7 @@ if (!$errorOccurred && $dataPosted)
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lAddToLogArray(
|
||||
$L_WARNING,
|
||||
$lineNumber,
|
||||
"This file row has been discarted because an error has occurred while inserting in DB"
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -324,7 +349,7 @@ if (!$errorOccurred && $dataPosted)
|
||||
}
|
||||
}
|
||||
while($fileRow);
|
||||
|
||||
|
||||
// Close the file handler
|
||||
fclose($fileHandle);
|
||||
}
|
||||
@@ -338,7 +363,7 @@ if (!$errorOccurred && $dataPosted)
|
||||
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<form name="saveLeistungsstipendium" method="post" enctype="multipart/form-data" action="">
|
||||
<table border=0>
|
||||
<tr>
|
||||
@@ -382,7 +407,7 @@ if (!$errorOccurred && $dataPosted)
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
CSV file:
|
||||
CSV file:
|
||||
</td>
|
||||
<td> </td>
|
||||
<td>
|
||||
@@ -399,10 +424,10 @@ if (!$errorOccurred && $dataPosted)
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<table border=0>
|
||||
<tr>
|
||||
<th width="25%" align="left">Status</th>
|
||||
@@ -423,7 +448,7 @@ if (!$errorOccurred && $dataPosted)
|
||||
%s
|
||||
</td>
|
||||
</tr>";
|
||||
|
||||
|
||||
foreach($logArray as $log)
|
||||
{
|
||||
$color = "green"; // great expectations
|
||||
@@ -435,11 +460,11 @@ if (!$errorOccurred && $dataPosted)
|
||||
{
|
||||
$color = "orange";
|
||||
}
|
||||
|
||||
|
||||
echo sprintf($tableRow, $color, $log->code, $log->lineNumber, $log->msg);
|
||||
}
|
||||
?>
|
||||
</table>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user