Update: 2026-06-25 01:37:22
This commit is contained in:
@@ -6,6 +6,8 @@ if (!$user_id || $role != 'passenger') {
|
||||
jsonError("Invalid parameters or unauthorized token");
|
||||
}
|
||||
|
||||
$country_code = $_POST['country_code'] ?? 'Jordan';
|
||||
|
||||
// 1. Get the passenger's referral code
|
||||
$stmtCode = $con->prepare("SELECT referral_code FROM user_referral_codes WHERE user_id = ? AND user_type = 'passenger'");
|
||||
$stmtCode->execute([$user_id]);
|
||||
@@ -36,18 +38,41 @@ $referrals = $stmtRefs->fetchAll(PDO::FETCH_ASSOC);
|
||||
$totalDrivers = 0;
|
||||
$totalPassengers = 0;
|
||||
|
||||
// Country-specific reward thresholds
|
||||
switch ($country_code) {
|
||||
case 'Syria':
|
||||
$driverTargetTrips = 50;
|
||||
$driverReward = 500;
|
||||
$passengerTargetTrips = 1;
|
||||
$passengerReward = 30;
|
||||
break;
|
||||
case 'Egypt':
|
||||
$driverTargetTrips = 30;
|
||||
$driverReward = 100;
|
||||
$passengerTargetTrips = 2;
|
||||
$passengerReward = 20;
|
||||
break;
|
||||
case 'Jordan':
|
||||
default:
|
||||
$driverTargetTrips = 20;
|
||||
$driverReward = 5;
|
||||
$passengerTargetTrips = 2;
|
||||
$passengerReward = 2;
|
||||
break;
|
||||
}
|
||||
|
||||
// Format data and calculate stats
|
||||
foreach ($referrals as &$ref) {
|
||||
if ($ref['invited_user_type'] == 'driver') {
|
||||
$totalDrivers++;
|
||||
$ref['target_trips'] = 50;
|
||||
$ref['reward_syp'] = 500;
|
||||
$ref['can_claim'] = ($ref['trip_count'] >= 50 && $ref['is_reward_claimed'] == 0) ? true : false;
|
||||
$ref['target_trips'] = $driverTargetTrips;
|
||||
$ref['reward_syp'] = $driverReward;
|
||||
$ref['can_claim'] = ($ref['trip_count'] >= $driverTargetTrips && $ref['is_reward_claimed'] == 0) ? true : false;
|
||||
} else {
|
||||
$totalPassengers++;
|
||||
$ref['target_trips'] = 1;
|
||||
$ref['reward_syp'] = 30; // Just illustrative, rewards are automatic
|
||||
$ref['can_claim'] = ($ref['trip_count'] >= 1 && $ref['is_reward_claimed'] == 0) ? true : false;
|
||||
$ref['target_trips'] = $passengerTargetTrips;
|
||||
$ref['reward_syp'] = $passengerReward;
|
||||
$ref['can_claim'] = ($ref['trip_count'] >= $passengerTargetTrips && $ref['is_reward_claimed'] == 0) ? true : false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4339,8 +4339,7 @@ class RideLifecycleController extends GetxController {
|
||||
link: AppLink.getPassengerRate,
|
||||
payload: {'passenger_id': box.read(BoxName.passengerID)});
|
||||
if (res != 'failure') {
|
||||
var json = jsonDecode(res);
|
||||
var message = json['data'] ?? json['message'];
|
||||
var message = res['data'] ?? res['message'];
|
||||
if (message['rating'] == null) {
|
||||
passengerRate = 5.0; // Default rating
|
||||
} else {
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import 'dart:convert';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:siro_rider/constant/box_name.dart';
|
||||
import 'package:siro_rider/constant/links.dart';
|
||||
import 'package:siro_rider/controller/functions/crud.dart';
|
||||
import 'package:siro_rider/main.dart';
|
||||
|
||||
class InvitesRewardsController extends GetxController {
|
||||
bool isLoading = false;
|
||||
@@ -22,18 +23,29 @@ class InvitesRewardsController extends GetxController {
|
||||
update();
|
||||
|
||||
try {
|
||||
// Ensure a referral code exists first (creates one if not)
|
||||
var codeResponse = await CRUD().post(
|
||||
link: AppLink.getUnifiedCode,
|
||||
payload: {},
|
||||
);
|
||||
|
||||
if (codeResponse != 'failure' && codeResponse['status'] == 'success') {
|
||||
referralCode = codeResponse['message']['referral_code'];
|
||||
}
|
||||
|
||||
var response = await CRUD().post(
|
||||
link: AppLink.getPassengerReferrals,
|
||||
payload: {} // Token is automatically handled by CRUD()
|
||||
payload: {
|
||||
'country_code': box.read(BoxName.countryCode) ?? 'Jordan',
|
||||
},
|
||||
);
|
||||
|
||||
if (response != 'failure') {
|
||||
var data = jsonDecode(response);
|
||||
if (data['status'] == 'success') {
|
||||
referralCode = data['message']['referral_code'];
|
||||
totalInvitedDrivers = data['message']['total_invited_drivers'] ?? 0;
|
||||
totalInvitedPassengers = data['message']['total_invited_passengers'] ?? 0;
|
||||
referrals = data['message']['referrals'] ?? [];
|
||||
if (response['status'] == 'success') {
|
||||
referralCode ??= response['message']['referral_code'];
|
||||
totalInvitedDrivers = response['message']['total_invited_drivers'] ?? 0;
|
||||
totalInvitedPassengers = response['message']['total_invited_passengers'] ?? 0;
|
||||
referrals = response['message']['referrals'] ?? [];
|
||||
} else {
|
||||
referrals = [];
|
||||
}
|
||||
@@ -61,11 +73,10 @@ class InvitesRewardsController extends GetxController {
|
||||
Get.back(); // close loading
|
||||
|
||||
if (response != 'failure') {
|
||||
var data = jsonDecode(response);
|
||||
if (data['status'] == 'success') {
|
||||
if (response['status'] == 'success') {
|
||||
Get.snackbar("Success".tr, "You have been successfully referred!".tr, backgroundColor: Colors.green, colorText: Colors.white);
|
||||
} else {
|
||||
Get.snackbar("Notice".tr, data['message'] ?? "Could not add invite".tr);
|
||||
Get.snackbar("Notice".tr, response['message'] ?? "Could not add invite".tr);
|
||||
}
|
||||
} else {
|
||||
Get.snackbar("Error".tr, "Network error occurred".tr);
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:siro_rider/constant/box_name.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:siro_rider/constant/links.dart';
|
||||
@@ -35,9 +33,7 @@ class PromosController extends GetxController {
|
||||
isLoading = false;
|
||||
update();
|
||||
} else {
|
||||
var jsonDecoded = jsonDecode(res);
|
||||
|
||||
promoList = jsonDecoded['message'];
|
||||
promoList = res['message'];
|
||||
isLoading = false;
|
||||
update();
|
||||
}
|
||||
|
||||
@@ -1712,4 +1712,15 @@ final Map<String, String> ar_eg = {
|
||||
"⚠️ You need to choose an amount!": "⚠️ لازم تختار مبلغ!",
|
||||
"💰 Pay with Wallet": "💰 ادفع بالمحفظة",
|
||||
"💳 Pay with Credit Card": "💳 ادفع بالبطاقة",
|
||||
|
||||
// Invite page translations
|
||||
"Your Permanent Referral Code": "رمز الإحالة الدائم بتاعك",
|
||||
"Loading...": "بيتم التحميل...",
|
||||
"Code copied!": "تم نسخ الكود!",
|
||||
"Share via WhatsApp Groups": "مشاركة عبر جروبات واتساب",
|
||||
"Enter Inviter's Code": "أدخل رمز الداعي",
|
||||
"If someone referred you, enter their code below to link accounts and receive rewards.": "لو حد دعاك، أدخل كوده تحت عشان تربط الحسابات وتاخد مكافآت.",
|
||||
"Enter Code (e.g. AB1234)": "أدخل الكود (مثل: AB1234)",
|
||||
"Link": "ربط",
|
||||
"Please enter a referral code": "من فضلك أدخل كود الإحالة",
|
||||
};
|
||||
|
||||
@@ -1712,4 +1712,15 @@ final Map<String, String> ar_jo = {
|
||||
"⚠️ You need to choose an amount!": "⚠️ لازم تختار مبلغ!",
|
||||
"💰 Pay with Wallet": "💰 ادفع بالمحفظة",
|
||||
"💳 Pay with Credit Card": "💳 ادفع بالبطاقة",
|
||||
|
||||
// Invite page translations
|
||||
"Your Permanent Referral Code": "رمز الإحالة الدائم الخاص بك",
|
||||
"Loading...": "جارٍ التحميل...",
|
||||
"Code copied!": "تم نسخ الرمز!",
|
||||
"Share via WhatsApp Groups": "مشاركة عبر مجموعات واتساب",
|
||||
"Enter Inviter's Code": "أدخل رمز الداعي",
|
||||
"If someone referred you, enter their code below to link accounts and receive rewards.": "إذا قام شخص بدعوتك، أدخل رمزه أدناه لربط الحسابات والحصول على المكافآت.",
|
||||
"Enter Code (e.g. AB1234)": "أدخل الرمز (مثال: AB1234)",
|
||||
"Link": "ربط",
|
||||
"Please enter a referral code": "يرجى إدخال رمز الإحالة",
|
||||
};
|
||||
|
||||
@@ -1712,4 +1712,15 @@ final Map<String, String> ar_sy = {
|
||||
"⚠️ You need to choose an amount!": "⚠️ لازم تختار مبلغ!",
|
||||
"💰 Pay with Wallet": "💰 ادفع بالمحفظة",
|
||||
"💳 Pay with Credit Card": "💳 ادفع بالبطاقة",
|
||||
|
||||
// Invite page translations
|
||||
"Your Permanent Referral Code": "رمز الإحالة الدائم",
|
||||
"Loading...": "جارٍ التحميل...",
|
||||
"Code copied!": "تم نسخ الرمز!",
|
||||
"Share via WhatsApp Groups": "مشاركة عبر مجموعات واتساب",
|
||||
"Enter Inviter's Code": "دخل رمز الداعي",
|
||||
"If someone referred you, enter their code below to link accounts and receive rewards.": "إذا حدا دعاك، دخل رمزه تحت لربط الحسابات والمكافآت.",
|
||||
"Enter Code (e.g. AB1234)": "دخل الرمز (مثال: AB1234)",
|
||||
"Link": "ربط",
|
||||
"Please enter a referral code": "دخل رمز الإحالة",
|
||||
};
|
||||
|
||||
@@ -53,7 +53,7 @@ class PaymentController extends GetxController {
|
||||
link: AppLink.getWalletByPassenger,
|
||||
payload: {'passenger_id': box.read(BoxName.passengerID)}).then((value) {
|
||||
box.write(BoxName.passengerWalletTotal,
|
||||
jsonDecode(value)['message'][0]['total'].toString());
|
||||
value['message'][0]['total'].toString());
|
||||
});
|
||||
isLoading = false;
|
||||
update();
|
||||
|
||||
Reference in New Issue
Block a user