<?php 
if(isset($_GET['fakturRtnPembelian'])){
doTableJSON($_GET['fakturRtnPembelian'],array(
"id",
"date",
"faktur",
"faktur_pembelian",
"supplier_id",
"return_total",
"return_dibayar",
"return_sisa"
),"WHERE mode='return pembelian'");
}
else
	
if(isset($_GET['startDate']) AND isset($_GET['filterRtnPembelian'])){
	

$startDate=explode('/',$_GET['startDate']);	
$startDate=$startDate[2].'-'.$startDate[1].'-'.$startDate[0];	

$endDate=explode('/',$_GET['endDate']);	
$endDate=$endDate[2].'-'.$endDate[1].'-'.$endDate[0];	
	
doTableJSON($_GET['filterRtnPembelian'],array(
"id",
"date",
"faktur",
"faktur_pembelian",
"supplier_id",
"return_total",
"return_dibayar",
"return_sisa"
),"WHERE mode='return pembelian' AND date>='".$startDate."' AND date<='".$endDate."' ");
}
else
if(isset($_GET['totalRtnPembelian'])){
$rtnPembelian=sumData('faktur','grand_total',"WHERE mode='return pembelian'");

?>	
<table class="table">
<tr>
<td><h3>Total Return Pembelian </h3></td><td> <h3><?php echo currency($rtnPembelian);?></h3></td>
</tr>
</table>
<?php
}
else
if(isset($_GET['totalRtnPembelianFilter'])){
$startDate=explode('/',$_GET['startDate']);	
$startDate=$startDate[2].'-'.$startDate[1].'-'.$startDate[0];	

$endDate=explode('/',$_GET['endDate']);	
$endDate=$endDate[2].'-'.$endDate[1].'-'.$endDate[0];	

$rtnPembelian=sumData('faktur','grand_total',"WHERE mode='return pembelian'  AND date>='".$startDate."' AND date<='".$endDate."'  ");

	?>
	
<table class="table">
<tr>
<td><h3>Total Return Pembelian </h3></td><td> <h3><?php echo currency($rtnPembelian);?></h3></td>
</tr>

</table>
<?php
}

elseif(isset($_GET['tableFakturBarang'])){
	if(isset($_GET['fakturPembelian'])){
		$faktur=$_GET['fakturPembelian'];
	}else{
		$faktur=1;
	}
	// Hanya tampilkan barang yang belum direturn (qty > 0 setelah return)
	// Exclude barang yang sudah direturn semua (qty = 0)
doTableJSON($_GET['tableFakturBarang'],array(
"id",
"faktur",
"date",
"kode_barang",
"nama_barang",
"harga",
"qty",
"total"
),"WHERE status=2 AND faktur='".$faktur."' AND qty > 0");
}
elseif(isset($_GET['tableRtnPembelian'])){
doTableJSON($_GET['tableRtnPembelian'],array(
"id",
"kode_barang",
"nama_barang",
"harga",
"qty",
"total"
),"WHERE status=1");
}elseif(isset($_GET['addCartRtnBeli'])){
	$barang=doTableArray("daftar_barang",array("id_barang","nama_barang","harga_beli"),"where kode_barang='".$_GET['kode_barang']."'");
	
	// Validasi array barang
	if(!is_array($barang) || count($barang) == 0 || !isset($barang[0]) || !is_array($barang[0])){
		echo '0'; // Barang tidak ditemukan
		exit;
	}
	
	$id_barang=isset($barang[0][0]) ? $barang[0][0] : 0;
	$nama_barang=isset($barang[0][1]) ? $barang[0][1] : '';
	$harga=isset($barang[0][2]) ? floatval($barang[0][2]) : 0;
	$qty=intval($_GET['qty']);
	if($qty <= 0){
		$qty = 1;
	}
	$checkCart=checkData($_GET['addCartRtnBeli'],"WHERE kode_barang='".$_GET['kode_barang']."' AND status=1 ");
	$total=$harga*$qty;
	if($checkCart <1){

		doInsert($_GET['addCartRtnBeli'],
		"
		id_barang,kode_barang,nama_barang,harga,qty,faktur,date,total,status,session
		",
		"
		'".$id_barang."',
		'".$_GET['kode_barang']."',
		'".$nama_barang."',
		'".$harga."',
		'".$qty."',
		'".$_GET['faktur']."',
		'".date("Y-m-d")."',
		'".$total."',
		'1',
		'".$_GET['user_id']."'
		");
	}else{
		doUpdate($_GET['addCartRtnBeli'],"qty=qty+".$qty.",total=total+".$total."","WHERE kode_barang='".$_GET['kode_barang']."' AND status=1");
	}

}
elseif(isset($_GET['inputRtnPembelian'])){



	$user_id=$_GET['user_id'];	
	$date=$_GET['date'];
	$getDate=explode("/",$date);
	$tanggal=$getDate[0];
	$bulan=$getDate[1];
	$tahun=$getDate[2];
	$date=$tahun."-".$bulan."-".$tanggal;
	$faktur=$_GET['faktur'];
	$faktur_pembelian=$_GET['fakturPembelian'];

	$total=xCurrency($_GET['total']);
	
		// Return pembelian mengurangi pengeluaran, jadi pemasukan = 0, pengeluaran = 0 (karena sudah dikurangi di faktur pembelian)
		doInsert("faktur",
		"
		faktur,supplier_id,tanggal,bulan,tahun,date,total,
		pengeluaran,pemasukan,voucher,diskon,grand_total,dibayar,kembali,mode,
		keterangan,status,hutang,hutang_dibayar,hutang_sisa,tempo,
		user_id
		",
		"
		'".$faktur."',
		'0',
		'".$tanggal."',
		'".$bulan."',
		'".$tahun."',
		'".$date."',
		'".$total."',
		'0',
		'0',
		'0',
		'0',
		'".$total."',
		'".$total."',
		'0',
		'return pembelian',
		'Return Pembelian : ".$faktur_pembelian."',
		'tunai',
		'0',
		'0',
		'0',
		'0',
		'".$user_id."'
		");
		
		doInsert("return_barang",
		"
		faktur,supplier_id,tanggal,bulan,tahun,date,total,
		return_pembelian,return_penjualan,dibayar,mode,
		keterangan,status,return_total,return_dibayar,return_sisa,
		user_id,faktur_pembelian
		",
		"
		'".$faktur."',
		'".getFakturSupplier($faktur_pembelian)."',
		'".$tanggal."',
		'".$bulan."',
		'".$tahun."',
		'".$date."',
		'".$total."',
		'".$total."',
		'0',
		'".$total."',
		'return pembelian',
		'Return Pembelian : ".$faktur_pembelian."',
		'tunai',
		'".$total."',
		'".$total."',
		'0',
		'".$user_id."',
		'".$faktur_pembelian."'
		");
		
		$items=doTableArray("return_pembelian",array("qty","id_barang","harga"),"WHERE status=1");
		$total_return_all = 0; // Total semua return untuk update faktur pembelian
		
		if(is_array($items) && count($items) > 0){
			foreach($items as $row){
				if(!isset($row[0]) || !isset($row[1]) || !isset($row[2])){
					continue;
				}
				$qty_return = intval($row[0]);
				$id_barang = intval($row[1]);
				$harga = floatval($row[2]);
				
				if($qty_return <= 0 || $id_barang <= 0){
					continue;
				}
				
				// Hitung total return untuk item ini
				$total_return_item = $harga * $qty_return;
				$total_return_all += $total_return_item;
				
				// Update stok - kurangi stok karena return pembelian (barang dikembalikan ke supplier)
				// Ambil stok saat ini untuk validasi
				$stokData=doTableArray("daftar_barang",array("stok"),"WHERE id_barang='".$id_barang."'");
				$stok_sekarang = 0;
				if(is_array($stokData) && count($stokData) > 0 && isset($stokData[0][0])){
					$stok_sekarang = intval($stokData[0][0]);
				}
				
				// Hanya kurangi stok jika stok cukup
				if($stok_sekarang >= $qty_return){
					doUpdate("daftar_barang",
					"stok=stok-".$qty_return."
					",
					"WHERE id_barang='".$id_barang."'"
					);
				}
				
				// Update kasir_pembelian - kurangi qty dan hitung ulang total
				// Ambil qty dan harga dari kasir_pembelian
				$kasirData=doTableArray("kasir_pembelian",array("qty","harga"),"WHERE id_barang='".$id_barang."' AND faktur='".$faktur_pembelian."' AND status=2");
				if(is_array($kasirData) && count($kasirData) > 0 && isset($kasirData[0][0]) && isset($kasirData[0][1])){
					$qty_lama = intval($kasirData[0][0]);
					$harga_kasir = floatval($kasirData[0][1]);
					$qty_baru = $qty_lama - $qty_return;
					if($qty_baru < 0){
						$qty_baru = 0;
					}
					$total_baru = $harga_kasir * $qty_baru;
					
					doUpdate("kasir_pembelian",
					"qty=".$qty_baru.", total=".$total_baru."
					",
					"WHERE id_barang='".$id_barang."' AND faktur='".$faktur_pembelian."' AND status=2"
					);
				}
			}
		}
		
		// Update faktur pembelian - kurangi total, grand_total, pengeluaran, dan hutang jika kredit
		// Ambil data faktur pembelian
		$fakturData=doTableArray("faktur",array("total","grand_total","pengeluaran","hutang","hutang_sisa","status"),"WHERE faktur='".$faktur_pembelian."'");
		if(is_array($fakturData) && count($fakturData) > 0 && isset($fakturData[0])){
			$total_faktur = isset($fakturData[0][0]) ? floatval($fakturData[0][0]) : 0;
			$grand_total_faktur = isset($fakturData[0][1]) ? floatval($fakturData[0][1]) : 0;
			$pengeluaran_faktur = isset($fakturData[0][2]) ? floatval($fakturData[0][2]) : 0;
			$hutang_faktur = isset($fakturData[0][3]) ? floatval($fakturData[0][3]) : 0;
			$hutang_sisa_faktur = isset($fakturData[0][4]) ? floatval($fakturData[0][4]) : 0;
			$status_faktur = isset($fakturData[0][5]) ? $fakturData[0][5] : 'tunai';
			
			// Kurangi total, grand_total, dan pengeluaran
			$total_faktur_baru = $total_faktur - $total_return_all;
			if($total_faktur_baru < 0){
				$total_faktur_baru = 0;
			}
			$grand_total_faktur_baru = $grand_total_faktur - $total_return_all;
			if($grand_total_faktur_baru < 0){
				$grand_total_faktur_baru = 0;
			}
			$pengeluaran_faktur_baru = $pengeluaran_faktur - $total_return_all;
			if($pengeluaran_faktur_baru < 0){
				$pengeluaran_faktur_baru = 0;
			}
			
			// Jika status kredit, kurangi juga hutang
			if($status_faktur == 'kredit'){
				$hutang_sisa_baru = $hutang_sisa_faktur - $total_return_all;
				if($hutang_sisa_baru < 0){
					$hutang_sisa_baru = 0;
				}
				$hutang_baru = $hutang_faktur - $total_return_all;
				if($hutang_baru < 0){
					$hutang_baru = 0;
				}
				
				// Update faktur dengan mengurangi hutang
				doUpdate("faktur",
				"total=".$total_faktur_baru.",
				grand_total=".$grand_total_faktur_baru.",
				pengeluaran=".$pengeluaran_faktur_baru.",
				hutang=".$hutang_baru.",
				hutang_sisa=".$hutang_sisa_baru."
				",
				"WHERE faktur='".$faktur_pembelian."'"
				);
			} else {
				// Jika tunai, hanya kurangi total, grand_total, dan pengeluaran
				doUpdate("faktur",
				"total=".$total_faktur_baru.",
				grand_total=".$grand_total_faktur_baru.",
				pengeluaran=".$pengeluaran_faktur_baru."
				",
				"WHERE faktur='".$faktur_pembelian."'"
				);
			}
		}		
		doUpdate("return_pembelian", //tabel:kasir_penjualan
		"
		date='".$date."',
		faktur='".$faktur."',
		status='2'

		",
		"WHERE status='1'"
		);	


}
else
if(isset($_GET['dataRtnPembelian'])){
	
$items=doTableArray("return_pembelian",array("kode_barang","nama_barang","harga","qty","total","faktur"),"WHERE status=2 AND faktur='".$_GET['faktur']."'");
$faktur=doTableArray("return_barang",array("date","supplier_id","return_pembelian"),"where faktur='".$_GET['faktur']."'");

// Validasi array faktur
if(!is_array($faktur) || count($faktur) == 0 || !isset($faktur[0]) || !is_array($faktur[0])){
	echo '<div class="alert alert-danger">Data return tidak ditemukan</div>';
	exit;
}

$date= isset($faktur[0][0]) ? $faktur[0][0] : date('Y-m-d');
$supplier_id= isset($faktur[0][1]) ? intval($faktur[0][1]) : 0;
$return= isset($faktur[0][2]) ? floatval($faktur[0][2]) : 0;

if(intval($supplier_id) !='' && intval($supplier_id)!=0){
	$supplier=doTableArray("supplier",array("nama_supplier","alamat","kota"),"where id='".intval($supplier_id)."'");
	if(is_array($supplier) && count($supplier) > 0 && isset($supplier[0])){
		$nama_supplier=isset($supplier[0][0]) ? $supplier[0][0] : '-';
		$alamat=isset($supplier[0][1]) ? $supplier[0][1] : '';
		$kota=isset($supplier[0][2]) ? $supplier[0][2] : '';
	}else{
		$nama_supplier='-';
		$alamat='';
		$kota='';
	}
}else{
	$nama_supplier='-';
	$alamat='';
	$kota='';
}

?>
<div style="overflow-y: auto; height:430px; ">
<div id="printArea">
<div class="title" style="margin-bottom:10px;text-align:left">
<b><?php echo getPengaturan('nama_toko');?></b>
<br>
<small><?php echo getPengaturan('alamat');?> Telp/HP <?php echo getPengaturan('no_hp');?></small>
</div>
<table class="table">
<tr>
<td style="width:150px">Tanggal</td><td style="width:30px">:</td><td><?php echo $date;?></td>
<td >Supplier</td><td style="width:30px">:</td><td><?php echo $nama_supplier;?></td>
</tr>
<tr>
<td style="width:150px">No Return Pembelian</td><td>:</td><td><?php echo $_GET['faktur'];?></td>
<td >Alamat</td><td style="width:30px">:</td><td><?php echo $alamat;?> <?php echo $kota;?></td>
</tr>
</table>

<table class="table " id="dataPenjualan" cellspacing="0">
  <thead>
	<tr>
	  <th style="width:50px">No</th>
	  <th>Kode</th>
	  <th>Nama Barang</th>
	  <th>Harga</th>
	  <th>Qty</th>
	  <th >Total</th>
	</tr>
  </thead>
  <tbody >
  <?php
  $i=1;
	foreach($items as $row){
	  echo '<tr>';
	  echo '<td>'.$i.'</td>';
	  echo '<td>'.$row[0].'</td>';
	  echo '<td>'.$row[1].'</td>';
	  echo '<td>'. currency($row[2]).'</td>';
	  echo '<td>'.$row[3].'</td>';
	  echo '<td>'. currency($row[4]).'</td>';
	  echo '</tr>';
	  $i++; 	  
  }  
  ?>
  <tr><td colspan=3></td><td colspan=2><b>Total</b></td><td><?php echo currency($return);?></td></tr>
  </tbody>
  </table> 
<input id="fakturRtnBeli" value="<?php echo $_GET['faktur'];?>" hidden >
</div>
</div>
<?php
}