<?php namespace App\Http\Controllers;

use App\Models\Berbunganhpt;
use Illuminate\Http\Request;
use Illuminate\Pagination\LengthAwarePaginator as Paginator;
use Validator, Input, Redirect ; 


class BerbunganhptController extends Controller {

	protected $layout = "layouts.main";
	protected $data = array();	
	public $module = 'berbunganhpt';
	static $per_page	= '50';

	public function __construct()
	{
		
		parent::__construct();
		$this->model = new Berbunganhpt();
		$this->info = $this->model->makeInfo( $this->module);
		$this->access = array();
	
		$this->data = array_merge(array(
			'pageTitle'	=> 	$this->info['title'],
			'pageNote'	=>  $this->info['note'],
			'pageModule'=> 'berbunganhpt',
			'return'	=> self::returnUrl()
			
		),$this->data);


		
	}

	public function index( Request $request )
	{
		
		// Make Sure users Logged 
		if(!\Auth::check()) 
			return redirect('user/login')->with('status', 'error')->with('message','You are not login');
		$filter = '';
			$filter = ' where 0=0 ';

			if ($request->has('id_lahan') && $request->input('id_lahan') != '') {
				$idLahan = $request->input('id_lahan');
				$filter .= " AND id_lahan = '{$idLahan}'";
				
			}
			if(\Session::get('gid') > 2){
					$filter .= " AND kode_kebun = '" . substr(\Session::get('fid'), 0, 4) . "'";
				}
			$params = array(
				'params'	=> $filter,
				'limit' => 10
			);
		

		$this->grab( $request, $params) ;
		
		foreach ($this->data['rowData'] as &$row) {
			$data = \DB::table('tx_tebu_berbunga')
				->select('luas_berbunga', 'tanggal')
				->where('lahan_id', $row->id_lahan)
				->orderBy('tanggal', 'desc')
				->first();

			$data2 = \DB::table('tx_serangan_hpt')
				->select('luas_serangan', 'tanggal')
				->where('lahan_id', $row->id_lahan)
				->orderBy('tanggal', 'desc')
				->first();



			// $data4 = \DB::table('tx_morfologi')
			// 	->where('lahan_id', $row->id_lahan)
			// 	->first();

			$countFoto = \DB::table('tx_morfologi')
				->where('lahan_id', $row->id_lahan)
				->whereNotNull('foto')
				->count();

			$mspetak = \DB::table('q_protas_morfologi')
				->where('lahan_id', $row->id_lahan)
				->first();	

			if(\Session::get('tahuntanam') == '2425'){
				$data3 = \DB::table('data_meja_tebu')
				->selectRaw('SUM(ha_tertebang) as luas_terbakar')
				->where('terbakar', 1)
				->where('no_petak', $row->id_lahan)
				->first();
				$row->ha_sulam = $data->luas_berbunga ?? 0;
				$row->ha_pupuk_1 = $data2->luas_serangan ?? 0;
				$row->ha_pupuk_2 = $data3->luas_terbakar ?? 0;
				$row->ha_bumbun_1 = $data->tanggal ?? null;
				$row->ha_bumbun_2 = '<button class="btn btn-sm btn-primary" type="button" onclick="SximoModal(`tebuberbunga/create?id_lahan='.$row->id_lahan.'`,`Input Tebu Berbunga`)"><i class="fa fa-snowflake"></i> </button> <button class="btn btn-sm btn-warning" type="button" onclick="SximoModal(`seranganhpt/create?id_lahan='.$row->id_lahan.'`,`Input Serangan HPT`)"><i class="fa fa-bug"></i> </button>';
			}else if(\Session::get('tahuntanam') == '2526' || \Session::get('tahuntanam') == '2627'){

				$countFotoLkp = \DB::table('tx_foto_kebun')
				->where('lahan_id', $row->id_lahan)
				->whereNotNull('foto')
				->count();	

				$countFotoDrone = \DB::table('tx_foto_drone')
				->where('lahan_id', $row->id_lahan)
				->whereNotNull('foto')
				->count();	

				$picawarna = \DB::table('q_pica_diameter_batang as a')
					->leftJoin('q_pica_tinggi_batang as b', 'a.lahan_id', '=', 'b.lahan_id')
					->leftJoin('q_pica_jml_batang as c', 'c.lahan_id', '=', 'a.lahan_id')
					->select('a.warna as diameter', 'b.warna as tinggi', 'c.warna as jml_batang')
					->where('a.lahan_id', $row->id_lahan)
					->first();

					$picaData = \DB::table('master_petak as mp')
						->join('master_afd as ma', 'ma.kode_afd', '=', 'mp.afd')
						->join('master_rayon as mr', 'mr.kode_rayon', '=', 'ma.kode_rayon')
						->join('master_kebun as mk', 'mk.kode_kebun', '=', 'mr.kode_kebun')
						->joinSub(
							\DB::table('data_timbangan as dt')
								->selectRaw('dt.nomer_petak, ROUND(SUM(dt.hektar),3) AS ha_tebang, ROUND(SUM(dt.netto_final_kg)/1000,2) AS netto_ton, ROUND((SUM(dt.netto_final_kg)/1000) / NULLIF(SUM(dt.hektar),0),2) AS protas, CASE WHEN ((SUM(dt.netto_final_kg)/1000) / NULLIF(SUM(dt.hektar),0)) >= 100 THEN "EMAS" WHEN ((SUM(dt.netto_final_kg)/1000) / NULLIF(SUM(dt.hektar),0)) >= 85 THEN "HIJAU" WHEN ((SUM(dt.netto_final_kg)/1000) / NULLIF(SUM(dt.hektar),0)) >= 70 THEN "KUNING" WHEN ((SUM(dt.netto_final_kg)/1000) / NULLIF(SUM(dt.hektar),0)) >= 60 THEN "MERAH" ELSE "HITAM" END AS clusterisasi_pica')
								->groupBy('dt.nomer_petak'),
							'dt_agg',
							function($join) {
								$join->on(\DB::raw('CAST(dt_agg.nomer_petak AS UNSIGNED)'), '=', \DB::raw('CAST(mp.lahan_id AS UNSIGNED)'));
							}
						)
						->leftJoin('master_bobot_pica as mbp', 'mbp.cluster_protas', '=', 'dt_agg.clusterisasi_pica')
						->select('mp.lahan_id', 'dt_agg.protas', 'dt_agg.clusterisasi_pica')
						->where('mp.lahan_id', $row->id_lahan)
						->orderBy('mk.kode_kebun')
						->orderBy('mr.kode_rayon')
						->orderBy('ma.kode_afd')
						->orderBy('mp.lahan_id')
						->first();

			
				$row->ha_sulam = $data->luas_berbunga ?? 0;
				$row->ha_olah_tanah_bajak_2 = $data2->luas_serangan ?? 0;
				$row->ha_olah_tanah_harrow =  0;
				

				$row->ha_olah_tanah_kaer = '<span class="badge badge-info" style="background: linear-gradient(90deg, '.($countFoto > 0 ? '#17a2b8 0%, #00c6ff 100%' : '#6c757d 0%, #adb5bd 100%').'); color: #fff; font-weight: bold; border-radius: 8px; padding: 5px 12px;">'.$countFoto.' Foto</span>';
				$row->ha_bumbun_1 = '<span class="badge badge-success" style="background: linear-gradient(90deg, '.($countFotoLkp > 0 ? '#28a745 0%, #a8e063 100%' : '#6c757d 0%, #adb5bd 100%').'); color: #fff; font-weight: bold; border-radius: 8px; padding: 5px 12px;">'.$countFotoLkp.' Foto</span>';
				$row->ha_klentek_1 = '<span class="badge badge-warning" style="background: linear-gradient(90deg, '.($countFotoDrone > 0 ? '#ffc107 0%, #ffecb3 100%' : '#6c757d 0%, #adb5bd 100%').'); color: #212529; font-weight: bold; border-radius: 8px; padding: 5px 12px;">'.$countFotoDrone.' Foto</span>';

				$row->ha_pupuk_1_manual = $mspetak->protas_morfologi ?? 0;
				

				
				$row->ha_pengairan_1 = (empty($picawarna->diameter ) || $picawarna->diameter === '' || $picawarna->diameter === 'Abu-abu' || $this->getColorCode($picawarna->diameter) === '#000000')
					? '<a href="javascript:void(0)" onclick="SximoModal(`https://prodis.ksotebu.com/pipica/indexmodal?lahan_id='.$row->id_lahan.'`,`Input PICA`)"><span style="display: inline-block; width: 20px; height: 20px; border-radius: 50%; background-color: #000000; border: 1px solid #ddd; cursor: pointer;"></span></a>'
					: '<span style="display: inline-block; width: 20px; height: 20px; border-radius: 50%; background-color: ' . $this->getColorCode($picawarna->diameter) . '; border: 1px solid #ddd;"></span>';

				$row->ha_pengairan_2 = (empty($picawarna->tinggi) || $picawarna->tinggi === '' || $picawarna->tinggi === 'Abu-abu' || $this->getColorCode($picawarna->tinggi ?? '') === '#000000')
					? '<a href="javascript:void(0)" onclick="SximoModal(`https://prodis.ksotebu.com/pipica/indexmodal?lahan_id='.$row->id_lahan.'`,`Input PICA`)"><span style="display: inline-block; width: 20px; height: 20px; border-radius: 50%; background-color: #000000; border: 1px solid #ddd; cursor: pointer;"></span></a>'
					: '<span style="display: inline-block; width: 20px; height: 20px; border-radius: 50%; background-color: ' . $this->getColorCode($picawarna->tinggi) . '; border: 1px solid #ddd;"></span>';

				$row->ha_pengairan_3 = (empty($picawarna->jml_batang) || $picawarna->jml_batang === '' || $picawarna->jml_batang === 'Abu-abu' || $this->getColorCode($picawarna->jml_batang ?? '') === '#000000')
					? '<a href="javascript:void(0)" onclick="SximoModal(`https://prodis.ksotebu.com/pipica/indexmodal?lahan_id='.$row->id_lahan.'`,`Input PICA`)"><span style="display: inline-block; width: 20px; height: 20px; border-radius: 50%; background-color: #000000; border: 1px solid #ddd; cursor: pointer;"></span></a>'
					: '<span style="display: inline-block; width: 20px; height: 20px; border-radius: 50%; background-color: ' . $this->getColorCode($picawarna->jml_batang) . '; border: 1px solid #ddd;"></span>';
				
				$row->ha_pengairan_4 = (empty($picaData->clusterisasi_pica) || $picaData->clusterisasi_pica === '' || $picaData->clusterisasi_pica === 'Abu-abu' || $this->getColorCode($picaData->clusterisasi_pica ?? '') === '#000000')
					? '<span style="display: inline-block; width: 20px; height: 20px; border-radius: 50%; background-color: #000000; border: 1px solid #ddd; cursor: pointer;"></span>'
					: '<span style="display: inline-block; width: 20px; height: 20px; border-radius: 50%; background-color: ' . $this->getColorCode($picaData->clusterisasi_pica) . '; border: 1px solid #ddd;"></span>';
					
				$row->ha_bumbun_2 = '				
				<button title="Input PICA" class="btn btn-sm btn-outline-primary" type="button" onclick="SximoModal(`https://prodis.ksotebu.com/pipica/indexmodal?lahan_id='.$row->id_lahan.'`,`Input PICA`)"><i class="fa fa-chart-bar"></i> </button> 
				<button title="Input Tebu Berbunga" class="btn btn-sm btn-primary" type="button" onclick="SximoModal(`tebuberbunga/create?id_lahan='.$row->id_lahan.'`,`Input Tebu Berbunga`)"><i class="fa fa-snowflake"></i> </button> 
				<button title="Input Serangan HPT" class="btn btn-sm btn-warning" type="button" onclick="SximoModal(`seranganhpt/create?id_lahan='.$row->id_lahan.'`,`Input Serangan HPT`)"><i class="fa fa-bug"></i> </button>
				<button title="Input Tebu Roboh" class="btn btn-sm btn-info" type="button" onclick="SximoModal(`teburoboh/create?id_lahan='.$row->id_lahan.'`,`Input Tebu Roboh`)"><i class="fa fa-tree"></i> </button>
				<button title="Input Tebu Banjir" class="btn btn-sm btn-secondary" type="button" onclick="SximoModal(`tebubanjir/create?id_lahan='.$row->id_lahan.'`,`Input Tebu Banjir`)"><i class="fa fa-water"></i> </button>
				';
				if($row->ha_tanam_kepras_manual > 0 || $row->ha_tanam_kepras_mekanis > 0 ){
						$row->ha_bumbun_2 .= ' <button title="Input Morfologi" class="btn btn-sm btn-success" type="button" onclick="SximoModal(`morfologi/create?id_lahan='.$row->id_lahan.'`,`Input Morfologi`)"><i class="fa fa-leaf"></i> </button> <button title="Input Foto Kebun" class="btn btn-sm btn-danger" type="button" onclick="SximoModal(`fotokebun/create?id_lahan='.$row->id_lahan.'`,`Input Foto Kebun`)"><i class="fa fa-camera"></i> </button>';
				}
				$row->ha_bumbun_2 .= ' <button title="Input Foto Drone" class="btn btn-sm btn-default" type="button" onclick="SximoModal(`fotodrone/create?id_lahan='.$row->id_lahan.'`,`Input Foto Drone`)"><i class="fa fa-plane"></i> </button>';


			}else{
				$row->ha_sulam = $data->luas_berbunga ?? 0;
				$row->ha_pupuk_1 = $data2->luas_serangan ?? 0;
				$row->ha_pupuk_2 =  0;
				$row->ha_bumbun_1 = $data->tanggal ?? null;
				$row->ha_bumbun_2 = '<button title="Input Tebu Berbunga" class="btn btn-sm btn-primary" type="button" onclick="SximoModal(`tebuberbunga/create?id_lahan='.$row->id_lahan.'`,`Input Tebu Berbunga`)"><i class="fa fa-snowflake"></i> </button> <button title="Input Serangan HPT" class="btn btn-sm btn-warning" type="button" onclick="SximoModal(`seranganhpt/create?id_lahan='.$row->id_lahan.'`,`Input Serangan HPT`)"><i class="fa fa-bug"></i> </button> ';
			}
			
		}

		if($this->access['is_view'] ==0) 
			return redirect('dashboard')->with('message', __('core.note_restric'))->with('status','error');				
		// Render into template
		return view( $this->module.'.index',$this->data);
	}	
	function getColorCode($colorName) {
		$colors = [
			'hijau' => '#28a745',
			'kuning' => '#ffc107',
			'merah' => '#dc3545',
			'hitam' => '#000000',
			'putih' => '#ffffff',
			'biru' => '#007bff',
			'ungu' => '#6f42c1',
			'oranye' => '#fd7e14',
			'abang' => '#dc3545',
			'ijo' => '#28a745',
			'kuningmuda' => '#ffc107',
			'mereh' => '#dc3545',
			'hitammuda' => '#343a40'
		];

		return $colors[strtolower($colorName)] ?? '#000000'; // Default ke abu-abu jika warna tidak ditemukan
	}
	function show( Request $request , $id ) 
	{
		/* Handle import , export and view */
		$task =$id ;
		switch( $task)
		{

			case 'export':
				return $this->getExport( $request );
				break;
	
		}
	}
}