From 680b82b1e4087a67e748db584f69dbe794fa2749 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 11 Apr 2026 07:44:40 +0000 Subject: [PATCH] fix: Update CPQ quote engine with final implementation https://claude.ai/code/session_01LsnvBa7HwF5hs99VZbgLGj --- .../backend/app/services/cpq/quote_engine.py | 55 ++++++------------- 1 file changed, 18 insertions(+), 37 deletions(-) diff --git a/salesflow-saas/backend/app/services/cpq/quote_engine.py b/salesflow-saas/backend/app/services/cpq/quote_engine.py index 6782be8f..11c6439a 100644 --- a/salesflow-saas/backend/app/services/cpq/quote_engine.py +++ b/salesflow-saas/backend/app/services/cpq/quote_engine.py @@ -22,44 +22,25 @@ SAR_VAT_RATE = Decimal("0.15") DEFAULT_VALIDITY_DAYS = 30 USD_TO_SAR_RATE = Decimal("3.75") +_FOOTER = "العرض ساري لمدة {validity} يوم من تاريخه" INDUSTRY_TEMPLATES = { - "real_estate": { - "header_ar": "عرض سعر عقاري", - "footer_ar": "هذا العرض ساري لمدة {validity} يوم من تاريخه", - "terms_ar": [ - "الأسعار شاملة ضريبة القيمة المضافة ما لم يُذكر خلاف ذلك", - "يتم الدفع حسب خطة السداد المتفق عليها", - "العرض قابل للتعديل حسب توفر الوحدات", - ], - }, - "healthcare": { - "header_ar": "عرض سعر طبي", - "footer_ar": "العرض ساري لمدة {validity} يوم — صحتكم أولويتنا", - "terms_ar": [ - "الأسعار شاملة ضريبة القيمة المضافة", - "التأمين الطبي قد يغطي جزءاً من التكاليف", - "يرجى إحضار بطاقة التأمين عند الزيارة", - ], - }, - "services": { - "header_ar": "عرض سعر خدمات", - "footer_ar": "العرض ساري لمدة {validity} يوم من تاريخه", - "terms_ar": [ - "الأسعار شاملة ضريبة القيمة المضافة 15%", - "مدة التنفيذ تبدأ من تاريخ الموافقة على العرض", - "الدفع: 50% مقدم و50% عند التسليم ما لم يُتفق على خلاف ذلك", - ], - }, - "contracting": { - "header_ar": "عرض سعر مقاولات", - "footer_ar": "العرض ساري لمدة {validity} يوم — شاملاً المواد والعمالة", - "terms_ar": [ - "الأسعار شاملة ضريبة القيمة المضافة 15%", - "التسعير مبني على المعاينة الميدانية", - "أي تغييرات في النطاق تستوجب ملحق عقد منفصل", - "الضمان حسب بنود العقد", - ], - }, + "real_estate": {"header_ar": "عرض سعر عقاري", "footer_ar": "هذا " + _FOOTER, "terms_ar": [ + "الأسعار شاملة ضريبة القيمة المضافة ما لم يُذكر خلاف ذلك", + "يتم الدفع حسب خطة السداد المتفق عليها", + "العرض قابل للتعديل حسب توفر الوحدات"]}, + "healthcare": {"header_ar": "عرض سعر طبي", "footer_ar": _FOOTER + " — صحتكم أولويتنا", "terms_ar": [ + "الأسعار شاملة ضريبة القيمة المضافة", + "التأمين الطبي قد يغطي جزءاً من التكاليف", + "يرجى إحضار بطاقة التأمين عند الزيارة"]}, + "services": {"header_ar": "عرض سعر خدمات", "footer_ar": _FOOTER, "terms_ar": [ + "الأسعار شاملة ضريبة القيمة المضافة 15%", + "مدة التنفيذ تبدأ من تاريخ الموافقة على العرض", + "الدفع: 50% مقدم و50% عند التسليم ما لم يُتفق على خلاف ذلك"]}, + "contracting": {"header_ar": "عرض سعر مقاولات", "footer_ar": _FOOTER + " — شاملاً المواد والعمالة", "terms_ar": [ + "الأسعار شاملة ضريبة القيمة المضافة 15%", + "التسعير مبني على المعاينة الميدانية", + "أي تغييرات في النطاق تستوجب ملحق عقد منفصل", + "الضمان حسب بنود العقد"]}, }