PDA

View Full Version : تحلیل بانک برای سیستم انبار داری



IMANAZADI
پنج شنبه 28 اردیبهشت 1391, 10:36 صبح
با سلام خدمت عزیزان
میخوام یک سیستم انبارداری برای یک شرکت کوچولو طراحی کنم شرایط به این صورت است
کالاها به دو صورت تعریف شود
1- مصرفی (پس از خروج به انبار باز گردانده نمیشوند) مثل خوراکی
2- غیر مصرفی ( پس از خروج باید مجددا بازگردانده شوند)
کالاها پس از خرید توسط تدارکات در سیستم با مشخصات ذیل ثبت شود
نام کالا
تاریخ ورود به انبار
مقدار کالا
واحد کالا
اگر جنس وارد شده قبلا در بانک موجود باشه مقدار جدید به مقدار قبلی اضافه شود
کالاها در صورت تحویل و خروج از انبار ثبت شود
نام تحویل گیرنده
مقدار تحویل گرفته شده
تاریخ تحویل
اگر مصرفی بود مثل کاغذ A4 دیگر برگردانده نمیشود
ولی اگر غیرمصرفی بود بازگردانده میشود
اطلاع از موجودی کالا

حالا به نظر دوستان چند تا جدول و به چه صورت طراحی کنم
چه فیلد هایی رو کلید تعریف کنم
ممنون میشم

IMANAZADI
جمعه 29 اردیبهشت 1391, 07:25 صبح
کسی از دوستان نیست ؟

tiphooo
یک شنبه 31 اردیبهشت 1391, 00:56 صبح
دو جدول کافیست یکی برای Header رکرودهای رسید یا حواله و دیگری برای Detail
در Header شماره سند (رسید یا حواله) ، تاریخ سند ، تحویل گیرنده ، نوع رسید یا حواله (مصرف ، امانی ، انتقالی و ....)و .... را وراد کنید و یک فیلد برای تفکیک نوع سند (رسید یا حواله) مثلا صفر برای رسید و 1 برای حواله
در Detail رکرودهای ردیف ، کد کالا ، عنوان کالا ، مقدار کالا ، واحد سنجش و ... را اضافه کنید و فیلدهایی مانند عنوان و یا واحد سنجش Calc هستند
برای گرفتن موجودی هر کالا لیست حواله ها را از رسیدها برای هر کالا کم کنید
موجودی را اصلا به صورت عددی و در فیلد ذخیره نکنید. موجودی محاسباتی است
مصرفی یا غیر مصرفی بودن کالا در فهرست کالاها مشخص می شود و ارتباطی با رسید و حواله ندارد

IMANAZADI
یک شنبه 31 اردیبهشت 1391, 07:44 صبح
دوست عزیز با تشکر از شما
میشه لطف کنید این جداول رو بیشتر توضیح بدی متوجه نشدم
شاید من خوب توضیح ندادم
من میخوام جنسی که وارد انبار میشه تاریخ ورود بخوره با مقدار ورود اگر کالای اومده قبلا در انبار بوده به موجودی اون اضافه بشه
نوع کالا ها مشخص باشند مصرفی یا غیر مصرفی
اگر انبار دار کالایی را بیرون داد سند بخوره که چه مقدار خارج شده و مصرفی بوده یا غیر مصرفی و از موجودی انبار کم بشه
اگر کالای مصرفی خارج شد از موجودی کم شود ولی نکته اینکه کالای مصرفی بازگردانده نمیشود
برای کالای غیر مصرفی در صورت خروج سند بخورد و از موجودی کم و اینکه کالا بازگردانده میشود

tiphooo
یک شنبه 31 اردیبهشت 1391, 14:51 عصر
قبل از هر چیز ما یک جدول برای کدینگ کالا ها به شکل زیر داریم
Code Parent Name Type Unit
Code کدکالا varchar
Parent کد لایه بالاتر varchar
Name نام کالا varchar
Type نوع کالا (مصرفی ، غیر مصرفی) smallint
Unit واحد سنجش کالا varchar از یک جدول دیگر انتخاب شود که فیلد Code ,Name مشابه همین جدول دارد و واحدهای سنجش در آن است

برای رسید و حواله هم دو جدول فرضا با نام TStockMaster و TStockDetail داریم
TStockMaster شامل فیلدهای زیر است
Serial سریال (رسید یا حواله) int ,Identity
ListDate تاریخ (رسید یا حواله) smalldatetime
Number شماره (رسید یا حواله) int
StockCode کد انبار varchar - اسامی انبارها هم در یک جدول دیگر است با مشخصات (Code,Name) برای اینکه بدانیم جنس به کدام انبار وارد شده و یا خارج می شود
PersonCode دریافت کننده یا طرف حساب varchar -- اسامی اشخاص هم در یک جدول دیگر است و معمولا تفصیلی اشخاص طرف حساب در مالی است اگر سیستم با مالی هم در ارتباط است در غیر اینصورت جدول مجزا تعریف کنید (Code,Name)
ListType نوع رسید یا حواله smallint -- رسید و حواله نوعهای مختلفی دارند مثلا برای رسید (خرید ، امانی ، انتقالی ، برگشت از مصرف ، تولید ، افتتاحیه ، برگشت از فروش و ...)
و حواله (مصرف ، فروش ، امانی ، انتقالی ، برگشت از خرید ، برکشت از تولید ، تعدیلی و...) که به هر کدام یک کد اختصاص بدهید
و اما جدول TStockDetail شامل فیلدهای زیر است
Serial سریال رکورد int,identity
Parent شماره هدر رکورد int و از Serial در TstockMaster استفاده می کند
Number ردیف int
GoodsCode کد کالا و از جدول کالاها انتخاب می شود varchar
Goodsname محاسباتی و عنوان کالا می باشد بر اساس کد کالا
GoodsUnit محاسباتی و واحد کالا می باشد از جدول کالاها و واحدهای سنجش
GoodsValue مقدار کالا می باشد Decimal(18,8)

شما برای صدور رسید و حواله باید 2 فرم مجزا در نظر بگیرید
در فرم رسید با زدن صدور سند جدید یک رکورد اضافه شود و تاریخ را (تاریخ روز و یا تاریخ آخرین رکورد) به خود بگیرد و ListType در اینجا به صورت خودکار با صفر پر شود (یک فرم با یک grid که در Grid لیست رسیدها وجود دارد) فیلد Number هم با گرفتن شماره آخرین رکورد بعلاوه یک پر شود. کد انبار هم زمان درج پرسیده شود و پر شود
با انتخاب هر رکورد از Grid و زدن مثلا Enter فرم دیگری باز شود که جزئیات رسید در آن است
در ابتدای فرم شماره سند ، نوع سند ، تاریخ سند ، تحویل گیرنده مشخص شود (از جدول TstockMaster وبه ازاء سریال رکوردی که انتخاب شده)
در داخل سند باید بتوان تحویل گیرنده را مشخص کرد و تاریخ را تغییر داد ولی شماره قابل تغییر نباشد
نوع رسید هم را باید بتوان تغییر داد
در پایین صفحه اطلاعات رسید وجود داشته باشد و با انتخاب کالا ، نام و واحد شنجشش بیاید و بعد مقدار آن وارد شود
این کار برای تمام رکوردهای رسید انجام شود مثلا ممکن است یک رسید 100 رکورد یا بیشتر داشته باشد
فیلد Parent انها با Serial جدول TstockMaster پر شود تا در هنگام باز شدن رسید فقط رکوردهای مربوط به همان رسید نمایش داده شود
فیلد ردیف هم مانند شماره سند در خود رسید (آخرین ردیف بعلاوه یک) به صورت خودکار پر شود

در مورد حواله هم باید همین کار رابکنید فقط فرق حواله این است که هنگام ثبت یک ردیف در حواله اگر مقدار کالای انتخاب شده کمتر از موجودی باشد باید پیغام بدهد و اختیاری باشد چون ممکن است بخواهند کالایی را حواله کنند که موجودی ندارد (این اتفاق بعضا می افتد خواستید توضیح می دهم)
دوباره تاکید می کنم برای موجودی کالا جدولی در نظر نمی گیریم
یک کالا ممکن است در چند انبار وجود داشته باشد
گرفتن موجودی با توجه به شرایط ذکر شده مثلا برای کالای 01200 به صورت زیر خواهد بود
DECLARE @SumRecive decimal(18,8) , @SumDeraft Decimal(18,8)
SELECT @SumRecive=IsNull(GoodsValue,0) FROM TstockDetail WHERE GoodsCode='01200' AND Parent IN (SELECT Serial FROM TStockMaster WHERE ListType=0)
SELECT @SumDraft=IsNull(GoodsValue,0) FROM TstockDetail WHERE GoodsCode='01200' AND Parent IN (SELECT Serial FROM TStockMaster WHERE ListType=1)
SELECT IsNull(@SumRecive,0) - IsNull(@SumDraft,0) AS RemainValue


موارد بیشمار دیگری هست که بعد از پیاده سازی این مرحله که هسته اصلی می باشد توضیح میدهم
مانند سال مالی ، ایجاد کننده سند ، مورد مصرف کالا (مرکزهزینه) ، مورد کاربرد کالا (پروژه )
درخواست ورود و خروج کالا
صدور سند افتتاحیه
انبارگردانی و تگ گذاری کالاها
مرور کالاها
قیمت گذاری کالاها
شماره فنی و مشخصات فنی کالاها
بارکد و متعلقات
تخصیص کالاهابه انبارها
آلارمهای نقطه سفارش کالاها
مقدار دوم و سوم در رسید و حواله و تبدیل واحدها
فرمول ساخت کالاها
کالاهای جایگزین
و ....


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