Vertragsdatum im FAS editierbar

This commit is contained in:
Stefan Puraner
2015-01-14 08:19:54 +00:00
parent 68d00ac232
commit 5385b0f955
6 changed files with 268 additions and 28 deletions
+31
View File
@@ -582,6 +582,37 @@ if(!$error)
} }
} }
} }
elseif(isset($_POST['type']) && $_POST['type']=='vertragsstatusupdate')
{
if(!$rechte->isBerechtigt('vertrag/mitarbeiter',null,'suid'))
{
$return = false;
$errormsg = 'Sie haben keine Berechtigung für diesen Vorgang';
}
else
{
$vertrag_id = filter_input(INPUT_POST, "vertrag_id");
$status = filter_input(INPUT_POST, "status");
$datum = filter_input(INPUT_POST, "datum");
$vertrag = new vertrag($vertrag_id);
$vertrag->getStatus($vertrag_id,$status);
$vertrag->datum = $datum;
$vertrag->updatevon = $user;
$vertrag->updateamum = date('Y-m-d H:i:s');
if($vertrag->saveVertragsstatus(false))
{
$return=true;
}
else
{
$return = false;
$errormsg = $vertrag->errormsg;
}
}
}
elseif(isset($_POST['type']) && $_POST['type']=='vertragsdetaildelete') elseif(isset($_POST['type']) && $_POST['type']=='vertragsdetaildelete')
{ {
if(!$rechte->isBerechtigt('vertrag/mitarbeiter',null,'suid')) if(!$rechte->isBerechtigt('vertrag/mitarbeiter',null,'suid'))
+95 -1
View File
@@ -23,7 +23,8 @@ require_once('../../include/functions.inc.php');
$user = get_uid(); $user = get_uid();
?> if(false): ?> <script type="text/javascript"><?php endif; ?>
var MitarbeiterVertragLoadedPerson=null var MitarbeiterVertragLoadedPerson=null
// ****************** FUNKTIONEN ************************** // // ****************** FUNKTIONEN ************************** //
@@ -354,3 +355,96 @@ function MitarbeiterVertragDetailDelete()
return true; return true;
} }
} }
function MitarbeiterVertragSelectVertragsstatus()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree=document.getElementById('mitarbeiter-vertrag-tree-vertragsstatus');
var col = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertragsstatus-vertrag_id"] : "mitarbeiter-vertrag-tree-vertragsstatus-vertrag_id";
var col_status = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertragsstatus-vertragsstatus_kurzbz"] : "mitarbeiter-vertrag-tree-vertragsstatus-vertragsstatus_kurzbz";
if(tree.currentIndex==-1)
return false;
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
var vertrag_status=tree.view.getCellText(tree.currentIndex,col_status);
// *** Zugeordnete Vertragselemente laden
vertragstatustree = document.getElementById('mitarbeiter-vertrag-tree-vertragsstatus');
url='<?php echo APP_ROOT;?>rdf/vertragsstatus.rdf.php?vertrag_id='+vertrag_id+'&vertragsstatus_kurzbz='+vertrag_status+'&'+gettimestamp();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var dsource = rdfService.GetDataSourceBlocking(url);
var subject = rdfService.GetResource("http://www.technikum-wien.at/vertragsstatus/"+vertrag_status +"/"+ vertrag_id);
var predicateNS = "http://www.technikum-wien.at/vertragsstatus/rdf";
//Daten holen
vertragsdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#datum" ));
document.getElementById('mitarbeiter-vertrag-vertragsstatus-textbox-vertragsdatum').value=vertragsdatum;
document.getElementById('mitarbeiter-vertrag-vertragsstatus-textbox-vertragsdatum').disabled=false;
// var datasource = rdfService.GetDataSource(url);
// vertragstatustree.database.AddDataSource(datasource);
}
function MitarbeiterVertragVertragsstatusUpdate(){
var tree=document.getElementById('mitarbeiter-vertrag-tree-vertragsstatus');
var col = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertragsstatus-vertrag_id"] : "mitarbeiter-vertrag-tree-vertragsstatus-vertrag_id";
var col_status = tree.columns ? tree.columns["mitarbeiter-vertrag-tree-vertragsstatus-vertragsstatus_kurzbz"] : "mitarbeiter-vertrag-tree-vertragsstatus-vertragsstatus_kurzbz";
if(tree.currentIndex==-1)
return false;
var vertrag_id=tree.view.getCellText(tree.currentIndex,col);
var vertrag_status=tree.view.getCellText(tree.currentIndex,col_status);
var vertrag_datum = document.getElementById("mitarbeiter-vertrag-vertragsstatus-textbox-vertragsdatum").iso;
var url = '<?php echo APP_ROOT ?>content/mitarbeiter/mitarbeiterDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'vertragsstatusupdate');
req.add('vertrag_id',vertrag_id);
req.add('status',vertrag_status);
req.add('datum',vertrag_datum);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
}
else
{
// *** Status laden
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var vertragsstatustree = document.getElementById('mitarbeiter-vertrag-tree-vertragsstatus');
url='<?php echo APP_ROOT;?>rdf/vertragsstatus.rdf.php?vertrag_id='+vertrag_id+"&"+gettimestamp();
//Alte DS entfernen
var oldDatasources = vertragsstatustree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
vertragsstatustree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
vertragsstatustree.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSource(url);
vertragsstatustree.database.AddDataSource(datasource);
return true;
}
}
@@ -23,7 +23,8 @@ require_once('../../include/functions.inc.php');
$user = get_uid(); $user = get_uid();
?> if(false): ?> <script type="text/javascript"><?php endif; ?>
var MitarbeiterVertragNeuBetragOld=0; var MitarbeiterVertragNeuBetragOld=0;
var addon = Array(); var addon = Array();
@@ -55,7 +55,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<menuitem label="Entfernen" oncommand="MitarbeiterVertragDetailDelete()" /> <menuitem label="Entfernen" oncommand="MitarbeiterVertragDetailDelete()" />
</menupopup> </menupopup>
</popupset> </popupset>
<vbox flex="1"> <vbox flex="3">
<vbox flex="1"> <vbox flex="1">
<hbox> <hbox>
<toolbox flex="1"> <toolbox flex="1">
@@ -135,8 +135,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</tree> </tree>
</vbox> </vbox>
</vbox> </vbox>
<hbox flex="1" id="mitarbeiter-vertrag-vbox-vertragsdetails"> <hbox flex="2" id="mitarbeiter-vertrag-vbox-vertragsdetails">
<vbox flex="1"> <vbox flex="2">
<description>Vertragsdetails</description> <description>Vertragsdetails</description>
<tree id="mitarbeiter-vertrag-tree-zugeordnet" hidecolumnpicker="false" flex="1" <tree id="mitarbeiter-vertrag-tree-zugeordnet" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/vertragdetails" datasources="rdf:null" ref="http://www.technikum-wien.at/vertragdetails"
@@ -203,13 +203,15 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</template> </template>
</tree> </tree>
</vbox> </vbox>
<vbox flex="1"> <vbox flex="2">
<vbox flex="1">
<description>Vertragsstatus</description> <description>Vertragsstatus</description>
<tree id="mitarbeiter-vertrag-tree-vertragsstatus" hidecolumnpicker="false" flex="1" <tree id="mitarbeiter-vertrag-tree-vertragsstatus" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/vertragsstatus" datasources="rdf:null" ref="http://www.technikum-wien.at/vertragsstatus"
enableColumnDrag="true" enableColumnDrag="true"
context="mitarbeiter-vertrag-tree-vertragsstatus-popup" context="mitarbeiter-vertrag-tree-vertragsstatus-popup"
flags="dont-build-content" flags="dont-build-content"
onselect="MitarbeiterVertragSelectVertragsstatus();"
> >
<treecols> <treecols>
<treecol id="mitarbeiter-vertrag-tree-vertragsstatus-vertragsstatus_bezeichnung" label="Status" flex="2" hidden="false" primary="true" <treecol id="mitarbeiter-vertrag-tree-vertragsstatus-vertragsstatus_bezeichnung" label="Status" flex="2" hidden="false" primary="true"
@@ -270,6 +272,31 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</treechildren> </treechildren>
</template> </template>
</tree> </tree>
</vbox>
<vbox flex="1">
<groupbox id='groupbox-vertragsdatum'>
<caption label="Vertragsdatum" />
<grid align="end" flex="1"
flags="dont-build-content"
enableColumnDrag="true"
style="margin:4px;"
>
<columns >
<column flex="1"/>
<column flex="5"/>
</columns>
<rows>
<row>
<label value="Vertragsdatum" control="mitarbeiter-vertrag-vertragsstatus-textbox-vertragsdatum"/>
<hbox>
<box class="Datum" id="mitarbeiter-vertrag-vertragsstatus-textbox-vertragsdatum" disabled="true" oninput="alert('test');"/>
<button id="mitarbeiter-vertrag-vertragsstatus-datum-speichern" label="Speichern" oncommand="MitarbeiterVertragVertragsstatusUpdate()" />
</hbox>
</row>
</rows>
</grid>
</groupbox>
</vbox>
</vbox> </vbox>
</hbox> </hbox>
</vbox> </vbox>
+62 -3
View File
@@ -38,7 +38,7 @@ class vertrag extends basis_db
public $updatevon; // varchar(32) public $updatevon; // varchar(32)
public $ext_id; // bigint public $ext_id; // bigint
public $anmerkung; // text public $anmerkung; // text
public $vertragsdatu; // date public $vertragsdatum; // date
/** /**
* Konstruktor * Konstruktor
@@ -632,6 +632,58 @@ class vertrag extends basis_db
return false; return false;
} }
} }
/**
* Laedt alle Stati eines Vertrags
*
* @param $vertrag_id
* @return boolean
*/
public function getStatus($vertrag_id, $status=NULL)
{
$qry="SELECT
*
FROM
lehre.tbl_vertrag_vertragsstatus
JOIN lehre.tbl_vertragsstatus USING(vertragsstatus_kurzbz)
WHERE
tbl_vertrag_vertragsstatus.vertrag_id=".$this->db_add_param($vertrag_id);
if(!is_null($status))
{
$qry .= " AND tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz=".$this->db_add_param($status);
}
$qry .= " ORDER BY datum DESC;";
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->vertrag_id = $row->vertrag_id;
$this->vertragsstatus_kurzbz = $row->vertragsstatus_kurzbz;
$this->vertragsstatus_bezeichnung = $row->bezeichnung;
$this->datum = $row->datum;
$this->uid = $row->uid;
$this->insertvon = $row->insertvon;
$this->insertamum = $row->insertamum;
$this->updatevon = $row->updatevon;
$this->updateamum = $row->updateamum;
$this->new=false;
return true;
}
else
{
$this->errormsg = 'Eintrag wurde nicht gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
public function saveVertragsstatus($new=null) public function saveVertragsstatus($new=null)
{ {
@@ -651,9 +703,15 @@ class vertrag extends basis_db
} }
else else
{ {
$this->errormsg = 'Update not implemented'; $qry = "UPDATE lehre.tbl_vertrag_vertragsstatus"
return false; . " SET updatevon=".$this->db_add_param($this->updatevon).','
. " updateamum=".$this->db_add_param($this->updateamum).','
. " datum=".$this->db_add_param($this->datum)
. " WHERE vertrag_id=".$this->db_add_param($this->vertrag_id)
. " AND vertragsstatus_kurzbz=".$this->db_add_param($this->vertragsstatus_kurzbz).";";
} }
if($this->db_query($qry)) if($this->db_query($qry))
{ {
@@ -662,6 +720,7 @@ class vertrag extends basis_db
else else
{ {
$this->errormsg = 'Fehler beim Speichern der Daten'; $this->errormsg = 'Fehler beim Speichern der Daten';
$this->errormsg = $qry;
return false; return false;
} }
} }
+47 -19
View File
@@ -39,32 +39,60 @@ if(isset($_GET['vertrag_id']))
else else
die('Falsche Parameterübergabe'); die('Falsche Parameterübergabe');
$vertragsstatus_kurzbz = filter_input(INPUT_GET, "vertragsstatus_kurzbz");
$datum_obj = new datum(); $datum_obj = new datum();
$vertrag = new vertrag(); $vertrag = new vertrag();
if(!$vertrag->getAllStatus($vertrag_id))
die('Fehlgeschlagen:'.$vertrag->errormsg);
$oRdf = new rdf('VER','http://www.technikum-wien.at/vertragsstatus'); if(is_bool($vertragsstatus_kurzbz) || is_null($vertragsstatus_kurzbz))
$oRdf->sendHeader(); {
if(!$vertrag->getAllStatus($vertrag_id))
die('Fehlgeschlagen:'.$vertrag->errormsg);
foreach($vertrag->result as $row) $oRdf = new rdf('VER','http://www.technikum-wien.at/vertragsstatus');
{ $oRdf->sendHeader();
$key = $row->vertragsstatus_kurzbz.'/'.$row->vertrag_id;
$i=$oRdf->newObjekt($key);
$oRdf->obj[$i]->setAttribut('vertrag_id',$row->vertrag_id,true);
$oRdf->obj[$i]->setAttribut('vertragsstatus_kurzbz',$row->vertragsstatus_kurzbz,true);
$oRdf->obj[$i]->setAttribut('vertragsstatus_bezeichnung',$row->vertragsstatus_bezeichnung,true);
$oRdf->obj[$i]->setAttribut('datum',$datum_obj->formatDatum($row->datum,'d.m.Y H:i'),true);
$oRdf->obj[$i]->setAttribut('datum_iso',$row->datum,true);
$oRdf->obj[$i]->setAttribut('uid',$row->uid,true);
$oRdf->obj[$i]->setAttribut('insertvon', $row->insertvon, true);
$oRdf->obj[$i]->setAttribut('insertamum', $row->insertamum, true);
$oRdf->obj[$i]->setAttribut('updatevon', $row->updatevon, true);
$oRdf->obj[$i]->setAttribut('updateamum', $row->updateamum, true);
$oRdf->addSequence($key); foreach($vertrag->result as $row)
{
$key = $row->vertragsstatus_kurzbz.'/'.$row->vertrag_id;
$i=$oRdf->newObjekt($key);
$oRdf->obj[$i]->setAttribut('vertrag_id',$row->vertrag_id,true);
$oRdf->obj[$i]->setAttribut('vertragsstatus_kurzbz',$row->vertragsstatus_kurzbz,true);
$oRdf->obj[$i]->setAttribut('vertragsstatus_bezeichnung',$row->vertragsstatus_bezeichnung,true);
$oRdf->obj[$i]->setAttribut('datum',$datum_obj->formatDatum($row->datum,'d.m.Y H:i'),true);
$oRdf->obj[$i]->setAttribut('datum_iso',$row->datum,true);
$oRdf->obj[$i]->setAttribut('uid',$row->uid,true);
$oRdf->obj[$i]->setAttribut('insertvon', $row->insertvon, true);
$oRdf->obj[$i]->setAttribut('insertamum', $row->insertamum, true);
$oRdf->obj[$i]->setAttribut('updatevon', $row->updatevon, true);
$oRdf->obj[$i]->setAttribut('updateamum', $row->updateamum, true);
$oRdf->addSequence($key);
}
} }
else
{
if(!$vertrag->getStatus($vertrag_id, $vertragsstatus_kurzbz))
die('Fehlgeschlagen:'.$vertrag->errormsg);
$oRdf = new rdf('VER','http://www.technikum-wien.at/vertragsstatus');
$oRdf->sendHeader();
$key = $vertrag->vertragsstatus_kurzbz.'/'.$vertrag->vertrag_id;
$i=$oRdf->newObjekt($key);
$oRdf->obj[$i]->setAttribut('vertrag_id',$vertrag->vertrag_id,true);
$oRdf->obj[$i]->setAttribut('vertragsstatus_kurzbz',$vertrag->vertragsstatus_kurzbz,true);
$oRdf->obj[$i]->setAttribut('vertragsstatus_bezeichnung',$vertrag->vertragsstatus_bezeichnung,true);
$oRdf->obj[$i]->setAttribut('datum',$datum_obj->formatDatum($vertrag->datum,'d.m.Y H:i'),true);
$oRdf->obj[$i]->setAttribut('datum_iso',$vertrag->datum,true);
$oRdf->obj[$i]->setAttribut('uid',$vertrag->uid,true);
$oRdf->obj[$i]->setAttribut('insertvon', $vertrag->insertvon, true);
$oRdf->obj[$i]->setAttribut('insertamum', $vertrag->insertamum, true);
$oRdf->obj[$i]->setAttribut('updatevon', $vertrag->updatevon, true);
$oRdf->obj[$i]->setAttribut('updateamum', $vertrag->updateamum, true);
$oRdf->addSequence($key);
}
$oRdf->sendRdfText(); $oRdf->sendRdfText();
?> ?>