From 5a7d0ef265b4255f838c0c2ffff33114e360a4d1 Mon Sep 17 00:00:00 2001 From: Rahaf Date: Wed, 15 Apr 2026 12:28:01 +0300 Subject: [PATCH] Added confirm button for admin --- app/components/admin/BookingRequests.js | 78 ++++++++++++++++++++----- app/utils/api.js | 16 +++++ 2 files changed, 79 insertions(+), 15 deletions(-) diff --git a/app/components/admin/BookingRequests.js b/app/components/admin/BookingRequests.js index 8cc2bcd..d71d5d8 100644 --- a/app/components/admin/BookingRequests.js +++ b/app/components/admin/BookingRequests.js @@ -23,7 +23,8 @@ import { Download, Printer, History, - Loader2 + Loader2, + CreditCard } from 'lucide-react'; import jsPDF from 'jspdf'; import html2canvas from 'html2canvas'; @@ -356,11 +357,11 @@ const PDFExportButton = ({ request, onExportComplete }) => { الحالة: - ${request.status === 'pending' ? '⏳ قيد الانتظار' : - request.status === 'owner_approved' ? '✓ موافقة المالك' : - request.status === 'admin_approved' ? '✓ موافقة الإدارة' : - request.status === 'active' ? '🏠 إيجار نشط' : - request.status === 'completed' ? '✔️ منتهي' : '❌ مرفوض'} + ${request.status === 'pending' ? 'قيد الانتظار' : + request.status === 'owner_approved' ? 'موافقة المالك' : + request.status === 'admin_approved' ? 'موافقة الإدارة' : + request.status === 'active' ? 'إيجار نشط' : + request.status === 'completed' ? 'منتهي' : 'مرفوض'} @@ -585,7 +586,7 @@ const RequestDetailsDialog = ({ request, isOpen, onClose }) => {
- {request.userType === 'syrian' ? '🇸🇾 هوية سورية' : '🛂 جواز سفر'} + {request.userType === 'syrian' ? '🇸🇾 هوية سورية' : 'جواز سفر'} {request.identityNumber}
@@ -658,6 +659,16 @@ const RequestDetailsDialog = ({ request, isOpen, onClose }) => {
{formatCurrency(request.securityDeposit)}
+
+ +
+ {request.securityDepositPaid ? '✓ تم الدفع' : '⏳ في انتظار الدفع'} +
+
{request.commissionRate}%
@@ -821,18 +832,24 @@ const RequestCard = ({ request, onAction, onViewDetails }) => { exit={{ height: 0, opacity: 0 }} className="border-t bg-white p-4" > -
+
سلفة ضمان
{formatCurrency(request.securityDeposit)}
+
+
حالة الرعبون
+
+ {request.securityDepositPaid ? 'تم الدفع' : ' بانتظار'} +
+
العمولة
{request.commissionRate}% ({request.commissionType})
مدة الإيجار
-
{request.startDate} إلى {request.endDate}
+
{request.startDate} إلى {request.endDate}
@@ -908,7 +925,20 @@ const RequestCard = ({ request, onAction, onViewDetails }) => { {request.status === 'admin_approved' && (
-
+
+
@@ -950,7 +982,7 @@ const RequestCard = ({ request, onAction, onViewDetails }) => { }`} > - {request.tenantLeft ? '✓ تم المغادرة' : 'مغادرة العقار'} + {request.tenantLeft ? 'تم المغادرة' : 'مغادرة العقار'}
@@ -1018,6 +1050,7 @@ export default function BookingRequests() { tenantReceived: false, tenantLeft: false, ownerReceived: false, + securityDepositPaid: false, securityDepositReturned: null, contractSigned: false, notes: '', @@ -1050,6 +1083,7 @@ export default function BookingRequests() { tenantReceived: false, tenantLeft: false, ownerReceived: false, + securityDepositPaid: false, securityDepositReturned: null, contractSigned: false, notes: '', @@ -1082,6 +1116,7 @@ export default function BookingRequests() { tenantReceived: true, tenantLeft: false, ownerReceived: false, + securityDepositPaid: true, securityDepositReturned: null, contractSigned: true, notes: 'عقد موقع إلكترونياً', @@ -1108,6 +1143,9 @@ export default function BookingRequests() { case 'admin_reject': setReasonDialog({ isOpen: true, requestId: data, type: 'admin' }); break; + case 'confirm_deposit': + handleDepositConfirmation(data.id); + break; case 'deliver_key': handleKeyDelivery(data.id, data.type); break; @@ -1178,6 +1216,17 @@ export default function BookingRequests() { ) ); }; + const handleDepositConfirmation = (requestId) => { + setRequests(prev => + prev.map(req => { + if (req.id === requestId) { + toast.success('✓ تم تأكيد دفع الرعبون بنجاح!', { id: requestId }); + return { ...req, securityDepositPaid: true }; + } + return req; + }) + ); + }; const handleKeyDelivery = (requestId, userType) => { setRequests(prev => @@ -1266,7 +1315,6 @@ export default function BookingRequests() {
- {/* إحصائيات سريعة */}