beginTransaction(); $stmt = $pdo->prepare("INSERT INTO pharmacy_lpos (supplier_id, lpo_date, status, total_amount, notes) VALUES (?, ?, 'Draft', ?, ?)"); $stmt->execute([ $data['supplier_id'], $data['lpo_date'] ?? date('Y-m-d'), $data['total_amount'] ?? 0, $data['notes'] ?? '' ]); $lpoId = $pdo->lastInsertId(); $stmtItem = $pdo->prepare("INSERT INTO pharmacy_lpo_items (lpo_id, drug_id, quantity, cost_price, total_cost) VALUES (?, ?, ?, ?, ?)"); foreach ($data['items'] as $item) { $stmtItem->execute([ $lpoId, $item['drug_id'], $item['quantity'], $item['cost_price'], $item['total_cost'] ]); } $pdo->commit(); echo json_encode(['success' => true, 'message' => 'LPO created successfully']); } elseif ($action === 'update_status') { $data = json_decode(file_get_contents('php://input'), true); if (empty($data['id']) || empty($data['status'])) { throw new Exception("ID and Status are required"); } $stmt = $pdo->prepare("UPDATE pharmacy_lpos SET status = ? WHERE id = ?"); $stmt->execute([$data['status'], $data['id']]); echo json_encode(['success' => true]); } } elseif ($_SERVER['REQUEST_METHOD'] === 'GET') { if ($action === 'get_lpos') { $stmt = $pdo->query(" SELECT l.*, s.name_en as supplier_name FROM pharmacy_lpos l LEFT JOIN suppliers s ON l.supplier_id = s.id ORDER BY l.created_at DESC "); echo json_encode($stmt->fetchAll()); } elseif ($action === 'get_lpo_details') { $id = $_GET['id'] ?? 0; $stmt = $pdo->prepare(" SELECT i.*, d.name_en as drug_name, d.sku FROM pharmacy_lpo_items i LEFT JOIN drugs d ON i.drug_id = d.id WHERE i.lpo_id = ? "); $stmt->execute([$id]); echo json_encode($stmt->fetchAll()); } elseif ($action === 'get_suppliers') { $stmt = $pdo->query("SELECT id, name_en, name_ar FROM suppliers ORDER BY name_en ASC"); echo json_encode($stmt->fetchAll()); } elseif ($action === 'get_drugs') { $stmt = $pdo->query("SELECT id, name_en, name_ar, sku, price FROM drugs ORDER BY name_en ASC"); echo json_encode($stmt->fetchAll()); } } } catch (Exception $e) { if ($pdo->inTransaction()) { $pdo->rollBack(); } http_response_code(500); echo json_encode(['error' => $e->getMessage()]); }