Files
intaleq_v3_pure_php/serviceapp/updateDriverToActive.php
2026-04-28 13:04:27 +03:00

151 lines
6.4 KiB
PHP
Executable File

<?php
// --- تضمين الملفات الأساسية ---
require_once __DIR__ . '/../connect.php'; // يفترض أن يحتوي على الاتصال ومساعد التشفير
// --- استقبال البيانات من التطبيق ---
$driverId = filterRequest("driverId");
$phone = filterRequest("phone"); // استقبال رقم الهاتف مباشرة
// --- بيانات جدول السائق (driver) ---
$firstName = filterRequest("first_name");
$lastName = filterRequest("last_name");
$site = filterRequest("site"); // مكان القيد/الولادة
$nationalNumber = filterRequest("national_number");
$licenseCategories = filterRequest("license_categories"); // فئة الرخصة
$expiryDate = filterRequest("expiry_date"); // تاريخ انتهاء رخصة السائق
$licenseIssueDate = filterRequest("license_issue_date");
$gender = filterRequest("gender"); // الحقل الجديد
$birthdate = filterRequest("birthdate"); // الحقل الجديد
$maritalStatus=filterRequest("maritalStatus");
// --- بيانات جدول السيارة (CarRegistration) ---
$owner = filterRequest("owner");
$color = filterRequest("color");
$colorHex = filterRequest("color_hex");
$model = filterRequest("model"); // الموديل
$carPlate = filterRequest("car_plate");
$make = filterRequest("make"); // الصانع
$fuel = filterRequest("fuel");
$year = filterRequest("year");
$carExpirationDate = filterRequest("expiration_date"); // تاريخ انتهاء رخصة السيارة
// --- بدء المعاملة لضمان سلامة البيانات ---
$con->beginTransaction();
try {
// --- 1. معالجة وتشفير البيانات ---
$nameArabic = $firstName . ' ' . $lastName;
$address = $site;
// تشفير الحقول الحساسة
$encryptedFirstName = $encryptionHelper->encryptData($firstName);
$encryptedLastName = $encryptionHelper->encryptData($lastName);
$encryptedSite = $encryptionHelper->encryptData($site);
$encryptedAddress = $encryptionHelper->encryptData($address);
$encryptedNameArabic = $encryptionHelper->encryptData($nameArabic);
$encryptedNationalNumber = $encryptionHelper->encryptData($nationalNumber);
$encryptedOwner = $encryptionHelper->encryptData($owner);
$encryptedCarPlate = $encryptionHelper->encryptData($carPlate);
$encryptedBirthdate = $encryptionHelper->encryptData($birthdate);
$encryptedGender = $encryptionHelper->encryptData($gender);
// --- 2. تحديث جدول السائق ---
$sqlDriver = "UPDATE `driver` SET
`first_name` = :first_name,
`last_name` = :last_name,
`site` = :site,
`address` = :address,
`national_number` = :national_number,
`license_categories` = :license_categories,
`expiry_date` = :expiry_date,
`issue_date` = :issue_date,
`gender` = :gender,
`birthdate` = :birthdate,
`name_arabic` = :name_arabic,
`maritalStatus` = :maritalStatus,
`status` = 'actives'
WHERE `id` = :driverId";
$stmtDriver = $con->prepare($sqlDriver);
$stmtDriver->execute([
':first_name' => $encryptedFirstName,
':last_name' => $encryptedLastName,
':site' => $encryptedSite,
':address' => $encryptedAddress,
':national_number' => $encryptedNationalNumber,
':license_categories' => $licenseCategories,
':expiry_date' => $expiryDate,
':issue_date' => $licenseIssueDate,
':gender' => $encryptedGender,
':birthdate' => $encryptedBirthdate,
':name_arabic' => $encryptedNameArabic,
':driverId' => $driverId,
':maritalStatus' =>$maritalStatus
]);
// --- 3. تحديث جدول السيارة ---
$sqlCar = "UPDATE `CarRegistration` SET
`owner` = :owner,
`color` = :color,
`color_hex` = :color_hex,
`model` = :model,
`car_plate` = :car_plate,
`make` = :make,
`fuel` = :fuel,
`year` = :year,
`expiration_date` = :expiration_date
WHERE `driverID` = :driverId";
$stmtCar = $con->prepare($sqlCar);
$stmtCar->execute([
':owner' => $encryptedOwner,
':color' => $color,
':color_hex' => $colorHex,
':model' => $model,
':car_plate' => $encryptedCarPlate,
':make' => $make,
':fuel' => $fuel,
':year' => $year,
':expiration_date' => $carExpirationDate,
':driverId' => $driverId
]);
// --- 4. تأكيد المعاملة ---
$con->commit();
jsonSuccess(["message" => "Driver and car data updated successfully."]);
// --- 5. إرسال رسالة واتساب مبسطة وآمنة (باختيار رقم عشوائي) ---
// 5.1. تعريف الأرقام
$supportPhones = ['0952475740', '0952475742']; // يمكنك إضافة المزيد من الأرقام هنا
// 5.2. اختيار رقم عشوائي من القائمة
$randomIndex = array_rand($supportPhones); // يختار "مفتاح" عشوائي (index)
$phoneToUse = $supportPhones[$randomIndex]; // يحصل على الرقم من المفتاح
// --- !!! التعديل: إضافة رقم عشوائي ---
// هذا يضيف رقم عشوائي (4-6 خانات) لجعل الرسالة فريدة
$randomNumber = rand(1000, 999999);
// 5.5. إعداد نص الرسالة بالرقم المتغير
$messageBody = "أهلاً وسهلاً كابتن $firstName 👋\n"
. "تم تفعيل حسابك على تطبيق *انطلق*.\n"
. "يمكنك الآن تسجيل الدخول والبدء بالعمل مباشرة.\n"
. "للمساعدة تواصل معنا على الرقم: $phoneToUse\n" // <-- تم استخدام المتغير العشوائي هنا
. "نتمنى لك عمل موفق 🚖\n\n"
. "معرف الرسالة: $randomNumber"; // <-- إضافة الرقم العشوائي
// 5.6. إرسال الرسالة
sendWhatsAppFromServer($phone, $messageBody);
} catch (Exception $e) {
// --- 6. التراجع في حال الخطأ ---
$con->rollBack();
jsonError("An error occurred: " . $e->getMessage());
}
?>