15-10-19, 01:37 AM
(آخر تعديل لهذه المشاركة : 15-10-19, 01:39 AM {2} بواسطة Rabeea Qbaha.)
شكرا لكم جميعا على المساعدة و تقديم الخبرات كلم اخوتي و اقدر مجهوداتكم في هذا المنتدي
بعد التفكير و اخذ الافكار من مشاركاتكم قمت بحل المشكلة كالاتي:
انشات جدول جديد اسميتة offers يتكون من ٤ اعمدة :
-barcode
-items_count
-items_price
-date
من احد الامور التي طلبها الزبون كالاتي:
فالنفرض لدينا سلعه سعرها ٦ وهو يريد ان تكون هذة السلعة اذا بيع منها قطعتين
تصبح القطعتين ب ١٠ ، فلو باع ٣ قطع يجب ان يكون البيع كالاتي ٢ بتكلفه ١٠بسعر العرض وواحدة بتكلفة ٦ بالتكلفة الحقيقية
ليصبح التانج ١٦ ( دون العرض سيكون الناتج ١٨) وهكذا على جميع القطع.
اذا اراد اضافة عرض سيقوم باضافتة الى جدول العروض.
عند البيع او في شاشه البيع قمت باستخدام الباقي من القسمة وهو الـ Mod للتفرقة كالاتي:
فالنفرض لدينا العرض المذكور في السابق القطعتين ب ١٠ والقطعة ب ٦
سيقوم البرنامج بفحص الباركود المدخل اذا كان موجود ضمن العروض
اذا لا يقوم بالبيع المعتاد اما اذا موجود سيقوم بجلب عدد القطع للعرض وهي بمثالنا ٢
ويقوم بفحص باقي القسمة لعدد القطع المباعة اذا كان باقي القسمة 0 سيكون البيع على العرض:
يعني لو بيع قطعتين سيكون باقي القسة لها صفر (باقي القسمة من ٢/٢ هو 0)
فسيكون الناتج كالاتي ((عدد السلع المباعة ٢ / عدد السلع للعرض ٢) * سعر العرض ١٠) سيكون الناتج ١٠
اذا الكمية المباعة ٤ قطع:
فسيكون الناتج كالاتي ((عدد السلع المباعة ٤ / عدد السلع للعرض ٢) * سعر العرض ١٠) سيكون الناتج ٢٠
في حالة باقي القسمة ليس صفر سنقوم بالاتي والنفرض كان عدد السلع المباعة ٣ :
فسيكون الناتج كالاتي (((عدد السلع المباعة ٣ - باقي القسمة ١) / عدد السلع للعرض ٢) * سعر العرض ١٠) + باقي القسمة ١ * سعر السلعة الاساسي ٦ سيكون الناتج ١٦
(((٣-١)/ ٢) * ١٠ ) + ١ * ٦)
(((٢/٢) * ١٠) + ٦)
(١*١٠) + ٦)
الناتج ١٦
وهكذا على جميع السلع التي قي العرض
وهذا الكود المستخدم :
PHP كود :
If exists = False Then
GV.Rows.Add(barcode, Category, Mat_Name, Unit, Price, Quantity, Total, Note)
Else
Get_offer(barcode)
If offer_exist = True Then
If IsDivisible(Quantity, offer_count) = True Then
Total = (Quantity / offer_count) * offer_price
Else
Total = ((Quantity - (Quantity Mod offer_count)) / offer_count) * offer_price + ((Quantity Mod offer_count) * Price)
End If
End If
GV.Rows(row_index).Cells(5).Value = Val(GV.Rows(row_index).Cells(5).Value) + 1
GV.Rows(row_index).Cells(6).Value = Total
End If
وهذا الفانكشين يرجع قيمة الخصم اذا 0 او لا :
PHP كود :
Public Function IsDivisible(ByVal x As Integer, ByVal n As Integer) As Boolean
Return x Mod n = 0
End Function
اتمنى ان اكون اوصلت الفكرة
