LIS Customer Tax Invoice — مُحدّث بعد ردودك · الباك إند للضريبة جاهز فعلاً · الشغل المتبقّي فرونت إند غالبًا
LabInvoice::recalculateTotals() بيطبّق 15% على غير السعودي (والسعودي/غير المحدّد = صفر)، والـ B2B (معمل خارجي) دايمًا بضريبة. النسبة من إعداد lis.vat_rate_percentage (افتراضي 15، متزرّع فعلاً). يعني مفيش شغل باك إند للضريبة — الشغل المتبقّي كله تقريبًا فرونت إند (الطباعة + الإعدادات).
| السؤال | ردّك | القرار في التصميم |
|---|---|---|
| س1 — الضريبة | «بناخد 15% على أي واحد غير سعودي زي ما هو موجود في الريكوست، يظهر في الفاتورة» | VAT 15% للمريض غير السعودي فقط (الجنسية من الريكوست). جاهزة بالباك إند ✅. النسبة قابلة للتعديل من السيتنج. |
| س2 — جهة التعاقد | «اختياري» | حقل اختياري — يظهر لو موجود (طبيب/تأمين/عيادة)، ويتساب فاضي لو مفيش. |
| س3 — شكل الطباعة | «هنفعّل من السيتنج أنهي اللي تشتغل» | إعداد الشكل الافتراضي في السيتنج (حراري 80mm / A4 / A5) + إمكانية طباعة الشكل الآخر وقت الطباعة. |
| س4 — الـ QR | «دلوقتي شكل بس، لسه هنعمل امتثال كامل» | QR شكلي الآن (يتولّد في الفرونت بمكتبة qrcode الموجودة). الامتثال الكامل (ربط بالهيئة/فاتورة إلكترونية) مرحلة لاحقة. |
| س5 — اللغة | «في السيتنج اختيار: عربي بس / إنجليزي بس / الاتنين» | إعداد لغة الفاتورة بـ 3 خيارات. الافتراضي «الاتنين» (ثنائي زي النموذج). |
| س6 — الرقم الضريبي | «ممكن يتدخل في المستقبل» | التصميم يتعامل معاه بمرونة: يظهر لو موجود، ويتخفي لو فاضي. (شرط لصلاحية الفاتورة لاحقًا.) |
الضريبة بتتحدد أوتوماتيك حسب جنسية المريض في الريكوست. مفيش إدخال يدوي. ده الفرق العملي بنفس التحاليل:
| التحليل | السعر | الضريبة | الإجمالي |
|---|---|---|---|
| CK-MB | 40.00 | — | 40.00 |
| Troponin I | 100.00 | — | 100.00 |
| الإجمالي | 140.00 | ||
tax_applies=false| التحليل | السعر | ض 15% | الإجمالي |
|---|---|---|---|
| CK-MB | 40.00 | 6.00 | 46.00 |
| Troponin I | 100.00 | 15.00 | 115.00 |
| الإجمالي + ض 21.00 | 21.00 | 161.00 | |
tax_applies=true · tax_rate_percent=15total = (السعر − الخصم) + الضريبة.vatApplies = B2B أو (المريض غير سعودي) · السعودي/غير المحدّد = صفر.lis.vat_rate_percentage (افتراضي 15) — متزرّع فعلاً، هنوفّر له خانة تعديل في السيتنج.tax_applies + tax_rate_percent + tax_amount — الفرونت يرسم بس.tax_amount محسوب على مستوى الفاتورة (إجمالي). قيمة ضريبة كل بند في الجدول الفرونت يشتقها = (سعر−خصم) × النسبة.دول مرسومين بنفس بيانات النموذج المُرسل لمريض غير سعودي (4 تحاليل · 140 بدون ضريبة · 21 ضريبة · 161 الإجمالي). الشكل والّلغة بيتحددوا من السيتنج.
| م | الوصف Description | السعر Price | خصم Disc. |
الخاضع Taxable | % VAT | الضريبة VAT | الإجمالي Total |
|---|---|---|---|---|---|---|---|
| 1 | Creatine Kinase MB (CK-MB) الكرياتين كيناز | 40.00 | 0.00 | 40.00 | 15% | 6.00 | 46.00 |
| 2 | Troponin I تروبونين الأول | 100.00 | 0.00 | 100.00 | 15% | 15.00 | 115.00 |
| 3 | SMS Notification | 0.00 | 0.00 | 0.00 | 15% | 0.00 | 0.00 |
| الصنف | الإجمالي |
| CK-MB | 46.00 |
| Troponin I | 115.00 |
| SMS | 0.00 |
tax_applies. واللغة (عربي/إنجليزي/الاتنين) بتتحكم في الأعمدة المعروضة.كل التحكم في تبويب واحد جوه إعدادات المعمل الموجودة، يتخزّن عبر PUT /lis/lab-info تحت مفتاح lis.invoice_print (ما عدا نسبة الضريبة اللي ليها مفتاحها lis.vat_rate_percentage الموجود):
| الإعداد | الخيارات |
|---|---|
| الشكل الافتراضي س3 | حراري 80mm · A4 · A5 |
| لغة الفاتورة س5 | عربي فقط · إنجليزي فقط · الاتنين (افتراضي) |
| طباعة تلقائية بعد الدفع | ✔ / ✘ |
| عدد النسخ | 1 / 2 (نسخة العميل + المعمل) |
| الإعداد | القيمة | ملاحظة |
|---|---|---|
| نسبة الضريبة | 15% | تعديل lis.vat_rate_percentage الموجود |
| القاعدة (للعرض فقط) | غير سعودي / B2B → ضريبة | مطبّقة أوتوماتيك — مفيش إدخال يدوي |
| الإعداد | مثال |
|---|---|
| البادئة (prefix) | LIS-INV- |
| عدد الخانات / تضمين السنة-الشهر | 00042 · 2026/05 |
| إعادة التصفير / عدّاد لكل فرع | سنوي/شهري/أبدًا · per_branch |
حسب ردّك «شكل بس دلوقتي» — هنرسم QR يحتوي بيانات الفاتورة الأساسية بصيغة TLV (نفس بنية ZATCA) يتولّد في الفرونت بمكتبة qrcode الموجودة، من غير ربط أو رفع للهيئة:
| الحقل | المصدر |
|---|---|
| اسم البائع | company.name |
| الرقم الضريبي | company.tax_number (يُترك فاضي لو مش موجود) |
| الطابع الزمني | invoice.created_at |
| الإجمالي شامل الضريبة | invoice.total |
| إجمالي الضريبة | invoice.tax_amount |
tax_applies / tax_rate_percent / tax_amount في الـ Resource.lis.vat_rate_percentage متزرّع.lis.invoice_print (شكل/لغة/توجلات/نصوص) — غالبًا يتعمل عبر lab-info اللي بيعمل auto-create للمفاتيح، يعني ممكن من غير باك إند أصلاً.lis-tax-invoice.service: A4/A5 (jsPDF — نمط lis-report-pdf) + حراري 80mm (HTML — نمط pos-receipt)، يقرأ tax_applies ويخفي عمود الضريبة للسعودي.