<?php
include 'koneksi.php';
session_start();

if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['edit'])) {
    $id_mutasi = mysqli_real_escape_string($conn, $_POST['id_mutasi']);
    $jumlah_baru = mysqli_real_escape_string($conn, $_POST['jumlah']);
    $keterangan = mysqli_real_escape_string($conn, $_POST['keterangan']);
    
    // Ambil data mutasi lama
    $query_old = "SELECT * FROM mutasi_stok WHERE id_mutasi = '$id_mutasi'";
    $result_old = mysqli_query($conn, $query_old);
    
    if (mysqli_num_rows($result_old) == 0) {
        echo "<script>alert('Mutasi tidak ditemukan!'); window.location='pengeluaranapoteker.php';</script>";
        exit;
    }
    
    $old_data = mysqli_fetch_assoc($result_old);
    $jumlah_lama = $old_data['jumlah'];
    $id_obat = $old_data['id_obat'];
    $id_gudang = $old_data['id_gudang'];
    $tipe = $old_data['tipe'];
    $selisih = $jumlah_baru - $jumlah_lama;
    
    // Validasi
    if ($jumlah_baru <= 0) {
        echo "<script>alert('Jumlah harus lebih dari 0!'); window.history.back();</script>";
        exit;
    }
    
    // Cek stok jika tipe KELUAR dan jumlah bertambah
    if ($tipe == 'KELUAR' && $selisih > 0) {
        $query_stok = "SELECT SUM(jumlah) as total FROM stok WHERE id_obat = '$id_obat' AND id_gudang = '$id_gudang'";
        $result_stok = mysqli_query($conn, $query_stok);
        $data_stok = mysqli_fetch_assoc($result_stok);
        $stok_tersedia = $data_stok['total'] ?? 0;
        
        if ($stok_tersedia < $selisih) {
            echo "<script>alert('Stok tidak cukup untuk penambahan!'); window.history.back();</script>";
            exit;
        }
    }
    
    // Update mutasi stok
    $query_update_mutasi = "UPDATE mutasi_stok 
                           SET jumlah = '$jumlah_baru', keterangan = '$keterangan'
                           WHERE id_mutasi = '$id_mutasi'";
    
    if (mysqli_query($conn, $query_update_mutasi)) {
    // Update stok berdasarkan tipe dan selisih
        if ($tipe == 'KELUAR' || $tipe == 'MASUK') {
            if ($selisih != 0) {
                if ($tipe == 'KELUAR') {
                    // Kurangi dengan selisih
                    $query_update_stok = "UPDATE stok SET jumlah = jumlah - $selisih 
                                         WHERE id_obat = '$id_obat' AND id_gudang = '$id_gudang'";
                } else {
                    // Tambah dengan selisih
                    $query_update_stok = "UPDATE stok SET jumlah = jumlah + $selisih 
                                         WHERE id_obat = '$id_obat' AND id_gudang = '$id_gudang'";
                }
                mysqli_query($conn, $query_update_stok);
            }
        } else if ($tipe == 'ADJUSTMENT') {
            // ADJUSTMENT - update berdasarkan arah dan selisih
            $query_old_arah = "SELECT sumber FROM mutasi_stok WHERE id_mutasi = '$id_mutasi'";
            $result_old_arah = mysqli_query($conn, $query_old_arah);
            $old_arah_data = mysqli_fetch_assoc($result_old_arah);
            
            // Ambil arah adjustment dari request
            $arah = isset($_POST['arah']) ? mysqli_real_escape_string($conn, $_POST['arah']) : $old_arah_data['sumber'];
            
            if ($arah == 'TAMBAH') {
                $query_update_stok = "UPDATE stok SET jumlah = jumlah + $selisih 
                                     WHERE id_obat = '$id_obat' AND id_gudang = '$id_gudang'";
            } else {
                $query_update_stok = "UPDATE stok SET jumlah = jumlah - $selisih 
                                     WHERE id_obat = '$id_obat' AND id_gudang = '$id_gudang'";
            }
            mysqli_query($conn, $query_update_stok);
        }
        
        echo "<script>alert('Mutasi stok berhasil diperbarui!'); window.location='pengeluaranapoteker.php';</script>";
    } else {
        echo "<script>alert('Gagal memperbarui mutasi stok!'); window.history.back();</script>";
    }
}
?>