Update: 2026-07-09 17:18:06

This commit is contained in:
Hamza-Ayed
2026-07-09 17:18:06 +03:00
parent 461a1402ab
commit 2ff7450d0b
8 changed files with 1322 additions and 231 deletions
+390 -206
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>مولد ومطبع عقد شراكة Siro القانوني المطور</title>
<title>مولد ومطبع عقد شراكة Siro القانوني المطور - سوريا</title>
<!-- Google Fonts: Amiri & Inter for highly clean and modern tech-corporate document rendering -->
<link href="https://fonts.googleapis.com/css2?family=Amiri:ital,wght@0,400;0,700;1,400&family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
<!-- Tailwind CSS -->
@@ -142,7 +142,7 @@
</svg>
لوحة التحكم الذكية بالعقد
</h2>
<p class="text-[11px] text-slate-500 mt-0.5">البيانات القانونية للمؤسسين معبأة تلقائياً من وثائق السفر الرسمية.</p>
<p class="text-[11px] text-slate-500 mt-0.5">يمكنك إضافة وتعديل بيانات الأطراف وحصصهم لتحديث العقد فورياً.</p>
</div>
<!-- Inputs Sections -->
@@ -150,59 +150,62 @@
<div class="bg-slate-50 p-3 rounded-lg space-y-2.5 border border-slate-100">
<h3 class="text-[10px] font-bold text-slate-400 uppercase tracking-wider">التواريخ والمعلومات الأساسية</h3>
<div>
<label class="block text-[11px] text-slate-600 font-semibold mb-1">تاريخ تحرير العقد</label>
<input type="text" id="input-date" value="14/06/2026م" placeholder="مثال: 14/06/2026م" class="w-full text-xs px-2.5 py-1.5 bg-white border border-slate-200 rounded focus:outline-none focus:border-legal-gold">
<div class="grid grid-cols-2 gap-2">
<div>
<label class="block text-[11px] text-slate-600 font-semibold mb-1">تاريخ تحرير العقد</label>
<input type="text" id="input-date" value="14/06/2026م" placeholder="مثال: 14/06/2026م" class="w-full text-xs px-2.5 py-1.5 bg-white border border-slate-200 rounded focus:outline-none focus:border-legal-gold">
</div>
<div>
<label class="block text-[11px] text-slate-600 font-semibold mb-1">قيمة رأس المال</label>
<input type="number" id="input-capital" value="200000" placeholder="مثال: 200000" class="w-full text-xs px-2.5 py-1.5 bg-white border border-slate-200 rounded focus:outline-none focus:border-legal-gold">
</div>
</div>
<div class="grid grid-cols-2 gap-2">
<div>
<label class="block text-[11px] text-slate-600 font-semibold mb-1">المبلغ كتابة</label>
<input type="text" id="input-capital-words" value="مائتا ألف دولار أمريكي" placeholder="مثال: مائتا ألف دولار أمريكي" class="w-full text-xs px-2.5 py-1.5 bg-white border border-slate-200 rounded focus:outline-none focus:border-legal-gold">
</div>
<div>
<label class="block text-[11px] text-slate-600 font-semibold mb-1">رمز العملة (اختصار)</label>
<input type="text" id="input-currency" value="USD" placeholder="مثال: USD" class="w-full text-xs px-2.5 py-1.5 bg-white border border-slate-200 rounded focus:outline-none focus:border-legal-gold">
</div>
</div>
</div>
<div class="bg-slate-50 p-3 rounded-lg space-y-2.5 border border-slate-100">
<h3 class="text-[10px] font-bold text-slate-400 uppercase tracking-wider">البيانات الرسمية للمؤسسين (الطرف الأول)</h3>
<div>
<label class="block text-[11px] text-slate-600 font-semibold mb-1">حمزه عايد طحيمر الغويريين</label>
<input type="text" id="input-id-1" value="9841029780، وجواز سفر رقم: S0212294" placeholder="الرقم الوطني وجواز السفر" class="w-full text-xs px-2.5 py-1.5 bg-white border border-slate-200 rounded focus:outline-none focus:border-legal-gold">
</div>
<div>
<label class="block text-[11px] text-slate-600 font-semibold mb-1">فراس قاسم احمد مقابله</label>
<input type="text" id="input-id-2" value="9851026092، وجواز سفر رقم: S0401805" placeholder="الرقم الوطني وجواز السفر" class="w-full text-xs px-2.5 py-1.5 bg-white border border-slate-200 rounded focus:outline-none focus:border-legal-gold">
</div>
</div>
<div class="bg-slate-50 p-3 rounded-lg space-y-2.5 border border-slate-100">
<h3 class="text-[10px] font-bold text-slate-400 uppercase tracking-wider">الهوية / الرقم الوطني (الطرف الثاني)</h3>
<div>
<label class="block text-[11px] text-slate-600 font-semibold mb-1">رقم هوية الشريك المستثمر (محمد عمر محمد المجفت)</label>
<input type="text" id="input-id-3" value="9851001081، وجواز سفر رقم: Q765174" placeholder="أدخل رقم هوية محمد عمر محمد المجفت عند توفرها" class="w-full text-xs px-2.5 py-1.5 bg-white border border-slate-200 rounded focus:outline-none focus:border-legal-gold">
</div>
<div>
<label class="block text-[11px] text-slate-600 font-semibold mb-1">إرفاق صورة جواز السفر (للملحق)</label>
<input type="file" id="input-passport-file" accept="image/*" class="w-full text-xs px-2.5 py-1.5 bg-white border border-slate-200 rounded focus:outline-none focus:border-legal-gold">
</div>
</div>
<div class="bg-slate-50 p-3 rounded-lg space-y-3.5 border border-slate-100">
<!-- Founders Section -->
<div class="bg-slate-50 p-3 rounded-lg border border-slate-100 space-y-3">
<div class="flex justify-between items-center">
<h3 class="text-[10px] font-bold text-slate-400 uppercase tracking-wider">حصص الأرباح التشغيلية %</h3>
<h3 class="text-[10px] font-bold text-slate-400 uppercase tracking-wider">الطرف الأول (المؤسسون - بحد أقصى 3)</h3>
<button id="btn-add-founder" onclick="addFounder()" class="text-[11px] font-bold text-legal-gold hover:text-legal-goldHover flex items-center gap-0.5">
+ إضافة مؤسس
</button>
</div>
<div id="founders-container" class="space-y-3">
<!-- Dynamic Founders Form Fields -->
</div>
</div>
<!-- Investors Section -->
<div class="bg-slate-50 p-3 rounded-lg border border-slate-100 space-y-3">
<div class="flex justify-between items-center">
<h3 class="text-[10px] font-bold text-slate-400 uppercase tracking-wider">الطرف الثاني (الشركاء المستثمرون - بحد أقصى 3)</h3>
<button id="btn-add-partner" onclick="addPartner()" class="text-[11px] font-bold text-legal-gold hover:text-legal-goldHover flex items-center gap-0.5">
+ إضافة شريك
</button>
</div>
<div id="partners-container" class="space-y-3">
<!-- Dynamic Partners Form Fields -->
</div>
</div>
<!-- Validation & Status Indicator -->
<div class="bg-slate-50 p-3 rounded-lg space-y-2 border border-slate-100">
<div class="flex justify-between items-center">
<h3 class="text-[10px] font-bold text-slate-400 uppercase tracking-wider">مجموع الحصص %</h3>
<span id="share-indicator" class="text-[10px] font-bold px-1.5 py-0.5 rounded-full bg-red-100 text-red-600">
المجموع: <span id="share-sum">0</span>%
</span>
</div>
<div class="grid grid-cols-3 gap-2">
<div>
<label class="block text-[10px] text-slate-500 mb-0.5">حمزة %</label>
<input type="number" id="input-share-1" value="25" min="0" max="100" class="w-full text-xs px-2 py-1 bg-white border border-slate-200 rounded focus:outline-none focus:border-legal-gold">
</div>
<div>
<label class="block text-[10px] text-slate-500 mb-0.5">فراس %</label>
<input type="number" id="input-share-2" value="25" min="0" max="100" class="w-full text-xs px-2 py-1 bg-white border border-slate-200 rounded focus:outline-none focus:border-legal-gold">
</div>
<div>
<label class="block text-[10px] text-slate-500 mb-0.5">محمد %</label>
<input type="number" id="input-share-3" value="50" min="0" max="100" class="w-full text-xs px-2 py-1 bg-white border border-slate-200 rounded focus:outline-none focus:border-legal-gold">
</div>
</div>
<div id="share-validation-msg" class="text-[11px] p-2 rounded bg-red-50 text-red-700 font-medium leading-relaxed">
⚠️ مجموع الحصص يجب أن يكون 100% لتصحيح صياغة العقد.
</div>
@@ -261,29 +264,21 @@
<div class="space-y-3">
<div>
<h3 class="font-sans font-bold text-slate-950 border-r-3 border-legal-gold pr-2 text-[13px]">الطرف الأول (المؤسسون – الشريك الإداري والتقني):</h3>
<ol class="list-decimal list-inside pr-3 mt-1 space-y-1">
<li>
<strong>السيد/ حمزه عايد طحيمر الغويريين</strong>، أردني الجنسية، يحمل الرقم الوطني/جواز السفر
<span id="sync-p1" class="highlight-field">9841029780، وجواز سفر رقم: S0212294</span>، ويُشار إليه بـ <strong>"الشريك المؤسس الأول"</strong>.
</li>
<li>
<strong>السيد/ فراس قاسم احمد مقابله</strong>، أردني الجنسية، يحمل الرقم الوطني/جواز السفر
<span id="sync-p2" class="highlight-field">9851026092، وجواز سفر رقم: S0401805</span>، ويُشار إليه بـ <strong>"الشريك المؤسس الثاني"</strong>.
</li>
</ol>
<div id="doc-founders-list" class="pr-3 mt-1 space-y-1.5">
<!-- Dynamic Founders List -->
</div>
<p class="text-[11px] text-slate-500 italic pr-3 mt-0.5 font-sans">
(ويُشار إليهما مجتمعَيْن بـ <strong>"الطرف الأول"</strong> أو <strong>"الشركاء المؤسسون"</strong>).
</p>
</div>
<div>
<h3 class="font-sans font-bold text-slate-950 border-r-3 border-legal-gold pr-2 text-[13px]">الطرف الثاني (الشريك المستثمر):</h3>
<div class="pr-3 mt-1">
<strong>السيد/ محمد عمر محمد المجفت</strong>، أردني الجنسية، يحمل الرقم الوطني / رقم الهوية
<span id="sync-p3" class="highlight-field">9851001081، وجواز سفر رقم: Q765174</span>، ويُشار إليه بـ <strong>"الطرف الثاني"</strong> أو <strong>"الشريك المستثمر"</strong>.
<h3 class="font-sans font-bold text-slate-950 border-r-3 border-legal-gold pr-2 text-[13px]">الطرف الثاني (الشركاء المستثمرون):</h3>
<div id="doc-partners-list" class="pr-3 mt-1 space-y-1.5">
<!-- Dynamic Partners List -->
</div>
<p class="text-[11px] text-slate-500 italic pr-3 mt-0.5 font-sans">
(ويُشار إلى الأطراف الثلاثة مجتمعين بـ <strong>"الشركاء"</strong> أو <strong>"أطراف العقد"</strong>).
(ويُشار إليهم مجتمعين بـ <strong>"الطرف الثاني"</strong> أو <strong>"الشركاء المستثمرون"</strong>).
</p>
</div>
</div>
@@ -296,10 +291,10 @@
<strong>حيث إن</strong> الطرف الأول يمتلك ويُدير منظومة برمجية ومنصة تقنية متطورة للنقل الذكي وتسهيل التنقل الحضري وتوصيل الركاب تحمل اسم <strong>"Siro"</strong> ومصممة وفق أحدث المعايير الهندسية والبرمجية العالمية؛
</p>
<p>
<strong>وحيث إن</strong> الطرف الثاني (الشريك المستثمر) يرغب في تقديم تمويل استثماري لتغطية تكاليف إطلاق التطبيق وتشغيله وتسويقه داخل السوق السورية مقابل حصة من صافي الأرباح التشغيلية؛
<strong>وحيث إن</strong> الطرف الثاني (الشركاء المستثمرون) يرغبون في تقديم تمويل استثماري لتغطية تكاليف إطلاق التطبيق وتشغيله وتسويقه داخل السوق السورية مقابل حصة من صافي الأرباح التشغيلية؛
</p>
<p>
<strong>وحيث إن</strong> إرادة الأطراف الثلاثة قد التقت على تأسيس شراكة تجارية واستثمارية مشتركة قائمة على الشفافية والالتزام المتبادل؛
<strong>وحيث إن</strong> إرادة الأطراف قد التقت على تأسيس شراكة تجارية واستثمارية مشتركة قائمة على الشفافية والالتزام المتبادل؛
</p>
<p class="font-bold border-r-2 border-slate-400 pr-2">
فقد اتفق الأطراف — بعد إقرارهم بكامل أهليتهم القانونية للتعاقد — على ما يلي:
@@ -328,7 +323,7 @@
<div>
<h4 class="font-sans font-bold text-slate-950 text-[13px] mb-0.5">المادة الثالثة: رأس المال الاستثماري وآلية الدفع</h4>
<ol class="list-decimal list-inside space-y-1">
<li>يلتزم الطرف الثاني بتقديم رأس مال استثماري إجمالي قدره <strong>مائة وثمانون ألف دولار أمريكي (180,000 USD)</strong> لتمويل عمليات إطلاق المشروع وتشغيله في سوريا.</li>
<li>يلتزم الطرف الثاني بتقديم رأس مال استثماري إجمالي قدره <strong class="sync-capital-words-span">مائتا ألف دولار أمريكي</strong> (<strong class="sync-capital-number-span">200,000</strong> <strong class="sync-currency-span">USD</strong>) لتمويل عمليات إطلاق المشروع وتشغيله في سوريا.</li>
<li>يُسدَّد رأس المال الاستثماري على دفعات مجدولة ومرنة يتم التوافق عليها ودياً بين الأطراف بما يتماشى مع خطة العمل والاحتياجات التشغيلية للمشروع.</li>
<li>تُودع جميع المبالغ والدفعات الاستثمارية في الحساب المصرفي التجاري للشركة في المملكة الأردنية الهاشمية، وذلك بعد إتمام تأسيس وتسجيل الشركة رسمياً وفتح حسابها التجاري في الأردن، لضمان وتسهيل انسياب وحركة الأموال التشغيلية والاستثمارية دخولاً وخروجاً.</li>
</ol>
@@ -345,17 +340,17 @@
<ol class="list-decimal list-inside space-y-1 pr-3 mt-1">
<li>يتحمل الطرف الأول المسؤولية الكاملة والحصرية عن الجوانب التقنية والفنية والتشغيلية والإدارية للتطبيق، بما يشمل — دون حصر — التطوير البرمجي، وإدارة الخوادم، والصيانة الدورية، وإصلاح الأعطال الفنية، وإدارة فريق العمل التقني.</li>
<li>إصدار التحديثات والتطويرات المستمرة لتطبيقَيْ الراكب والسائق بما يتلاءم مع متطلبات السوق السورية ويضمن تنافسية المنتج.</li>
<li>تقديم تقريب أداء تشغيلي ومالي للطرف الثاني بشكل <strong>شهري</strong> يتضمن: عدد الرحلات المنفذة، عدد السائقين والركاب النشطين، الإيرادات الإجمالية، المصروفات التشغيلية، وصافي الأرباح.</li>
<li>تقديم تقرير أداء تشغيلي ومالي للطرف الثاني بشكل <strong>شهري</strong> يتضمن: عدد الرحلات المنفذة، عدد السائقين والركاب النشطين، الإيرادات الإجمالية، المصروفات التشغيلية، وصافي الأرباح.</li>
<li>ضمان استمرارية الخدمة وتوفّر التطبيق لمستخدميه بنسبة لا تقل عن <strong>95%</strong> من أيام التشغيل الشهري (باستثناء حالات القوة القاهرة والصيانة المجدولة).</li>
<li>الالتحاق والالتزام بالعمل الفني والتقني المستمر والدؤوب على تحديث وتطوير وصيانة نظام وتطبيقات Siro بانتظام، لضمان استقرار الخدمة وتشغيلها بكفاءة عالية وتلبية احتياجات السوق السورية.</li>
</ol>
</div>
<div>
<h5 class="font-bold text-slate-900 text-[12.5px]">ثانياً: التزامات الطرف الثاني (الشريك المستثمر)</h5>
<h5 class="font-bold text-slate-900 text-[12.5px]">ثانياً: التزامات الطرف الثاني (الشركاء المستثمرون)</h5>
<ol class="list-decimal list-inside space-y-1 pr-3 mt-1">
<li>الالتزام بسداد كامل رأس المال الاستثماري المتفق عليه (180,000 دولار أمريكي) وفق جدول الدفعات المحدد في المادة الثالثة.</li>
<li>المساهمة الفعّالة بخبراته اللوجستية والعلاقاتية لتسهيل العمل التجاري داخل السوق السورية ودعم عمليات التسجيل والتوسع الميداني.</li>
<li>الالتحاق بسداد كامل رأس المال الاستثماري المتفق عليه وقدره (<span class="sync-capital-words-span">مائتا ألف دولار أمريكي</span>) وفق جدول الدفعات المحدد في المادة الثالثة.</li>
<li>المساهمة الفعّالة بخبراتهم اللوجستية والعلاقاتية لتسهيل العمل التجاري داخل السوق السورية ودعم عمليات التسجيل والتوسع الميداني.</li>
<li class="font-semibold text-slate-950 bg-slate-50 p-1.5 rounded border-r-2 border-slate-300">
التعهد بمنح الطرف الأول الصلاحية الكاملة والمستقلة في اتخاذ القرارات الفنية والهندسية والبرمجية الخاصة بالتطبيق لضمان سير العمل واستقراره التشغيلي والتقني دون إعاقة؛
</li>
@@ -381,22 +376,8 @@
<th class="border border-slate-800 p-2 w-1/4">الحصة من صافي الأرباح</th>
</tr>
</thead>
<tbody>
<tr class="border-b border-slate-800">
<td class="border border-slate-800 p-2 text-right pr-4 font-bold">حمزه عايد طحيمر الغويريين</td>
<td class="border border-slate-800 p-2 text-slate-600">الشريك المؤسس الأول</td>
<td class="border border-slate-800 p-2 font-bold"><span id="sync-table-share-1" class="text-slate-950 text-sm">25</span>%</td>
</tr>
<tr class="border-b border-slate-800">
<td class="border border-slate-800 p-2 text-right pr-4 font-bold">فراس قاسم احمد مقابله</td>
<td class="border border-slate-800 p-2 text-slate-600">الشريك المؤسس الثاني</td>
<td class="border border-slate-800 p-2 font-bold"><span id="sync-table-share-2" class="text-slate-950 text-sm">25</span>%</td>
</tr>
<tr class="border-b border-slate-800">
<td class="border border-slate-800 p-2 text-right pr-4 font-bold">محمد عمر محمد المجفت</td>
<td class="border border-slate-800 p-2 text-slate-600">الشريك المستثمر (الطرف الثاني)</td>
<td class="border border-slate-800 p-2 font-bold"><span id="sync-table-share-3" class="text-slate-950 text-sm">50</span>%</td>
</tr>
<tbody id="doc-shares-table-body">
<!-- Dynamic Share Table Rows -->
</tbody>
</table>
</div>
@@ -420,10 +401,10 @@
<div>
<h4 class="font-sans font-bold text-slate-950 text-[13px] mb-0.5">المادة السابعة: الملكية الفكرية والعلامة التجارية</h4>
<ol class="list-decimal list-inside space-y-1">
<li class="bg-amber-100/40 p-2.5 rounded border-r-4 border-legal-gold leading-relaxed font-semibold text-slate-950">
يُقرّ ويتفق جميع الأطراف صراحةً على أن الكود المصدري (Source Code) والبرمجي لتطبيق "Siro" بجميع إصداراته (الراكب، السائق، لوحة الإدارة)، وكافة التصاميم والبنية الهندسية وقواعد البيانات والخوارزميات والعلامة التجارية والاسم التجاري والشعار، هي ملكية خاصة وحصرية ومطلقة وأبدية وتؤول بالكامل وتحديداً للسيد <span class="text-slate-950 font-extrabold border-b-2 border-legal-gold/70 pb-0.5">حمزه عايد طحيمر الغويريين بمفرده وبشكل أبدّي</span> دون غيره، ولا يحق لأي طرف آخر (بما فيهم الشريك الثاني فراس مقابلة والمستثمر محمد عمر محمد المجفت) منازعته عليها أو الادعاء بأي حقوق عليها تحت أي ظرف كان.
<li id="ip-ownership-clause" class="bg-amber-100/40 p-2.5 rounded border-r-4 border-legal-gold leading-relaxed font-semibold text-slate-950">
<!-- Dynamic IP Ownership Clause -->
</li>
<li>لا يُنشئ هذا العقد ولا يمنح الطرف الثاني (الشريك المستثمر) أو الشريك الثاني (فراس مقابله) أي حق من حقوق الملكية الفكرية أو الصناعية أو الأدبية على الكود المصدري أو التطبيق أو العلامة التجارية، لا كلياً ولا جزئياً، سواء أثناء سريان العقد أو بعد انتهائه.</li>
<li>لا يُنشئ هذا العقد ولا يمنح الطرف الثاني (الشركاء المستثمرون) أو أي شريك آخر أي حق من حقوق الملكية الفكرية أو الصناعية أو الأدبية على الكود المصدري أو التطبيق أو العلامة التجارية، لا كلياً ولا جزئياً، سواء أثناء سريان العقد أو بعد انتهائه.</li>
<li>يقتصر حق الطرف الثاني على <strong>الحصص المالية من صافي الأرباح التشغيلية</strong> الناتجة عن تشغيل التطبيق في النطاق الجغرافي المحدد في هذا العقد حصراً.</li>
</ol>
</div>
@@ -434,8 +415,8 @@
<div>
<h4 class="font-sans font-bold text-slate-950 text-[13px] mb-0.5">المادة الثامنة: الإدارة واتخاذ القرارات</h4>
<ol class="list-decimal list-inside space-y-1">
<li>يتولى الطرف الأول (الشركاء المؤسسون) <strong>الإدارة التقنية والفنية والتشغيلية الكاملة</strong> للتطبيق، ويملكان حصرياً صلاحية اتخاذ جميع القرارات البرمجية والهندسية والفنية دون الرجوع للطرف الثاني.</li>
<li>تُتّخذ <strong>القرارات الاستراتيجية والتجارية الكبرى</strong> — كالتوسع الجغرافي، أو تغيير نموذج التسعير، أو الدخول في شراكات تجارية مع أطراف ثالثة — بالتشاور والإجماع بين الشركاء الثلاثة.</li>
<li>يتولى الطرف الأول (الشركاء المؤسسون) <strong>الإدارة التقنية والفنية والتشغيلية الكاملة</strong> للتطبيق، ويملكون حصرياً صلاحية اتخاذ جميع القرارات البرمجية والهندسية والفنية دون الرجوع للطرف الثاني.</li>
<li>تُتّخذ <strong>القرارات الاستراتيجية والتجارية الكبرى</strong> — كالتوسع الجغرافي، أو تغيير نموذج التسعير، أو الدخول في شراكات تجارية مع أطراف ثالثة — بالتشاور والإجماع بين الشركاء.</li>
<li>في حال عدم التوافق على قرار تجاري أو استراتيجي، يُعرض الأمر على <strong>محكّم تجاري مستقل</strong> يُتّفق عليه بين الأطراف لإصدار رأي استشاري ملزم.</li>
</ol>
</div>
@@ -445,7 +426,7 @@
<ol class="list-decimal list-inside space-y-1">
<li>يلتزم جميع الأطراف بالحفاظ التام على سرية كافة المعلومات التقنية والمالية والتجارية والتسويقية المتعلقة بالمشروع، وعدم إفشائها أو تسريبها أو إتاحتها لأي طرف ثالث بأي وسيلة كانت.</li>
<li>يسري التزام السرية أثناء فترة العقد و<strong>لمدة سنتين (2) ميلاديتين</strong> بعد انتهائه أو فسخه لأي سبب كان.</li>
<li>... يُستثنى من حكم السرية: المعلومات التي تصبح متاحة للعموم بشكل مشروع دون خطأ من الطرف المُفشي، أو المعلومات المطلوبة بموجب أمر قضائي أو تنظيمي واجب النفاذ.</li>
<li>يُستثنى من حكم السرية: المعلومات التي تصبح متاحة للعموم بشكل مشروع دون خطأ من الطرف المُفشي، أو المعلومات المطلوبة بموجب أمر قضائي أو تنظيمي واجب النفاذ.</li>
</ol>
</div>
@@ -475,7 +456,7 @@
<div>
<h4 class="font-sans font-bold text-slate-950 text-[13px] mb-0.5">المادة الثانية عشرة: الانسحاب والتخارج</h4>
<ol class="list-decimal list-inside space-y-1">
<li>يحق للطرف الثاني (الشريك المستثمر) الانسحاب من هذه الشراكة بموجب إشعار خطي مسبق بمدة لا تقل عن **مائة وعشرين (120) يوماً**.</li>
<li>يحق للطرف الثاني (الشركاء المستثمرون) الانسحاب من هذه الشراكة بموجب إشعار خطي مسبق بمدة لا تقل عن **مائة وعشرين (120) يوماً**.</li>
<li><strong>في حال رغبة الطرف الثاني في الانسحاب:</strong>
<ul class="list-disc list-inside pr-3 mt-1 space-y-0.5">
<li class="font-semibold text-slate-950">
@@ -485,7 +466,7 @@
</ul>
</li>
<li class="font-bold bg-slate-50 p-2.5 rounded border-r-3 border-slate-400 leading-relaxed">
<strong>ثالثاً: ضمان الاستمرارية والالتزام التشغيلي للطرف الأول وحالات العجز القاهر:</strong> نظراً لأن الجانب التشغيلي والتقني يمثّل عماد وجوهر هذا العقد، يلتزم الطرف الأول (الشريكان المؤسسان حمزه عايد وفراس مقابله) بالالتزام التام بتقديم خدماتهما التشغيلية والبرمجية طوال مدة سريان هذا العقد ولا يملك أحدهما حق الانسحاب الفردي الاختياري الذي يعطل المنصة. وفي حال طرأ ظرف طبي أو صحي أو عجز قاهر كلي يثبت رسمياً يمنع أحدهما من الاستمرار، يلتزم الطرف المتأثر بضمان نقل سلس وفوري وخالٍ من العيوب لكافة مهامه الفنية والتشغيلية ورموز لوحات التحكم وقواعد البيانات إلى الطرف الآخر لضمان بقاء التطبيق فعالاً ومحمياً، وتتم تسوية حقوقه ودياً دون المساس بكيان وتدفق المشروع واستثمار الطرف الثاني.
<strong>ثالثاً: ضمان الاستمرارية والالتزام التشغيلي للطرف الأول وحالات العجز القاهر:</strong> نظراً لأن الجانب التشغيلي والتقني يمثّل عماد وجوهر هذا العقد، يلتزم الطرف الأول بالالتزام التام بتقديم خدماته التشغيلية والبرمجية طوال مدة سريان هذا العقد ولا يملك أحد حق الانسحاب الفردي الاختياري الذي يعطل المنصة. وفي حال طرأ ظرف طبي أو صحي أو عجز قاهر كلي يثبت رسمياً يمنع أحد المؤسسين من الاستمرار، يلتزم الطرف المتأثر بضمان نقل سلس وفوري وخالٍ من العيوب لكافة مهامه الفنية والتشغيلية ورموز لوحات التحكم وقواعد البيانات إلى الطرف الآخر لضمان بقاء التطبيق فعالاً ومحمياً، وتتم تسوية حقوقه ودياً دون المساس بكيان وتدفق المشروع واستثمار الطرف الثاني.
</li>
</ol>
</div>
@@ -507,12 +488,12 @@
<div>
<h4 class="font-sans font-bold text-slate-950 text-[13px] mb-0.5">المادة الرابعة عشرة: القوة القاهرة</h4>
<p>لا يُعدّ أي طرف مُخِلاً بالتزاماته بموجب هذا العقد إذا حال دون تنفيذها ظرف من ظروف القوة القاهرة، وتشمل — دون حصر: الحروب، الكوارث الطبيعية، الأوبئة، القرارات الحكومية القاهرة، العقوبات الدولية، أو انقطاص شبكة الإنترنت الكامل في الدولة.</p>
<p>لا يُعدّ أي طرف مُخِلاً بالتزاماته بموجب هذا العقد إذا حال دون تنفيذها ظرف من ظروف القوة القاهرة، وتشمل — دون حصر: الحروب، الكوارث الطبيعية، الأوبئة، القرارات الحكومية القاهرة، العقوبات الدولية، أو انقطاع شبكة الإنترنت الكامل في الدولة.</p>
</div>
<div>
<h4 class="font-sans font-bold text-slate-950 text-[13px] mb-0.5">المادة الخامسة عشرة: تعديل العقد</h4>
<p>لا يجوز تعديل أو تغيير أي بند من بنود هذا العقد إلا بموجب **ملحق تعديلي خطّي** موقَّع من جميع الأطراف الثلاثة ومؤرَّخ، ويُعتبر أي تعديل شفهي أو ضمني باطلاً ولا يُعتدّ به.</p>
<p>لا يجوز تعديل أو تغيير أي بند من بنود هذا العقد إلا بموجب **ملحق تعديلي خطّي** موقَّع من جميع الأطراف ومؤرَّخ، ويُعتبر أي تعديل شفهي أو ضمني باطلاً ولا يُعتدّ به.</p>
</div>
<div>
@@ -523,7 +504,7 @@
<ul class="list-disc list-inside pr-3 mt-1 space-y-0.5">
<li><strong>أولاً:</strong> التسوية الودية المباشرة بين الأطراف خلال مدة لا تتجاوز <strong>ثلاثين (30) يوماً</strong> من تاريخ الإخطار بالنزاع.</li>
<li><strong>ثانياً:</strong> اللجوء إلى <strong>التحكيم التجاري</strong> أمام محكّم أو هيئة تحكيمية مستقلة يتفق عليها الأطراف، ويكون حكم التحكيم نهائياً وملزماً.</li>
<li><strong>ثالثاً:</strong> في حال تعذّر التحكيم، يُرفع النزاع أمام <strong>المحكمة المختصة</strong> المتفق عليها بين الأطراف.</li>
<li><strong>ثالثاً:</strong> في حال تعذّر التحكيم، يُرفع النزاع أمام المحكمة المختصة.</li>
</ul>
</li>
</ol>
@@ -534,7 +515,7 @@
<ol class="list-decimal list-inside space-y-1">
<li>يمثّل هذا العقد كامل الاتفاق بين الأطراف فيما يتعلق بموضوعه، ويُلغي أي اتفاقات شفهية أو مكتوبة سابقة بين الأطراف بشأن نفس الموضوع.</li>
<li>في حال بطلان أي بند من بنود هذا العقد أو عدم قابليته للتنفيذ، تظل البنود الأخرى صحيحة ونافذة ومُلزِمة.</li>
<li>حُرّر هذا العقد من <strong>ثلاث (3) نسخ أصلية</strong> متطابقة بيد كل طرف نسخة للعمل بموجبها عند اللزوم.</li>
<li>حُرّر هذا العقد من نسخ أصلية متطابقة بيد كل طرف نسخة للعمل بموجبها عند اللزوم.</li>
</ol>
</div>
@@ -554,25 +535,8 @@
<th class="border border-slate-800 p-2 w-1/5">التاريخ</th>
</tr>
</thead>
<tbody>
<tr class="border-b border-slate-800">
<td class="border border-slate-800 p-2.5 text-slate-700 font-medium">الشريك المؤسس الأول</td>
<td class="border border-slate-800 p-2.5 text-right pr-4 font-bold">حمزه عايد طحيمر الغويريين</td>
<td class="border border-slate-800 p-2.5 text-slate-400">.......................</td>
<td class="border border-slate-800 p-2.5 font-bold sync-text-table-date">14/06/2026م</td>
</tr>
<tr class="border-b border-slate-800">
<td class="border border-slate-800 p-2.5 text-slate-700 font-medium">الشريك المؤسس الثاني</td>
<td class="border border-slate-800 p-2.5 text-right pr-4 font-bold">فراس قاسم احمد مقابله</td>
<td class="border border-slate-800 p-2.5 text-slate-400">.......................</td>
<td class="border border-slate-800 p-2.5 font-bold sync-text-table-date">14/06/2026م</td>
</tr>
<tr class="border-b border-slate-800">
<td class="border border-slate-800 p-2.5 text-slate-700 font-medium">الشريك المستثمر (الطرف الثاني)</td>
<td class="border border-slate-800 p-2.5 text-right pr-4 font-bold">محمد عمر محمد المجفت</td>
<td class="border border-slate-800 p-2.5 text-slate-400">.......................</td>
<td class="border border-slate-800 p-2.5 font-bold sync-text-table-date">14/06/2026م</td>
</tr>
<tbody id="doc-signatures-table-body">
<!-- Dynamic Signatures Rows -->
</tbody>
</table>
</div>
@@ -592,20 +556,9 @@
</div>
</div>
<!-- Appendix: Passport Copy -->
<div class="page-break no-print my-6 border-t-2 border-dashed border-slate-300"></div>
<div class="mt-8 space-y-4" id="appendix-section">
<h3 class="font-sans font-extrabold text-slate-950 text-[14px] border-b border-slate-800 pb-1.5">المرفقات: صورة جواز سفر الشريك المستثمر (الطرف الثاني)</h3>
<div class="flex flex-col items-center justify-center p-6 border border-dashed border-slate-300 rounded-lg bg-slate-50/50">
<img id="passport-preview" class="max-h-[140mm] max-w-full rounded shadow-sm border border-slate-200" src="" alt="جواز سفر الشريك المستثمر" style="display: none;">
<div id="passport-placeholder" class="text-center py-10 text-slate-400 text-xs font-sans">
<svg class="w-12 h-12 mx-auto mb-2 opacity-50" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z"></path>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M15 13a3 3 0 11-6 0 3 3 0 016 0z"></path>
</svg>
<span>لم يتم إرفاق صورة جواز السفر بعد. استخدم خيار التحميل في لوحة التحكم الجانبية لإرفاق الصورة وطباعتها مع العقد.</span>
</div>
</div>
<!-- Dynamic Appendix Sections -->
<div id="doc-appendices-container" class="space-y-6">
<!-- Dynamic Partner Passports -->
</div>
</div>
@@ -618,97 +571,328 @@
</div>
<!-- Script syncing dynamic elements instantly -->
<!-- Script handling dynamic actions and lists -->
<script>
// Form Controls Inputs
const inputId1 = document.getElementById('input-id-1');
const inputId2 = document.getElementById('input-id-2');
const inputId3 = document.getElementById('input-id-3');
const inputDate = document.getElementById('input-date');
const inputPassportFile = document.getElementById('input-passport-file');
// Configuration
const country = "سوريا";
const inputShare1 = document.getElementById('input-share-1');
const inputShare2 = document.getElementById('input-share-2');
const inputShare3 = document.getElementById('input-share-3');
// Document target Sync spans
const syncP1 = document.getElementById('sync-p1');
const syncP2 = document.getElementById('sync-p2');
const syncP3 = document.getElementById('sync-p3');
const syncTextDate = document.getElementById('sync-text-date');
const syncContractDate = document.getElementById('sync-contract-date');
const syncTableDates = document.querySelectorAll('.sync-text-table-date');
const syncTableShare1 = document.getElementById('sync-table-share-1');
const syncTableShare2 = document.getElementById('sync-table-share-2');
const syncTableShare3 = document.getElementById('sync-table-share-3');
const shareSumEl = document.getElementById('share-sum');
const shareIndicator = document.getElementById('share-indicator');
const shareValidationMsg = document.getElementById('share-validation-msg');
const passportPreview = document.getElementById('passport-preview');
const passportPlaceholder = document.getElementById('passport-placeholder');
// Event Handling
inputId1.addEventListener('input', (e) => syncP1.textContent = e.target.value);
inputId2.addEventListener('input', (e) => syncP2.textContent = e.target.value);
inputId3.addEventListener('input', (e) => syncP3.textContent = e.target.value);
let founders = [
{ name: '', nationality: 'أردني', id: '', share: 0 }
];
inputDate.addEventListener('input', (e) => {
const val = e.target.value || '14/06/2026م';
syncTextDate.textContent = val;
syncContractDate.textContent = val;
syncTableDates.forEach(el => el.textContent = val);
let partners = [
{ name: '', nationality: 'أردني', id: '', share: 0, passportDataUrl: '' }
];
// Init UI inputs on DOM load
document.addEventListener("DOMContentLoaded", () => {
renderSidebar();
syncContract();
});
// Passport Image Loader
inputPassportFile.addEventListener('change', (e) => {
const file = e.target.files[0];
function renderSidebar() {
// Render Founders in Sidebar
const foundersContainer = document.getElementById('founders-container');
foundersContainer.innerHTML = '';
founders.forEach((founder, index) => {
const div = document.createElement('div');
div.className = "bg-white p-3 rounded border border-slate-200 space-y-2 relative shadow-sm";
div.innerHTML = `
<div class="flex justify-between items-center">
<span class="text-[10px] font-bold text-slate-400">مؤسس #${index + 1}</span>
${founders.length > 1 ? `
<button onclick="removeFounder(${index})" class="text-[10px] text-red-500 hover:text-red-700 font-bold">
حذف
</button>
` : ''}
</div>
<div class="space-y-1.5">
<input type="text" placeholder="الاسم الكامل" value="${founder.name}" oninput="updateFounderField(${index}, 'name', this.value)" class="w-full text-xs px-2 py-1 bg-white border border-slate-200 rounded">
<div class="grid grid-cols-2 gap-1.5">
<input type="text" placeholder="الجنسية (مثال: أردني)" value="${founder.nationality}" oninput="updateFounderField(${index}, 'nationality', this.value)" class="w-full text-xs px-2 py-1 bg-white border border-slate-200 rounded">
<input type="number" placeholder="الأرباح %" value="${founder.share || ''}" oninput="updateFounderField(${index}, 'share', this.value)" class="w-full text-xs px-2 py-1 bg-white border border-slate-200 rounded">
</div>
<input type="text" placeholder="الرقم الوطني وجواز السفر" value="${founder.id}" oninput="updateFounderField(${index}, 'id', this.value)" class="w-full text-xs px-2 py-1 bg-white border border-slate-200 rounded">
</div>
`;
foundersContainer.appendChild(div);
});
// Render Partners in Sidebar
const partnersContainer = document.getElementById('partners-container');
partnersContainer.innerHTML = '';
partners.forEach((partner, index) => {
const div = document.createElement('div');
div.className = "bg-white p-3 rounded border border-slate-200 space-y-2 relative shadow-sm";
div.innerHTML = `
<div class="flex justify-between items-center">
<span class="text-[10px] font-bold text-slate-400">شريك مستثمر #${index + 1}</span>
${partners.length > 1 ? `
<button onclick="removePartner(${index})" class="text-[10px] text-red-500 hover:text-red-700 font-bold">
حذف
</button>
` : ''}
</div>
<div class="space-y-1.5">
<input type="text" placeholder="الاسم الكامل" value="${partner.name}" oninput="updatePartnerField(${index}, 'name', this.value)" class="w-full text-xs px-2 py-1 bg-white border border-slate-200 rounded">
<div class="grid grid-cols-2 gap-1.5">
<input type="text" placeholder="الجنسية (مثال: أردني)" value="${partner.nationality}" oninput="updatePartnerField(${index}, 'nationality', this.value)" class="w-full text-xs px-2 py-1 bg-white border border-slate-200 rounded">
<input type="number" placeholder="الأرباح %" value="${partner.share || ''}" oninput="updatePartnerField(${index}, 'share', this.value)" class="w-full text-xs px-2 py-1 bg-white border border-slate-200 rounded">
</div>
<input type="text" placeholder="الرقم الوطني وجواز السفر" value="${partner.id}" oninput="updatePartnerField(${index}, 'id', this.value)" class="w-full text-xs px-2 py-1 bg-white border border-slate-200 rounded">
<div class="flex flex-col">
<label class="text-[9px] text-slate-400 mb-0.5">تحميل صورة جواز السفر</label>
<input type="file" accept="image/*" onchange="uploadPartnerPassport(${index}, this)" class="w-full text-[10px] bg-slate-50 border border-slate-200 rounded p-0.5">
</div>
</div>
`;
partnersContainer.appendChild(div);
});
// Update add buttons state
document.getElementById('btn-add-founder').style.display = founders.length >= 3 ? 'none' : 'block';
document.getElementById('btn-add-partner').style.display = partners.length >= 3 ? 'none' : 'block';
}
// Founders state management
function addFounder() {
if (founders.length < 3) {
founders.push({ name: '', nationality: 'أردني', id: '', share: 0 });
renderSidebar();
syncContract();
}
}
function removeFounder(index) {
founders.splice(index, 1);
renderSidebar();
syncContract();
}
function updateFounderField(index, field, value) {
founders[index][field] = field === 'share' ? (parseFloat(value) || 0) : value;
syncContract();
}
// Partners state management
function addPartner() {
if (partners.length < 3) {
partners.push({ name: '', nationality: 'أردني', id: '', share: 0, passportDataUrl: '' });
renderSidebar();
syncContract();
}
}
function removePartner(index) {
partners.splice(index, 1);
renderSidebar();
syncContract();
}
function updatePartnerField(index, field, value) {
partners[index][field] = field === 'share' ? (parseFloat(value) || 0) : value;
syncContract();
}
function uploadPartnerPassport(index, fileInput) {
const file = fileInput.files[0];
if (file) {
const reader = new FileReader();
reader.onload = function(evt) {
passportPreview.src = evt.target.result;
passportPreview.style.display = 'block';
passportPlaceholder.style.display = 'none';
partners[index].passportDataUrl = evt.target.result;
syncContract();
};
reader.readAsDataURL(file);
} else {
passportPreview.src = '';
passportPreview.style.display = 'none';
passportPlaceholder.style.display = 'block';
}
});
// Math verification of total percentage shares
function calculateShares() {
const s1 = parseFloat(inputShare1.value) || 0;
const s2 = parseFloat(inputShare2.value) || 0;
const s3 = parseFloat(inputShare3.value) || 0;
const total = s1 + s2 + s3;
shareSumEl.textContent = total;
syncTableShare1.textContent = s1;
syncTableShare2.textContent = s2;
syncTableShare3.textContent = s3;
if (total === 100) {
shareIndicator.className = "text-[10px] font-bold px-2 py-0.5 rounded-full bg-emerald-100 text-emerald-700";
shareValidationMsg.className = "text-[11px] p-2 rounded bg-emerald-50 text-emerald-800 border border-emerald-200 font-semibold leading-relaxed";
shareValidationMsg.innerHTML = "✅ مجموع النسب متوازن (100%). المستند آمن وجاهز تماماً للطباعة كـ PDF.";
} else {
shareIndicator.className = "text-[10px] font-bold px-2 py-0.5 rounded-full bg-red-100 text-red-600";
shareValidationMsg.className = "text-[11px] p-2 rounded bg-red-50 text-red-700 border border-red-200 font-medium leading-relaxed";
shareValidationMsg.innerHTML = `⚠️ مجموع الحصص الحالي هو <b>${total}%</b>. يرجى تعديل الأرقام ليكون الإجمالي 100% لمطابقة شروط العقد الأساسية.`;
partners[index].passportDataUrl = '';
syncContract();
}
}
inputShare1.addEventListener('input', calculateShares);
inputShare2.addEventListener('input', calculateShares);
inputShare3.addEventListener('input', calculateShares);
// Global Sync logic
function syncContract() {
// 1. Sync Date and Capital
const inputDateVal = document.getElementById('input-date').value || '....................';
const inputCapitalVal = parseFloat(document.getElementById('input-capital').value) || 0;
const inputCapitalWordsVal = document.getElementById('input-capital-words').value || '....................';
const inputCurrencyVal = document.getElementById('input-currency').value || 'USD';
calculateShares();
document.getElementById('sync-contract-date').textContent = inputDateVal;
document.getElementById('sync-text-date').textContent = inputDateVal;
document.querySelectorAll('.sync-capital-words-span').forEach(el => el.textContent = inputCapitalWordsVal);
document.querySelectorAll('.sync-capital-number-span').forEach(el => el.textContent = inputCapitalVal.toLocaleString());
document.querySelectorAll('.sync-currency-span').forEach(el => el.textContent = inputCurrencyVal);
// 2. Render Founders list in document
const docFoundersList = document.getElementById('doc-founders-list');
docFoundersList.innerHTML = '';
founders.forEach((founder, idx) => {
const nameStr = founder.name ? `السيد/ <strong>${founder.name}</strong>` : 'السيد/ <strong>.......................................................</strong>';
const natStr = founder.nationality ? `${founder.nationality} الجنسية` : '.................... الجنسية';
const idStr = founder.id ? `الرقم الوطني/جواز السفر <span class="highlight-field">${founder.id}</span>` : 'الرقم الوطني/جواز السفر <span class="highlight-field">.......................................................</span>';
const p = document.createElement('p');
p.innerHTML = `${idx + 1}. ${nameStr}، ${natStr}، يحمل ${idStr}، ويُشار إليه بـ <strong>"الشريك المؤسس ${getArabicOrdinal(idx + 1)}"</strong>.`;
docFoundersList.appendChild(p);
});
// 3. Render Partners list in document
const docPartnersList = document.getElementById('doc-partners-list');
docPartnersList.innerHTML = '';
partners.forEach((partner, idx) => {
const nameStr = partner.name ? `السيد/ <strong>${partner.name}</strong>` : 'السيد/ <strong>.......................................................</strong>';
const natStr = partner.nationality ? `${partner.nationality} الجنسية` : '.................... الجنسية';
const idStr = partner.id ? `الرقم الوطني / رقم الهوية <span class="highlight-field">${partner.id}</span>` : 'الرقم الوطني / رقم الهوية <span class="highlight-field">.......................................................</span>';
const p = document.createElement('p');
p.innerHTML = `${idx + 1}. ${nameStr}، ${natStr}، يحمل ${idStr}، ويُشار إليه بـ <strong>"الشريك المستثمر ${getArabicOrdinal(idx + 1)}"</strong> أو <strong>"الطرف الثاني"</strong>.`;
docPartnersList.appendChild(p);
});
// 4. Render share tables and check sum
const tableBody = document.getElementById('doc-shares-table-body');
tableBody.innerHTML = '';
let totalShare = 0;
founders.forEach((founder, idx) => {
totalShare += founder.share;
const tr = document.createElement('tr');
tr.className = "border-b border-slate-800";
tr.innerHTML = `
<td class="border border-slate-800 p-2 text-right pr-4 font-bold">${founder.name || '.......................................................'}</td>
<td class="border border-slate-800 p-2 text-slate-600">الشريك المؤسس ${getArabicOrdinal(idx + 1)}</td>
<td class="border border-slate-800 p-2 font-bold"><span class="text-slate-950 text-sm">${founder.share}</span>%</td>
`;
tableBody.appendChild(tr);
});
partners.forEach((partner, idx) => {
totalShare += partner.share;
const tr = document.createElement('tr');
tr.className = "border-b border-slate-800";
tr.innerHTML = `
<td class="border border-slate-800 p-2 text-right pr-4 font-bold">${partner.name || '.......................................................'}</td>
<td class="border border-slate-800 p-2 text-slate-600">الشريك المستثمر ${getArabicOrdinal(idx + 1)} (الطرف الثاني)</td>
<td class="border border-slate-800 p-2 font-bold"><span class="text-slate-950 text-sm">${partner.share}</span>%</td>
`;
tableBody.appendChild(tr);
});
// 5. Update validation message
document.getElementById('share-sum').textContent = totalShare;
const indicator = document.getElementById('share-indicator');
const validationMsg = document.getElementById('share-validation-msg');
if (totalShare === 100) {
indicator.className = "text-[10px] font-bold px-2 py-0.5 rounded-full bg-emerald-100 text-emerald-700";
validationMsg.className = "text-[11px] p-2 rounded bg-emerald-50 text-emerald-800 border border-emerald-200 font-semibold leading-relaxed";
validationMsg.innerHTML = "✅ مجموع النسب متوازن (100%). المستند آمن وجاهز تماماً للطباعة كـ PDF.";
} else {
indicator.className = "text-[10px] font-bold px-2 py-0.5 rounded-full bg-red-100 text-red-600";
validationMsg.className = "text-[11px] p-2 rounded bg-red-50 text-red-700 border border-red-200 font-medium leading-relaxed";
validationMsg.innerHTML = `⚠️ مجموع الحصص الحالي هو <b>${totalShare}%</b>. يرجى تعديل الأرقام ليكون الإجمالي 100% لمطابقة شروط العقد الأساسية.`;
}
// 6. Dynamic IP Ownership Clause (First founder solely owns IP, list exclusions)
const firstFounderName = founders[0] && founders[0].name ? founders[0].name : '.......................................................';
let exclusions = [];
founders.forEach((f, idx) => {
if (idx > 0 && f.name) exclusions.push(`الشريك المؤسس ${f.name}`);
});
partners.forEach(p => {
if (p.name) exclusions.push(`المستثمر ${p.name}`);
});
const exclusionsStr = exclusions.length > 0 ? ` (بما فيهم ${exclusions.join(' و ')})` : '';
const ipClause = document.getElementById('ip-ownership-clause');
ipClause.innerHTML = `
يُقرّ ويتفق جميع الأطراف صراحةً على أن الكود المصدري (Source Code) والبرمجي لتطبيق "Siro" بجميع إصداراته (الراكب، السائق، لوحة الإدارة)، وكافة التصاميم والبنية الهندسية وقواعد البيانات والخوارزميات والعلامة التجارية والاسم التجاري والشعار، هي ملكية خاصة وحصرية ومطلقة وأبدية وتؤول بالكامل وتحديداً للسيد <span class="text-slate-950 font-extrabold border-b-2 border-legal-gold/70 pb-0.5">${firstFounderName} بمفرده وبشكل أبدّي</span> دون غيره، ولا يحق لأي طرف آخر${exclusionsStr} منازعته عليها أو الادعاء بأي حقوق عليها تحت أي ظرف كان.
`;
// 7. Render Signatures
const sigTableBody = document.getElementById('doc-signatures-table-body');
sigTableBody.innerHTML = '';
founders.forEach((founder, idx) => {
const tr = document.createElement('tr');
tr.className = "border-b border-slate-800";
tr.innerHTML = `
<td class="border border-slate-800 p-2.5 text-slate-700 font-medium">الشريك المؤسس ${getArabicOrdinal(idx + 1)}</td>
<td class="border border-slate-800 p-2.5 text-right pr-4 font-bold">${founder.name || '.......................................................'}</td>
<td class="border border-slate-800 p-2.5 text-slate-400">.......................</td>
<td class="border border-slate-800 p-2.5 font-bold sync-text-table-date">${inputDateVal}</td>
`;
sigTableBody.appendChild(tr);
});
partners.forEach((partner, idx) => {
const tr = document.createElement('tr');
tr.className = "border-b border-slate-800";
tr.innerHTML = `
<td class="border border-slate-800 p-2.5 text-slate-700 font-medium">الشريك المستثمر ${getArabicOrdinal(idx + 1)}</td>
<td class="border border-slate-800 p-2.5 text-right pr-4 font-bold">${partner.name || '.......................................................'}</td>
<td class="border border-slate-800 p-2.5 text-slate-400">.......................</td>
<td class="border border-slate-800 p-2.5 font-bold sync-text-table-date">${inputDateVal}</td>
`;
sigTableBody.appendChild(tr);
});
// 8. Render Appendices for Passports
const appendicesContainer = document.getElementById('doc-appendices-container');
appendicesContainer.innerHTML = '';
partners.forEach((partner, idx) => {
const pName = partner.name || `الشريك المستثمر ${getArabicOrdinal(idx + 1)}`;
const div = document.createElement('div');
div.className = "page-break no-print my-6 border-t-2 border-dashed border-slate-300 pt-6";
div.innerHTML = `
<div class="space-y-4">
<h3 class="font-sans font-extrabold text-slate-950 text-[14px] border-b border-slate-800 pb-1.5">المرفقات: صورة جواز سفر الشريك المستثمر (${pName})</h3>
<div class="flex flex-col items-center justify-center p-6 border border-dashed border-slate-300 rounded-lg bg-slate-50/50">
${partner.passportDataUrl ? `
<img class="max-h-[140mm] max-w-full rounded shadow-sm border border-slate-200" src="${partner.passportDataUrl}" alt="جواز سفر ${pName}">
` : `
<div class="text-center py-10 text-slate-400 text-xs font-sans">
<svg class="w-12 h-12 mx-auto mb-2 opacity-50" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M3 9a2 2 0 012-2h.93a2 2 0 001.664-.89l.812-1.22A2 2 0 0110.07 4h3.86a2 2 0 011.664.89l.812 1.22A2 2 0 0018.07 7H19a2 2 0 012 2v9a2 2 0 01-2 2H5a2 2 0 01-2-2V9z"></path>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M15 13a3 3 0 11-6 0 3 3 0 016 0z"></path>
</svg>
<span>لم يتم إرفاق صورة جواز السفر للشريك (${pName}) بعد. استخدم خيار التحميل في لوحة التحكم لإرفاق الصورة.</span>
</div>
`}
</div>
</div>
`;
appendicesContainer.appendChild(div);
});
}
// Helper to get Arabic Ordinals
function getArabicOrdinal(num) {
const ordinals = ["", "الأول", "الثاني", "الثالث", "الرابع", "الخامس"];
return ordinals[num] || `${num}`;
}
// Sync inputs from date & capital changes
document.getElementById('input-date').addEventListener('input', syncContract);
document.getElementById('input-capital').addEventListener('input', (e) => {
const num = parseInt(e.target.value) || 0;
// Auto mapping simple numbers to words
const mapper = {
100000: "مائة ألف",
150000: "مائة وخمسون ألف",
180000: "مائة وثمانون ألف",
200000: "مائتا ألف",
250000: "مائتان وخمسون ألف",
300000: "ثلاثمائة ألف",
400000: "أربعمائة ألف",
500000: "خمسمائة ألف"
};
const currencyLabel = document.getElementById('input-currency').value === 'USD' ? 'دولار أمريكي' : '';
if (mapper[num]) {
document.getElementById('input-capital-words').value = mapper[num] + (currencyLabel ? ' ' + currencyLabel : '');
}
syncContract();
});
document.getElementById('input-capital-words').addEventListener('input', syncContract);
document.getElementById('input-currency').addEventListener('input', syncContract);
</script>
</body>
</html>