<?php


class Isler extends CI_Controller{
    function __construct()
    {
        parent::__construct();
        $this->load->model('Isler_model');
        $this->load->model('Revize_model');
		$this->load->model('Cmuhasebe_model');

		
		
		// Giris Yapılmamış ise logine gönderiyoruz..
		$userid =  $this->session->userdata('userid');
        if(empty($userid))     
        {    
		redirect('login');
        }
		
		// Yetkili Degil  ise Anasayfa  gönderiyoruz..
		// Calisanlar Giremez
		
		$userid =  $this->session->userdata('useryetki');
		if($userid!=1)     
        {    
		redirect('anasayfa');
        }
    } 

	
    function index()
    {
		
		$data['isler'] = $this->db->query("SELECT * FROM  isler WHERE  onay!=3 ORDER BY acil ASC")->result_array();
		
		//anlık kontrol aktifleştirme
        $data['sayfaad'] = 'admin_isler';
        $data['anlikkontrol'] = 1;
       
        $data['_view'] = 'isler/index';
        $this->load->view('layouts/main',$data);
    }
	function tamam()
    {

		$data['isler'] = $this->db->query("SELECT * FROM  isler WHERE onay=3 ORDER BY id DESC")->result_array();

		//anlık kontrol aktifleştirme
        $data['sayfaad'] = 'admin_tamam_isler';
        $data['anlikkontrol'] = 1;


        $data['_view'] = 'isler/tamam';
        $this->load->view('layouts/main',$data);
    }
	function donenisler()
    {
		
		$data['isler'] = $this->db->query("SELECT * FROM  isler WHERE dosyadonen!='' AND onay!=3 ORDER BY acil ASC")->result_array();

	   //anlık kontrol aktifleştirme
        $data['sayfaad'] = 'admin_donen_isler';
        $data['anlikkontrol'] = 1;
		
        $data['_view'] = 'isler/donenis';
        $this->load->view('layouts/main',$data);
    }
		
	function detay($id)
    {
		
        $data['isler'] = $this->Isler_model->get_isler($id);
		
		$this->load->model('Calisan_model');
		$data['calisan'] = $this->Calisan_model->get_calisan($data['isler']['yapan']);
		$data['ekleyen'] = $this->Calisan_model->get_calisan($data['isler']['ekleyen']);
		
		$this->load->model('Musteri_model');
		$data['musteri'] = $this->Musteri_model->get_musteri($data['isler']['musteri']);
		
		
        $data['_view'] = 'isler/detay';
        $this->load->view('layouts/main',$data);
   
   }






    /*
     * Adding a new isler
     */

    function add()
    {   
	// Yetkili Degil  ise Anasayfa  gönderiyoruz..
		// Calisanlar Giremez
		
		$userid =  $this->session->userdata('useryetki');
		if($userid!=1)     
        {    
		redirect('anasayfa');
        }
	
        if(isset($_POST) && count($_POST) > 0)     
        {   
			
				//bildirim ekliyoruz
				$yapan=$this->input->post('yapan');
				$musteriid=$this->input->post('musteri');
				$istur=$this->input->post('istur');
				
				$this->bildirim_ekle($yapan,$musteriid,$istur);			
				
				// Yüklediğimiz Dosyaların İsimlerini Düzenliyoruz
				$dosya=$this->input->post('dosyagiden');
				
				$musteri=$this->input->post('musteri');
				$ekleyen=$this->session->userdata('userid');
				$istur=$this->input->post('istur');
				
				$yeniad=dosyaadver($musteri,$istur,$ekleyen);
				
				if(isset($dosya))
				{
						$dosyalar=json_decode($dosya);
						$yenidosyalar;
						foreach($dosyalar as $d)
							{ 
									
									$uzanti = explode(".", $d);
									$yenifull=$yeniad.'-'.uniqid().'.'.$uzanti[1];
									//yeniden isimlendiriyoruz
									rename('uploads/'.$d, 'uploads/'.$yenifull);
							
									$yenidosyalar[]=$yenifull;	
									
							};
							
					$yenidosyalar=json_encode($yenidosyalar);
				}
				
	
            $params = array(
				'musteri' => $this->input->post('musteri'),
				'yapan' => $this->input->post('yapan'),
				'istur' => $this->input->post('istur'),
				'aciklama' => $this->input->post('aciklama'),
				'fiyat' => $this->input->post('fiyat'),
				'bastarih' => $this->input->post('bastarih'),
				'acil' => $this->input->post('acil'),
				'dosyagiden' => $yenidosyalar,
				'onay' => $this->input->post('onay'),
				'ekleyen' => $this->session->userdata('userid'),
            );
            
            $isler_id = $this->Isler_model->add_isler($params);
			redirect('isler/index');
			//echo site_url('isler/index');/* json_encode($dosyalar);*/
        }
        else
        {
			$this->load->model('Musteri_model');
			$data['all_musteri'] = $this->Musteri_model->get_all_musteri();

			$this->load->model('Calisan_model');
			$data['all_calisan'] = $this->Calisan_model->get_all_calisan();

			$this->load->model('Calisantur_model');
			$data['all_calisantur'] = $this->Calisantur_model->get_all_calisantur();
            
            $data['_view'] = 'isler/add';
            $this->load->view('layouts/main',$data);
        }
    }  
	
    /*
     * Editing a isler
     */
    function edit($id)
    {   

		
        // check if the isler exists before trying to edit it
        $data['isler'] = $this->Isler_model->get_isler($id);
        
        if(isset($data['isler']['id']))
        {
            if(isset($_POST) && count($_POST) > 0)     
            {   
		
				
				$dosya=$this->input->post('dosyagiden');
				if($dosya!="00")
				{		
						//Eski Dosyayı Bulup Yeni Dosyalarla Birleştiriyoruz
								 
						$this->db->where('id', $id);
						$query = $this->db->get('isler')->row_array();
						$eskidosyaadi= $query['dosyagiden'];
						if($eskidosyaadi!="null" &&  $eskidosyaadi!=null  && isset($eskidosyaadi) && $eskidosyaadi!="")
						{
							// eger eskiden dosya varsa yeni dosyaları ekliyoruz
							$yenidosya=json_decode($dosya);
							$eskidosyalar=json_decode($eskidosyaadi);
							$dosyabaski=array_merge($eskidosyalar,$yenidosya);
							$dosyabaski=json_encode($dosyabaski);
						}else{
							// eger eskiden dosya yoksa direk yazdırıyoruz
							$dosyabaski=$dosya;
						};
						
						
						
						
						$dosya=$dosyabaski;
				
						$musteri=$this->input->post('musteri');
						$ekleyen=$this->session->userdata('userid');
						$istur=$this->input->post('istur');
						
						$yeniad=dosyaadver($musteri,$istur,$ekleyen);
						
						if(isset($dosya))
						{
								$dosyalar=json_decode($dosya);
								$yenidosyalar;
								foreach($dosyalar as $d)
									{ 
											
											$uzanti = explode(".", $d);
											$yenifull=$yeniad.'-'.uniqid().'.'.$uzanti[1];
											//yeniden isimlendiriyoruz
											rename('uploads/'.$d, 'uploads/'.$yenifull);
									
											$yenidosyalar[]=$yenifull;	
											
									};
									
							$yenidosyalar=json_encode($yenidosyalar);
						}
						
						
						
					$params = array(
					'musteri' => $this->input->post('musteri'),
					'yapan' => $this->input->post('yapan'),
					'istur' => $this->input->post('istur'),
					'aciklama' => $this->input->post('aciklama'),
					'fiyat' => $this->input->post('fiyat'),
					'acil' => $this->input->post('acil'),
					'onay' => $this->input->post('onay'),
					'dosyagiden' =>  $yenidosyalar,
					);
					
				}else{
					
					$params = array(
					'musteri' => $this->input->post('musteri'),
					'yapan' => $this->input->post('yapan'),
					'istur' => $this->input->post('istur'),
					'aciklama' => $this->input->post('aciklama'),
					'fiyat' => $this->input->post('fiyat'),
					'onay' => $this->input->post('onay'),
					'acil' => $this->input->post('acil'),
			
					);
					
				}
				
				//onaylanmışsa muhasebeye gönderiyoruz
				if($this->input->post('onay')==3)
				{
				$isid=$data['isler']['id'];
				$yapan=$this->input->post('yapan');
				$fiyat=$this->input->post('fiyat');
				
				$this->calisanmuhasebegonder($isid,$yapan,$fiyat);
						
							
				}
	
	
				
                $this->Isler_model->update_isler($id,$params);            
                redirect('isler/index');
				//echo site_url('isler/index');
            }
            else
            {
				$this->load->model('Musteri_model');
				$data['all_musteri'] = $this->Musteri_model->get_all_musteri();

				$this->load->model('Calisan_model');
				$data['all_calisan'] = $this->Calisan_model->get_all_calisan();

				$this->load->model('Calisantur_model');
				$data['all_calisantur'] = $this->Calisantur_model->get_all_calisantur();

                $data['_view'] = 'isler/edit';
                $this->load->view('layouts/main',$data);
            }
        }
        else
            show_error('The isler you are trying to edit does not exist.');
    } 


/*
     * dönenişlerden onaylamayı yapıyoruz
     */
    function onay($id)
    {   

		
        // check if the isler exists before trying to edit it
		$this->load->model('Isler_model');
        $data['isler'] = $this->Isler_model->get_isler($id);
        
        if(isset($data['isler']['id']))
        {
          
				//bildirim ekliyoruz
				
				$this->bildirim_ekle2($id);	
	
	
					$params = array(
					'onay' => 3,
					);
	
                $this->Isler_model->update_isler($id,$params);    


				
				$isid=$data['isler']['id'];
				$yapan=$data['isler']['yapan'];
				$fiyat=$data['isler']['fiyat'];
				
				$this->calisanmuhasebegonder($isid,$yapan,$fiyat);
				
				
                redirect('isler/donenisler');
          
		  
         
        }
        else
            show_error('The isler you are trying to edit does not exist.');
    } 




    /*
     * Deleting isler
     */
    function remove($id)
    {
		// Yetkili Degil  ise Anasayfa  gönderiyoruz..
		// Calisanlar Giremez
		
		$userid =  $this->session->userdata('useryetki');
		if($userid!=1)     
        {    
		redirect('anasayfa');
        }
		
        $isler = $this->Isler_model->get_isler($id);

        // check if the isler exists before trying to delete it
        if(isset($isler['id']))
        {
						//Eski Dosyayı Bulup Siliyoruz		 Giden Dosylar
						$this->db->where('id', $id);
						$query = $this->db->get('isler')->row_array();
						$eskidosyaadi= $query['dosyagiden'];
						if(isset($eskidosyaadi))
						{
							$dosyalar=json_decode($eskidosyaadi);
								foreach($dosyalar as $d){ 
									unlink('uploads/'.$d);
								};	
						};
						
						//Eski Dosyayı Bulup Siliyoruz		 Gelen Dosylar
						$this->db->where('id', $id);
						$query = $this->db->get('isler')->row_array();
						$eskidosyaadi= $query['dosyagelen'];
						if(isset($eskidosyaadi))
						{
							$dosyalar=json_decode($eskidosyaadi);
								foreach($dosyalar as $d){ 
									unlink('uploads/'.$d);
								};	
						};
						
            $this->Isler_model->delete_isler($id);
            redirect('isler/index');
        }
        else
            show_error('The isler you are trying to delete does not exist.');
    }
	//İşteki giden dosyaları silme
    function gidendosyasil()
    {
	$isid=$this->uri->segment(3);	
	$silinecekdosya=$this->uri->segment(4);	
	
	//Eski Dosyayı çekiyoruz							 
	$this->db->where('id', $isid);
	$query = $this->db->get('isler')->row_array();
	$eskidosyaadi= $query['dosyagiden'];
		if(isset($eskidosyaadi))
		{
				$dosyalar=json_decode($eskidosyaadi);
				$yenidosyalar;
				foreach($dosyalar as $d)
					{ 
						if($d==$silinecekdosya)
						{
							unlink('uploads/'.$d);	
						}else{
							
							$yenidosyalar[]=$d;	
						}	
					};	
		};
		
		$yenidosyalarbaski=json_encode($yenidosyalar);
		$params = array(
					'dosyagiden' => $yenidosyalarbaski,
		);
		$this->Isler_model->update_isler($isid,$params);  		
        redirect('isler/edit/'.$isid); 
	}
	

	function bildirim_ekle($yapan,$musteriid,$istur)
    {  
	

								// Bildirim ekliyoruz..
								// kime bölümü 0 ise calisandaki iş grubuna bildirim atar
								// kime bölümü 1 ise calisandaki kişiye bilidirim atar
								// kime bölümü 2 ise tüm çalışanlara bildirim atar 
								
								// iş eklendiginde çalışana veya çalışanlara bildirim atıyoruz
								
								if($yapan==null)
								{
								
								
								$this->load->model('Musteri_model'); 
								$musteriad = $this->Musteri_model->get_musteri_ad($musteriid);
								$musterilogo = $this->Musteri_model->get_musteri_logo($musteriid);
								$musteriad = ekgetir($musteriad);
								$bildirim = array(
									'kime' => 0,
									'calisan' => $istur,
									'icon' => $musterilogo,
									'bildirim' => $musteriad. ' yeni işi eklendi.',
									'tarih' => date("d.m.Y  H:i"),
									'yon' => 'cisler/havuz',
									'gor' => 0,
								);
								}else{
									
							
								$this->load->model('Musteri_model'); 
								$musteriad = $this->Musteri_model->get_musteri_ad($musteriid);
								$musterilogo = $this->Musteri_model->get_musteri_logo($musteriid);
								$musteriad = ekgetir($musteriad);
								$bildirim = array(
									'kime' => 1,
									'calisan' => $yapan,
									'icon' => $musterilogo,
									'bildirim' => $musteriad . ' işi sana eklendi. İyi Çalışmalar',
									'tarih' => date("d.m.Y  H:i"),
									'yon' => 'cisler/bende',
									'gor' => 0,
									'okun' => 0,
								);
									
								}
								$this->load->model('Bildirim_model');
								$this->Bildirim_model->add_bildirim($bildirim);
	
	
	
	}
	function bildirim_ekle2($isid)
    {  
	

								// Bildirim ekliyoruz..
								// kime bölümü 0 ise calisandaki iş grubuna bildirim atar
								// kime bölümü 1 ise calisandaki kişiye bilidirim atar
								// kime bölümü 2 ise tüm çalışanlara bildirim atar 
								
								//iş onaylandıgında çalışana iş onaylandı bildirimi atıyoruz
								
								// iş bilgilerini alıyoruz
								$this->load->model('Isler_model'); 
								$is = $this->Isler_model->get_isler($isid);
								
								
								
							
								
								//müşteri Adını Alıyoruz
								$this->load->model('Musteri_model'); 
								$musteriad = $this->Musteri_model->get_musteri_ad($is['musteri']);
								$musterilogo = $this->Musteri_model->get_musteri_logo($is['musteri']);
								$musteriad = ekgetir($musteriad);
								
								$bildirim = array(
									'kime' => 1,
									'calisan' => $is['yapan'],
									'icon' => $musterilogo,
									'bildirim' => $musteriad. '  işi onaylandı',
									'tarih' => date("d.m.Y  H:i"),
									'yon' => 'cisler/tamamlanan',
									'gor' => 0,
									'okun' => 0,
								);
								
									
								
								$this->load->model('Bildirim_model');
								$this->Bildirim_model->add_bildirim($bildirim);
	}
	
	
	
	function calisanmuhasebegonder($isid,$yapan,$fiyat)
	{
	
				// check if the cmuhasebe exists before trying to edit it
				$data['cmuhasebe'] = $this->Cmuhasebe_model->get_kontrol_is_cmuhasebe($isid);
				
				$tarih=date('Y-m-d');
				
				if(isset($data['cmuhasebe']['id']))
				{
						  
							$params = array(
								'isler' => $isid,
								'calisan' => $yapan,
								'fiyat' => $fiyat,
								'tarih' => $tarih,
							);

							$this->Cmuhasebe_model->update_cmuhasebe($id,$params);            
					
				}
					else{

						$params = array(
						'isler' => $isid,
						'calisan' => $yapan,
						'fiyat' => $fiyat,
						'tarih' => $tarih,
						'durum' => 0,
					);
					
					$cmuhasebe_id = $this->Cmuhasebe_model->add_cmuhasebe($params);
					}
	
	}
	
	
	
	function dosyayeniadgetir()
	{
		
	 $musteri=$this->uri->segment(3);	 
	 $istur=$this->uri->segment(4);	 
	 $calisan=$this->uri->segment(5);	 

		echo dosyaadver($musteri,$istur,$calisan);
		
	}
	
	
	
	
	
	
	
	function dropyukle()
	{
		
	      $data = array();
	      if (!empty($_FILES['file']['name'])) {
	          $filesCount = count($_FILES['file']['name']);
	          for ($i = 0; $i < $filesCount; $i++) {
	              $_FILES['uploadFile']['name'] = str_replace(",","_",$_FILES['file']['name'][$i]);
	              $_FILES['uploadFile']['type'] = $_FILES['file']['type'][$i];
	              $_FILES['uploadFile']['tmp_name'] = $_FILES['file']['tmp_name'][$i];
	              $_FILES['uploadFile']['error'] = $_FILES['file']['error'][$i];
	              $_FILES['uploadFile']['size'] = $_FILES['file']['size'][$i];
	              //Directory where files will be uploaded
	              $uploadPath = 'uploads/';
	              $config['upload_path'] = $uploadPath;
				  $config['overwrite'] = FALSE; //üzerine yazma
	              // Specifying the file formats that are supported.
	              $config['allowed_types'] = 'gif|jpg|jpeg|png|pdf|rar|zip|mp4|mov|avi|doc|txt';
				  $config['max_size']	= '1000000000000000';
				  $config['file_name']   = md5(date("d.m.Y  H:i").$i);
				  
	              $this->load->library('upload', $config);
	              $this->upload->initialize($config);
	              if ($this->upload->do_upload('uploadFile')) {
	                  $fileData = $this->upload->data();
	                  $uploadData[$i]['file_name'] = $fileData['file_name'];
	              }
	          }
				if (!empty($uploadData)) {
	              $list=array();
	              foreach ($uploadData as $value) {
	                  array_push($list, $value['file_name']);
	              }
				
	        echo json_encode($list);
	      	}
	    }
	}
	
}