diff --git a/app/components/admin/BookingRequests.js b/app/components/admin/BookingRequests.js
index d71d5d8..f2bce95 100644
--- a/app/components/admin/BookingRequests.js
+++ b/app/components/admin/BookingRequests.js
@@ -1,4 +1,4 @@
-'use client';
+'use client';
import { useState, useRef } from 'react';
import { motion, AnimatePresence } from 'framer-motion';
@@ -29,18 +29,20 @@ import {
import jsPDF from 'jspdf';
import html2canvas from 'html2canvas';
import toast, { Toaster } from 'react-hot-toast';
+import AuthService from '../../services/AuthService';
+import { adminConfirmDeposit } from '../../utils/api';
const ReasonDialog = ({ isOpen, onClose, onConfirm, title, defaultReason = '' }) => {
const [reason, setReason] = useState(defaultReason);
const [otherReason, setOtherReason] = useState('');
const commonReasons = [
- 'أعمال صيانة في العقار',
- 'العقار غير متاح في هذه التواريخ',
- 'مشكلة في وثائق المستأجر',
- 'المالك غير متاح للتسليم',
- 'تأخر في دفع الضمان',
- 'سبب آخر'
+ 'ط£ط¹ظ…ط§ظ„ طµظٹط§ظ†ط© ظپظٹ ط§ظ„ط¹ظ‚ط§ط±',
+ 'ط§ظ„ط¹ظ‚ط§ط± ط؛ظٹط± ظ…طھط§ط ظپظٹ ظ‡ط°ظ‡ ط§ظ„طھظˆط§ط±ظٹط®',
+ 'ظ…ط´ظƒظ„ط© ظپظٹ ظˆط«ط§ط¦ظ‚ ط§ظ„ظ…ط³طھط£ط¬ط±',
+ 'ط§ظ„ظ…ط§ظ„ظƒ ط؛ظٹط± ظ…طھط§ط ظ„ظ„طھط³ظ„ظٹظ…',
+ 'طھط£ط®ط± ظپظٹ ط¯ظپط¹ ط§ظ„ط¶ظ…ط§ظ†',
+ 'ط³ط¨ط¨ ط¢ط®ط±'
];
if (!isOpen) return null;
@@ -65,7 +67,7 @@ const ReasonDialog = ({ isOpen, onClose, onConfirm, title, defaultReason = '' })
{title}
- يرجى تحديد سبب الرفض
+ ظٹط±ط¬ظ‰ طھطط¯ظٹط¯ ط³ط¨ط¨ ط§ظ„ط±ظپط¶
@@ -73,7 +75,7 @@ const ReasonDialog = ({ isOpen, onClose, onConfirm, title, defaultReason = '' })
@@ -117,17 +119,17 @@ const PDFExportButton = ({ request, onExportComplete }) => {
const [isExporting, setIsExporting] = useState(false);
const formatCurrency = (amount) => {
- return amount?.toLocaleString() + ' ل.س';
+ return amount?.toLocaleString() + ' ظ„.ط³';
};
const generatePDF = async () => {
if (!request) {
- toast.error('لا توجد بيانات للتصدير');
+ toast.error('ظ„ط§ طھظˆط¬ط¯ ط¨ظٹط§ظ†ط§طھ ظ„ظ„طھطµط¯ظٹط±');
return;
}
setIsExporting(true);
- const loadingToast = toast.loading('جاري إنشاء ملف PDF...', { id: 'pdf-export' });
+ const loadingToast = toast.loading('ط¬ط§ط±ظٹ ط¥ظ†ط´ط§ط، ظ…ظ„ظپ PDF...', { id: 'pdf-export' });
try {
const printContent = document.createElement('div');
@@ -288,49 +290,49 @@ const PDFExportButton = ({ request, onExportComplete }) => {
- تقرير طلب حجز #${request.id}
- تاريخ التقرير: ${new Date().toLocaleDateString('ar-SA')} | ${new Date().toLocaleTimeString('ar-SA')}
+ طھظ‚ط±ظٹط± ط·ظ„ط¨ طط¬ط² #${request.id}
+ طھط§ط±ظٹط® ط§ظ„طھظ‚ط±ظٹط±: ${new Date().toLocaleDateString('ar-SA')} | ${new Date().toLocaleTimeString('ar-SA')}
- معلومات المستأجر
+ ظ…ط¹ظ„ظˆظ…ط§طھ ط§ظ„ظ…ط³طھط£ط¬ط±
- الاسم الكامل:
- ${request.user || 'غير محدد'}
+ ط§ظ„ط§ط³ظ… ط§ظ„ظƒط§ظ…ظ„:
+ ${request.user || 'ط؛ظٹط± ظ…طط¯ط¯'}
- نوع الهوية:
- ${request.userType === 'syrian' ? 'هوية سورية' : 'جواز سفر'}
+ ظ†ظˆط¹ ط§ظ„ظ‡ظˆظٹط©:
+ ${request.userType === 'syrian' ? 'ظ‡ظˆظٹط© ط³ظˆط±ظٹط©' : 'ط¬ظˆط§ط² ط³ظپط±'}
- رقم الهوية:
- ${request.identityNumber || 'غير محدد'}
+ ط±ظ‚ظ… ط§ظ„ظ‡ظˆظٹط©:
+ ${request.identityNumber || 'ط؛ظٹط± ظ…طط¯ط¯'}
- البريد الإلكتروني:
- ${request.userEmail || 'غير محدد'}
+ ط§ظ„ط¨ط±ظٹط¯ ط§ظ„ط¥ظ„ظƒطھط±ظˆظ†ظٹ:
+ ${request.userEmail || 'ط؛ظٹط± ظ…طط¯ط¯'}
- رقم الهاتف:
- ${request.userPhone || 'غير محدد'}
+ ط±ظ‚ظ… ط§ظ„ظ‡ط§طھظپ:
+ ${request.userPhone || 'ط؛ظٹط± ظ…طط¯ط¯'}
- معلومات العقار
+ ظ…ط¹ظ„ظˆظ…ط§طھ ط§ظ„ط¹ظ‚ط§ط±
- العقار:
- ${request.property || 'غير محدد'}
+ ط§ظ„ط¹ظ‚ط§ط±:
+ ${request.property || 'ط؛ظٹط± ظ…طط¯ط¯'}
- السعر اليومي:
+ ط§ظ„ط³ط¹ط± ط§ظ„ظٹظˆظ…ظٹ:
${formatCurrency(request.dailyPrice)}
@@ -338,30 +340,30 @@ const PDFExportButton = ({ request, onExportComplete }) => {
- تفاصيل الحجز
+ طھظپط§طµظٹظ„ ط§ظ„طط¬ط²
- تاريخ البداية:
- ${request.startDate || 'غير محدد'}
+ طھط§ط±ظٹط® ط§ظ„ط¨ط¯ط§ظٹط©:
+ ${request.startDate || 'ط؛ظٹط± ظ…طط¯ط¯'}
- تاريخ النهاية:
- ${request.endDate || 'غير محدد'}
+ طھط§ط±ظٹط® ط§ظ„ظ†ظ‡ط§ظٹط©:
+ ${request.endDate || 'ط؛ظٹط± ظ…طط¯ط¯'}
- عدد الأيام:
- ${request.days || 0} يوم
+ ط¹ط¯ط¯ ط§ظ„ط£ظٹط§ظ…:
+ ${request.days || 0} ظٹظˆظ…
- الحالة:
+ ط§ظ„طط§ظ„ط©:
- ${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' ? 'ظ…ظ†طھظ‡ظٹ' : 'ظ…ط±ظپظˆط¶'}
@@ -370,27 +372,27 @@ const PDFExportButton = ({ request, onExportComplete }) => {
- المعلومات المالية
+ ط§ظ„ظ…ط¹ظ„ظˆظ…ط§طھ ط§ظ„ظ…ط§ظ„ظٹط©
- سلفة الضمان:
+ ط³ظ„ظپط© ط§ظ„ط¶ظ…ط§ظ†:
${formatCurrency(request.securityDeposit)}
- المبلغ الإجمالي:
+ ط§ظ„ظ…ط¨ظ„ط؛ ط§ظ„ط¥ط¬ظ…ط§ظ„ظٹ:
${formatCurrency(request.totalAmount)}
- نسبة العمولة:
+ ظ†ط³ط¨ط© ط§ظ„ط¹ظ…ظˆظ„ط©:
${request.commissionRate || 0}%
- نوع العمولة:
- ${request.commissionType || 'غير محدد'}
+ ظ†ظˆط¹ ط§ظ„ط¹ظ…ظˆظ„ط©:
+ ${request.commissionType || 'ط؛ظٹط± ظ…طط¯ط¯'}
- قيمة العمولة:
+ ظ‚ظٹظ…ط© ط§ظ„ط¹ظ…ظˆظ„ط©:
${formatCurrency(request.commissionAmount)}
@@ -399,7 +401,7 @@ const PDFExportButton = ({ request, onExportComplete }) => {
${request.notes ? `
- ملاحظات
+ ظ…ظ„ط§طط¸ط§طھ
${request.notes}
@@ -409,44 +411,44 @@ const PDFExportButton = ({ request, onExportComplete }) => {
- سجل الإجراءات
+ ط³ط¬ظ„ ط§ظ„ط¥ط¬ط±ط§ط،ط§طھ
${request.requestDate}
- تم إنشاء الطلب
+ طھظ… ط¥ظ†ط´ط§ط، ط§ظ„ط·ظ„ط¨
${request.ownerApproved ? `
- ✓
- تمت موافقة المالك
+ ✓
+ طھظ…طھ ظ…ظˆط§ظپظ‚ط© ط§ظ„ظ…ط§ظ„ظƒ
` : ''}
${request.adminApproved ? `
- ✓
- تمت موافقة الإدارة
+ ✓
+ طھظ…طھ ظ…ظˆط§ظپظ‚ط© ط§ظ„ط¥ط¯ط§ط±ط©
` : ''}
${request.ownerDelivered ? `
- تم تسليم المفتاح
+ طھظ… طھط³ظ„ظٹظ… ط§ظ„ظ…ظپطھط§ط
` : ''}
${request.tenantReceived ? `
- تم استلام العقار
+ طھظ… ط§ط³طھظ„ط§ظ… ط§ظ„ط¹ظ‚ط§ط±
` : ''}