prepare("SELECT 1 FROM accounts WHERE account_code = ?"); $stmt->execute([$account_code]); return $stmt->fetchColumn() !== false; } function insert_account($pdo, $id, $code, $name, $type, $parent_id = null, $is_control = false) { if (account_exists($pdo, $code)) { return "Skipped: Account '{$code}' already exists."; } $stmt = $pdo->prepare( "INSERT INTO accounts (id, account_code, account_name, account_type, parent_account_id, is_control_account) " . "VALUES (?, ?, ?, ?, ?, ?)" ); $stmt->execute([$id, $code, $name, $type, $parent_id, $is_control ? 1 : 0]); return "Created: Account '{$code}' - {$name}."; } $messages = []; // 1. Asset Accounts $messages[] = insert_account($pdo, uuid_v4(), '1000-CASH', 'Cash on Hand', 'Asset'); $messages[] = insert_account($pdo, uuid_v4(), '1010-BANK', 'Bank Account', 'Asset'); $messages[] = insert_account($pdo, uuid_v4(), '1015-MOMO', 'Mobile Money Account', 'Asset'); $messages[] = insert_account($pdo, uuid_v4(), '1200-AR-STUDENTS', 'Accounts Receivable - Students', 'Asset', null, true); // 2. Revenue Accounts $revenue_parent_id = uuid_v4(); $messages[] = insert_account($pdo, $revenue_parent_id, '4000', 'School Fees Revenue', 'Revenue'); $messages[] = insert_account($pdo, uuid_v4(), '4100', 'Tuition Fees - Nursery/KG', 'Revenue', $revenue_parent_id); $messages[] = insert_account($pdo, uuid_v4(), '4200', 'Tuition Fees - Primary', 'Revenue', $revenue_parent_id); $messages[] = insert_account($pdo, uuid_v4(), '4300', 'Tuition Fees - JHS', 'Revenue', $revenue_parent_id); $messages[] = insert_account($pdo, uuid_v4(), '4400', 'Boarding Fees', 'Revenue', $revenue_parent_id); $messages[] = insert_account($pdo, uuid_v4(), '4500', 'Transport Fees', 'Revenue', $revenue_parent_id); $messages[] = insert_account($pdo, uuid_v4(), '4600', 'PTA & Other Fees', 'Revenue', $revenue_parent_id); // 3. Contra-Revenue Accounts // Using 'Revenue' type as it's a contra-revenue account. $messages[] = insert_account($pdo, uuid_v4(), '4900', 'Scholarships & Discounts', 'Revenue'); return implode("\n", array_filter($messages));