<?php

require_once "config.php";
header('Content-Type: application/json');
$method = $_SERVER['REQUEST_METHOD'];

switch ($method) {
    case 'GET':
        $ckode = $_GET['ckode'];
        $inputQty = $_GET['qty'];

        $stmt = $conn->prepare("SELECT cSat1, nIsi, cSat2, nIsi2, cSat3, nHrgJualPerPcs FROM tbbarang WHERE cKode = ?");
        $stmt->bind_param("s", $ckode);
        $stmt->execute();

        $result = $stmt->get_result();
        
        // Ambil satu baris data saja
        $row = $result->fetch_assoc();
        
        // Jika data ditemukan
        if ($row) {
            $row['nIsi'] = intval($row['nIsi']);
            $row['nIsi2'] = intval($row['nIsi2']);
            $row['nHrgJualPerPcs'] = intval($row['nHrgJualPerPcs']);
            
            $row['cSat1_hasil'] = intval(floatval($row['nIsi']));
            $row['cSat2_hasil'] = intval(floatval($row['nIsi2']));
            $row['cSat3_hasil'] = 1;
            
            $remainingQty = $inputQty;

            $cSat1Qty = 0;
            $cSat2Qty = 0;
            $cSat3Qty = 0;

            while ($remainingQty > 0) {

                
                if ($remainingQty >= $row['cSat1_hasil']) {
                    $cSat1Qty++;
                    $remainingQty -= $row['cSat1_hasil'];
                } elseif ($remainingQty >= $row['cSat2_hasil']) {
                    $cSat2Qty++;
                    $remainingQty -= $row['cSat2_hasil'];
                } elseif ($remainingQty >= $row['cSat3_hasil']) {
                    $cSat3Qty++;
                    $remainingQty -= $row['cSat3_hasil'];
                } else {
                    break;
                }
                
            }
            // Array untuk menyimpan semua detail satuan (cSat1, cSat2, cSat3)
            $details = [];

            // Menambahkan detail satuan cSat1
            if ($cSat1Qty > 0) {
                $stmt_cSat1 = $conn->prepare("SELECT cKode, cNama, cSat, QtyMin, HargaPerPcs FROM vwqtyhargabarang WHERE cKode = ? AND cSat = ?");
                $stmt_cSat1->bind_param("ss", $ckode, $row['cSat1']);
                $stmt_cSat1->execute();
                $result_cSat1 = $stmt_cSat1->get_result()->fetch_assoc();
                $result_cSat1['dapet'] = $cSat1Qty;  // Ganti cSat1_hasilQTY menjadi dapet
                $details[] = $result_cSat1;
                $stmt_cSat1->close();
            }

            // Menambahkan detail satuan cSat2
            if ($cSat2Qty > 0) {
                $stmt_cSat2 = $conn->prepare("SELECT cKode, cNama, cSat, QtyMin, HargaPerPcs FROM vwqtyhargabarang WHERE cKode = ? AND cSat = ?");
                $stmt_cSat2->bind_param("ss", $ckode, $row['cSat2']);
                $stmt_cSat2->execute();
                $result_cSat2 = $stmt_cSat2->get_result()->fetch_assoc();
                // $result_cSat2['dapet'] = $row['cSat2_hasil'];  
                // $result_cSat2['dapet'] = $cSat2Qty;  
                $result_cSat2['dapet'] = $inputQty;
                $details[] = $result_cSat2;
                $stmt_cSat2->close();
            }

            // Menambahkan detail satuan cSat3
            if ($cSat3Qty > 0) {
                $stmt_cSat3 = $conn->prepare("SELECT cKode, cNama, cSat, QtyMin, HargaPerPcs FROM vwqtyhargabarang WHERE cKode = ? AND cSat = ?");
                $stmt_cSat3->bind_param("ss", $ckode, $row['cSat3']);
                $stmt_cSat3->execute();
                $result_cSat3 = $stmt_cSat3->get_result()->fetch_assoc();
                $result_cSat3['dapet'] = $cSat3Qty;  // Ganti cSat3_hasilQTY menjadi dapet
                $details[] = $result_cSat3;
                $stmt_cSat3->close();
            }

            // Menambahkan objek utama ke dalam array (detail utama dan satuan yang dihitung)
            // Menggabungkan objek-objek yang ada ke dalam array output
            $output = array_merge($details);  // Menggabungkan objek-objek satuan
            
            // Hanya mengembalikan array dari objek satuan
            echo json_encode($output);

        } else {
            echo json_encode(array("error" => "Data not found."));
        }

        $stmt->close();
        break;

    default:
        echo json_encode(array("error" => "Unsupported request method."));
        break;
}

$conn->close();
?>
