Commit f14c5841 authored by DevPilot's avatar DevPilot

fix(accounting): «برسم التحصيل» كانت متخزّنة في الداتابيز مش في الكود بس

العميل كان محقّ إن الكلمة ظاهرة قدامه — أنا اللي كنت ناقص في الفحص.
أول مرة دوّرت في الكود بس، فلقيت موضع واحد وغيّرته وقلت خلاص. لكن النص
الحقيقي اللي المستخدم بيشوفه متخزّن في الداتابيز في ٣ أماكن:

- posting_chain_steps.name_ar = 'إيداع الشيك برسم التحصيل'
  (دي الخطوة رقم ٢ في «دورة الشيكات المستلمة» — يعني بالظبط الشاشة اللي
   أي حد بيدوّر على «القاعدة» هيروحلها)
- posting_chains.description_ar فيها 'يتودّع برسم التحصيل'
- instrument_movements.notes = 'إيداع الشيك بالبنك برسم التحصيل'
  (ودي على نفس الشيك اللي العميل بيتكلم عنه — TSTD-B1-NR)

النص اتغيّر لـ «تسليم الشيك للبنك للتحصيل»، واتضافت جملة صريحة على وصف
الخطوة: «مفيش أي رسوم بتتخصم في الخطوة دي — قيمة الشيك بتتنقل كاملة».

تأكيد إن مفيش رسم فعلاً (ده اللي كان صح من الأول):
قيد JE-2026-001095 = من ح/ البنك 52,000 إلى ح/ شيكات تحت التحصيل 52,000.
ولا سطر قيد واحد في النظام كله بقيمة رسم تحصيل، ولا الورقة عليها
bank_charge أو fee_charged (كلهم صفر)، ولا فيه كود بيخصم رسم عند التحصيل.

الـ migration اتطبّقت على قاعدة البيانات الحية واتسجّلت (batch 129)،
والـ seed اتظبط عشان أي تركيب جديد يطلع بالصياغة الصحيحة.
parent 29874daf
<?php
declare(strict_types=1);
/**
* «برسم التحصيل» بتتقري كأن فيه رسم اتخصم.
*
* المصطلح صح محاسبيًا — معناه «بغرض التحصيل» — بس اللي مش محاسب محترف
* بيقراها «رسم تحصيل»، وفعلاً حصل إن حد شاف الشيك بتاعه واتخض إن فيه
* رسوم اتخصمت منه. وده مش بيحصل: قيد تسليم الشيك وقيد تحصيله بيتم
* بقيمة الشيك كاملة من غير أي خصم.
*
* النص كان متخزّن في الداتابيز (خطوات سلسلة الترحيل وحركات الأوراق
* التجارية)، فتغييره في الكود لوحده ما كانش بيغيّر اللي المستخدم شايفه.
*/
return [
'up' => "
UPDATE `posting_chain_steps`
SET `name_ar` = 'تسليم الشيك للبنك للتحصيل'
WHERE `name_ar` = 'إيداع الشيك برسم التحصيل';
UPDATE `posting_chain_steps`
SET `description_ar` = CONCAT(`description_ar`, ' مفيش أي رسوم بتتخصم في الخطوة دي — قيمة الشيك بتتنقل كاملة.')
WHERE `name_ar` = 'تسليم الشيك للبنك للتحصيل'
AND `description_ar` NOT LIKE '%مفيش أي رسوم%';
UPDATE `posting_chains`
SET `description_ar` = REPLACE(`description_ar`, 'يتودّع برسم التحصيل', 'يتسلّم للبنك للتحصيل')
WHERE `description_ar` LIKE '%برسم التحصيل%';
UPDATE `instrument_movements`
SET `notes` = REPLACE(`notes`, 'برسم التحصيل', 'للتحصيل')
WHERE `notes` LIKE '%برسم التحصيل%';
",
'down' => "
UPDATE `posting_chain_steps`
SET `name_ar` = 'إيداع الشيك برسم التحصيل'
WHERE `name_ar` = 'تسليم الشيك للبنك للتحصيل';
UPDATE `posting_chains`
SET `description_ar` = REPLACE(`description_ar`, 'يتسلّم للبنك للتحصيل', 'يتودّع برسم التحصيل')
WHERE `description_ar` LIKE '%يتسلّم للبنك للتحصيل%';
",
];
......@@ -81,7 +81,7 @@ return static function (Database $db): void {
'name_en' => 'Received cheque lifecycle',
'domain' => 'instrument',
'description_ar' => 'الشيك مش فلوس ساعة ما تستلمه — هو وعد بالدفع. بيفضل ورقة قبض لحد ما '
. 'يتودّع برسم التحصيل، وساعتها بيبقى «تحت التحصيل»، ولما البنك يدفع بيبقى '
. 'يتسلّم للبنك للتحصيل، وساعتها بيبقى «تحت التحصيل»، ولما البنك يدفع بيبقى '
. 'فلوس فعلًا. لو ارتد، الدين بيرجع على العضو.',
'steps' => [
[
......@@ -99,9 +99,10 @@ return static function (Database $db): void {
],
[
'step_no' => 2,
'name_ar' => 'إيداع الشيك برسم التحصيل',
'name_ar' => 'تسليم الشيك للبنك للتحصيل',
'description_ar' => 'الشيك راح للبنك عشان يحصّله. بيتنقل من أوراق القبض لحساب '
. '«شيكات تحت التحصيل».',
. '«شيكات تحت التحصيل». مفيش أي رسوم بتتخصم في الخطوة دي — '
. 'قيمة الشيك بتتنقل كاملة.',
'hop_type' => 'transfer',
'posted_by_chain'=> 0, // InstrumentPostingService posts this leg
'parks_resolver' => 'stream_pointer',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment