اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

مشكلة لحساب متوسط السعر


elkareee
إذهب إلى أفضل إجابة Solved by Gamal.Saad,

الردود الموصى بها

السلام عليكم 

اساتذتى الافاضل عندى فكرة صعبة شوية عليا لتطبيقها الفكرة موضحة فى الصورة التالية 

Capture.PNG.5596cd5dfeb0c853fa35e14cff51bd96.PNG

توضيح للفكرة أن متوسط السعر فى حالة الاضافة بيساوى ( مجموع قيمة الرصيد السابق + قيمة الحركة الحالية )  مقسوم على

(مجموع الرصيد السابق + كمية الاضافة الحالية) 

أما بالنسبة للصرف بياخد اخر متوسط سعر اتحسب فى الخطوات السابقة له

ملحوظة :

من المحتمل تعديل اى قيمة للاضافة فى تاريخ سابق وبالتالى يتغير متوسط السعر بناء على ذلك فيجب ان تكون المعادلة متسلسلة تؤثر فى الحركات التالية لها 

 

جزاكم الله خير واتمنى انى اكون اوضحت الفكرة

 

مرفق المثال بصيغة 2010 لأن فيه حقول Calculated مش هتشتغل فى 2003 

 

 

 

 

 

 

تقييم 2.zip

رابط هذا التعليق
شارك

لقد توصلت الى جزء من الحل انظر المرفق :

طريقة العمل أولا يقوم أمين المخزن باضافة حركة ما سواء صرف او اضافة ويقوم مستخدم اخر على الشبكة بتقييم هذه الحركة مالياً ولذلك قمت بالأتى

 

قمت بعمل النموذج zvalue وهو نموذج يقوم بقراءة الحركات التى قيمتها صفر ليتم كتابة القيمة الخاصة بها فى حقل القيمة بواسطة المستخدم الثانى وذلك فى حركات الاضافة فقط وبعد اضافة قيمة الحركة يتم الضغط على حقل Code لتشتغل المعادلة وينتج متوسط السعر الذى يظهر فى التقرير السابق الاشارة اليه 

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

1- يجب حساب أول متوسط سعر يدوياً اما فى الحركات الاحقة تقوم المعادلة بحسابها .

2- فى حالة تعديل القيمة فى تاريخ سابق يظل متوسط السعر ثابتا بالطبع وذلك لأن حسابه يعتمد على معادلة فى النموذج وليس تسلسل حسابى فى التقرير 

وبهذا وصلت لأخر امكانياتى برجاء المساعدة والمناقشة من الأخوة

 

 

 

 

 

تقييم.zip

تم تعديل بواسطه elkareee
رابط هذا التعليق
شارك

وعليكم السلام ورحمة الله وبركاته

بعد عناء كبير لحل مشكلة تحديد قيمة المخزون واكتشاف ان متوسط السعر خطأ 100% وجدت الحل والحمد لله وهو بطريقة الوارد اولا يصرف اولا

وهذا الرابط به شرح وافي لتنفيذ الطريقة

واعتذر لوضع رابط خارج المنتدى

http://edu.arabsgate.com/showthread.php?t=631317

تخياتي

  • Like 1
رابط هذا التعليق
شارك

15 ساعات مضت, محمد ابوعبد الله said:

وعليكم السلام ورحمة الله وبركاته

بعد عناء كبير لحل مشكلة تحديد قيمة المخزون واكتشاف ان متوسط السعر خطأ 100% وجدت الحل والحمد لله وهو بطريقة الوارد اولا يصرف اولا

وهذا الرابط به شرح وافي لتنفيذ الطريقة

واعتذر لوضع رابط خارج المنتدى

http://edu.arabsgate.com/showthread.php?t=631317

تخياتي

هههههه طبعا اعتذر ليك اخى الفاضل عن العناء واحب اضيفلك معلومة هناك اربع طرق لحساب متوسط السعر من ضمنهم الطريقة اللى انتا اشرت اليها F.I.F.O وهى الوارد اولا يصرف اولا لكن الطريقة اللى تعتمد عليها شركتنا هى طريقة متوسط السعر المتحرك فى نظام الجرد المستمر وذلك لأن مش كل الطرق بيتنفع فى كل المنشئات وبالنسبة للطريقة اللى انتا اشرت ليها لا تنفع مع نظام شركتى

وبالتالى متوسط السعر ليس خاطئ ولكنه محسوب بطريقة اخرى وتفضل رابط يشرح الطريقة وذلك من باب تحصيل العلم

 

https://www.arabstutors.com/inventory-systems/tutorials/weighted-average.html 

 

انزل على المتوسط المتحرك ستجد نفس طريقة الحساب اللى طبقتها انا

 

اعتذر عن العناء ولكنى ذكرت ان الموضوع صعب شوية و أعتذر عن الرابط الخارجى ولكنه للاستدلال 

جزاك الله خير

رابط هذا التعليق
شارك

السلام عليكم أستاذ محمد

أحببت أسجل متابعتي للموضوع

وأعرفك أني مازلت أحاول في استعلام التحديث ليتم تحديث الرصيد بعد الحركة بدلا من الدالة الحسابية

qty_normalize Function

الموجودة بموضوعك السابق

واذا تم الاستعلام بنجاح فسنحاول حل مشكلتك الجديدة بهذا الموضوع والتي تعتمد أيضا على حساب الرصيد بعد الحركة

لكن اذا يسعفني الوقت أو لم أصل لحل أو لم يحلها الأخوة بالمنتدى

فستكون مضطرا إلى الاعتماد على الدالة السابق ذكرها

  • Like 1
رابط هذا التعليق
شارك

الان, Gamal.Saad said:

السلام عليكم أستاذ محمد

أحببت أسجل متابعتي للموضوع

وأعرفك أني مازلت أحاول في استعلام التحديث ليتم تحديث الرصيد بعد الحركة بدلا من الدالة الحسابية

qty_normalize Function

الموجودة بموضوعك السابق

واذا تم الاستعلام بنجاح فسنحاول حل مشكلتك الجديدة بهذا الموضوع والتي تعتمد أيضا على حساب الرصيد بعد الحركة

لكن اذا يسعفني الوقت أو لم أصل لحل أو لم يحلها الأخوة بالمنتدى

فستكون مضطرا إلى الاعتماد على الدالة السابق ذكرها

استاذى الفاضل يسعدنى انك بتتابع الموضوع طبعا 

وبالنسبة للمشكلة هنا مش مشكلة رصيد بعد حركة لأنك حلتها فى الموضوع السابق هيا بتعتمد عليها بالفعل لكن بعد حل مشكلة رصيد بعد الحركة اصبح الموضوع مختلف

المشكلة هنا فى طريقة الحساب المعقدة ودى انا حليتها بطريقة بدائية كده بس شغالة فاضل بس موضوع التسلسل زيها زى فكرة رصيد بعد الحركة لكن الموضوع معقد شوية

فى انتظارك طبعا و الاساتذة فى المنتدى باذن الله الموضوع يتحل جزاك الله خير :fff:

رابط هذا التعليق
شارك

نعم أتفهم ذلك

والمعادلة  تعتمد على قيم في سجلات سابقة

ويسهل تطبيقها مهما ابتعدت  وتنوعت القيم في سجلات سابقة أو تالية ولكن باستخدام كود من داخل النموذج

والأفضل استعلام تحديث لأني أراه أسرع اذا زادت السجلات لأعداد كبيرة

أما اذا كان يكفيك الحل باسخدام نفس الدالة الحسابية السابقة فلا مانع من بدء المحاولة

ثم نحاول تحويل الدالة بعد ذلك إلا عدة استعلامات 

 

 

رابط هذا التعليق
شارك

الان, Gamal.Saad said:

نعم أتفهم ذلك

والمعادلة  تعتمد على قيم في سجلات سابقة

ويسهل تطبيقها مهما ابتعدت  وتنوعت القيم في سجلات سابقة أو تالية ولكن باستخدام كود من داخل النموذج

والأفضل استعلام تحديث لأني أراه أسرع اذا زادت السجلات لأعداد كبيرة

أما اذا كان يكفيك الحل باسخدام نفس الدالة الحسابية السابقة فلا مانع من بدء المحاولة

ثم نحاول تحويل الدالة بعد ذلك إلا عدة استعلامات 

 

 

ياباشا انا معاك لو صممتلى كلب البحر يجرى فى البرنامج المهم نوصل للنتيجة المطلوبة واللى انتا شايفها افضل شوف الاتجاه اللى انتا تحبه وابدأ فيه بس ياريت تراجع المرفق التانى اللى انا ارفقته لأنه بيوصل للنتيجة المطلوبة انا حاطه كدليل فقط عشان المتابع للموضوع يعرف النتيجة المطلوبة فى الاخر ايه تسلم يا كبير :wavetowel:

رابط هذا التعليق
شارك

ههههههه

أوك يا أستاذ محمد

علشان قلت كلب البحر يبقى لازم يكن الحل بفانكشن تمر على كافة السجلات براحتها

 

أنا رأيت المرفق ويبدو من النظرة الأولى أنه يأتي بنتيجة صحيحة

لكن بحثت في استعجال عن أي شيئ للتسلسل التاريخي فلم أجد

وإن شاء الرحمن

سأحاول فهم طريقتك بالتفصيل والبناء عليها

وأرجو  باعتبارك المهتم الأول بالموضوع أن تعلق على  الحل سواء بوضع تعليقات على النموذج أو داخل كود الفيجوال بالنموذج ولا تفعل مثلي في عدم وضع تعليقات

واذا كانت هناك كائنات غير ضرورية مثل استعلامات وما شابه فياريت تحذفها حتى لا يتشتت المتابع لملفك

  • Like 1
رابط هذا التعليق
شارك

الان, Gamal.Saad said:

سأحاول فهم طريقتك بالتفصيل والبناء عليها

وأرجو  باعتبارك المهتم الأول بالموضوع أن تعلق على  الحل سواء بوضع تعليقات على النموذج أو داخل كود الفيجوال بالنموذج ولا تفعل مثلي في عدم وضع تعليقات

واذا كانت هناك كائنات غير ضرورية مثل استعلامات وما شابه فياريت تحذفها حتى لا يتشتت المتابع لملفك

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

رابط هذا التعليق
شارك

الان, Gamal.Saad said:

حتى لا يتشتت المتابع لملفك

تفضل مرفق مفصل بقدر الامكان

ملحوظة :

 عدد السجلات فى اليوم بيكون عدد كبير من السجلات 

فى انتظارك اخى الكريم  :wavetowel::dance1:

تقييم شغال.rar

تم تعديل بواسطه elkareee
رابط هذا التعليق
شارك

الان, Gamal.Saad said:

الحل بفانكشن تمر على كافة السجلات براحتها

 

معلش أستاذ جمال ظهرت عندى مشكلة فى الفانكشن القديم بعد نقلها على القاعدة الأصلية اللى فيها البيانات فعلا ظهر الخطأ التالى ويتوقف الاستعلام Q عن العمل 

error.PNG.f66632a9e6d5e7aaf3712e11173751ac.PNG

 

لا اعرف ما سبب الخطأ شغالة على المثال بصورة طبيعية ولا يوجد تغيير فى المسميات عن القاعدة الأصلية ولا أى شئ الفرق فقط فى عدد السجلات حيث أن عدد السجلات فى القاعدة الأساسية كبير جدا بالألاف :imsorry:

 

تم تعديل بواسطه elkareee
رابط هذا التعليق
شارك

9 ساعات مضت, Gamal.Saad said:

أوك

لصعوبة ارفاقك للقاعدة الأصلية

أرفق الجداول فقط

تفضل استاذ جمال وأسف انى تاعبك معايا

بالنسبة للمرفق دى الجداول من حيث البناء وليس من حيث البيانات لأن فيها بيانات كتير جدا تصل الى 50000 سجل وبالتالى حتى لو اقدر ارفقهالك حجمها كبير 

وبالنسبة للخطأ هل من الممكن انه يكون من البيانات نفسها مثلا حقول فارغة وخلافه ؟

جزاك الله خير

 

 

 

Database.rar

رابط هذا التعليق
شارك

9 ساعات مضت, Gamal.Saad said:

كنت أطمع حتى في بضعة آلاف

أو بضعة مئات من السجلات حتى نتتبع الخطأ

وليس هناك تطابق تام بين الحقول في جدول

transaction

انا عدلت الفرق بينهم وجربت مفيش اختلاف اما بالنسبة للسجلات هرفعها على رابط خارجى وابعتها لحضرتك خاص ماشى ؟

رابط هذا التعليق
شارك

في البداية سبب الخطأ هو القيمة

Null

وهي موجودة لديك في حقول  مستخدمة بالمعادلة الحسابية رصيد بعد الحركة

وبعد ازالتها من الحقول التالية

item

in

out

اشتغل الكود

 

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

 

New up2.rar

تم تعديل بواسطه Gamal.Saad
  • Like 1
رابط هذا التعليق
شارك

9 ساعات مضت, Gamal.Saad said:

في البداية سبب الخطأ هو القيمة

Null

وهي موجودة لديك في حقول  مستخدمة بالمعادلة الحسابية رصيد بعد الحركة


زبطت والعملية أخر روقان :dance1::clapping:

رابط هذا التعليق
شارك

2 hours ago, elkareee said:

زى ما توقعت مشكور استاذى ساقوم بالتجربة مجددا فى انتظار حلك للمشكلة الاخرى :wavetowel:

صحيح أنت قلت بيانات فارغة

لكن لم أنتبه لأنك لم تقل

Null

معلش كل واحد وتعليمه هههههههه

 

بس مشكلتك الثانية لو سوينا كود تحديث لخمسين ألف سجل ربما يتطلب عشرون ثانية للتنفيذ على الأقل

لذلك يجب العمل على تقليل الزمن

شيئ آخر :

البيانات الأخيرة لا يوجد بها حقل القيمة

zvalue

المطلوب للمعادلة

 

 

رابط هذا التعليق
شارك

9 ساعات مضت, Gamal.Saad said:

صحيح أنت قلت بيانات فارغة

لكن لم أنتبه لأنك لم تقل

Null

معلش كل واحد وتعليمه هههههههه

 

ههههه مش لازم افرد عضلاتى وابين ثقافتى واقولك IsNull يعنى ومع ذلك الحمدلله عرفنا السبب

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

بالنسبة للفكرة بتاعت ال20 ثانية دى ممكن تجيبها نتسلى فيها لحد ما نوصل لتقليل الزمن 

بس انتا فعلا طبقت الفكرة والتسلسل شغال ولكن المشكلة فى الزمن بس ؟.

 

 

 

رابط هذا التعليق
شارك

اي  المفروض شغالة

بس ممكن نحتاج تعديل  لضبط الناتج

انظر الصورة وراجعها معي خصوصا ما يلي :

السجل الأول : للصنف يكون حركة اضافة طبعا حسب التسلسل التاريخي وتكون معادلة متوسط السعر

الكمية المضافة مقسوماً على القيمة

السجلات التالية للصنف :

اذا كان خصم يأخذ آخر متوسط

واذا كان اضافة فتكون المعادلة

قيمة رصيد للصنف بالحركة السابقة مضافا إليه قيمة الصنف في الحركة الحالية

ثم نقسم الناتج على مجموع

رصيد ما بعد الحركة السابقة للصنف + كمية الاضافة الحالبة

ومع بداية صنف جديد نعود لمعادلة السجل الأول

 

ومش مهم تراجع النتيجة

المهم جوهر المعادلة

خاصة ما هو مكتوب هنا باللون الأحمر

حيث هل يقصد برصيد الصنف للحركة السابقة أياً كانت سواء حركة اضافة أم حركة خصم أم اضافة فقط ؟

http://do.php?img=323225

 

  • Like 1
رابط هذا التعليق
شارك

السلام عليكم 

أستاذ جمال بداية أحييك على فهمك الجيد للموضوع واضح انك تعبت فى دراسته وبالنسبة للملاحظات هى كما يلى :

16 ساعات مضت, Gamal.Saad said:

السجل الأول : للصنف يكون حركة اضافة طبعا حسب التسلسل التاريخي وتكون معادلة متوسط السعر

الكمية المضافة مقسوماً على القيمة

 

أول قيمة مقسومة على أول كمية اضافة وناتجها فى الصورة صحيح

 

16 ساعات مضت, Gamal.Saad said:

السجلات التالية للصنف :

اذا كان خصم يأخذ آخر متوسط

مظبوط جدا الكلام بالاضافة انه بيحصل حاجتين تقوم المعادلة بحساب المتوسط ثم تضرب المتوسط فى قيمة الخصم لينتج قيمة الحركة الحالية ثم تضرب نفس المتوسط فى الرصيد الحالى للصنف لينتج قيمة رصيد الصنف الاجمالية لاحظت فى الصورة ان حركة الصرف واخدة قيمة صفر المفترض انها كما ذكرت انا ليها قيمة ضرب المتوسط فى كمية الحركة الحالية

 

16 ساعات مضت, Gamal.Saad said:

السجلات التالية للصنف :

اذا كان اضافة فتكون المعادلة

قيمة رصيد للصنف بالحركة السابقة مضافا إليه قيمة الصنف في الحركة الحالية

ثم نقسم الناتج على مجموع

رصيد ما بعد الحركة السابقة للصنف + كمية الاضافة الحالبة

ومع بداية صنف جديد نعود لمعادلة السجل الأول

 

مظبوط جدا الكلام تمام هيا كده 

بالنسبة لتعدد الاصناف فى التقرير مش هيبقى موجود هيبقى لكل صنف تقرير منفصل طبعا معيار بحث فى الاستعلام

فى انتظار جديدك استاذى الفاضل أعزك الله :fff:

 

 


 

رابط هذا التعليق
شارك

6 ساعات مضت, Gamal.Saad said:

حيث هل يقصد برصيد الصنف للحركة السابقة أياً كانت سواء حركة اضافة أم حركة خصم أم اضافة فقط ؟

 

رصيد بعد الحركة للحركة السابقة سواء كانت صرف أو اضافة 

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information