Erfassung Fahrtkosten und Auswertung als Honorarvertrag für KTU

This commit is contained in:
Stefan Puraner
2014-12-03 10:11:36 +00:00
parent 800e81ba68
commit 824a7b8008
10 changed files with 312 additions and 12 deletions
+1
View File
@@ -452,6 +452,7 @@ if(!$error)
$vertrag->vertragstyp_kurzbz=$_POST['vertragstyp_kurzbz'];
$vertrag->betrag=str_replace(',','.',$_POST['betrag']);
$vertrag->bezeichnung = $_POST['bezeichnung'];
$vertrag->anmerkung = $_POST['anmerkung'];
if($errormsg=='')
{
@@ -170,17 +170,23 @@ function MitarbeiterVertragGenerateVertrag(windowdocument)
var vertragstyp_kurzbz = windowdocument.getElementById('mitarbeiter-vertrag-neu-menulist-vertragstyp').value;
var bezeichnung = windowdocument.getElementById('mitarbeiter-vertrag-neu-textbox-bezeichnung').value;
var vertrag_id = windowdocument.getElementById('mitarbeiter-vertrag-neu-textbox-vertrag_id').value;
var anmerkung = windowdocument.getElementById('mitarbeiter-vertrag-neu-textbox-anmerkung').value;
var fahrten = windowdocument.getElementById("mitarbeiter-vertrag-neu-textbox-fahrten").value;
if(betrag=='')
{
alert('Bitte geben Sie einen Betrag ein');
return false;
}
if(vertragstyp_kurzbz == 'fahrtkosten')
betrag = betrag * fahrten;
req.add('betrag',betrag);
req.add('vertragstyp_kurzbz',vertragstyp_kurzbz);
req.add('bezeichnung',bezeichnung);
req.add('vertrag_id',vertrag_id);
req.add('anmerkung',anmerkung);
var anzahl=0;
for (var t = 0; t < numRanges; t++)
@@ -25,6 +25,7 @@ $user = get_uid();
?>
var MitarbeiterVertragNeuBetragOld=0;
var addon = Array();
function MitarbeiterVertragNeuInit(person_id, vertrag_id)
{
@@ -80,6 +81,7 @@ function MitarbeiterVertragNeuInit(person_id, vertrag_id)
vertragstyp_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vertragstyp_kurzbz" ));
betrag = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#betrag" ));
bezeichnung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#bezeichnung" ));
anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" ));
MitarbeiterVertragNeuBetragOld = betrag;
@@ -87,8 +89,16 @@ function MitarbeiterVertragNeuInit(person_id, vertrag_id)
document.getElementById('mitarbeiter-vertrag-neu-textbox-betrag').value=betrag;
MenulistSelectItemOnValue('mitarbeiter-vertrag-neu-menulist-vertragstyp', vertragstyp_kurzbz)
document.getElementById('mitarbeiter-vertrag-neu-textbox-vertrag_id').value=vertrag_id;
document.getElementById('mitarbeiter-vertrag-neu-textbox-anmerkung').value=anmerkung;
}
for(i in addon)
{
if(typeof addon[i].AddonKtuaddEventlistenerVertrag == 'function')
{
addon[i].AddonKtuaddEventlistenerVertrag();
}
}
}
/**
@@ -25,6 +25,8 @@ header("Pragma: no-cache");
header("Content-type: application/vnd.mozilla.xul+xml");
include('../../config/vilesci.config.inc.php');
include('../../include/addon.class.php');
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
@@ -39,7 +41,6 @@ if(isset($_GET['vertrag_id']) && is_numeric($_GET['vertrag_id']))
$vertrag_id = $_GET['vertrag_id'];
else
$vertrag_id='';
?>
<window id="mitarbeiter-vertrag-neu-dialog" title="Neu"
@@ -49,6 +50,15 @@ else
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/mitarbeiter/mitarbeitervertragneudialog.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php" />
<?php
// ADDONS
$addon_obj = new addon();
$addon_obj->loadAddons();
foreach($addon_obj->result as $addon)
{
echo '<script type="application/x-javascript" src="'.APP_ROOT.'addons/'.$addon->kurzbz.'/content/init.js.php" />';
}
?>
<vbox flex="1">
<hbox hidden="true">
@@ -128,7 +138,7 @@ else
<column flex="1"/>
<column flex="8"/>
</columns>
<rows>
<rows id="mitarbeiter-buchung-grid-detail-rows">
<row>
<label value="Bezeichnung" control="mitarbeiter-vertrag-neu-textbox-bezeichnung" />
<hbox>
@@ -140,7 +150,7 @@ else
<label value="Typ" control="mitarbeiter-vertrag-neu-menulist-vertragstyp"/>
<menulist id="mitarbeiter-vertrag-neu-menulist-vertragstyp" disabled="false"
datasources="<?php echo APP_ROOT ?>rdf/vertragstyp.rdf.php"
ref="http://www.technikum-wien.at/vertragstyp" >
ref="http://www.technikum-wien.at/vertragstyp">
<menupopup>
<menuitem value=""
label="-- Keine Auswahl --"
@@ -164,9 +174,16 @@ else
<spacer />
</hbox>
</row>
<row>
<label value="Anmerkung" control="mitarbeiter-vertrag-neu-textbox-anmerkung" />
<hbox>
<textbox id="mitarbeiter-vertrag-neu-textbox-anmerkung" value="" size="80" />
<spacer />
</hbox>
</row>
</rows>
</grid>
</hbox>
<button label="Vertrag erstellen" oncommand="MitarbeiterVertragNeuGenerateVertrag()" />
<button id="mitarbeiter-vertrag-neu-button-speichern" label="Vertrag erstellen" oncommand="MitarbeiterVertragNeuGenerateVertrag()" />
</vbox>
</window>
+10 -3
View File
@@ -129,7 +129,15 @@ if(isset($_GET['bis']))
$params.='&bis='.urlencode($_GET['bis']);
if(isset($_GET['lehreinheit']))
$params.='&lehreinheit='.urlencode($_GET['lehreinheit']);
if(isset($_GET['mitarbeiter_uid']))
$params.='&mitarbeiter_uid='.urlencode($_GET['mitarbeiter_uid']);
if(isset($_GET['vertrag_id']))
{
foreach($_GET['vertrag_id'] as $id)
{
$params.='&vertrag_id[]='.urlencode($id);
}
}
$output = (isset($_GET['output'])?$_GET['output']:'odt');
$rechte = new benutzerberechtigung();
@@ -186,7 +194,7 @@ elseif(in_array($xsl,array('Zertifikat','Diplomurkunde','Diplomzeugnis','Bakkurk
'PrProtokollBakk','PrProtokollDipl','Lehrauftrag','DiplomurkundeEng','Zeugnis','ZeugnisEng','StudienerfolgEng',
'Sammelzeugnis','PrProtDiplEng','PrProtBakkEng','BakkzeugnisEng','DiplomzeugnisEng','statusbericht',
'DiplSupplement','Zutrittskarte','Projektbeschr','Ausbildungsver','AusbildStatus','PrProtBA','PrProtMA',
'PrProtBAEng','PrProtMAEng','Studienordnung','Erfolgsnachweis','ErfolgsnwHead','Studienblatt','LV_Informationen','LVZeugnis','AnwListBarcode')))
'PrProtBAEng','PrProtMAEng','Studienordnung','Erfolgsnachweis','ErfolgsnwHead','Studienblatt','LV_Informationen','LVZeugnis','AnwListBarcode','Honorarvertrag')))
{
if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz'))
{
@@ -227,7 +235,6 @@ else
$xml_url=XML_ROOT.$xml.$params;
// Load the XML source
$xml_doc = new DOMDocument;
+9 -4
View File
@@ -37,7 +37,7 @@ class vertrag extends basis_db
public $updateamum; // timestamp
public $updatevon; // varchar(32)
public $ext_id; // bigint
public $anmerkung; // text
/**
* Konstruktor
@@ -60,6 +60,7 @@ class vertrag extends basis_db
$this->bezeichnung = $row->bezeichnung;
$this->betrag = $row->betrag;
$this->person_id = $row->person_id;
$this->anmerkung = $row->anmerkung;
$this->new=false;
return true;
@@ -116,6 +117,7 @@ class vertrag extends basis_db
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->status = $row->status;
$obj->anmerkung = $row->anmerkung;
$obj->vertragstyp_bezeichnung = $row->vertragstyp_bezeichnung;
@@ -375,7 +377,6 @@ class vertrag extends basis_db
mitarbeiter_uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER).")
AND vertrag_id IS NULL
";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
@@ -391,6 +392,7 @@ class vertrag extends basis_db
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->betreuerart_kurzbz = $row->betreuerart_kurzbz;
$obj->bezeichnung = $row->bezeichnung;
$obj->anmerkung = $row->anmerkung;
$this->result[] = $obj;
}
return true;
@@ -496,6 +498,7 @@ class vertrag extends basis_db
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->betreuerart_kurzbz = $row->betreuerart_kurzbz;
$obj->bezeichnung = $row->bezeichnung;
$obj->anmerkung = $row->anmerkung;
$this->result[] = $obj;
}
return true;
@@ -518,7 +521,7 @@ class vertrag extends basis_db
if($new)
{
$qry = "BEGIN;INSERT INTO lehre.tbl_vertrag(bezeichnung, person_id, vertragstyp_kurzbz, betrag, insertamum, insertvon, updateamum, updatevon)
$qry = "BEGIN;INSERT INTO lehre.tbl_vertrag(bezeichnung, person_id, vertragstyp_kurzbz, betrag, insertamum, insertvon, updateamum, updatevon, anmerkung)
VALUES(".
$this->db_add_param($this->bezeichnung).','.
$this->db_add_param($this->person_id,FHC_INTEGER).','.
@@ -527,7 +530,8 @@ class vertrag extends basis_db
$this->db_add_param($this->insertamum).','.
$this->db_add_param($this->insertvon).','.
$this->db_add_param($this->updateamum).','.
$this->db_add_param($this->updatevon).');';
$this->db_add_param($this->updatevon).','.
$this->db_add_param($this->anmerkung).');';
}
else
@@ -539,6 +543,7 @@ class vertrag extends basis_db
" betrag=".$this->db_add_param($this->betrag).','.
" updateamum=".$this->db_add_param($this->updateamum).','.
" updatevon=".$this->db_add_param($this->updatevon).
" anmerkung=".$this->db_add_param($this->anmerkung).
" WHERE vertrag_id=".$this->db_add_param($this->vertrag_id, FHC_INTEGER,false);
}
+74
View File
@@ -0,0 +1,74 @@
<?php
/* Copyright (C) 2014 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Stefan Puraner <stefan.puraner@technikum-wien.at>
*/
// header für no cache
header("Cache-Control: no-cache");
header("Cache-Control: post-check=0, pre-check=0",false);
header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
header("Pragma: no-cache");
// content type setzen
header("Content-type: application/xhtml+xml");
require_once('../config/vilesci.config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/basis_db.class.php');
require_once('../include/studiensemester.class.php');
$db = new basis_db();
$uid = $_GET["uid"];
$studiensemester = $_GET["studiensemester"];
$studiensemester = new studiensemester($studiensemester);
$rdf_url='http://www.technikum-wien.at/anzahlLehreinheiten/';
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
echo '
<RDF:RDF
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:ANZAHLLEHREINHEITEN="'.$rdf_url.'rdf#"
>
<RDF:Seq about="'.$rdf_url.'liste">
';
$qry = 'SELECT COUNT(DISTINCT(datum)) as anzahl from lehre.tbl_stundenplan '
. 'WHERE mitarbeiter_uid='.$db->db_add_param($uid)
. ' AND (datum BETWEEN '.$db->db_add_param($studiensemester->start).' AND '.$db->db_add_param($studiensemester->ende).');';
if($db->db_query($qry))
{
if($db->db_num_rows() == 1)
{
if($row = $db->db_fetch_object())
{
echo '<RDF:li>
<RDF:Description about="'.$rdf_url.$uid.'">
<ANZAHLLEHREINHEITEN:anzahl><![CDATA['.$row->anzahl.']]></ANZAHLLEHREINHEITEN:anzahl>'
.'</RDF:Description>'
. '</RDF:li>';
}
}
}
else
{
echo "test";
}
?>
</RDF:Seq>
</RDF:RDF>
+169
View File
@@ -0,0 +1,169 @@
<?php
/* Copyright (C) 2014 FH fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Stefan Puraner <stefan.puraner@technikum-wien.at>
*/
header("Content-type: application/xhtml+xml");
require_once('../config/vilesci.config.inc.php');
require_once('../config/global.config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/lehrveranstaltung.class.php');
require_once('../include/studiensemester.class.php');
require_once('../include/mitarbeiter.class.php');
require_once('../include/adresse.class.php');
require_once('../include/kontakt.class.php');
require_once('../include/bankverbindung.class.php');
require_once('../include/vertrag.class.php');
require_once('../include/lehreinheit.class.php');
require_once('../include/lehreinheitmitarbeiter.class.php');
require_once('../include/datum.class.php');
require_once('../include/nation.class.php');
$mitarbeiter_uid = isset($_GET["mitarbeiter_uid"]) ? $_GET["mitarbeiter_uid"] : NULL;
$vertrag_data = isset($_GET["vertrag_id"]) ? $_GET["vertrag_id"] : NULL;
echo "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\n";
echo "<honorarvertraege>";
if($mitarbeiter_uid === NULL)
{
echo "<error>Mitarbeiter UID fehlt</error>";
}
else if($vertrag_data === NULL)
{
echo "<error>Vertrags-ID fehlt</error>";
}
else
{
$ma = new mitarbeiter($mitarbeiter_uid);
$adresse = new adresse();
$adresse->load_pers($ma->person_id);
$kontakt = new kontakt();
$bankverbindung = new bankverbindung();
$datum = new datum();
$nation = new nation($ma->staatsbuergerschaft);
echo "<honorarvertrag>";
echo "<person>";
echo "<vorname>".$ma->vorname."</vorname>";
echo "<nachname>".$ma->nachname."</nachname>";
foreach($adresse->result as $adr)
{
if($adr->heimatadresse)
{
echo "<strasse>".$adr->strasse."</strasse>";
echo "<plz>".$adr->plz."</plz>";
echo "<ort>".$adr->ort."</ort>";
}
}
echo "<gebdat>".$datum->formatDatum($ma->gebdatum,'d.m.Y')."</gebdat>";
echo "<svnr>".$ma->svnr."</svnr>";
echo "<staat>".$nation->kurztext."</staat>";
switch ($ma->familienstand) {
case "l":
$familienstand = "ledig";
break;
case "v":
$familienstand = "verheiratet";
break;
case "g":
$familienstand = "geschieden";
break;
case "w":
$familienstand = "verwitwet";
break;
default:
$familienstand = "";
break;
}
echo "<familienstand>".$familienstand."</familienstand>";
echo "<personalnr>".$ma->personalnummer."</personalnr>";
$kontakt->load_persKontakttyp($ma->person_id, "telefon");
if(!empty($kontakt->result))
{
echo "<tel>".$kontakt->result[0]->kontakt."</tel>";
unset($kontakt->result);
}
$kontakt->load_persKontakttyp($ma->person_id, "email");
if(!empty($kontakt->result))
{
echo "<email>".$kontakt->result[0]->kontakt."</email>";
unset($kontakt->result);
}
echo "</person>";
echo "<bankverbindung>";
$bankverbindung->load_pers($ma->person_id);
foreach($bankverbindung->result as $bank)
{
if($bank->verrechnung)
{
echo "<name>".$bank->name."</name>";
echo "<iban>".$bank->iban."</iban>";
echo "<bic>".$bank->bic."</bic>";
echo "<blz>".$bank->blz."</blz>";
echo "<kontonr>".$bank->kontonr."</kontonr>";
break;
}
}
echo "</bankverbindung>";
echo "<vertraege>";
// $vertrag->getAllStatus($vertrag_id);
$summe = 0;
foreach($vertrag_data as $vertrag_id)
{
$vertrag = new vertrag();
$vertrag->load($vertrag_id);
$vertrag->getAllStatus($vertrag_id);
$studiensemester = "";
foreach($vertrag->result as $status)
{
if($vertrag->vertragstyp_kurzbz == "lehre" && $status->vertragsstatus_kurzbz == "genehmigt")
{
$v_temp = new vertrag();
$v_temp->loadZugeordnet($vertrag_id);
$lehreinheit = new lehreinheitmitarbeiter($v_temp->result[0]->lehreinheit_id,$ma->uid);
$le = new lehreinheit($lehreinheit->lehreinheit_id);
$studiensemester = new studiensemester($le->studiensemester_kurzbz);
$summe += $v_temp->result[0]->betrag;
echo "<lehrvertrag>";
echo "<genehmigungs_datum>".$datum->formatDatum($status->datum,'d.m.Y')."</genehmigungs_datum>";
echo "<aufwandspunkte>".$lehreinheit->semesterstunden."</aufwandspunkte>";
echo "<stundensatz>".$lehreinheit->stundensatz."</stundensatz>";
echo "</lehrvertrag>";
}
if($vertrag->vertragstyp_kurzbz == "fahrtkosten" && $status->vertragsstatus_kurzbz == "genehmigt")
{
$anzahl_fahrten = explode(" ", $vertrag->anmerkung);
echo "<fahrtkosten>";
echo "<genehmigungs_datum>".$datum->formatDatum($status->datum,'d.m.Y')."</genehmigungs_datum>";
echo "<summe>".$vertrag->betrag."</summe>";
echo "<anzahl_fahrten>".$anzahl_fahrten[0]."</anzahl_fahrten>";
echo "<preis_je_fahrt>".$anzahl_fahrten[5]."</preis_je_fahrt>";
echo "<abfahrt>".$anzahl_fahrten[7]."</abfahrt>";
echo "</fahrtkosten>";
}
}
if($summe != 0)
echo "<lehrvertrag_summe>".$summe."</lehrvertrag_summe>";
$summe = 0;
}
echo "</vertraege>";
echo "<studiensemester>".$studiensemester->bezeichnung."</studiensemester>";
}
echo "</honorarvertrag>";
echo "</honorarvertraege>";
+1
View File
@@ -71,6 +71,7 @@ foreach($vertrag->result as $row)
$oRdf->obj[$i]->setAttribut('vertragstyp_bezeichnung',$row->vertragstyp_bezeichnung,true);
$oRdf->obj[$i]->setAttribut('betrag',$row->betrag,true);
$oRdf->obj[$i]->setAttribut('status',$row->status,true);
$oRdf->obj[$i]->setAttribut('anmerkung',$row->anmerkung,true);
$oRdf->addSequence($row->vertrag_id);
}
+11 -1
View File
@@ -2215,6 +2215,16 @@ if(!$result = @$db->db_query("SELECT preferences FROM public.tbl_statistik LIMIT
else
echo 'public.tbl_statistik: Neue Spalte preferences hinzugefuegt<br>';
}
// Spalte anmerkung in lehre.tbl_vertrag
if(!$result = @$db->db_query("SELECT anmerkung FROM lehre.tbl_vertrag LIMIT 1;"))
{
$qry = "ALTER TABLE lehre.tbl_vertrag ADD COLUMN anmerkung text;";
if(!$db->db_query($qry))
echo '<strong>lehre.tbl_vertrag: '.$db->db_last_error().'</strong><br>';
else
echo ' lehre.tbl_vertrag: Spalte anmerkung hinzugefuegt!<br>';
}
echo '<br><br><br>';
$tabellen=array(
@@ -2342,7 +2352,7 @@ $tabellen=array(
"lehre.tbl_stunde" => array("stunde","beginn","ende"),
"lehre.tbl_stundenplan" => array("stundenplan_id","unr","mitarbeiter_uid","datum","stunde","ort_kurzbz","gruppe_kurzbz","titel","anmerkung","lehreinheit_id","studiengang_kz","semester","verband","gruppe","fix","updateamum","updatevon","insertamum","insertvon"),
"lehre.tbl_stundenplandev" => array("stundenplandev_id","lehreinheit_id","unr","studiengang_kz","semester","verband","gruppe","gruppe_kurzbz","mitarbeiter_uid","ort_kurzbz","datum","stunde","titel","anmerkung","fix","updateamum","updatevon","insertamum","insertvon","ext_id"),
"lehre.tbl_vertrag" => array("vertrag_id","person_id","vertragstyp_kurzbz","bezeichnung","betrag","insertamum","insertvon","updateamum","updatevon","ext_id"),
"lehre.tbl_vertrag" => array("vertrag_id","person_id","vertragstyp_kurzbz","bezeichnung","betrag","insertamum","insertvon","updateamum","updatevon","ext_id","anmerkung"),
"lehre.tbl_vertrag_vertragsstatus" => array("vertragsstatus_kurzbz","vertrag_id","uid","datum","ext_id"),
"lehre.tbl_vertragstyp" => array("vertragstyp_kurzbz","bezeichnung"),
"lehre.tbl_vertragsstatus" => array("vertragsstatus_kurzbz","bezeichnung"),