View Full Version : سوال: کسر از انبار بعد از صدور فاکتور
Masoudse7en
چهارشنبه 11 تیر 1393, 01:15 صبح
سلام وقتی توسط بارکد کالا در یک گرید جستجو و بعد از به گرید دوم یعنی بخش فاکتور منتقل میشود میشه ! چطور میشه بعد از ثبت فاکتور تعداد محصولات فاکتور از محصولا انبار کسر بشه !
علی فتحی
چهارشنبه 11 تیر 1393, 02:53 صبح
سلام و خسته نباشید.بنظرم جدول انبار با فاکتور باید جدا باشه . و هنگام ثبت فاکتور همزمان عملیات ورود و خروج کالا هم درج بشه در انبار.چون خودم هم درگیر سوال شما بودم ولی همه نظرشون این بوده
khokhan
چهارشنبه 11 تیر 1393, 03:05 صبح
سلام وقتی توسط بارکد کالا در یک گرید جستجو و بعد از به گرید دوم یعنی بخش فاکتور منتقل میشود میشه ! چطور میشه بعد از ثبت فاکتور تعداد محصولات فاکتور از محصولا انبار کسر بشه !
فرض کن جنسی که فروختی تعدادش 2 تا بوده :
string sql = null;
int ID = int.Parse(dataGridView1.CurrentRow.Cells[0].Value.ToString());
sql = "update Factor set Goods = Goods - 2 where id = ID";
con.Execute sql;
Masoudse7en
چهارشنبه 11 تیر 1393, 12:09 عصر
میشه بیشتر راهنمایی کنید !
گرید اول دارای اطلاعات
نام کالا
قیمت
تعداد موجود
وقتی بارکد خوان جستجو میکنه در گرید یک اطلاعات یافت شده را به گرید دوم منتقل میکنه ! در گرید دوم تعداد کالا مشخص میشه و جمع کل محاسبه میشه.
میخوام بعد از ثبت نهایی تعداد محصولات هر سطر که شامل یک محصول + تعداد میشه از از موجودی کسر بشه ! و ذخیره بشه.
Masoudse7en
چهارشنبه 11 تیر 1393, 12:20 عصر
//int pid = int.Parse(radGridView2.CurrentRow.Cells[3].Value.ToString());
//int id = int.Parse(radGridView1.CurrentRow.Cells[1].Value.ToString());
//radGridView2.CurrentRow.Cells[4].Value = ((pid) - (id));
//if (CIID != 0)
//{
// var update = (from u in con.Product where u.IDProduct == CIID select u).First();
// update.Tedad = int.Parse(radGridView2.CurrentRow.Cells[4].Value.ToString());
// con.SaveChanges();
//}
کد بالا رو نوشتم ولی فقط رکورد اولو کسر میکنه ! دقیق نمیدونم باید چیکار کنم
khokhan
چهارشنبه 11 تیر 1393, 15:11 عصر
//int pid = int.Parse(radGridView2.CurrentRow.Cells[3].Value.ToString());
//int id = int.Parse(radGridView1.CurrentRow.Cells[1].Value.ToString());
//radGridView2.CurrentRow.Cells[4].Value = ((pid) - (id));
//if (CIID != 0)
//{
// var update = (from u in con.Product where u.IDProduct == CIID select u).First();
// update.Tedad = int.Parse(radGridView2.CurrentRow.Cells[4].Value.ToString());
// con.SaveChanges();
//}
کد بالا رو نوشتم ولی فقط رکورد اولو کسر میکنه ! دقیق نمیدونم باید چیکار کنم
کد رو بگذار داخل یه حلقه تا همه ردیفهای گرید رو دونه به دونه پیمایش کنه و تغییر لازم رو در جدول ویرایش مته
Masoudse7en
چهارشنبه 11 تیر 1393, 17:44 عصر
یعنی forech بزنه !
ولی به یه چیز دقت کنید !
"وقتی بارکد خوان جستجو میکنه در گرید یک اطلاعات یافت شده را به گرید دوم منتقل میکنه ! در گرید دوم تعداد کالا مشخص میشه و جمع کل محاسبه میشه."
وقتی این کار انجام میشه فقط رکورد اولو کم میکنه !
Masoudse7en
جمعه 13 تیر 1393, 11:25 صبح
مشکل این کد چیه !
که قتی 1 کالا از تعداد موجودش یعنی 10 کم میکنه !
-9 ذخیره میکنه
if (CIID != 0)
{
foreach (var row in radGridView1.Rows)
{
int id = int.Parse(row.Cells[4].Value.ToString());
var id2 = (from u in con.Product where u.IDProduct == id select u.Tedad).First();
var update = (from u in con.Product where u.IDProduct == id select u).First();
int id4 = int.Parse(row.Cells[1].Value.ToString());
update.Tedad = (id4) - (id2);
con.SaveChanges();
}
Masoudse7en
جمعه 13 تیر 1393, 12:38 عصر
کسی نمیدونه کجای کدم اشتباست ؟
khokhan
جمعه 13 تیر 1393, 17:37 عصر
کسی نمیدونه کجای کدم اشتباست ؟
کدهای خودتونو با این کدها ست کنین و امتحان کنین :
object value1 = dataGridView1[4, 0].Value;
object value2 = dataGridView1[5, 0].Value;
int val1, val2;
if (int.TryParse(value1.ToString(), out val1) && int.TryParse(value2.ToString(), out val2))
{
dataGridView1[8, 0].Value = val1 - val2;
}
else
{
MessageBox.Show("مقادیر وارد شده درست نمی باشند");
}
mc_laren
جمعه 13 تیر 1393, 18:46 عصر
این اشتباه رو هیچوقت تو برنامه ها تون مرتکب نشین (تخصیص یک فیلد در جدول برای محاسبه مانده، موجودی و ...)
سعی کنید، این محاسبات رو همیشه به لحظه و موقعی که می خواهید اطلاعات جدول رو بخونین بدست بیارین.
مثلا، برای محاسبه مانده کالا، طرف حساب، حساب های بانکی و ... برای هر کدام یک جدول مشابه معین طرف حساب درست کنید، که برای محاسبه مانده حساب ، طرف حساب در اون جدول بستانکاری و بدهکاری ذخیره بشه، و برای محاسبه مانده حساب بانکی درون جدول معینش برداشت و واریز به حساب رو ذخیره و برای محاسبه مانده کالا هم درون جدولش ورود و خروج کالا رو ذخیره کنید، اگه طبق این سیستم برنامتون رو طراحی کنید، موقع اصلاح هات فاکتور و .... به مشکل بر نمی خورین.
با آرزوی موفقیت
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.