كيف أجعل التاريخ الفعلي لسند الصرف يساوي تاريخ الموافقة عبر مسار كيان؟

Viewed 2

عند استخدام الموافقات (Approvals) على سند صرف، يحتفظ المستند في حالة الـ Draft بالتاريخ الفعلي (valueDate) الذي تم إدخاله أول مرة، بينما يأخذ السيريل الخاص بالخزينة تاريخاً مختلفاً عند الاعتماد. النتيجة أن السيريل والتاريخ يصبحان غير متسقين.

هل توجد طريقة عبر مسار الكيان (Entity Flow) لتعديل valueDate تلقائياً عند الموافقة بحيث يصبح مساوياً لتاريخ الحفظ/الاعتماد؟


Originally posted at https://answers.namasoft.com/question/3/ on 2018-06-10.

1 Answers

يمكن تحقيق ذلك من خلال مسار الكيان (Entity Flow) بثلاث طرق، حسب ما تريد التحكم فيه:

1) أبسط طريقة — runCommand="makeValueDateToday"

في تعريف مسار الكيان على المستند، استعمل:

runCommand="makeValueDateToday"

هذا الأمر يضع valueDate للمستند بتاريخ اليوم.

2) إذا كنت تريد أن يتغير التاريخ فقط بعد الموافقة (وليس مع كل حفظ)

استعمل EAFieldsValuesCalculator مع الحدث Update Calculated Fields، وضع التعبير التالي:

valueDate = sql(select case when {commitedBefore} = 1 then {valueDate} else getdate() end)
runCommand = "guessPeriod"

الشرح:

  • {commitedBefore} يكون 1 إذا كان المستند قد سبق اعتماده، فيُبقى التاريخ كما هو.
  • في أول اعتماد يأخذ getdate().
  • guessPeriod يعيد حساب الفترة المحاسبية لتتسق مع التاريخ الجديد.

3) لا تنسَ تطبيق التغيير على السطور أيضاً

سند الصرف يحتوي على سطور تحمل نفس التاريخ. أضف هذا السطر داخل نفس الإجراء حتى يتم تحديث التاريخ في السطور كذلك:

details.valueDate = valueDate

Originally posted at https://answers.namasoft.com/question/3/ on 2018-06-13.