<?php namespace App\Http\Controllers;

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


class RekappenangkaranController extends Controller {

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

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


		
	}

	public function index( Request $request )
	{
		//config(['app.debug' => true]);
		// Make Sure users Logged 
		if(!\Auth::check()) 
			return redirect('user/login')->with('status', 'error')->with('message','You are not login');

		$params1 = '';
		$filter = '';
		$filter = " where 0=0 ";


		$this->access = $this->access($this->info['id']  );

		$global = (isset($this->access['is_global']) ? $this->access['is_global'] : 0 );
		if($global == 0 )
				$params1 .= " AND a.entry_by ='".\Session::get('uid')."'"; 

		$params = array(

			'params'	=> $filter,
		);		
		$this->grab( $request, $params ) ;
		$this->data['rowData'] = \DB::select("
			select 
			a.*
			from q_rekap_penangkaran_perpetak a
				left join q_rekap_penangkaran_perpetak b on (a.id_lahan_bibit = b.id_lahan_bibit and a.sisa_luas_bibit > b.sisa_luas_bibit)
			where b.id_lahan_bibit is null ".$params1."
		");
		foreach ($this->data['rowData'] as &$row) {
			$summary = \DB::table('q_rekap_penangkaran_perpetak2')
				->selectRaw('sum(luas_tebang_bibit) as luas_tebang_bibit, sum(luas_tertanam) as luas_tertanam, max(luas_ha) - sum(luas_tebang_bibit)  as sisa_luas_bibit')
				->where('id_lahan_bibit', $row->id_lahan_bibit)
				->first();
			$row->luas_tebang_bibit = $summary->luas_tebang_bibit;
			$row->luas_tertanam = $summary->luas_tertanam;
			$row->sisa_luas_bibit = $summary->sisa_luas_bibit;
			$row->penangkaran = $summary->luas_tertanam/$summary->luas_tebang_bibit;
			$row->id_lahan_bibit = '<a href="javascript:SximoModal(`'.url($this->module.'/getdetail?id='.$row->id_lahan_bibit).'`,`Detail Petak '.$row->id_lahan_bibit.'`,`800`)"><i class="fa fa-info-circle"></i> '.$row->id_lahan_bibit.'</a>';
		}
		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);
	}	

	public function getdetail( Request $request )
	{
		$params = '';
		$filter = '';
		$filter = " where 0=0 ";
		$params = array(

			'params'	=> $filter,
		);		
		$this->grab( $request, $params ) ;
		$this->data['tableGrid'] = [
			['field' => 'id_lahan_bibit', 'label' => 'ID Lahan Bibit'],
			['field' => 'plant', 'label' => 'Plant'],
			['field' => 'kode_rayon', 'label' => 'Kode Rayon'],
			['field' => 'afdeling', 'label' => 'Afdeling'],
			['field' => 'deskripsi_bibitan', 'label' => 'Deskripsi Bibitan'],
			['field' => 'luas_ha', 'label' => 'Luas (Ha)'],
			['field' => 'jenis_bibit', 'label' => 'Jenis Bibit'],
			['field' => 'jenjang_bibitan', 'label' => 'Jenjang Bibitan'],
			['field' => 'masa_tanam', 'label' => 'Masa Tanam'],
			['field' => 'bulan_tanam', 'label' => 'Bulan Tanam'],
			['field' => 'tgl_tebang_bibit', 'label' => 'Tanggal Tebang Bibit'],
			['field' => 'luas_tebang_bibit', 'label' => 'Luas Tebang Bibit'],
			['field' => 'sisa_luas_bibit', 'label' => 'Sisa Luas Bibit'],
			['field' => 'id_lahan_polygon', 'label' => 'ID Lahan Polygon'],
			['field' => 'plant_data_tanam', 'label' => 'Plant Data Tanam'],
			['field' => 'kode_rayon_data_tanam', 'label' => 'Kode Rayon Data Tanam'],
			['field' => 'afdeling_data_tanam', 'label' => 'Afdeling Data Tanam'],
			['field' => 'kategori', 'label' => 'Kategori'],
			['field' => 'tahun_tanam', 'label' => 'Tahun Tanam'],
			['field' => 'masa_tanam_data_tanam', 'label' => 'Masa Tanam Data Tanam'],
			['field' => 'luas_tertanam', 'label' => 'Luas Tertanam'],
			['field' => 'penangkaran', 'label' => 'Penangkaran'],
		];
		$this->data['rowData'] = \DB::select("
			select 
			a.*
			from q_rekap_penangkaran_perpetak2 a
			where a.id_lahan_bibit = '".$request->input('id')."'
		");
		// dd($this->data['rowData']);
		return view( $this->module.'.detail',$this->data);
	}
	function show( Request $request , $id ) 
	{
		/* Handle import , export and view */
		$task =$id ;
		switch( $task)
		{

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

	public function rekapbibit( Request $request )
	{
		return view( $this->module.'.rekappenangkaran',$this->data);
	}
	public function getRekapPenangkaranBibit(Request $request)
	{
		$plant = $request->input('plant', '');
		if (empty($plant)) {
			$plant = 'ALL';
		}
		$jenjang_bibitan = $request->input('jenjang_bibitan', 'KBD');
		$masa_tanam = $request->input('masa_tanam', '25/26');

		$results = \DB::select("CALL sp_rekap_penangkaranbibit_filter_kebun(?, ?, ?)", [
			$plant,
			$jenjang_bibitan,
			$masa_tanam
		]);

		$html = '<table class="table table-bordered table-striped table-hover">
			<thead class="thead-dark">
				<tr>
					<th>Plant</th>
					<th>Jenjang Bibitan</th>
					<th>Masa Tanam</th>
					<th>Total Luas Bibitan</th>
					<th>Total Luas Ditebang</th>
					<th>Total Luas Tertanam</th>
					<th>Penangkaran</th>
					<th>Luas Sisa</th>
				</tr>
			</thead>
			<tbody>';
		foreach ($results as $row) {
			$html .= '<tr>
				<td><strong>'.$row->plant.'</strong></td>
				<td>'.$row->jenjang_bibitan.'</td>
				<td>'.$row->masa_tanam.'</td>
				<td style="text-align:right;">'.($row->total_luas_bibitan == 0 ? '-' : number_format($row->total_luas_bibitan, 3)).'</td>
				<td style="text-align:right;">'.($row->total_luas_ditebang == 0 ? '-' : number_format($row->total_luas_ditebang, 3)).'</td>
				<td style="text-align:right;">'.($row->total_luas_tertanam == 0 ? '-' : number_format($row->total_luas_tertanam, 3)).'</td>
				<td style="text-align:right;">'.($row->penangkaran == 0 ? '-' : number_format($row->penangkaran, 3)).'</td>
				<td style="text-align:right;">'.($row->luas_sisa == 0 ? '-' : number_format($row->luas_sisa, 3)).'</td>
			</tr>';
		}
		if (empty($results)) {
			$html .= '<tr><td colspan="8" class="text-center text-muted">Data tidak ditemukan</td></tr>';
		}
		$html .= '</tbody></table>';

		return response($html);
	}
}