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

class Student_Staz extends CI_Controller {

        #################################################################################
        #                               Pożyteczne pchełki ;)
        #################################################################################    
    public function __construct() {
        parent::__construct();
        $this->user_data = $this->ion_auth->check_user_privilege(array('Firma', 'Admin', 'Student'));
        $this->load->model(array('Student_Staz_model', 'Wspolne_model'));
        $this->breadcrumbs->push('Start', '/');
        $this->company_id = $this->ion_auth->user()->row()->id;
        $this->company = $this->ion_auth->user()->row()->first_name.' '.$this->ion_auth->user()->row()->last_name;
        $this->base_url = base_url() . '/Student_Staz/' . $this->router->fetch_method();
    }
 
    public function pre($str){
        echo '<pre>';
        print_r( $str );
        echo '</pre>';
    }
    

    
    
    public function wyslijMaila($dokogo, $temat, $tresc, $odkogo = 'no-reply@whitehill.eu', $odKogoName = 'White Hill', $dokogocc = false, $dokogobcc = false ){
        $this->load->library('email');

        $config['protocol'] = 'smtp';
        $config['smtp_host'] = 'pro7.linuxpl.com';
        $config['smtp_port'] = '587'; // 8025, 587 and 25 can also be used. Use Port 465 for SSL.
        $config['smtp_crypto'] = 'tls';
        $config['smtp_user'] = 'tests@sospc4.pro-linuxpl.com';
        $config['smtp_pass'] = 'Cc9tL2PlFoZdTbXHpzZF';
        $config['charset'] = 'utf-8';
        $config['mailtype'] = 'html';
        $config['newline'] = "\r\n";

        $this->email->initialize($config);        
        
        $this->email->from($odkogo, $odKogoName);
        $this->email->to($dokogo);
        if($dokogocc){
            $this->email->cc($dokogocc);    
        }
        if($dokogobcc){
            $this->email->bcc($dokogobcc);    
        }

        $this->email->subject($temat);
        $this->email->message($tresc);

        $wynik = $this->email->send();
        return $wynik;
        
    }
    
    
    
        #################################################################################
        #                               INDEX
        #################################################################################
    
    
    public function index($komunikatStr = false)
	{
		//$this->load->model('Student_Staz_model');
        //$this->load->model('Wspolne_model');
        //$this->pre($_SESSION);
        $data['active'] = 'Student';
        $data['userid'] = $user_id = $this->ion_auth->user()->row()->id;
        //echo $data['userid'].'<-- <br>';
		$this->breadcrumbs->push('Start', '/');
        $this->breadcrumbs->push('Lista Firm', '/Student_Staz');
		$data['breadcrumbs'] = $this->breadcrumbs->show();


        
        if($komunikatStr == false){
            $data['komunikat'] = false;    
        }
        else{
            if($komunikatStr == "Ok"){
                $data['komunikat'] = true;
                $data['komunikatTyp'] = 'success';
                $data['komunikatTresc'] = 'Dane zostały pomyślnie uaktualnione.';     
            }
            else{
                $data['komunikat'] = true;
                $data['komunikatTyp'] = 'danger';
                $data['komunikatTresc'] = 'Błąd w zapisywaniu danych!'; 
            }
            
        } 
        

        //$this->pre($_SESSION);
 		$data['buttonKontraktujStaz'] = array(
			'class'		=> 'btn btn-primary btn-block margTop20 zapiszKontraktacje display-none',
			'name'		=> 'zapiszKontraktacjeStazu',
            'value'     => 'Kontraktuj staż',
		);  
        
        
        $lista = $this->Student_Staz_model->pobierzListeKierunki();
        
        if($lista){
            $data['dropdownKierunkiStudent'] = $lista;    
        }
        else{
            $data['dropdownKierunkiStudent'][0] = 'Wybierz kierunek kształcenia';
        }
        

		$this->load->view('Base_header', $data);
		$this->load->view('Student_Staz/Student_staz_widok', $data);
		$this->load->view('Base_footer', $data);
	}
    
        #################################################################################
        #                               ZAPISZ NA STAŻ
        #################################################################################

    public function ZapiszNaStaz($idProjekt, $maxMiejsc = NULL){
        $data['userid'] = $user_id = $this->ion_auth->user()->row()->id;
        $statusik = $this->Student_Staz_model->zapiszNaStaz($idProjekt, $data['userid'],$maxMiejsc);
        if($statusik){
            redirect(base_url('Student_Staz/index/Ok') ); 
        }
        else{
            redirect(base_url('Student_Staz/index/Fail') ); 
        }
        
    }
    
        #################################################################################
        #                               WIDOK STAŻU
        #################################################################################
    
    
    public function SzczegolyStazu($idProjektu, $komunikatStr = false)
	{

        //$this->pre($_SESSION);
        $data['active'] = 'Student';
        $data['logged'] = $this->ion_auth->logged_in();

        $data['idProjektu'] = $idProjektu;
        $data['nazwaProjektu'] = $this->Student_Staz_model->pobierzNazweProjektu($idProjektu);
        $data['mojeZadania'] = $this->Student_Staz_model->pobierzListeZadan($idProjektu);
        
        /////////////// dane z wykresu /////////////////////////////////

        foreach($data['mojeZadania'] as $kl => $dx){
            if(strlen($dx['task_name'])>10){
                $taskNazwa = substr($dx['task_name'], 0, 10);
                $taskNazwa.="...";
            }
            else{
                $taskNazwa = $dx['task_name'];
            }
            $datyx[$kl]['taskNazwa'] = $taskNazwa; 
            $datyx[$kl]['dataStart'] = $dx['date_start'];     
            $datyx[$kl]['dataStop'] = $dx['date_stop'];
        }
        
        
        if( !isset($datyx) ){
            $datyx = array();
        }
        $data['daneWykres'] = $this->daneJS($datyx);
        
        ///////////////////////////////////////////////////////////////
        
        
        
        //$this->pre($data['mojeZadania']);
        
		$this->breadcrumbs->push('Student', '/Student');
        $this->breadcrumbs->push('Moje Staże', '/Student_Staz/MojeStaze');
        $this->breadcrumbs->push('Szczegóły stażu', '/Student_Staz/SzczegolyStazu');
		$data['breadcrumbs'] = $this->breadcrumbs->show();

        // po wejściu w konkretny staż
            if($this->input->post('zapiszKontraktacjeStazu') ){
            //$this->pre($_POST);
            //$posty = $this->input->post('zapiszKontraktacjeStazu'); // id ucznia
            $statusik = $this->Student_Staz_model->utworzStaz($IdPropozycji, $user_id);
                
            if($statusik == -2){
                redirect( base_url('Student_Staz/MojeStaze/Ok2') );   
            }
            elseif( is_array($statusik)  ){
                
                $data['dane'] = $statusik[0];
                $emailUcznia = $statusik[0]['emailUsera'];
                $emailPracodawca = $statusik[0]['emailP'];
                $temat = 'Powiadomienie od WHITE HILL ';
                $trescStudent = $this->load->view('emails/Student_ZapisNaStaz_widok', $data,TRUE);
                $trescPracodawca = $this->load->view('emails/pracodawca_ZapisNaStaz_widok', $data, TRUE);
                // wyslij maile

                //$status1 = $this-> wyslijMaila($emailUcznia, $temat, $trescStudent );
                //$status2 = $this-> wyslijMaila($emailPracodawca, $temat, $trescPracodawca );
                $status1 = true;
                $status2 = true;



                if($status1 && $status2){
                    redirect(base_url('Student_Staz/MojeStaze/Ok') );      
                }
                else{
                    if(!$status1 && $status2){
                        redirect(base_url('Student_Staz/MojeStaze/ErrorStudent') );
                    }
                    if($status1 && !$status2){
                        redirect(base_url('Student_Staz/MojeStaze/ErrorPracodawca') );
                    }
                    if(!$status1 && !$status2){
                        redirect(base_url('Student_Staz/MojeStaze/ErrorBoth') );
                    }
                }  
                

            }
            else{
              echo '<div class="alert alert-danger">Błąd w zapisywaniu stażu!</div>';
            }

        } // koniec post
        
        
        if($this->input->post('wstecz') ){
            redirect( base_url('Student_Staz/') );
        }
        
        
        if($komunikatStr == false){
            $data['komunikat'] = false;    
        }
        else{
            $data['komunikat'] = true;
            $data['komunikatTyp'] = 'success';
            $data['komunikatTresc'] = 'Dane zostały pomyślnie uaktualnione.'; 
        }
        

		$this->load->view('Base_header', $data);
		$this->load->view('Student_Staz/Student_staz_szczegoly_widok', $data);
		$this->load->view('Base_footer', $data);
	}   
    
    
        #################################################################################
        #                               UTWÓRZ STAŻ
        #################################################################################       
    
    public function MojeStaze( $komunikatStr = false){
 		$this->load->model('Student_Staz_model');
        //$this->pre($_SESSION);
        $data['active'] = 'Student';
        $data['logged'] = $this->ion_auth->logged_in();
        $data['userid'] = $user_id = $this->ion_auth->user()->row()->id;


        $this->breadcrumbs->push('Student', '/Student');
        $this->breadcrumbs->push('Status staży', '/Student_Staz/MojeStaze');
		$data['breadcrumbs'] = $this->breadcrumbs->show();
    if($komunikatStr != false){
        $data['komunikat'] = true;
        if($komunikatStr == 'Ok2'){
            $data['komunikatTyp'] = 'warning';
            $data['komunikatTresc'] = 'Nie możesz dodawać dwa razy tych samych zadań! Powtarzające się zadania zostały usunięte...';
        }
        else{
             $data['komunikatTyp'] = 'success';
            $data['komunikatTresc'] = 'Dane zostały pomyślnie zmienione.';       
        }
        
    }
    else{
      $data['komunikat'] = false;
    }
    
    


        
        $data['mojeProjekty'] = $this->Student_Staz_model->pobierzMojeProjekty($data['userid']);
        
        
        //$data['listaKontraktacji'] = $this->Student_Staz_model->pobierzMojeStaze($data['userid']);
        //$this->pre($data['listaKontraktacji']);
        //$data['kontraktacje'] = $this->Student_Staz_model->get_kontraktacje($user_id);
       
		$this->load->view('Base_header', $data);
		$this->load->view('Student_Staz/Student_mojeStaze_widok', $data);
		$this->load->view('Base_footer', $data);        
    }
    
    
        #################################################################################
        #                               EDYTUJ WIDOK STAZU
        #################################################################################  
  public function edytujWidokStazu($idPropozycji, $komunikatStr = false)
	{
		$this->load->model('Student_Staz_model');
        $this->load->model('Wspolne_model');
        //$this->pre($_SESSION);
        $data['active'] = 'Student';
        $data['logged'] = $this->ion_auth->logged_in();
        $data['logUser'] = $userx = $this->get_user(); 
        $data['imie_nazwisko'] = $userx->first_name." ".$userx->last_name;
        $data['user_level'] = $this->get_user_level();
        $data['userid'] = $user_id = $this->ion_auth->user()->row()->id;
        $data['idPropozycji'] = $idPropozycji;

		$this->breadcrumbs->push('Start', '/StronaGlowna');
		$this->breadcrumbs->push('Uczeń', '/Student');
        $this->breadcrumbs->push('Mój Staż', '/Student_Staz');
		$data['breadcrumbs'] = $this->breadcrumbs->show();

        // po wejściu w konkretny staż
        if($this->input->post('zmienProgramStazu') ){
            
            //$this->pre($_POST);
            
            //exit;
            $posty = $this->input->post();
            
            //$idPropozycji = false;
            $idPropozycji = $this->Student_Staz_model->edytujPropozycje($user_id, $posty, $idPropozycji);
            if(is_numeric($idPropozycji) ){
                if($idPropozycji != -1){
                    redirect( base_url('Student_Staz/EdytujWidokStazu/'.$idPropozycji) );       
                }
                else{
                    $data['komunikat'] = true;
                    $data['komunikatTyp'] = 'danger';
                    $data['komunikatTresc'] = 'Błąd podczas zapisywania szczegółów propozycji stażu!';                       
                }
                
            }
            else{
                $data['komunikat'] = true;
                $data['komunikatTyp'] = 'danger';
                $data['komunikatTresc'] = 'Błąd podczas zapisywania propozycji stażu!';               
            }

            
            
        } // koniec post
        
        
        
        if($komunikatStr == false){
            $data['komunikat'] = false;    
        }
        else{
            $data['komunikat'] = true;
            $data['komunikatTyp'] = 'success';
            $data['komunikatTresc'] = 'Dane zostały pomyślnie uaktualnione.'; 
        } 
        
        $data['poleFirstName'] = array(
            'name' => 'nazwaFirstName',
  			'class'		=> 'form-control pad20 inpNiebieski',
			'placeholder' => 'Imię',
			'required'	=> 'required',
			'value'		=> $userx->first_name          
        );

        $data['poleLastName'] = array(
            'name' => 'nazwaLastName',
  			'class'		=> 'form-control pad20 inpNiebieski',
			'placeholder' => 'Nazwisko',
			'required'	=> 'required',
			'value'		=> $userx->last_name          
        );
        
        $data['dropdownKwalifikacje'] = $this->Wspolne_model->pobierzListeSelect('kwalifikacje', false, false, false, true);
        $data['dropdownZawody'] = $this->Wspolne_model->pobierzListeSelect('zawody', false, false, false, true);
        
        
        
        //$this->pre($_SESSION);
 		$data['buttonKontraktujStaz'] = array(
			'class'		=> 'btn btn-primary btn-block margTop20 zapiszKontraktacje display-none',
			'name'		=> 'zapiszKontraktacjeStazu',
            'value'     => 'Kontraktuj staż',
		);  
        
        $data['dropdownPracodawcy'][0] = 'Wybierz pracodawcę';
        $data['dropdownPracodawcy'] = $this->Student_Staz_model->pobierzListePracodawcow();
        
        //$this->pre($data['dropdownStaz']);
        $data['listaZadanStart'] = array();
        $propSzczegoly = $data['propozycjeSzczegoly'] = $this->Student_Staz_model->getPropozycjeSzczegoly($idPropozycji);
        
        if($data['propozycjeSzczegoly']){
          foreach($propSzczegoly as $klucz => $zads){
            $tablica_zadan[$klucz] = $zads['idZadania'];
          }
          $licz_szczegoly = count($propSzczegoly);
          
        }
        else{
            $tablica_zadan = array();
            $licz_szczegoly = 0;
        }
        
        //$data['propozycje'] = $this->Student_Staz_model->getPropozycje($user_id);
        //$this->pre($data['propozycjeSzczegoly']);
        ////////////////////////////////// content z js //////////////////////////////////////////////
                                                                                        // bez jsona
          $datax = $this->PobierzListeZadan($propSzczegoly[0]['idZawody'],false);
        
        
                $licz_f = 0;
                $licz_z = count($datax['zadania']);
                for($k=0;$k<$licz_f;$k++){
                    $dropdownOpcje .= '<option value="'.$datax['firmy'][$k]['id'].'">'.$datax['firmy'][$k]['value'].'</option>';    
                }
                
                
                $str = '<table class="table table-striped">';
                    $str .= '<tr><th colspan="2">Stanowisko: '.$datax['nazwaZawodu'].'</th><th class="text-center" colspan="2"></th></tr>';
                    $str .= '<tr><th>Zaznacz</th><th>Zadanie Zawodowe</th>';
                    $str .= '<th class="text-center">Firma</th><th class="text-center">Liczba godzin</th></tr>';


                $sumuj_godziny = 0;
                
                for($i=0;$i<$licz_z; $i++){
                    $str .= '<tr class="linia_'.$i.'"><input type="hidden" name="zadania_'.$i.'" value="'.$datax['zadania'][$i]['idZadania'].'">';
                    if($datax['zadania'][$i]['firmy'][0]['idUsers'] != -1 ){
                      $userek = $datax['zadania'][$i]['idZadania'];
                      $znalazl = 0;
                      for($x=0;$x<$licz_szczegoly;$x++){
                          if( $userek == $propSzczegoly[$x]['idZadania'] ){
                            $str .= '<td class="col-md-1"><input data-wiersz="'.$i.'" type="checkbox" name="zaznacz_'.$i.'" checked="true" /></td>';
                            $idUserSel = $propSzczegoly[$x]['idUser'];
                            $godzinySel = $propSzczegoly[$x]['godziny'];
                            $znalazl = -1;
                            break;
                          }
                          else{
                            $znalazl++;
                          }                  
                      }
                      
                      if($znalazl > 0 ){
                        $str .= '<td class="col-md-1"><input data-wiersz="'.$i.'" type="checkbox" name="zaznacz_'.$i.'" /></td>';
                        $idUserSel = 0;
                        $godzinySel = '';
                      }
     
                      
                    }
                    else{
                      $str .= '<td class="col-md-1"></td>';
                    }
                    
                    $str .= '<td class="col-md-5">'.$datax['zadania'][$i]['nazwaZadania'].'</td>';
                    //str += '<td class="text-center col-md-1 godzinyZeroWiersz_'+i+'"></td>';
                    //sessionStorage.setItem("GodzinyWiersz_"+i, data['zadania'][i]['godziny']);
                    //sessionStorage.setItem("GodzinyWiersz_"+i, data['zadania'][i]['testy']);

                    $str .= '<td class="text-center col-md-4" data-wiersz="'.$i.'"><input type="hidden" name="godzinyh_'.$i.'" value="'.$godzinySel.'">';
                    $str .= '<select data-wiersz="'.$i.'" class="form-control inpNiebieski" name="firma_'.$i.'">';
                    //console.log("i="+i+" id_users="+data['zadania'][i]['firmy'][0]['idUsers']);
                    
                    if($datax['zadania'][$i]['firmy'][0]['idUsers'] != -1 ){
                        $liczx = $datax['zadania'][$i]['firmy'];
                        $licz_f = count($liczx);
                        $str .= '<option data-godziny_pracodawca="0" value="0">Wybierz pracodawcę</option>';                        
                        for($j=0;$j<$licz_f;$j++){
                            if($idUserSel == $datax['zadania'][$i]['firmy'][$j]['idUsers']){
                              $str .= '<option data-godziny_pracodawca="'.$datax['zadania'][$i]['firmy'][$j]['godziny'].'" value="'.$datax['zadania'][$i]['firmy'][$j]['idUsers'].'" selected="selected">'.$datax['zadania'][$i]['firmy'][$j]['nazwaUsers'].' ('.$datax['zadania'][$i]['firmy'][$j]['godziny'].' h)</option>';                            
                            }
                            else{
                              $str .= '<option data-godziny_pracodawca="'.$datax['zadania'][$i]['firmy'][$j]['godziny'].'" value="'.$datax['zadania'][$i]['firmy'][$j]['idUsers'].'">'.$datax['zadania'][$i]['firmy'][$j]['nazwaUsers'].' ('.$datax['zadania'][$i]['firmy'][$j]['godziny'].' h)</option>';
                            }
                        
                            
                                
                        }
                        
                    }
                    else{
                        $str .= '<option data-godziny_pracodawca="" value="-1">Brak firm</option>';
                    }

                    
                    $str .= '</select></td>';
                    if($datax['zadania'][$i]['firmy'][0]['idUsers'] != -1 ){
                      $sumuj_godziny += $godzinySel;
                      $str .= '<td class="text-center col-md-1"><input disabled="disabled" class="inpNiebieski form-control" type="text" name="godziny_'.$i.'" data-wiersz="'.$i.'" data-maxgodz="" value="'.$godzinySel.'" /></td>';
                    }
                    else{
                      $str .= '<td class="text-center col-md-1"><input disabled="disabled" class="inpNiebieski form-control" type="text" name="godziny_'.$i.'" data-wiersz="'.$i.'" data-maxgodz="" value="" /></td>';                    
                    }
                    $str .= '</tr>';    
                   
                }
                $str .= '<tr><td colspan="2">';
                $str .= '<input type="hidden" name="max_zadan" value="'.$licz_z.'"></td><td class="text-right">Czas stażu</td><td class="lacznieGodzin">'.$sumuj_godziny.'</td></tr>';
                $str .= '<tr><td colspan="4" class="uwagiStaz"></td></tr>';
                 $str .= '<tr><td colspan="4"><input class="submitNiebieski" type="submit" name="zmienProgramStazu" value="Zmień program stażu" /></td></tr>';
                $str .= '</table>';
        
               $data['startoweZadania'] = $str; 
        /////////////////////////// koniec js ////////////////////////////////////////////////////////////
        
        

		$this->load->view('Base_header', $data);
		$this->load->view('Student_Staz/Student_staz_propozycja_edytuj_widok', $data);
		$this->load->view('Base_footer', $data);
	}
    
    
    #################################################################################
    #                               Oceń staż
    #################################################################################  
    
    // Pan Bóg w niebie za ucho wytarga za to co tu zrobiłem...
    
    private function OcenStazForm($data = array()) {

        if(!isset($data['description']) ){
            $data['description'] = '';
        }
    
        $form_data['description'] = array(
            'name' => 'description',
            'type' => 'text',
            'value' => set_value('description') != "" ? set_value('description') : $data['description'],
            'class' => 'form-control',
            'placeholder' => 'Opis'
        );
        
        if(!isset($data['rate'])){
            $data['rate'] = null;
        }
        
        $form_data['rate_update'] = $data['rate'];
        
        
        
        return $form_data;
    }
    
    
    public function OcenStaz($project_id) {
        $this->load->model('company_projects_model');
        
        $this->breadcrumbs->push('Student', '/');
        $this->breadcrumbs->push('Moje Staże', '/Student_Staz/MojeStaze/');
        $this->breadcrumbs->push('Oceń Staż', '/Student_Staz/MojeStaze/OcenStaz/'.$project_id);
        
        if (!is_numeric($project_id)){
            $this->session->set_flashdata('error', 'Nie masz uprawnień - project');
            redirect('/');
        }
            
        $user_id = $this->company_id;
        //$this->pre($user_id);
        if (!is_numeric($user_id)){
            $this->session->set_flashdata('error', 'Nie masz uprawnień - userid');
            redirect('/');
        }
            

            
        if (!empty($this->input->post())) {
            //$this->form_validation->set_rules('description', 'Opis', 'trim|required|min_length[3]|max_length[1000]');
            $this->form_validation->set_rules('rate', 'Uzasadnienie oceny', 'numeric');
            if ($this->form_validation->run() == FALSE) {
                $this->session->set_flashdata('error', 'Popraw formularz.<br/>' . validation_errors());
            } else {
                $check_exists = $this->company_projects_model->check_rate_row_user($user_id, $project_id);
                
                //$this->pre($check_exists);
                //exit;
                
                if (is_numeric($project_id) and $check_exists['id'] > 0 ) {
                    $project_rate_id = $check_exists['id'];
                    $update = $this->company_projects_model->update_rate_user($project_id, $this->input->post(), $project_rate_id );
                    if ($update)
                        $this->session->set_flashdata('message', 'Ocena stażu została zmieniona');
                    else
                        $this->session->set_flashdata('error', 'Ocena stażu nie został zmieniona');
                    redirect('Student_Staz/MojeStaze/');
                }else {
                    $add = $this->company_projects_model->insert_rate_user($user_id, $this->input->post(), $project_id);
                    if ($add)
                        $this->session->set_flashdata('message', 'Ocena stażu została dodana');
                    else
                        $this->session->set_flashdata('error', 'Ocena stażu nie została dodana');
                    redirect('Student_Staz/MojeStaze/');
                }
            }
        }            
            
        if (is_numeric($project_id)) {
            $rate_data = $this->company_projects_model->get_project_rates_user($project_id);
            
        } else{
            $rate_data = array();
        }
        
        //$this->pre($rate_data);
            

        $data = $this->OcenStazForm($rate_data);
        $data['id'] = is_numeric($project_id) ? $project_id : null;

        $this->load->view('Base_header');
        $this->load->view('projects/form_rate_project', $data);
        $this->load->view('Base_footer'); 
            
            

    }
    
    
    
    
      public function Raport($project_id, $task_id, $rodzaj = '') {
        $this->load->model('company_projects_model');
        
        $this->breadcrumbs->push('Student', '/');
        $this->breadcrumbs->push('Moje Staże', '/Student_Staz/MojeStaze/');
        $this->breadcrumbs->push('Zadania', '/Student_Staz/SzczegolyStazu/'.$project_id);
        
        if($rodzaj == 1){
            $rodzajx = 'start';
            $this->breadcrumbs->push('Raport startowy zadania', '/Student_Staz/Raport/');    
        }
        elseif($rodzaj == 2){
            $rodzajx = 'finish';
            $this->breadcrumbs->push('Raport końcowy zadania', '/Student_Staz/Raport/');  
        }
        else{
            $this->breadcrumbs->push('Raport zadania', '/Student_Staz/Raport/'); 
        }
        

            
        if (!is_numeric($project_id)){
            $this->session->set_flashdata('error', 'Nie masz uprawnień - project');
            //redirect('/');
        }
          
        if (!is_numeric($task_id)){
            $this->session->set_flashdata('error', 'Nie masz uprawnień - tasks');
            //redirect('/');
        }          
            
        $user_id = $this->company_id;

            

            
        if (!empty($this->input->post())) {
            $this->form_validation->set_rules('description', 'Opis', 'trim|required|min_length[3]');
            //$this->form_validation->set_rules('rate', 'Uzasadnienie oceny', 'numeric');
            if ($this->form_validation->run() == FALSE) {
                $this->session->set_flashdata('error', 'Popraw formularz.<br/>' . validation_errors());
            } else {
                $check_exists = $this->Student_Staz_model->check_task_report_user($user_id, $project_id, $task_id, $rodzaj);
                
                //$this->pre($check_exists);
                //exit;
                
                if (is_numeric($project_id) and $check_exists['id'] > 0 ) {
                    $report_id = $check_exists['id'];
                    $update = $this->Student_Staz_model->update_report_user($rodzaj,  $this->input->post(), $report_id);
                    if ($update)
                        $this->session->set_flashdata('message', 'Ocena stażu została zmieniona');
                    else
                        $this->session->set_flashdata('error', 'Ocena stażu nie został zmieniona');
                    //redirect('Student_Staz/SzczegolyStazu/'.$project_id);
                }else {
                    $add = $this->Student_Staz_model->insert_report_user($user_id, $project_id, $task_id, $rodzaj, $this->input->post() );
                    if ($add)
                        $this->session->set_flashdata('message', 'Ocena stażu została dodana');
                    else
                        $this->session->set_flashdata('error', 'Ocena stażu nie została dodana');
                    redirect('Student_Staz/SzczegolyStazu/'.$project_id);
                }
            }
        }            
            
        if (is_numeric($task_id)) {
                $raport_data = $this->Student_Staz_model->pobierz_raport_usera($project_id, $task_id, $user_id, $rodzaj);
            //$this->pre($raport_data);
            
        } else{
            $raport_data['description'] = '';
        }
          
        if(!isset($raport_data['description'])){
            $raport_data['description'] = '';
        }  
        
        $data['nazwaZadania'] = $this->Student_Staz_model->pobierzNazweZadania($task_id);  
        
        $data['form_description'] = array(
            'name' => 'description',
            'type' => 'text',
            'value' => base64_decode($raport_data['description']),
            'class' => 'form-control',
            'placeholder' => 'Wpisz tutaj treść raportu'
        );            
        
        $data['id'] = is_numeric($project_id) ? $project_id : null;
        $data['rodzaj'] = $rodzaj;

          //$this->pre($data);
          
        $this->load->view('Base_header');
        $this->load->view('Student_Staz/Student_staz_raport_widok', $data);
        $this->load->view('Base_footer'); 
            
            

    }  
    
    
       public function daneJS($tabDanych){
        // pobierz max i min z całego  zakresu
        $minLimit = array();
        $maxLimit = array();
        // na czas unixowy
        if($tabDanych){
            foreach($tabDanych as $dane0){
                $tabLimits[] = strtotime($dane0['dataStart']);
                $tabLimits[] = strtotime($dane0['dataStop']);
            }

            $minLimitNum = min($tabLimits);

            $minLimitDate = date("Y-m-d", $minLimitNum);
            $minLimit = explode( "-", $minLimitDate );

            $maxLimitNum = max($tabLimits);
            $maxLimitDate =  date("Y-m-d", $maxLimitNum);
            $maxLimit = explode( "-", $maxLimitDate);

            $str= '';
            $dataTaski = '';
            $textjs = '';

            //$this->pre($minLimitNum);

            foreach($tabDanych as $dane){   
                $dataTaski .= '"'.$dane['taskNazwa'].'",';
                $taskJS = $dane['taskNazwa'];
                $dataStartNum = strtotime($dane['dataStart']);
                $dataStopNum = strtotime($dane['dataStop']);
                $rozwal_start = explode("-", $dane['dataStart']);
                $rozwal_stop = explode("-", $dane['dataStop']);

                $str = 'label: "'.$taskJS.'",data: [{x:new Date('.$rozwal_start[0].', '.$rozwal_start[1].', '.$rozwal_start[2].'),y:"'.$taskJS.'"},{x:new Date('.$rozwal_stop[0].', '.$rozwal_stop[1].', '.$rozwal_stop[2].'),y:"'.$taskJS.'"}],';



                $textjs .= '{'.$str.'
                    backgroundColor: "#73c6a8",
                    borderColor: "#73c6a8",
                    pointBorderWidth: 5,
                    borderWidth: 10,
                    fill: false},';

            }
        
        }
        else{
            $dataTaski = '';  
            $textjs = '';
            $minLimit[0] = 0; $minLimit[1] = 0; $minLimit[2] = 0; 
            $maxLimit[0] = 0; $maxLimit[1] = 0; $maxLimit[2] = 0; 
        }
        
        $calosc = '<script>
                    var ctx = document.getElementById("myChart");
                    var myChart = new Chart(ctx, {
                        type: "line",
                        data: {
                            labels: ["Start",'.$dataTaski.',"Koniec"],
                            datasets: [
                                '.$textjs.'
                                      ]
                        },
                        options: {
                            legend: {
                                display: false,
                            },        
                            scales: {
                                xAxes: [{
                                    type: "time",
                                    time: {
                                        displayFormats: {
                                            millisecond: "YYYY-MM-DD",
                                            second: "YYYY-MM-DD",
                                            minute: "YYYY-MM-DD",
                                            hour: "YYYY-MM-DD",
                                            day: "DD-MM",
                                            week: "DD-MM",
                                            month: "YYYY-MM",
                                            year: "YYYY"  
                                        },
                                        minUnit: "day",
                                        min: new Date('.$minLimit[0].','.$minLimit[1].','.$minLimit[2].'),
                                        max: new Date('.$maxLimit[0].','.$maxLimit[1].','.$maxLimit[2].')
                                    }
                                }],
                                yAxes: [{
                                    type: "category",
                                    ticks: {
                                        max: 25,
                                        min: 0,
                                        stepSize: 1
                                    }
                                }]            
                            }
                        }
                    });
                    </script>';
        
       return $calosc; 

    }









    
    
    
    
    
    
    
    
    
    
        #################################################################################
        #                               AJAX
        #################################################################################   
    
    public function PobierzListeZadan($ide,$json = true)
	{
        if( !is_numeric($ide) ){
            $ide = 0;
            $str = 'error';
            
        }
        else{
            //print_r($_SESSION);
                   
            $this->load->model('Student_Staz_model');
            //$this->load->helper('form');
            //$firmy = $this->Student_Staz_model->pobierzFirmy($ide,$_SESSION['user_id']); // idZawody
            $username = $this->Student_Staz_model->pobierzUsera($_SESSION['user_id']);
            
            //foreach($firmy as $kl=>$danex){
            //    $firmy[$kl]['email'] = base64_encode($danex['email']);
            //}
            //
            //$this->pre($firmy);
            
            $zadaniaZawodowe = $this->Student_Staz_model->pobierzZadaniaCzas($ide);
            $nazwaZawodu = $this->Student_Staz_model->pobierzNazweZawodu($ide);    


            $tablica['user_id'] = $_SESSION['user_id'];
            $tablica['username'] = $username[0]['username'];
            //$tablica['username_test'] = base64_encode($username[0]['email']);
            if(!$nazwaZawodu ){
               $nazwaZawodu[0]['nazwa'] = '#';
            }
            $tablica['nazwaZawodu'] = $nazwaZawodu[0]['nazwa'];    
            $tablica['zadania'] = $zadaniaZawodowe;
            //$tablica['firmy'] = $firmy;

        } // koniec else
        
        if($json){
          echo json_encode($tablica);  
        }
        else{
          return $tablica;
        }
        
	}
    
  //=================================================================================== 
    
    public function WyslijKontraktacje(){
        if( !$_POST ){
            exit('Nie wolno!');
        }
        //print_r($_POST);
        $max_zad = $_POST['max_zadan'];
        $tablica = array();
        $user_ide = $_POST['user_id'];
        $staz_ide = $_POST['staz_id'];
        if( !is_numeric($max_zad) ){ 
            $max_zad = 0;
            echo 'error_zero';
        }
        else{
            
            $this->load->model('Student_Staz_model');    
            //print_r($_POST);
            for($i=0;$i<$max_zad;$i++){
                $tablica['idHarmo'][$i] = $_POST['tablica_danych']['idHarmo_'.$i];    
                $tablica['idFirmy'][$i] = $_POST['tablica_danych']['idFirma_'.$i];
                $tablica['godziny'][$i] = $_POST['tablica_danych']['godziny_'.$i];
                $tablica['email'][$i] = base64_decode($_POST['tablica_danych']['testy_'.$i]);
                $tablica['user_id'] = $_POST['tablica_danych']['user_id'];
                $tablica['username'] = $_POST['tablica_danych']['username'];
                $tablica['username_email'] = base64_decode($_POST['tablica_danych']['username_test']);
            }
            
            $dodajKontraktacje = $this->Student_Staz_model->dodajKontraktacje($user_ide, $staz_ide, $tablica);
            if($dodajKontraktacje == -1){
                echo 'error_user_exist';
            }
            elseif($dodajKontraktacje == 1){
                echo 'success';
            }
            elseif($dodajKontraktacje == 0){
                echo 'error_database';
            }
        }

        
    }
    
 
   

public function UsunPropozycje($idProp){
    $dane = $this->Student_Staz_model->usunPropozycje($idProp);
    redirect(base_url('Student_Staz/') ); 
}  

    
##################################################################################    
#                                     AJAX
##################################################################################
    
public function AjaxPobierzFirmyStaz($idKierunki){
    $dane = $this->Student_Staz_model->AjaxPobierzStazeFirmy($idKierunki);
    if(!$dane){
         $dane['error'] = 'fail';
     }

     echo json_encode($dane);
}  
    
public function AjaxPobierzZadaniaProjektu($idProjekt){
    $dane = $this->Student_Staz_model->AjaxPobierzZadaniaProjektu($idProjekt);
    if(!$dane){
         $dane['error'] = 'fail';
     }

     echo json_encode($dane);    
}
    
    
    
 public function SprawdzStazePracodawcy($idPracodawcy,$idUcznia){
     $dane = $this->Student_Staz_model->pobierzStazeZadania($idPracodawcy, $idUcznia);
     if(!$dane){
         $dane['error'] = 'fail';
     }

     echo json_encode($dane);
 }   
    
public function SprawdzStazePodzadania($idZadanie){
    $dane = $this->Student_Staz_model->pobierzStazePodzadania($idZadanie);
     if(!$dane){
         $dane['error'] = 'fail';
     }

     echo json_encode($dane);
}
  
public function PobierzEgzaminDlaZadania($idZadanie){
    $dane = $this->Student_Staz_model->pobierzEgazminDlaZadania($idZadanie);
     if(!$dane){
         $dane['error'] = 'fail';
     }
    else{
        foreach($dane as $klucz => $egz){
            $odp = unserialize($egz['odpowiedzi']);
            $dane[$klucz]['odpowiedzi_array'] = $odp;  
        }
    }

     echo json_encode($dane);    
}
    
    
public function SprawdzPropozycjeSzczegoly($idProp){
    $dane = $this->Student_Staz_model->getPropozycjeAjax($idProp);
}    
    
    
public function AjaxPobierzSzczegolyZadania($idZadania){
    $dane = $this->Student_Staz_model->AjaxPobierzSzczegolyZadania($idZadania);
     if(!$dane){
         $dane['error'] = 'fail';
     }

     echo json_encode($dane);
}
    

public function AjaxPobierzSzczegolyStazu($idStazu){
    $dane = $this->Student_Staz_model->AjaxPobierzSzczegolyStazu($idStazu);
     if(!$dane){
         $dane['error'] = 'fail';
     }

     echo json_encode($dane);
}    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
} // koniec klasy
