PDA

View Full Version : سوال: کاهش تعداد از یک فیلد در دیتابیس و چک کردن ان



hamid_0341
شنبه 26 مرداد 1392, 10:10 صبح
باسلام
من یک انبار دارم فرض کنید کالای لامپ با کد کالای x با شماره فاکتور 1231 5 عدد توی انبار داره و همین کالا باشماره فاکتور 1342 3 تا توی انبار دارم یعنی 8 عدد در انبار موجود است ولی شماره فاکتور های اونها متفاوت است من میخوام توی فروش کالا اول از کالا با شماره 1231(مثال) فروخته بشه و وقتی این فاکتور تعداد موجود در انبارش 0 شد بره سراغ فاکتور بعدی که همین کالا توش هست و بعدی از اون کم بشه تعداد فروخته شده . و وقتی که تمام فیلد ها 0 شدن و دیگه از این کالا توی انبار چیزی نبود به یک فرم دیگه بره . که مازاد فروش است :لبخند:
یکمی گیج شدم
ممنون میشم اگه راهنمایی کنید :قلب::قلب:

setareh masompoor
شنبه 26 مرداد 1392, 10:28 صبح
خب اول بیا یه گزارش بگیر که همه کالاهای با کد x رو بیاره بعد بر اساس شماره فاکتور مرتب کن توی یه دیتا تیبل یا دیتا ست بریز
مرحله بعدی بیا اولین رکورد گزارشتو بررسی کن اگه فیلد تعدادش بیشتر از 0 بود عملیات کم کردن رو این رکورد انجام بشه در غیر اینصورت رکورد بعدی رو بررسی کن
اگه تمام رکودهای دیتا تیبلت رو بررسی کردی و به نتیجه نرسیدی بقیه دستورات دلخواهیت که رفتن به فرم بعدی و ... بود انجام بده

امیدوارم توضیحم اونی باشه که انتظارشو داشتی و کمکت کنه

hamid_0341
شنبه 26 مرداد 1392, 10:38 صبح
ممنون ولی من کل برنامه رو با linq نوشتم اگه میشه با linq توضیح بدید !

amir200h
شنبه 26 مرداد 1392, 10:39 صبح
خب اول بیا یه گزارش بگیر که همه کالاهای با کد x رو بیاره بعد بر اساس شماره فاکتور مرتب کن توی یه دیتا تیبل یا دیتا ست بریز
مرحله بعدی بیا اولین رکورد گزارشتو بررسی کن اگه فیلد تعدادش بیشتر از 0 بود عملیات کم کردن رو این رکورد انجام بشه در غیر اینصورت رکورد بعدی رو بررسی کن
اگه تمام رکودهای دیتا تیبلت رو بررسی کردی و به نتیجه نرسیدی بقیه دستورات دلخواهیت که رفتن به فرم بعدی و ... بود انجام بده

امیدوارم توضیحم اونی باشه که انتظارشو داشتی و کمکت کنه

روش شما کاملا درسته و اولین راهی که به ذهن میرسه همینه. ولی یه نکته.
فرض کنین تو فاکتور اول 3 تا کالا باقی مانده و بقیه تو فاکتورهای بعدی هستند
حالا یه مشتری میاد و از این کالا 10 عدد میخواد. حالا باید چیکار کرد؟
شما اول باید بیای کل موجودی رو بگیر بعد طبق ی فرایندی که ی حورده پیچیده س میای باقی مانده فاکتور اول رو از کل کم میکنی و مقدارو صفر میکنی بعد بقیه رو از فاکتور بعدی و ...

hamid_0341
شنبه 26 مرداد 1392, 10:40 صبح
یکم بیشتر توضیح میدی ؟

hamid_0341
شنبه 26 مرداد 1392, 10:46 صبح
کل مقدار رو باهم جمع میکنم بعد اگه از فاکتور اولی کم تر بود که از همون کم میشه و بقیه تو فاکتور اولی میمونه و اگه بیشتر بود از کل تعداد تعداد فاکتور اول کم میشه و اون فاکتور صفر میشه و میره سراغ بعدی :|
خیلی سخت شد :افسرده:

amir200h
شنبه 26 مرداد 1392, 10:55 صبح
کل مقدار رو باهم جمع میکنم بعد اگه از فاکتور اولی کم تر بود که از همون کم میشه و بقیه تو فاکتور اولی میمونه و اگه بیشتر بود از کل تعداد تعداد فاکتور اول کم میشه و اون فاکتور صفر میشه و میره سراغ بعدی :|
خیلی سخت شد :افسرده:

اینی که شما گفتی که مثه آب خوردنه پیاده سازیش.
حالا شما فرض بگیر تاریخ انقضا هم ملاک بشه. پس باید کالاهایی زودتر بفروش بره که تاریخ تولیدشون از همه قدیمی تر باشه.
البته اکثر برنامه ها تاریخ فاکتور خرید رو ملاک قرار میدن که اصلا حرفه ای نیست.
بهتره همه ی جوانبو در نظر بگیری و بعد شروع کنی پیاده سازی کردن

hamid_0341
شنبه 26 مرداد 1392, 11:15 صبح
اینی که شما گفتی که مثه آب خوردنه پیاده سازیش.
حالا شما فرض بگیر تاریخ انقضا هم ملاک بشه. پس باید کالاهایی زودتر بفروش بره که تاریخ تولیدشون از همه قدیمی تر باشه.
البته اکثر برنامه ها تاریخ فاکتور خرید رو ملاک قرار میدن که اصلا حرفه ای نیست.
بهتره همه ی جوانبو در نظر بگیری و بعد شروع کنی پیاده سازی کردن
کالای برقی که تاریخ انقضا نداره من بزارم:لبخند:

amir200h
شنبه 26 مرداد 1392, 12:52 عصر
کالای برقی که تاریخ انقضا نداره من بزارم:لبخند:

پس تا حالا لامپ کم مصرف نخریدی :لبخند:

setareh masompoor
شنبه 26 مرداد 1392, 13:18 عصر
روش شما کاملا درسته و اولین راهی که به ذهن میرسه همینه. ولی یه نکته.
فرض کنین تو فاکتور اول 3 تا کالا باقی مانده و بقیه تو فاکتورهای بعدی هستند
حالا یه مشتری میاد و از این کالا 10 عدد میخواد. حالا باید چیکار کرد؟
شما اول باید بیای کل موجودی رو بگیر بعد طبق ی فرایندی که ی حورده پیچیده س میای باقی مانده فاکتور اول رو از کل کم میکنی و مقدارو صفر میکنی بعد بقیه رو از فاکتور بعدی و ...

آره حق با شما بود من حواسم نبود به این قضییه
مرسی از نکته سنجیتون

hamid_0341
یک شنبه 27 مرداد 1392, 08:31 صبح
اقا من تا اینجاشو رفتم الان داره درست کار میکنه مشکل اینجاست
نمیفهمم دیگه الان چجوری چک کنم که اگه از 0 کمتر فروش خرد یعنی منفی بود به یک فرم دیگه بره که مازاد فروشه ؟
Linq.DataClasses1DataContext db = new Linq.DataClasses1DataContext();
var query = from qry in db.Anbar_tbls
where qry.Kind.ToString() == textBox1.Text
select qry;
int y1 = Convert.ToInt32(textBox2.Text);
foreach (var item in query)
{


if (y1 > Convert.ToInt32(item.Ted1))
{
y1 = y1 - Convert.ToInt32(item.Ted1)
item.Ted1 = 0;
db.SubmitChanges();

}
else
{

int u = Convert.ToInt32(item.Ted1) - y1;
item.Ted1 = u;
db.SubmitChanges();
break;
}