PDA

View Full Version : سوال: کسر از انبار بعد از صدور فاکتور



Masoudse7en
چهارشنبه 11 تیر 1393, 00:15 صبح
سلام وقتی توسط بارکد کالا در یک گرید جستجو و بعد از به گرید دوم یعنی بخش فاکتور منتقل میشود میشه ! چطور میشه بعد از ثبت فاکتور تعداد محصولات فاکتور از محصولا انبار کسر بشه !

علی فتحی
چهارشنبه 11 تیر 1393, 01:53 صبح
سلام و خسته نباشید.بنظرم جدول انبار با فاکتور باید جدا باشه . و هنگام ثبت فاکتور همزمان عملیات ورود و خروج کالا هم درج بشه در انبار.چون خودم هم درگیر سوال شما بودم ولی همه نظرشون این بوده

khokhan
چهارشنبه 11 تیر 1393, 02: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, 11:09 صبح
میشه بیشتر راهنمایی کنید !

گرید اول دارای اطلاعات

نام کالا

قیمت

تعداد موجود

وقتی بارکد خوان جستجو میکنه در گرید یک اطلاعات یافت شده را به گرید دوم منتقل میکنه ! در گرید دوم تعداد کالا مشخص میشه و جمع کل محاسبه میشه.

میخوام بعد از ثبت نهایی تعداد محصولات هر سطر که شامل یک محصول + تعداد میشه از از موجودی کسر بشه ! و ذخیره بشه.

Masoudse7en
چهارشنبه 11 تیر 1393, 11: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, 14: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, 16:44 عصر
یعنی forech بزنه !

ولی به یه چیز دقت کنید !

"وقتی بارکد خوان جستجو میکنه در گرید یک اطلاعات یافت شده را به گرید دوم منتقل میکنه ! در گرید دوم تعداد کالا مشخص میشه و جمع کل محاسبه میشه."

وقتی این کار انجام میشه فقط رکورد اولو کم میکنه !

Masoudse7en
جمعه 13 تیر 1393, 10: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, 11:38 صبح
کسی نمیدونه کجای کدم اشتباست ؟

khokhan
جمعه 13 تیر 1393, 16: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, 17:46 عصر
این اشتباه رو هیچوقت تو برنامه ها تون مرتکب نشین (تخصیص یک فیلد در جدول برای محاسبه مانده، موجودی و ...)
سعی کنید، این محاسبات رو همیشه به لحظه و موقعی که می خواهید اطلاعات جدول رو بخونین بدست بیارین.
مثلا، برای محاسبه مانده کالا، طرف حساب، حساب های بانکی و ... برای هر کدام یک جدول مشابه معین طرف حساب درست کنید، که برای محاسبه مانده حساب ، طرف حساب در اون جدول بستانکاری و بدهکاری ذخیره بشه، و برای محاسبه مانده حساب بانکی درون جدول معینش برداشت و واریز به حساب رو ذخیره و برای محاسبه مانده کالا هم درون جدولش ورود و خروج کالا رو ذخیره کنید، اگه طبق این سیستم برنامتون رو طراحی کنید، موقع اصلاح هات فاکتور و .... به مشکل بر نمی خورین.
با آرزوی موفقیت