/home/awneajlw/.trash/add-record.php
<?php
/**
 * Add Record Page - Order Creation
 * This page allows users to add new patient records/orders
 * Features: Patient details, prescription information, order details, form validation
 */

// Start session if not already started
if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

// Include required files
require_once 'config/database.php';  // Database connection configuration
require_once 'includes/auth.php';    // Authentication functions

/**
 * Authentication Check
 * Redirect to welcome page if user is not logged in
 */
if (!isLoggedIn()) {
    header('Location: welcome.php');
    exit();
}

// Initialize variables for form handling
$success_message = '';   // Success message after form submission
$error_message = '';     // Error message for validation/database issues
$field_errors = [];      // Array to store field-specific errors
$form_data = [];         // Array to store form data for repopulation

/**
 * Form Submission Handler
 * Process POST request when add record form is submitted
 */
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    try {
        $database = new Database();
        $db = $database->getConnection();
        
        // Create orders table if it doesn't exist
        $create_table_sql = "CREATE TABLE IF NOT EXISTS orders (
            id INT AUTO_INCREMENT PRIMARY KEY,
            user_id INT NOT NULL,
            tracking_id VARCHAR(50) DEFAULT NULL,
            patient_name VARCHAR(255) NOT NULL,
            whatsapp_number VARCHAR(20) NOT NULL,
            frame_detail VARCHAR(255) DEFAULT NULL,
            lens_type VARCHAR(255) DEFAULT NULL,
            total_amount DECIMAL(10,2) DEFAULT 0,
            advance DECIMAL(10,2) DEFAULT 0,
            balance DECIMAL(10,2) DEFAULT 0,
            delivery_date DATE DEFAULT NULL,
            booking_date DATE DEFAULT NULL,
            right_sph VARCHAR(10) DEFAULT NULL,
            right_cyl VARCHAR(10) DEFAULT NULL,
            right_axis VARCHAR(10) DEFAULT NULL,
            left_sph VARCHAR(10) DEFAULT NULL,
            left_cyl VARCHAR(10) DEFAULT NULL,
            left_axis VARCHAR(10) DEFAULT NULL,
            add_power VARCHAR(10) DEFAULT NULL,
            important_note TEXT DEFAULT NULL,
            description TEXT DEFAULT NULL,
            status VARCHAR(20) DEFAULT 'Pending',
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
            INDEX idx_user_id (user_id),
            INDEX idx_tracking_id (tracking_id),
            INDEX idx_patient_name (patient_name),
            INDEX idx_created_at (created_at)
        )";
        
        $db->exec($create_table_sql);
        
        // Add booking_date column if it doesn't exist
        try {
            $db->exec("ALTER TABLE orders ADD COLUMN booking_date DATE DEFAULT NULL");
        } catch (PDOException $e) {
            // Column already exists, ignore error
        }
        
        // Get form data
        $patient_name = trim($_POST['patient_name'] ?? '');
        $whatsapp_number = trim($_POST['whatsapp_number'] ?? '');
        $frame_detail = trim($_POST['frame_detail'] ?? '');
        $lens_type = trim($_POST['lens_type'] ?? '');
        $booking_date = trim($_POST['booking_date'] ?? '');
        if (empty($booking_date)) {
            $booking_date = null;
        }
        $total_amount = floatval($_POST['total_amount'] ?? 0);
        $special_note = trim($_POST['special_note'] ?? '');
        $right_sph = trim($_POST['right_sph'] ?? '');
        $right_cyl = trim($_POST['right_cyl'] ?? '');
        $right_axis = trim($_POST['right_axis'] ?? '');
        $left_sph = trim($_POST['left_sph'] ?? '');
        $left_cyl = trim($_POST['left_cyl'] ?? '');
        $left_axis = trim($_POST['left_axis'] ?? '');
        $add_power = trim($_POST['add_power'] ?? '');
        
        // Generate tracking ID
        $user_id = $_SESSION['user_id'];
        $count_query = "SELECT COUNT(*) as count FROM orders WHERE user_id = ?";
        $count_stmt = $db->prepare($count_query);
        $count_stmt->execute([$user_id]);
        $count_result = $count_stmt->fetch(PDO::FETCH_ASSOC);
        $order_count = $count_result['count'] + 1;
        $tracking_id = 'T' . str_pad($order_count, 4, '0', STR_PAD_LEFT);
        
        // Insert record
        $insert_query = "INSERT INTO orders (
            user_id, tracking_id, patient_name, whatsapp_number, frame_detail, lens_type, 
            total_amount, important_note, right_sph, right_cyl, right_axis, 
            left_sph, left_cyl, left_axis, add_power, booking_date, status
        ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'Pending')";
        
        $stmt = $db->prepare($insert_query);
        $stmt->execute([
            $user_id, $tracking_id, $patient_name, $whatsapp_number, $frame_detail, $lens_type,
            $total_amount, $special_note, $right_sph, $right_cyl, $right_axis,
            $left_sph, $left_cyl, $left_axis, $add_power, $booking_date
        ]);
        
        $success_message = 'Record saved successfully! Tracking ID: ' . $tracking_id;
        
    } catch (Exception $e) {
        $error_message = 'Error saving record: ' . $e->getMessage();
    }
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Add Record - OPTI SLIP</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: 'Inter', sans-serif;
            background: linear-gradient(135deg, #1e3a8a 0%, #3730a3 100%);
            min-height: 100vh;
            padding: 20px;
        }
        
        .container {
            max-width: 800px;
            margin: 0 auto;
        }
        
        .header {
            display: flex;
            align-items: center;
            margin-bottom: 30px;
            gap: 15px;
        }
        
        .back-btn {
            background: #10b981;
            color: white;
            border: none;
            border-radius: 8px;
            padding: 10px 20px;
            display: flex;
            align-items: center;
            gap: 8px;
            cursor: pointer;
            transition: all 0.3s ease;
            text-decoration: none;
            font-weight: 500;
        }
        
        .back-btn:hover {
            background: #059669;
            transform: scale(1.05);
            color: white;
        }
        
        .page-title {
            color: white;
            font-size: 24px;
            font-weight: 600;
        }
        
        .logo-section {
            display: flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 30px;
        }
        
        .logo-container {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 10px;
        }
        
        .logo-icon {
            width: 60px;
            height: 60px;
            background: linear-gradient(135deg, #10b981 0%, #059669 100%);
            border-radius: 15px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 28px;
            position: relative;
        }
        
        .logo-icon::before {
            content: '';
            position: absolute;
            top: 8px;
            left: 8px;
            width: 20px;
            height: 20px;
            background: rgba(255,255,255,0.3);
            border-radius: 4px;
        }
        
        .logo-icon::after {
            content: '';
            position: absolute;
            top: 8px;
            right: 8px;
            width: 20px;
            height: 20px;
            background: rgba(255,255,255,0.3);
            border-radius: 4px;
        }
        
        .logo-text {
            font-size: 20px;
            font-weight: 700;
            color: #1e3a8a;
        }
        
        .form-card {
            background: white;
            border-radius: 20px;
            padding: 40px;
            box-shadow: 0 20px 40px rgba(0,0,0,0.1);
        }
        
        .form-section {
            margin-bottom: 30px;
        }
        
        .section-title {
            font-size: 18px;
            font-weight: 600;
            color: #374151;
            margin-bottom: 20px;
            padding-bottom: 10px;
            border-bottom: 2px solid #e5e7eb;
        }
        
        .form-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 20px;
        }
        
        .form-group {
            display: flex;
            flex-direction: column;
            gap: 8px;
        }
        
        .form-label {
            font-size: 14px;
            font-weight: 600;
            color: #374151;
        }
        
        .form-input {
            padding: 12px 16px;
            border: 2px solid #e5e7eb;
            border-radius: 10px;
            font-size: 16px;
            transition: all 0.3s ease;
            background: #f9fafb;
        }
        
        .form-input:focus {
            outline: none;
            border-color: #10b981;
            background: white;
            box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);
        }
        
        .form-input::placeholder {
            color: #9ca3af;
        }
        
        .textarea-input {
            min-height: 100px;
            resize: vertical;
        }
        
        .prescription-section {
            background: #f8fafc;
            border-radius: 15px;
            padding: 25px;
            border: 1px solid #e2e8f0;
        }
        
        .prescription-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 30px;
        }
        
        .eye-section {
            display: flex;
            flex-direction: column;
            gap: 20px;
        }
        
        .eye-title {
            font-size: 16px;
            font-weight: 600;
            color: #374151;
            text-align: center;
            padding: 10px;
            background: #10b981;
            color: white;
            border-radius: 8px;
        }
        
        .prescription-input-group {
            display: flex;
            flex-direction: column;
            gap: 8px;
        }
        
        .prescription-label {
            font-size: 14px;
            font-weight: 600;
            color: #374151;
        }
        
        .prescription-input-container {
            position: relative;
            display: flex;
            align-items: center;
        }
        
        .prescription-input {
            width: 100%;
            padding: 12px 50px 12px 50px;
            border: 2px solid #e5e7eb;
            border-radius: 10px;
            font-size: 16px;
            text-align: center;
            background: white;
            transition: all 0.3s ease;
        }
        
        .prescription-input:focus {
            outline: none;
            border-color: #10b981;
            box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1);
        }
        
        .input-controls {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            display: flex;
            justify-content: space-between;
            align-items: center;
            pointer-events: none;
        }
        
        .left-controls {
            display: flex;
            gap: 5px;
            margin-left: 5px;
        }
        
        .right-controls {
            display: flex;
            gap: 5px;
            margin-right: 5px;
        }
        
        .control-btn {
            width: 30px;
            height: 30px;
            border: none;
            border-radius: 6px;
            background: #10b981;
            color: white;
            font-weight: bold;
            cursor: pointer;
            pointer-events: all;
            transition: all 0.3s ease;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 14px;
        }
        
        .control-btn:hover {
            background: #059669;
            transform: scale(1.05);
        }
        
        .dropdown-btn {
            width: 30px;
            height: 30px;
            border: none;
            border-radius: 6px;
            background: #6b7280;
            color: white;
            cursor: pointer;
            pointer-events: all;
            transition: all 0.3s ease;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 12px;
        }
        
        .dropdown-btn:hover {
            background: #4b5563;
            transform: scale(1.05);
        }
        
        .add-power-section {
            grid-column: 1 / -1;
            display: flex;
            justify-content: center;
            margin-top: 20px;
        }
        
        .add-power-group {
            width: 200px;
        }
        
        .save-btn {
            width: 100%;
            padding: 15px 30px;
            background: linear-gradient(135deg, #10b981 0%, #059669 100%);
            color: white;
            border: none;
            border-radius: 12px;
            font-size: 18px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s ease;
            margin-top: 30px;
        }
        
        .save-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 10px 20px rgba(16, 185, 129, 0.3);
        }
        
        .alert {
            padding: 12px 16px;
            border-radius: 8px;
            margin-bottom: 20px;
            text-align: center;
        }
        
        .alert-success {
            background: #f0fdf4;
            border: 1px solid #bbf7d0;
            color: #166534;
        }
        
        .alert-danger {
            background: #fef2f2;
            border: 1px solid #fecaca;
            color: #dc2626;
        }
        
        @media (max-width: 768px) {
            .form-card {
                padding: 20px;
                margin: 0 10px;
            }
            
            .form-grid {
                grid-template-columns: 1fr;
                gap: 15px;
            }
            
            .prescription-grid {
                grid-template-columns: 1fr;
                gap: 20px;
            }
            
            .logo-icon {
                width: 50px;
                height: 50px;
                font-size: 24px;
            }
        }
        
        @media (max-width: 480px) {
            .prescription-input {
                padding: 10px 40px 10px 40px;
                font-size: 14px;
            }
            
            .control-btn,
            .dropdown-btn {
                width: 25px;
                height: 25px;
                font-size: 12px;
            }
            
            .add-power-group {
                width: 100%;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <!-- Header -->
        <div class="header">
            <a href="home.php" class="back-btn">
                <i class="fas fa-arrow-left"></i>
                Back
            </a>
            <h1 class="page-title">Add Record</h1>
        </div>
        
        <!-- Logo Section -->
        <div class="logo-section">
            <div class="logo-container">
                <div class="logo-icon">
                    <i class="fas fa-glasses"></i>
                </div>
                <div class="logo-text">OPTI SLIP</div>
            </div>
        </div>
        
        <!-- Form Card -->
        <div class="form-card">
            <?php if (!empty($success_message)): ?>
                <div class="alert alert-success">
                    <i class="fas fa-check-circle me-2"></i>
                    <?php echo htmlspecialchars($success_message); ?>
                </div>
            <?php endif; ?>
            
            <?php if (!empty($error_message)): ?>
                <div class="alert alert-danger">
                    <i class="fas fa-exclamation-triangle me-2"></i>
                    <?php echo htmlspecialchars($error_message); ?>
                </div>
            <?php endif; ?>
            
            <form method="POST" action="">
                <!-- Patient Details -->
                <div class="form-section">
                    <h3 class="section-title">Patient Details</h3>
                    <div class="form-grid">
                        <div class="form-group">
                            <label class="form-label">Patient Name</label>
                            <input type="text" name="patient_name" class="form-input" placeholder="XXXXXXXXXX" required>
                        </div>
                        <div class="form-group">
                            <label class="form-label">WhatsApp Number</label>
                            <input type="text" name="whatsapp_number" class="form-input" placeholder="XXXXXXXXXX" required>
                        </div>
                    </div>
                </div>
                
                <!-- Order Details -->
                <div class="form-section">
                    <h3 class="section-title">Order Details</h3>
                    <div class="form-grid">
                        <div class="form-group">
                            <label class="form-label">Frame Detail</label>
                            <input type="text" name="frame_detail" class="form-input" placeholder="XXXXXXXXXX">
                        </div>
                        <div class="form-group">
                            <label class="form-label">Lens Type</label>
                            <input type="text" name="lens_type" class="form-input" placeholder="XXXXXXXXXX">
                        </div>
                        <div class="form-group">
                            <label class="form-label">Booking Date</label>
                            <input type="date" name="booking_date" class="form-input" placeholder="XXXXXX">
                        </div>
                        <div class="form-group">
                            <label class="form-label">Total Amount</label>
                            <input type="number" name="total_amount" class="form-input" placeholder="XXXXX" step="0.01">
                        </div>
                    </div>
                </div>
                
                <!-- Special Note -->
                <div class="form-section">
                    <h3 class="section-title">Special Note</h3>
                    <div class="form-group">
                        <textarea name="special_note" class="form-input textarea-input" placeholder="Type Here...."></textarea>
                    </div>
                </div>
                
                <!-- Prescription Section -->
                <div class="form-section">
                    <h3 class="section-title">Prescription</h3>
                    <div class="prescription-section">
                        <div class="prescription-grid">
                            <!-- Right Eye -->
                            <div class="eye-section">
                                <div class="eye-title">Right Eye</div>
                                
                                <div class="prescription-input-group">
                                    <label class="prescription-label">SPH (Sphere)</label>
                                    <div class="prescription-input-container">
                                        <input type="text" name="right_sph" class="prescription-input" value="0.00" id="rightSph">
                                        <div class="input-controls">
                                            <div class="left-controls">
                                                <button type="button" class="control-btn" onclick="adjustValue('rightSph', -0.25)">-</button>
                                                <button type="button" class="dropdown-btn" onclick="showDropdown('rightSph')">▼</button>
                                            </div>
                                            <div class="right-controls">
                                                <button type="button" class="control-btn" onclick="adjustValue('rightSph', 0.25)">+</button>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                
                                <div class="prescription-input-group">
                                    <label class="prescription-label">CYL (Cylinder)</label>
                                    <div class="prescription-input-container">
                                        <input type="text" name="right_cyl" class="prescription-input" value="1.00" id="rightCyl">
                                        <div class="input-controls">
                                            <div class="left-controls">
                                                <button type="button" class="control-btn" onclick="adjustValue('rightCyl', -0.25)">-</button>
                                                <button type="button" class="dropdown-btn" onclick="showDropdown('rightCyl')">▼</button>
                                            </div>
                                            <div class="right-controls">
                                                <button type="button" class="control-btn" onclick="adjustValue('rightCyl', 0.25)">+</button>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                
                                <div class="prescription-input-group">
                                    <label class="prescription-label">AXIS</label>
                                    <div class="prescription-input-container">
                                        <input type="text" name="right_axis" class="prescription-input" value="0" id="rightAxis">
                                        <div class="input-controls">
                                            <div class="right-controls">
                                                <button type="button" class="dropdown-btn" onclick="showDropdown('rightAxis')">▼</button>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            
                            <!-- Left Eye -->
                            <div class="eye-section">
                                <div class="eye-title">Left Eye</div>
                                
                                <div class="prescription-input-group">
                                    <label class="prescription-label">SPH (Sphere)</label>
                                    <div class="prescription-input-container">
                                        <input type="text" name="left_sph" class="prescription-input" value="0.00" id="leftSph">
                                        <div class="input-controls">
                                            <div class="left-controls">
                                                <button type="button" class="control-btn" onclick="adjustValue('leftSph', -0.25)">-</button>
                                                <button type="button" class="dropdown-btn" onclick="showDropdown('leftSph')">▼</button>
                                            </div>
                                            <div class="right-controls">
                                                <button type="button" class="control-btn" onclick="adjustValue('leftSph', 0.25)">+</button>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                
                                <div class="prescription-input-group">
                                    <label class="prescription-label">CYL (Cylinder)</label>
                                    <div class="prescription-input-container">
                                        <input type="text" name="left_cyl" class="prescription-input" value="1.00" id="leftCyl">
                                        <div class="input-controls">
                                            <div class="left-controls">
                                                <button type="button" class="control-btn" onclick="adjustValue('leftCyl', -0.25)">-</button>
                                                <button type="button" class="dropdown-btn" onclick="showDropdown('leftCyl')">▼</button>
                                            </div>
                                            <div class="right-controls">
                                                <button type="button" class="control-btn" onclick="adjustValue('leftCyl', 0.25)">+</button>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                
                                <div class="prescription-input-group">
                                    <label class="prescription-label">AXIS</label>
                                    <div class="prescription-input-container">
                                        <input type="text" name="left_axis" class="prescription-input" value="0" id="leftAxis">
                                        <div class="input-controls">
                                            <div class="right-controls">
                                                <button type="button" class="dropdown-btn" onclick="showDropdown('leftAxis')">▼</button>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        
                        <!-- ADD Power -->
                        <div class="add-power-section">
                            <div class="add-power-group">
                                <div class="prescription-input-group">
                                    <label class="prescription-label">ADD</label>
                                    <input type="text" name="add_power" class="form-input" placeholder="XXXXXXXXXX">
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                
                <!-- Save Button -->
                <button type="submit" class="save-btn">
                    <i class="fas fa-save me-2"></i>
                    Save Record
                </button>
            </form>
        </div>
    </div>
    
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
    <script>
        function adjustValue(fieldId, increment) {
            const field = document.getElementById(fieldId);
            let currentValue = parseFloat(field.value) || 0;
            let newValue = currentValue + increment;
            
            // Round to 2 decimal places
            newValue = Math.round(newValue * 100) / 100;
            
            // Format the value
            if (fieldId.includes('Axis')) {
                field.value = Math.round(newValue);
            } else {
                field.value = newValue.toFixed(2);
            }
        }
        
        function showDropdown(fieldId) {
            // Placeholder for dropdown functionality
            alert('Dropdown functionality will be implemented');
        }
        
        // Form validation
        document.querySelector('form').addEventListener('submit', function(e) {
            const requiredFields = ['patient_name', 'whatsapp_number'];
            let isValid = true;
            
            requiredFields.forEach(fieldName => {
                const field = document.querySelector(`[name="${fieldName}"]`);
                if (!field.value.trim()) {
                    field.style.borderColor = '#ef4444';
                    isValid = false;
                } else {
                    field.style.borderColor = '#e5e7eb';
                }
            });
            
            if (!isValid) {
                e.preventDefault();
                alert('Please fill in all required fields');
            }
        });
    </script>
</body>
</html>