كيف يمكن إحضار آخر سعر شراء للصنف وتخزينه تلقائيًا في حقل عبر مسار كيان؟

Viewed 0

المطلوب إنشاء مسار كيان يقوم — لكل سطر من سطور المستند — بإحضار آخر سعر شراء للصنف من فواتير الشراء السابقة، وتخزينه في الحقل details.n2.

كذلك في بعض الحالات يكون المطلوب أدق: إحضار آخر سعر شراء بتاريخ يسبق تاريخ المستند الحالي، وليس آخر سعر شراء على الإطلاق.

ما هي الصياغة المناسبة لاستعلام SQL داخل مسار الكيان لتحقيق كلتا الحالتين؟

1 Answers

الطريقة الأسهل لتحقيق المطلوب هي استعمال الصيغة التالية داخل مسار كيان من النوع EAFieldsValuesCalculator:

details.n2=sql(select top 1 cast(l.unitPrice as decimal(20,2)) lastPrice from PurchaseInvoiceLine l where l.item_id = {details.item.item.id} order by l.valueDate desc)

هذه الصيغة ترجع آخر سعر شراء مسجَّل للصنف عبر جميع فواتير الشراء.

إذا أردت آخر سعر شراء بتاريخ يسبق تاريخ المستند الحالي

أضف شرطًا على valueDate يقارنها بتاريخ المستند:

details.n2=sql(select top 1 cast(l.unitPrice as decimal(20,2)) lastPrice from PurchaseInvoiceLine l where l.item_id = {details.item.item.id} and l.valueDate <= {valueDate} order by l.valueDate desc)

بهذه الطريقة لن يتم احتساب فواتير الشراء التي تاريخها بعد تاريخ المستند الحالي، وهذا أهم خاصة عند إعادة احتساب مستندات قديمة.