• DevPilot's avatar
    feat(accounting): فصل الدمغة وض.ق.م حسب المصدر + ربط شيكات التقسيط بالأوراق التجارية · f39de0e0
    DevPilot authored
    تنفيذ التلات بنود المعلّقة من ملف المعالجة المحاسبية:
    
    ١) الدمغة (23080405) بقت حساب رئيسي وتحتها:
       2308040501 دمغة عادية · 2308040502 دمغة إضافية
       الحساب مكانش عليه أي قيود فالفصل نضيف.
    
    ٢) ضريبة القيمة المضافة (23080404) بقت رئيسية وتحتها ٦ حسابات حسب مصدر
       الإيراد زي ما الملف بيفصلها:
       عام (أرصدة سابقة) · بيع استمارات · عضويات جديدة · كارنيهات ·
       إيجارات ١٪ · مصاريف
       الحساب كان عليه قيدين تاريخيين (افتتاحي + حركة 2024/2025 بإجمالي
       7,411,841.15) — اتنقلوا لحساب «عام» بالظبط زي ما هما، فالرصيد ما
       اتغيّرش والإقرار الضريبي بيتجمّع على الأب. الميزان قبل وبعد:
       512,971,418.03 مدين = دائن.
    
    ٣) «إلغاء ٢٥ ج مصاريف مقاصة عند ارتداد الشيك» — دي كانت مستحيلة قبل كده
       لأن شيكات التقسيط (installment_cheques) والأوراق التجارية
       (negotiable_instruments) مكانش بينهم أي رابط، فالنظام ما كانش يعرف
       الشيك اللي ارتد يخص أنهي قسط. دلوقتي:
       - عمود instrument_id + clearing_fee_reversed على installment_cheques.
       - ChequeService::registerAsInstruments — كل شيك تقسيط بيتسجّل كورقة
         قبض في السجل وقت الاستلام (زي ما الملف بيعتبرها أوراق قبض).
       - ChequeClearingFeeService::reverseForCheque — بيعكس رسم المقاصة بقيد
         مقابل بنفس حسابي القيد الأصلي وبقيمة الشيك ده لوحده (القيد الأصلي
         بيغطي كل شيكات الخطة فما ينفعش يتعكس كله).
       - BouncedChequeService::bounce بينادي عليه لما الورقة المرتدة تبقى
         مربوطة بشيك تقسيط. محمي من التكرار بـ clearing_fee_reversed.
    f39de0e0
ChequeService.php 7.05 KB