Files
FHC-Core/wawi/bestellung.php
T

2466 lines
86 KiB
PHP

<?php
/* Copyright (C) 2010 Technikum-Wien
*
* 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: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Karl Burkhart <burkhart@technikum-wien.at>.
*/
require_once '../config/wawi.config.inc.php';
require_once('auth.php');
require_once '../include/firma.class.php';
require_once '../include/organisationseinheit.class.php';
require_once '../include/mitarbeiter.class.php';
require_once '../include/datum.class.php';
require_once '../include/benutzerberechtigung.class.php';
require_once '../include/standort.class.php';
require_once '../include/adresse.class.php';
require_once '../include/studiengang.class.php';
require_once '../include/mail.class.php';
require_once '../include/geschaeftsjahr.class.php';
require_once '../include/wawi_konto.class.php';
require_once '../include/wawi_bestellung.class.php';
require_once '../include/wawi_kostenstelle.class.php';
require_once '../include/wawi_bestelldetail.class.php';
require_once '../include/wawi_aufteilung.class.php';
require_once '../include/wawi_bestellstatus.class.php';
require_once '../include/wawi_zahlungstyp.class.php';
require_once '../include/tags.class.php';
$aktion ='';
$test = 0; // Bestelldetail Anzahl
$date = new datum();
$user=get_uid();
$ausgabemsg='';
$berechtigung_kurzbz='wawi/bestellung';
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
$kst=new wawi_kostenstelle();
$kst->loadArray($rechte->getKostenstelle($berechtigung_kurzbz),'bezeichnung');
if(isset($_POST['getKonto']))
{
$id = $_POST['id'];
if(is_numeric($id))
{
$konto = new wawi_konto();
$konto->getKontoFromKostenstelle($id);
if(count($konto->result)>0)
{
foreach($konto->result as $ko)
{
echo '<option value='.$ko->konto_id.' >'.$ko->kurzbz."</option>\n";
}
}
else
echo "<option value =''>Keine Konten zu dieser Kst</option>";
}
else
echo "<option value =''>Keine Konten zu dieser Kst</option>";
exit;
}
if(isset($_POST['getFirma']))
{
$id = $_POST['id'];
if(isset($_POST['id']))
{
if($_POST['id'] == 'opt_auswahl')
{
echo "<option value=''>-- auswählen --</option>\n";
}
else
{
// anzeige der Firmen die oe zugeordnet sind
$firma = new firma();
$firma->get_firmaorganisationseinheit(null,$id);
if(count($firma->result)>0)
{
echo "<option value=''>-- auswählen --</option>\n";
foreach($firma->result as $fi)
{
echo '<option value='.$fi->firma_id.' >'.$fi->name."</option>\n";
}
}
else
echo "<option value =''>Keine Firmen zu dieser OE</option>";
}
}
else
echo "<option value =''>Keine Firmen zu dieser OE</option>";
exit;
}
if(isset($_POST['getSearchKonto']))
{
$id = $_POST['id'];
if(isset($_POST['id']))
{
if($_POST['id'] == 'opt_auswahl')
{
$konto = new wawi_konto();
$konto->getAll();
// anzeige aller Konten
echo "<option value=''>-- auswählen --</option>\n";
foreach($konto->result as $ko)
{
echo '<option value='.$ko->konto_id.' >'.$ko->kurzbz."</option>\n";
}
}
else
{
// anzeige aller Konten die der Kostenstelle zugeordnet sind
$konto = new wawi_konto();
$konto->getKontoFromOE($id);
if(count($konto->result)>0)
{
echo "<option value=''>-- auswählen --</option>\n";
foreach($konto->result as $ko)
{
echo '<option value='.$ko->konto_id.' >'.$ko->beschreibung[1]."</option>\n";
}
}
else
echo "<option value =''>Kein Konto zu dieser OE</option>";
}
}
else
echo "<option value =''>Kein Konto zu dieser OE</option>";
exit;
}
if(isset($_POST['getDetailRow']) && isset($_POST['id']))
{
if(is_numeric($_POST['id']))
{
echo getDetailRow($_POST['id'],'','','','','','','','','',$_POST['bestellung_id'],$_POST['id']);
$test++;
exit;
}
else
{
die('ID ungueltig');
}
}
if(isset($_POST['deleteDetail']) && isset($_POST['id']))
{
if(is_numeric($_POST['id']))
{
$detail = new wawi_bestelldetail();
$bestellung = new wawi_bestellung();
if(!$detail->load($_POST['id']))
die('Eintrag wurde nicht gefunden');
if(!$bestellung->load($detail->bestellung_id))
die('Bestellung konnte nicht geladen werden');
if(!$rechte->isberechtigt('wawi/bestellung',null, 'suid', $bestellung->kostenstelle_id))
die('Sie haben keine Berechtigung fuer diese Aktion');
$detail->delete($_POST['id']);
exit;
}
else
{
die('ID ungueltig');
}
}
if(isset($_POST['saveDetail']))
{
$bestellung = new wawi_bestellung();
if(!$bestellung->load($_POST['bestellung']))
die('Bestellung konnte nicht geladen werden');
if(!$rechte->isberechtigt('wawi/bestellung',null, 'sui', $bestellung->kostenstelle_id))
die('Sie haben keine Berechtigung zum Aendern der Daten');
$detail = new wawi_bestelldetail();
$detail->bestellung_id = $_POST['bestellung'];
$detail->position = $_POST['pos'];
$detail->menge = $_POST['menge'];
$detail->verpackungseinheit = $_POST['ve'];
$detail->beschreibung = $_POST['beschreibung'];
$detail->artikelnummer = $_POST['artikelnr'];
$detail->preisprove = $_POST['preis'];
$detail->mwst = $_POST['mwst'];
if($_POST['sort'] != '')
$detail->sort = $_POST['sort'];
else
$detail->sort = $_POST['pos'];
$detail->insertamum = date('Y-m-d H:i:s');
$detail->updateamum = date('Y-m-d H:i:s');
$detail->new = true;
if(!$detail->save())
echo $detail->errormsg;
echo $detail->bestelldetail_id;
exit;
}
if(isset($_POST['updateDetail']))
{
$bestellung = new wawi_bestellung();
if(!$bestellung->load($_POST['bestellung']))
die('Bestellung konnte nicht geladen werden');
if(!$rechte->isberechtigt('wawi/bestellung',null, 'sui', $bestellung->kostenstelle_id))
die('Sie haben keine Berechtigung zum Aendern der Daten');
$detail = new wawi_bestelldetail();
$detail->bestelldetail_id = $_POST['detail_id'];
$detail->bestellung_id = $_POST['bestellung'];
$detail->position = $_POST['pos'];
$detail->menge = $_POST['menge'];
$detail->verpackungseinheit = $_POST['ve'];
$detail->beschreibung = $_POST['beschreibung'];
$detail->artikelnummer = $_POST['artikelnr'];
$detail->preisprove = $_POST['preis'];
$detail->mwst = $_POST['mwst'];
$detail->sort = $_POST['sort'];
$detail->insertamum = date('Y-m-d H:i:s');
$detail->updateamum = date('Y-m-d H:i:s');
$detail->erhalten = false;
$detail->text = false;
$detail->new = false;
if(!$detail->save())
echo $detail->errormsg;
echo $detail->bestelldetail_id;
exit;
}
if(isset($_POST['deleteBtnGeliefert']) && isset($_POST['id']))
{
$bestellung = new wawi_bestellung();
if(!$bestellung->load($_POST['id']))
die('Bestellung konnte nicht geladen werden');
if(!$rechte->isberechtigt('wawi/bestellung',null, 'sui', $bestellung->kostenstelle_id))
die('Sie haben keine Berechtigung fuer diese Aktion');
$bestellstatus = new wawi_bestellstatus();
$bestellstatus->bestellung_id = $_POST['id'];
$bestellstatus->bestellstatus_kurzbz = 'Lieferung';
$bestellstatus->uid = $_POST['user_id'];
$bestellstatus->oe_kurzbz = '';
$bestellstatus->datum = date('Y-m-d H:i:s');
$bestellstatus->insertvon = $_POST['user_id'];
$bestellstatus->insertamum = date('Y-m-d H:i:s');
$bestellstatus->updatevon = $_POST['user_id'];
$bestellstatus->updateamum = date('Y-m-d H:i:s');
if($bestellstatus->save())
{
echo $date->formatDatum($bestellstatus->datum, 'd.m.Y');
sendBestellerMail($bestellung, 'geliefert');
}
else
echo $bestellstatus->errormsg;
exit;
}
if(isset($_POST['deleteBtnBestellt']) && isset($_POST['id']))
{
$bestellung = new wawi_bestellung();
if(!$bestellung->load($_POST['id']))
die('Bestellung konnte nicht geladen werden');
if(!$rechte->isberechtigt('wawi/bestellung',null, 'sui', $bestellung->kostenstelle_id))
die('Sie haben keine Berechtigung fuer diese Aktion');
$bestellstatus = new wawi_bestellstatus();
$bestellstatus->bestellung_id = $_POST['id'];
$bestellstatus->bestellstatus_kurzbz = 'Bestellung';
$bestellstatus->uid = $_POST['user_id'];
$bestellstatus->oe_kurzbz = '';
$bestellstatus->datum = date('Y-m-d H:i:s');
$bestellstatus->insertvon = $_POST['user_id'];
$bestellstatus->insertamum = date('Y-m-d H:i:s');
$bestellstatus->updatevon = $_POST['user_id'];
$bestellstatus->updateamum = date('Y-m-d H:i:s');
if($bestellstatus->save())
{
echo $date->formatDatum($bestellstatus->datum, 'd.m.Y');
sendBestellerMail($bestellung, 'bestellt');
}
else
echo $bestellstatus->errormsg;
exit;
}
if(isset($_POST['deleteBtnStorno']) && isset($_POST['id']))
{
$bestellung = new wawi_bestellung();
if(!$bestellung->load($_POST['id']))
die('Bestellung konnte nicht geladen werden');
if(!$rechte->isberechtigt('wawi/bestellung',null, 'sui', $bestellung->kostenstelle_id))
die('Sie haben keine Berechtigung fuer diese Aktion');
$date = new datum();
$bestellstatus = new wawi_bestellstatus();
$bestellstatus->bestellung_id = $_POST['id'];
$bestellstatus->bestellstatus_kurzbz = 'Storno';
$bestellstatus->uid = $_POST['user_id'];
$bestellstatus->oe_kurzbz = '';
$bestellstatus->datum = date('Y-m-d H:i:s');
$bestellstatus->insertvon = $_POST['user_id'];
$bestellstatus->insertamum = date('Y-m-d H:i:s');
$bestellstatus->updatevon = $_POST['user_id'];
$bestellstatus->updateamum = date('Y-m-d H:i:s');
if($bestellstatus->save())
{
echo $date->formatDatum($bestellstatus->datum, 'd.m.Y');
sendBestellerMail($bestellung, 'storno');
}
else
echo $bestellstatus->errormsg;
exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>WaWi Bestellung</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../skin/tablesort.css" type="text/css"/>
<link rel="stylesheet" href="../skin/jquery.css" type="text/css"/>
<link rel="stylesheet" href="../skin/fhcomplete.css" type="text/css"/>
<link rel="stylesheet" href="../skin/wawi.css" type="text/css"/>
<script type="text/javascript" src="../include/js/jquery.js"></script>
<script type="text/javascript">
function conf_del()
{
return confirm('Diese Bestellung wirklich löschen?');
}
function loadKonto(id)
{
$.post("bestellung.php", {id: id, getKonto: 'true'},
function(data){
$('#konto').html(data);
});
}
function loadFirma(id)
{
$.post("bestellung.php", {id: id, getFirma: 'true'},
function(data){
$('#firma').html(data);
});
$.post("bestellung.php", {id: id, getSearchKonto: 'true'},
function(data){
$('#searchKonto').html(data);
});
}
function formatItem(row)
{
return row[0] + " <br>" + row[1] + "<br> ";
}
function formatItemTag(row)
{
return row[0];
}
function conf_del()
{
return confirm('Diese Bestellung wirklich löschen?');
}
$(document).ready(function()
{
$("#myTable").tablesorter(
{
sortList: [[4,1]],
widgets: ['zebra']
});
$( "#datepicker_evon" ).datepicker($.datepicker.regional['de']);
$( "#datepicker_ebis" ).datepicker($.datepicker.regional['de']);
$( "#datepicker_bvon" ).datepicker($.datepicker.regional['de']);
$( "#datepicker_bbis" ).datepicker($.datepicker.regional['de']);
$('#aufteilung').hide();
$('#aufteilung_link').click(function() {
$('#aufteilung').toggle();
return false;
});
$('#mitarbeiter_name').autocomplete('wawi_autocomplete.php',
{
minChars:2,
matchSubset:1,matchContains:1,
width:500,
formatItem:formatItem,
extraParams:{'work':'wawi_mitarbeiter_search'
}
}).result(function(event, item) {
$('#mitarbeiter_uid').val(item[1]);
});
$('#firmenname').autocomplete('wawi_autocomplete.php',
{
minChars:2,
matchSubset:1,matchContains:1,
width:500,
formatItem:formatItem,
extraParams:{'work':'wawi_firma_search'
}
}).result(function(event, item) {
$('#firma_id').val(item[1]);
});
$('#besteller').autocomplete('wawi_autocomplete.php',
{
minChars:2,
matchSubset:1,matchContains:1,
width:500,
formatItem:formatItem,
extraParams:{'work':'wawi_mitarbeiter_search'
}
}).result(function(event, item) {
$('#besteller_uid').val(item[1]);
});
});
</script>
</head>
<body>
<?php
if (isset($_GET['method']))
$aktion = $_GET['method'];
if($aktion == 'suche')
{
if(!isset($_REQUEST['submit']))
{
if(!$rechte->isberechtigt('wawi/bestellung',null, 's'))
die('Sie haben keine Berechtigung zum Suchen von Bestellungen');
// Suchmaske anzeigen
$konto = new wawi_konto();
$konto->getAll();
$konto_all = $konto->result;
$zahlungstyp = new wawi_zahlungstyp();
$zahlungstyp->getAll();
$kostenstelle = new wawi_kostenstelle();
$oe_berechtigt = new organisationseinheit();
$datum = new datum();
$datum=getdate();
if ($datum['mon']<=9)
$suchdatum="01.09.".($datum['year']-1);
else
$suchdatum="01.09.".$datum['year'];
echo "<h2>Bestellung suchen</h2>\n";
echo "<form action ='bestellung.php' method='GET' name='sucheForm'>\n";
echo "<input type='hidden' name='method' value='suche'/>";
echo "<table border =0>\n";
echo "<tr>\n";
echo "<td>Bestellnummer</td>\n";
echo "<td><input type = 'text' size ='32' maxlength = '16' name = 'bestellnr'></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>Titel</td>\n";
echo "<td><input type = 'text' size ='32' maxlength = '256' name = 'titel'></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>Bestellposition:</td>\n";
echo "<td><input type='text' name='bestellposition' size='32' maxlength='256'></td>";
echo "</tr>";
echo "<tr>\n";
echo "<td>Erstelldatum</td>\n";
echo "<td>von <input type ='text' id='datepicker_evon' size ='12' name ='evon' value=$suchdatum> bis <input type ='text' id='datepicker_ebis' size ='12' name = 'ebis'></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>Bestelldatum</td>\n";
echo "<td>von <input type ='text' id='datepicker_bvon' size ='12' name ='bvon'> bis <input type ='text' id='datepicker_bbis' size ='12' name = 'bbis'></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td> Organisationseinheit: </td>\n";
$oe_array = $rechte->getOEkurzbz('wawi/bestellung');
$oe_berechtigt->loadArray($oe_array,'organisationseinheittyp_kurzbz', false);
echo "<td><SELECT name='filter_oe_kurzbz' onchange='loadFirma(this.value)'>\n";
echo "<option value='opt_auswahl'>-- auswählen --</option>\n";
foreach ($oe_berechtigt->result as $oei)
{
if($oei->aktiv)
echo '<option value="'.$oei->oe_kurzbz.'" >'.$oei->organisationseinheittyp_kurzbz.' '.$oei->bezeichnung."</option>\n";
else
echo '<option style="text-decoration:line-through;" value="'.$oei->oe_kurzbz.'">'.$oei->bezeichnung."</option>\n";
}
echo "</SELECT>\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td> Firma: </td>\n";
echo "<td> <input id='firmenname' name='firmenname' size='32' maxlength='30' value='' >\n";
echo "<SELECT name='filter_firma' id='firma' style='width: 256px;'>\n";
echo "<option value=''>-- OE auswählen --</option>\n";
echo "</SELECT>\n";
echo "</td>\n";
echo "<td> <input type ='hidden' id='firma_id' name='firma_id' size='10' maxlength='30' value='' >\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
$kst_array = $rechte->getKostenstelle('wawi/bestellung');
$kostenstelle->loadArray($kst_array,'bezeichnung');
echo "<td> Kostenstelle: </td>\n";
echo "<td><SELECT name='filter_kostenstelle' id='searchKostenstelle' style='width: 230px;'>\n";
echo "<option value=''>-- auswählen --</option>\n";
foreach($kostenstelle->result as $kostenst)
{
echo '<option value='.$kostenst->kostenstelle_id.' >'.$kostenst->bezeichnung."</option>\n";
}
echo "</SELECT>\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td> Konto: </td>\n";
echo "<td><SELECT name='filter_konto' id='searchKonto' style='width: 230px;'>\n";
echo "<option value=''>-- auswählen --</option>\n";
foreach($konto_all as $ko)
{
echo '<option value='.$ko->konto_id.' >'.$ko->kurzbz."</option>\n";
}
echo "</SELECT>\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td> Zahlungstyp: </td>\n";
echo "<td><SELECT name='filter_zahlungstyp' id='searchZahlungstyp' style='width: 230px;'>\n";
echo "<option value=''>-- auswählen --</option>\n";
foreach($zahlungstyp->result as $zt)
{
echo '<option value='.$zt->zahlungstyp_kurzbz.' >'.$zt->bezeichnung."</option>\n";
}
echo "</SELECT>\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>Tag:</td>\n";
echo "<td> <input id='tag' name='tag' size='32' maxlength='30' value='' /></td>\n";
echo "</tr>\n";
echo "<script type='text/javascript'>
$('#tag').autocomplete('wawi_autocomplete.php',
{
minChars:2,
matchSubset:1,matchContains:1,
width:500,
formatItem:formatItemTag,
extraParams:{'work':'tags'
}
})
</script>";
echo "<tr>\n";
echo "<tr>\n";
echo "<td> Änderung durch: </td>\n";
echo "<td> <input id='mitarbeiter_name' name='mitarbeiter_name' size='32' maxlength='30' value='' >\n";
echo "</td>\n";
echo "<td> <input type ='hidden' id='mitarbeiter_uid' name='mitarbeiter_uid' size='10' maxlength='30' value='' >\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>Nur ohne Rechnung</td>\n";
echo "<td><input type ='checkbox' name ='rechnung'></td>\n";
echo "</tr>\n";
echo "<tr>";
echo "<td> Nur ohne Tags </td>";
echo "<td><input type='checkbox' name='tagsvorhanden'/></td>\n";
echo "</tr>";
echo "<tr>\n";
echo "<td>Nur ohne Freigabe</td>\n";
echo "<td><input type ='checkbox' name ='ohneFreigabe'></td>\n";
echo "</tr>\n";
echo "<tr><td>&nbsp;</td></tr>\n";
echo "<tr><td><input type='submit' name ='submit' value='Suche' class='cursor'></td></tr>\n";
echo "</table>\n";
echo "</form>\n";
}
else
{
// Suchergebnisse anzeigen
if(!$rechte->isberechtigt('wawi/bestellung',null, 's'))
die('Sie haben keine Berechtigung zum Suchen von Bestellungen');
$_SESSION['wawi/lastsearch']=$_SERVER['QUERY_STRING'];
$status = new wawi_bestellstatus();
$bestellnummer = (isset($_REQUEST['bestellnr'])?$_REQUEST['bestellnr']:'');
$titel = (isset($_REQUEST['titel'])?$_REQUEST['titel']:'');
$evon = (isset($_REQUEST['evon'])?$_REQUEST['evon']:'');
$ebis = (isset($_REQUEST['ebis'])?$_REQUEST['ebis']:'');
$bvon = (isset($_REQUEST['bvon'])?$_REQUEST['bvon']:'');
$bbis = (isset($_REQUEST['bbis'])?$_REQUEST['bbis']:'');
$tag = (isset($_REQUEST['tag'])?$_REQUEST['tag']:'');
$zahlungstyp = (isset($_REQUEST['filter_zahlungstyp'])?$_REQUEST['filter_zahlungstyp']:'');
$firma_id = (isset($_REQUEST['firma_id'])?$_REQUEST['firma_id']:'');
if(!isset($_REQUEST['filter_oe_kurzbz']) || $_REQUEST['filter_oe_kurzbz'] == 'opt_auswahl')
$oe_kurzbz = '';
else
$oe_kurzbz = $_REQUEST['filter_oe_kurzbz'];
$filter_kostenstelle = (isset($_REQUEST['filter_kostenstelle'])?$_REQUEST['filter_kostenstelle']:'');
$filter_tag = (isset($_REQUEST['filter_tag'])?$_REQUEST['filter_tag']:'');
$filter_konto = (isset($_REQUEST['filter_konto'])?$_REQUEST['filter_konto']:'');
$mitarbeiter_uid = (isset($_REQUEST['mitarbeiter_uid'])?$_REQUEST['mitarbeiter_uid']:'');
$filter_firma = (isset($_REQUEST['filter_firma'])?$_REQUEST['filter_firma']:'');
$rechnung = (isset ($_REQUEST['rechnung'])?true:false);
$tagsNotExists = (isset ($_REQUEST['tagsvorhanden'])?true:false);
$ohneFreigabe = (isset ($_REQUEST['ohneFreigabe'])?true:false);
$bestellposition= (isset($_REQUEST['bestellposition'])?$_REQUEST['bestellposition']:'');
$bestellung = new wawi_bestellung();
if($evon != '')
$evon = $date->formatDatum($evon);
if($ebis != '')
$ebis = $date->formatDatum($ebis);
if($bvon != '')
$bvon = $date->formatDatum($bvon);
if($bbis != '')
$bbis = $date->formatDatum($bbis);
if(($evon || $evon === '') && ($ebis || $ebis === '' ) && ($bvon || $bvon === '') && ($bbis || $bbis === ''))
{
// Filter firma oder firma id werden angezeigt
if($bestellung->getAllSearch($bestellnummer, $titel, $evon, $ebis, $bvon, $bbis, $firma_id, $oe_kurzbz, $filter_konto, $mitarbeiter_uid, $rechnung, $filter_firma, $filter_kostenstelle, $tag, $zahlungstyp, $tagsNotExists, $bestellposition, $ohneFreigabe))
{
$brutto = 0;
$gesamtpreis =0;
$firma = new firma();
$date = new datum();
echo "<table id='myTable' class='tablesorter' width ='100%'> <thead>\n";
echo "<tr>
<th></th>
<th>Bestellnr.</th>
<th>Bestell_ID</th>
<th>Firma</th>
<th>Erstellung</th>
<th>Freigegeben</th>
<th>Geliefert</th>
<th>Brutto</th>
<th>Titel</th>
<th>Letzte Änderung</th>
</tr></thead><tbody>\n";
foreach($bestellung->result as $row)
{
$geliefert = 'nein';
$brutto = $bestellung->getBrutto($row->bestellung_id);
$gesamtpreis +=$brutto;
if($status->isStatiVorhanden($row->bestellung_id, 'Lieferung'))
$geliefert = 'ja';
$firmenname = '';
if(is_numeric($row->firma_id))
{
$firma->load($row->firma_id);
$firmenname = $firma->name;
}
//Zeilen der Tabelle ausgeben
echo "<tr>\n";
echo "<td nowrap> <a href= \"bestellung.php?method=update&id=$row->bestellung_id\" title=\"Bestellung bearbeiten\"> <img src=\"../skin/images/edit_wawi.gif\"> </a><a href=\"bestellung.php?method=delete&id=$row->bestellung_id\" onclick='return conf_del()' title='Bestellung löschen'> <img src=\"../skin/images/delete_x.png\"></a><a href= \"rechnung.php?method=update&bestellung_id=$row->bestellung_id\" title=\"Neue Rechnung anlegen\"> <img src=\"../skin/images/Calculator.png\"> </a><a href= \"bestellung.php?method=copy&id=$row->bestellung_id\" title=\"Bestellung kopieren\"> <img src=\"../skin/images/copy.png\"> </a></td>";
echo '<td>'.$row->bestell_nr."</td>\n";
echo '<td>'.$row->bestellung_id."</td>\n";
echo '<td>'.$firmenname."</td>\n";
echo '<td>'.$date->formatDatum($row->insertamum, 'd.m.Y')."</td>\n";
echo '<td>'.$freigegeben=($row->freigegeben=='t')?'ja':'nein'."</td>\n";
echo '<td>'.$geliefert.'</td>';
echo '<td>'.number_format($brutto, 2, ",",".")."</td>\n";
echo '<td>'.$row->titel."</td>\n";
echo '<td>'.$date->formatDatum($row->updateamum,'d.m.Y').' '.$row->updatevon ."</td>\n";
echo "</tr>\n";
}
echo "</tbody>\n";
echo "<tfooter><tr><td></td><td></td><td></td><td></td><td></td><td><td>Summe:</td><td colspan='2'>".number_format($gesamtpreis,2, ",",".")." €</td></tr></tfooter></table>\n";
}
else
echo $bestellung->errormsg;
}
else
echo "ungültiges Datumsformat";
}
}
elseif($aktion == 'new')
{
// Maske für neue Bestellung anzeigen
if(!$rechte->isberechtigt('wawi/bestellung',null, 'sui'))
die('Sie haben keine Berechtigung zum Anlegen von Bestellungen');
echo "<h2>Neue Bestellung</h2>";
echo "<form action ='bestellung.php?method=save&new=true' method='post' name='newForm'>\n";
echo "<table border = 0>\n";
echo "<tr>\n";
echo "<td>Titel:</td>\n";
echo "<td><input type='text' size ='32' maxlength='256' id ='titel' name ='titel'>";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>Kostenstelle:</td><td><SELECT name='filter_kst' onchange='loadKonto(this.value)'>\n";
echo "<option value ='opt_kostenstelle'>-- Kostenstelle auswählen --</option>\n";
foreach ($kst->result as $ks)
{
echo "<option value=".$ks->kostenstelle_id.">".$ks->bezeichnung."(".mb_strtoupper($ks->kurzbz).") - ".mb_strtoupper($ks->oe_kurzbz)."</option>\n";
}
echo "</SELECT></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>Firma:</td>\n";
echo "<td> <input id='firmenname' name='firmenname' size='32' maxlength='30' value='' ></td>\n";
echo "<td> <input type ='hidden' id='firma_id' name='firma_id' size='10' maxlength='30' value='' ></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>Konto: </td>\n";
echo "<td>\n";
echo "<select name='konto' id='konto' style='width: 230px;'>\n";
echo "<option value='' >Konto auswaehlen</option>\n";
echo "</select>\n";
echo "</td>\n";
echo "<tr>\n";
echo "<td>&nbsp;</td>\n";
echo "<tr><td><input type='submit' id='submit' name='submit' value='Anlegen' onclick='return checkKst();' class='cursor'></td></tr>\n";
echo "</table>\n";
echo "</form>";
echo "<span><br>Waren im Wert von &uuml;ber &euro; 500,- sind als Investition zu betrachten, darunter als geringwertiges Wirtschaftsgut (GWG). Dienstleistungen, Nahrungsmittel etc. sind Aufw&auml;nde.</span>";
echo '
<script type="text/javascript">
function checkKst()
{
if(document.newForm.filter_kst.options[0].selected == true)
{
alert("Keine Kostenstelle ausgewählt.");
return false;
}
return true;
}
</script>';
}
elseif($aktion == 'save')
{
if(isset($_POST))
{
// Die Bestellung wird gespeichert und die neue id zurückgegeben
if(!$rechte->isberechtigt('wawi/bestellung',null, 'sui'))
die('Sie haben keine Berechtigung fuer diese Aktion');
$newBestellung = new wawi_bestellung();
$newBestellung->titel = $_POST['titel'];
if($_POST['filter_kst']=='opt_kostenstelle')
$newBestellung->kostenstelle_id = null;
else
$newBestellung->kostenstelle_id = $_POST['filter_kst'];
$newBestellung->firma_id = $_POST['firma_id'];
if($_POST['konto']=='')
$newBestellung->konto_id = null;
else
$newBestellung->konto_id = $_POST['konto'];
$newBestellung->insertamum = date('Y-m-d H:i:s');
$newBestellung->insertvon = $user;
$newBestellung->updateamum = date('Y-m-d H:i:s');
$newBestellung->updatevon = $user;
$newBestellung->besteller_uid = $user;
$newBestellung->new = true;
$newBestellung->freigegeben = false;
// vordefinierte Werte
$newBestellung->zahlungstyp_kurzbz = 'rechnung';
$newBestellung->lieferadresse = '1';
$newBestellung->rechnungsadresse = '1';
$newBestellung->bestell_nr = $newBestellung->createBestellNr($newBestellung->kostenstelle_id);
if (!$bestell_id = $newBestellung->save())
{
echo $newBestellung->errormsg;
}
else
{
$ausgabemsg.='<span class="ok">Bestellung wurde erfolgreich angelegt!</span><br>';
$_GET['method']= 'update';
$_GET['id'] = $bestell_id;
}
}
}
elseif($_GET['method']=='delete')
{
// Bestellung löschen
$id = (isset($_GET['id'])?$_GET['id']:null);
$bestellung = new wawi_bestellung();
$bestellung->load($id);
if(!$rechte->isberechtigt('wawi/bestellung',null, 'suid', $bestellung->kostenstelle_id))
die('Sie haben keine Berechtigung zum Löschen von Bestellungen');
if($bestellung->RechnungVorhanden($id))
{
echo 'Kann nicht gelöscht werden. Der Bestellung ist eine Rechnung zugeordnet.';
}
else
{
if($bestellung->delete($id))
echo 'Bestellung erfolgreich gelöscht. <br>';
else
echo $bestellung->errormsg;
}
}
elseif($_GET['method']=='deletedetail')
{
if(!$rechte->isberechtigt('wawi/bestellung',null, 'suid'))
die('Sie haben keine Berechtigung zum Löschen von Bestellungen');
// Detail löschen
$id = (isset($_GET['id'])?$_GET['id']:null);
$detail = new wawi_bestelldetail();
$detail->delete($id);
}
elseif($_GET['method']=='copy')
{
$bestellung_id = $_GET['id'];
$bestellung = new wawi_bestellung();
$bestellung->load($bestellung_id);
if(!$rechte->isberechtigt('wawi/bestellung',null, 'sui', $bestellung->kostenstelle_id))
die('Sie haben keine Berechtigung zum Kopieren dieser Bestellung.');
if ($bestellung_neu = $bestellung->copyBestellung($bestellung_id, $user))
{
$_GET['method']='update';
$_GET['id']=$bestellung_neu;
$ausgabemsg.='<span class="ok">Bestellung wurde erfolgreich kopiert.</span><br>';
}
}
if($_GET['method']=='update')
{
echo ' <script type="text/javascript">
function FensterOeffnen (adresse)
{
MeinFenster = window.open(adresse, "Info", "width=400,height=500,left=100,top=200");
MeinFenster.focus();
}
</script>';
// Bestellung Editieren
if(isset($_GET['bestellung']))
{
// Update auf Bestellung
$date = new datum();
$save = false;
$bestellung_id = $_GET['bestellung'];
$bestellung_old = new wawi_bestellung();
$bestellung_old->load($bestellung_id);
$bestellung_new = new wawi_bestellung();
$bestellung_new->load($bestellung_id);
$bestellung_new_brutto = $bestellung_new->getBrutto($bestellung_id);
$status = new wawi_bestellstatus();
if(!$rechte->isberechtigt('wawi/bestellung',null, 'sui',$bestellung_old->kostenstelle_id)
&& !$rechte->isberechtigt('wawi/freigabe',null, 's',$bestellung_old->kostenstelle_id)
&& !$rechte->isberechtigt('wawi/freigabe_advanced'))
die('Sie haben keine Berechtigung fuer diese Bestellung');
// speichern
if(isset($_POST['btn_abschicken']) || isset($_POST['btn_submit']))
{
// überprüfen wenn js fehlschlägt, nicht speichern
if(isset($_POST['filter_kst']) || isset($_POST['titel']))
{
$aufteilung_anzahl = $_POST['anz_aufteilung'];
$bestellung_detail_anz = $_POST['detail_anz'];
$bestellung_new->new = false;
$bestellung_new->besteller_uid=$_POST['besteller_uid'];
if(is_numeric($_POST['filter_konto']))
$bestellung_new->konto_id = $_POST['filter_konto'];
else
$bestellung_new->konto_id = '';
$bestellung_new->firma_id = $_POST['firma_id'];
$bestellung_new->lieferadresse = $_POST['filter_lieferadresse'];
$bestellung_new->rechnungsadresse = $_POST['filter_rechnungsadresse'];
$bestellung_new->titel = $_POST['titel'];
$bestellung_new->bemerkung = $_POST['bemerkung'];
$bestellung_new->liefertermin = $_POST['liefertermin'];
$bestellung_new->updateamum = date('Y-m-d H:i:s');
$bestellung_new->updatevon = $user;
$bestellung_new->zahlungstyp_kurzbz = $_POST['filter_zahlungstyp'];
$bestellung_new->kostenstelle_id = $_POST['filter_kst'];
// wenn sich kostenstelle geändert hat, neue bestellnummer generieren
if($bestellung_new->kostenstelle_id != $bestellung_old->kostenstelle_id && !$status->isStatiVorhanden($bestellung_id, 'Bestellung') )
{
$bestellung_new->bestell_nr = $bestellung_new->createBestellNr($bestellung_new->kostenstelle_id);
}
$tags = explode(";", $_POST['tags']);
$help_tags = new tags();
$help_tags->bestellung_id = $bestellung_id;
$help_tags->deleteBestellungTag($tags);
foreach ($tags as $bestelltags)
{
$tag_bestellung = new tags();
$tag_bestellung->tag = trim($bestelltags);
$tag_bestellung->bestellung_id = $bestellung_id;
$tag_bestellung->insertvon = $user;
$tag_bestellung->insertamum = date('Y-m-d H:i:s');
if(!$tag_bestellung->TagExists())
{
$tag_bestellung->saveTag();
$tag_bestellung->saveBestellungTag();
}
else
{
if(!$tag_bestellung->BestellungTagExists())
$tag_bestellung->saveBestellungTag();
}
}
for($i = 1; $i <= $bestellung_detail_anz; $i++)
{
// wenn ein Detail gelöscht wird Durchlauf überspringen
if(!isset($_POST["bestelldetailid_$i"]))
continue;
// wenn letzte zeile leer ist, nicht speichern
if($i == $bestellung_detail_anz && $_POST["ve_$i"] == '' && $_POST["menge_$i"] =='' && $_POST["beschreibung_$i"]=='' && $_POST["artikelnr_$i"] =='')
continue;
$detail_id = $_POST["bestelldetailid_$i"];
$bestell_detail = new wawi_bestelldetail();
// gibt es ein bestelldetail schon
if($detail_id != '')
{
// Update
$bestell_detail->load($detail_id);
$tags_detail = explode(";", $_POST["detail_tag_$i"]);
$help_detailtags = new tags();
$help_detailtags->bestelldetail_id = $detail_id;
$help_detailtags->deleteBestelldetailTag($tags_detail);
foreach ($tags_detail as $det)
{
$detail_tag = new tags();
$detail_tag->tag = trim($det);
$detail_tag->bestelldetail_id = $detail_id;
$detail_tag->insertvon = $user;
$detail_tag->insertamum = date('Y-m-d H:i:s');
if(!$detail_tag->TagExists())
{
$detail_tag->saveTag();
$detail_tag->saveBestelldetailTag();
}
else
{
if(!$detail_tag->BestelldetailTagExists())
$detail_tag->saveBestelldetailTag();
}
}
$menge = $_POST["menge_$i"];
if($menge == '')
$menge = '0';
$bestell_detail->position = $_POST["pos_$i"];
if($_POST["sort_$i"] !='')
$bestell_detail->sort = $_POST["sort_$i"];
else
$bestell_detail->sort = $_POST["pos_$i"];
$bestell_detail->menge = $menge;
$bestell_detail->verpackungseinheit = $_POST["ve_$i"];
$bestell_detail->beschreibung = $_POST["beschreibung_$i"];
$bestell_detail->artikelnummer = $_POST["artikelnr_$i"];
$bestell_detail->preisprove = mb_str_replace(',','.', $_POST["preisprove_$i"]);
$bestell_detail->mwst = $_POST["mwst_$i"];
$bestell_detail->updateamum = date('Y-m-d H:i:s');
$bestell_detail->updatevon = $user;
$bestell_detail->new = false;
}
else
{
// Insert
$menge = $_POST["menge_$i"];
if($menge == '')
$menge = '0';
$bestell_detail->bestellung_id = $_GET['bestellung'];
$bestell_detail->position = $_POST["pos_$i"];
$bestell_detail->menge = $menge;
$bestell_detail->verpackungseinheit = $_POST["ve_$i"];
$bestell_detail->beschreibung = $_POST["beschreibung_$i"];
$bestell_detail->artikelnummer = $_POST["artikelnr_$i"];
$bestell_detail->preisprove = mb_str_replace(',', '.', $_POST["preisprove_$i"]);
$bestell_detail->mwst = $_POST["mwst_$i"];
if($_POST["sort_$i"] != '')
$bestell_detail->sort = $_POST["sort_$i"];
else
$bestell_detail->sort = $_POST["pos_$i"];
$bestell_detail->insertamum = date('Y-m-d H:i:s');
$bestell_detail->insertvon = $user;
$bestell_detail->updateamum = date('Y-m-d H:i:s');
$bestell_detail->updatevon = $user;
$bestell_detail->new = true;
}
if(!$bestell_detail->save())
echo $bestell_detail->errormsg;
}
for($i=0; $i<$aufteilung_anzahl; $i++)
{
$aufteilung = new wawi_aufteilung();
$aufteilung->bestellung_id = $bestellung_id;
$aufteilung->oe_kurzbz = $_POST['oe_kurzbz_'.$i];
$aufteilung->anteil = $_POST['aufteilung_'.$i];
if($aufteilung->AufteilungExists())
{
// Update
$aufteilung->updateamum = date('Y-m-d H:i:s');
$aufteilung->updatevon = $user;
$aufteilung->new = false;
}
else
{
// Insert
$aufteilung->updateamum = date('Y-m-d H:i:s');
$aufteilung->updatevon = $user;
$aufteilung->insertamum = date('Y-m-d H:i:s');
$aufteilung->insertvon = $user;
$aufteilung->new = true;
}
$aufteilung->saveAufteilung();
}
if($bestellung_new->save())
{
$ausgabemsg.='<span class="ok">Bestellung wurde erfolgreich gespeichert!</span><br>';
$save = true;
}
}
}
// Bestellung freigeben wird in gang gesetzt --> durch Abschick Button
if(isset($_POST['btn_abschicken']) )
{
// wenn status Storno vorhanden ist kann nicht mehr freigegeben werden
if($status->isStatiVorhanden($bestellung_new->bestellung_id, 'Storno'))
{
echo '<span class="error">Keine Freigabe mehr möglich, da Storniert wurde.</span><br />';
}
else
{
$status_abgeschickt = new wawi_bestellstatus();
if(!$status_abgeschickt->isStatiVorhanden($bestellung_id, 'Abgeschickt'))
{
$bestellung_new->load($bestellung_id);
$status_abgeschickt->bestellung_id = $bestellung_id; ;
$status_abgeschickt->bestellstatus_kurzbz ='Abgeschickt';
$status_abgeschickt->uid = $user;
$status_abgeschickt->oe_kurzbz = '';
$status_abgeschickt->datum = date('Y-m-d H:i:s');
$status_abgeschickt->insertvon = $user;
$status_abgeschickt->insertamum = date('Y-m-d H:i:s');
$status_abgeschickt->updatevon = $user;
$status_abgeschickt->updateamum = date('Y-m-d H:i:s');
if(!$status_abgeschickt->save())
echo "Fehler beim Setzen auf Status Abgeschickt.";
// wer ist freigabeberechtigt auf kostenstelle
$rechte_fg = new benutzerberechtigung();
$uids = $rechte_fg->getFreigabeBenutzer($bestellung_new->kostenstelle_id, null);
if(empty($uids))
$ausgabemsg .='<span class="error">Es ist niemand zur Freigabe der Kostenstelle berechtigt.</span><br>';
else
$ausgabemsg.=sendFreigabeMails($uids, $bestellung_new, $user);
}
}
}
// Kostenstelle hat freigegeben
if(isset($_POST['btn_freigabe']) || isset($_POST['btn_freigabe_kst']) )
{
if(!$rechte->isBerechtigt('wawi/freigabe',null, 'suid', $bestellung_new->kostenstelle_id)
&& !$rechte->isBerechtigt('wawi/freigabe_advanced'))
die('Sie haben keine Berechtigung zum Freigeben der Bestellung');
if(isset($_POST['btn_freigabe_kst']))
{
// wenn status Storno vorhanden, soll nicht mehr freigegeben werden.
if($status->isStatiVorhanden($bestellung_new->bestellung_id, 'Storno'))
{
$ausgabemsg.= '<span class="error">Keine Freigabe mehr möglich, da Storniert wurde.</span><br>';
}
else
{
// Freigabestatus für Kostenstelle
$bestellung_new->load($bestellung_id);
$status = new wawi_bestellstatus();
$status->bestellung_id = $bestellung_new->bestellung_id;
$status->bestellstatus_kurzbz = 'Freigabe';
$status->uid = $user;
$status->oe_kurzbz = '';
$status->datum = date('Y-m-d H:i:s');
$status->insertvon = $user;
$status->insertamum = date('Y-m-d H:i:s');
$status->updateamum = date('Y-m-d H:i:s');
$status->updatevon = $user;
if(!$status->save())
{
$ausgabemsg.= '<span class="error">Fehler beim Setzen auf Status Freigabe.</span><br>';
}
else
{
$ausgabemsg.= '<span class="ok">Bestellung wurde erfolgreich freigegeben</span><br>';
// wer ist freigabeberechtigt auf nächsthöhere Organisationseinheit
$oes = array();
$oes = $bestellung_new->FreigabeOe($bestellung_id);
$freigabe= false;
foreach($oes as $o)
{
if(!$status->isStatiVorhanden($bestellung_new->bestellung_id, 'Freigabe', $o))
{
$rechte_fg = new benutzerberechtigung();
$uids = $rechte_fg->getFreigabeBenutzer(null, $o);
if(empty($uids))
$ausgabemsg .='<span class="error">Es ist niemand zur Freigabe der Kostenstelle berechtigt.</span><br>';
else
$freigabe = true;
break;
}
}
if(!$freigabe == false)
{
$ausgabemsg.=sendFreigabeMails($uids, $bestellung_new, $user);
}
else
{
//Bestellung komplett freigegeben
//Freigabe setzen und Info an Zentraleinkauf schicken
if(!$bestellung_new->isFreigegeben($bestellung_new->bestellung_id))
$bestellung_new->SetFreigegeben($bestellung_new->bestellung_id);
sendZentraleinkaufFreigegeben($bestellung_new);
sendBestellerMail($bestellung_new, 'freigabe');
}
}
}
}
else
{
// OE hat freigegeben
// wenn status Storno vorhanden, soll nicht mehr freigegeben werden.
if($status->isStatiVorhanden($bestellung_new->bestellung_id, 'Storno'))
{
$ausgabemsg.='<span class="error">Keine Freigabe mehr möglich, da Storniert wurde.</span><br>';
}
else
{
// Freigabestatus für Kostenstelle
$bestellung_new->load($bestellung_id);
$status = new wawi_bestellstatus();
$status->bestellung_id = $bestellung_new->bestellung_id;
$status->bestellstatus_kurzbz = 'Freigabe';
$status->uid = $user;
$status->oe_kurzbz = $_POST['freigabe_oe'];
$status->datum = date('Y-m-d H:i:s');
$status->insertvon = $user;
$status->insertamum = date('Y-m-d H:i:s');
$status->updateamum = date('Y-m-d H:i:s');
$status->updatevon = $user;
if(!$status->save())
{
$ausgabemsg.= '<span class="error">Fehler beim Setzen auf Status Freigabe.</span><br>';
}
else
{
$ausgabemsg.= '<span class="ok">Bestellung wurde erfolgreich freigegeben</span><br>';
// wer ist freigabeberechtigt auf nächsthöhere Organisationseinheit
$oes = array();
$oes = $bestellung_new->FreigabeOe($bestellung_id);
$freigabe = false;
foreach($oes as $o)
{
if(!$status->isStatiVorhanden($bestellung_new->bestellung_id, 'Freigabe', $o))
{
$rechte_fg = new benutzerberechtigung();
$uids = $rechte_fg->getFreigabeBenutzer(null, $o);
if(empty($uids))
$ausgabemsg .='<span class="error">Es ist niemand zur Freigabe der Kostenstelle berechtigt.</span><br>';
else
$freigabe = true;
break;
}
}
if(!$freigabe == false)
{
// es wurde noch nicht alles Freigegeben
$ausgabemsg.=sendFreigabeMails($uids, $bestellung_new, $user);
}
else
{
//Bestellung komplett freigegeben
//Freigabe setzen und Info an Zentraleinkauf schicken
if(!$bestellung_new->isFreigegeben($bestellung_new->bestellung_id))
$bestellung_new->SetFreigegeben($bestellung_new->bestellung_id);
sendZentraleinkaufFreigegeben($bestellung_new);
sendBestellerMail($bestellung_new, 'freigabe');
}
}
}
}
}
// es soll die freigabenachricht erneut versendet werden, an dem der zum freigeben drann ist
if(isset($_POST['btn_erneut_abschicken']))
{
if(!$status->isStatiVorhanden($bestellung_new->bestellung_id, 'Freigabe'))
{
// KST hat noch nicht freigegeben
$rechte_fg = new benutzerberechtigung();
$uids = $rechte_fg->getFreigabeBenutzer($bestellung_new->kostenstelle_id, null);
if(empty($uids))
$ausgabemsg .='<span class="error">Es ist niemand zur Freigabe der Kostenstelle berechtigt.</span><br>';
else
$ausgabemsg.=sendFreigabeMails($uids, $bestellung_new, $user);
}
else
{
$bestellung_new->load($bestellung_id);
// wer ist freigabeberechtigt auf nächsthöhere Organisationseinheit
$oes = array();
$oes = $bestellung_new->FreigabeOe($bestellung_id);
$freigabe= false;
foreach($oes as $o)
{
if(!$status->isStatiVorhanden($bestellung_new->bestellung_id, 'Freigabe', $o))
{
$rechte_fg = new benutzerberechtigung();
$uids = $rechte_fg->getFreigabeBenutzer(null, $o);
if(empty($uids))
$ausgabemsg .='<span class="error">Es ist niemand zur Freigabe der Kostenstelle berechtigt.</span><br>';
else
$freigabe = true;
break;
}
}
if(!$freigabe == false)
{
$ausgabemsg.=sendFreigabeMails($uids, $bestellung_new, $user);
// fehlermeldung wenn kein uid gefunden
}
else
{
$ausgabemsg.= '<span class="ok">Die Bestellung wurde komplett freigegeben</span><br>';
}
}
}
$_GET['method']='update';
$_GET['id']=$bestellung_new->bestellung_id;
}
// Bestellung Editieren
$id = (isset($_GET['id'])?$_GET['id']:null);
$bestellung = new wawi_bestellung();
if(!$bestellung->load($id))
die("Bestellung ist nicht vorhanden.");
if(!$rechte->isberechtigt('wawi/bestellung',null, 's',$bestellung->kostenstelle_id)
&& !$rechte->isberechtigt('wawi/freigabe',null, 's',$bestellung->kostenstelle_id))
die('Sie haben keine Berechtigung fuer diese Bestellung <a href="javascript:history.back()">Zurück</a>');
//Session setzen damit von der Firmenanlage wieder zurueckgesprungen werden kann
$_SESSION['wawi/last_bestellung_id']=$id;
$detail = new wawi_bestelldetail();
$detail->getAllDetailsFromBestellung($id);
$anz_detail = count($detail->result);
$konto = new wawi_konto();
$konto->getKontoFromKostenstelle($bestellung->kostenstelle_id);
$konto_bestellung = new wawi_konto();
$konto_bestellung->load($bestellung->konto_id);
$kostenstelle = new wawi_kostenstelle();
$kostenstelle->load($bestellung->kostenstelle_id);
$aufteilung = new wawi_aufteilung();
// Bei neuer Bestellung Default Aufteilung holen ansonsten von bestehender bestellung
if(isset($_GET['new']))
$aufteilung->getAufteilungFromKostenstelle($bestellung->kostenstelle_id);
else
$aufteilung->getAufteilungFromBestellung($bestellung->bestellung_id);
$firma = new firma();
$firma->load($bestellung->firma_id);
$allStandorte = new standort();
$allStandorte->getStandorteWithTyp('Intern');
$status= new wawi_bestellstatus();
$bestell_tag = new tags();
$studiengang = new studiengang();
$studiengang->getAll('typ, kurzbz', null);
//budget berechnung
$geschaeftsjahr = new geschaeftsjahr();
$gJahr = $geschaeftsjahr->getSpecific($bestellung->insertamum);
$budget = $kostenstelle->getBudget($bestellung->kostenstelle_id,$gJahr);
$spentBudget = $bestellung->getSpentBudget($bestellung->kostenstelle_id, $gJahr);
$restBudget = $budget - $spentBudget;
$summe= 0;
$konto_vorhanden = false;
$kst_vorhanden =false;
$alert ='';
$besteller = new benutzer();
$besteller->load($bestellung->besteller_uid);
$besteller_vorname=$besteller->vorname;
$besteller_nachname=$besteller->nachname;
if($restBudget < 0 && $budget != 0)
$ausgabemsg.='<span class="error">Ihr aktuelles Budget ist bereits überzogen.</span>';
//Meldungen Ausgeben
echo '<div style="float: right">',$ausgabemsg,'</div>';
echo "<h2>Bearbeiten</h2>";
echo "<form action =\"bestellung.php?method=update&amp;bestellung=$bestellung->bestellung_id\" method='post' name='editForm' id='editForm' onSubmit='document.getElementById(\"filter_kst\").disabled=false;'>\n";
echo "<h4>Bestellnummer: ".$bestellung->bestell_nr;
echo ' <a href= "bestellung.php?method=copy&amp;id='.$bestellung->bestellung_id.'"> <img src="../skin/images/copy.png" title="Bestellung kopieren" class="cursor"></a>';
echo ' <a href= "rechnung.php?method=update&amp;bestellung_id='.$bestellung->bestellung_id.'"> <img src="../skin/images/Calculator.png" title="Rechnung anlegen" class="cursor"></a>';
if($rechte->isBerechtigt('system/developer'))
echo ' <a href= "bestellung.php?method=update&amp;id='.$bestellung->bestellung_id.'"> <img src="../skin/images/refresh.png" title="Refresh" class="cursor"></a>';
echo '</h4>';
//tabelle Bestelldetails
echo "<table border = 0 width= '100%' class='dark'>\n";
echo "<tr>\n";
echo " <td>Titel: </td>\n";
echo " <td><input name= 'titel' type='text' size='60' maxlength='256' value ='".$bestellung->titel."'></td>\n";
echo " <td>Erstellt am:</td>\n";
echo " <td><span name='erstellt' title ='".$bestellung->insertvon."' >".$date->formatDatum($bestellung->insertamum, 'd.m.Y')."</span></td>\n";
echo " <td>Liefertermin: <input type='text' name ='liefertermin' size='16' maxlength='16' value='".$bestellung->liefertermin."'></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo " <td>Firma: </td>\n";
echo " <td><input type='text' name='firmenname' id='firmenname' size='60' maxlength='256' value ='".$firma->name."'>\n";
echo " <input type='hidden' name='firma_id' id='firma_id' size='5' maxlength='7' value ='".$bestellung->firma_id."'></td>\n";
echo " <td>Kontaktperson:</td><td colspan='2'> <input type='text' name='besteller' id='besteller' size='30' maxlength='256' value ='".$besteller_vorname.' '.$besteller_nachname."'>\n";
echo " <input type='hidden' name='besteller_uid' id='besteller_uid' size='5' maxlength='7' value ='".$bestellung->besteller_uid."'></td>\n";
echo "</tr>\n";
echo "<tr>\n";
$disabled = '';
if($status->isStatiVorhanden($bestellung->bestellung_id, 'Bestellung') || $status->isStatiVorhanden($bestellung->bestellung_id, 'Storno') || $status->isStatiVorhanden($bestellung->bestellung_id, 'Abgeschickt'))
$disabled = 'disabled';
if($rechte->isberechtigt('wawi/bestellung_advanced',null, 'suid', $bestellung->kostenstelle_id) || ($rechte->isBerechtigt('wawi/freigabe', null, 'suid',$bestellung->kostenstelle_id) && $bestellung->freigegeben =='f'))
$disabled = '';
echo "<td>Kostenstelle:</td><td><SELECT name='filter_kst' onchange='loadKonto(this.value)' $disabled id='filter_kst'>\n";
foreach ($kst->result as $ks)
{
$selected = '';
if($ks->kostenstelle_id == $bestellung->kostenstelle_id)
{
$selected = 'selected';
$kst_vorhanden = true;
}
echo "<option value=".$ks->kostenstelle_id." $selected>".$ks->bezeichnung."(".mb_strtoupper($ks->kurzbz).") - ".mb_strtoupper($ks->oe_kurzbz)."</option>\n";
}
// wenn user nicht auf kst berechtigt ist, trotzdem anzeigen zum freigeben
if(!$kst_vorhanden)
echo "<option value='".$bestellung->kostenstelle_id."' selected >".$kostenstelle->bezeichnung."(".mb_strtoupper($kostenstelle->kurzbz).") - ".mb_strtoupper($kostenstelle->oe_kurzbz)."</option>\n";
echo "</SELECT></td>\n";
echo "<td>Lieferadresse:</td>\n";
echo "<td colspan ='2'><Select name='filter_lieferadresse' id='filter_lieferadresse' style='width: 400px;'>\n";
foreach($allStandorte->result as $standorte)
{
$selected ='';
$standort_lieferadresse = new adresse();
$standort_lieferadresse->load($standorte->adresse_id);
if($standort_lieferadresse->adresse_id == $bestellung->lieferadresse)
{
$selected ='selected';
}
echo "<option value='".$standort_lieferadresse->adresse_id."' ". $selected.">".$standorte->kurzbz.' - '.$standort_lieferadresse->strasse.', '.$standort_lieferadresse->plz.' '.$standort_lieferadresse->ort."</option>\n";
}
echo "</select></td></tr>\n";
echo "<tr>\n";
echo " <td>Konto: </td>\n";
echo " <td><SELECT name='filter_konto' id='konto' style='width: 230px;'>\n";
foreach($konto->result as $ko)
{
$selected ='';
if($ko->konto_id == $bestellung->konto_id)
{
$selected = 'selected';
$konto_vorhanden = true;
}
echo '<option value='.$ko->konto_id.' '.$selected.'>'.$ko->kurzbz."</option>\n";
}
//wenn die konto_id von der bestellung nicht in den Konten die der Kostenstelle zugeordnet sind befidet --> selbst hinschreiben
if(!$konto_vorhanden)
{
echo '<option value='.$bestellung->konto_id.' selected>'.$konto_bestellung->kurzbz."</option>\n";
}
echo "</select></td><td>Rechnungsadresse:</td>\n";
echo "<td colspan ='2'><Select name='filter_rechnungsadresse' id='filter_rechnungsadresse' style='width: 400px;'>\n";
foreach($allStandorte->result as $standorte)
{
$selected ='';
$standort_rechnungsadresse = new adresse();
$standort_rechnungsadresse->load($standorte->adresse_id);
if($standort_rechnungsadresse->adresse_id == $bestellung->rechnungsadresse)
$selected ='selected';
echo "<option value='".$standort_rechnungsadresse->adresse_id."' ". $selected.">".$standorte->kurzbz.' - '.$standort_rechnungsadresse->strasse.', '.$standort_rechnungsadresse->plz.' '.$standort_rechnungsadresse->ort."</option>\n";
}
echo "</select></td></tr>\n";
echo "<tr>\n";
echo " <td>Bemerkungen: </td>\n";
echo " <td><input type='text' name='bemerkung' size='60' maxlength='256' value ='$bestellung->bemerkung'></td>\n";
echo " <td>Status:</td>\n";
echo " <td width ='200px'>\n";
echo "<span id='btn_bestellt'>";
$new = 0;
if($status->isStatiVorhanden($bestellung->bestellung_id, 'Bestellung'))
{
$status_help = new wawi_bestellstatus();
$status_help->getStatiFromBestellung('Bestellung', $bestellung->bestellung_id);
echo ' <span style=\"white-space: nowrap;\" title ="Bestellt von '.$status_help->insertvon.'">Bestellt am: '.$date->formatDatum($status->datum,'d.m.Y').'</span>';
$new++;
}
if($status->isStatiVorhanden($bestellung->bestellung_id, 'Lieferung') )
{
$status_help = new wawi_bestellstatus();
$status_help->getStatiFromBestellung('Lieferung', $bestellung->bestellung_id);
echo " <span style=\"white-space: nowrap;\" title=$status_help->insertvon>Geliefert am: ".$date->formatDatum($status->datum, 'd.m.Y')."</span>";
$new++;
}
if($status->isStatiVorhanden($bestellung->bestellung_id, 'Storno') )
{
echo " <span>Storniert am: ".$date->formatDatum($status->datum, 'd.m.Y')."</span>";
$new++;
}
if($new == 0)
{
echo "<span name='erstellt' title ='".$bestellung->insertvon."' >Erstellt am: ".$date->formatDatum($bestellung->insertamum, 'd.m.Y')."</span>";
}
echo "</span>";
echo "</td><td>\n";
$disabled='';
if(($status->isStatiVorhanden($bestellung->bestellung_id, 'Bestellung')
||$status->isStatiVorhanden($bestellung->bestellung_id, 'Storno')
|| $rechte->isBerechtigt('wawi/bestellung_advanced',null,'suid') == false))
{
$disabled ='disabled';
}
echo "<input type='button' value='bestellen' id='bestellt' onclick='deleteBtnBestellt($bestellung->bestellung_id)' class='cursor' $disabled>";
$disabled='';
if($status->isStatiVorhanden($bestellung->bestellung_id, 'Lieferung')
||$status->isStatiVorhanden($bestellung->bestellung_id, 'Storno'))
{
$disabled ='disabled';
}
echo "<input type='button' value='geliefert' id='geliefert' onclick='deleteBtnGeliefert($bestellung->bestellung_id)' class='cursor' $disabled>";
$disabled = '';
if($status->isStatiVorhanden($bestellung->bestellung_id, 'Bestellung')
|| $status->isStatiVorhanden($bestellung->bestellung_id, 'Storno'))
{
$disabled ='disabled';
}
if($rechte->isberechtigt('wawi/storno',null, 'suid', $bestellung->kostenstelle_id))
{
echo "<input type='button' value='stornieren' id='storniert' name='storniert' $disabled onclick='deleteBtnStorno($bestellung->bestellung_id)' class='cursor' >";
}
echo"</td></tr>\n";
echo "<tr>\n";
echo"<td>Tags:</td>\n";
$bestell_tag->GetTagsByBestellung($bestellung->bestellung_id);
$tag_help = $bestell_tag->GetStringTags();
echo "<td><input type='text' id='tags' name='tags' size='32' value='".$tag_help."'>\n";
echo ' <script type="text/javascript">
$("#tags").autocomplete("wawi_autocomplete.php",
{
minChars:1,
matchSubset:1,matchContains:1,
width:500,
multiple: true,
multipleSeparator: "; ",
formatItem:formatItemTag,
extraParams:{"work":"tags", "bestell_id":"'.$bestellung->bestellung_id.'"}
});
</script>';
echo "</td>\n";
echo "<td>Freigabe:</td>\n";
echo "<td colspan =2>";
if(!$status->isStatiVorhanden($bestellung->bestellung_id, 'Abgeschickt') && $bestellung->freigegeben != 't')
{
echo "<span>Bitte Abschicken zur Freigabe.</span>";
}
$freigabebutton = true;
// Freigabe Buttons fuer Kostenstelle Anzeigen
if($status->isStatiVorhanden($bestellung->bestellung_id, 'Freigabe'))
{
echo "<span title='$status->insertvon'>KST:".$date->formatDatum($status->datum,'d.m.Y')." </span>";
}
else
{
$disabled = 'disabled';
if($status->isStatiVorhanden($bestellung->bestellung_id, 'Abgeschickt'))
{
if($rechte->isberechtigt('wawi/freigabe',null, 'su', $bestellung->kostenstelle_id)
|| $rechte->isBerechtigt('wawi/freigabe_advanced'))
{
$disabled = '';
$freigabebutton=false;
}
echo "<input type='submit' value='KST Freigabe' ".($disabled==''?"name ='btn_freigabe_kst'":$disabled).">";
}
}
// Freigabe Buttons fuer Organisationseinheiten anzeigen
if($status->isStatiVorhanden($bestellung->bestellung_id, 'Abgeschickt'))
{
$oes = array();
$oes = $bestellung->FreigabeOe($bestellung->bestellung_id);
$freigabe = false;
foreach($oes as $o)
{
if(!$status->isStatiVorhanden($bestellung->bestellung_id, 'Freigabe', $o))
{
if($freigabebutton===true && ($rechte->isberechtigt('wawi/freigabe',$o, 'su', null)
|| $rechte->isBerechtigt('wawi/freigabe_advanced')))
{
echo "<input type='submit' value='".mb_strtoupper($o)." Freigabe ' name ='btn_freigabe'>";
echo "<input type='hidden' value='$o' name ='freigabe_oe' id ='freigabe_id'>";
$freigabebutton=false;
}
else
{
echo "<input type='button' value='".mb_strtoupper($o)." Freigabe ' disabled>";
}
$freigabe = true;
}
else
{
echo "<span title='$status->insertvon'>".$o.":".$date->formatDatum($status->datum,'d.m.Y')." </span>";
}
}
/*if($freigabe == false)
{
if(!$bestellung->isFreigegeben($bestellung->bestellung_id))
$bestellung->SetFreigegeben($bestellung->bestellung_id);
}*/
}
echo "</td></tr>";
echo "<tr><td>Zahlungstyp:</td>";
echo "<td><SELECT name='filter_zahlungstyp' id='search_zahlungstyp' style='width: 230px;'>\n";
echo "<option value=''>-- Kein Typ ausgewählt --</option>";
$zahlungstyp = new wawi_zahlungstyp();
$zahlungstyp->getAll();
foreach($zahlungstyp->result as $typ)
{
$selected = '';
if($bestellung->zahlungstyp_kurzbz == $typ->zahlungstyp_kurzbz)
$selected = "selected";
echo '<option value='.$typ->zahlungstyp_kurzbz.' '.$selected.'>'.$typ->bezeichnung."</option>\n";
}
echo "</select></td>\n";
echo "<td>Rest-Budget:</td>\n";
$restBudget = sprintf('%01.2f',$restBudget);
echo "<td colspan=2 id='restbudget'>$restBudget</td></tr>";
echo "</table>\n";
echo "<br>";
//tabelle Details
echo "<table border ='0' width='70%'>\n";
echo "<tr>\n";
echo "<th></th>\n";
echo "<th></th>\n";
echo "<th></th>\n";
echo "<th>Pos</th>\n";
// echo "<th>Sort</th>\n";
echo "<th>Menge</th>\n";
echo "<th>VE</th>\n";
echo "<th>Bezeichnung</th>\n";
echo "<th>Artikelnr.</th>\n";
echo "<th>Preis/VE</th>\n";
echo "<th>USt <a href = 'mwst.html' onclick='FensterOeffnen(this.href); return false' title='Hilfe zur USt'> <img src='../skin/images/question.png'> </a></th>\n";
echo "<th>Brutto</th>\n";
echo "<th nowrap>Tags <a id='tags_link' onClick='hideTags();'><img src='../skin/images/plus.png' title='Detailtags anzeigen' class ='cursor'> </a></th>";
echo "</tr>\n";
echo "<tbody id='detailTable'>";
$i= 1;
foreach($detail->result as $det)
{
$brutto=($det->menge * ($det->preisprove +($det->preisprove * ($det->mwst/100))));
getDetailRow($i, $det->bestelldetail_id, $det->sort, $det->menge, $det->verpackungseinheit, $det->beschreibung, $det->artikelnummer, $det->preisprove, $det->mwst, sprintf("%01.2f",$brutto), $bestellung->bestellung_id, $det->position);
$summe+=$brutto;
$i++;
}
if($bestellung->freigegeben != 't')
getDetailRow($i,null,$i,null,null,null,null,null,null,null,$bestellung->bestellung_id,$i);
$test = $i;
echo "</tbody>";
echo "<tfoot>";
echo "<tr>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "<td colspan='3'>";
// neue Zeile hinzufügen nur mit Berechtigung
if($rechte->isberechtigt('wawi/bestellung_advanced',null, 'suid', $bestellung->kostenstelle_id))
echo "<input type='button' value='neue Zeile' onclick='newRow();' class='cursor'>";
echo "</td>";
echo "<td></td>";
echo "<td><input type='hidden' name='detail_anz' id='detail_anz' class='number' value='$test'></td>";
echo "<td colspan ='2' style='text-align:right;'>Gesamtpreis Netto:</td>";
echo "<td class='number'><span id='netto'></span> &euro;</td>";
echo "<td></td>";
echo "</tr>";
echo "<tr>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "<td colspan ='2' style='text-align:right;'>Gesamtpreis Brutto:</td>";
echo "<td class='number'><span id='brutto'></span> &euro;</td>";
echo"<td></td>";
echo "</tr>";
echo "</tfoot>";
echo "</table>\n";
echo "<br><br>\n";
echo '
<script type="text/javascript">
var anzahlRows='.$i.';
var bestellung_id ='.$bestellung->bestellung_id.';
var uid = "'.$user.'";
var focusRow ="1";
function FelderSperren(value)
{
var inputs = $("#editForm :input");
inputs.each(function() {
if(this.id!="tags"
&& !this.id.match(/^detail_tag_/)
&& this.type!="button"
&& this.type!="submit"
&& this.type!="hidden")
{
this.disabled=value;
}
});
}
//zeigt/versteckt die Tags an
function hideTags()
{
i=1;
while(i<=anzahlRows)
{
$("#detail_tag_"+i).toggle();
i=i+1;
}
$("#tags_link").toggle();
return false;
}
//zeigt die Tags der Details an wenn vorhanden, und versteckt diese wenn sie leer sind
function hideTags2()
{
var i=1;
var show=false;
while(i<=anzahlRows)
{
if($("#detail_tag_"+i).val()!="")
{
show=true;
}
i=i+1;
}
if(show)
{
var i=1;
while(i<=anzahlRows)
{
$("#detail_tag_"+i).show();
i=i+1;
}
$("#tags_link").hide();
}
else
{
var i=1;
while(i<=anzahlRows)
{
$("#detail_tag_"+i).hide();
i=i+1;
}
$("#tags_link").show();
}
}
// Status bestellt wird gesetzt
function deleteBtnBestellt(bestellung_id)
{
$("#btn_bestellt").html();
$("btn_bestellt").empty();
$.post("bestellung.php", {id: bestellung_id, user_id: uid, deleteBtnBestellt: "true"},
function(data){
if(data.length>10)
{
alert(data);
}
else
{
$("#btn_bestellt").html("Bestellt am: " +data);
if(typeof(document.editForm.storniert) != "undefined")
{
document.editForm.storniert.disabled=true;
}
document.editForm.bestellt.disabled=true;
document.editForm.filter_kst.disabled=true;
}
});
}
// Status geliefert wird gesetzt
function deleteBtnGeliefert(bestellung_id)
{
$("#btn_bestellt").html();
$.post("bestellung.php", {id: bestellung_id, user_id: uid, deleteBtnGeliefert: "true"},
function(data){
if(data.length>10)
{
alert(data);
}
else
{
$("#btn_bestellt").html("Geliefert am: " +data);
document.editForm.geliefert.disabled=true;
}
});
}
// Status storno wird gesetzt
function deleteBtnStorno(bestellung_id)
{
$("#btn_bestellt").html();
$.post("bestellung.php", {id: bestellung_id, user_id: uid, deleteBtnStorno: "true"},
function(data){
if(data.length>10)
{
alert(data);
}
else
{
$("#btn_bestellt").html("Storniert am: " +data);
document.editForm.btn_submit.disabled=true;
document.editForm.btn_abschicken.disabled=true;
document.editForm.storniert.disabled=true
document.editForm.bestellt.disabled=true
document.editForm.filter_kst.disabled=true;
}
});
}
/*
Berechnet die Brutto Summe für eine Zeile
*/
function calcBrutto(id)
{
var brutto=0;
var menge = $("#menge_"+id).val();
var betrag = $("#preisprove_"+id).val();
var mwst = $("#mwst_"+id).val();
if(mwst =="")
mwst = "0";
if(betrag!="" && mwst!="" && menge!="")
{
betrag = betrag.replace(",",".");
mwst = mwst.replace(",",".");
menge = parseFloat(menge);
betrag = parseFloat(betrag);
mwst = parseFloat(mwst);
brutto = menge * (brutto + (betrag+(betrag*mwst/100)));
}
brutto = Math.round(brutto*100)/100;
document.getElementById("brutto_"+id).value = brutto.toFixed(2);
summe();
}
function calcNetto(id)
{
var brutto=0;
var menge = $("#menge_"+id).val();
var brutto = $("#brutto_"+id).val();
var mwst = $("#mwst_"+id).val();
if(mwst =="")
mwst = "0";
if(brutto!="" && mwst!="" && menge!="")
{
brutto = brutto.replace(",",".");
mwst = mwst.replace(",",".");
menge = parseFloat(menge);
brutto = parseFloat(brutto);
mwst = parseFloat(mwst);
// Nettopreis berechnen
var netto = brutto/(100+mwst)*100;
var netto = netto / menge;
//auf 2 Nachkommastellen runden
netto = Math.round(netto*100)/100;
netto.toFixed(2);
$("#preisprove_"+id).val(netto);
}
summe();
}
function calcBruttoNetto(id)
{
var inetto = $("#preisprove_"+id).val();
var ibrutto = $("#brutto_"+id).val();
if(inetto=="" || inetto==0 || inetto=="0,00")
{
calcNetto(id);
}
else
{
calcBrutto(id);
}
}
/*
Berechnet die gesamte Brutto Summe für eine Bestellung
*/
function summe()
{
var i=1;
var netto=0;
var brutto=0;
while(i<=anzahlRows)
{
var menge =$("#menge_"+i).val();
var betrag = $("#preisprove_"+i).val();
var mwst = $("#mwst_"+i).val();
if(mwst =="")
mwst = "0";
// wenn es spalte nicht gibt, auslassen
if(typeof(menge) != "undefined")
{
if(betrag!="" && mwst!="" && menge!="")
{
betrag = betrag.replace(",",".");
mwst = mwst.replace(",",".");
menge = parseFloat(menge);
betrag = parseFloat(betrag);
mwst = parseFloat(mwst);
netto = netto + betrag*menge;
brutto = brutto + (menge * (betrag*((mwst+100)/100)));
}
}
i=i+1;
}
netto = Math.round(netto*100)/100;
brutto = Math.round(brutto*100)/100;
netto = netto.toFixed(2);
brutto = brutto.toFixed(2);
$("#netto").html(netto);
$("#brutto").html(brutto);
}
$(document).ready(function()
{
summe();
});
/**
* Fügt eine neue Zeile ein
*
*/
function newRow()
{
var id = anzahlRows;
$.post("bestellung.php", {id: id+1, bestellung_id: bestellung_id, getDetailRow: "true"},
function(data){
$("#detailTable").append(data);
anzahlRows=anzahlRows+1;
var test = 0;
test = document.getElementById("detail_anz").value;
document.getElementById("detail_anz").value = parseFloat(test) +1;
hideTags2();
});
}
/**
* Fuegt eine neue Zeile fuer den Betrag hinzu wenn die
* uebergebene id, die der letzte Zeile ist
* und der Betrag eingetragen wurde
*/
function checkNewRow(id, bestellung_id)
{
var betrag="";
betrag = $("#preisprove_"+id).val();
// Wenn der betrag nicht leer ist,
// und die letzte reihe ist,
// dann eine neue Zeile hinzufuegen
if(betrag.length>0 && anzahlRows==id)
{
$.post("bestellung.php", {id: id+1, bestellung_id: bestellung_id, getDetailRow: "true"},
function(data){
$("#detailTable").append(data);
anzahlRows=anzahlRows+1;
var test = 0;
test = document.getElementById("detail_anz").value;
document.getElementById("detail_anz").value = parseFloat(test) +1;
hideTags2();
});
}
return false;
}
// speichert eine Bestelldetailzeile
function saveDetail(i)
{
var pos = $("#pos_"+i).val();
var menge = $("#menge_"+i).val();
var ve = $("#ve_"+i).val();
var beschreibung = $("#beschreibung_"+i).val();
var artikelnr = $("#artikelnr_"+i).val();
var preis = $("#preisprove_"+i).val();
preis = preis.replace(",",".");
var mwst = $("#mwst_"+i).val();
mwst = mwst.replace(",",".");
var brutto = $("#brutto_"+i).val();
brutto = brutto.replace(",",".");
var sort = $("#sort_"+i).val();
var detailid= $("#bestelldetailid_"+i).val();
if(detailid != "")
{
$.post("bestellung.php", {pos: pos, menge: menge, ve: ve, beschreibung: beschreibung, artikelnr: artikelnr, preis: preis, mwst: mwst, brutto: brutto, bestellung: bestellung_id, detail_id: detailid, sort: sort, updateDetail: "true"},
function(data){
if(isNaN(data))
{
alert("Fehler:"+data);
}
});
}
else
{
$.post("bestellung.php", {pos: pos, menge: menge, ve: ve, beschreibung: beschreibung, artikelnr: artikelnr, preis: preis, mwst: mwst, brutto: brutto, bestellung: bestellung_id, sort:sort, saveDetail: "true"},
function(data){
if(isNaN(data) == false)
{
document.getElementById("bestelldetailid_"+i).value = data;
}
else
{
alert("Fehler:"+data);
}
});
}
}
// löscht einen Bestelldetaileintrag
function removeDetail(i)
{
var detail_id= $("#bestelldetailid_"+i).val();
$.post("bestellung.php", {id: detail_id, deleteDetail: "true"},
function(data){
if(data=="")
{
$("#row_"+i).remove();
}
else
alert(data);
});
summe();
}
function conf_del_budget(aktBrutto)
{
/*
var bestellungPreis = ($("#brutto").html());
var restBudget = ($("#restbudget").html());
var differenz = 0;
bestellungPreis = parseFloat(bestellungPreis);
restBudget = parseFloat(restBudget);
differenz = parseFloat(differenz);
aktBrutto = parseFloat(aktBrutto);
differenz = restBudget - bestellungPreis + aktBrutto;
if(differenz < 0 && !confirm("Die Bestellung würde das Budget überziehen. Trotzdem fortfahren?"))
{
return false;
}
*/
FelderSperren(false);
}
// ändert sich der fokus der Bestelldetailzeile -> speichern der geänderten
function checkSave(rowid)
{
if(focusRow != rowid)
{
saveDetail(focusRow);
focusRow = rowid;
}
}
// check USt
function checkUst(i)
{
var mwst = $("#mwst_"+i).val();
if(mwst > 99 || mwst < 0 || isNaN(mwst) == true)
{
alert("Ungültige Mehrwertssteuer eingetragen.");
document.getElementById("mwst_"+i).value = "20.00";
calcBruttoNetto(i);
}
}
// Beim Start pruefen ob Tags bei den Details vorhanden sind und ggf verstecken/anzeigen
$(document).ready(function()
{
hideTags2();
});
//Verschiebt die Details in der Tabelle und setzt das Sort Attribut neu
function verschieben(obj)
{
//row holen und an die richtige stelle schieben
var row = $(obj).parents("tr:first");
if ($(obj).is(".up"))
row.insertBefore(row.prev());
else
row.insertAfter(row.next());
// alle Rows durchlaufen, und das Sort Attribut neu setzen
rows = $("#detailTable").children();
var anzahl = rows.length;
var i=0;
while(i<anzahl)
{
id = rows[i].id.substring("row_".length);
sort = document.getElementById("sort_"+id);
sort.value=i;
i++;
}
}
</script>';
$disabled='';
if($status->isStatiVorhanden($bestellung->bestellung_id, 'Storno') || $status->isStatiVorhanden($bestellung->bestellung_id, 'Abgeschickt') || ($bestellung->freigegeben == 't'))
$disabled='disabled';
$aktBrutto = $bestellung->getBrutto($bestellung->bestellung_id);
if($aktBrutto =='')
$aktBrutto ="0";
echo '<table border ="0" style="width: auto"> <tr>';
echo "<td><div style='float:right;'><input type='submit' value='Speichern' id='btn_submit' name='btn_submit' onclick='return conf_del_budget($aktBrutto);' class='cursor'></td>";
echo "<td><input type='submit' value='Abschicken' id='btn_abschicken' name='btn_abschicken' $disabled class='cursor'></td>";
if($status->isStatiVorhanden($bestellung->bestellung_id, 'Abgeschickt') && $bestellung->freigegeben == 'f')
echo "<td><input type='submit' value='Erneut Abschicken' id='btn_erneut_abschicken' name='btn_erneut_abschicken' class='cursor'></td>";
echo"<td style='width:100%' align='right'>";
echo "<div ><a href ='pdfExport.php?xml=bestellung.rdf.php&xsl_oe_kurzbz=$kostenstelle->oe_kurzbz&xsl=Bestellung&id=$bestellung->bestellung_id'>Bestellschein generieren <img src='../skin/images/pdf.ico'></a></div>";
echo "</td></tr></table><br>";
if($disabled!='')
{
//Wenn die Advanced Berechtigung vorhanden ist, werden die Felder nicht gesperrt oder derjenige hat berechtigungen auf die kst oder oe und die bestellung ist noch nicht freigegeben
if(!($rechte->isBerechtigt('wawi/bestellung_advanced',null, 'suid')
|| ($rechte->isBerechtigt('wawi/freigabe',null,'suid',$bestellung->kostenstelle_id)) && $bestellung->freigegeben == 'f'))
{
// Felder Sperren
echo '<script type="text/javascript">
$(document).ready(function()
{
FelderSperren(true);
});
</script>';
}
}
if(isset($_SESSION['wawi/lastsearch']))
echo '<input type="button" class="cursor" onclick="window.location.href=\'bestellung.php?'.$_SESSION['wawi/lastsearch'].'\'" value="Zurück zur Liste" /><br><br>';
if($status->isStatiVorhanden($bestellung->bestellung_id, 'Abgeschickt'))
echo "Bestellung wurde am ".$date->formatDatum($status->datum,'d.m.Y')." abgeschickt.";
if($bestellung->isFreigegeben($bestellung->bestellung_id))
echo "<p class='freigegeben'>Die Bestellung wurde vollständig freigegeben</p>";
// div Aufteilung --> kann ein und ausgeblendet werden
echo "<br>";
echo "<a id='aufteilung_link' class='cursor' ><img src='../skin/images/right.png'>Aufteilung anzeigen / ausblenden</a>\n";
echo "<br>";
echo "<div id='aufteilung'>\n";
echo "<table border=0 width='75%' class='aufteilung'>";
echo "<tr><td></td>\n";
$help = 0;
$anteil = 0;
$summe = 0;
// alle studiengänge, auch inaktive
foreach($studiengang->result as $stud)
{
$vorhanden = false;
if($stud->studiengang_kz < 10000)
{
if($help%6 == 0)
{
echo"</tr><tr>";
}
foreach($aufteilung->result as $auf)
{
// wenn in aufteilung vorhanden
if(mb_strtoupper($auf->oe_kurzbz) == mb_strtoupper($stud->oe_kurzbz))
{
$anteil = $auf->anteil;
$vorhanden = true;
}
}
if($stud->aktiv || $vorhanden)
{
$summe += $anteil;
echo "<td style='text-align:right;'>".mb_strtoupper($stud->oe_kurzbz).":</td> <td><input type='text' size='6' name='aufteilung_$help' onChange='summe_aufteilung()' id='aufteilung_$help' value='".number_format($anteil, 2, ",",".")."'> % <input type='hidden' name='oe_kurzbz_$help' value='$stud->oe_kurzbz'></td>\n";
$help++;
$anteil = 0;
}
}
}
echo "</tr>";
echo "<tfoot>\n";
echo '<tr>
<td><input type="hidden" name="anz_aufteilung" value="'.$help.'"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td colspan="2" style="text-align:right;">Summe:</td>
';
echo "<td><input type='text' size ='6' id='aufteilung_summe' name='aufteilung_summe' value ='".number_format($summe, 2, ",",".")."'>%</td>";
echo "</tr></tfoot>";
echo "</table>";
echo "</div>";
echo "<br><br></form>";
echo '
<script type="text/javascript">
var anz='.$help.';
/*
Berechnet die Prozentuelle Aufteilung
*/
function summe_aufteilung()
{
var i=0;
var aufteilung=0;
var summe = 0;
while(i<anz)
{
aufteilung =$("#aufteilung_"+i).val();
aufteilung=parseFloat(aufteilung);
summe = parseFloat(summe);
summe = summe + aufteilung;
i=i+1;
}
document.getElementById("aufteilung_summe").value = parseFloat(summe).toFixed(2);
}
</script>';
}
// ****** FUNKTIONEN ******* //
/**
* Gibt eine Bestelldetail Zeile aus
*/
function getDetailRow($i, $bestelldetail_id='', $sort='', $menge='', $ve='', $beschreibung='', $artikelnr='', $preisprove='', $mwst='', $brutto='', $bestell_id='', $pos='')
{
$removeDetail ='';
$checkSave = '';
$checkRow = '';
$user=get_uid();
$status= new wawi_bestellstatus();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
$bestellung = new wawi_bestellung();
$bestellung->load($bestell_id);
// wenn status Storno oder Abgeschickt, kein löschen der Details mehr möglich
if(!$status->isStatiVorhanden($bestell_id,'Storno'))
{
if(!$status->isStatiVorhanden($bestell_id,'Abgeschickt'))
{
$removeDetail = "removeDetail(".$i.");";
$checkSave = "checkSave(".$i.");";
$checkRow = "setTimeout(\"checkNewRow(".$i.",".$bestell_id.")\",100);";
$detailDown = "nunter(".$i.");";
$detailUp = "nauf(".$i.");";
}
if($status->isStatiVorhanden($bestell_id,'Abgeschickt') && ($rechte->isBerechtigt('wawi/bestellung_advanced') || ($rechte->isBerechtigt('wawi/freigabe', null,'suid',$bestellung->kostenstelle_id) && $bestellung->freigegeben == 'f')))
$removeDetail = "removeDetail(".$i.");";
}
$preisprove = sprintf("%01.2f",$preisprove);
if($sort == '')
$sort = $i;
echo "<tr id ='row_$i'>\n";
echo "<td><a onClick='$removeDetail' title='Bestelldetail löschen'> <img src=\"../skin/images/delete_round.png\" class='cursor'> </a></td>\n";
echo "<td><a href='#' class='down' onClick='verschieben(this);'><img src='../skin/images/arrow-single-down-green.png' class='cursor' ></a></td>\n";
echo "<td> <a href='#' class='up' onClick='verschieben(this);'><img src='../skin/images/arrow-single-up-green.png' class='cursor' ></a></td>\n";
echo "<td><input type='text' size='2' name='pos_$i' id='pos_$i' maxlength='2' value='$pos' onfocus='$checkSave'></td>\n";
echo "<td><input type='text' size='5' class='number' name='menge_$i' id='menge_$i' maxlength='7' value='$menge' onChange='calcBruttoNetto($i);' onfocus='$checkSave'></td>\n";
echo "<td><input type='text' size='5' name='ve_$i' id='ve_$i' maxlength='7' value='$ve' onfocus='$checkSave'></td>\n";
echo "<td><input type='text' size='70' name='beschreibung_$i' id='beschreibung_$i' value='$beschreibung' onblur='$checkRow' onfocus='$checkSave'></td>\n";
echo "<td><input type='text' size='15' name='artikelnr_$i' id='artikelnr_$i' maxlength='32' value='$artikelnr' onfocus='$checkSave'></td>\n";
echo "<td><input type='text' size='15' class='number' name='preisprove_$i' id='preisprove_$i' maxlength='15' value='$preisprove' onblur='$checkRow' onChange='calcBrutto($i);' onfocus='$checkSave'></td>\n";
echo "<td><input type='text' size='8' class='number' name='mwst_$i' id='mwst_$i' maxlength='5' value='$mwst' onChange='calcBruttoNetto($i);' onfocus='$checkSave' onblur='checkUst($i)'></td>\n";
echo "<td><input type='text' size='10' class='number' name ='brutto_$i' id='brutto_$i' value='$brutto' onChange ='calcNetto($i);' onfocus='$checkSave'></td>\n";
$detail_tag = new tags();
$detail_tag->GetTagsByBestelldetail($bestelldetail_id);
$help = $detail_tag->GetStringTags();
echo " <script type='text/javascript'>
$(document).ready(function()
{
$('#detail_tag_'+$i).autocomplete('wawi_autocomplete.php',
{
minChars:1,
matchSubset:1,matchContains:1,
width:500,
multiple: true,
multipleSeparator: '; ',
extraParams:{'work':'detail_tags', 'detail_id':'.$bestelldetail_id.'}
});
});
</script>";
echo "<td><input type='text' size='10' name='detail_tag_$i' id='detail_tag_$i' value='$help' ></td>";
echo "<td><input type='hidden' size='20' name='bestelldetailid_$i' id='bestelldetailid_$i' value='$bestelldetail_id'></td>";
echo "<td><input type='hidden' size='3' name='sort_$i' id='sort_$i' maxlength='2' value='$sort'></td>\n";
echo "</tr>\n";
}
/**
* Sendet ein FreigabeMail fuer einen Bestellung
*
* @param uids Array mit UIDs an die das Freigabemail gesendet werden soll
* @param bestellung Bestellung Object mit der Bestellung die freigegeben werden soll
*/
function sendFreigabeMails($uids, $bestellung, $user)
{
global $date;
$msg = '';
$kst_mail = new wawi_kostenstelle();
$kst_mail->load($bestellung->kostenstelle_id);
$firma_mail = new firma();
$firma_mail->load($bestellung->firma_id);
$konto_mail = new wawi_konto();
$konto_mail->load($bestellung->konto_id);
$besteller = new benutzer();
$besteller->load($bestellung->besteller_uid);
// E-Mail an Kostenstellenverantwortliche senden
$email= "Dies ist eine automatisch generierte E-Mail.<br><br>";
$email.="Es wurde eine neue Bestellung auf Kostenstelle '".$kst_mail->bezeichnung."' erstellt bzw. eine bestehende ge&auml;ndert. Bitte geben Sie die Bestellung frei.<br>";
$email.="Bestellnummer: ".$bestellung->bestell_nr."<br>";
$email.="Titel: ".$bestellung->titel."<br>";
$email.="Firma: ".$firma_mail->name."<br>";
$email.="Kontaktperson: ".$besteller->titelpre.' '.$besteller->vorname.' '.$besteller->nachname.' '.$besteller->titelpost."<br>";
$email.="Erstellt am: ".$date->formatDatum($bestellung->insertamum,'d.m.Y')."<br>";
$email.="Kostenstelle: ".$kst_mail->bezeichnung."<br>Konto: ".$konto_mail->kurzbz."<br>";
$email.="Link: <a href='".APP_ROOT."/index.php?content=bestellung.php&method=update&id=$bestellung->bestellung_id'>zur Bestellung </a>";
foreach($uids as $uid)
{
$mail = new mail($uid.'@'.DOMAIN, $user, 'Freigabe Bestellung '.$bestellung->bestell_nr, 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.');
$mail->setHTMLContent($email);
if(!$mail->send())
$msg.= '<span class="error">Fehler beim Senden des Mails</span><br />';
else
$msg.= ' Mail verschickt an '.$uid.'@'.DOMAIN.'!<br>';
}
return $msg;
}
/**
* E-Mail Benachrichtigung ueber vollstaendige Freigabe der Bestellung an
* den Zentraleinkauf senden
* @param $bestellung Bestellung Object der freigegebenen Bestellung
*/
function sendZentraleinkaufFreigegeben($bestellung)
{
global $date;
$msg = '';
$kst_mail = new wawi_kostenstelle();
$kst_mail->load($bestellung->kostenstelle_id);
$firma_mail = new firma();
$firma_mail->load($bestellung->firma_id);
$konto_mail = new wawi_konto();
$konto_mail->load($bestellung->konto_id);
$besteller = new benutzer();
$besteller->load($bestellung->besteller_uid);
// E-Mail an Kostenstellenverantwortliche senden
$email= "Dies ist eine automatisch generierte E-Mail.<br><br>";
$email.= "Die folgende Bestellung wurde freigegeben und kann bestellt werden:<br>";
$email.="Kostenstelle: ".$kst_mail->bezeichnung."<br>";
$email.="Bestellnummer: ".$bestellung->bestell_nr."<br>";
$email.="Titel: ".$bestellung->titel."<br>";
$email.="Firma: ".$firma_mail->name."<br>";
$email.="Kontaktperson: ".$besteller->titelpre.' '.$besteller->vorname.' '.$besteller->nachname.' '.$besteller->titelpost."<br>";
$email.="Erstellt am: ".$date->formatDatum($bestellung->insertamum,'d.m.Y')."<br>";
$email.="Kostenstelle: ".$kst_mail->bezeichnung."<br>Konto: ".$konto_mail->kurzbz."<br>";
$email.="Link: <a href='".APP_ROOT."/index.php?content=bestellung.php&method=update&id=$bestellung->bestellung_id'>zur Bestellung </a>";
$mail = new mail(MAIL_ZENTRALEINKAUF, 'no-reply', 'Freigabe Bestellung', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.');
$mail->setHTMLContent($email);
if(!$mail->send())
$msg.= '<span class="error">Fehler beim Senden des Mails</span><br />';
else
$msg.= ' Mail verschickt an '.MAIL_ZENTRALEINKAUF.'!<br>';
return $msg;
}
/**
* Schickt ein Status-Mail an die Kontaktperson der Bestellung
*
* @param $bestellung Bestellung Object der Bestellung
* @param $status Art der Statusaenderung (bestellt|geliefert|freigabe|storno)
*/
function sendBestellerMail($bestellung, $status)
{
global $date;
$msg = '';
$kst_mail = new wawi_kostenstelle();
$kst_mail->load($bestellung->kostenstelle_id);
$firma_mail = new firma();
$firma_mail->load($bestellung->firma_id);
$konto_mail = new wawi_konto();
$konto_mail->load($bestellung->konto_id);
// E-Mail an Kostenstellenverantwortliche senden
$email= "Dies ist eine automatisch generierte E-Mail.<br><br>";
switch($status)
{
case 'bestellt': $email.=" <b>Ihre Bestellung wurde bestellt</b>"; break;
case 'geliefert': $email.=" <b>Ihre Bestellung wurde geliefert</b><br>Hinweis: Nach erfolgter Lieferung werden Waren ab einem Wert von EUR 250,-- pro Einzelposition inventarisiert. <br>"; break;
case 'freigabe': $email.=" <b>Ihre Bestellung wurde freigegeben</b>"; break;
case 'storno': $email.=" <b>Ihre Bestellung wurde storniert</b>"; break;
}
$email.="<br>";
$email.="Kostenstelle: ".$kst_mail->bezeichnung."<br>";
$email.="Bestellnummer: ".$bestellung->bestell_nr."<br>";
$email.="Titel: ".$bestellung->titel."<br>";
$email.="Firma: ".$firma_mail->name."<br>";
$email.="Erstellt am: ".$date->formatDatum($bestellung->insertamum,'d.m.Y')."<br>";
$email.="Kostenstelle: ".$kst_mail->bezeichnung."<br>Konto: ".$konto_mail->kurzbz."<br>";
$email.="Link: <a href='".APP_ROOT."/index.php?content=bestellung.php&method=update&id=$bestellung->bestellung_id'>zur Bestellung </a>";
$mail = new mail($bestellung->besteller_uid.'@'.DOMAIN, 'no-reply', 'Bestellung '.$bestellung->bestell_nr, 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.');
$mail->setHTMLContent($email);
if(!$mail->send())
$msg.= '<span class="error">Fehler beim Senden des Mails</span><br />';
else
$msg.= ' Mail verschickt an '.$bestellung->besteller_uid.'@'.DOMAIN.'!<br>';
return $msg;
}
?>
</body>
</html>