Update: 2026-06-14 05:48:58

This commit is contained in:
Hamza-Ayed
2026-06-14 05:48:58 +03:00
parent 2645ed0cf1
commit 8e3b9eca4d
22 changed files with 789 additions and 179 deletions

View File

@@ -9,13 +9,12 @@ import 'package:siro_driver/constant/api_key.dart';
import 'package:siro_driver/models/overlay_service.dart';
import '../../../../constant/box_name.dart';
import '../../../../constant/links.dart';
import '../../../../controller/firebase/firbase_messge.dart';
import '../../../../controller/firebase/local_notification.dart';
import '../../../../controller/firebase/notification_service.dart';
import '../../../../controller/functions/crud.dart';
import '../../../../main.dart';
import '../../../../models/model/order_data.dart';
import '../../../../print.dart';
import '../../../../constant/currency.dart';
// === Enhanced Colors for Better Readability ===
class AppColors {
@@ -510,7 +509,7 @@ class _OrderOverlayState extends State<OrderOverlay>
flex: 3,
child: _buildHighlightInfo(
// FIX: Use the parsed priceValue here
"${NumberFormat('#,##0').format(priceValue)} ل.س",
"${NumberFormat('#,##0').format(priceValue)} ${CurrencyHelper.currency}",
"السعر".tr,
Icons.monetization_on_rounded,
AppColors.priceHighlight,

View File

@@ -4,6 +4,7 @@ import 'package:intaleq_maps/intaleq_maps.dart';
import 'package:siro_driver/constant/api_key.dart';
import 'package:siro_driver/constant/colors.dart';
import 'package:siro_driver/controller/home/captin/order_request_controller.dart';
import 'package:siro_driver/constant/currency.dart';
class OrderRequestPage extends StatelessWidget {
const OrderRequestPage({super.key});
@@ -43,10 +44,12 @@ class OrderRequestPage extends StatelessWidget {
final String passengerName =
getValue(8).isEmpty ? "عميل" : getValue(8);
final String startAddr =
getValue(29).isEmpty ? "موقع الانطلاق" : getValue(29);
final String endAddr =
getValue(30).isEmpty ? "الوجهة" : getValue(30);
final String startAddr = controller.apiStartName.isNotEmpty
? controller.apiStartName
: (getValue(29).isEmpty ? "موقع الانطلاق" : getValue(29));
final String endAddr = controller.apiEndName.isNotEmpty
? controller.apiEndName
: (getValue(30).isEmpty ? "الوجهة" : getValue(30));
final bool isVisa = (getValue(13) == 'true');
// منطق Speed = سعر ثابت
@@ -194,7 +197,7 @@ class OrderRequestPage extends StatelessWidget {
Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Text("${controller.tripPrice} ل.س",
Text("${controller.tripPrice} ${CurrencyHelper.currency}",
style: const TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
@@ -294,12 +297,12 @@ class OrderRequestPage extends StatelessWidget {
children: [
const Icon(Icons.my_location,
size: 18, color: Colors.green),
Expanded(
child: Container(
width: 2,
color: Colors.grey.shade300,
margin: const EdgeInsets.symmetric(
vertical: 2))),
Container(
width: 2,
height: 38,
color: Colors.grey.shade300,
margin: const EdgeInsets.symmetric(
vertical: 4)),
const Icon(Icons.location_on,
size: 18, color: Colors.red),
],
@@ -307,8 +310,6 @@ class OrderRequestPage extends StatelessWidget {
const SizedBox(width: 15),
Expanded(
child: Column(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Column(
@@ -319,15 +320,16 @@ class OrderRequestPage extends StatelessWidget {
style: TextStyle(
fontSize: 11,
color: Colors.grey)),
const SizedBox(height: 2),
Text(startAddr,
style: const TextStyle(
fontSize: 14,
fontSize: 13,
fontWeight: FontWeight.w600),
maxLines: 1,
maxLines: 2,
overflow: TextOverflow.ellipsis),
],
),
const Spacer(),
const SizedBox(height: 14),
Column(
crossAxisAlignment:
CrossAxisAlignment.start,
@@ -336,11 +338,12 @@ class OrderRequestPage extends StatelessWidget {
style: TextStyle(
fontSize: 11,
color: Colors.grey)),
const SizedBox(height: 2),
Text(endAddr,
style: const TextStyle(
fontSize: 14,
fontSize: 13,
fontWeight: FontWeight.w600),
maxLines: 1,
maxLines: 2,
overflow: TextOverflow.ellipsis),
],
),
@@ -373,7 +376,9 @@ class OrderRequestPage extends StatelessWidget {
const SizedBox(width: 15),
Expanded(
child: ElevatedButton(
onPressed: () => controller.acceptOrder(),
onPressed: controller.isAccepting
? null
: () => controller.acceptOrder(),
style: ElevatedButton.styleFrom(
backgroundColor: AppColor.primaryColor,
foregroundColor: Colors.white,
@@ -386,24 +391,35 @@ class OrderRequestPage extends StatelessWidget {
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text("قبول الرحلة",
style: TextStyle(
Text(
controller.isAccepting
? "جاري القبول...".tr
: "قبول الرحلة".tr,
style: const TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold)),
const SizedBox(width: 15),
SizedBox(
width: 20,
height: 20,
child: CircularProgressIndicator(
value: controller.progress,
color: Colors.white,
strokeWidth: 2.5,
backgroundColor: Colors.white24),
child: controller.isAccepting
? const CircularProgressIndicator(
color: Colors.white,
strokeWidth: 2.5,
)
: CircularProgressIndicator(
value: controller.progress,
color: Colors.white,
strokeWidth: 2.5,
backgroundColor: Colors.white24),
),
const SizedBox(width: 8),
Text("${controller.remainingTime}",
style: const TextStyle(
fontSize: 14, color: Colors.white)),
if (!controller.isAccepting) ...[
const SizedBox(width: 8),
Text("${controller.remainingTime}",
style: const TextStyle(
fontSize: 14,
color: Colors.white)),
],
],
),
),