HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/MDalebout/clupconsultants.nl/wwwroot/timesheet/includes/functions_db.php
<?php
/*==============================================
  = PART 1 : Standard database functions
  ==============================================*/

function ReturnData($sql, $db) {
        if ($db->Execute($sql) === false) {
            echo 'Query levert een fout op: '.$db->ErrorMsg().'<br />'."\n";
            echo '<a href="index.php">Probeer opnieuw</a>';
            die();
        }
        else {
            $r = $db->Execute($sql);
            $rows = $r->GetRows();
            return $rows;
        }
    }


function ExecuteQuery($sql, $db) {
        if ($db->Execute($sql) === false) {
            echo 'Query levert een fout op: '.$db->ErrorMsg().'<br />'."\n";
            echo '<a href="index.php">Probeer opnieuw</a>';
            die();
        }
        else {
            $_SESSION['feedback'] = 'Actie is uitgevoerd';
        }
    }


/***************************************************************************
 * Function SetLanguage                                                    *
 * Zetten van de taal waarin o.a. de datum weergegeven wordt in een query  *
 ***************************************************************************/
function SetLanguage($db) {
    $sql = 'SET lc_time_names = \'nl_NL\'';
    $db->Execute($sql);
    }




/*==============================================
  = PART 2 : Application Setup Functions
  ==============================================*/
  

/********************************
 * Function FillInterfaceMenu   *
 ********************************/
function FillInterfaceMenu($db) {
    $insert = Array();
    
    $insert[0] = 'insert into uur_interface_menu
    (menu_sectie, menu_categorie, menu_action, menu_display, menu_sortorder) 
    values (\'hoofd\', \'urenregistratie\', \'urenregistratie\', \'Vul de timesheet in\', 2)';
    $insert[1] = 'insert into uur_interface_menu
    (menu_sectie, menu_categorie, menu_action, menu_display, menu_sortorder) 
    values (\'hoofd\', \'inloggen\', \'inloggen\', \'Meld een (andere) gebruiker aan\', 1)';
    $insert[2] = 'insert into uur_interface_menu
    (menu_sectie, menu_categorie, menu_action, menu_display, menu_sortorder) 
    values (\'hoofd\', \'overzichten\', \'overzichten\', \'Overzichten\', 3)';
    $insert[3] = 'insert into uur_interface_menu
    (menu_sectie, menu_categorie, menu_action, menu_display, menu_sortorder) 
    values (\'hoofd\', \'management\', \'management\', \'Onderhoud aan de uren applicatie\', 4)';
    
    $insert[4] = 'insert into uur_interface_menu
    (menu_sectie, menu_categorie, menu_action, menu_display, menu_sortorder) 
    values (\'sub\', \'management\', \'project_toevoegen\', \'Voeg een project toe\', 1)';
     $insert[5] = 'insert into uur_interface_menu
    (menu_sectie, menu_categorie, menu_action, menu_display, menu_sortorder) 
    values (\'sub\', \'management\', \'project_wijzigen\', \'Projectgegevens wijzigen\', 2)';
    $insert[6] = 'insert into uur_interface_menu
    (menu_sectie, menu_categorie, menu_action, menu_display, menu_sortorder) 
    values (\'sub\', \'management\', \'gebruiker_toevoegen\', \'Voeg een gebruiker toe\', 5)';
    $insert[7] = 'insert into uur_interface_menu
    (menu_sectie, menu_categorie, menu_action, menu_display, menu_sortorder) 
    values (\'sub\', \'management\', \'gebruiker_wijzigen\', \'Wijzig een gebruiker\', 6)';
    $insert[8] = 'insert into uur_interface_menu
    (menu_sectie, menu_categorie, menu_action, menu_display, menu_sortorder) 
    values (\'sub\', \'management\', \'vakantiesaldo\', \'Opvoeren vakantiedagen saldo\', 7)';
    $insert[13] = 'insert into uur_interface_menu
    (menu_sectie, menu_categorie, menu_action, menu_display, menu_sortorder) 
    values (\'sub\', \'management\', \'bedrijf_toevoegen\', \'Voer een bedrijf op\', 8)';
    $insert[14] = 'insert into uur_interface_menu
    (menu_sectie, menu_categorie, menu_action, menu_display, menu_sortorder) 
    values (\'sub\', \'management\', \'bedrijf_wijzigen\', \'Wijzig een bedrijf\', 9)';
    $insert[15] = 'insert into uur_interface_menu
    (menu_sectie, menu_categorie, menu_action, menu_display, menu_sortorder) 
    values (\'sub\', \'management\', \'release_ongedaan\', \'Geef een timesheet weer vrij\', 10)';

    
    $insert[9] = 'insert into uur_interface_menu
    (menu_sectie, menu_categorie, menu_action, menu_display, menu_sortorder) 
    values (\'sub\', \'overzichten\', \'prognose\', \'Prognose (bedrijfsbreed)\', 1)';
    $insert[10] = 'insert into uur_interface_menu
    (menu_sectie, menu_categorie, menu_action, menu_display, menu_sortorder) 
    values (\'sub\', \'overzichten\', \'realisatie\', \'Realisatie YTD (bedrijfsbreed)\', 2)';
    $insert[11] = 'insert into uur_interface_menu
    (menu_sectie, menu_categorie, menu_action, menu_display, menu_sortorder) 
    values (\'sub\', \'overzichten\', \'vakantie\', \'Vakantie- en ziekteuren per persoon\', 3)';
    $insert[12] = 'insert into uur_interface_menu
    (menu_sectie, menu_categorie, menu_action, menu_display, menu_sortorder) 
    values (\'sub\', \'overzichten\', \'alleurencsv\', \'Alle uren per maand (csv)\', 4)';
    
    
    
    
    foreach($insert as $sqli) {
        ExecuteQuery($sqli, $db);
        }
    }



/********************************
 * Function FillKalender        *
 ********************************/
function FillKalender($db) {
    $sql = 'select coalesce(date_add(max(datum), INTERVAL 1 DAY), date_format(current_date(),\'%Y-01-01\')) as min_datum from uur_kalender;';
    $rows = ReturnData($sql, $db);
    
    $startdatum = $rows[0][0];
    $eindjaar = date("Y")+1;
    $einddatum = $eindjaar.'-12-31';
        
    if(strtotime($startdatum) <= strtotime($einddatum)) {        
        $sql = 'insert into uur_kalender (datum) values (\''.$startdatum.'\')';
        if ($db->Execute($sql) === false) {
            $result = 'Insert query levert een fout op: '.$conn->ErrorMsg(); die();       
            }
        else {
            // Vul afgeleide datumkolommen
            if(strtotime($startdatum) == strtotime($einddatum)) {
                $update = 'update uur_kalender
                            set jaar=year(datum)
                            ,	jaarmaand=((year(datum) * 100) + month(datum))
                            ,	maandnaam=concat(monthname(datum),\' \',year(datum))
                            where jaar is null';
                ExecuteQuery($update, $db);
                }
            
            // Update feestdagen
            if(strtotime($startdatum) == strtotime($einddatum)) {
                KalNieuwjaar($db);
                KalKerst($db);
                KalKoninginnedag($db);
                KalPasenPinksterenHemelvaart($db);
                }
            FillKalender($db);
            }
        }
    }


/********************************
 * Function KalNieuwjaar        *
 ********************************/
function KalNieuwjaar($db) {
    $sql = 'select datum from uur_kalender where dayofyear(datum) = 1';
    $rows = ReturnData($sql, $db);
    
    foreach($rows as $row ) {
        $update = 'update uur_kalender set feestdag = \'J\' where datum = \''.$row['datum'].'\'';
        ExecuteQuery($update, $db);
        }
    }


/********************************
 * Function KalKerst            *
 ********************************/
function KalKerst($db) {
    $sql = 'select datum from uur_kalender where month(datum) = 12 and day(datum) in (25,26)';
    $rows = ReturnData($sql, $db);
    
    foreach($rows as $row ) {
        $update = 'update uur_kalender set feestdag = \'J\' where datum = \''.$row['datum'].'\'';
        ExecuteQuery($update, $db);
        }
    }


/********************************
 * Function KalKoninginnedag    *
 ********************************/
function KalKoninginnedag($db) {
    $sql = 'select datum from uur_kalender 
        where  
        	(
        	month(datum) = 4
        	and year(datum) <= 2013
        	and (
        		(day(datum)=30 and dayofweek(datum)<> 1) 
            or  (day(datum)=29 and dayofweek(datum)=7)
        		)
			)
		or	(
			month(datum) = 4
			and year(datum) > 2013
			and (        
                (day(datum)=27 and dayofweek(datum)<> 1) 
            or  (day(datum)=26 and dayofweek(datum)=7)
            	)
            )';
    $rows = ReturnData($sql, $db);
    
    foreach($rows as $row ) {
        $update = 'update uur_kalender set feestdag = \'J\' where datum = \''.$row['datum'].'\'';
        ExecuteQuery($update, $db);
        }
    }


/*****************************************
 * Function KalPasenPinksterenHemelvaart *
 *****************************************/
function KalPasenPinksterenHemelvaart($db) {
    $sql = 'select distinct year(datum) as jaar from uur_kalender';
    $rows = ReturnData($sql, $db);
    
    foreach($rows as $row ) {
    
        $pasen = PaasDatum($row['jaar']);
        $sql2 = 'select datum from uur_kalender 
            where datum = str_to_date('.$pasen.',\'%Y%m%d\')
            or    datum = date_add(str_to_date('.$pasen.',\'%Y%m%d\'), INTERVAL 1 DAY)
            or    datum = date_add(str_to_date('.$pasen.',\'%Y%m%d\'), INTERVAL 7 WEEK)
            or    datum = date_add(date_add(str_to_date('.$pasen.',\'%Y%m%d\'), INTERVAL 7 WEEK), INTERVAL 1 DAY)
            or    datum = date_add(date_add(str_to_date('.$pasen.',\'%Y%m%d\'), INTERVAL 7 WEEK), INTERVAL -10 DAY)';
        $rows2 = ReturnData($sql2, $db);    
        
        foreach($rows2 as $row2 ) {
            $update = 'update uur_kalender set feestdag = \'J\' where datum = \''.$row2['datum'].'\'';
            ExecuteQuery($update, $db);
            }
        }
    }

/********************************
 * Function PaasDatum           *
 ********************************/
function PaasDatum($jaar) {
    $a = $jaar % 19;
    $b = floor($jaar / 100);
    $c = $jaar % 100;
    $d = floor($b / 4);
    $e = $b % 4;
    $f = floor((8 * $b + 13)/25);
    $g = floor((11 * ($b - $d - $f) - 4) / 30);
    $h = floor((7 * $a + $g + 6) / 11);
    $i = (19 * $a + ($b - $d - $f) + 15 - $h) % 29;
    $j = floor($c / 4);
    $k = $c % 4;
    $l = ((32 + 2 * $e) + 2 * $j - $k - $i) % 7;
    $maand = floor((90 + ($i + $l)) / 25);
    $dag = (19 + ($i + $l) + $maand) % 32;
    
    $pasen = $jaar*10000+$maand*100+$dag;
    
    return $pasen;
    }




/********************************
 * Function FillProjectType     *
 ********************************/
function FillProjectType($db) {
    $insert = Array();
    $insert[0] = 'insert into uur_project_type (project_type_naam) values (\'VAK\')';
    $insert[1] = 'insert into uur_project_type (project_type_naam) values (\'ZIEK\')';
    $insert[2] = 'insert into uur_project_type (project_type_naam) values (\'OVERIG\')';
    $insert[3] = 'insert into uur_project_type (project_type_naam, project_type_default) values (\'NACALCULATIE\', \'J\')';
    $insert[4] = 'insert into uur_project_type (project_type_naam) values (\'FIXED PRICE\')';
    $insert[5] = 'insert into uur_project_type (project_type_naam) values (\'ONBETAALD\')';
    $insert[6] = 'insert into uur_project_type (project_type_naam) values (\'OUDERSCHAP\')';
    $insert[7] = 'insert into uur_project_type (project_type_naam) values (\'BIJZVERLOF\')';
    
    foreach($insert as $sqli) {
        ExecuteQuery($sqli, $db);
        }
    }



/*********************************************
 * Function FillStandardProjects             *
 * Standaard projecten voor vakantie, ziekte *
 *********************************************/
function FillStandardProjects($db) {
    // 1. Haal users op
    $sql_u = 'select gebruikers_id, gebruikers_naam from uur_gebruikers';
    $rows_u = ReturnData($sql_u, $db);
    foreach($rows_u as $row_u) {
        // 2a. Voor iedere user checken of project VAK al bestaat
        $sql_vak = '
        select      pt.project_type_id
        ,           count(distinct p.project_id) as aantal 
        from        uur_project_type pt
        left join   uur_projecten p
            on      p.project_type_id = pt.project_type_id
            and     p.gebruikers_id = '.$row_u['gebruikers_id'].'
        where       pt.project_type_naam = \'VAK\'
        group by    pt.project_type_id'
        ;
        $rows_vak = ReturnData($sql_vak, $db);
        foreach($rows_vak as $row_vak) {
            if ($row_vak['aantal'] == 0) {
                // 3a. Zo niet, vullen per user.
                $insert_vak = 'insert into uur_projecten (project_code, project_naam, project_type_id, gebruikers_id)
                values (\'VAK\', \'Vakantie\', '.$row_vak['project_type_id'].', '.$row_u['gebruikers_id'].')';
                ExecuteQuery($insert_vak, $db);                
                }
            }
        
        // 2b. Voor iedere user checken of project ZIEK al bestaat
        $sql_ziek = '
        select      pt.project_type_id
        ,           count(distinct p.project_id) as aantal 
        from        uur_project_type pt
        left join   uur_projecten p
            on      p.project_type_id = pt.project_type_id
            and     p.gebruikers_id = '.$row_u['gebruikers_id'].'
        where       pt.project_type_naam = \'ZIEK\'
        group by    pt.project_type_id'
        ;
        $rows_ziek = ReturnData($sql_ziek, $db);
        foreach($rows_ziek as $row_ziek) {
            if ($row_ziek['aantal'] == 0) {
                // 3b. Zo niet, vullen per user.
                $insert_ziek = 'insert into uur_projecten (project_code, project_naam, project_type_id, gebruikers_id)
                values (\'ZIEK\', \'Ziekte\', '.$row_ziek['project_type_id'].', '.$row_u['gebruikers_id'].')';
                ExecuteQuery($insert_ziek, $db);
                }
            }
        
        }
    }






/*==============================================
  = PART 3 : Application Functions
  ==============================================*/


/********************************
 * Function AddUserDB           *
 ********************************/
function AddUserDB($db) {
    $rows = ReturnData('select count(1) as aantal from uur_gebruikers where gebruikers_inlog = \''.$_SESSION['gebruikers_inlog'].'\'',$db);
    foreach($rows as $row ) {
        if ($row['aantal'] > 0) {
            $_SESSION['feedback'] = 'Deze gebruiker bestaat al, kies een andere inlognaam';
            header("Location: index.php?action=gebruiker_toevoegen");
            exit();
            }
        else {
            //Controleren of er een geldig bedrijfs_id is ingevuld
            $sql = 'select count(1) as aantal from uur_bedrijf where bedrijf_id = '.$_SESSION['bedrijf_id'];
            $rows = ReturnData($sql,$db);
            foreach($rows as $row ) {
                if ($row['aantal'] == 0) {
                    $_SESSION['feedback'] = 'Geen geldig bedrijf gekozen';
                    header("Location: index.php?action=gebruiker_toevoegen");
                    exit();
                    }
                else {
                    $sql = 'insert into uur_gebruikers (gebruikers_naam, gebruikers_inlog, gebruikers_fte, bedrijf_id) values(\''.$_SESSION['gebruikers_naam'].'\',\''.$_SESSION['gebruikers_inlog'].'\', '.$_SESSION['gebruikers_fte'].', '.$_SESSION['bedrijf_id'].')';
                    ExecuteQuery($sql, $db);
                    $_SESSION['feedback'] = 'Gebruiker '.$_SESSION['gebruikers_naam'].' is toegevoegd';
                    
                    //Unset variables
                    $_SESSION['gebruikers_naam'] = '';
                    $_SESSION['gebruikers_inlog'] = '';
                    $_SESSION['gebruikers_fte'] = '';
                    $_SESSION['bedrijf_id'] = '';
                    }
                }
            }
        }
    } 


/********************************
 * Function UpdateUserDB        *
 ********************************/
function UpdateUserDB($db) {
    //Controleren of er een geldig bedrijfs_id is ingevuld
    $sql = 'select count(1) as aantal from uur_bedrijf where bedrijf_id = '.$_SESSION['bedrijf_id'];
    $rows = ReturnData($sql,$db);
    foreach($rows as $row ) {
        if ($row['aantal'] == 0) {
            $_SESSION['feedback'] = 'Geen geldig bedrijf gekozen';
            header("Location: index.php?action=gebruiker_wijzigen");
            exit();
            }
        else {
            if ($_SESSION['gebruikers_fte'] == '') {
                $_SESSION['gebruikers_fte'] = 0;
                }
                
            $sql = 'update uur_gebruikers set 
                    gebruikers_naam = \''.$_SESSION['gebruikers_naam'].'\'
                ,   gebruikers_actief=\''.$_SESSION['gebruikers_actief'].'\'
                ,   gebruikers_fte='.$_SESSION['gebruikers_fte'].'
                ,   bedrijf_id = '.$_SESSION['bedrijf_id'].'  
                where gebruikers_id = '.$_SESSION['gebruikers_id'];
            ExecuteQuery($sql, $db);
            }
        }
    
    //Unset variables
    $_SESSION['gebruikers_naam'] = '';
    $_SESSION['gebruikers_inlog'] = '';
    $_SESSION['gebruikers_actief'] = '';
    $_SESSION['gebruikers_id'] = '';
    $_SESSION['gebruikers_fte'] = '';
    $_SESSION['bedrijf_id'] = '';
    }



/********************************
 * Function AddBedrijfDB           *
 ********************************/
function AddBedrijfDB($db) {
    $rows = ReturnData('select count(1) as aantal from uur_bedrijf where bedrijf_naam = \''.$_SESSION['bedrijf_naam'].'\'',$db);
        foreach($rows as $row ) {
        if ($row['aantal'] > 0) {
            $_SESSION['feedback'] = 'Dit bedrijf bestaat al, kies een andere bedrijfsnaam';
            header("Location: index.php?action=bedrijf_toevoegen");
            exit();
            }
        else {
            $sql = 'insert into uur_bedrijf (bedrijf_naam, bedrijf_actief) values(\''.$_SESSION['bedrijf_naam'].'\',\'J\')';
            ExecuteQuery($sql, $db);
            $_SESSION['feedback'] = 'Bedrijf '.$_SESSION['bedrijf_naam'].' is toegevoegd';
            
            //Unset variables
            $_SESSION['bedrijf_naam'] = '';
            }
        }
    } 

/********************************
 * Function UpdateBedrijfDB     *
 ********************************/
function UpdateBedrijfDB($db) {
    //check of de gewijzigde bedrijfsnaam klopt
    $rows = ReturnData('select count(1) as aantal from uur_bedrijf where bedrijf_naam = \''.$_SESSION['bedrijf_naam'].'\' and bedrijf_id<>'.$_SESSION['bedrijf_id'],$db);
        foreach($rows as $row ) {
            if ($row['aantal'] > 0) {
                $_SESSION['feedback'] = 'Deze bedrijfsnaam wordt al gebruikt, kies een andere bedrijfsnaam';
                header("Location: index.php?action=bedrijf_wijzigen");
                exit();
                }
            }
            
    $sql = 'update uur_bedrijf set 
            bedrijf_naam = \''.$_SESSION['bedrijf_naam'].'\'
        ,   bedrijf_actief=\''.$_SESSION['bedrijf_actief'].'\'  
        where bedrijf_id = '.$_SESSION['bedrijf_id'];
    ExecuteQuery($sql, $db);
    
    //Unset variables
    $_SESSION['bedrijf_naam'] = '';
    $_SESSION['bedrijf_actief'] = '';
    $_SESSION['bedrijf_id'] = '';
    }


/********************************
 * Function AddProjectDB        *
 ********************************/
function AddProjectDB($db) {
    
    $sql = '
        insert into uur_projecten
        (
            project_naam
        ,   project_code
        ,   project_annotatie
        ,   uurtarief
        ,   gebruikers_id
        ,   project_type_id
        ,   van_kalender_id
        ,   tot_kalender_id
        ,   contracturen
        ,   klantnaam
        ,   bedrijfsonderdeel
        ,   contactpersoon
        ,   factuuradres
        ,   tussenpartij
        ,   activiteiten
        ,   factuurreferentie
        ,   procuratiehouder
        )
        VALUES
        (
            \''.$_SESSION['project_naam'].'\'
        ,   \''.$_SESSION['project_code'].'\'
        ,   \''.$_SESSION['project_annotatie'].'\'';        
    if($_SESSION['uurtarief'] > 0) {
        $sql.= ', round(replace(\''.$_SESSION['uurtarief'].'\', \',\', \'.\'),2)';
        }
    else {
        $sql.= ', null';
        } 
        
    $sql.=',   '.$_SESSION['gebruikers_id'].'
        ,   '.$_SESSION['project_type_id'].'
        ,   '.$_SESSION['van_kalender_id'].'
        ,   '.$_SESSION['tot_kalender_id'];
        
    if($_SESSION['uurtarief'] > 0) {
        $sql.=', round(replace(\''.$_SESSION['contracturen'].'\', \',\', \'.\'),2)';
        }
    else {
        $sql.= ', null';
        }
        
    $sql.=', \''.$_SESSION['klantnaam'].'\'
        ,   \''.$_SESSION['bedrijfsonderdeel'].'\'
        ,   \''.$_SESSION['contactpersoon'].'\'
        ,   \''.$_SESSION['factuuradres'].'\'
        ,   \''.$_SESSION['tussenpartij'].'\'
        ,   \''.$_SESSION['activiteiten'].'\'
        ,   \''.$_SESSION['factuurreferentie'].'\'
        ,   \''.$_SESSION['procuratiehouder'].'\'
        )';
      
    ExecuteQuery($sql, $db);
    $_SESSION['feedback'] = 'Project '.$_SESSION['project_naam'].' is toegevoegd';
    
    //unset all variables
    $_SESSION['project_naam'] = '';
    $_SESSION['project_code'] = '';
    $_SESSION['project_annotatie'] = '';
    $_SESSION['uurtarief'] = '';
    $_SESSION['gebruikers_id'] = '';
    $_SESSION['project_type_id'] = '';
    $_SESSION['van_kalender_id'] = '';
    $_SESSION['tot_kalender_id'] = '';
    $_SESSION['contracturen'] = '';
    $_SESSION['klantnaam'] = '';
    $_SESSION['bedrijfsonderdeel'] = '';
    $_SESSION['contactpersoon'] = '';
    $_SESSION['factuuradres'] = '';
    $_SESSION['tussenpartij'] = '';
    $_SESSION['activiteiten'] = '';
    $_SESSION['factuurreferentie'] = '';
    $_SESSION['procuratiehouder'] = '';
    }



/********************************
 * Function UpdateProjectDB     *
 ********************************/
function UpdateProjectDB($db) {
    if(!$_SESSION['uurtarief'] > 0) {
        $_SESSION['uurtarief'] = 0;
        }
    
    if(!$_SESSION['contracturen'] > 0) {
        $_SESSION['contracturen'] = 0;
        }    
    
    $sql = 'update uur_projecten set
                project_naam =      \''.$_SESSION['project_naam'].'\'
            ,   project_code =      \''.$_SESSION['project_code'].'\'
            ,   project_annotatie = \''.$_SESSION['project_annotatie'].'\'
            ,   gebruikers_id =     '.$_SESSION['gebruikers_id'].'
            ,   project_type_id =   '.$_SESSION['project_type_id'].'
            ,   van_kalender_id =   '.$_SESSION['van_kalender_id'].'
            ,   tot_kalender_id =   '.$_SESSION['tot_kalender_id'].'
            ,   uurtarief =         round(replace(\''.$_SESSION['uurtarief'].'\', \',\', \'.\'),2)
            ,   contracturen =      round(replace(\''.$_SESSION['contracturen'].'\', \',\', \'.\'),2)
            ,   klantnaam =         \''.$_SESSION['klantnaam'].'\'
            ,   bedrijfsonderdeel = \''.$_SESSION['bedrijfsonderdeel'].'\'
            ,   contactpersoon =    \''.$_SESSION['contactpersoon'].'\'
            ,   factuuradres =      \''.$_SESSION['factuuradres'].'\'
            ,   tussenpartij =      \''.$_SESSION['tussenpartij'].'\'
            ,   activiteiten =      \''.$_SESSION['activiteiten'].'\'
            ,   factuurreferentie = \''.$_SESSION['factuurreferentie'].'\'
            ,   procuratiehouder =  \''.$_SESSION['procuratiehouder'].'\'
            where
                project_id = '.$_SESSION['project_id'];
//echo $sql; die();
    ExecuteQuery($sql, $db);
    
    //unset all variables
    $_SESSION['project_naam'] = '';
    $_SESSION['project_code'] = '';
    $_SESSION['project_annotatie'] = '';
    $_SESSION['uurtarief'] = '';
    $_SESSION['gebruikers_id'] = '';
    $_SESSION['project_type_id'] = '';
    $_SESSION['van_kalender_id'] = '';
    $_SESSION['tot_kalender_id'] = '';
    $_SESSION['project_id'] = '';
    $_SESSION['contracturen'] = '';
    $_SESSION['klantnaam'] = '';
    $_SESSION['bedrijfsonderdeel'] = '';
    $_SESSION['contactpersoon'] = '';
    $_SESSION['factuuradres'] = '';
    $_SESSION['tussenpartij'] = '';
    $_SESSION['activiteiten'] = '';
    $_SESSION['factuurreferentie'] = '';
    $_SESSION['procuratiehouder'] = '';
    
    $_SESSION['feedback'] = 'Projectgegevens zijn aangepast';
    }



/********************************
 * Function ReverseReleaseDB         *
 ********************************/
function ReverseReleaseDB($db) {
	if(array_key_exists('gebruikers_id', $_SESSION) and array_key_exists('reverse_release', $_SESSION)) {
		$sql = 'update	uur_maandstaat
				set		released=\'N\'
				where	gebruikers_id = '.$_SESSION[gebruikers_id].'
				and 	kalender_id in (select kalender_id from uur_kalender where jaarmaand = \''.$_SESSION[reverse_release].'\')';
		
		ExecuteQuery($sql, $db);
		$_SESSION['feedback'] = 'Timesheet is vrijgegeven';
		}
	else {
		$_SESSION['feedback'] = 'Er ging iets fout, geen actie ondernomen';
		}
	}



/********************************
 * Function TimesheetDB         *
 ********************************/
function TimesheetDB($db) {
    //1. cycle door de $_SESSIONS en pak alleen de 'u-' session eruit
    foreach($_SESSION as $key => $value) {
        $value = str_replace(',','.',$value);
        if (substr($key,0,2) == 'u-' and is_numeric($value) and $value>=0) {
            $keys = explode('-',$key);
            //2. test of de waarde bestaat, zo ja --> update, zo nee --> insert
            if($value==0) {
                $sql = 'delete from uur_maandstaat
                        where project_id = '.$keys[2].'
                        and   gebruikers_id = '.$keys[3].'
                        and   kalender_id = '.$keys[1];
                
                ExecuteQuery($sql, $db);
                }
            else {
                if(array_key_exists('release', $_SESSION)) {
                    $sql =  'INSERT INTO uur_maandstaat (project_id,gebruikers_id,kalender_id,aantal_uur, released) 
                             VALUES ('.$keys[2].','.$keys[3].','.$keys[1].',round('.$value.',2), \'J\')
                            ON DUPLICATE KEY UPDATE aantal_uur='.$value.', released=\'J\'';
                    }
                else {
                    $sql =  'INSERT INTO uur_maandstaat (project_id,gebruikers_id,kalender_id,aantal_uur) 
                             VALUES ('.$keys[2].','.$keys[3].','.$keys[1].',round('.$value.',2))
                            ON DUPLICATE KEY UPDATE aantal_uur=round('.$value.',2)';
                    }

                ExecuteQuery($sql, $db);
                }
            };
        }
    $_SESSION['feedback'] = 'Timesheet is opgeslagen';
    }




/********************************
 * Function VakantieSaldoDB     *
 ********************************/
function VakantieSaldoDB($db) {

    //1. cycle door de $_SESSIONS en pak alleen de 'saldo_dagen' session eruit
    foreach($_SESSION as $key => $value) {
        $value = str_replace(',','.',$value);
        if (substr($key,0,11) == 'saldo_dagen' and is_numeric($value) and $value>=0) {
            $keys = explode('-',$key);
            //2. test of de waarde bestaat, zo ja --> update, zo nee --> insert
            if($value==0 and array_key_exists('opslaan_vakantiedagen', $_SESSION)) {
                $sql = 'delete from uur_saldo_vakantie
                        where gebruikers_id = '.$keys[1];
                
                ExecuteQuery($sql, $db);
                }
            else {
                $sql =  'INSERT INTO uur_saldo_vakantie (gebruikers_id,jaar,saldo_dagen) 
                         VALUES ('.$keys[1].','.$keys[2].', round(replace(\''.$value.'\', \',\', \'.\'),2))
                        ON DUPLICATE KEY UPDATE saldo_dagen=round(replace(\''.$value.'\', \',\', \'.\'),2)';
                ExecuteQuery($sql, $db);
                $_SESSION['feedback'] = 'Vakantiedagen saldo is opgeslagen';
                }
            }
        }

    }
?>