EGYADMIN commited on
Commit
93cd151
·
verified ·
1 Parent(s): c3c6055

Update modules/local_content.py

Browse files
Files changed (1) hide show
  1. modules/local_content.py +122 -1
modules/local_content.py CHANGED
@@ -531,7 +531,128 @@
531
  """
532
  requirements = []
533
 
534
- # الحد الأدنى للمimport os
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
535
  import json
536
  import numpy as np
537
  import pandas as pd
 
531
  """
532
  requirements = []
533
 
534
+ # الحد الأدنى للمحتوى المحلي
535
+ min_percentage = sector_data["min_percentage"]
536
+ target_percentage = sector_data["target_percentage"]
537
+
538
+ # إضافة متطلب الحد الأدنى للمحتوى المحلي
539
+ requirements.append({
540
+ "title": "الحد الأدنى للمحتوى المحلي",
541
+ "description": f"يجب أن تكون نسبة المحتوى المحلي للمشروع لا تقل عن {min_percentage}%",
542
+ "importance": "عالية",
543
+ "category": "محتوى محلي"
544
+ })
545
+
546
+ # إضافة متطلب النسبة المستهدفة للمحتوى المحلي
547
+ requirements.append({
548
+ "title": "النسبة المستهدفة للمحتوى المحلي",
549
+ "description": f"النسبة المستهدفة للمحتوى المحلي هي {target_percentage}% وسيتم منح نقاط إضافية للعروض التي تتجاوز الحد الأدنى",
550
+ "importance": "متوسطة",
551
+ "category": "محتوى محلي"
552
+ })
553
+
554
+ # إضافة متطلب توطين الوظائف
555
+ requirements.append({
556
+ "title": "توطين الوظائف",
557
+ "description": "يجب أن تكون الشركة ملتزمة بمتطلبات نطاقات وأن تكون في النطاق الأخضر على الأقل",
558
+ "importance": "عالية",
559
+ "category": "محتوى محلي"
560
+ })
561
+
562
+ # إضافة متطلب شهادة المحتوى المحلي
563
+ requirements.append({
564
+ "title": "شهادة المحتوى المحلي",
565
+ "description": "يجب تقديم شهادة المحتوى المحلي الصادرة من هيئة المحتوى المحلي والمشتريات الحكومية",
566
+ "importance": "عالية",
567
+ "category": "محتوى محلي"
568
+ })
569
+
570
+ # إضافة متطلب خطة تطوير المحتوى المحلي
571
+ requirements.append({
572
+ "title": "خطة تطوير المحتوى المحلي",
573
+ "description": "يجب تقديم خطة لتطوير المحتوى المحلي تتضمن تفاصيل الموردين المحليين وتوطين التقنية والخبرات",
574
+ "importance": "متوسطة",
575
+ "category": "محتوى محلي"
576
+ })
577
+
578
+ # إضافة متطلبات إضافية من البيانات المستخرجة
579
+ if local_content_info["requirements"]:
580
+ for i, req in enumerate(local_content_info["requirements"]):
581
+ requirements.append({
582
+ "title": f"متطلب محتوى محلي {i+1}",
583
+ "description": req,
584
+ "importance": "عالية",
585
+ "category": "محتوى محلي",
586
+ "source": "مستخرج"
587
+ })
588
+
589
+ return requirements
590
+
591
+ def _generate_recommendations(self, overall_percentage: float, sector_data: Dict[str, Any],
592
+ manpower_analysis: Dict[str, Any], materials_analysis: Dict[str, Any],
593
+ services_analysis: Dict[str, Any], nitaqat_analysis: Dict[str, Any]) -> List[str]:
594
+ """
595
+ إعداد توصيات لتحسين المحتوى المحلي
596
+ """
597
+ recommendations = []
598
+
599
+ # الحد الأدنى والنسبة المستهدفة
600
+ min_percentage = sector_data["min_percentage"]
601
+ target_percentage = sector_data["target_percentage"]
602
+
603
+ # التحقق من الامتثال للحد الأدنى
604
+ if overall_percentage < min_percentage:
605
+ recommendations.append(
606
+ f"زيادة نسبة المحتوى المحلي من {overall_percentage}% إلى {min_percentage}% على الأقل للامتثال للحد الأدنى المطلوب"
607
+ )
608
+ elif overall_percentage < target_percentage:
609
+ recommendations.append(
610
+ f"زيادة نسبة المحتوى المحلي من {overall_percentage}% إلى {target_percentage}% للوصول إلى النسبة المستهدفة"
611
+ )
612
+
613
+ # توصيات لتحسين القوى العاملة
614
+ if manpower_analysis["percentage"] < 60:
615
+ recommendations.append(
616
+ f"زيادة نسبة القوى العاملة السعودية من {manpower_analysis['percentage']}% إلى 60% على الأقل"
617
+ )
618
+
619
+ # توصيات لتحسين المواد
620
+ if materials_analysis["percentage"] < 50:
621
+ recommendations.append(
622
+ "زيادة استخدام المواد المصنعة محلياً أو المجمعة محلياً بدلاً من المواد المستوردة"
623
+ )
624
+
625
+ if materials_analysis["fully_imported"] > materials_analysis["local_manufacturing"]:
626
+ recommendations.append(
627
+ "تقليل الاعتماد على المواد المستوردة بالكامل وزيادة استخدام المواد المصنعة محلياً"
628
+ )
629
+
630
+ # توصيات لتحسين الخدمات
631
+ if services_analysis["percentage"] < 70:
632
+ recommendations.append(
633
+ "زيادة الاعتماد على مزودي الخدمات المحليين بدلاً من المزودين الأجانب"
634
+ )
635
+
636
+ if services_analysis["foreign_provider"] > services_analysis["local_service_provider"]:
637
+ recommendations.append(
638
+ "تقليل الاعتماد على مزودي الخدمات الأجانب وزيادة الاعتماد على مزودي الخدمات المحليين"
639
+ )
640
+
641
+ # توصيات للامتثال لنطاقات
642
+ if not nitaqat_analysis["compliant"]:
643
+ recommendations.append(
644
+ f"زيادة نسبة التوطين في القوى العاملة من {nitaqat_analysis['estimated_saudi_percentage']}% إلى {nitaqat_analysis['required_saudi_percentage']}% على الأقل للامتثال لمتطلبات نطاقات"
645
+ )
646
+
647
+ # توصيات عامة
648
+ recommendations.extend([
649
+ "تطوير برامج تدريب وتأهيل للكوادر السعودية لزيادة نسبة التوطين",
650
+ "الاستفادة من برامج دعم المحتوى المحلي المقدمة من هيئة المحتوى المحلي والمشتريات الحكومية",
651
+ "بناء شراكات مع المصنعين المحليين لتوطين سلسلة الإمداد",
652
+ "الاستفادة من حوافز القروض والتمويل المقدمة للشركات التي تساهم في زيادة المحتوى المحلي"
653
+ ])
654
+
655
+ return recommendationsimport os
656
  import json
657
  import numpy as np
658
  import pandas as pd