File: D:/HostingSpaces/MDalebout/clupconsultants.nl/wwwroot/timesheet/functions_interface.php
<?php
/*==============================================
= PART 1 : Automated fills
==============================================*/
/***************************************************************************
* Function CheckSetup *
* Controleer of de referentietabellen van de applicatie al gevuld zijn *
***************************************************************************/
function CheckSetup($db) {
$sql = 'select count(1) as aantal from uur_interface_menu';
$rows = ReturnData($sql, $db);
foreach($rows as $row) {
if ($row['aantal'] == 0) {
FillInterfaceMenu($db);
FillProjectType($db);
}
}
FillKalender($db);
}
/***************************************************************************
* Function CheckUser *
* Controleer of er een gebruiker is ingelogd *
***************************************************************************/
function CheckUser($db) {
// check of er al user bestaan, zo niet, redirect
$sql = 'select count(1) as aantal from uur_gebruikers';
$rows = ReturnData($sql, $db);
foreach($rows as $row) {
if ($row['aantal'] == 0) {
$_SESSION['feedback'] = 'Er bestaan nog geen gebruikers, maak er één aan';
$_SESSION['menu_section'] = 'sub';
$_SESSION['menu_categorie'] = 'management';
$_SESSION['action'] = 'gebruiker_toevoegen';
$page = AddUser($db);
}
else {
$_SESSION['menu_section'] = 'hoofd';
$_SESSION['menu_categorie'] = 'inloggen';
$_SESSION['action'] = 'inloggen';
$page = Inloggen($db);
}
}
return $page;
}
/********************************
* Function GetUser *
********************************/
function GetUser($db) {
if($_SESSION['current_user_id']>0) {
$sql = 'select gebruikers_naam, bedrijf_id from uur_gebruikers where gebruikers_id = '.$_SESSION['current_user_id'];
$rows = ReturnData($sql, $db);
foreach($rows as $row) {
$_SESSION['current_user_name'] = $row['gebruikers_naam'];
// Haal het id op van het bedrijf waartoe de user behoort.
$_SESSION['gebruiker_bedrijf_id'] = $row['bedrijf_id'];
}
}
}
/***************************************************************************
* Function StandardInputFields *
* Toevoegen van standaard sessie variabelen aan een FORM *
***************************************************************************/
function StandardInputFields() {
if(array_key_exists('menu_categorie', $_SESSION)) { $menu_categorie = $_SESSION['menu_categorie']; }
else { $menu_categorie = ''; }
if(array_key_exists('feedback', $_SESSION)) { $feedback = $_SESSION['feedback']; }
else { $feedback = ''; }
if(array_key_exists('action', $_SESSION)) { $action = $_SESSION['action']; }
else { $action = ''; }
if(array_key_exists('current_user_id', $_SESSION)) { $current_user_id = $_SESSION['current_user_id']; }
else { $current_user_id = ''; }
if(array_key_exists('current_user_name', $_SESSION)) { $current_user_name = $_SESSION['current_user_name']; }
else { $current_user_name = ''; }
if(array_key_exists('month', $_SESSION)) { $month = $_SESSION['month']; }
else { $month = ''; }
if(array_key_exists('gebruiker_bedrijf_id', $_SESSION)) { $gebruiker_bedrijf_id = $_SESSION['gebruiker_bedrijf_id']; }
else { $gebruiker_bedrijf_id = ''; }
$s = '<input type="hidden" name="menu_categorie" value="'.$menu_categorie.'" />'."\n";
$s.= '<input type="hidden" name="feedback" value="'.$feedback.'" />'."\n";
$s.= '<input type="hidden" name="action" value="'.$action.'" />'."\n";
$s.= '<input type="hidden" name="current_user_id" value="'.$current_user_id.'" />'."\n";
$s.= '<input type="hidden" name="current_user_name" value="'.$current_user_name.'" />'."\n";
$s.= '<input type="hidden" name="month" value="'.$month.'" />'."\n";
$s.= '<input type="hidden" name="gebruiker_bedrijf_id" value="'.$gebruiker_bedrijf_id.'" />'."\n";
return $s;
}
/*==============================================
= PART 2 : Interface functions
==============================================*/
/********************************
* Function ManagementMenu *
********************************/
function ManagementMenu($menu_sectie, $menu_categorie, $menu_action, $db) {
if($menu_sectie == 'hoofd') {
$sql = 'select menu_action
, menu_display
from uur_interface_menu
where menu_sectie = \'hoofd\'
order by menu_sortorder
';
$vergelijk = $menu_categorie;
}
elseif($menu_sectie == 'sub') {
$sql = 'select menu_action
, menu_display
from uur_interface_menu
where menu_sectie = \'sub\'
and menu_categorie = \''.$menu_categorie.'\'
order by menu_sortorder
';
$vergelijk = $menu_action;
}
$rows = ReturnData($sql, $db);
$s = '';
if(!empty($rows)) {
$s = '<ul>'."\n";
foreach($rows as $row) {
if($vergelijk == $row['menu_action']) {
$bs = '<strong>';
$be = '</strong>';
}
else {
$bs = '';
$be = '';
}
$s.= "\t\t".'<li>'.$bs.'<a href="index.php?action='.$row['menu_action'].'">'.$row['menu_display'].'</a>'.$be.'</li>'."\n";
}
$s.= '</ul>'."\n";
}
return $s;
}
/********************************
* Function AddUser *
********************************/
function AddUser($db) {
if(array_key_exists('gebruikers_naam', $_SESSION)) {
$gebruikers_naam = $_SESSION['gebruikers_naam'];
}
else {
$gebruikers_naam = '';
}
if(array_key_exists('gebruikers_inlog', $_SESSION)) {
$gebruikers_inlog = $_SESSION['gebruikers_inlog'];
}
else {
$gebruikers_inlog = '';
}
if(array_key_exists('gebruikers_fte', $_SESSION)) {
$gebruikers_fte = $_SESSION['gebruikers_fte'];
}
else {
$gebruikers_fte = '';
}
if(array_key_exists('bedrijf_id', $_SESSION)) {
$bedrijf_id = $_SESSION['bedrijf_id'];
}
else {
$bedrijf_id = '';
}
$s = '<div id="MenuInputForm">'."\n";
$s.= '<p><label for="gebruikers_naam">Naam gebruiker: </label>';
$s.= '<input type="text" name="gebruikers_naam" id="gebruikers_naam" value="'.$gebruikers_naam.'" /></p>'."\n";
$s.= '<p><label for="gebruikers_inlog">Inlog naam: </label>';
$s.= '<input type="text" name="gebruikers_inlog" id="gebruikers_inlog" value="'.$gebruikers_inlog.'" /></p>';
$s.= '<p><label for="gebruikers_fte">Aanstelling (in uur): </label>';
$s.= '<input type="text" name="gebruikers_fte" id="gebruikers_fte" value="'.$gebruikers_fte.'" /></p>'."\n";
$s.= '<p><label for="bedrijf_id">Werkzaam bij: </label>'."\n";
$s.= FormSelectBedrijf($db, 'N', -1, 'bedrijf_id', 'J');
$s.= "\n".'</p>'."\n";
$s.= '<p id="submit"><input type="submit" class="submitbutton" value="Opslaan" /></p>'."\n";
$s.= StandardInputFields();
$s.= '</div>'."\n";
return $s;
}
/********************************
* Function UpdateUser *
********************************/
function UpdateUser($db) {
$sql = 'select gebruikers_id, gebruikers_inlog, gebruikers_naam, gebruikers_actief, gebruikers_fte, bedrijf_id from uur_gebruikers where gebruikers_id = '.$_SESSION['gebruikers_id'];
$names = ReturnData($sql, $db);
foreach($names as $name) {
$s = '<div id="MenuInputForm">'."\n";
$s.= '<p><label for="gebruikers_naam">Naam gebruiker: </label>';
$s.= '<input type="text" name="gebruikers_naam" id="gebruikers_naam" value="'.$name['gebruikers_naam'].'" /></p>'."\n";
$s.= '<p><label for="gebruikers_inlog">Inlog naam: </label>';
$s.= $name['gebruikers_inlog'].'</p>';
$s.= '<input type="hidden" name="gebruikers_inlog" value="'.$name['gebruikers_inlog'].'" />'."\n";
$s.= '<input type="hidden" name="gebruikers_id" value="'.$name['gebruikers_id'].'" />'."\n";
$s.= '<p><label for="gebruikers_fte">Aanstelling (in uur): </label>';
$s.= '<input type="text" name="gebruikers_fte" id="gebruikers_fte" value="'.$name['gebruikers_fte'].'" /></p>'."\n";
$s.= '<p><label for="bedrijf_id">Werkzaam bij: </label>'."\n";
$s.= FormSelectBedrijf($db, 'N', $name['bedrijf_id'], 'bedrijf_id', 'J');
$s.= "\n".'</p>'."\n";
$s.= '<p><label for="gebruikers_actief">Gebruiker actief?:</label>'."\n";
if ($name['gebruikers_actief']=='J') {
$s.= '<input type="radio" name="gebruikers_actief" id="gebruikers_actief" checked="checked" value="J" /> Ja'."\n";
}
else {
$s.= '<input type="radio" name="gebruikers_actief" id="gebruikers_actief" value="J" /> Ja'."\n";
}
if ($name['gebruikers_actief']=='N') {
$s.= '<input type="radio" name="gebruikers_actief" id="gebruikers_actief" checked="checked" value="N" /> Nee'."\n";
}
else {
$s.= '<input type="radio" name="gebruikers_actief" id="gebruikers_actief" value="N" /> Nee'."\n";
}
$s.= '<p id="submit"><input type="submit" class="submitbutton" value="Opslaan" /></p>'."\n";
$_SESSION['action'] = 'update_gebruikers';
$s.= StandardInputFields();
$_SESSION['action'] = 'gebruiker_wijzigen';
$s.= '</div>'."\n";
}
return $s;
}
/********************************
* Function GebruikersLijst *
********************************/
function GebruikersLijst($db, $active_only) {
$s = '<p>Kies een gebruiker</p>'."\n";
$s.= FormSelectGebruiker($db, 'J', -1, 'gebruikers_id', $active_only);
$s.= '<p><noscript><input type="submit" class="submitbutton" value="Versturen" /></noscript></p>'."\n";
$s.= StandardInputFields();
return $s;
}
/********************************
* Function AddBedrijf *
********************************/
function AddBedrijf() {
$s = '<div id="MenuInputForm">'."\n";
$s.= '<p><label for="bedrijf_naam">Naam bedrijf: </label>';
$s.= '<input type="text" name="bedrijf_naam" id="bedrijf_naam" value="'.$bedrijf_naam.'" /></p>'."\n";
$s.= '<p id="submit"><input type="submit" class="submitbutton" value="Opslaan" /></p>'."\n";
$s.= StandardInputFields();
$s.= '</div>'."\n";
return $s;
}
/********************************
* Function BedrijvenLijst *
********************************/
function BedrijvenLijst($db) {
$s = '<p>Kies een bedrijf</p>'."\n";
$s.= FormSelectBedrijf($db, 'J', -1, 'bedrijf_id', 'N');
$s.= '<p><noscript><input type="submit" class="submitbutton" value="Versturen" /></noscript></p>'."\n";
$s.= StandardInputFields();
return $s;
}
/********************************
* Function UpdateBedrijf *
********************************/
function UpdateBedrijf($db, $bedrijf_id) {
$sql = 'select bedrijf_naam
, bedrijf_actief
from uur_bedrijf
where bedrijf_id = '.$bedrijf_id;
$rows = ReturnData($sql, $db);
foreach($rows as $row) {
//fill all project variables
$bedrijf_naam = $row['bedrijf_naam'];
$bedrijf_actief = $row['bedrijf_actief'];
}
$s = '<div id="MenuInputForm">'."\n";
$s.= '<input type="hidden" name="bedrijf_id" value="'.$bedrijf_id.'" /></p>'."\n";
$s.= '<p><label for="bedrijf_naam">Naam bedrijf: </label>';
$s.= '<input type="text" name="bedrijf_naam" id="bedrijf_naam" value="'.$bedrijf_naam.'" /></p>'."\n";
$s.= '<p><label for="bedrijf_actief">Bedrijf actief?:</label>'."\n";
if ($bedrijf_actief=='J') {
$s.= "\t".'<input type="radio" name="bedrijf_actief" id="bedrijf_actief" checked="checked" value="J" /> Ja'."\n";
}
else {
$s.= "\t".'<input type="radio" name="bedrijf_actief" id="bedrijf_actief" value="J" /> Ja'."\n";
}
if ($bedrijf_actief=='N') {
$s.= "\t".'<input type="radio" name="bedrijf_actief" id="bedrijf_actief" checked="checked" value="N" /> Nee'."\n";
}
else {
$s.= "\t".'<input type="radio" name="bedrijf_actief" id="bedrijf_actief" value="N" /> Nee'."\n";
}
$s.= '</label>'."\n";
$s.= '<p id="submit"><input type="submit" class="submitbutton" value="Opslaan" /></p>'."\n";
$_SESSION['action'] = 'update_bedrijf';
$s.= StandardInputFields();
$s.= '</div>'."\n";
return $s;
}
/********************************
* Function ReverseRelease *
********************************/
function ReverseRelease($db) {
$sql2 = 'select gebruikers_naam from uur_gebruikers where gebruikers_id = '.$_SESSION['gebruikers_id'];
$users = ReturnData($sql2, $db);
foreach($users as $user) { $usernaam = $user[gebruikers_naam]; }
$sql = 'select gebruikers_id, gebruikers_inlog, gebruikers_naam, gebruikers_actief, gebruikers_fte, bedrijf_id from uur_gebruikers where gebruikers_id = '.$_SESSION['gebruikers_id'];
$sql = 'select k.jaarmaand
, k.maandnaam
from uur_maandstaat m
inner join uur_kalender k
on m.kalender_id = k.kalender_id
where m.gebruikers_id = '.$_SESSION['gebruikers_id'].'
and m.released=\'J\'
group by k.jaarmaand
, k.maandnaam
order by k.jaarmaand desc
limit 12
';
$timesheets = ReturnData($sql, $db);
$s = '<div id="MenuInputForm">'."\n";
$s.= '<p>Laatste 12 gereleaste timesheets van '. $usernaam.':</p>';
$s.= '<p>';
foreach($timesheets as $timesheet) {
$s.= '<input type="radio" name="reverse_release" id="reverse_release_'.$timesheet[jaarmaand].'" value="'.$timesheet[jaarmaand].'" /><label for="reverse_release_'.$timesheet[jaarmaand].'" class="left"> '.$timesheet[maandnaam].'</label><br />'."\n";
}
$s.='</p>'."\n";
$s.= '<p id="submit"><input type="submit" class="submitbutton" value="Opslaan" /></p>'."\n";
$s.= '</div>'."\n";
$_SESSION['action'] = 'reverse_release_month';
$s.= StandardInputFields();
$s.= '<input type="hidden" name="gebruikers_id" value="'.$_SESSION['gebruikers_id'].'" />'."\n";
return $s;
}
/********************************
* Function Inloggen *
********************************/
function Inloggen($db) {
$s = '<div id="MenuInputForm">'."\n";
$s.= '<p>Meld aan:</p>'."\n";
$s.= FormSelectGebruiker($db, 'J', -1, 'current_user_id', 'J');
$s.= '<input type="hidden" name="menu_categorie" value="'.$_SESSION['menu_categorie'].'" />'."\n";
$s.= '<input type="hidden" name="action" value="'.$_SESSION['action'].'" />'."\n";
$s.= '<p><noscript><input type="submit" class="submitbutton" value="Versturen" /></noscript></p>'."\n";
$s.= '</div>'."\n";
return $s;
}
/********************************
* Function Project *
********************************/
function Project($db, $action, $menu) {
if(array_key_exists('project_id', $_SESSION)) { $project_id = $_SESSION['project_id'];}
else {$project_id = '';}
if(array_key_exists('project_naam', $_SESSION)) { $project_naam = $_SESSION['project_naam'];}
else {$project_naam = '';}
if(array_key_exists('project_code', $_SESSION)) { $project_code = $_SESSION['project_code'];}
else {$project_code = '';}
if(array_key_exists('uurtarief', $_SESSION)) { $uurtarief = $_SESSION['uurtarief'];}
else {$uurtarief = '';}
if(array_key_exists('project_type_id', $_SESSION)) { $project_type_id = $_SESSION['project_type_id'];}
else {$project_type_id = '';}
if(array_key_exists('van_kalender_id', $_SESSION)) { $van_kalender_id = $_SESSION['van_kalender_id'];}
else {$van_kalender_id = '';}
if(array_key_exists('tot_kalender_id', $_SESSION)) { $tot_kalender_id = $_SESSION['tot_kalender_id'];}
else {$tot_kalender_id = '';}
if(array_key_exists('project_annotatie', $_SESSION)) { $project_annotatie = $_SESSION['project_annotatie'];}
else {$project_annotatie = '';}
if(array_key_exists('contracturen', $_SESSION)) { $contracturen = $_SESSION['contracturen'];}
else {$contracturen = '';}
if(array_key_exists('klantnaam', $_SESSION)) { $klantnaam = $_SESSION['klantnaam'];}
else {$klantnaam = '';}
if(array_key_exists('bedrijfsonderdeel', $_SESSION)) { $bedrijfsonderdeel = $_SESSION['bedrijfsonderdeel'];}
else {$bedrijfsonderdeel = '';}
if(array_key_exists('contactpersoon', $_SESSION)) { $contactpersoon = $_SESSION['contactpersoon'];}
else {$contactpersoon = '';}
if(array_key_exists('factuuradres', $_SESSION)) { $factuuradres = $_SESSION['factuuradres'];}
else {$factuuradres = '';}
if(array_key_exists('tussenpartij', $_SESSION)) { $tussenpartij = $_SESSION['tussenpartij'];}
else {$tussenpartij = '';}
if(array_key_exists('activiteiten', $_SESSION)) { $activiteiten = $_SESSION['activiteiten'];}
else {$activiteiten = '';}
if(array_key_exists('factuurreferentie', $_SESSION)) { $factuurreferentie = $_SESSION['factuurreferentie'];}
else {$factuurreferentie = '';}
if(array_key_exists('procuratiehouder', $_SESSION)) { $procuratiehouder = $_SESSION['procuratiehouder'];}
else {$procuratiehouder = '';}
$s = '<div id="MenuInputForm">'."\n";
$s.= '<fieldset>'."\n";
$s.= '<legend>Projectgegevens</legend>'."\n";
$s.= '<input type="hidden" name="project_id" value="'.$project_id.'" /></p>'."\n";
$s.= '<p><label for="project_naam">Naam project: </label>';
$s.= '<input type="text" name="project_naam" id="project_naam" value="'.$project_naam.'" /></p>'."\n";
$s.= '<p><label for="project_code">Project code: </label>';
$s.= '<input type="text" name="project_code" id="project_code" value="'.$project_code.'" /></p>';
$s.= '<p id="p_uurtarief"><label for="uurtarief">Uurtarief: </label>';
$s.= '<input type="text" name="uurtarief" id="uurtarief" value="'.$uurtarief.'" /> Euro</p>';
$s.= '<p id="p_contracturen"><label for="contracturen">Contract: </label>';
$s.= '<input type="text" name="contracturen" id="contracturen" value="'.$contracturen.'" /> uur per week</p>';
$s.= '<p><label for="gebruikers_id">Gebruiker: </label>'."\n";
if (array_key_exists('gebruikers_id', $_SESSION)) {
$user_id = $_SESSION['gebruikers_id'];
}
else {
$user_id = $_SESSION['current_user_id'];
}
$s.= FormSelectGebruiker($db, 'N', $user_id, 'gebruikers_id', 'N');
$s.= '<p><label for="project_type_id">Project type: </label>'."\n";
$s.= FormSelectProjectType($db, $project_type_id);
$s.= '<p><label for="van_kalender_id">Startdatum: </label>'."\n";
$s.= FormSelectKalender($db,'van_kalender_id', $van_kalender_id);
$s.= '<p><label for="tot_kalender_id">Einddatum:</label>'."\n";
$s.= FormSelectKalender($db,'tot_kalender_id', $tot_kalender_id);
$s.= '<p><label for="project_annotatie">Extra project gegevens: </label>'."\n";
$s.= '<textarea name="project_annotatie" id="project_annotatie">'.$project_annotatie.'</textarea></p>'."\n";
$s.= '</fieldset>'."\n";
$s.= '<fieldset>'."\n";
$s.= '<legend>Klantgegevens</legend>'."\n";
$s.= '<p><label for="klantnaam">Naam klant: </label>';
$s.= '<input type="text" name="klantnaam" id="klantnaam" value="'.$klantnaam.'" /></p>'."\n";
$s.= '<p><label for="bedrijfsonderdeel">Bedrijfsonderdeel: </label>';
$s.= '<input type="text" name="bedrijfsonderdeel" id="bedrijfsonderdeel" value="'.$bedrijfsonderdeel.'" /></p>'."\n";
$s.= '<p><label for="contactpersoon">Contactpersoon: </label>';
$s.= '<input type="text" name="contactpersoon" id="contactpersoon" value="'.$contactpersoon.'" /></p>'."\n";
$s.= '<p><label for="tussenpartij">Tussenpartij: </label>';
$s.= '<input type="text" name="tussenpartij" id="tussenpartij" value="'.$tussenpartij.'" /></p>'."\n";
$s.= '<p><label for="factuuradres">Factuuradres: </label>';
$s.= '<input type="text" name="factuuradres" id="factuuradres" value="'.$factuuradres.'" /></p>'."\n";
$s.= '</fieldset>'."\n";
$s.= '<fieldset>'."\n";
$s.= '<legend>Factuurgegevens</legend>'."\n";
$s.= '<p><label for="activiteiten">Werkzaamheden: </label>';
$s.= '<input type="text" name="activiteiten" id="activiteiten" value="'.$activiteiten.'" /></p>'."\n";
$s.= '<p><label for="factuurreferentie">Factuurreferentie: </label>';
$s.= '<input type="text" name="factuurreferentie" id="factuurreferentie" value="'.$factuurreferentie.'" /></p>'."\n";
$s.= '<p><label for="procuratiehouder">Procuratiehouder: </label>';
$s.= '<input type="text" name="procuratiehouder" id="procuratiehouder" value="'.$procuratiehouder.'" /></p>'."\n";
$s.= '</fieldset>'."\n";
$s.= '<p id="submit"><input type="submit" class="submitbutton" value="Opslaan" /></p>'."\n";
$_SESSION['action'] = $action;
$s.= StandardInputFields();
$_SESSION['action'] = $menu;
$s.= '</div>'."\n";
return $s;
}
/********************************
* Function UnsetProjectData *
********************************/
function UnsetProjectData() {
if(array_key_exists('project_id', $_SESSION)) { unset($_SESSION['project_id']); }
if(array_key_exists('project_naam', $_SESSION)) { unset($_SESSION['project_naam']); }
if(array_key_exists('project_code', $_SESSION)) { unset($_SESSION['project_code']);}
if(array_key_exists('uurtarief', $_SESSION)) { unset($_SESSION['uurtarief']);}
if(array_key_exists('project_type_id', $_SESSION)) { unset($_SESSION['project_type_id']);}
if(array_key_exists('van_kalender_id', $_SESSION)) { unset($_SESSION['van_kalender_id']);}
if(array_key_exists('tot_kalender_id', $_SESSION)) { unset($_SESSION['tot_kalender_id']);}
if(array_key_exists('project_annotatie', $_SESSION)) { unset($_SESSION['project_annotatie']);}
if(array_key_exists('contracturen', $_SESSION)) { unset($_SESSION['contracturen']); }
if(array_key_exists('klantnaam', $_SESSION)) { unset($_SESSION['klantnaam']); }
if(array_key_exists('bedrijfsonderdeel', $_SESSION)) { unset($_SESSION['bedrijfsonderdeel']); }
if(array_key_exists('contactpersoon', $_SESSION)) { unset($_SESSION['contactpersoon']); }
if(array_key_exists('factuuradres', $_SESSION)) { unset($_SESSION['factuuradres']); }
if(array_key_exists('tussenpartij', $_SESSION)) { unset($_SESSION['tussenpartij']); }
if(array_key_exists('activiteiten', $_SESSION)) { unset($_SESSION['activiteiten']); }
if(array_key_exists('factuurreferentie', $_SESSION)) { unset($_SESSION['factuurreferentie']); }
if(array_key_exists('procuratiehouder', $_SESSION)) { unset($_SESSION['procuratiehouder']);}
if(array_key_exists('gebruikers_id', $_SESSION)) { unset($_SESSION['gebruikers_id']);}
}
/********************************
* Function ProjectLijst *
********************************/
function ProjectLijst($db) {
$s = '<div id="MenuInputForm">'."\n";
$s.= '<p>Selecteer het project dat gewijzigd moet worden.<br />Gegroepeerd op persoon, gesorteerd op afloopdatum project.</p>';
$sql1 = 'select gebruikers_id, gebruikers_naam from uur_gebruikers where gebruikers_actief = \'J\' order by gebruikers_inlog';
if(array_key_exists('oudeprojecten', $_SESSION)) {
$checked = ' checked="checked"';
$kalenderjoin = '';
}
else {
$checked='';
$kalenderjoin = 'inner join uur_kalender k on p.tot_kalender_id = k.kalender_id and k.datum >= \''.date('Y-m-d').'\'';
}
$s .= '<p><input type="checkbox" name="oudeprojecten" id="release"'.$checked.' onClick="document.page.submit()" /><label for="oudeprojecten">Afgesloten projecten aan</label></p>';
$rows1 = ReturnData($sql1, $db);
$s.= '<select name="project_id" OnChange ="document.page.submit()">'."\n";
$s.= '<option value="0">[maak een keuze:]</option>'."\n";
foreach($rows1 as $row1) {
$s.= "\t".'<optgroup label="'.$row1['gebruikers_naam'].'">'."\n";
$sql2 = 'select p.project_id
, p.project_naam
from uur_projecten p
'.$kalenderjoin.'
where p.gebruikers_id = '.$row1['gebruikers_id'].'
and p.project_code not in (\'VAK\',\'ZIEK\')
order by p.tot_kalender_id desc
';
//echo $sql2; die();
$rows2 = ReturnData($sql2, $db);
foreach($rows2 as $row2) {
$s .= "\t\t".'<option value="'.$row2['project_id'].'">'.$row2['project_naam'].'</option>'."\n";
}
$s.= "\t".'</optgroup>'."\n";
}
$s.= '</select>'."\n";
$s.= '<p><noscript><input type="submit" class="submitbutton" value="Versturen" /></noscript></p>'."\n";
$s.= '</div>'."\n";
$s.= StandardInputFields();
return $s;
}
/********************************
* Function GetProject *
********************************/
function GetProject($db, $project_id) {
$sql = 'select project_code
, project_naam
, project_annotatie
, gebruikers_id
, project_type_id
, van_kalender_id
, tot_kalender_id
, uurtarief
, contracturen
, klantnaam
, bedrijfsonderdeel
, contactpersoon
, factuuradres
, tussenpartij
, activiteiten
, factuurreferentie
, procuratiehouder
from uur_projecten
where project_id = '.$project_id;
$rows = ReturnData($sql, $db);
foreach($rows as $row) {
//fill all project variables
$_SESSION['project_naam'] = $row['project_naam'];
$_SESSION['project_code'] = $row['project_code'];
$_SESSION['project_annotatie'] = $row['project_annotatie'];
$_SESSION['uurtarief'] = $row['uurtarief'];
$_SESSION['gebruikers_id'] = $row['gebruikers_id'];
$_SESSION['project_type_id'] = $row['project_type_id'];
$_SESSION['van_kalender_id'] = $row['van_kalender_id'];
$_SESSION['tot_kalender_id'] = $row['tot_kalender_id'];
$_SESSION['contracturen'] = $row['contracturen'];
$_SESSION['klantnaam'] = $row['klantnaam'];
$_SESSION['bedrijfsonderdeel'] = $row['bedrijfsonderdeel'];
$_SESSION['contactpersoon'] = $row['contactpersoon'];
$_SESSION['factuuradres'] = $row['factuuradres'];
$_SESSION['tussenpartij'] = $row['tussenpartij'];
$_SESSION['activiteiten'] = $row['activiteiten'];
$_SESSION['factuurreferentie'] = $row['factuurreferentie'];
$_SESSION['procuratiehouder'] = $row['procuratiehouder'];
}
}
/********************************
* Function GetTimesheet *
********************************/
function GetTimesheet($db, $current_user_id, $month) {
SetLanguage($db);
// SQL gedeelte
// dagen van de gekozen maand
$sql_header = 'select day(datum) as dag
, dayofweek(datum) as weekdag
, date_format(datum, \'%a\') as dagvdweek
, kalender_id
, feestdag
from uur_kalender
where year(datum)*100+month(datum) = '.$month.'
order by datum
';
// alle projecten voor de gebruiker in die maand
$sql_projecten = 'select project_id
, project_naam
from uur_v_project_kalender
where gebruikers_id = '.$current_user_id.'
and maand = '.$month.'
group by project_id
';
// Ziekte en vakantie
$sql_vak = 'select project_id
, project_naam
from uur_projecten
where gebruikers_id = '.$current_user_id.'
and project_code in (\'VAK\', \'ZIEK\')'
;
// GET DATA
$rows_header = ReturnData($sql_header, $db);
$rows_projecten = ReturnData($sql_projecten, $db);
$rows_vak = ReturnData($sql_vak, $db);
$s = '<table id="timesheet">'."\n";
// ROWS MET DAG VD MAAND
$s.= '<tr>'."\n";
$s.= "\t".'<th></th>'."\n";
$j = 0;
foreach($rows_header as $row_header) {
if(($row_header['weekdag'] == 1 or $row_header['weekdag'] == 7) and $row_header['feestdag'] != 'J') {
$s.= "\t".'<th class="weekend dagvdweek">'.$row_header['dagvdweek'].'</th>'."\n";
}
elseif($row_header['feestdag'] == 'J') {
$s.= "\t".'<th class="feestdag dagvdweek">'.$row_header['dagvdweek'].'</th>'."\n";
}
else {
$s.= "\t".'<th class="dagvdweek">'.$row_header['dagvdweek'].'</th>'."\n";
}
// teller voor de colspan van de laatste tabelrij met de release optie
$j++;
}
$s.= "\t".'<td class="totaal"> </td>'."\n";
$s.= "\t".'</tr>'."\n";
$s.= '<tr>'."\n";
$s.= "\t".'<th></th>'."\n";
foreach($rows_header as $row_header) {
if(($row_header['weekdag'] == 1 or $row_header['weekdag'] == 7) and $row_header['feestdag'] != 'J') {
$s.= "\t".'<th class="weekend">'.$row_header['dag'].'</th>'."\n";
}
elseif($row_header['feestdag'] == 'J') {
$s.= "\t".'<th class="feestdag">'.$row_header['dag'].'</th>'."\n";
}
else {
$s.= "\t".'<th>'.$row_header['dag'].'</th>'."\n";
}
}
$s.= "\t".'<td class="totaalh">totaal</td>'."\n";
$s.= "\t".'</tr>'."\n";
//ROWS PER PROJECT, EERSTE LOOP: projecten, TWEEDE LOOP: datum per project
$i=1;
$k=0;
foreach($rows_projecten as $row_projecten) {
$sql_uren = 'select kal.kalender_id
, dayofweek(kal.datum) as weekdag
, kal.feestdag
, case
when kal.kalender_id = proj.kalender_id
then \'J\'
else \'N\'
end as geldig_op_datum
, uur.aantal_uur
, uur.released
from uur_kalender kal
left join uur_v_project_kalender proj
on kal.kalender_id = proj.kalender_id
and proj.project_id = '.$row_projecten['project_id'].'
and proj.gebruikers_id = '.$current_user_id.'
and proj.maand = '.$month.'
left join uur_maandstaat uur
on uur.project_id = '.$row_projecten['project_id'].'
and uur.kalender_id = kal.kalender_id
and uur.gebruikers_id = '.$current_user_id.'
where year(kal.datum)*100+month(kal.datum) = '.$month.'
order by kal.datum';
$s.= '<tr>'."\n";
$s.='<td class="projecten"><a href="pdf.php?project='.$row_projecten['project_id'].'">'.$row_projecten['project_naam'].'</a></td>'."\n";
$rows_uren = ReturnData($sql_uren, $db);
//zet totaal project_uren op 0;
$p_uren = 0;
foreach($rows_uren as $row_uren) {
if(($row_uren['weekdag'] == 1 or $row_uren['weekdag'] == 7) and $row_uren['feestdag'] != 'J') {
$s.= "\t".'<td class="weekend">';
}
elseif($row_uren['feestdag'] == 'J') {
$s.= "\t".'<td class="feestdag">';
}
else {
$s.= "\t".'<td>';
}
if($row_uren['geldig_op_datum'] == 'J') {
$s.= '<input type="text" size="2" name="u-'.$row_uren['kalender_id'].'-'.$row_projecten['project_id'].'-'.$current_user_id.'" value="'.$row_uren['aantal_uur'].'" tabindex="'.$i.'" />';
// totaal aantal uren per project;
$p_uren = $p_uren + $row_uren['aantal_uur'];
}
else {
$s.= ' ';
}
$s.= '</td>'."\n";
$i++;
//teller om te bepalen of er uren gereleased zijn
if($row_uren['released'] == 'J') {
$k++;
}
}
$s.= "\t".'<td class="totaal"><input type="text" value="'.$p_uren.'" /></td>'."\n";
$s.= "\t".'</tr>'."\n";
}
// ZIEKTE EN VAKANTIEUREN
foreach($rows_vak as $row_vak) {
$sql_uren = 'select kal.kalender_id
, dayofweek(kal.datum) as weekdag
, kal.feestdag
, uur.aantal_uur
from uur_kalender kal
left join uur_maandstaat uur
on uur.project_id = '.$row_vak['project_id'].'
and uur.gebruikers_id = '.$current_user_id.'
and kal.kalender_id = uur.kalender_id
where year(kal.datum)*100+month(kal.datum) = '.$month.'
';
$s.= '<tr class="vakantie">'."\n";
$s.='<td class="projecten">'.$row_vak['project_naam'].'</td>'."\n";
$rows_uren = ReturnData($sql_uren, $db);
//zet totaal project_uren op 0;
$p_uren = 0;
foreach($rows_uren as $row_uren) {
if(($row_uren['weekdag'] == 1 or $row_uren['weekdag'] == 7) and $row_uren['feestdag'] != 'J') {
$s.= "\t".'<td class="weekend">';
}
elseif($row_uren['feestdag'] == 'J') {
$s.= "\t".'<td class="feestdag">';
}
else {
$s.= "\t".'<td>';
}
$s.= '<input type="text" size="2" name="u-'.$row_uren['kalender_id'].'-'.$row_vak['project_id'].'-'.$current_user_id.'" value="'.$row_uren['aantal_uur'].'" tabindex="'.$i.'" />';
// totaal aantal uren per project;
$p_uren = $p_uren + $row_uren['aantal_uur'];
$s.= '</td>'."\n";
$i++;
}
$s.= "\t".'<td class="totaal"><input type="text" value="'.$p_uren.'" /></td>'."\n";
$s.= "\t".'</tr>'."\n";
}
// Regel met de release optie van de timesheet
if ($k > 0 ) {
$s.= '<tr><td colspan="'.($j+2).'" class="release">Timesheet is vrijgegeven voor facturatie</td></tr>'."\n";
}
else {
$s.= '<tr><td colspan="'.($j+2).'" class="release"><input type="checkbox" name="release" id="release" onClick="alert(\'Je hebt de releasebox aan- of uitgezet!\')" /><label for="release">Geef timesheet vrij voor facturatie</label></td></tr>'."\n";
}
$s.= '</table>'."\n";
$s.= StandardInputFields();
if($k==0) {
$s.= '<p class="c"><input type="submit" value="Opslaan" /></p>'."\n";
}
return $s;
}
/********************************
* Function GetMaand *
********************************/
function GetMaand($db, $month) {
SetLanguage($db);
$sql = 'select maand.prv_jaarmaand
, prv_name.maandnaam as prv_maandnaam
, maand.jaarmaand
, maand.maandnaam
, maand.nxt_jaarmaand
, nxt_name.maandnaam as nxt_maandnaam
from (
select max(prv.jaarmaand) as prv_jaarmaand
, cur.jaarmaand
, cur.maandnaam
, min(nxt.jaarmaand) as nxt_jaarmaand
from uur_v_maanden cur
left join (
select jaarmaand
from uur_v_maanden
) nxt
on nxt.jaarmaand > cur.jaarmaand
left join (
select jaarmaand
from uur_v_maanden
) prv
on prv.jaarmaand < cur.jaarmaand
where cur.jaarmaand = '.$month.'
group by cur.maandnaam
, cur.jaarmaand
) maand
left join uur_v_maanden nxt_name
on maand.nxt_jaarmaand = nxt_name.jaarmaand
left join uur_v_maanden prv_name
on maand.prv_jaarmaand = prv_name.jaarmaand';
$rows = ReturnData($sql, $db);
foreach($rows as $row) {
$_SESSION['month'] = $row['jaarmaand'];
$_SESSION['monthname'] = $row['maandnaam'];
$_SESSION['prevmonth'] = $row['prv_jaarmaand'];
$_SESSION['prevmonthname'] = $row['prv_maandnaam'];
$_SESSION['nextmonth'] = $row['nxt_jaarmaand'];
$_SESSION['nextmonthname'] = $row['nxt_maandnaam'];
}
$s = '<div id="maand">'."\n";
if(is_numeric($_SESSION['prevmonth'])) {
$s.= "\t".'<a href="index.php?action=prevmonth">« '.$_SESSION['prevmonthname'].'</a> | '."\n";
}
$s.= "\t".'<strong>'.$_SESSION['monthname'].'</strong>'."\n";
if(is_numeric($_SESSION['nextmonth'])) {
$s.= "\t".' | <a href="index.php?action=nextmonth">'.$_SESSION['nextmonthname'].' »</a>'."\n";
}
$s.= '</div>'."\n";
return $s;
}
/********************************
* Function VakantieSaldo *
********************************/
function VakantieSaldo($db, $rapportage_jaar, $gebruiker_bedrijf_id) {
if($rapportage_jaar === null) {
$rapportage_jaar = date('Y');
}
$sql = '
select g.gebruikers_id
, g.gebruikers_naam
, vs.jaar
, vs.saldo_dagen
from uur_gebruikers g
left join uur_saldo_vakantie vs
on vs.gebruikers_id = g.gebruikers_id
and vs.jaar = \''.$rapportage_jaar.'\'
where g.bedrijf_id='.$gebruiker_bedrijf_id.'
order by g.gebruikers_naam
';
$rows = ReturnData($sql, $db);
$s = '<div id="MenuInputForm">'."\n";
$s .= GetRapportageJaar($db, $rapportage_jaar, $_SESSION['action']);
$s .= '<table id="overzicht">';
$s .= '<tr><th>Naam</th>'."\n\t".'<th>Aantal vakantiedagen</th></tr>'."\n";
foreach($rows as $row) {
$s .= '<tr><td>'.$row['gebruikers_naam'].'</td>'."\n";
$s .= "\t".'<td class="vakantiesaldo"><input type="text" name="saldo_dagen-'.$row['gebruikers_id'].'-'.$rapportage_jaar.'" value="'.$row['saldo_dagen'].'" /></td></tr>'."\n";
}
$s .= '</table>'."\n\n";
$s .= '<p id="submit"><input type="submit" name="opslaan_vakantiedagen" value="opslaan" /></p>'."\n";
$s .= '</div>'."\n";
return $s;
}
/*==============================================
= PART 3 : Reusable components
==============================================*/
/********************************
* Function FormSelectGebruiker *
********************************/
function FormSelectGebruiker($db, $automatic, $current_user_id, $variabele, $active_only) {
if($active_only == 'J') {
$sql = 'select gebruikers_id, gebruikers_naam, gebruikers_inlog from uur_gebruikers where gebruikers_actief = \'J\' order by gebruikers_inlog';
}
else {
$sql = 'select gebruikers_id, gebruikers_naam, gebruikers_inlog from uur_gebruikers order by gebruikers_inlog';
}
$rows = ReturnData($sql, $db);
if($automatic == 'J') {
$s = '<select name="'.$variabele.'" OnChange ="document.page.submit()">'."\n";
}
else {
$s = '<select name="'.$variabele.'">'."\n";
}
$s.= '<option value="0">[maak een keuze:]</option>'."\n";
foreach($rows as $row) {
if($row['gebruikers_id'] == $current_user_id) {
$sel = ' selected="selected"';
}
else {
$sel = '';
}
$s.= "\t".'<option value="'.$row['gebruikers_id'].'"'.$sel.'>'.$row['gebruikers_inlog'].' — '.$row['gebruikers_naam'].'</option>'."\n";
}
$s.= '</select>'."\n";
return $s;
}
/********************************
* Function FormSelectBedrijf *
********************************/
function FormSelectBedrijf($db, $automatic, $current_bedrijf_id, $variabele, $active_only) {
if($active_only == 'J') {
$sql = 'select bedrijf_id, bedrijf_naam from uur_bedrijf where bedrijf_actief = \'J\' order by bedrijf_naam';
}
else {
$sql = 'select bedrijf_id, bedrijf_naam from uur_bedrijf order by bedrijf_naam';
}
$rows = ReturnData($sql, $db);
if($automatic == 'J') {
$s = '<select name="'.$variabele.'" OnChange ="document.page.submit()">'."\n";
}
else {
$s = '<select name="'.$variabele.'">'."\n";
}
$s.= '<option value="0">[maak een keuze:]</option>'."\n";
foreach($rows as $row) {
if($row['bedrijf_id'] == $current_bedrijf_id) {
$sel = ' selected="selected"';
}
else {
$sel = '';
}
$s.= "\t".'<option value="'.$row['bedrijf_id'].'"'.$sel.'>'.$row['bedrijf_naam'].'</option>'."\n";
}
$s.= '</select>'."\n";
return $s;
}
/**********************************
* Function FormSelectProjectType *
**********************************/
function FormSelectProjectType($db, $project_type_id = NULL) {
$sql = 'select project_type_id, project_type_naam, project_type_default
from uur_project_type
where project_type_naam not in (\'VAK\',\'ZIEK\')
order by project_type_naam';
$rows = ReturnData($sql, $db);
$s = '<select name="project_type_id">'."\n";
foreach($rows as $row) {
if((!$project_type_id and $row['project_type_default'] == 'J') or ($project_type_id == $row['project_type_id'])) {
$sel = ' selected="selected"';
}
else {
$sel = '';
}
$s.= "\t".'<option value="'.$row['project_type_id'].'"'.$sel.'>'.$row['project_type_naam'].'</option>'."\n";
}
$s.= '</select>'."\n";
return $s;
}
/**********************************
* Function FormSelectKalender *
**********************************/
function FormSelectKalender($db,$name, $session_id = null) {
SetLanguage($db);
$huidigedatum = date('Y-m-d');
if($name == 'tot_kalender_id') {
$hd = date("Y-m-d", strtotime(date("Y-m-d", strtotime($huidigedatum)) . " +1 month"));
}
else {
$hd = $huidigedatum;
}
$sql = 'select maandnaam
, jaarmaand
from uur_kalender
group by maandnaam
, jaarmaand
order by jaarmaand'
;
$rows = ReturnData($sql, $db);
$s = '<select name="'.$name.'">'."\n";
foreach($rows as $row) {
$sql2 = 'select kalender_id, datum
from uur_kalender
where jaarmaand = \''.$row['jaarmaand'].'\''
;
$rows2 = ReturnData($sql2, $db);
$s.= "\t".'<optgroup label="'.$row['maandnaam'].'">'."\n";
foreach($rows2 as $row2) {
if((!$session_id and $row2['datum'] == $hd) or ($row2['kalender_id'] == $session_id)) {
$sel = ' selected="selected"';
}
else {
$sel = '';
}
$s.= "\t\t".'<option value="'.$row2['kalender_id'].'"'.$sel.'>'.$row2['datum'].'</option>'."\n";
}
$s.= "\t".'</optgroup>'."\n";
}
$s.= '</select>'."\n";
return $s;
}
/**********************************
* Function SchoonMaken *
**********************************/
function Schoonmaken($array) {
foreach ($array as $entry => $waarde) {
$array[$entry] = addslashes($waarde);
}
return $array;
}
/*==============================================
= PART 4 : Overzichten =
==============================================*/
/**********************************
* Function GetRapportageJaar *
**********************************/
function GetRapportageJaar($db, $jaar, $action) {
$sql = 'select year(datum) as jaar from uur_kalender group by year(datum) order by year(datum)';
$rows = ReturnData($sql, $db);
$s = '<p class="jaarselectie"><select name="rapportage_jaar" OnChange ="document.page.submit()">'."\n";
foreach($rows as $row) {
if($jaar == $row['jaar']) {
$selected = ' selected="selected"';
}
else {
$selected = '';
}
$s.= "\t".'<option value="'.$row['jaar'].'"'.$selected.'>'.$row['jaar'].'</option>'."\n";
}
$s.= '</select></p>'."\n";
$_SESSION['action'] = $action;
$s.= StandardInputFields();
$s.= '<noscript><p class="jaarselectie"><input type="submit" value="Opslaan" /></p></noscript>'."\n";
return $s;
}
/**********************************
* Function GetPrognose *
**********************************/
function GetPrognose($db) {
SetLanguage($db);
$s = '<h2>Prognose</h2>'."\n\n";
$s.= '<table id="overzicht">'."\n";
$s.= '<tr>'."\n";
$s.= "\t".'<th>Maand</th>'."\n";
$s.= "\t".'<th>Naam</th>'."\n";
$s.= "\t".'<th>Project</th>'."\n";
$s.= "\t".'<th>Aantal uur</th>'."\n";
$s.= "\t".'<th>Tarief</th>'."\n";
$s.= "\t".'<th>Omzet in €</th>'."\n";
$s.= "\t".'</tr>'."\n";
$sql_mnd = 'select maandnaam
, jaarmaand
from uur_v_prognose
where bedrijf_id = '.$_SESSION['gebruiker_bedrijf_id'].'
group by maandnaam
, jaarmaand
order by jaarmaand';
$rows_mnd = ReturnData($sql_mnd, $db);
$omzet_totaal = '';
$aantal_totaal = '';
foreach($rows_mnd as $row_mnd) {
$sql_naam = 'select gebruikers_id
, gebruikers_naam
from uur_v_prognose v
where jaarmaand = \''.$row_mnd['jaarmaand'].'\'
and bedrijf_id = '.$_SESSION['gebruiker_bedrijf_id'].'
group by gebruikers_id
, gebruikers_naam
order by gebruikers_naam';
$rows_naam = ReturnData($sql_naam, $db);
$omzet_maand = '';
$aantal_maand = '';
foreach($rows_naam as $row_naam) {
$sql_prog = 'select maandnaam
, gebruikers_naam
, project_naam
, aantal_uur
, uurtarief
, aantal_uur * uurtarief as omzet
from uur_v_prognose
where maandnaam = \''.$row_mnd['maandnaam'].'\'
and gebruikers_id = \''.$row_naam['gebruikers_id'].'\'
';
$rows_prog = ReturnData($sql_prog, $db);
$omzet_naam = '';
$aantal_naam = '';
foreach($rows_prog as $row_prog) {
$s.= "\t".'<td>'.$row_prog['maandnaam'].'</td>'."\n";
$s.= "\t".'<td>'.$row_prog['gebruikers_naam'].'</td>'."\n";
$s.= "\t".'<td>'.$row_prog['project_naam'].'</td>'."\n";
$s.= "\t".'<td class="c">'.number_format(round($row_prog['aantal_uur'],2),2,',','.').'</td>'."\n";
$s.= "\t".'<td class="c">'.number_format(round($row_prog['uurtarief'],2),2,',','.').'</td>'."\n";
$s.= "\t".'<td class="c">'.number_format(round($row_prog['omzet'],2),2,',','.').'</td>'."\n";
$s.= "\t".'</tr>'."\n";
$omzet_naam = $omzet_naam+$row_prog['omzet'];
$aantal_naam = $aantal_naam+$row_prog['aantal_uur'];
$omzet_maand = $omzet_maand+$row_prog['omzet'];
$aantal_maand = $aantal_maand+$row_prog['aantal_uur'];
$omzet_totaal = $omzet_totaal+$row_prog['omzet'];
$aantal_totaal = $aantal_totaal+$row_prog['aantal_uur'];
}
$s.= '<tr>'."\n";
$s.= "\t".'<td class="naamtotaal">'.$row_mnd['maandnaam'].'</td>'."\n";
$s.= "\t".'<td class="naamtotaal" colspan="2"> Totaal '.$row_naam['gebruikers_naam'].'</td>'."\n";
$s.= "\t".'<td class="naamtotaal c">'.number_format(round($aantal_naam,2),2,',','.').'</td>'."\n";
$s.= "\t".'<td class="naamtotaal"> </td>'."\n";
$s.= "\t".'<td class="naamtotaal c">'.number_format(round($omzet_naam,2),2,',','.').'</td>'."\n";
$s.= "\t".'</tr>'."\n";
}
$s.= '<tr>'."\n";
$s.= "\t".'<td class="maandtotaal" colspan="3"> Totaal '.$row_mnd['maandnaam'].'</td>'."\n";
$s.= "\t".'<td class="maandtotaal c">'.number_format(round($aantal_maand,2),2,',','.').'</td>'."\n";
$s.= "\t".'<td class="maandtotaal"> </td>'."\n";
$s.= "\t".'<td class="maandtotaal c">'.number_format(round($omzet_maand,2),2,',','.').'</td>'."\n";
$s.= "\t".'</tr>'."\n";
$s.= '<tr class="legeregel">'."\n";
$s.= "\t".'<td colspan="6"> </td>'."\n";
$s.= "\t".'</tr>'."\n";
}
$s.= '<tr>'."\n";
$s.= "\t".'<td class="totaal" colspan="3"> Totale prognose</td>'."\n";
$s.= "\t".'<td class="totaal c">'.number_format(round($aantal_maand,2),2,',','.').'</td>'."\n";
$s.= "\t".'<td class="totaal"> </td>'."\n";
$s.= "\t".'<td class="totaal c">'.number_format(round($omzet_totaal,2),2,',','.').'</td>'."\n";
$s.= "\t".'</tr>'."\n";
$s.= '</table>'."\n";
return $s;
}
/**********************************
* Function GetRealisatie *
**********************************/
function GetRealisatie($db, $jaar, $action) {
SetLanguage($db);
$s = '<h2>Realisatie</h2>'."\n\n";
$s.= GetRapportageJaar($db, $jaar, $action);
$s.= '<table id="overzicht">'."\n";
$sql_mnd = 'select jaarmaand, maandnaam
from uur_v_realisatie
where jaar='.$jaar.'
and bedrijf_id = '.$_SESSION['gebruiker_bedrijf_id'].'
group by jaarmaand, maandnaam
order by jaarmaand';
$rows_mnd = ReturnData($sql_mnd, $db);
$omzet_totaal = '';
$aantal_totaal = '';
foreach($rows_mnd as $row_mnd) {
$sql_naam = 'select gebruikers_naam, gebruikers_id
from uur_v_realisatie
where jaarmaand = '.$row_mnd['jaarmaand'].'
and jaar='.$jaar.'
and bedrijf_id = '.$_SESSION['gebruiker_bedrijf_id'].'
group by gebruikers_naam, gebruikers_id';
$rows_naam = ReturnData($sql_naam, $db);
$omzet_maand = '';
$aantal_maand = '';
$s.= '<tr><th colspan="5"><strong>'.$row_mnd['maandnaam'].'</strong></th></tr>'."\n";
$s.= '<tr>'."\n";
$s.= "\t".'<th>Naam</th>'."\n";
$s.= "\t".'<th>Project</th>'."\n";
$s.= "\t".'<th class="c">Aantal uur</th>'."\n";
$s.= "\t".'<th class="c">Tarief</th>'."\n";
$s.= "\t".'<th class="c">Omzet in €</th>'."\n";
$s.= "\t".'</tr>'."\n";
foreach($rows_naam as $row_naam) {
$sql_prog = 'select maandnaam
, gebruikers_naam
, project_naam
, aantal_uur as aantal_uur
, uurtarief as uurtarief
, aantal_uur * uurtarief as omzet
from uur_v_realisatie
where maandnaam = \''.$row_mnd['maandnaam'].'\'
and gebruikers_id = \''.$row_naam['gebruikers_id'].'\'
and released = \'J\'
and jaar = '.$jaar;
$rows_prog = ReturnData($sql_prog, $db);
$omzet_naam = '';
$aantal_naam = '';
$i = 0;
foreach($rows_prog as $row_prog) {
$s.= '<tr>'."\n";
$s.= "\t".'<td>'.$row_prog['gebruikers_naam'].'</td>'."\n";
$s.= "\t".'<td>'.$row_prog['project_naam'].'</td>'."\n";
$s.= "\t".'<td class="c">'.number_format(round($row_prog['aantal_uur'],2),2,',','.').'</td>'."\n";
$s.= "\t".'<td class="c">'.number_format(round($row_prog['uurtarief'],2),2,',','.').'</td>'."\n";
$s.= "\t".'<td class="c">'.number_format(round($row_prog['omzet'],2),2,',','.').'</td>'."\n";
$s.= "\t".'</tr>'."\n";
$omzet_naam = $omzet_naam+$row_prog['omzet'];
$aantal_naam = $aantal_naam+$row_prog['aantal_uur'];
$omzet_maand = $omzet_maand+$row_prog['omzet'];
$aantal_maand = $aantal_maand+$row_prog['aantal_uur'];
$omzet_totaal = $omzet_totaal+$row_prog['omzet'];
$aantal_totaal = $aantal_totaal+$row_prog['aantal_uur'];
$i++;
}
if($i==0) {
$s.= '<tr>'."\n";
$s.= "\t".'<td>'.$row_naam['gebruikers_naam'].'</td>'."\n";
$s.= "\t".'<td colspan="4"><em>geen uren vrijgegeven</em></td>'."\n";
$s.= "\t".'</tr>'."\n";
}
$s.= '<tr>'."\n";
$s.= "\t".'<td class="naamtotaal" colspan="2"> Totaal '.$row_naam['gebruikers_naam'].'</td>'."\n";
$s.= "\t".'<td class="naamtotaal c">'.number_format(round($aantal_naam,2),2,',','.').'</td>'."\n";
$s.= "\t".'<td class="naamtotaal"> </td>'."\n";
$s.= "\t".'<td class="naamtotaal c">'.number_format(round($omzet_naam,2),2,',','.').'</td>'."\n";
$s.= "\t".'</tr>'."\n";
}
$s.= '<tr>'."\n";
$s.= "\t".'<td class="maandtotaal" colspan="2"> Totaal '.$row_mnd['maandnaam'].'</td>'."\n";
$s.= "\t".'<td class="maandtotaal c">'.number_format(round($aantal_maand,2),2,',','.').'</td>'."\n";
$s.= "\t".'<td class="maandtotaal"> </td>'."\n";
$s.= "\t".'<td class="maandtotaal c">'.number_format(round($omzet_maand,2),2,',','.').'</td>'."\n";
$s.= "\t".'</tr>'."\n";
$s.= '<tr class="legeregel">'."\n";
$s.= "\t".'<td colspan="5"> </td>'."\n";
$s.= "\t".'</tr>'."\n";
}
$s.= '<tr>'."\n";
$s.= "\t".'<td class="totaal" colspan="2"> Totale realisatie</td>'."\n";
$s.= "\t".'<td class="totaal c">'.number_format(round($aantal_totaal,2),2,',','.').'</td>'."\n";
$s.= "\t".'<td class="totaal"> </td>'."\n";
$s.= "\t".'<td class="totaal c">'.number_format(round($omzet_totaal,2),2,',','.').'</td>'."\n";
$s.= "\t".'</tr>'."\n";
$s.= '</table>'."\n";
return $s;
}
/**********************************
* Function GetVakantie *
**********************************/
function GetVakantie($db, $jaar, $action, $gebruiker_bedrijf_id) {
SetLanguage($db);
$start_aantal_uur = 0;
$aantal_opgenomen_uur = 0;
$resterend_aantal_uur = 0;
$ziekte_uur = 0;
$s = '';
$sql ='
select g.gebruikers_naam
, s.jaar
, round(s.saldo_dagen*8,0) as start_aantal_uur
, round(coalesce(sum(uur.aantal_uur),0),0) as aantal_opgenomen_uur
, round((s.saldo_dagen*8),0)-round(coalesce(sum(uur.aantal_uur),0),0) as resterend_aantal_uur
from uur_gebruikers g
inner join uur_saldo_vakantie s
on g.gebruikers_id = s.gebruikers_id
and g.bedrijf_id = '.$gebruiker_bedrijf_id.'
left join (
select year(k.datum) as jaar
, u.gebruikers_id
, u.aantal_uur
, p.project_naam
from uur_maandstaat u
inner join uur_kalender k
on u.kalender_id = k.kalender_id
inner join uur_projecten p
on u.project_id = p.project_id
inner join uur_project_type pt
on p.project_type_id = pt.project_type_id
and pt.project_type_naam = \'VAK\'
) uur
on s.gebruikers_id = uur.gebruikers_id
and s.jaar = uur.jaar
where s.jaar = \''.$jaar.'\'
group by g.gebruikers_naam
, s.jaar
, s.saldo_dagen
order by g.gebruikers_naam
'
;
$rows = ReturnData($sql, $db);
$s.= GetRapportageJaar($db, $jaar, $action);
$s.= '<h2>Vakantie uren</h2>'."\n\n";
$s.= '<table id="overzicht">'."\n";
$s.= '<tr>'."\n";
$s.= "\t".'<th>Naam</th>'."\n";
$s.= "\t".'<th>Saldo uren</th>'."\n";
$s.= "\t".'<th>Opgenomen vakantieuren</th>'."\n";
$s.= "\t".'<th>Resterend aantal vakantieuren</th>'."\n";
$s.= "\t".'</tr>'."\n";
foreach($rows as $row) {
$s.= '<tr>'."\n";
$s.= "\t".'<td>'.$row['gebruikers_naam'].'</td>'."\n";
$s.= "\t".'<td>'.$row['start_aantal_uur'].'</td>'."\n";
$s.= "\t".'<td>'.$row['aantal_opgenomen_uur'].'</td>'."\n";
$s.= "\t".'<td>'.$row['resterend_aantal_uur'].'</td>'."\n";
$s.= "\t".'</tr>'."\n";
$start_aantal_uur = $start_aantal_uur + $row['start_aantal_uur'];
$aantal_opgenomen_uur = $aantal_opgenomen_uur + $row['aantal_opgenomen_uur'];
$resterend_aantal_uur = $resterend_aantal_uur + $row['resterend_aantal_uur'];
}
$s.= '<tr>'."\n";
$s.= "\t".'<td class="totaal">Totaal</td>'."\n";
$s.= "\t".'<td class="totaal">'.$start_aantal_uur.'</td>'."\n";
$s.= "\t".'<td class="totaal">'.$aantal_opgenomen_uur.'</td>'."\n";
$s.= "\t".'<td class="totaal">'.$resterend_aantal_uur.'</td>'."\n";
$s.= "\t".'</tr>'."\n";
$s.= '</table>'."\n\n";
// Ziekte uren
$sql ='
select g.gebruikers_naam
, round(coalesce(sum(uur.aantal_uur),0),0) as ziekte_uur
from uur_gebruikers g
left join (
select year(k.datum) as jaar
, u.gebruikers_id
, u.aantal_uur
, p.project_naam
from uur_maandstaat u
inner join uur_kalender k
on u.kalender_id = k.kalender_id
inner join uur_projecten p
on u.project_id = p.project_id
inner join uur_project_type pt
on p.project_type_id = pt.project_type_id
and pt.project_type_naam = \'ZIEK\'
where year(k.datum) = \''.$jaar.'\'
) uur
on g.gebruikers_id = uur.gebruikers_id
where g.bedrijf_id = '.$gebruiker_bedrijf_id.'
group by g.gebruikers_naam
order by g.gebruikers_naam
'
;
$rows = ReturnData($sql, $db);
$s.= '<h2>Ziekte uren</h2>'."\n\n";
$s.= '<table id="overzicht">'."\n";
$s.= '<tr>'."\n";
$s.= "\t".'<th>Naam</th>'."\n";
$s.= "\t".'<th>Aantal ziekte uren</th>'."\n";
$s.= "\t".'</tr>'."\n";
foreach($rows as $row) {
$s.= '<tr>'."\n";
$s.= "\t".'<td>'.$row['gebruikers_naam'].'</td>'."\n";
$s.= "\t".'<td>'.$row['ziekte_uur'].'</td>'."\n";
$s.= "\t".'</tr>'."\n";
$ziekte_uur = $ziekte_uur + $row['ziekte_uur'];
}
$s.= '<tr>'."\n";
$s.= "\t".'<td class="totaal">Totaal</td>'."\n";
$s.= "\t".'<td class="totaal">'.$ziekte_uur.'</td>'."\n";
$s.= "\t".'</tr>'."\n";
$s.= '</table>'."\n\n";
return $s;
}
/**********************************
* Function GetCSV *
**********************************/
function GetCSV($db, $gebruiker_bedrijf_id) {
$sql = '
select g.gebruikers_inlog
, g.gebruikers_naam
, g.gebruikers_fte
, year(k.datum)*100+month(datum) as jaarmaand
, p.klantnaam
, p.project_code
, p.project_naam
, p.contracturen
, p.uurtarief
, round(sum(m.aantal_uur),2) as aantal_uur
from uur_maandstaat m
inner join uur_gebruikers g
on m.gebruikers_id = g.gebruikers_id
and g.bedrijf_id = '.$gebruiker_bedrijf_id.'
inner join uur_kalender k
on m.kalender_id = k.kalender_id
inner join uur_projecten p
on m.project_id = p.project_id
group by g.gebruikers_inlog
, g.gebruikers_naam
, g.gebruikers_fte
, year(k.datum)*100+month(datum)
, p.klantnaam
, p.project_code
, p.project_naam
, p.contracturen
, p.uurtarief
order by g.gebruikers_inlog
, year(k.datum)*100+month(datum)
, p.klantnaam
, p.project_code
';
$rows = ReturnData($sql, $db);
$s = '"VerkorteNaam";"Naam";"FTE";"JaarMaand";"KlantNaam";"ProjectCode";"ProjectNaam";"Contracturen";"Tarief";"TotaalAantalUur"'."\n";
foreach ($rows as $row) {
$s.= '"'.$row['gebruikers_inlog'].'";';
$s.= '"'.$row['gebruikers_naam'].'";';
$s.= '"'.$row['gebruikers_fte'].'";';
$s.= '"'.$row['jaarmaand'].'";';
$s.= '"'.$row['klantnaam'].'";';
$s.= '"'.$row['project_code'].'";';
$s.= '"'.$row['project_naam'].'";';
$s.= '"'.$row['contracturen'].'";';
$s.= '"'.$row['uurtarief'].'";';
$s.= '"'.$row['aantal_uur'].'"'."\n";
}
$FileName = 'report.csv';
$fh = fopen($FileName, 'w') or die("<b>I don't have permission to write to $FileName. CHMOD 777 this file!");
fwrite($fh, $s);
fclose($fh);
$answer = '<p><a href="'.$FileName.'">'.$FileName.'</a> has been generated</p>'."\n";
return $answer;
}
?>