beginTransaction(); // Generate order number (simple placeholder for now, will enhance later) // For now, let's just use a timestamp based simple one, we will improve later. $order_number = 'FMO' . date('YmdHis'); $stmt = $pdo->prepare('INSERT INTO orders (order_number, order_date, order_text, status, sales_rep_id) VALUES (?, ?, ?, ?, ?)'); $stmt->execute([$order_number, $order_date, $order_text, 'Pending', $sales_rep_id]); $pdo->commit(); $success_message = 'Order ' . $order_number . ' created successfully!'; // Clear the form $order_text = ''; // Send email notification to Dispatch require_once __DIR__ . '/mail/MailService.php'; $dispatch_email = 'info@focuzinternational.com'; // TODO: Make this configurable by Admin $subject = 'New Order: ' . $order_number . ' (' . 'Pending' . ')'; $html_body = '
A new order has been created:
' . 'Order Number: ' . htmlspecialchars($order_number) . '
' . 'Order Date: ' . htmlspecialchars($order_date) . '
' . 'Order Text: ' . nl2br(htmlspecialchars($order_text)) . '
' . 'Status: Pending
'; $text_body = "A new order has been created:\n\n" . "Order Number: {$order_number}\n" . "Order Date: {$order_date}\n" . "Order Text: {$order_text}\n" . "Status: Pending"; $mail_result = MailService::sendMail($dispatch_email, $subject, $html_body, $text_body); if (!empty($mail_result['error'])) { // Log the email error, but don't fail the order creation error_log('Email sending failed: ' . $mail_result['error']); } } catch (PDOException $e) { $pdo->rollBack(); $errors[] = 'Database error: ' . $e->getMessage(); } } } // Generate new CSRF token for the form $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); ?>