برمجةحماية الدفعالتفاصيل
- التعديلات ضمن الباقة مجانية.
- إذا لم تردّ خلال 3 أيام من التسليم، يُقبل العمل تلقائيًا.
يُحجز المبلغ عند الدفع ولا يُحوَّل إلا بعد قبولك العمل.

مثال على النتيجة
دمج ملفات المبيعات الشهرية لـ 9 متاجر في تقرير Excel واحد
طريقة التشغيل
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO المجلد: sales/2026-10، عُثر على 9 ملفات
2026-11-02 09:14:03 INFO shop-01.csv: 1,284 صفًا
2026-11-02 09:14:04 INFO shop-02.xlsx: 967 صفًا
2026-11-02 09:14:04 WARN shop-07.csv: تُخطّيت 3 صفوف بلا سعر (الأسطر 88، 412، 913)
2026-11-02 09:14:05 INFO تم: 10,412 صفًا -> report-2026-10.xlsx (الورقتان «المبيعات» و«الإجماليات»)
إعدادات لا كود
أسماء أعمدة كل متجر موجودة في settings.ini، فالمتجر الجديد أو العمود الذي تغيّر اسمه يعني سطرًا واحدًا هناك:
[columns]
date = التاريخ, تاريخ البيع, اليوم
product = المنتج, الصنف, الاسم
quantity = الكمية, العدد, قطع
price = السعر, سعر الوحدة
جزء من الكود
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""يقرأ ملف متجر واحد ويمنح أعمدته أسماء أعمدة التقرير."""
table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
renamed = {}
for name, variants in columns.items():
found = next((c for c in table.columns if c.strip() in variants), None)
if found is None:
raise ReportError(f"{path.name}: لا يوجد عمود لـ «{name}» (جرى البحث عن: {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
الملفات: أرشيف ZIP يضم merge_sales.py (310 أسطر)، وsettings.ini، وrequirements.txt، وملف README يشرح تثبيت Python وتشغيل السكربت ومعنى كل رسالة في السجل. يشغّله العميل على كمبيوتره الخاص.
العميل: سلسلة صغيرة من 9 متاجر للأدوات المكتبية؛ يرسل كل متجر مبيعاته الشهرية في ملف CSV أو Excel، بأسماء أعمدة تختلف قليلًا من متجر إلى آخر. المهمة: سكربت واحد يقرأ كل ملف في مجلد، ويوحّد الأعمدة في شكل واحد، ويكتب تقرير Excel واحدًا يضم كل المبيعات وورقة بالإجماليات حسب المتجر.
العميل وجميع التفاصيل افتراضية.
عن هذه الخدمة
تُصدّر البنوك كشوف الحساب بتنسيق CSV الخاص بها، وتريد برامج المحاسبة تنسيقها: أسماء أعمدة أخرى، وتواريخ بصيغة DD.MM.YYYY أو YYYY-MM-DD، ومبلغ واحد بعلامة ناقص أو عمودان منفصلان للمدين والدائن، وترميز معين. يحوّل سكربت Python هذا الكشف الذي تنزّله من بنكك عبر الإنترنت إلى ملف الاستيراد الخاص ببرنامجك، وفق القالب أو الملف النموذجي الذي يقدمه ذلك البرنامج. بدءًا من الباقة القياسية يمكنه أيضًا وضع كل سطر في فئة وفق قواعدك، مثل أن تذهب الدفعات التي تذكر Rent إلى فئة الإيجار. يعمل على جهازك ولا يتصل أبدًا ببنكك أو ببرنامج المحاسبة؛ تنزّل الكشف وتستورد النتيجة بنفسك. يغيّر التنسيق فقط لا الأرقام، ولا يقدم نصائح محاسبية أو ضريبية. تحقق من المجاميع بعد أول استيراد.
ما المشمول
- ما الذي تحصل عليهأرشيف ZIP يضم سكربت Python وملف README بتعليمات خطوة بخطوة، ومن الباقة القياسية ملف إعدادات بالأعمدة وقواعد الفئات؛ ويُعرض الكود أيضًا في صفحة الطلب.
- تنسيق برنامجكوفق قالب الاستيراد الخاص به أو ملف نموذجي
- تواريخ ومبالغ صحيحةتحويل الصيغ والإشارات والفواصل العشرية
- فئات وفق قواعدكبدءًا من الباقة القياسية، كلمات مفتاحية تحددها
- يبقى على جهازكبلا اتصال بالبنك ولا بأي مكان آخر
- كود مقروءمع تعليقات، ليسهل إضافة قاعدة لاحقًا
كيف يعمل
- 1النماذجترسل أسطرًا مختلقة بتنسيق بنكك وقالب برنامجك
- 2الكودنكتب السكربت ودليل تشغيله
- 3جرّبهتحوّل كشفًا واحدًا وتستورده إلى شركة أو فترة تجريبية وتتحقق من المجاميع
- 4التعديلاتتطلب التعديلات ضمن باقتك وترسل أي رسالة خطأ
ما نحتاجه منك
صف العناوين و10-20 سطرًا من ملف CSV الخاص ببنكك بمبالغ وأسماء وأرقام حسابات مختلقة لكن بالتنسيق نفسه، واسم برنامج المحاسبة لديك وقالب الاستيراد الخاص به أو صفحة وثائقه أو ملف نموذجي يقبله. للباقة القياسية: قواعد الفئات (أي الكلمات تذهب إلى أي فئة). للباقة المميزة: عينة من كل بنك أو حساب. لا ترسل أبدًا كشوفًا حقيقية أو أرقام حسابات أو بيانات تسجيل الدخول إلى البنك.
سنسألك:
- أي تصدير بنكي لديك؟
- أي برنامج محاسبة، وما تنسيق الاستيراد الخاص به؟
- هل تحتاج إلى فئات؟
- كم بنكًا أو حسابًا؟
قارن بين الباقات
| الباقات | الأساسيةبنك واحد، تنسيق واحد16 US$ | القياسيةالمحوّل مع الإعدادات33 US$ | المميزةأداة التحويل67 US$ |
|---|---|---|---|
| مدة التنفيذ | 1 يوم | 2 يوم | 3 أيام |
| التعديلات | 1 | 2 | 3 |
| الكود | حتى 150 سطرًا | حتى 400 سطر | حتى 1,000 سطر |
| ملفات الكود | 1 | حتى 3 | حتى 8 |
| ملف الإعدادات | لا | نعم | نعم |
| رسائل خطأ واضحة وسجل | لا | نعم | نعم |
| خيارات التشغيل ودليل لتشغيله وفق جدول زمني | لا | لا | نعم |
| دليل التثبيت والتشغيل (README) | نعم | نعم | نعم |
| اللغة | Python | Python | Python |
| اطلب الأساسية | اطلب القياسية | اطلب المميزة |
حماية الدفع
تدفع عند الطلب، لكن المبلغ لا يُحوَّل إلا مقابل عمل قبلته.
- سعر ثابتلا يتغير سعر الباقة بعد الدفع.
- المبلغ محجوزعند الدفع، يُحجز المبلغ فقط. ولا يُحوَّل إلى Dleex إلا بعد قبولك العمل.
- فحص قبل التسليمتخضع كل نتيجة لفحص الجودة قبل أن تصل إليك، وتراها في صفحة الطلب قبل قبولها.
- تعديلات مجانيةاطلب تعديلات ضمن متطلبات طلبك بالعدد الذي تسمح به الباقة.
- القبول بعد 3 أيامإذا لم تقبل العمل ولم تطلب تعديلات خلال 3 أيام من التسليم، يُقبل تلقائيًا. وإذا كتبت في محادثة الطلب بعد التسليم، يبقى الطلب قيد الانتظار؛ وبعد ردّنا، قد نعيد بدء مهلة 3 أيام وسنُعلمك بذلك في المحادثة.
- إعادة التنفيذ أو استرداد المبلغ كاملًاإذا لم تطابق النتيجة متطلبات طلبك ولم تُصلحها التعديلات، أو استغرق العمل أكثر من ضعف مدة التنفيذ، فاكتب في محادثة الطلب: سنعيد تنفيذ العمل أو نردّ إليك المبلغ كاملًا.
الأسئلة والأجوبة
هل يتصل ببنكي؟
لا. تنزّل الكشف من بنكك عبر الإنترنت كالمعتاد، ويحوّل السكربت الملف على جهازك. لا يتضمن كوده أي اتصال بالإنترنت.
بنكي لا يقدم إلا كشوف PDF.
يعمل هذا العرض من CSV أو Excel. إن كان ملف PDF يحتوي على نص حقيقي، فاطّلع على عرضنا لاستخراج الجداول من PDF إلى Excel؛ أما الكشوف الممسوحة ضوئيًا فغير مشمولة.
هل ستكون الفئات صحيحة لأغراض الضرائب؟
يطبق السكربت قواعد الكلمات المفتاحية التي تعطيها؛ ولا يقرر كيف يجب قيد أي شيء أو فرض الضريبة عليه. هذا شأنك أو شأن محاسبك، ولا نقدم نصائح ضريبية أو محاسبية.
ماذا لو غيّر بنكي تنسيق التصدير؟
بدءًا من الباقة القياسية توضع أسماء الأعمدة في ملف الإعدادات، فتغيير اسم عمود تعديل بسيط. أما التنسيق الجديد فقد يتطلب تعديل السكربت.
لم تجد إجابتك؟


