<?php 
if(isset($_POST['barcode'])){
	$id_barang=getBarang("id_barang","WHERE kode_barang='".$_POST['barcode']."'");
	$nama_barang=getBarang("nama_barang","WHERE kode_barang='".$_POST['barcode']."'");
	$stok=getBarang("stok","WHERE kode_barang='".$_POST['barcode']."'");
	$kategori=getBarang("kategori_barang","WHERE kode_barang='".$_POST['barcode']."'");
	$barcode= $_POST['barcode'];
	
	// Cek stok - jika stok 0 dan bukan jasa, tidak bisa dijual
	if(strtolower($kategori) != 'jasa' && intval($stok) <= 0){
		echo "0||".$barcode."||Stok Habis";
	} else {
		echo $id_barang."||".$barcode."||".$nama_barang;
	}
}

if(isset($_GET['tableKasir'])){
doTableJSON($_GET['tableKasir'],array(
"id",
"kode_barang",
"nama_barang",
"harga",
"qty",
"satuan",
"total",
"faktur",
"id_barang",
"date",

),"WHERE status=1 AND session='".userID($_SESSION['user'])."'");
}

elseif(isset($_GET['stokCart'])){
$items=doTableArray("daftar_barang",array("stok"),"WHERE id_barang='".$_GET['stokCart']."'");
// Validasi array sebelum akses (PHP 8 compatible)
if(is_array($items) && count($items) > 0 && isset($items[0][0])){
	echo $items[0][0];
} else {
	echo "0";
}

}

elseif(isset($_GET['kasirBarang'])){
// Hanya tampilkan barang yang stok > 0 atau kategori jasa (jasa tidak perlu stok)
doTableJSON($_GET['kasirBarang'],array(
"id_barang",
"kode_barang",
"nama_barang",
"harga_jual",
"stok",
"satuan",
"kategori_barang",
"stok_minimal",
"satuanJual1",
"satuanJual2",
"satuanJual3",
"hargaJual1",
"hargaJual2",
"hargaJual3",
),"WHERE (stok > 0 OR kategori_barang = 'jasa' OR kategori_barang = 'Jasa') ORDER BY id_barang DESC");
}

elseif(isset($_GET['totalSum'])){
$total= sumData($_GET['totalSum'],'total',"WHERE status=1 AND session='".userID($_SESSION['user'])."'");
echo'<div class="input-group" >
<span class="input-group-btn"><button class="btn " type="button" style="font-size:40px;">TOTAL  </button></span>
<input id="totalGrandKasir" style="border:2px solid #ccc;background:#f7f774;width:100%;font-size:45px;text-align:right" readonly value="'.currency($total).'"></div>';

}
elseif(isset($_GET['totalSumBayar'])){
$total= sumData($_GET['totalSumBayar'],'total',"WHERE status=1 AND session='".userID($_SESSION['user'])."'");
echo'<input class="form-control"  id="totalBayar"  readonly value="'.$total.'">';
}
elseif(isset($_GET['hitungKembali'])){
$total=floatval(xCurrency($_GET['total']));


$voucher=floatval(xCurrency($_GET['voucher']));
$diskon=floatval(xCurrency($_GET['diskon']));
$diskon=round(($diskon/100) * $total);
if($diskon==0 OR $diskon==""){
	if($voucher!=0 OR $voucher!=''){
		$total=$total-$voucher;
	}else{
		$total=$total;
	}
}else{
$total=$total-$diskon;
}

if($_GET['ongkir']!=0 OR $_GET['ongkir']!=""){
	
$ongkir=floatval(xCurrency($_GET['ongkir']));
$total=$total+$ongkir;
}
if($_GET['pajak']!=0 OR $_GET['pajak']!=""){
	
$pajak=floatval(xCurrency($_GET['pajak']));
$pajak=round(($pajak/100) * $total);
$total=$total+$pajak;
}

$dibayar=floatval(xCurrency($_GET['bayar']));
$kembali=$dibayar-$total;
//echo "<b>Rp. ".currency($kembali)."</b>";

if($kembali>=0){
	echo "<b>Rp. ".currency($kembali)."</b><input id='bayarKurang' style='display:none' value='0'>";
}else{
	echo "<b>Rp. ".currency($kembali)." <br><input id='bayarKurang' style='display:none' value='1'><span style='color:red' > PEMBAYARAN BELUM CUKUP!</span></b>";
}

}
elseif(isset($_GET['hitungTotal'])){
$total=floatval(xCurrency($_GET['total']));
$voucher=floatval(xCurrency($_GET['voucher']));
$diskon=floatval(xCurrency($_GET['diskon']));
$diskon=round(($diskon/100) * $total);
if($diskon==0 OR $diskon==""){
	if($voucher!=0 OR $voucher!=''){
		$total=$total-$voucher;
	}else{
		$total=$total;
	}
}else{
$total=$total-$diskon;
}
if($_GET['ongkir']!=0 OR$_GET['ongkir']!=""){

$ongkir=floatval(xCurrency($_GET['ongkir']));
$total=$total+$ongkir;
}
if($_GET['pajak']!=0 OR$_GET['pajak']!=""){

$pajak=floatval(xCurrency($_GET['pajak']));
$pajak=round(($pajak/100) * $total);
$total=$total+$pajak;
}
echo '<b>Rp.'.currency($total).'</b>';
}
elseif(isset($_GET['kembaliNol'])){
	echo "<b>Rp.0</b>";
}


elseif(isset($_GET['addCart'])){
	$barang=doTableArray("daftar_barang",array("id_barang","nama_barang","harga_jual","harga_beli","hpp"),"where kode_barang='".$_GET['kode_barang']."'");
	// Validasi array sebelum akses (PHP 8 compatible)
	if(!is_array($barang) || count($barang) == 0 || !isset($barang[0][0])){
		echo "Barang tidak ditemukan";
		exit;
	}
	$user_id=$_GET['user_id'];
	$id_barang=$barang[0][0];
	$nama_barang=$barang[0][1];
	$hargaSatuan=explode('|',$_GET['harga']);
	$harga=isset($hargaSatuan[0]) ? $hargaSatuan[0] : 0;
	$satuan=isset($hargaSatuan[1]) ? $hargaSatuan[1] : 'PCS';
	$isi=isset($hargaSatuan[2]) ? $hargaSatuan[2] : 1;
	$isiSatuan=isset($hargaSatuan[3]) ? $hargaSatuan[3] : 1;
	$qtySatuan=$isiSatuan*$_GET['qty'];
	$hpp=isset($barang[0][4]) ? $barang[0][4] : 0;
	$checkCart=checkData($_GET['addCart'],"WHERE kode_barang='".$_GET['kode_barang']."' AND status=1 AND session='".$user_id."' ");
	$total=$harga*$_GET['qty'];
	$total_hpp=$hpp*$qtySatuan;
	if($checkCart <1){

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

}
elseif(isset($_GET['addCartManual'])){
	// Handler untuk input manual barang yang tidak ada di produk
	$user_id=$_GET['user_id'];
	$kode_barang=$_GET['kode_barang']; // Format: MANUAL-timestamp
	$nama_barang=$_GET['nama_barang'];
	$harga=floatval(xCurrency($_GET['harga']));
	$qty=$_GET['qty'];
	$faktur=$_GET['faktur'];
	
	// Untuk manual entry, set nilai default
	$id_barang=0; // 0 untuk manual entry
	$satuan='PCS';
	$isi=1;
	$isiSatuan=1;
	$qtySatuan=$isiSatuan*$qty;
	$hpp=0; // Tidak ada HPP untuk manual entry
	$total_hpp=0;
	
	$checkCart=checkData($_GET['addCartManual'],"WHERE kode_barang='".$kode_barang."' AND status=1 AND session='".$user_id."' ");
	$total=$harga*$qty;
	
	if($checkCart <1){
		doInsert($_GET['addCartManual'],
		"
		id_barang,kode_barang,nama_barang,harga,qty,faktur,date,total,status,hpp,total_hpp,session,satuan,isi,isiSatuan,qtySatuan
		",
		"
		'".$id_barang."',
		'".$kode_barang."',
		'".$nama_barang."',
		'".$harga."',
		'".$qty."',
		'".$faktur."',
		'".date("Y-m-d")."',
		'".$total."',
		'1',
		'".$hpp."',
		'".$total_hpp."',
		'".$user_id."',
		'".$satuan."',
		'".$isi."',
		'".$isiSatuan."',
		'".$qtySatuan."'
		");
	}else{
		doUpdate($_GET['addCartManual'],"qty=qty+".$qty.",total=total+".$total." , qtySatuan=qtySatuan+".$qtySatuan."","WHERE kode_barang='".$kode_barang."' AND status=1 AND session='".$user_id."'");
		doUpdate($_GET['addCartManual'],"total_hpp=qtySatuan*hpp","WHERE kode_barang='".$kode_barang."' AND status=1 AND session='".$user_id."'");
	}
}
elseif(isset($_GET['delCart'])){
doDelete($_GET['tableCart'],"WHERE id=".$_GET['delCart']."");
}

elseif(isset($_GET['updateSupplier'])){
	doUpdate($_GET['updateSupplier'],
	"
	nama_supplier='".$_GET['nama_supplier']."',
	alamat='".$_GET['alamat']."',
	kota='".$_GET['kota']."',
	no_hp='".$_GET['no_hp']."',
	email='".xCurrency($_GET['email'])."',
	website='".xCurrency($_GET['website'])."',
	rekening='".$_GET['rekening']."'
	",
	"WHERE id='".$_GET['id']."'"
	);
}

elseif(isset($_GET['updateCart'])){
	$qty=$_GET['qty'];
	$harga=xCurrency($_GET['harga']);
	$total=$harga*$qty;
	doUpdate($_GET['updateCart'], //tabel:kasir_penjualan
	"
	harga='".$harga."',
	qty='".$_GET['qty']."',
	total='".$total."',
	qtySatuan=isiSatuan*".$qty."
	",
	"WHERE id='".$_GET['id']."'"
	);
	doUpdate($_GET['updateCart'], //tabel:kasir_penjualan
	"total_hpp=hpp*qtySatuan",
	"WHERE id='".$_GET['id']."'"
	);

}
elseif(isset($_GET['plusCart'])){
	$qty=$_GET['plusCart']+1;
	$harga=xCurrency($_GET['harga']);
	$total=$harga*$qty;
	doUpdate($_GET['modeCart'], //tabel:kasir_penjualan
	"
	qty='".$qty."',
	total='".$total."',
	qtySatuan=isiSatuan*".$qty."
	",
	"WHERE id='".$_GET['id']."'"
	);
	doUpdate($_GET['modeCart'], //tabel:kasir_penjualan
	"total_hpp=hpp*qtySatuan",
	"WHERE id='".$_GET['id']."'"
	);
}
elseif(isset($_GET['minusCart'])){
	$qty=$_GET['minusCart']-1;
	$harga=xCurrency($_GET['harga']);
	$total=$harga*$qty;
	doUpdate($_GET['modeCart'], //tabel:kasir_penjualan
	"
	qty='".$qty."',
	total='".$total."',
	qtySatuan=isiSatuan*".$qty."
	",
	"WHERE id='".$_GET['id']."'"
	);
	doUpdate($_GET['modeCart'], //tabel:kasir_penjualan
	"total_hpp=hpp*qtySatuan",
	"WHERE id='".$_GET['id']."'"
	);
}

else
	if(isset($_GET['inputBayar'])){
	
	if($_GET['tempo']!=''){
	$tempo=$_GET['tempo'];
	$getTempo=explode("/",$tempo);
	$tempo=$getTempo[2]."-".$getTempo[1]."-".$getTempo[0];
	}else{
	$tempo=0;	
	}



	$ekspedisi=$_GET['ekspedisi'];
	$user_id=$_GET['user_id'];
	$date=$_GET['date'];
	$getDate=explode("/",$date);
	$tanggal=$getDate[0];
	$bulan=$getDate[1];
	$tahun=$getDate[2];
	$date=$tahun."-".$bulan."-".$tanggal;
	
	$pelanggan_id=$_GET['pelanggan_id'];
	$faktur=$_GET['faktur'];
	$voucher=floatval(xCurrency($_GET['voucher']));

	$total=floatval(xCurrency($_GET['total']));



	$disc=floatval(xCurrency($_GET['diskon']));
	$diskon=floatval(xCurrency($_GET['diskon']));
	$dibayar=floatval(xCurrency($_GET['dibayar']));
	
	$diskon=round(($diskon/100) * $total);
	if($diskon==0 OR $diskon==""){
		if($voucher!=0 OR $voucher!=''){
			$grandTotal=$total-$voucher;
		}else{
			$grandTotal=$total;
		}
	}else{
		$grandTotal=$total-$diskon;
	}

	if($_GET['ongkir']!=0 OR $_GET['ongkir']!=""){
	$ongkir=floatval(xCurrency($_GET['ongkir']));
	$grandTotal=$grandTotal+$ongkir;
	}else{
	$ongkir=0;

	}

	if($_GET['pajak']!=0 OR $_GET['pajak']!=""){
	$pjk=floatval(xCurrency($_GET['pajak']));
	$pajak=floatval(xCurrency($_GET['pajak']));
	$pajak=round(($pajak/100) * $grandTotal);
	$grandTotal=$grandTotal+$pajak;
	}else{
	$pajak=0;
	}
	
	if($_GET['metode']=='tunai'){
	$status='tunai';
	$hutang=0;
	$hutang_dibayar=0;
	$hutang_sisa=0;
	}else{
	
	$status='kredit';
	$hutang=$grandTotal;
	$hutang_dibayar=0;
	$hutang_sisa=$grandTotal;
	}
	$totalHPP=totalHPP($user_id);
	$kembali=$dibayar-$grandTotal;
	$pemasukan=$total-$diskon-$voucher+$pajak;
	$labarugi=$pemasukan-$totalHPP;

	$terjual= sumData('kasir_penjualan','qtySatuan',"WHERE status=1 AND session='".$user_id."'");

	$checkFaktur=checkData('faktur',"WHERE faktur='".$faktur."' ");
if($checkFaktur <1 )
{
		doInsert("faktur",
		"
		faktur,pelanggan_id,tanggal,bulan,tahun,date,total,
		pemasukan,pengeluaran,voucher,diskon,grand_total,dibayar,kembali,
		mode,keterangan,status,hutang,hutang_dibayar,hutang_sisa,tempo,
		user_id,disc,pjk,pajak,ongkir,ekspedisi,total_hpp,laba_rugi,terjual
		",
		"
		'".$faktur."',
		'".$pelanggan_id."',
		'".$tanggal."',
		'".$bulan."',
		'".$tahun."',
		'".$date."',
		'".$total."',
		'".$pemasukan."',
		'0',
		'".$voucher."',
		'".$diskon."',
		'".$grandTotal."',
		'".$dibayar."',
		'".$kembali."',
		'penjualan',
		'Penjualan : ".$faktur."',
		'".$status."',
		'".$hutang."',
		'".$hutang_dibayar."',
		'".$hutang_sisa."',
		'".$tempo."',
		'".$user_id."',
		'".$disc."',
		'".$pjk."',
		'".$pajak."',
		'".$ongkir."',
		'".$ekspedisi."',
		'".$totalHPP."',
		'".$labarugi."',
		'".$terjual."'
		");

		$items=doTableArray("kasir_penjualan",array("qty","id_barang","isi"),"WHERE status=1 AND session='".$user_id."'");
		// Cek apakah array tidak kosong sebelum foreach (PHP 8 compatible)
		if(is_array($items) && count($items) > 0){
			foreach($items as $row){
				// Skip jika row tidak valid atau kosong
				if(!isset($row[0]) || !isset($row[1]) || !isset($row[2])){
					continue;
				}
				// Skip update stok untuk manual entry (id_barang = 0)
				if($row[1] == 0 || $row[1] == '0'){
					continue;
				}
				$isi=getBarang($row[2],"WHERE id_barang='".$row[1]."'");
				if($isi == '' || $isi == null){
					continue;
				}
				$kategori=strtolower(getBarang("kategori_barang","WHERE id_barang='".$row[1]."'"));
				$qty=$row[0]*$isi;
				if($kategori!='jasa')
				{
				doUpdate("daftar_barang", //tabel:kasir_penjualan
					"stok=stok-".intVal($qty).",
					terjual=terjual+".intVal($qty)."
					",
					"WHERE id_barang='".$row[1]."'"
					);
				}else{
				doUpdate("daftar_barang", //tabel:kasir_penjualan
					"terjual=terjual+".intVal($qty)."
					",
					"WHERE id_barang='".$row[1]."'"
					);
				}
			}
		}

		
		doUpdate("kasir_penjualan", //tabel:kasir_penjualan
		"
		date='".$date."',
		faktur='".$faktur."',
		status='2'

		",
		"WHERE status='1' AND session='".$_GET['user_id']."'"
		);
		
} //if faktur
			

}elseif(isset($_GET['printKasir'])){
$items=doTableArray("kasir_penjualan",array("kode_barang","nama_barang","harga","qty","total","faktur","satuan"),"WHERE status=2 AND faktur='".$_GET['faktur']."'");
$faktur=doTableArray("faktur",array("date","pelanggan_id","pemasukan","diskon","voucher","dibayar","kembali","ongkir","pajak"),"where faktur='".$_GET['faktur']."'");
// Validasi array faktur sebelum akses (PHP 8 compatible)
if(!is_array($faktur) || count($faktur) == 0 || !isset($faktur[0])){
	echo "Faktur tidak ditemukan";
	exit;
}
$date= isset($faktur[0][0]) ? $faktur[0][0] : date("Y-m-d");
$pelanggan_id= isset($faktur[0][1]) ? $faktur[0][1] : 0;
$pemasukan= isset($faktur[0][2]) ? $faktur[0][2] : 0;
$diskon= isset($faktur[0][3]) ? $faktur[0][3] : 0;
$voucher= isset($faktur[0][4]) ? $faktur[0][4] : 0;
$dibayar= isset($faktur[0][5]) ? $faktur[0][5] : 0;
$kembali= isset($faktur[0][6]) ? $faktur[0][6] : 0;
$ongkir= isset($faktur[0][7]) ? $faktur[0][7] : 0;
$pajak= isset($faktur[0][8]) ? $faktur[0][8] : 0;
if(intval($pelanggan_id) !='' && intval($pelanggan_id)!=0){
$supplier=doTableArray("pelanggan",array("nama_pelanggan"),"where id='".intval($pelanggan_id)."'");
// Validasi array sebelum akses (PHP 8 compatible)
if(is_array($supplier) && count($supplier) > 0 && isset($supplier[0][0])){
	$nama_pelanggan=$supplier[0][0];
} else {
	$nama_pelanggan='-';
}
}else{
$nama_pelanggan='-';
}


?>
<div >
<div id="printArea">
<table class="table">
<tr>
<td style="width:100px">Tanggal</td><td style="width:30px">:</td><td><?php echo $date;?></td>
<td style="width:100px">Pelanggan</td><td style="width:30px">:</td><td><?php echo $nama_pelanggan;?></td>
</tr>
<tr>
<td>Faktur</td><td>:</td><td><?php echo $_GET['faktur'];?></td>
<td colspan=3></td>
</tr>
</table>

<table class="table " id="dataPenjualan" cellspacing="0">
  <thead>
	<tr>
	  <th>Nama Barang</th>
	  <th>Harga</th>
	  <th>Qty</th>
	  <th>Satuan</th>
	  <th>Total</th>
	</tr>
  </thead>
  <tbody >
  <?php
  $i=1;
	foreach($items as $row){
	  echo '<tr>';
	  echo '<td>'.$row[1].'</td>';
	  echo '<td>'. currency($row[2]).'</td>';
	  echo '<td>'.$row[3].'</td>';
	  echo '<td>'.$row[6].'</td>';
	  echo '<td>'. currency($row[4]).'</td>';
	  echo '</tr>';
	  $i++; 	  
  }   
  ?>
  
<?php if(intval($voucher) != 0 || intval($voucher)!=''){?>  <tr><td colspan=2>Voucher</td><td>:</td><td><?php echo currency(intval($voucher));?></td></tr><?php } ?>
<?php if(intval($diskon) != 0 || intval($diskon)!=''){?>  <tr><td colspan=2>Diskon</td><td>:</td><td><?php echo currency(intval($diskon));?></td></tr><?php } ?>
<?php if(intval($ongkir) != 0 || intval($ongkir)!=''){?>  <tr><td colspan=2>Ongkir</td><td>:</td><td><?php echo currency(intval($ongkir));?></td></tr><?php } ?>
<?php if(intval($pajak) != 0 || intval($pajak)!=''){?>  <tr><td colspan=2>Pajak</td><td>:</td><td><?php echo currency(intval($pajak));?></td></tr><?php } ?>
<tr><td colspan=3>Total</td><td>:</td><td><?php echo currency($pemasukan);?></td></tr>
<tr><td colspan=3>Dibayar</td><td>:</td><td><?php echo  currency(intval ($dibayar));?></td></tr>
<tr><td colspan=3>Kembali</td><td>:</td><td><?php echo  currency(intval ($kembali));?></td></tr>
  </tbody>
  </table> 
</div>
</div>
<?php

}elseif(isset($_GET['loadFaktur'])){
	?>
<div class="input-group" style="margin-top:5px;width:100%">
<span class="input-group-btn"><button class="btn " type="button" >Faktur  &nbsp;&nbsp;</button></span>
<input  class="form-control" type="text" id="faktur" value="<?php echo getFakturID('',$_GET['type']);?>">
</div>
<?php
	
}elseif(isset($_GET['loadDate'])){
	?>
<div class="input-group" >
<span class="input-group-btn"><button class="btn " type="button" >Tanggal  </button></span>
<input  class="form-control" type="text" id="date" value="<?php echo date("d/m/Y");?>">
</div>
<?php
	
}elseif(isset($_GET['fSatuan'])){
if(isset($_GET['idBarang'])){
?>
<div class="input-group" style="margin-top:5px"><span class="input-group-addon">Harga Jual Satuan</span>
<select  id="hargaJual" name="harga" class="form-control">
<?php
$items=doTableArray("daftar_barang",
array(
"hargaJual1",
"hargaJual2",
"hargaJual3",
"hargaJual4",
"hargaJual5",
"hargaJual6",
"hargaJual7",
"satuanJual1",
"satuanJual2",
"satuanJual3",
"satuanJual4",
"satuanJual5",
"satuanJual6",
"satuanJual7",
"isi1",
"isi2",
"isi3",
"isi4",
"isi5",
"isi6",
"isi7"
),"WHERE id_barang=".$_GET['idBarang']."");
// Validasi array sebelum akses (PHP 8 compatible)
if(is_array($items) && count($items) > 0 && isset($items[0])){
	for($i=0;$i<$MLS_LEVEL;$i++)
	{
		$j=$i+1;
		$x=$i+7;
		$y=$i+14;
		$z=$i+18;
		if(isset($items[0][$i]) && floatval(xCurrency($items[0][$i])) >0)
		{
	?>
	<option value="<?php echo xCurrency($items[0][$i]);?>|<?php echo isset($items[0][$x]) ? $items[0][$x] : 'PCS';?>|isi<?=$j;?>|<?php echo isset($items[0][$y]) ? $items[0][$y] : 1;?>"><?php echo currency($items[0][$i]);?> / <?php echo isset($items[0][$x]) ? $items[0][$x] : 'PCS';?></option>

	<?php 
		}
	}
} ?>
</select></div>
<?php
}else{
?>
<div class="input-group" style="margin-top:5px"><span class="input-group-addon">Harga Jual Satuan</span>
<input class="form-control" disabled></div>
<?php
}
}
elseif(isset($_POST['addCart'])){

	$barang=doTableArray("daftar_barang",array("id_barang","nama_barang","harga_jual","harga_beli","hpp","stok","kategori_barang"),"where kode_barang='".$_POST['kode_barang']."'");
	// Validasi array sebelum akses (PHP 8 compatible)
	if(!is_array($barang) || count($barang) == 0 || !isset($barang[0][0])){
		echo "Barang tidak ditemukan";
		exit;
	}
	$user_id=$_POST['user_id'];
	$id_barang=$barang[0][0];
	$nama_barang=$barang[0][1];
	$stok_barang = isset($barang[0][5]) ? intval($barang[0][5]) : 0;
	$kategori_barang = isset($barang[0][6]) ? strtolower($barang[0][6]) : '';
	
	// Cek stok - jika stok 0 dan bukan jasa, tidak bisa dijual
	if($kategori_barang != 'jasa' && $stok_barang <= 0){
		echo "Stok barang habis. Barang tidak dapat dijual.";
		exit;
	}
	$hargaSatuan=explode('|',$_POST['harga']);
	$harga=isset($hargaSatuan[0]) ? $hargaSatuan[0] : 0;
	$satuan=isset($hargaSatuan[1]) ? $hargaSatuan[1] : 'PCS';
	$isi=isset($hargaSatuan[2]) ? $hargaSatuan[2] : 1;
	$isiSatuan=isset($hargaSatuan[3]) ? $hargaSatuan[3] : 1;
	$qtySatuan=$isiSatuan*$_POST['qty'];
	$hpp=isset($barang[0][4]) ? $barang[0][4] : 0;
	$checkCart=checkData($_POST['addCart'],"WHERE kode_barang='".$_POST['kode_barang']."' AND status=1 AND session='".$user_id."' ");
	$total=$harga*$_POST['qty'];
	$total_hpp=$hpp*$qtySatuan;
	if($checkCart <1){

		doInsert($_POST['addCart'],
		"
		id_barang,kode_barang,nama_barang,harga,qty,faktur,date,total,status,hpp,total_hpp,session,satuan,isi,isiSatuan,qtySatuan
		",
		"
		'".$id_barang."',
		'".$_POST['kode_barang']."',
		'".$nama_barang."',
		'".$harga."',
		'".$_POST['qty']."',
		'".$_POST['faktur']."',
		'".date("Y-m-d")."',
		'".$total."',
		'1',
		'".$hpp."',
		'".$total_hpp."',
		'".$user_id."',
		'".$satuan."',
		'".$isi."',
		'".$isiSatuan."',
		'".$qtySatuan."'
		");
	}else{
		doUpdate($_POST['addCart'],"qty=qty+".$_POST['qty'].",total=total+".$total." , qtySatuan=qtySatuan+".$qtySatuan."","WHERE kode_barang='".$_POST['kode_barang']."' AND status=1 AND session='".$_POST['user_id']."'");
		doUpdate($_POST['addCart'],"total_hpp=qtySatuan*hpp","WHERE kode_barang='".$_GET['kode_barang']."' AND status=1 AND session='".$_POST['user_id']."'");
		
	}
	

}

elseif(isset($_POST['inputBayarForm'])){
	
	if(isset($_POST['tempo']) && $_POST['tempo']!=''){
	$tempo=$_POST['tempo'];
	$getTempo=explode("/",$tempo);
	$tempo=$getTempo[2]."-".$getTempo[1]."-".$getTempo[0];
	}else{
	$tempo=0;	
	}



	$ekspedisi=isset($_POST['ekspedisi']) ? $_POST['ekspedisi'] : '';
	$user_id=$_POST['user_id'];
	$date=$_POST['date'];
	$getDate=explode("/",$date);
	$tanggal=$getDate[0];
	$bulan=$getDate[1];
	$tahun=$getDate[2];
	$date=$tahun."-".$bulan."-".$tanggal;
	
	$pelanggan_id=$_POST['pelanggan_id'];
	$faktur=$_POST['faktur'];
	$voucher=floatval(xCurrency($_POST['voucher']));

	$total=floatval(xCurrency($_POST['total']));



	$disc=floatval(xCurrency($_POST['diskon']));
	$diskon=floatval(xCurrency($_POST['diskon']));
	$dibayar=floatval(xCurrency($_POST['dibayar']));
	
	$diskon=round(($diskon/100) * $total);
	if($diskon==0 OR $diskon==""){
		if($voucher!=0 OR $voucher!=''){
			$grandTotal=$total-$voucher;
		}else{
			$grandTotal=$total;
		}
	}else{
		$grandTotal=$total-$diskon;
	}

	if($_POST['ongkir']!=0 OR $_POST['ongkir']!=""){
	$ongkir=floatval(xCurrency($_POST['ongkir']));
	$grandTotal=$grandTotal+$ongkir;
	}else{
	$ongkir=0;

	}

	if($_POST['pajak']!=0 OR $_POST['pajak']!=""){
	$pjk=isset($_POST['pajak']) ? floatval(xCurrency($_POST['pajak'])) : 0;
	$pajak=isset($_POST['pajak']) ? floatval(xCurrency($_POST['pajak'])) : 0;
	$pajak=round(($pajak/100) * $grandTotal);
	$grandTotal=$grandTotal+$pajak;
	}else{
	$pajak=0;
	}
	
	if($_POST['metode']=='tunai'){
	$status='tunai';
	$hutang=0;
	$hutang_dibayar=0;
	$hutang_sisa=0;
	}else{
	
	$status='kredit';
	$hutang=$grandTotal;
	$hutang_dibayar=0;
	$hutang_sisa=$grandTotal;
	}
	$totalHPP=totalHPP($user_id);
	$kembali=$dibayar-$grandTotal;
	$pemasukan=$total-$diskon-$voucher+$pajak;
	$labarugi=$pemasukan-$totalHPP;

	$terjual= sumData('kasir_penjualan','qtySatuan',"WHERE status=1 AND session='".$user_id."'");

	$checkFaktur=checkData('faktur',"WHERE faktur='".$faktur."' ");
if($checkFaktur <1 )
{
		doInsert("faktur",
		"
		faktur,pelanggan_id,tanggal,bulan,tahun,date,total,
		pemasukan,pengeluaran,voucher,diskon,grand_total,dibayar,kembali,
		mode,keterangan,status,hutang,hutang_dibayar,hutang_sisa,tempo,
		user_id,disc,pjk,pajak,ongkir,ekspedisi,total_hpp,laba_rugi,terjual
		",
		"
		'".$faktur."',
		'".$pelanggan_id."',
		'".$tanggal."',
		'".$bulan."',
		'".$tahun."',
		'".$date."',
		'".$total."',
		'".$pemasukan."',
		'0',
		'".$voucher."',
		'".$diskon."',
		'".$grandTotal."',
		'".$dibayar."',
		'".$kembali."',
		'penjualan',
		'Penjualan : ".$faktur."',
		'".$status."',
		'".$hutang."',
		'".$hutang_dibayar."',
		'".$hutang_sisa."',
		'".$tempo."',
		'".$user_id."',
		'".$disc."',
		'".$pjk."',
		'".$pajak."',
		'".$ongkir."',
		'".$ekspedisi."',
		'".$totalHPP."',
		'".$labarugi."',
		'".$terjual."'
		");

		$items=doTableArray("kasir_penjualan",array("qty","id_barang","isi"),"WHERE status=1 AND session='".$user_id."'");
		// Cek apakah array tidak kosong sebelum foreach (PHP 8 compatible)
		if(is_array($items) && count($items) > 0){
			foreach($items as $row){
				// Skip jika row tidak valid atau kosong
				if(!isset($row[0]) || !isset($row[1]) || !isset($row[2])){
					continue;
				}
				// Skip update stok untuk manual entry (id_barang = 0)
				if($row[1] == 0 || $row[1] == '0'){
					continue;
				}
				$isi=getBarang($row[2],"WHERE id_barang='".$row[1]."'");
				if($isi == '' || $isi == null){
					continue;
				}
				$qty=$row[0]*$isi;

				doUpdate("daftar_barang", //tabel:kasir_penjualan
					"stok=stok-".$qty.",
					terjual=terjual+".$qty."
					",
					"WHERE id_barang='".$row[1]."'"
					);
			}
		}
		
		doUpdate("kasir_penjualan", //tabel:kasir_penjualan
		"
		date='".$date."',
		faktur='".$faktur."',
		status='2'

		",
		"WHERE status='1' AND session='".$_POST['user_id']."'"
		);
		
} //if faktur
			

}

?>

