PDA

View Full Version : کمک در مورد فاکتور واجناس خریداری شده



imani1983
یک شنبه 16 خرداد 1389, 01:54 صبح
با سلام خدمت دوستان
من تازه با C# آشنا شدم و چند مشکل دارم که تصویر ضمیمه گویای آن است:
1- آیا من در ثبت کالای خریداری شده(ورود به انبار) باید 2 جدول جداقانه داشته باشم که در یکی اطلاعات فاکتور ودر دبگری اطلاعات اجناس وارد بشه
2- و چه کار کنم که اگه یک جنس هم نام و همجنس(مشابه) در دوفاکتور جداقانه ثبت شود تعداد موجودی آن کالا در انبار چه گونه محاسبه شود وعملیات بر روی آن اجرا شود؟
ممنون می شم کمکم کنید%

mmd2009
یک شنبه 16 خرداد 1389, 02:11 صبح
با سلام خدمت دوست عزیز

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

در جواب سوال به مثال زیر توجه کن

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

کد جنس نام جنس تعداد
12584 ماکارونی 20
12445 سوپ جو 51
15411 برنج 52

حالا فرض کن می خواهیم 50 تا ماکارونی به جدول اضافه کنیم

ابتدا از دستور زیر استفاده می کنیم





select*from forushgah where name_jens=' " + txtname_jens +"'";
if ......


اگر داشته باشیم اسم کاکارونی رو بیا این کارو ببکن

که ابتدا مقدار فیلد تعداد رو بذار تو یه متغیر سپس با تعداد جدید جمعش کن

و اگر نداشته باشیم بیا جنس جدید رو ثبت کن

امیدوارم تونسته باشم کمکت کرده باشم

imani1983
یک شنبه 16 خرداد 1389, 02:52 صبح
mmd2009 عزیز ممنون که خیلی زود جواب دادی
توضیح اولت خوبه حتماً اجراش می کنم
اما توضیح دوم را یک کمی متوجه نشدم بزار من از اول توضیح بدم
فرض کنید هر بار که فاکتور می آد به انبار تا ثبت بشه، احتمال اینکه کالای مشابه داشته باشه وجود دارد اگر من مقدار کالای جدید را با کالای قدیمی جمع نمایم پس اطلاعات فاکتور قبلی که ثبت شده بود تغییر پیدا می کنه وجدول به هم می خوره
من هدفم اینه، هر فاکتوری که بیاد به انبار همونطوری ثبت بشه چون در آینده از فاکتور ها گزارش تهیه می کنیم اگه دستکاری بشه پس خوب نیست
به نظر من یک دستوری باید نوشت که مجموع کالا را جمع کرده ونشان دهد در ضمن من یک نظر دیگه هم دارم : یک جدول دیگه ای درست کنم که با هر بار ورود کالا به انبار طبق توضیحات دوم شما عمل بشه ، اگه این نظر من درسته منو راهنمائی کنین ؟
واگر راهکار دیگه ارائه می دین ممنون می شم%
:بوس: :بوس: :بوس:

mmd2009
یک شنبه 16 خرداد 1389, 03:42 صبح
مگه تو نمی خوای تعداد فاکتورات تغییر نکنه ولی تعداد جناست تغییر بکنه؟

پس واسه این کار تو فاکتورت رو جدا ثبت کن و مقداری که تو فاکتور هست رو بیا با موجودی های انبارت مقایسه کن و اگر جنسی که داشتی وجود داشت بیا جمعش کن با اون و اگر هم وجود نداشت که بیا ثبتش کن

imani1983
دوشنبه 17 خرداد 1389, 02:57 صبح
نه من می خوام هم اطلاعات فاکتور از جمله کد فاکتور ،نام فروشنده،تاریخ ثبت فاکتور، تخفیفات نقدی ،هزینه حمل،جمع حساب ناخالص،جمع کسورات،جمع اضافات،جمع کل حساب خالص . در جدول ثبت فاکتور تا آخر ثابت باشه چون این اطلاعات منحصر به فرد می باشد وتغییر در آن موجب به هم خوردن حساب اشخاص می شود.
وضمناً اگه تعداد اجناس که در جدول اجناس وجود دارد با ثبت اقلام فاکتور جدید تغییر کنه ما چطوری می توانیم در آینده از فاکتور منحصر به فرد که دارای کالاهای خود می باشد گزارش تهیه کنیم .این مشکل من است وگر نه می توانم تعداد اقلام را لود کرده وبا تعداد اقلام جدید جمع کرده وباز ثبت کنم

Happy_davood
دوشنبه 17 خرداد 1389, 19:56 عصر
برای سیستم انبار و فاکتور سه تا جدول باید داشته باشید :
1. جدول کالا : کد کالا (کلید اصلی) ، نام کالا ، واحد اندازه گیری و سایر مشخصات . ایجاد فیلدی برای نگهداری تعدا موجود ضروری نیست .

2. جدول Header اسناد : مانند تاریخ ، شماره سند (کلید اصلی) ، خریدار و ...

3. جدول Detail اسناد : شماره سند (کلید خارجی) ، شماره ردیف ، کد کالا(کلید خارجی) ، تعداد وارده یا صادره . شماره سند و شماره ردیف هر دو کلید اصلی

برای فهمیدن تعداد موجود هم با یه کوئری ساده مثل Sum روی جدول Detail می تونید تعداد رو بدست بیارید .

imani1983
دوشنبه 17 خرداد 1389, 20:04 عصر
لطفاً یک نفر،که انبارداری کار کرده کمک کنه تا این مشکل رو حل کنم؟

Happy_davood
سه شنبه 18 خرداد 1389, 08:57 صبح
مثل اینکه هیچ توجهی به پاسخ من نکردید .
شما یه بار دیگه روشی رو که گفتم مطالعه کنید به همه سئوالاتون جواب خواهید گرفت . شروع کنید به طراحی اون سه تا جدول تا روش حل مسئله جا افتاده بشه براتون

imani1983
یک شنبه 23 خرداد 1389, 22:34 عصر
ممنون از کمک شما Happy_davood مشکل من رفع شد%:تشویق::قلب: