تمت إضافة وحدة كاملة لإدارة وتوليد الوثائق القانونية للمقاولات الجزائرية حسب دورة حياة المشروع:
① الوثائق التجارية والتعاقدية (Pre-Contract):
- 📋 فاتورة شكلية (Facture Proforma)
- 📊 كشف كمي وتقديري (Devis Estimatif) — بنظام LOTs
- 💰 جدول الأسعار الوحدوية (BPU)
- 🏢 عرض الخدمة (Offre de Service) — مع سوابق + موارد بشرية + عتاد
② وثائق الميدان والتنفيذ (Execution):
- 🚀 محضر بدء الأشغال (PV d'Ouverture)
- 📐 كشف المرفقات (Attachement)
- 📔 يوميات الورشة (Journal de Chantier)
- 🤝 محضر استلام مؤقت (PV Réception Provisoire) — مع تحفظات
- ✅ محضر استلام نهائي (PV Réception Définitive)
③ النظام المالي والفوترة (Billing):
- ⏩ فاتورة تسبيق (Facture d'Acompte)
- 📈 كشف أشغال / وضعية (Situation de Travaux) — مع خصم تلقائي للسابقة والتسبيقات والضمان 5%
- 🏁 فاتورة نهائية (Facture Définitive) — تصفية حساب كامل
- 🧾 وصل تسديد (Quittance de Paiement) — مع استيراد من فاتورة مدفوعة
④ الموارد البشرية والرواتب (HR):
- 💼 كشف راتب (Fiche de Paie) — حساب آلي لـ CNAS 9% + IRG حسب الشرائح الجزائرية
- 📝 عقد CDD محدد المدة
- 🤝 عقد CTA مدعم (ANEM)
- 🔒 عقد CDI دائم
- ⏱️ بطاقة حضور (Fiche de Pointage)
- 📄 شهادة عمل (Attestation de Travail)
⑤ اللوجستيك والمخزون (Logistics):
- 🛒 وصل طلب (Bon de Commande)
- 📥 وصل استلام (Bon de Réception) — مع تأشير حالة كل صنف
- 📤 وصل خروج (Bon de Sortie) — مع تتبع المخزون
- 🚜 بطاقة تتبع عتاد (Fiche Suivi Équipement) — وقود + ساعات + صيانة
- 🎨 قالب احترافي موحد: ترويسة سوداء مع شعار ذهبي + ترقيم آلي
- 🏛️ الترويسة القانونية الإلزامية تلقائياً: RC, NIF, NIS, رقم المادة، RIB، العنوان
- 🌐 ثنائي اللغة: عربي + فرنسي في نفس الوثيقة (مطلب قانوني)
- 📄 طباعة وحفظ PDF: عبر "Save as PDF" في متصفح المستخدم — جودة عالية + دعم كامل للعربية
- 🔗 ربط ذكي بالبيانات: قوائم منسدلة من المشاريع/العمال/المعدات/الفواتير الموجودة
- 🛡️ سجل تدقيق آلي: كل توليد وثيقة يُسجل في
audit_log- 💡 نسب TVA والضرائب: حسب القانون الجزائري (TVA 19% افتراضي، IRG حسب الشرائح، CNAS 9%/26%)
- استكمل البيانات القانونية أولاً من: الإعدادات → البيانات القانونية الجزائرية (RC, NIF, NIS, المادة، RIB، العنوان)
- افتح: القائمة الجانبية → قسم "الوثائق والتقارير" → 📚 وثائق إدارية ومالية
- اختر القسم المناسب ثم نوع الوثيقة → املأ النموذج → توليد وطباعة PDF
js/dz-docs.js— وحدةDZDocs(مولّد الوثائق - 22 دالة)js/dz-docs-ui.js— صفحةPages.dz_documents+ معالجاتDZDocsUIأضيفت حقول جديدة لجدول
tenants:
article_imp(رقم المادة الجبائية)rib(رقم الحساب البنكي)Migration آلي في
supabase-schema.sql(آخر الملف) للقواعد القائمة.
تم إعادة تصميم صفحة الهبوط (
Pages.landing) بالكامل بأسلوب Premium 3D متناسق مع هوية الموقع الذهبية:
- مشهد 3D عائم في الـ Hero مع 5 بطاقات (لوحة التحكم + 4 إحصائيات حية)
- شبكة perspective متحركة في الأرضية + ذرات ذهبية متصاعدة
- 3 معاينات mockup حقيقية: فاتورة PDF، محادثة SmartAI، هاتف بوضع الميدان مع نبضات GPS
- تفاعلات تتبع الفأرة على بطاقات المزايا (3D tilt) والـ Showcase
- عدّاد أرقام تلقائي + reveal-on-scroll + navbar شفافة تتبدّل عند التمرير
- CSS namespace
.ll-*لمنع أي تعارض مع باقي التطبيق- دعم RTL/LTR كامل مع AR + FR عبر
L()وI18N- استجابة كاملة على الموبايل (البطاقات العائمة تختفي تلقائياً)
التكامل: يعمل مع نفس
App.navigate(),showLoginPanel(),showRegisterPanel(),applyDOMTranslation()— لا حاجة لتعديل أي شيء آخر. الـ effects تُهيّأ تلقائياً عبرinitLandingEffects()التي تستدعى منApp.render().
SmartStruct/
├── index.html ← التطبيق الرئيسي
├── admin-login.html ← لوحة تحكم المسؤول
├── supabase-db.js ← محرك قاعدة البيانات (27 جدول متطابق)
├── supabase-schema.sql ← هيكل قاعدة البيانات PostgreSQL
├── README.md ← هذا الدليل
├── css/
│ └── main.css
└── js/
├── app.js ← منطق التطبيق الأساسي
├── features.js ← الميزات المتقدمة (v7.2)
├── dz-docs.js ← 🆕 وحدة DZDocs — مولد 22 وثيقة جزائرية (v7.3)
├── dz-docs-ui.js ← 🆕 صفحة Pages.dz_documents + معالجات DZDocsUI (v7.3)
└── emailjs-config.js
| # | الميزة | كيف تستخدمها |
|---|---|---|
| 1 | تشفير كلمات المرور (PBKDF2 + SHA-256 + 100k iterations) | تلقائي — يطبَّق عند التسجيل، ويُرقّى الحسابات القديمة عند أول دخول |
| 2 | Row Level Security (RLS) | مفعّل افتراضياً في supabase-schema.sql على كل الجداول |
| 3 | Audit Log — سجل كل التعديلات | جدول audit_log يلتقط: من، متى، ماذا غيّر (قبل/بعد) + IP + User Agent |
| 4 | النسخ الاحتياطي | SmartBackup.exportAll() لتصدير JSON كامل · تذكير أسبوعي تلقائي |
| # | الميزة | الاستخدام |
|---|---|---|
| 5 | مساعد محادثاتي ذكي 🤖 | زر عائم أسفل اليسار → يجيب على أسئلة بناءً على بيانات المستخدم |
| 6 | تقارير شهرية ذكية | AIReports.showReportModal() — يحلل البيانات ويكتب تقريراً عربياً مع توصيات |
API: يستخدم Groq (مجاني — 14,400 طلب/يوم)
| # | الميزة | الاستخدام |
|---|---|---|
| 7 | فواتير PDF احترافية | PDFGenerator.invoice(invoiceId) — مع شعار، NIF/NIS/RC، TVA 19%، مكان الختم |
| 8 | عقود عمل قانونية | PDFGenerator.contractWorker(workerId) — حسب القانون الجزائري |
| 9 | توقيع إلكتروني | جدول signatures — رابط فريد للعميل لتوقيع الفاتورة |
| # | الميزة | الاستخدام |
|---|---|---|
| 10 | توقعات السيولة (Cash Flow) | CashFlow.showPanel() — يرسم منحنى الرصيد لـ 90 يوم قادمة + تنبيهات |
| 11 | استيراد كشوف البنوك | جدول bank_transactions — استيراد CSV من CCP/BNA/BEA + مطابقة آلية |
| # | الميزة | الاستخدام |
|---|---|---|
| 12 | وضع الميدان (Mobile Mode) | MobileMode.show() — 5 أزرار كبيرة: حضور، استلام مواد، صور، طلب صرف، GPS معدات |
| 13 | تتبع GPS للمعدات | EquipmentGPS.generateQR(id) — QR code للمعدة → مسح → تسجيل موقع تلقائي |
| # | الميزة | الاستخدام |
|---|---|---|
| 14 | 3 ثيمات (داكن / فاتح / ذهبي) | SmartThemes.cycleNext() — تبديل سريع بزر واحد |
| 15 | بحث فوري شامل (Ctrl+K) | اضغط Ctrl+K → ابحث في كل البيانات |
| 16 | تصدير Excel | QuickWins.exportExcel('projects') بدلاً من CSV |
| 17 | Onboarding tour | يظهر تلقائياً للمستخدم الجديد عند أول دخول |
| 18 | Time Tracking | حقول check_in/check_out/overtime/gps في جدول attendance |
| # | الميزة | الاستخدام |
|---|---|---|
| 19 | Custom Role Builder | جدول custom_roles — صلاحيات مخصصة مع scope (مثلاً: محاسب-مشروع-X) |
كانت هناك اختلافات حرجة في أسماء الأعمدة بين SB_SCHEMA (app.js) و _SB_SCHEMA_INTERNAL (supabase-db.js) و SQL — كانت تسبب فشل الرفع لـ Supabase بصمت. تم توحيد كل الجداول الـ 18 الأصلية + إضافة 9 جداول جديدة.
أكبر مشكلة: عند إضافة سجل، يولّد Supabase ID جديداً مختلفاً عن المحلي. النسخة السابقة لم تكن تحدّث الـ ID المحلي. الآن: بعد كل INSERT ناجح، يُحدَّث الـ ID المحلي تلقائياً.
كانت TrialManager.showExpiredModal/checkAndEnforce/checkExpiryWarning غير معرَّفة! تمت إضافتها مع modal احترافي يشكر المستخدم على 14 يوم + يعرض الخطط.
deleteTenantAccount, deleteUserAccount, toggleTenant, toggleUserActive, approveUpgrade — جميعها تتحقق الآن من res.ok لكل طلب. حماية للحسابات الأساسية + منع حذف الذات.
SELECT setval('tenants_id_seq', GREATEST(MAX(id), 100)) — يحل خطأ duplicate key value عند التسجيل الجديد.
supabase.com → New project (مجاني).
مهم: إذا كان لديك قاعدة بيانات قديمة، احذف الجداول أولاً. الـ schema الجديد يبدأ بـ DROP TABLE IF EXISTS ... CASCADE:
Supabase Dashboard → SQL Editor → New Query → الصق محتوى supabase-schema.sql → Run
خيار A (الأفضل): افتح supabase-db.js السطرين 28-29:
const SUPABASE_URL = 'https://xxxx.supabase.co';
const SUPABASE_KEY = 'sb_publishable_xxxxx';خيار B: التطبيق → الإعدادات → Supabase → أدخل URL و Key.
أدخل API Key من groq.com (مجاني) في:
- لوحة المسؤول → الإعدادات → AI
| الحقل | القيمة |
|---|---|
| البريد | admin@smartbtp.dz |
| كلمة المرور | Admin@SmartStruct2025 |
| مفتاح الأمان | SSTR-ADMIN-2025 |
| الحقل | القيمة |
|---|---|
| البريد | demo@algerie-construction.dz |
| كلمة المرور | Demo@1234 |
⚠️ كلمات المرور الافتراضية في SQL غير مشفّرة — ستُشفَّر تلقائياً عند أول تسجيل دخول.
الأساسية (18): plans · tenants · users · projects · workers · equipment · transactions · attendance · materials · stock_movements · invoices · salary_records · kanban_tasks · documents · obligations · notes · notifications · global_settings
الجديدة في v7.2 (9): audit_log · custom_roles · equipment_locations · tenders · tender_offers · bank_transactions · signatures · ai_conversations + توسعات على users, tenants, attendance
يجب إضافته في 3 أماكن:
supabase-schema.sql— تعريف الجدولsupabase-db.js— في_SB_SCHEMA_INTERNAL+_SB_DATE_FIELDS_INTERNAL+_SB_NUM_FIELDS_INTERNALjs/app.js— فيSB_SCHEMA
أضفها كـ module في js/features.js:
window.MyFeature = {
doSomething() { /* ... */ }
};AuditLog.log('update', 'projects', projectId, oldData, newData);SmartStruct v7.2 Pro — صُمم للشركات الجزائرية في قطاع البناء والمقاولات