<?php namespace App\Http\Controllers;

use App\Models\Datatimbangan;
use App\Library\DataHelpers;
use Illuminate\Http\Request;
use Illuminate\Pagination\LengthAwarePaginator as Paginator;
use Validator, Input, Redirect ; 
use DOMDocument;
use DOMXPath;

class DatatimbanganController extends Controller {

	protected $layout = "layouts.main";
	protected $data = array();	
	public $module = 'datatimbangan';
	static $per_page	= '10';
	
	public function __construct() 
	{
		parent::__construct();
		$this->model = new Datatimbangan();
		
		$this->info = $this->model->makeInfo( $this->module);
		$this->access = $this->model->validAccess($this->info['id']);
	
		$this->data = array(
			'pageTitle'			=> 	$this->info['title'],
			'pageNote'			=>  $this->info['note'],
			'pageModule'		=> 'datatimbangan',
			'pageUrl'			=>  url('datatimbangan'),
			'return' 			=> 	self::returnUrl()	
		);	
			
				
	} 
	public function index()
	{
		if(!\Auth::check()) 
			return redirect('user/login')->with('status', 'error')->with('message','You are not login');

		$this->access = $this->model->validAccess($this->info['id'] , session('gid'));
		if($this->access['is_view'] ==0) 
			return redirect('dashboard')->with('message',__('core.note_restric'))->with('status','error');
		
		$this->data['setting'] 		= $this->info['setting'];
		$this->data['tableForm'] 	= $this->info['config']['forms'];
		$this->data['tableGrid'] 	= $this->info['config']['grid'];
		usort($this->data['tableGrid'], "SiteHelpers::_sort");
			$cols = '{"data":"rowId"},';
			if($this->data['setting']['view-method'] =='expand'){
				$cols .= '{"className": "details-control","orderable": false,"data": null,"defaultContent": ""},';
			}		
				
			foreach($this->data['tableGrid'] as $field)
			{				
				
				if($field['view'] =='1')
				{
					$cols .= '{"data":"'.$field['field'].'"},';
				}						
			}
			$cols .= '{"data":"action"},';
		$this->data['column'] = $cols ;	
		$this->data['access']		= $this->access;	
		$this->data['setting'] 		= $this->info['setting'];
		return view('datatimbangan.index',$this->data);
	}
	function create( Request $request ) 
	{
		$this->hook( $request  );
		if($this->access['is_add'] ==0) 
			return redirect('dashboard')->with('message', __('core.note_restric'))->with('status','error');

		$this->data['row'] = $this->model->getColumnTable( $this->info['table']); 
		
		$this->data['setting'] 		= $this->info['setting'];
		$this->data['id'] = '';
		return view($this->module.'.form',$this->data);
	}
	function edit( Request $request , $id ) 
	{
		$this->hook( $request , $id );
		if(!isset($this->data['row']))
			return redirect($this->module)->with('message','Record Not Found !')->with('status','error');
		if($this->access['is_edit'] ==0 )
			return redirect('dashboard')->with('message',__('core.note_restric'))->with('status','error');
		$this->data['row'] = (array) $this->data['row'];
		
		$this->data['setting'] 		= $this->info['setting'];
		$this->data['id'] = $id;
		return view($this->module.'.form',$this->data);
	}
	function show( Request $request , $id ) 
	{
		/* Handle import , export and view */
		$task =$id ;
		switch( $task)
		{
			case 'search':
				return $this->getSearch();
				break;
			case 'lookup':
				return $this->getLookup($request );
				break;
			case 'comboselect':
				return $this->getComboselect( $request );
				break;
			case 'import':
				return $this->getImport( $request );
			case 'removefiles':
				return $this->getRemovefiles( $request );	
				break;
			case 'export':
				return $this->getExport( $request );
				break;

			case 'tarikdatatimbang':
				return $this->tarikdatatimbang($request);
				break;
			
			case 'tarikdatamejatebu':
				return $this->tarikdatamejatebu($request);
				break;

			case 'tarikdataupahtebang':
				return $this->tarikdataupahtebang($request);
				break;
				
			case 'getdates':
				return $this->getDates($request);
				break;
			case 'getdatatimbangnew':
				return $this->getdatatimbangnew($request);
				break;
			case 'getdatamejatebunew':
				return $this->getdatamejatebunew($request);
				break;
			case 'getdataselektor':
				return $this->getdataselektor($request);
				break;
			default:
				$this->hook( $request , $id );
				if(!isset($this->data['row']))
					return redirect($this->module)->with('message','Record Not Found !')->with('status','error');

				if($this->access['is_detail'] ==0) 
					return redirect('dashboard')->with('message', __('core.note_restric'))->with('status','error');

				return view($this->module.'.view',$this->data);	
				break;		
		}
	}	
	public function store( Request $request){

		$task = $request->input('action_task');
		switch ($task)
		{
			default:
				return $this->postData( $request);
				break;
			case 'save':
				$rules = $this->validateForm();
				$validator = Validator::make($request->all(), $rules);
				if ($validator->passes()) 
				{
					$data = $this->validatePost( $request );
					$id = $this->model->insertRow($data , $request->input( $this->info['key']));
					
					/* Insert logs */
					$this->model->logs($request , $id);
					return response()->json(array('status'=>'success','message'=> __('core.note_success')));	
					
				} 
				else {
					$message = $this->validateListError(  $validator->getMessageBag()->toArray() );
					return response()->json(array(
						'message'	=> $message,
						'status'	=> 'error'
					));	
				}
				break;
			case 'delete':
				return $result = $this->destroy( $request );
				break;

			case 'import':
				return $this->PostImport( $request );
				break;

			case 'copy':
				$result = $this->copy( $request );
				return response()->json($result);
				break;		

		}
	}
	public function postData( $request)
	{ 
		
		$this->access = $this->model->validAccess($this->info['id'] , session('gid'));

		$tables 	= $this->info['config']['grid'];
		$cols = array();
		foreach($tables as $field)
		{				
			//$cols[$this->info['key']]	= array('db'=> $field['alias'] ,$this->info['key'] );
			if($field['view'] =='1')
			{
				$cols[] = array('db'=> $field['alias'],'dt'=> $field['field'] );
			}					
		}
		$conf = DataHelpers::simple($request->all(),$cols);
		$filter =  '';
		if(!is_null($request->input('search')))
		{
			$filter .= $this->liveSearch( $request);
		}

		$params = array(
			'page'		=> $conf['page'] ,
			'limit'		=> $conf['limit'] ,
			'sort'		=> ($conf['order']['sort'] !='' ? $conf['order']['sort'] : $this->info['setting']['orderby']) ,
			'order'		=> ($conf['order']['by'] !='' ? $conf['order']['by'] : $this->info['setting']['ordertype']),
			'params'	=> $filter,
			'global'	=> (isset($this->access['is_global']) ? $this->access['is_global'] : 0 )
		);


		$results = $this->model->getRows($params);
		
		$array = array();
		foreach($results['rows'] as $row)
		{
			$values = array();
			$values['rowId'] = $row->{$this->info['key']};
			foreach($tables as $field)
			{			
				
				if($field['view'] =='1')
				{
					$values[$field['field']] = \SiteHelpers::formatRows($row->{$field['field']}, $field , $row);
				}	
			}
			$values['action'] =  \SiteHelpers::buttonAction($this->module,$this->access ,$row->{$this->info['key']} ,$this->info['setting']) ;
			$array[] = $values; 	
		}
		
		$data = array(
			'draw'			=> (!is_null($request->input('draw')) ? intval($request->input('draw') ) : 0), 
			'recordsTotal'	=> $results['total'] ,
			'recordsFiltered'	=> $results['total'],
			'data'				=> $array

		);
		return response()->json($data);
	}

	public function destroy( Request $request)
	{

		if(!\Auth::check()) 
			return response()->json(array(
				'status'=>'error',
				'message'=> 'You are not login'
			));

		$this->access = $this->model->validAccess($this->info['id'] , session('gid'));
		if($this->access['is_remove'] ==0) 
			return response()->json(array('status'=>'error','message'=> __('core.note_restric')));	


		// delete multipe rows 
		if(count($request->input('ids')) >=1)
		{
			$this->model->destroy($request->input('ids'));
			
			return response()->json(array(
				'status'=>'success',
				'message'=> __('core.note_success_delete')
			));
		} else {
			return response()->json(array(
				'status'=>'error',
				'message'=> __('core.note_error')
			));

		} 		

	}

	public function tarikdatatimbang(Request $request)
	{
		if (!\Auth::check()) 
			return response()->json(array('status' => 'error', 'message' => 'You are not logged in'));

			$pabrik_gula = $request->input('pabrik_gula');
			$tgl1 = $request->input('tgl1');
			$tgl2 = $request->input('tgl2');
			// URL endpoint
			if($pabrik_gula == 'SG01'){
				$url = "https://kwm.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG02'){
				$url = "https://ssm.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG03'){
				$url = "https://bgm.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG04'){
				$url = "https://ctm.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG05'){
				$url = "https://sg05.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG06'){
				$url = "https://srg.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG07'){
				$url = "https://rdg.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG08'){
				$url = "https://mjo.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG09'){
				$url = "https://sg09.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG10'){
				$url = "https://krb.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG11'){
				$url = "https://gkr.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG12'){
				$url = "https://djb.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG13'){
				$url = "https://tjk.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG14'){
				$url = "https://lst.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG15'){
				$url = "https://mrt.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG16'){
				$url = "https://psb.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG17'){
				$url = "https://nga.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG18'){
				$url = "https://mpg.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG19'){
				$url = "https://sud.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG20'){
				$url = "https://pur.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG21'){
				$url = "https://rej.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG22'){
				$url = "https://pag.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG23'){
				$url = "https://ked.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG24'){
				$url = "https://won.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG25'){
				$url = "https://gen.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG26'){
				$url = "https://jat.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG27'){
				$url = "https://sem.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG28'){
				$url = "https://wri.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG30'){
				$url = "https://pan.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG31'){
				$url = "https://ase.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG32'){
				$url = "https://pra.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG33'){
				$url = "https://glm.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG34'){
				$url = "https://bon.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG35'){
				$url = "https://cmg.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else if($pabrik_gula == 'SG36'){
				$url = "https://tkl.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";
			}else{
				$url = "https://kwm.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";	
			}
			// $url = "https://kwm.prodis.sinergigula.com/index.php/laporantimbangan/printlaporan";


			$data = [
				'tgl1' => $tgl1,
				'tgl2' => $tgl2,
				'byr' => '',
				'jns' => '2',
				'bln' => date('n'),
				'thn' => date('Y'),
				'rjns' => '1',
				'tebangan' => '',
				'kat' => '',
				'angkutan' => '',
				'divisi' => '',
				'kode_blok' => '',
				'metode_tma' => ''
			];
			
			$cookie = $this->getcookielogin($pabrik_gula); // Gantilah dengan sesi yang valid
			
			$headers = [
				"Content-Type: application/x-www-form-urlencoded; charset=UTF-8",
				"X-Requested-With: XMLHttpRequest",
				"User-Agent: ".$_SERVER['HTTP_USER_AGENT'],
				"Cookie: $cookie"
			];
			
			$ch = curl_init();
			curl_setopt($ch, CURLOPT_URL, $url);
			curl_setopt($ch, CURLOPT_POST, true);
			curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
			curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
			
			$response = curl_exec($ch);
			curl_close($ch);

			// Cek jika terjadi error
			// if (curl_errno($ch)) {
			// 	echo 'Error: ' . curl_error($ch);
			// 	curl_close($ch);
			// 	exit;
			// }


			// Tutup cURL
			// curl_close($ch);


			// Ekstrak tabel dengan class "tableizer-table"
			$dom = new DOMDocument();
			libxml_use_internal_errors(true);
			$dom->loadHTML($response);
			libxml_clear_errors();

			// Cari elemen tabel dengan class "tableizer-table"
			$xpath = new DOMXPath($dom);
			$tables = $xpath->query("//table[contains(@class, 'tableizer-table')]");

			$data = []; // Array untuk menyimpan hasil JSON
			if ($tables->length > 0) {
				$table = $tables->item(0);
				$rows = $table->getElementsByTagName('tr');
				$headers = [];

				// Ambil header tabel (baris pertama)
				foreach ($rows->item(0)->getElementsByTagName('th') as $header) {
					$headers[] = trim($header->textContent);
				}

				// Jika tidak ada <th>, coba ambil <td> dari baris pertama
				if (empty($headers)) {
					foreach ($rows->item(0)->getElementsByTagName('td') as $header) {
						$headers[] = trim($header->textContent);
					}
				}

				// Ambil data baris (mulai dari baris kedua)
				for ($i = 1; $i < $rows->length; $i++) {
					$row = $rows->item($i);
					$cells = $row->getElementsByTagName('td');

					if (count($cells)>1) {
						$rowData = [];
						foreach ($cells as $index => $cell) {
							$rowData[] = trim($cell->textContent);
						}
						if ($rowData != null) {
							$data[] = $rowData;
	
						}
					}					
				}
				// Insert data into the table
				foreach ($data as $rowData) {
					if (substr($rowData[1], 0, 2) == 'SG') {

					$insertData = [
						'no_spta' => $rowData[1],
						'afd' => $rowData[2],
						'nomer_kontrak' => $rowData[3],
						'nomer_petak' => $rowData[4],
						'kebun' => $rowData[5],
						'nama_petani' => $rowData[6],
						'kategori' => $rowData[7],
						'pembayaran' => $rowData[8],
						'blok' => $rowData[9],
						'mandor' => $rowData[10],
						'pta' => $rowData[11],
						'no_truk' => $rowData[12],
						'no_trans' => $rowData[13],
						'truk' => $rowData[14],
						'lori' => $rowData[15],
						'odong2' => $rowData[16],
						'traktor' => $rowData[17],
						'hektar' => $rowData[18],
						'bruto_kg' => str_replace(',', '', $rowData[19]),
                        'tara_kg' => str_replace(',', '', $rowData[20]),
                        'netto_kg' => str_replace(',', '', $rowData[21]),
                        'rafaksi_kg' => str_replace(',', '', $rowData[22]),
                        'netto_final_kg' => str_replace(',', '', $rowData[23]),
						'kode_timbangan' => $rowData[24],
						'kategori_tebang' => $rowData[25],
						'jenis_tebangan' => $rowData[26],
						'jenis_tebu' => $rowData[27],
						'range_jarak' => $rowData[28],
						'no_trainstat' => $rowData[29],
						'no_hv' => $rowData[30],
						'op_hv' => $rowData[31],
						'no_stipping' => $rowData[32],
						'op_stipping' => $rowData[33],
						'tgl_netto' => $rowData[34],
						'no_analisa' => $rowData[35],
						'tgl_timbang' => $rowData[36],
						// Map other columns as needed
					];
					\DB::table('data_timbangan')->updateOrInsert(
						['no_spta' => $rowData[1]], // Assuming 'no_spta' is the unique key
						$insertData
					);
				}
					// var_dump($rowData[1]);
				}
			}

			// var_dump($this->getcookielogin());
			

			if ($data) {
				return response()->json(array('status' => 'success', 'message' => 'Data successfully imported'));
			} else {
				return response()->json(array('status' => 'error', 'message' => 'No data found'));
			}
	}


	public function tarikdatamejatebu(Request $request)
	{
		if (!\Auth::check()) 
			return response()->json(array('status' => 'error', 'message' => 'You are not logged in'));

			$pabrik_gula = $request->input('pabrik_gula');
			$tgl1 = $request->input('tgl1');
			$tgl2 = $request->input('tgl2');
			// URL endpoint
			if($pabrik_gula == 'SG01'){
				$url = "https://kwm.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG02'){
				$url = "https://ssm.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG03'){
				$url = "https://bgm.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG04'){
				$url = "https://ctm.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG05'){
				$url = "https://sg05.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG06'){
				$url = "https://srg.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG07'){
				$url = "https://rdg.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG08'){
				$url = "https://mjo.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG09'){
				$url = "https://sg09.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG10'){
				$url = "https://krb.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG11'){
				$url = "https://gkr.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG12'){
				$url = "https://djb.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG13'){
				$url = "https://tjk.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG14'){
				$url = "https://lst.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG15'){
				$url = "https://mrt.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG16'){
				$url = "https://psb.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG17'){
				$url = "https://nga.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG18'){
				$url = "https://mpg.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG19'){
				$url = "https://sud.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG20'){
				$url = "https://pur.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG21'){
				$url = "https://rej.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG22'){
				$url = "https://pag.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG23'){
				$url = "https://ked.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG24'){
				$url = "https://won.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG25'){
				$url = "https://gen.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG26'){
				$url = "https://jat.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG27'){
				$url = "https://sem.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG28'){
				$url = "https://wri.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG30'){
				$url = "https://pan.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG31'){
				$url = "https://ase.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG32'){
				$url = "https://pra.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG33'){
				$url = "https://glm.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG34'){
				$url = "https://bon.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG35'){
				$url = "https://cmg.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else if($pabrik_gula == 'SG36'){
				$url = "https://tkl.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";
			}else{
				$url = "https://kwm.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";	
			}
			// $url = "https://kwm.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";

			$data = [
				'tgl1' => $tgl1,
				'tgl2' => $tgl2,
				'jns' => '1',
				'bln' => date('n'),
				'thn' => date('Y'),
				'rjns' => '1',
				'metode_tma' => ''
			];

			$cookie = $this->getcookielogin($pabrik_gula); // Gantilah dengan sesi yang valid
			// echo $cookie;
			$headers = [
				"Content-Type: application/x-www-form-urlencoded; charset=UTF-8",
				"X-Requested-With: XMLHttpRequest",
				"User-Agent: ".$_SERVER['HTTP_USER_AGENT'],
				"Accept: */*",
				"Origin: https://kwm.prodis.sinergigula.com",
				"Sec-Fetch-Site: same-origin",
				"Sec-Fetch-Mode: cors",
				"Sec-Fetch-Dest: empty",
				"Referer: https://kwm.prodis.sinergigula.com/index.php/laporanmejatebu",
				"Cookie: $cookie"
			];
			$ch = curl_init();
			curl_setopt($ch, CURLOPT_URL, $url);
			curl_setopt($ch, CURLOPT_POST, true);
			curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
			curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
			curl_setopt($ch, CURLOPT_HEADER, true);
			
			$response = curl_exec($ch);
			curl_close($ch);
			

			// echo $response;
			


			// Ekstrak tabel dengan class "tableizer-table"
			$dom = new DOMDocument();
			libxml_use_internal_errors(true);
			$dom->loadHTML($response);
			libxml_clear_errors();

			// Cari elemen tabel dengan class "tableizer-table"
			$xpath = new DOMXPath($dom);
			$tables = $xpath->query("//table[contains(@class, 'tableizer-table')]");

			$data = []; // Array untuk menyimpan hasil JSON
			if ($tables->length > 0) {
				$table = $tables->item(1);

				$rows = $table->getElementsByTagName('tr');
					// print_r($rows);
				$headers = [];


				// Ambil header tabel (baris pertama)
				foreach ($rows->item(1)->getElementsByTagName('th') as $header) {
					$headers[] = trim($header->textContent);
				}

				// Jika tidak ada <th>, coba ambil <td> dari baris pertama
				if (empty($headers)) {
					foreach ($rows->item(1)->getElementsByTagName('td') as $header) {
						$headers[] = trim($header->textContent);
					}
				}

				// Ambil data baris (mulai dari baris kedua)
				for ($i = 1; $i < $rows->length; $i++) {
					$row = $rows->item($i);
					$cells = $row->getElementsByTagName('td');

					if (count($cells)>1) {
						$rowData = [];
						foreach ($cells as $index => $cell) {
							$rowData[] = trim($cell->textContent);
						}
					}

					if ($rowData != null) {
						$data[] = $rowData;

					}

					
				}

			// var_dump($this->getcookielogin());

			// Insert data into the table
			foreach ($data as $rowData) {
				// var_dump(substr($rowData[3], 0, 2));
				if(!empty($rowData[3])){
				if (substr($rowData[3], 0, 2) == 'SG') {

				$insertData = [
					'mt' => $rowData[1],
					'no_analisa' => $rowData[2],
					'no_spta' => $rowData[3],
					'afd' => $rowData[4],
					'mandor' => $rowData[5],
					'pta' => $rowData[6],
					'no_petak' => $rowData[7],
					'kebun' => $rowData[8],
					'kategori' => $rowData[9],
					'angkutan' => $rowData[10],
					'no_angkutan' => $rowData[11],
					'transloading' => $rowData[12],
					'netto' => str_replace(',', '', $rowData[13]),
					'brix' => $rowData[14],
					'ph' => $rowData[15],
					'terbakar' => $rowData[16],
					'kualitas' => $rowData[17],
					'ha_tertebang' => $rowData[18],
					'tebang' => $rowData[19],
					'selektor' => $rowData[20],
					'meja_tebu' => $rowData[21],
					'cut_to_crush' => $rowData[22],
					'foto' => $rowData[23],
					'tgl_giling' => $rowData[24],
					
					// Map other columns as needed
				];
				\DB::table('data_meja_tebu')->updateOrInsert(
					['no_spta' => $rowData[3]], // Assuming 'no_spta' is the unique key
					$insertData
				);
			}
		}
				// var_dump($rowData[1]);
			}
			if ($data) {
				return response()->json(array('status' => 'success', 'message' => 'Data successfully imported'));
			} else {
				return response()->json(array('status' => 'error', 'message' => 'No data found'));
			}
			
	}

}

public function tarikdataupahtebang(Request $request)
	{
		if (!\Auth::check()) 
			return response()->json(array('status' => 'error', 'message' => 'You are not logged in'));

			$pabrik_gula = $request->input('pabrik_gula');
			$tgl1 = $request->input('tgl1');
			$tgl2 = $request->input('tgl2');
			// URL endpoint
			if($pabrik_gula == 'SG01'){
				$url = "https://kwm.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG02'){
				$url = "https://ssm.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG03'){
				$url = "https://bgm.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG04'){
				$url = "https://ctm.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG05'){
				$url = "https://sg05.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG06'){
				$url = "https://srg.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG07'){
				$url = "https://rdg.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG08'){
				$url = "https://mjo.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG09'){
				$url = "https://sg09.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG10'){
				$url = "https://krb.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG11'){
				$url = "https://gkr.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG12'){
				$url = "https://djb.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG13'){
				$url = "https://tjk.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG14'){
				$url = "https://lst.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG15'){
				$url = "https://mrt.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG16'){
				$url = "https://psb.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG17'){
				$url = "https://nga.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG18'){
				$url = "https://mpg.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG19'){
				$url = "https://sud.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG20'){
				$url = "https://pur.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG21'){
				$url = "https://rej.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG22'){
				$url = "https://pag.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG23'){
				$url = "https://ked.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG24'){
				$url = "https://won.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG25'){
				$url = "https://gen.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG26'){
				$url = "https://jat.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG27'){
				$url = "https://sem.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG28'){
				$url = "https://wri.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG30'){
				$url = "https://pan.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG31'){
				$url = "https://ase.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG32'){
				$url = "https://pra.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG33'){
				$url = "https://glm.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG34'){
				$url = "https://bon.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG35'){
				$url = "https://cmg.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else if($pabrik_gula == 'SG36'){
				$url = "https://tkl.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";
			}else{
				$url = "https://kwm.prodis.sinergigula.com/index.php/laporanrekapupahtebang/printlaporan";	
			}
			// $url = "https://kwm.prodis.sinergigula.com/index.php/laporanmejatebu/printlaporan";

			$data = [
				'tgl1' => $tgl1,
				'tgl2' => $tgl2,
				'angkutan' => '',
				'bln' => date('n'),
				'thn' => date('Y'),
				'rjns' => '1',
				'kat' => '',
				'jns' => '5',
				'petak' => '',
				'jnstgl' => '1'
			];

			$cookie = $this->getcookielogin($pabrik_gula); // Gantilah dengan sesi yang valid
			// echo $cookie;
			$headers = [
				"Content-Type: application/x-www-form-urlencoded; charset=UTF-8",
				"X-Requested-With: XMLHttpRequest",
				"User-Agent: ".$_SERVER['HTTP_USER_AGENT'],
				"Accept: */*",
				"Origin: https://kwm.prodis.sinergigula.com",
				"Sec-Fetch-Site: same-origin",
				"Sec-Fetch-Mode: cors",
				"Sec-Fetch-Dest: empty",
				"Referer: https://kwm.prodis.sinergigula.com/index.php/laporanrekapupahtebang",
				"Cookie: $cookie"
			];
			$ch = curl_init();
			curl_setopt($ch, CURLOPT_URL, $url);
			curl_setopt($ch, CURLOPT_POST, true);
			curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
			curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
			curl_setopt($ch, CURLOPT_HEADER, true);
			
			$response = curl_exec($ch);
			curl_close($ch);
			

			// echo $response;
			


			// Ekstrak tabel dengan class "tableizer-table"
			$dom = new DOMDocument();
			libxml_use_internal_errors(true);
			$dom->loadHTML($response);
			libxml_clear_errors();

			// Cari elemen tabel dengan class "tableizer-table"
			$xpath = new DOMXPath($dom);
			$tables = $xpath->query("//table[contains(@class, 'tableizer-table')]");

			$data = []; // Array untuk menyimpan hasil JSON
			if ($tables->length > 0) {
				$table = $tables->item(0);

				$rows = $table->getElementsByTagName('tr');
					// print_r($rows);
				$headers = [];


				// Ambil header tabel (baris pertama)
				foreach ($rows->item(1)->getElementsByTagName('th') as $header) {
					$headers[] = trim($header->textContent);
				}

				// Jika tidak ada <th>, coba ambil <td> dari baris pertama
				if (empty($headers)) {
					foreach ($rows->item(1)->getElementsByTagName('td') as $header) {
						$headers[] = trim($header->textContent);
					}
				}

				// Ambil data baris (mulai dari baris kedua)
				for ($i = 1; $i < $rows->length; $i++) {
					$row = $rows->item($i);
					$cells = $row->getElementsByTagName('td');

					if (count($cells)>1) {
						$rowData = [];
						foreach ($cells as $index => $cell) {
							$rowData[] = trim($cell->textContent);
						}
					}

					if ($rowData != null) {
						$data[] = $rowData;

					}

					
				}

			// var_dump($this->getcookielogin());
			$dataPotongan = \DB::table('master_upah_potongan')
				->selectRaw('count(*) as hit, jenis')
				->where('unit', $pabrik_gula)
				->groupBy('jenis')
				->get();
			// Insert data into the table
			foreach ($data as $rowData) {
				// var_dump(substr($rowData[3], 0, 2));
				if(!empty($rowData[8])){
				if (substr($rowData[8], 0, 2) == 'SG') {

				$insertData = [
					'kontrak' => $rowData[1],
					'no_petak' => $rowData[2],
					'kebun' => $rowData[3],
					'rayon' => $rowData[4],
					'afdeling' => $rowData[5],
					'pta' => $rowData[6],
					'mandor' => $rowData[7],
					'no_spta' => $rowData[8],
					'no_polisi' => $rowData[9],
					'tebu' => str_replace(",","",$rowData[10]),
					'tgl_masuk' => $rowData[11],
					'tgl_timbang' => $rowData[12]
				];

					
						for($key = 1; $key < (int) $dataPotongan[1]->hit+1; $key++){
								$insertData['K'.((int)$key)] = str_replace(",","",$rowData[((int)$key + 1 + 12)]) ;
						}
				
						for($key = 1; $key < (int) $dataPotongan[0]->hit; $key++){
								$insertData['K'.(+(int)$key+(int) $dataPotongan[1]->hit)] = str_replace(",","",$rowData[(+(int)$key+1) + 12 + (int) $dataPotongan[1]->hit+1]);
						}
					$insertData['total'] = str_replace(",","",$rowData[(int) $dataPotongan[1]->hit + 12 + (int) $dataPotongan[0]->hit + 3]);
					
				\DB::table('tx_upah_tebang')->updateOrInsert(
					['no_spta' => $rowData[8]], // Assuming 'no_spta' is the unique key
					$insertData
				);
			}
		}
				// var_dump($rowData[1]);
			}
			if ($data) {
				return response()->json(array('status' => 'success', 'message' => 'Data successfully imported'));
			} else {
				return response()->json(array('status' => 'error', 'message' => 'No data found'));
			}
			
	}

}




	function getcookielogin($pg){

		if($pg == 'SG01'){
			$url = "https://kwm.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho123'];
		}else if($pg == 'SG02'){
			$url = "https://ssm.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG03'){
			$url = "https://bgm.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG04'){
			$url = "https://ctm.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG05'){
			$url = "https://sg05.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG06'){
			$url = "https://srg.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG07'){
			$url = "https://rdg.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG08'){
			$url = "https://mjo.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG09'){
			$url = "https://sg09.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG10'){
			$url = "https://krb.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG11'){
			$url = "https://gkr.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG12'){
			$url = "https://djb.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG13'){
			$url = "https://tjk.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG14'){
			$url = "https://lst.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG15'){
			$url = "https://mrt.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG16'){
			$url = "https://psb.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG17'){
			$url = "https://nga.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG18'){
			$url = "https://mpg.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG19'){
			$url = "https://sud.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG20'){
			$url = "https://pur.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG21'){
			$url = "https://rej.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG22'){
			$url = "https://pag.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG23'){
			$url = "https://ked.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG24'){
			$url = "https://won.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG25'){
			$url = "https://gen.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG26'){
			$url = "https://jat.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG27'){
			$url = "https://sem.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG28'){
			$url = "https://wri.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG30'){
			$url = "https://pan.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG31'){
			$url = "https://ase.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG32'){
			$url = "https://pra.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG33'){
			$url = "https://glm.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG34'){
			$url = "https://bon.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG35'){
			$url = "https://cmg.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else if($pg == 'SG36'){
			$url = "https://tkl.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];
		}else{
			$url = "https://kwm.prodis.sinergigula.com/index.php/user/postlogin";
			$data = ['username' => 'mkso.ho','password' => 'mkso.ho'];	
		}

			// $data = [
			// 		'username' => 'mkso.ho',
			// 		'password' => 'mkso.ho123'
			// 	];


		
		
		$cookie = "ci_session=a%3A6%3A%7Bs%3A10%3A%22session_id%22%3Bs%3A32%3A%22677c985afd7cca79976781ce45847fa9%22%3Bs%3A10%3A%22ip_address%22%3Bs%3A14%3A%22".$this->myipaddress()."%22%3Bs%3A10%3A%22user_agent%22%3Bs%3A117%3A%22".urlencode($_SERVER['HTTP_USER_AGENT'])."%22%3Bs%3A13%3A%22last_activity%22%3Bi%3A1739174392%3Bs%3A9%3A%22user_data%22%3Bs%3A0%3A%22%22%3Bs%3A4%3A%22lang%22%3Bs%3A2%3A%22en%22%3B%7Dc9f7347c8cb35c0e99abc9930aff63ecec15ce59"; // Gantilah dengan sesi yang valid
		
		$headers = [
			"Content-Type: application/x-www-form-urlencoded",
			"Upgrade-Insecure-Requests: 1",
			"User-Agent: ".$_SERVER['HTTP_USER_AGENT'],
			"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
			"Referer: https://kwm.prodis.sinergigula.com/index.php/user/login",
			"Cookie: $cookie"
		];
		
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_POST, true);
		curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
		curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt($ch, CURLOPT_HEADER, true); // Ambil juga header respons
		
		$response = curl_exec($ch);
		$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
		$header = substr($response, 0, $header_size);
		$body = substr($response, $header_size);
		curl_close($ch);
		
		// Cari Set-Cookie di header
		preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $header, $matches);
		$cookies = $matches[1];
		
		// Tampilkan Set-Cookie
		// echo "Set-Cookie dari response:\n";
		return $cookies[3];

	}

	function myipaddress(){
		// Ambil alamat IP publik
		$ch = curl_init("https://ipinfo.io/ip");
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		$ip = curl_exec($ch);
		curl_close($ch);
	
		return trim($ip);
	}

	function getdatatimbangnew(Request $request){
		config(['app.debug' => true]);
			$tgl1 = $request->input('tgl1');
			$tgl2 = $request->input('tgl2');
			$pg = $request->input('pabrik_gula');
			$baseUrl = "https://prodis.sinergigula.com";
			$loginUrl = $baseUrl . "/login";
			$laporanUrl = $baseUrl . "/laporan-timbangan/get-laporan";
		
			// --- REQUEST DATA LAPORAN ---
			
				// Build query parameters dynamically
				$queryParams = [
					'jangka_waktu' => 1,
					'periode_tanggal_mulai' => $tgl1,
					'periode_tanggal_selesai' => $tgl2,
					'bulan' => 1,
					'tahun' => date('Y'),
					'asal_blok' => '',
					'jenis_angkutan' => '',
					'kebun' => '',
					'jenis_laporan' => 2,
					'affdeling' => '',
					'jenis_pembayaran' => '',
					'metode_tma' => '',
					'jenis_tma' => '',
					'kode_blok_filter' => ''
				];

				$url = "https://prodis.sinergigula.com/laporan-timbangan/get-laporan?" . http_build_query($queryParams);

				// Ambil cookie dari database berdasarkan kode_pg
				$cookieRow = \DB::table('master_cookie_prodis_pg')->where('kode_pg', $pg)->first();
				if (!$cookieRow || empty($cookieRow->cookie)) {
					return response()->json(['status' => 'error', 'message' => 'Cookie not found for this PG']);
				}
				$cookies_json = $cookieRow->cookie;
				$cookies = json_decode($cookies_json, true);

				$cookieString = "";
				foreach ($cookies as $cookie) {
					$cookieString .= $cookie['name'] . "=" . $cookie['value'] . "; ";
				}
				$cookieString = rtrim($cookieString, "; ");

				// ==== 3. Akses halaman dashboard dengan cookies ====
				$ch = curl_init();
				curl_setopt($ch, CURLOPT_URL, $url);
				curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
				curl_setopt($ch, CURLOPT_HTTPHEADER, [
					"Cookie: $cookieString",
					"User-Agent: Mozilla/5.0",
				]);

				$data = curl_exec($ch);
				curl_close($ch);
				//var_dump($data);
				// --- HASIL LAPORAN ---
				// echo "=== HASIL LAPORAN ===\n";
				$rawdata1 = json_decode($data)->data;
					foreach ($rawdata1 as $rowData) {
							if (substr($rowData->no_spta, 0, 2) == 'SG') {

							$insertData = [
								'no_spta' => $rowData->no_spta,
								'afd' => $rowData->afd,
								'nomer_kontrak' => $rowData->nomer_kontrak,
								'nomer_petak' => $rowData->nomer_petak,
								'kebun' => $rowData->kebun,
								'nama_petani' => $rowData->nama_petani,
								'kategori' => $rowData->kategori,
								'pembayaran' => $rowData->pembayaran,
								'blok' => $rowData->blok,
								'mandor' => $rowData->mandor,
								'pta' => $rowData->pta,
								'no_truk' => $rowData->no_truk,
								'no_trans' => $rowData->no_trans,
								'truk' => $rowData->truk,
								'lori' => $rowData->lori,
								'odong2' => $rowData->odong2,
								'traktor' => $rowData->traktor,
								'hektar' => $rowData->ha_tertebang,
								'bruto_kg' => str_replace(',', '', $rowData->bruto),
								'tara_kg' => str_replace(',', '', $rowData->tara),
								'netto_kg' => str_replace(',', '', $rowData->netto),
								'rafaksi_kg' => str_replace(',', '', $rowData->rafaksi),
								'netto_final_kg' => str_replace(',', '', $rowData->netto_final),
								'kode_timbangan' => $rowData->kode_timbangan,
								'kategori_tebang' => $rowData->kategori_tebang,
								'jenis_tebangan' => $rowData->jenis_tebangan,
								'jenis_tebu' => $rowData->jenis_tebu,
								'range_jarak' => $rowData->range_jarak,
								'no_trainstat' => $rowData->no_trainstat,
								'no_hv' => $rowData->no_hv,
								'op_hv' => $rowData->op_hv,
								'no_stipping' => $rowData->no_stipping,
								'op_stipping' => $rowData->op_stipping,
								'tgl_netto' => $rowData->tgl_netto,
								'no_analisa' => $rowData->no_analisa,
								'tgl_timbang' => $rowData->tgl_timbang,
								// Map other columns as needed
							];
							if (substr($rowData->kategori, 0, 2) == 'TS') {
								\DB::table('data_timbangan')->updateOrInsert(
									['no_spta' => $rowData->no_spta], // Assuming 'no_spta' is the unique key
									$insertData
								);
							}
						}

						}
					if ($data) {
						return response()->json(array('status' => 'success', 'message' => 'Data successfully imported'));
					} else {
						return response()->json(array('status' => 'error', 'message' => 'No data found'));
					}
	}

	function getdatamejatebunew(Request $request){
		config(['app.debug' => true]);
			$tgl1 = $request->input('tgl1');
			$tgl2 = $request->input('tgl2');
			$pg = $request->input('pabrik_gula');
			$baseUrl = "https://prodis.sinergigula.com";
			$loginUrl = $baseUrl . "/login";
			$laporanUrl = $baseUrl . "/laporan-meja-tebu/get-laporan";

			

				// Build query parameters dynamically
				$queryParams = [
					'jangka_waktu' => 1,
					'periode_tanggal_mulai' => $tgl1,
					'periode_tanggal_selesai' => $tgl2,
					'bulan' => 1,
					'tahun' => 2025,
					'jenis_laporan' => 2,
					'metode_tma' => '',
					'kode_blok_filter' => ''
				];

				$url = "https://prodis.sinergigula.com/laporan-meja-tebu/get-laporan?" . http_build_query($queryParams);

				$cookieRow = \DB::table('master_cookie_prodis_pg')->where('kode_pg', $pg)->first();
				if (!$cookieRow || empty($cookieRow->cookie)) {
					return response()->json(['status' => 'error', 'message' => 'Cookie not found for this PG']);
				}
				$cookies_json = $cookieRow->cookie;
				$cookies = json_decode($cookies_json, true);

				$cookieString = "";
				foreach ($cookies as $cookie) {
					$cookieString .= $cookie['name'] . "=" . $cookie['value'] . "; ";
				}
				$cookieString = rtrim($cookieString, "; ");

				// ==== 3. Akses halaman dashboard dengan cookies ====
				$ch = curl_init();
				curl_setopt($ch, CURLOPT_URL, $url);
				curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
				curl_setopt($ch, CURLOPT_HTTPHEADER, [
					"Cookie: $cookieString",
					"User-Agent: Mozilla/5.0",
				]);

				$data = curl_exec($ch);
				curl_close($ch);

				// --- HASIL LAPORAN ---
				// echo "=== HASIL LAPORAN ===\n";
				$rawdata1 = json_decode($data)->data;
					foreach ($rawdata1 as $rowData) {
							if (substr($rowData->no_spta, 0, 2) == 'SG') {

							$insertData = [
								'mt' => $rowData->no_mt,
								'no_analisa' => $rowData->no_analisa,
								'no_spta' => $rowData->no_spta,
								'afd' => $rowData->afd,
								'mandor' => $rowData->mandor,
								'pta' => $rowData->pta,
								'no_petak' => $rowData->nomer_petak,
								'kebun' => $rowData->kebun,
								'kategori' => $rowData->kategori,
								'angkutan' => $rowData->jenis_angkutan,
								'no_angkutan' => $rowData->no_truk,
								'transloading' => $rowData->no_trans,
								'netto' => str_replace(',', '', $rowData->netto),
								'brix' => '',
								'ph' => '',
								'terbakar' => $rowData->terbakar,
								'kualitas' => $rowData->kualitas,
								'ha_tertebang' => $rowData->ha_tertebang,
								'tebang' => (function($v){
									if(empty($v)) return null;
									$dt = \DateTime::createFromFormat('d-m-Y H:i', $v);
									return $dt ? $dt->format('Y-m-d H:i') : null;
								})($rowData->tgl_tebang),
								'selektor' => (function($v){
									if(empty($v)) return null;
									$dt = \DateTime::createFromFormat('d-m-Y H:i', $v);
									return $dt ? $dt->format('Y-m-d H:i') : null;
								})($rowData->tgl_selektor),
								'meja_tebu' => (function($v){
									if(empty($v)) return null;
									$dt = \DateTime::createFromFormat('d-m-Y H:i', $v);
									return $dt ? $dt->format('Y-m-d H:i') : null;
								})($rowData->tgl_meja_tebu),
								'cut_to_crush' => $rowData->tgl_cut,
								'foto' => '',
								'tgl_giling' => (function($v){
									if(empty($v)) return null;
									// Try d-m-Y H:i
									$dt = \DateTime::createFromFormat('d-m-Y H:i', $v);
									if($dt) return $dt->format('Y-m-d');
									// Try d-m-Y
									$dt = \DateTime::createFromFormat('d-m-Y', $v);
									if($dt) return $dt->format('Y-m-d');
									// Fallback to strtotime
									$ts = strtotime($v);
									return $ts ? date('Y-m-d', $ts) : null;
								})($rowData->tgl_giling),
								
								// Map other columns as needed
							];
							if (substr($rowData->kategori, 0, 2) == 'TS') {
								\DB::table('data_meja_tebu')->updateOrInsert(
									['no_spta' => $rowData->no_spta], // Assuming 'no_spta' is the unique key
									$insertData
								);
							}
						}
							// var_dump($rowData[1]);
						}
					if ($data) {
						return response()->json(array('status' => 'success', 'message' => 'Data successfully imported'));
					} else {
						return response()->json(array('status' => 'error', 'message' => 'No data found'));
					}
	}

	function getdataselektor(Request $request){
		config(['app.debug' => true]);
			$tgl1 = $request->input('tgl1');
			$tgl2 = $request->input('tgl2');
			$pg = $request->input('pabrik_gula');
			$baseUrl = "https://prodis.sinergigula.com";
			$loginUrl = $baseUrl . "/login";
			$laporanUrl = $baseUrl . "/laporan-selektor/get-laporan";
 
			

				// Build query parameters dynamically
				$queryParams = [
					'jangka_waktu' => 1,
					'periode_tanggal_mulai' => $tgl1,
					'periode_tanggal_selesai' => $tgl2,
					'bulan' => 1,
					'tahun' => 2025,
					'asal_blok' => '',
					'jenis_angkutan' => '',
					'jenis_laporan' => 2,
					'affdeling' => '',
					'jenis_pembayaran' => '',
					'kode_blok_filter' => ''
				];

				$url = "https://prodis.sinergigula.com/laporan-selektor/get-laporan?" . http_build_query($queryParams);

				$cookieRow = \DB::table('master_cookie_prodis_pg')->where('kode_pg', $pg)->first();
				if (!$cookieRow || empty($cookieRow->cookie)) {
					return response()->json(['status' => 'error', 'message' => 'Cookie not found for this PG']);
				}
				$cookies_json = $cookieRow->cookie;
				$cookies = json_decode($cookies_json, true);

				$cookieString = "";
				foreach ($cookies as $cookie) {
					$cookieString .= $cookie['name'] . "=" . $cookie['value'] . "; ";
				}
				$cookieString = rtrim($cookieString, "; ");

				// ==== 3. Akses halaman dashboard dengan cookies ====
				$ch = curl_init();
				curl_setopt($ch, CURLOPT_URL, $url);
				curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
				curl_setopt($ch, CURLOPT_HTTPHEADER, [
						"Cookie: $cookieString",
						"User-Agent: Mozilla/5.0",
				]);

				$data = curl_exec($ch);
				curl_close($ch);

				// --- HASIL LAPORAN ---
				// echo "=== HASIL LAPORAN ===\n";
				$rawdata1 = json_decode($data)->data;
					foreach ($rawdata1 as $rowData) {
							if (substr($rowData->no_spta, 0, 2) == 'SG') {

							$insertData = [
								'no_urut' => $rowData->no_antrian ?? null,
								'no_rfid' => $rowData->no_rfid ?? null,
								'no_spta' => $rowData->no_spta ?? null,
								'afd' => $rowData->afd ?? null,
								'mandor' => $rowData->mandor ?? null,
								'pta' => $rowData->pta ?? null,
								'no_kontrak' => $rowData->nomer_kontrak ?? null,
								'no_petak' => $rowData->nomer_petak ?? null,
								'kebun' => $rowData->kebun ?? null,
								'id_petani' => $rowData->id_petani ?? null,
								'nama_petani' => $rowData->nama_petani ?? null,
								'kategori' => $rowData->kategori ?? null,
								'pembayaran' => $rowData->pembayaran ?? null,
								'jenis_angkutan' => $rowData->jenis_angkutan ?? null,
								'angkutan' => $rowData->angkutan ?? null,
								'no_angkutan' => $rowData->no_angkutan ?? null,
								'supir' => $rowData->supir ?? null,
								'terbakar' => $rowData->terbakar ?? null,
								'tebang' => $rowData->tebang ?? null,
								'selektor' => $rowData->selektor ?? null,
								'bruto' => $rowData->bruto ?? null,
								'tara' => $rowData->tara ?? null,
								'netto' => $rowData->netto ?? null,
								'ditolak' => $rowData->ditolak ?? null,
								'alasan' => $rowData->alasan ?? null,
								'user' => $rowData->created_by ?? null,
								'no_analisa' => $rowData->no_analisa ?? null,
								'tgl_selektor' => $rowData->tgl_urut ?? null,
							];
							if (substr($rowData->kategori, 0, 2) == 'TS') {
								\DB::table('data_selektor')->updateOrInsert(
									['no_spta' => $rowData->no_spta], // Assuming 'no_spta' is the unique key
									$insertData
								);
							}
						}
							// var_dump($rowData[1]);
						}
					if ($data) {
						return response()->json(array('status' => 'success', 'message' => 'Data successfully imported'));
					} else {
						return response()->json(array('status' => 'error', 'message' => 'No data found'));
					}
	}
}