diff --git a/app/Controllers/PembelianController.php b/app/Controllers/PembelianController.php
index b83fa7b1e9d097b87d448e97ea7ef9e75e68a2b5..f548d1fe94e4f4791c78adb9310048d13a035c83 100644
--- a/app/Controllers/PembelianController.php
+++ b/app/Controllers/PembelianController.php
@@ -6,7 +6,8 @@ require_once(__DIR__ . '/../Models/Pembelian.php');
 
 class PembelianController {
     private $pembelianModel;
-
+    
+    
     public function __construct() {
         $this->pembelianModel = new PembelianModel();
     }
@@ -31,7 +32,7 @@ class PembelianController {
         return $this->pembelianModel->getAllPembelian();
     }
 
-    public function paginateHistory($page=1,$pagesize=10,$pembelian) {
+    public function paginateHistory($pembelian,$page=1,$pagesize=10) {
         $maxpage = ceil(count($pembelian)/$pagesize);
         if ($page > $maxpage) {
             $page = $maxpage;
@@ -41,5 +42,33 @@ class PembelianController {
 
         return $selectedHistory;
     }
+
+    // Returns true if purchase succeeds
+    public function purchaseTicket($ticketId,$userId) {
+        // $purchases = $this->getAllPembelian();
+        // foreach ($purchases as $purchase) :
+        //     echo $purchase['pembelian_id'] . ': ' . $purchase['user_id'] . ', ' . $purchase['ticket_id'] . ', ' . $purchase['pembelian_created_time']."\n";
+        // endforeach;
+
+        $createdTime = date("Y-m-d H:i:s");
+        $this->createPembelian($ticketId,$userId,$createdTime);
+        // $purchases = $this->getAllPembelian();
+        // foreach ($purchases as $purchase) :
+        //     echo $purchase['pembelian_id'] . ': ' . $purchase['user_id'] . ', ' . $purchase['ticket_id'] . ', ' . $purchase['pembelian_created_time']."\n";
+        // endforeach;
+    }
+
+    public function handleRequest() {
+        if (isset($_GET['action'])) {
+            if ($_GET['action'] === 'purchaseTicket') {
+                $ticketId = $_POST['ticketId'];
+                $userId = $_POST['userId'];
+                $this->purchaseTicket($ticketId,$userId);
+            } else {
+                // Handle other actions here, if needed
+            }
+        }
+    }
+    
 }
 ?>
diff --git a/app/Controllers/TicketController.php b/app/Controllers/TicketController.php
index b8e4e799195ffb6c596d7b42e446bd43d0e5fe82..8e65e817bfb130e8bd408dc525a7a78751b78a96 100644
--- a/app/Controllers/TicketController.php
+++ b/app/Controllers/TicketController.php
@@ -26,5 +26,11 @@ class TicketController {
     public function deleteTicket($ticketId) {
         return $this->ticketModel->deleteTicket($ticketId);
     }
+
+    public function previewTicket($ticketId) {
+        $ticket = $this->getTicket($ticketId);
+        
+        include(__DIR__ . '/../Views/pembelian/pembelian.php');
+    }
 }
 ?>