Sales invoice pricing issue: what happened, why, and the fixمشكلة تسعير فواتير المبيعات: ما حدث، وسببه، والإصلاح

EGEU · vendors.k.frappe.cloud · Referenceالمرجع TASK-2026-17756 · 5 November 20265 نوفمبر 2026
817,308,804.80
total shown on ACC-SINV-2026-09922; about 48,456 when correctالإجمالي الظاهر على ACC-SINV-2026-09922؛ والصحيح حوالي 48,456
54
invoices with the same pattern: 11 drafts, 43 postedفاتورة بها نفس النمط: 11 مسودة، 43 مرحّلة
2 × 84,787.50
posted and unpaid: item 13038 billed at 17,024.00 instead of 66.50مرحّلتان وغير مسددتين: الصنف 13038 بسعر 17,024.00 بدلًا من 66.50
12 / 12
tests passed on the test environment; production not yet updatedاختبار ناجح على بيئة الاختبار؛ بيئة الإنتاج لم تُحدَّث بعد
What you saw
Sales invoice ACC-SINV-2026-09922 (ماركت أولاد العجيلي) showed a total of 817,308,804.80 EGP. With every line at its price list rate it should be about 48,456.31 EGP.
Cause
A calculation defect in two of the system's customizations. When a line's rate was above its price list rate and no pricing rule covered it, each save multiplied the rate by (rate ÷ price list rate).
Affected
54 sales invoices (59 lines) show the same pattern: 11 drafts and 43 posted invoices. They are listed in section 3.
Status
The fix is applied and tested on the test environment (egeu.datavalue.app). It is not yet on your production site; it goes live when you approve the deployment.
ما ظهر لديكم
فاتورة المبيعات ACC-SINV-2026-09922 (ماركت أولاد العجيلي) أظهرت إجماليًا قدره 817,308,804.80 جنيه، بينما الصحيح عند تسعير كل السطور بسعر القائمة حوالي 48,456.31 جنيه.
السبب
خلل في الحساب ناتج عن تخصيصين في النظام: عندما يكون سعر السطر أعلى من سعر القائمة ولا توجد قاعدة تسعير تغطيه، كان كل حفظ يضرب السعر في (السعر ÷ سعر القائمة).
الفواتير المتأثرة
54 فاتورة مبيعات (59 سطرًا) بها نفس النمط: 11 مسودة و43 فاتورة مرحّلة، مفصلة في القسم 3.
الحالة
تم تطبيق الإصلاح واختباره على بيئة الاختبار (egeu.datavalue.app). لم يُطبَّق بعد على موقع الإنتاج، وسيتم تفعيله بعد التجربة وافادتنا بموافقتكم على حل المشكلة بنجاح.

1. What happened on ACC-SINV-2026-099221. ما حدث في الفاتورة ACC-SINV-2026-09922

The invoice (posting date 15/10/2026, a draft awaiting approval) was created on 5/11/2026 at 11:01 and then saved four more times within eleven minutes. The problem is on line 4, item 18527 (خلطة المحشى كيس 50 جم). Times are as recorded on the invoice.

الفاتورة (تاريخ الترحيل 15/10/2026، مسودة في انتظار الاعتماد) أُنشئت يوم 5/11/2026 الساعة 11:01 ثم حُفظت أربع مرات أخرى خلال إحدى عشرة دقيقة. المشكلة في السطر رقم 4، الصنف 18527 (خلطة المحشى كيس 50 جم). الأوقات كما هي مسجلة على الفاتورة.

TimeالوقتWhat was doneما تمPrice list rate (line 4)سعر القائمة (السطر 4)Rate on line 4السعر في السطر 4Invoice totalإجمالي الفاتورة
11:01Invoice created; line 4 entered as كرتونة (72 sachets), quantity 1إنشاء الفاتورة؛ السطر 4 بوحدة كرتونة (72 كيس)، الكمية 1784.80784.8048,223.44
11:02Quantity changed on another lineتعديل الكمية في سطر آخر784.80784.8048,484.58
11:05Line 4 changed to علبة 12كيس, quantity 4. The price list rate followed, the rate stayed at the carton priceتغيير السطر 4 إلى علبة 12 كيس والكمية 4. سعر القائمة تغيّر، لكن السعر بقي سعر الكرتونة130.804,708.8065,271.45
11:10Another line edited (line 5 item replaced)تعديل سطر آخر (استبدال صنف السطر 5)130.80169,516.80678,517.51
11:12Another line edited (line 7 item replaced)تعديل سطر آخر (استبدال صنف السطر 7)130.80219,693,772.80817,308,804.80
CorrectالصحيحLine 4 at its price list rateالسطر 4 بسعر القائمة130.80130.8048,456.31

After the change at 11:05, saves that only touched other lines were enough to multiply line 4 again: by 36, then by 1,296, then by 1,679,616 compared with its price list rate. The amount in words and the payment schedule still show 678,572 because they had been filled in before the last recalculation. Line 7 (item 18581) shows the same pattern on a small scale: 140.44 instead of 140.36.

بعد التغيير الذي تم الساعة 11:05 كان حفظ الفاتورة بسبب تعديل سطور أخرى كافيًا لمضاعفة السطر 4 مرة أخرى: 36 ضعفًا، ثم 1,296 ضعفًا، ثم 1,679,616 ضعفًا مقارنة بسعر القائمة. وما زال المبلغ بالحروف وجدول السداد يعرضان 678,572 لأنهما حُسبا قبل إعادة الحساب الأخيرة. ويظهر نفس النمط بشكل بسيط في السطر 7 (الصنف 18581): 140.44 بدلًا من 140.36.

2. What caused it2. سبب المشكلة

Three things came together:

  1. The trigger. When the unit on line 4 was changed from carton to box of 12, the price list rate followed (130.80) but the rate stayed at the carton price (784.80). Why the screen kept the old rate is still being looked into; the new check described in section 4 now catches this every time it happens.
  2. ERPNext records a rate above the price list rate as a margin (here 654.00). One of the system's customizations also turned the same difference into a negative discount (−500%).
  3. A second customization then put the rate back to the price list rate, but left the margin and the negative discount on the line. The next calculation applied both: (130.80 + 654.00) × (1 + 500%) = 4,708.80.

From then on every save repeated this on the new rate, so each save multiplied the rate by (rate ÷ price list rate): 6 times, then 36, then 1,296, then 1,679,616 times the price list rate.

Not the cause: the price list (every other line on the invoice is priced correctly), the 7% wholesale discount (pricing rule PRLE-0017, valid on the posting date and applied correctly) and VAT.

Sales Orders and Quotations have the same defect in a different form: the rate column shows the price list rate while the line amount doubles on every save. This was reproduced on the test environment; Sales Orders and Quotations on production have not been checked yet.

اجتمعت ثلاثة أمور:

  1. البداية. عند تغيير وحدة السطر 4 من كرتونة إلى علبة 12 كيس تغيّر سعر القائمة إلى 130.80، لكن السعر في السطر بقي سعر الكرتونة (784.80). سبب احتفاظ الشاشة بالسعر القديم ما زال قيد الفحص، والفحص الجديد الموضح في القسم 4 يكتشف هذه الحالة في كل مرة تحدث فيها.
  2. يسجّل ERPNext السعر الأعلى من سعر القائمة على أنه هامش (هنا 654.00)، وكان أحد التخصيصات في النظام يحوّل نفس الفرق أيضًا إلى خصم بالسالب (−500%).
  3. ثم كان تخصيص ثانٍ يُرجع السعر إلى سعر القائمة لكنه يترك الهامش والخصم السالب على السطر، فطبّق الحساب التالي الاثنين معًا: (130.80 + 654.00) × (1 + 500%) = 4,708.80.

ومن بعدها كان كل حفظ يكرر ذلك على السعر الجديد، فيُضرب السعر في كل مرة في (السعر ÷ سعر القائمة): 6 أضعاف، ثم 36، ثم 1,296، ثم 1,679,616 ضعف سعر القائمة.

ليست سببًا: قائمة الأسعار (كل السطور الأخرى في الفاتورة مسعّرة صحيحًا)، وخصم الجملة 7% (قاعدة التسعير PRLE-0017 سارية في تاريخ الترحيل ومطبقة صحيحًا)، وضريبة القيمة المضافة.

أوامر البيع وعروض الأسعار بها نفس الخلل بشكل مختلف: عمود السعر يعرض سعر القائمة بينما قيمة السطر تتضاعف مع كل حفظ. تم إثبات ذلك على بيئة الاختبار، ولم يتم فحص أوامر البيع وعروض الأسعار على بيئة الإنتاج بعد.

3. Affected sales invoices3. فواتير المبيعات المتأثرة

We searched vendors.k.frappe.cloud on 5 November 2026 (12:29 UTC, read-only) for invoice lines carrying this defect's mark, a negative discount percentage. 54 invoices (59 lines) have it, excluding cancelled ones.

How to read the tables. “× list” is the rate divided by the price list rate. “Difference” is (rate − price list rate) × quantity, before the invoice discount and VAT. On some lines the price list rate may be the wrong figure rather than the rate (for example the price of one sachet on a line sold by the box), so please review each line before correcting it. Lines at more than 100× the price list rate are highlighted.

تم البحث في vendors.k.frappe.cloud يوم 5 نوفمبر 2026 (الساعة 12:29 بتوقيت UTC، قراءة فقط) عن سطور الفواتير التي تحمل علامة هذا الخلل، وهي نسبة خصم بالسالب. 54 فاتورة (59 سطرًا) بها هذه العلامة، بدون الفواتير الملغاة.

طريقة قراءة الجداول. «× القائمة» هو السعر مقسومًا على سعر القائمة. «الفرق» هو (السعر − سعر القائمة) × الكمية قبل خصم الفاتورة والضريبة. في بعض السطور قد يكون سعر القائمة هو الرقم الخاطئ وليس السعر (مثل سعر كيس واحد على سطر يُباع بالعلبة)، لذلك يُرجى مراجعة كل سطر قبل تصحيحه. السطور التي تزيد عن 100 ضعف سعر القائمة مظللة.

A. Drafts, not posted (11 invoices)أ. مسودات غير مرحّلة (11 فاتورة)

These have no accounting effect yet. Please do not approve or save them before the fix is on production: every save multiplies the rate again.

ليس لها أثر محاسبي حتى الآن. يُرجى عدم اعتمادها أو حفظها قبل تطبيق الإصلاح على بيئة الإنتاج، لأن كل حفظ يضاعف السعر مرة أخرى.

Invoice / status, posting dateالفاتورة / الحالة، تاريخ الترحيلCustomerالعميلItem / unitالصنف / الوحدةQtyالكميةPrice list rateسعر القائمةRate on the lineالسعر في السطر× list× القائمةDifferenceالفرقInvoice totalإجمالي الفاتورة
ACC-SINV-2026-09922
Pending approvalقيد الاعتماد · 2026-10-15
ماركت أولاد العجيلي18527
علبة 12كيس
4130.80219,693,772.801,679,616×878,774,568.00817,308,804.80
ACC-SINV-2026-09922
Pending approvalقيد الاعتماد · 2026-10-15
ماركت أولاد العجيلي18581
علبة 12كيس
3140.36140.441.0006×0.24
ACC-SINV-2026-09441
Pending approvalقيد الاعتماد · 2026-10-15
ماركت أولاد العجيلي18578
كرتونة
1842.14517,009,961,423.99613,924,005×517,009,960,581.85548,134,004,152.82
ACC-SINV-2026-08969-1
Rejectedمرفوضة · 2026-10-29
اسواق ابو صلاح18578
كرتونة
2842.14850.501.0099×16.72180,146.14
ACC-SINV-2026-08969-1
Rejectedمرفوضة · 2026-10-29
اسواق ابو صلاح18581
كرتونة
1842.14846.311.0050×4.17
ACC-SINV-2026-08250
Pending approvalقيد الاعتماد · 2026-06-05
عطارة عباد الرحمن ( شاهين )13035
جركن 1 كجم
20964.504,227,072.0065,536×883,444,567.50821,652,440.64
ACC-SINV-2026-07923
Pending approvalقيد الاعتماد · 2026-08-18
عطارة أحمد عيد العطار18526
كرتونة
2842.40842.401.0000×0.00389,264.33
ACC-SINV-2026-06480
Rejectedمرفوضة · 2026-01-20
اولاد عبد الظاهر13035
صينية
25220.00355.001.6×3,375.0014,575.00
ACC-SINV-2026-05852
Pending approvalقيد الاعتماد · 2026-06-05
عطارة عباد الرحمن ( شاهين )13035
صينية
100258.0016,908,288.0065,536×1,690,803,000.001,572,507,240.00
ACC-SINV-2026-04821
Rejectedمرفوضة · 2026-05-04
عطارة خان20024
جردل 4 كجم
1410.40501.601.2222×91.20501.60
ACC-SINV-2026-03564
Rejectedمرفوضة · 2026-02-10
مطعم الايمان - 110053
كرتونة
23,400.00132,600.0039.0×258,400.00265,200.00
ACC-SINV-2026-03061
Rejectedمرفوضة · 2026-02-18
ماركت احمد درويش13038
صينية
10228.001,596.007.0×13,680.0035,218.32
ACC-SINV-2026-03061
Rejectedمرفوضة · 2026-02-18
ماركت احمد درويش13035
صينية
10220.001,540.007.0×13,200.00
ACC-SINV-2026-03050
Rejectedمرفوضة · 2026-02-10
مطعم الايمان - 110053
كرتونة
23,400.00132,600.0039.0×258,400.00265,200.00

B. Posted invoices with a rate at least 1.5 times the price list rate (10 invoices)ب. فواتير مرحّلة بسعر لا يقل عن 1.5 ضعف سعر القائمة (10 فواتير)

ACC-SINV-2026-09596 and ACC-SINV-2026-09438 are clear cases: item 13038 at 17,024.00 per jerrycan against a price list rate of 66.50 (256 times), about 84,787.50 too much on each, and both unpaid. The other lines need a line-by-line review. Payment status was read on 5 November 2026.

ACC-SINV-2026-09596 و ACC-SINV-2026-09438 حالتان واضحتان: الصنف 13038 بسعر 17,024.00 للجركن مقابل سعر قائمة 66.50 (256 ضعفًا)، أي زيادة حوالي 84,787.50 في كل منهما، وكلتاهما غير مسددة. باقي السطور تحتاج مراجعة سطرًا بسطر. حالة السداد كما هي يوم 5 نوفمبر 2026.

Invoice / status, posting dateالفاتورة / الحالة، تاريخ الترحيلCustomerالعميلItem / unitالصنف / الوحدةQtyالكميةPrice list rateسعر القائمةRate on the lineالسعر في السطر× list× القائمةDifferenceالفرقInvoice totalإجمالي الفاتورةPaymentالسدادOutstandingالمتبقي
ACC-SINV-2026-09596
Postedمرحّلة · 2026-10-24
ابو ادم العربى13038
جركن 1 كجم
566.5017,024.00256×84,787.5087,386.00Overdueمتأخرة السداد87,386.00
ACC-SINV-2026-09438
Postedمرحّلة · 2026-10-14
اسواق الاتحاد ملوي13038
جركن 1 كجم
566.5017,024.00256×84,787.5087,776.00Overdueمتأخرة السداد87,776.00
ACC-SINV-2026-08498
Postedمرحّلة · 2026-08-12
جملة نيمو فودز13012
جركن 5 كجم
9274.00816.493.0×4,882.417,604.06Overdueمتأخرة السداد7,604.00
ACC-SINV-2026-07140
Postedمرحّلة · 2026-07-18
جهاز مستقبل مصر للتنميه18575
كيس 30 جم
111.40136.8012.0×125.40155.95Overdueمتأخرة السداد156.00
ACC-SINV-2026-06898
Postedمرحّلة · 2026-06-30
عطارة الضوي18579
كرتونة
1779.765,611.767.2×4,832.0056,124.92Overdueمتأخرة السداد56,125.00
ACC-SINV-2026-06529
Postedمرحّلة · 2026-06-30
ميدو18525
علبة 12كيس
2136.803,146.4023.0×6,019.2011,708.63Paidمدفوعة0.00
ACC-SINV-2026-04413
Postedمرحّلة · 2026-04-23
قنيبر18524
كيس 40 جم
210.83130.8112.1×239.96999.06Overdueمتأخرة السداد999.00
ACC-SINV-2026-03216
Postedمرحّلة · 2026-03-31
حماده مسلم جمله13019
جركن 10 كجم
1231.50375.0011.9×4,122.0019,349.58Paidمدفوعة0.00
ACC-SINV-2026-01232
Postedمرحّلة · 2026-01-10
عطارة أحمد محمد منصور13036
جركن 1 كجم
450.0080.001.6×120.004,899.84Overdueمتأخرة السداد4,900.00
ACC-SINV-2026-00376-1
Postedمرحّلة · 2026-01-25
عطارة الحرمين - 1318527
كيس 50 جم
210.00120.0012.0×220.00240.00Overdueمتأخرة السداد240.00

C. Posted invoices with a small difference (33 invoices, 35 lines)ج. فواتير مرحّلة بفرق بسيط (33 فاتورة، 35 سطرًا)

Rates slightly above the price list rate, for example 842.40 or 843.18 against 842.14. Together the difference is 2,208.99 EGP before discount and VAT.

أسعار أعلى قليلًا من سعر القائمة، مثل 842.40 أو 843.18 مقابل 842.14. إجمالي الفرق 2,208.99 جنيه قبل الخصم والضريبة.

Show the 35 linesعرض السطور (35)
Invoice / status, posting dateالفاتورة / الحالة، تاريخ الترحيلCustomerالعميلItem / unitالصنف / الوحدةQtyالكميةPrice list rateسعر القائمةRate on the lineالسعر في السطر× list× القائمةDifferenceالفرقInvoice totalإجمالي الفاتورة
ACC-SINV-2026-09357
Postedمرحّلة · 2026-09-30
رشدي218578
علبة 12كيس
1140.36140.521.0011×0.16842.30
ACC-SINV-2026-08795
Postedمرحّلة · 2026-09-19
دار الارقم18578
كرتونة
1842.14846.311.0050×4.178,074.24
ACC-SINV-2026-08795
Postedمرحّلة · 2026-09-19
دار الارقم18581
كرتونة
1842.14843.181.0012×1.04
ACC-SINV-2026-08507
Postedمرحّلة · 2026-08-31
حماده النحاس18578
كرتونة
4842.14843.181.0012×4.165,119.30
ACC-SINV-2026-08431
Postedمرحّلة · 2026-08-31
عطارة الحمد - 318578
كرتونة
1842.14843.181.0012×1.041,896.94
ACC-SINV-2026-08424
Postedمرحّلة · 2026-08-31
عطارة العطار والسبع بهارات18578
كرتونة
1842.14844.221.0025×2.082,833.83
ACC-SINV-2026-08387
Postedمرحّلة · 2026-08-27
ماركت المحجوب18578
كرتونة
1842.14843.181.0012×1.041,782.03
ACC-SINV-2026-08372
Postedمرحّلة · 2026-08-26
عطارة الضوي18581
كرتونة
1842.14843.181.0012×1.0413,397.74
ACC-SINV-2026-08231
Postedمرحّلة · 2026-08-12
ثلاجة عبد العليم 218579
كيس 35 جم
36010.8311.111.0259×100.8032,311.55
ACC-SINV-2026-08096
Postedمرحّلة · 2026-08-29
شركه الامل18579
علبة 12كيس
1129.96129.961.0000×0.004,996.09
ACC-SINV-2026-07761
Postedمرحّلة · 2026-08-03
حمدي عسران18557
علبة 6كيس
3104.50104.501.0000×0.0014,329.36
ACC-SINV-2026-07709
Postedمرحّلة · 2026-08-09
ماركت أولاد العجيلي18581
كرتونة
1842.14842.141.0000×0.0021,133.59
ACC-SINV-2026-07399
Postedمرحّلة · 2026-07-29
بركة محمد18581
كرتونة
1842.14842.141.0000×0.0087,158.60
ACC-SINV-2026-07272
Postedمرحّلة · 2026-07-27
عطارة ابو فانا18581
علبة 12كيس
1140.36140.401.0003×0.04308.21
ACC-SINV-2026-07116
Postedمرحّلة · 2026-07-20
نادر ميلاد12537
جردل 4 كجم
1550.00617.001.1218×67.0017,413.69
ACC-SINV-2026-06899
Postedمرحّلة · 2026-06-30
عطارة أحمد عيد العطار18579
كرتونة
1779.76784.801.0065×5.0468,232.64
ACC-SINV-2026-06899
Postedمرحّلة · 2026-06-30
عطارة أحمد عيد العطار18578
كرتونة
1842.14842.401.0003×0.26
ACC-SINV-2026-06895
Postedمرحّلة · 2026-06-29
اسواق الاتحاد بحري18579
علبة 12كيس
1129.96129.961.0000×0.001,878.08
ACC-SINV-2026-06888
Postedمرحّلة · 2026-06-20
عطارة الضوي18578
علبة 12كيس
1140.36140.401.0003×0.0481,943.06
ACC-SINV-2026-06775
Postedمرحّلة · 2026-07-08
%الاعلاف للعطارة18579
كرتونة
1779.761,031.041.3223×251.2828,808.28
ACC-SINV-2026-06707
Postedمرحّلة · 2026-07-03
شعبان الشيخ - 118578
علبة 12كيس
12140.36140.401.0003×0.4814,524.81
ACC-SINV-2026-06424
Postedمرحّلة · 2026-06-28
الأحمدي18527
كرتونة
12784.80820.801.0459×432.0048,914.20
ACC-SINV-2026-05724
Postedمرحّلة · 2026-06-04
مطعم صلصه10053
كرتونة
1.503,693.603,758.071.0175×96.7126,484.23
ACC-SINV-2026-05632
Postedمرحّلة · 2026-05-31
مطعم صلصه10053
كرتونة
23,693.603,758.071.0175×128.9436,335.49
ACC-SINV-2026-05597
Postedمرحّلة · 2026-05-30
مطعم صلصه10053
كرتونة
33,693.603,758.071.0175×193.4165,237.91
ACC-SINV-2026-05515
Postedمرحّلة · 2026-05-25
ماركت سان مايكل18576
كيس 35 جم
2411.4011.621.0193×5.283,442.74
ACC-SINV-2026-05511
Postedمرحّلة · 2026-05-24
عطارة الروماني - 118527
كرتونة
11779.76820.801.0526×451.4412,495.02
ACC-SINV-2026-05293
Postedمرحّلة · 2026-05-17
قنيبر18546
علبة 12كيس
1208.15208.201.0002×0.05816.14
ACC-SINV-2026-04750
Postedمرحّلة · 2026-05-02
عطاره الحسام11047
جردل5 كجم
1677.95695.401.0257×17.458,912.90
ACC-SINV-2026-04412
Postedمرحّلة · 2026-04-23
عبدالرحمن18524
علبة 12كيس
1129.96130.811.0065×0.85568.53
ACC-SINV-2026-04215
Postedمرحّلة · 2026-04-18
قنيبر12537
جردل5 كجم
1550.00560.001.0182×10.001,995.26
ACC-SINV-2026-03429
Postedمرحّلة · 2026-04-05
جملة محمد الشامي13055
صينية
1132.00138.601.0500×6.60138.60
ACC-SINV-2026-03391
Postedمرحّلة · 2026-04-02
شعبانة13055
صينية
1132.00138.601.0500×6.603,532.48
ACC-SINV-2026-03112
Postedمرحّلة · 2026-03-02
هايبر الجبلاوي18521
كيس 40 جم
1445.256.251.1905×144.0013,729.59
ACC-SINV-2026-00486
Postedمرحّلة · 2026-01-20
ابو مازن - 113035
صينية
3220.00312.001.4182×276.002,713.20

4. The fix, applied and tested on the test environment4. الإصلاح، مطبق ومختبر على بيئة الاختبار

The fix was applied on the test environment egeu.datavalue.app on 5 November 2026 and tested there. It is not yet on vendors.k.frappe.cloud.

What changes for users

New settings page: ECS Pricing Settings

تم تطبيق الإصلاح على بيئة الاختبار egeu.datavalue.app يوم 5 نوفمبر 2026 واختباره عليها، ولم يُطبَّق بعد على vendors.k.frappe.cloud.

ما يتغير للمستخدمين

صفحة إعدادات جديدة: ECS Pricing Settings

SettingالإعدادOptionsالخياراتDefaultالافتراضي
Rate above the price list rate
السعر الأعلى من سعر القائمة
Set back to the price list rate / Keep the entered rateSet back to the price list rate (إرجاعه إلى سعر القائمة) / Keep the entered rate (الاحتفاظ بالسعر المدخل) Set back to the price list rate
Rate left over from another UOM or item
سعر متبقٍ من وحدة أو صنف آخر
Warn / Block / OffWarn (تنبيه) / Block (منع الحفظ) / Off (إيقاف) Warn

“Keep the entered rate” is only for a deliberate sale above the price list without a pricing rule. With it the rate stays as entered and no longer grows, and the new check still warns when the rate is left over from a previous unit or item.

خيار «الاحتفاظ بالسعر المدخل» مناسب فقط عند البيع المقصود بسعر أعلى من القائمة بدون قاعدة تسعير؛ معه يبقى السعر كما أُدخل ولا يتضاعف، ويستمر الفحص الجديد في التنبيه إذا كان السعر متبقيًا من وحدة أو صنف سابق.

Test results on egeu.datavalue.appنتائج الاختبار على egeu.datavalue.app

Each test document was saved three times, first with the code as it was before the fix and then with the fix. All test data was rolled back, so nothing was left on the test environment. Values are shown after save 1 → save 2 → save 3.

تم حفظ كل مستند اختبار ثلاث مرات، أولًا بالكود كما كان قبل الإصلاح ثم بعد الإصلاح، وتم التراجع عن كل بيانات الاختبار فلم يتبقَّ شيء على بيئة الاختبار. القيم معروضة بعد الحفظ الأول ← الثاني ← الثالث.

TestالاختبارValueالقيمةBefore the fixقبل الإصلاحAfter the fixبعد الإصلاحExpectedالمتوقعResultالنتيجة
S1 Sales Invoice: unit changed from carton to box of 12, rate left at the carton priceفاتورة مبيعات: تغيير الوحدة من كرتونة إلى علبة 12 كيس مع بقاء سعر الكرتونةrateالسعر4,130.40 → 148,685.77 → 192,674,379.22114.74 ×3114.74Passناجح
S2 Sales Invoice: rate typed 0.04 above the price list rateفاتورة مبيعات: سعر مكتوب أعلى من سعر القائمة بمقدار 0.04rateالسعر123.28 → 123.44 → 123.76123.12 ×3123.12Passناجح
S4 Sales Order: same as S1أمر بيع: نفس حالة S1line amountقيمة السطر2,753.68 → 5,048.40 → 9,637.84458.96 ×3458.96Passناجح
S5 Quotation: same as S1عرض سعر: نفس حالة S1line amountقيمة السطر2,753.68 → 5,048.40 → 9,637.84458.96 ×3458.96Passناجح
S6 Credit note without a reference, rate above the price list rateإشعار دائن بدون مرجع بسعر أعلى من سعر القائمةdiscount %نسبة الخصم-8.71 ×30.00 ×30Passناجح
S7-SI Sales Invoice: line with a 5% item pricing ruleفاتورة مبيعات: سطر عليه قاعدة تسعير 5%rateالسعر221.66 ×3221.66 ×3221.66Passناجح
S7-SO Sales Order: line with a 5% item pricing ruleأمر بيع: سطر عليه قاعدة تسعير 5%rateالسعر221.66 ×3221.66 ×3221.66Passناجح
S1-K S1 with “Keep the entered rate”حالة S1 مع خيار «الاحتفاظ بالسعر المدخل»rate stays 688.42 ×3, no growth; the left-over-rate warning is shownالسعر ثابت 688.42 ×3 بدون تضاعف، مع ظهور تنبيه السعر المتبقيPassناجح
S2-K S2 with “Keep the entered rate”حالة S2 مع خيار «الاحتفاظ بالسعر المدخل»rate stays 123.16 ×3, no growthالسعر ثابت 123.16 ×3 بدون تضاعفPassناجح
S3-W Unit changed from box of 12 to carton, rate left at the box price (below the list), check = Warnتغيير الوحدة من علبة 12 إلى كرتونة مع بقاء سعر العلبة (أقل من القائمة)، الفحص = تنبيهsaved, orange warning names the lineتم الحفظ مع تنبيه برتقالي يحدد السطرPassناجح
S3-B Same, check = Blockنفس الحالة، الفحص = منعsave refused with the same messageتم رفض الحفظ بنفس الرسالةPassناجح
S3-O Same, check = Offنفس الحالة، الفحص = إيقافsaved, no messageتم الحفظ بدون رسالةPassناجح

In every test after the fix, the amount in words and the payment schedule matched the total. Reference TASK-2026-17756; code changes committed in ecs_egeu f8efa33 and egeu_mobile ffcac75, not yet deployed to production.

في كل الاختبارات بعد الإصلاح تطابق المبلغ بالحروف وجدول السداد مع الإجمالي. المرجع TASK-2026-17756؛ تعديلات الكود محفوظة في ecs_egeu f8efa33 و egeu_mobile ffcac75، ولم تُنشر على الإنتاج بعد.

5. Next steps5. الخطوات التالية

  1. Approve the deployment to production (vendors.k.frappe.cloud). The deployment creates the settings page and makes the fix live.
  2. Drafts in table A: please do not approve or save them before the deployment. After it, one save sets the affected lines back to the price list rate; check each line and its unit before approving. If one has to go out sooner, delete the affected line, add it again choosing the unit first, and check that the rate equals the price list rate before saving.
  3. Posted invoices in tables B and C: how to correct them (credit notes, or cancel and re-issue) is a finance decision. We can prepare a line-by-line list with the correct amounts.
  4. We will also check Sales Orders and Quotations on production, and your other site egeu2025.frappe.cloud, which runs the same customizations.
  5. Keep the default “Set back to the price list rate” unless you deliberately sell above the price list without a pricing rule.
  1. الموافقة على النشر على بيئة الإنتاج (vendors.k.frappe.cloud)، وبه تُنشأ صفحة الإعدادات ويصبح الإصلاح فعالًا.
  2. المسودات في الجدول (أ): يُرجى عدم اعتمادها أو حفظها قبل النشر. بعد النشر يكفي حفظ واحد لإرجاع السطور المتأثرة إلى سعر القائمة؛ يُرجى مراجعة كل سطر ووحدته قبل الاعتماد. وإذا لزم إصدار إحداها قبل ذلك: احذفوا السطر المتأثر، ثم أضيفوه من جديد مع اختيار الوحدة أولًا، وتأكدوا أن السعر يساوي سعر القائمة قبل الحفظ.
  3. الفواتير المرحّلة في الجدولين (ب) و(ج): طريقة تصحيحها (إشعارات دائنة، أو إلغاء وإعادة إصدار) قرار مالي لديكم، ويمكننا تجهيز قائمة سطرًا بسطر بالمبالغ الصحيحة.
  4. سنقوم أيضًا بفحص أوامر البيع وعروض الأسعار على الإنتاج، وموقعكم الآخر egeu2025.frappe.cloud الذي يعمل بنفس التخصيصات.
  5. يُفضَّل الإبقاء على الخيار الافتراضي «إرجاعه إلى سعر القائمة» إلا إذا كنتم تبيعون عمدًا بسعر أعلى من القائمة بدون قاعدة تسعير.