• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در پیاده سازی - یک کالا با 2 قیمت رو چیکار کنم ؟
#1
فرض کنیم که یه کالا با نام A توی جدول ثبت بشه :

(فیلد) تعداد اولیه : 2
(فیلد) قیمت خرید : 2000
-------------------------------------
قیمت فروش : 3000
سود خالص : 2000

حالا قراره که به موجودی انبار اضافه بشه :

تعداد اضافه شده : 4
قیمت خرید جدید : 3000
-------------------------------------
قیمت فروش : 4000
سود خالص : 4000

حالا مشکل من اینجاست که چطور اینا رو با هم ادغام کنم ؟

یه روشی که یه جا خوندم، میگفت که میانگین بگیر یعنی :

تعداد کل : 6
قیمت خرید : 2666.666666666667 !!!

خب قاعدتا کار با همچین عددی بعدا برام مشکل ساز میشه .
اگه رندش کنم حساب دقیق نمیشه. اگه رندش نکنم هم توی نمایش و ذخیره سازی مشکل ساز میشه

یه روش که ظاهرا روش اصولی (؟) این کاره گفته که FIFO رو پیاده کن براش ( ولی نگفته چجوری !!! )
یعنی اول اون 2 تا موجودی اول رو با قیمت خرید 2000 حساب کنم و بعدش 4 تای بعدی رو همون قیمت خرید 3000 ...

حالا من چطور این کار رو انجام بدم ؟!

یا اگه روش دیگه ای هم توی ذهنتون هست ممنون میشم کمک کنین Huh
  پاسخ
تشکر شده توسط :
#2
FIFO خوبه واسه این

شما یه ID برای محصول میزاری بصورت AUTO_INCREMENT

بعد مثلاً رکوردهای زیر ثبت میشه

آیدی: 23
نام کالا: سیب
موجودی: 2

آیدی: 29
نام کالا: سیب
موجودی: 4

طبیعتاً برای هر درخواست میای آیدی کوچیکتر رو چک میکنی و با هر خرید یه دونه از موجودیش کم میکنه و وقتی موجودی 23 شد 0 میری سراغ موجودی 29 و بهمین ترتیب...

کد پی‌اچ‌پی:
SELECT FROM `staffWHERE `Name`='Apple' AND `stock` > 
ORDER BY  
`IDASC 
LIMIT 0 

هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : Bojbaj
#3
راه حل جالبیه
مرسی
حالا فرض این که تعداد کالا ها زیاد باشه و تعداد خرید ها و تغییر قیمت ها هم زیاد باشه، طبیعتا تعداد رکوردهام زیاد میشه .

راه حلی که یکم بهینه تر این کار رو انجام بده چی میتونه باشه ؟!؟!

البته میشه همیشه اونی که موجودیش 0 شد رو حذف کرد ولی در کل میخوام ببینم راه حل بهینه تری برای حل این مساله هست ؟
  پاسخ
تشکر شده توسط :
#4
اگه سیستم ثبت رو به صورت توزیع شده وسیع میخوای استفاده کنی بله
ولی اگه یه ارگان خاصّ میخوان ازش استفاده کنن نگران چی هستی؟
جای نگرانی نیست، mysql جواب میده...

فقط اینو بگم، من Apple رو مثال زدم که روشن تر باشه ها
در واقع بحای نام کالا باید از کد کالا استفاده کنی،
یعنی شما یه کد خرید که همون ID هست
و یه کد کالا داری که یه شماره خاص داره، مثلاً 323 شماره uniq برای سیب هست و خریدهای 23 و 29 برای کد کالای 323 صورت گرفته...
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط :
#5
اون که بله . با اسم که استفاده نمیکنم .

راستش برای این پروژه کارم با همین راه حل راه میفته ولی بازم دنبال راه بهینه میگردم .
فعلا میخوام چند تا نرم افزار حسابداری رو ببینم که چطور این کارو انجام میدن...

این هلو نسخه دمو نداره ؟ این همه پول بدم برای تست ؟!؟!
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان