mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
319 lines
9.9 KiB
PHP
319 lines
9.9 KiB
PHP
<?php
|
|
/* Copyright (C) 2010 FH 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 <karl.burkhart@technikum-wien.at>.
|
|
*/
|
|
/**
|
|
* Auswertung der Bestellungen und Rechnungen auf Kostenstellen
|
|
*/
|
|
require_once('../../config/wawi.config.inc.php');
|
|
require_once('../auth.php');
|
|
require_once('../../include/benutzerberechtigung.class.php');
|
|
require_once('../../include/functions.inc.php');
|
|
require_once('../../include/wawi_rechnung.class.php');
|
|
require_once('../../include/wawi_bestellung.class.php');
|
|
require_once('../../include/wawi_kostenstelle.class.php');
|
|
require_once('../../include/studiensemester.class.php');
|
|
require_once('../../include/tags.class.php');
|
|
require_once('../../include/geschaeftsjahr.class.php');
|
|
require_once('../../include/datum.class.php');
|
|
|
|
$user = get_uid();
|
|
$rechte = new benutzerberechtigung();
|
|
$rechte->getBerechtigungen($user);
|
|
|
|
$kst_array = $rechte->getKostenstelle('wawi/bestellung');
|
|
$kst_array = array_merge($kst_array, $rechte->getKostenstelle('wawi/rechnung'));
|
|
$kst_array = array_merge($kst_array, $rechte->getKostenstelle('wawi/kostenstelle'));
|
|
$kst_array = array_merge($kst_array, $rechte->getKostenstelle('wawi/freigabe'));
|
|
$kst_array = array_merge($kst_array, $rechte->getKostenstelle('wawi/berichte'));
|
|
$kst_array = array_unique($kst_array);
|
|
if(count($kst_array)==0)
|
|
die('Sie benoetigen eine Kostenstellenberechtigung um diese Seite anzuzeigen');
|
|
|
|
$datum_obj = new datum();
|
|
?>
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<title>WaWi - Kostenstelle - Auswertung</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
|
|
<link rel="stylesheet" href="../../skin/jquery.css" type="text/css">
|
|
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css">
|
|
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
|
|
<link rel="stylesheet" href="../../skin/wawi.css" type="text/css">
|
|
|
|
|
|
<link rel="stylesheet" type="text/css" href="../../skin/jquery-ui-1.9.2.custom.min.css">
|
|
<script type="text/javascript" src="../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
|
|
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
|
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
|
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
|
|
<script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
|
|
<script type="text/javascript">
|
|
function alleMarkieren(checked)
|
|
{
|
|
inputs = document.getElementsByTagName('input');
|
|
|
|
for each(i in inputs)
|
|
{
|
|
if(i.type=='checkbox')
|
|
{
|
|
i.checked=checked;
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<h1>Bericht - Kostenstelle</h1>
|
|
<?php
|
|
|
|
$db = new basis_db();
|
|
echo '<table><tr><td>';
|
|
//Geschaeftsjahr
|
|
echo '
|
|
<form action="'.$_SERVER['PHP_SELF'].'" method="GET">
|
|
Geschäftsjahr
|
|
<SELECT name="geschaeftsjahr" >';
|
|
$gj = new geschaeftsjahr();
|
|
|
|
$geschaeftsjahr = isset($_REQUEST['geschaeftsjahr'])?$_REQUEST['geschaeftsjahr']:$gj->getakt();
|
|
|
|
$gj->getAll();
|
|
|
|
foreach ($gj->result as $gjahr)
|
|
{
|
|
if($gjahr->geschaeftsjahr_kurzbz==$geschaeftsjahr)
|
|
$selected='selected';
|
|
else
|
|
$selected='';
|
|
echo '<option value="'.$gjahr->geschaeftsjahr_kurzbz.'" '.$selected.'>'.$gjahr->geschaeftsjahr_kurzbz.'</option>';
|
|
}
|
|
echo '
|
|
</SELECT>
|
|
<input type="submit" value="Anzeigen" name="show">
|
|
</form>';
|
|
|
|
echo '</td><td width="100px"> </td><td>';
|
|
|
|
//Kalenderjahr
|
|
echo '
|
|
<form action="'.$_SERVER['PHP_SELF'].'" method="GET">
|
|
Kalenderjahr
|
|
<SELECT name="kalenderjahr" >';
|
|
|
|
$kalenderjahr = isset($_REQUEST['kalenderjahr'])?$_REQUEST['kalenderjahr']:date('Y');
|
|
|
|
for($i=date('Y')-5; $i<date('Y')+2; $i++)
|
|
{
|
|
if($i==$kalenderjahr)
|
|
$selected='selected';
|
|
else
|
|
$selected='';
|
|
echo '<option value="',$i,'" ',$selected,'>1.1.',$i,' - 31.12.',$i,'</option>';
|
|
}
|
|
echo '
|
|
</SELECT>
|
|
<input type="submit" value="Anzeigen" name="show">
|
|
</form>';
|
|
|
|
echo '</td></tr></table>';
|
|
if(isset($_REQUEST['kalenderjahr']))
|
|
{
|
|
//Kalenderjahr
|
|
$vondatum = $kalenderjahr.'-01-01';
|
|
$endedatum = $kalenderjahr.'-12-31';
|
|
$budgetanzeige=false;
|
|
}
|
|
else
|
|
{
|
|
//Geschaeftsjahr
|
|
$gj= new geschaeftsjahr();
|
|
$gj->load($geschaeftsjahr);
|
|
|
|
$vondatum = $gj->start;
|
|
$endedatum = $gj->ende;
|
|
$budgetanzeige=true;
|
|
}
|
|
|
|
$kstIN=$db->implode4SQL($kst_array);
|
|
|
|
//Tabelle auf Basis der Bestellungen
|
|
$qry = "SELECT
|
|
sum(menge*preisprove*(100+COALESCE(mwst,0))/100) as brutto_bestellung,
|
|
0 as brutto_rechnung,
|
|
tbl_bestellung.kostenstelle_id
|
|
FROM
|
|
wawi.tbl_bestellung
|
|
JOIN wawi.tbl_bestelldetail USING(bestellung_id)
|
|
WHERE
|
|
tbl_bestellung.insertamum::date>='".addslashes($vondatum)."' AND tbl_bestellung.insertamum::date<='".addslashes($endedatum)."'
|
|
AND kostenstelle_id IN($kstIN)
|
|
GROUP BY kostenstelle_id
|
|
UNION
|
|
SELECT
|
|
0 as brutto_bestellung,
|
|
sum(betrag*(100+COALESCE(mwst,0))/100) as brutto_rechnung,
|
|
tbl_bestellung.kostenstelle_id
|
|
FROM
|
|
wawi.tbl_bestellung
|
|
JOIN wawi.tbl_rechnung USING(bestellung_id)
|
|
JOIN wawi.tbl_rechnungsbetrag USING(rechnung_id)
|
|
WHERE
|
|
tbl_bestellung.insertamum::date>='".addslashes($vondatum)."' AND tbl_bestellung.insertamum::date<='".addslashes($endedatum)."'
|
|
AND kostenstelle_id IN($kstIN)
|
|
GROUP BY kostenstelle_id
|
|
";
|
|
|
|
if($result = $db->db_query($qry))
|
|
{
|
|
while($row = $db->db_fetch_object($result))
|
|
{
|
|
if(!isset($kst[$row->kostenstelle_id]['rechnung']))
|
|
$kst[$row->kostenstelle_id]['rechnung']=0;
|
|
if(!isset($kst[$row->kostenstelle_id]['bestellung']))
|
|
$kst[$row->kostenstelle_id]['bestellung']=0;
|
|
|
|
$kst[$row->kostenstelle_id]['rechnung']+=$row->brutto_rechnung;
|
|
$kst[$row->kostenstelle_id]['bestellung']+=$row->brutto_bestellung;
|
|
}
|
|
}
|
|
else
|
|
die('Fehler bei Datenbankzugriff');
|
|
|
|
echo '<span style="font-size: small">Zeitraum: ',$datum_obj->formatDatum($vondatum,'d.m.Y'),' - ',$datum_obj->formatDatum($endedatum,'d.m.Y').'</span>';
|
|
echo '
|
|
<script type="text/javascript">
|
|
$(document).ready(function()
|
|
{
|
|
$("#myTable").tablesorter(
|
|
{
|
|
sortList: [[1,0]],
|
|
widgets: ["zebra"]
|
|
});
|
|
});
|
|
</script>';
|
|
echo '<table id="myTable" class="tablesorter" style="width: auto;">
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>Bezeichnung</th>
|
|
<th>Kz</th>
|
|
<th>Bestellungen</th>
|
|
<th>Rechnungen</th>';
|
|
if($budgetanzeige)
|
|
{
|
|
echo '
|
|
<th>Restbudget (Bestellung)</th>
|
|
<th>Restbudget (Rechnung)</th>
|
|
<th>Budget</th>';
|
|
}
|
|
echo '
|
|
</tr>
|
|
</thead>
|
|
<tbody>';
|
|
|
|
$gesamt_rechnung = 0;
|
|
$gesamt_bestellung = 0;
|
|
$gesamt_budget = 0;
|
|
|
|
foreach($kst_array as $row)
|
|
{
|
|
$id = $row;
|
|
if(isset($kst[$id]))
|
|
$brutto = $kst[$id];
|
|
else
|
|
{
|
|
$brutto['bestellung']=0;
|
|
$brutto['rechnung']=0;
|
|
}
|
|
|
|
$kostenstelle = new wawi_kostenstelle();
|
|
$kostenstelle->load($id);
|
|
|
|
echo '<tr>';
|
|
|
|
echo '<td>',$id,'</td>';
|
|
if($kostenstelle->aktiv)
|
|
$class='';
|
|
else
|
|
$class='class="inaktiv"';
|
|
echo '<td '.$class.'>',$kostenstelle->bezeichnung,'</td>';
|
|
echo '<td>',$kostenstelle->kurzbz,'</td>';
|
|
echo '<td class="number"><a href="../bestellung.php?method=suche&evon=',$vondatum,'&ebis=',$endedatum,'&filter_kostenstelle=',$id,'&submit=true">',number_format($brutto['bestellung'],2,',','.'),'</td>';
|
|
echo '<td class="number"><a href="../rechnung.php?method=suche&erstelldatum_von=',$vondatum,'&erstelldatum_bis=',$endedatum,'&filter_kostenstelle=',$id,'&submit=true">',number_format($brutto['rechnung'],2,',','.'),'</td>';
|
|
|
|
if($budgetanzeige)
|
|
{
|
|
$budget = $kostenstelle->getBudget($id, $gj->geschaeftsjahr_kurzbz);
|
|
//Restbudget fuer Bestellungen
|
|
$restbudget = $budget - $brutto['bestellung'];
|
|
if($restbudget>0)
|
|
$class='number_positive';
|
|
elseif($restbudget<0)
|
|
$class='number_negative';
|
|
else
|
|
$class='number';
|
|
echo '<td class="',$class,'">',number_format($restbudget,2,',','.'),'</td>';
|
|
|
|
//Restbudget fuer Rechnungen
|
|
$restbudget = $budget - $brutto['rechnung'];
|
|
if($restbudget>0)
|
|
$class='number_positive';
|
|
elseif($restbudget<0)
|
|
$class='number_negative';
|
|
else
|
|
$class='number';
|
|
echo '<td class="',$class,'">',number_format($restbudget,2,',','.'),'</td>';
|
|
|
|
echo '<td class="number">',number_format($budget,2,',','.'),'</td>';
|
|
$gesamt_budget += $budget;
|
|
}
|
|
echo '</tr>';
|
|
|
|
$gesamt_rechnung += $brutto['rechnung'];
|
|
$gesamt_bestellung += $brutto['bestellung'];
|
|
|
|
}
|
|
echo '
|
|
</tbody>
|
|
<tfoot>
|
|
<tr>
|
|
<th></th>
|
|
<th></th>
|
|
<th>Summe:</th>
|
|
<th class="number">',number_format($gesamt_bestellung,2,',','.'),'</th>
|
|
<th class="number">',number_format($gesamt_rechnung,2,',','.'),'</th>';
|
|
if($budgetanzeige)
|
|
{
|
|
echo '
|
|
<th></th>
|
|
<th></th>
|
|
<th class="number">',number_format($gesamt_budget,2,',','.'),'</th>';
|
|
}
|
|
echo '
|
|
</tr>
|
|
</tfoot>
|
|
</table>';
|
|
?>
|
|
<br /><br /><br /><br /><br /><br /><br /><br />
|
|
</body>
|
|
</html>
|