PDA

View Full Version : موجودي كالا



s_mokhtari
جمعه 31 اردیبهشت 1389, 15:28 عصر
با سلام:ناراحت:
من دارم يه برنامه انبارداري كار ميكنم حالا بايد موجودي كالا را هر سري چك كنم مثلا هر تعداد كالايي كه خريداري ميشه بايد به تعداد موجودي اضافه يا هر فاكتوري كه ميزنم از تعداد موجودي كالا كم بشه و يا براي ويرايش اون بايد ستون گريد را مقايسه كنم اگه مقداري كه وارد كرد كمتراز مقدار قبلي بود اختلافشا ميگيرم و از تعداد موجودي اضافه بشه خوب اين وقت گير براي موجودي كالا راه بهتري هست سرچ كردم ديدم بايد از تريگر استفاده بشه ولي بلد نيستم
خواهشن كمكم كنيد
با تشكر
خيلي عجله دارم
:خجالت:

mds_boy
جمعه 31 اردیبهشت 1389, 20:56 عصر
سلام
اینم دستورش اگه بخوای موجودی رو بدست بیاری :

SELECT SUM(dbo.kharid.[tedad kharid] - dbo.forush.[tedad forush]) AS mojoudi
FROM dbo.kharid INNER JOIN
dbo.forush ON dbo.kharid.id = dbo.forush.id INNER JOIN

dbo.mojudi ON dbo.kharid.id = dbo.mojudi.id

ببین با این کارت راه می افته !

حسین شهریاری
شنبه 01 خرداد 1389, 10:07 صبح
من این کار را قبلا با تریگرها انجام میدادم.ولی بعد از چند ماه با این که برنامه دارای منطق درستی هم بود ولی یه مشکلات عجیبی برام پیش اومد که مجبورم کرد روشما تغییر بدم.به شما هم توصیه میکنم برای کنترل موجودی از تریگر استفاه نکنید چرا که علاوه بر مشکلی که گفتم شما ناخاسته یه سربار محاسباتی را هم روی سیستم قرار میدید.برای محاسبه موجودی بنده خودم هم با روش پست قبلی موافقم ولی یه نکته را فراموش کردند این که Inner join سطرهایی را که در دوطرف وجود داشته باشن انتقال میده ولی شما فرض کن از یه کالایی وارد انبار شده و به موجودی اضافه شده ولی هیچگاه خروجی براش صادر نشده.با روش پست قبل دیگه موجودیش در خروجی نمایش داده نمیشه.برای حل مشکل بجای Inner join
اگه از Left Outer Join استفاده بشه اون موقه خروجی بر اساس جدول سمت چپی خواهد بود و اون مشکل هم حل میشه.بنده چندید سال هست که رو ی سیستمهای تجاری(خرید-فروش-حسابداری و انبارداری) کار میکنم و با ریز و بم کارشون آشنا هستم.

واما یه پیشنهاد:شما میتونی تمام فاکتورهاتا در یه جدول ذخیره کرده وبا یه فیلد قراردادی مثل FactorType اونا از هم تفکیک کنی.اینطوری اگه اطلاعات صحیح ذخیره بشن اون موقه برای گزارشگیری خیلی راحت هستین.

موفق باشید

ASKaffash
شنبه 01 خرداد 1389, 11:00 صبح
سلام
این تفکر اشتباهی هست که یک فیلد برای موجودی کالا در انبار ذر نظر گرفته شود (تحت شبکه فاجعه است) پس شما یک تابع طراحی کنید که ورودی ID کالا است و خروجی زیگمای خروجی ها و ورودی های این کالا به انبار مورد نظر است و از این تابع در جاهای متفاوت استفاده کنید در ضمن ایندکس روی کد انبار و کد کالا و نوع ورود و خروج و ... در جدول Detail کالاها فراموش نشود! (برای بالا رفتن سرعت محاسبه)