<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Student_model extends CI_Model {
    public function __construct() {
        parent::__construct();
        $this->load->database();
    }

    // SPRAWDŹ CZY ELEMENT ISTNIEJE W TABELI:
    function has($table, $column, $value) {
        $this->db->where($column,$value);
        if ($this->db->get($table)->num_rows() > 0){
            return true;
        }
        else{
            return false;
        }
    }

    function pobierzUseraAddit($id_user){
        return $this->db->query('SELECT * FROM users_szczegoly  WHERE id_users='.$id_user)->result_array();
    }
    
    function podmienAddit($posty){
        $zap = "SELECT id FROM users_szczegoly WHERE id_users=".$posty['id_users'];
        $wynik = $this->db->query($zap)->result_array();
        if(!$wynik){
           $wynik_konc = $this->db->insert('users_szczegoly', $posty); 
        }
        else{
            $this->db->where('id', $wynik[0]['id']);
            $wynik_konc = $this->db->update('users_szczegoly', $posty); 
        }
        return $wynik_konc;
        
    }
    
    
    
    
    
    
    
    
    ///////////////////// - stare ----------------------------------------
    
    
    function pobierzElementJeden($idStaz,$idElement){

       $zap = "SELECT he.id, s.nazwa as nazwaStaze, z.nazwa as nazwaZawody, zz.nazwa as nazwaZadania, pz.nazwa as nazwaPodzadania FROM harmonogramy_elementy he, staze s, staze_elementy se, zawody z, zadania_zawodowe zz, podzadania_zawodowe pz
       WHERE z.id = he.id_zawody 
       AND zz.id = he.id_zadania_zawodowe
       AND pz.id = he.id_podzadania_zawodowe 
       AND s.id = se.id_staze 
       AND se.id_elementy = he.id 
       AND  he.id=".$idElement."
       AND s.id=".$idStaz;


   
    $wyniki = $this->db->query($zap)->result_array();
       
    //echo $zap;      
        
    return $wyniki;
}
    
    
    function pobierzElementy($ideStazu){
    $this->db->select('id_elementy');
    $this->db->where('id_staze', $ideStazu);
    $wynik0 = $this->db->get('staze_elementy')->result_array();

    //print_r($wynik0);
    if(!empty($wynik0[0]) ){
        

    
       $zap = "SELECT he.*, z.nazwa as nazwaZawody, zz.nazwa as nazwaZadania, pz.nazwa as nazwaPodzadania FROM harmonogramy_elementy he 
       LEFT JOIN zawody z ON z.id = he.id_zawody 
       LEFT JOIN zadania_zawodowe zz ON zz.id = he.id_zadania_zawodowe
       LEFT JOIN podzadania_zawodowe pz ON pz.id = he.id_podzadania_zawodowe";
    $or = " WHERE ";

    foreach($wynik0 as $dane){
        $or .= "he.id=".$dane['id_elementy']." OR ";
    }
    $or = substr($or, 0, -4);
    
    $zapkonc = $zap.$or." ORDER BY he.id";
        //echo $zapkonc;    
    $wyniki = $this->db->query($zapkonc)->result_array();
       
    //echo $zap;
        
        
        
    }
    else{
        //echo 'puste';
        $wyniki = array();
    }        
        
    return $wyniki;
}
    
    function dodajOceneStazu($idStazu, $user, $ocena, $komentarz){
        $dane = array(
            'id_staze' => $idStazu,
            'id_users' => $user,
            'id_zawody' => 0,
            'id_zadania_zawodowe' => 0,
            'id_podzadania_zawodowe' => 0,
            'merytoryka' => $ocena,
            'trafnosc' => $ocena,
            'atmosfera' => $ocena,
            'wsparcie' => $ocena,
            'komentarz' => $komentarz, 
        );    
        if($this->db->insert('staze_oceny', $dane)){
            return true;   
        }
        else{
            return false;
        }

    }
    
    
    function dodajOcenePodzadania($idStaz, $idElement, $user, $tablica_ocen){
        
        $this->db->select('id');
        $this->db->where('id_staze', $idStaz);
        $this->db->where('id_elementy', $idElement);
        $this->db->where('id_users', $user);
        $wynik0 = $this->db->get('zadania_oceny')->result_array();
        
        if( is_numeric($wynik0[0]['id']) ){
            return -1;
        }
        else{
            $dane = array(
                'id_staze' => $idStaz,
                'id_elementy' => $idElement,
                'id_users' => $user,
                'kompleksowosc' => $tablica_ocen[1],
                'zgodnosc' => $tablica_ocen[2],
                'atmosfera' => $tablica_ocen[3],
                'opiekun' => $tablica_ocen[4],
                'ocena_zadan' => $tablica_ocen[5], 
            );    
            if($this->db->insert('zadania_oceny', $dane)){
                return true;   
            }
            else{
                return false;
            }            
        }
        
        
    }
    
    
    
       function dodajOcenePracodawcy($idOcenianego, $user, $ocena, $komentarz){
        $dane = array(
            'id_users' => $idOcenianego,
            'id_oceniajacy' => $user,
            'ocena' => $ocena,
            'komentarz' => $komentarz, 
        );    
        if($this->db->insert('users_oceny', $dane)){
            return true;   
        }
        else{
            return false;
        }

    } 
    
    

    function pobierzSelectNieocenione($tabela) {

        
        $zap = "SELECT s.id, s.nazwa FROM staze s, staze_oceny so WHERE s.id != so.id_staze ";
        $tablica = $this->db->query($zap)->result_array();
        $tablica2 = array();

            if($zero_tez){
                $tablica2[ 0 ] = 'Wybierz jedną z opcji';
            }
            foreach($tablica as $el ){
                $tablica2[ $el['id'] ] = $el['nazwa'];
            }            

        return $tablica2;
    }

function sprawdzUseraStaz($idStaz,$idUser){
    $zap = "SELECT so.id FROM staze_oceny so WHERE id_staze =".$idStaz." AND id_users=".$idUser." ";
    $wynik = $this->db->query($zap)->result_array();
        //print_r($wynik);
    if(!empty($wynik[0]['id']) ){
        return 'fail';
    }
    else{
        return 'ok';
    }
}
    
    

function pobierzMojeOceny($idUsera){
    $zap = "SELECT s.nazwa as nazwaStazu, so.* FROM staze s, staze_oceny so WHERE so.id_staze = s.id AND so.id_users =".$idUsera." ORDER BY so.id ASC";
    return $this->db->query($zap)->result_array();
}
    
    
 
function pobierzMojeOcenyPracodawcow($idUsera){ // chodzi o oceniajacego usera
    $zap = " SELECT u.username, u.first_name, u.last_name, uo.ocena, uo.komentarz FROM users_oceny uo, users u WHERE uo.id_users = u.id AND uo.id_oceniajacy =".$idUsera." ORDER BY uo.id ASC";
    return $this->db->query($zap)->result_array();
}     
     
    
    
    // do selecta
function pobierzListePracodawcow(){
    $zap = "SELECT u.id, u.username, u.first_name, u.last_name FROM users u, users_groups ug, groups g WHERE g.name = 'pracodawca' AND g.id = ug.group_id AND u.id = ug.user_id";
    $wynik = $this->db->query($zap)->result_array();
    $licz = 0;
    $zwroc[ 0 ] = 'Wybierz jedną z opcji';
    foreach($wynik as $dane){
        $zwroc[$dane['id'] ] = $dane['first_name']." ".$dane['last_name']." (".$dane['username'].")";
        $licz++;    
    }
    return $zwroc;
}
    
    
    
    
function sprawdzOcenyPracodawcy($idMentor){
    $zap = "SELECT uo.id FROM users_oceny uo, users_groups ug, groups g, users u 
    WHERE 
    ug.group_id = g.id AND
    ug.user_id = u.id AND
    uo.id_users = u.id AND
    g.name = 'pracodawca'     
    AND  uo.id_users =".$idMentor;
    $wynik = $this->db->query($zap)->result_array();
        //print_r($wynik);
    if(!empty($wynik[0]['id']) ){
        return 'fail';
    }
    else{
        return 'ok';
    }    
}    
    


    function PobierzNazwePliku($ide){
        $zap = "SELECT plik FROM portfolio WHERE id=".$ide;
        $baza = $this->db->query($zap);
        return $baza->result_array();        
    }
    
    function UsunPlikZBazy($ide){
        $this->db->where('id', $ide);
        if($this->db->delete('portfolio')){
            return true;
        }
        else{
            return false;
        }
        
    }
    
   function pobierzPliki(){
       $zap = "SELECT p.*, s.nazwa as nazwaStazu 
	FROM portfolio p, staze s WHERE s.id = p.id_staze

       ";
       $baza = $this->db->query($zap);
       return $baza->result_array();
   }



    
    function uploadPortfolio($idStaz, $user, $nazwaDokumentu, $nazwaPliku){
        $this->db->set( array( 'id_staze' => $idStaz, 'id_users'=> $user, 'nazwa' => $nazwaDokumentu, 'plik' => $nazwaPliku, ) );
        if($this->db->insert('portfolio')){
            return true;    
        }
        else{
            return false;
        }

   }
    

function pobierzOcenione($lastOpened, $user){
    $zap = "SELECT id_elementy FROM zadania_oceny WHERE id_staze=".$lastOpened." AND id_users=".$user." ";
    $wynik = $this->db->query($zap)->result_array();
    if( $wynik ){
        foreach( $wynik as $kl => $dane ){
           $tab[$kl] = $dane['id_elementy'];    
        }
    }
    else{
        $tab = array();
    }
    return $tab;
}
    
    function pobierzRankingPracodawcow($sortuj){
        $dozwolone = array('sum_k', 'sum_z', 'sum_a', 'sum_o','sum_oz');
        if( !in_array($sortuj, $dozwolone) ){
            $sortuj = 'sum_k';
        }
        $zap = 'SELECT u.username, u.email, u.first_name, u.company,  u.last_name, sum(zo.kompleksowosc) as sum_k, sum(zo.zgodnosc) as sum_z, sum(zo.atmosfera) as sum_a, sum(zo.opiekun) as sum_o, 
sum(zo.ocena_zadan) as sum_oz FROM `zadania_oceny` zo LEFT JOIN staze_pracodawcy sp ON zo.id_staze = sp.id_staze LEFT JOIN users u ON sp.id_users = u.id GROUP BY u.username ASC ORDER BY '.$sortuj.' DESC';
        $baza = $this->db->query($zap);
        return $baza->result_array();        

    }    



} // koniec klasy




















