-
المساهمات
431 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
1
آخر يوم ربح فيه ايمن ميلاد هو مارس 31 2024
ايمن ميلاد حاصل على أكثر محتوى إعجابًا!
آخر الزوار
لوحة آخر الزوار معطلة ولن تظهر للأعضاء
إنجازات ايمن ميلاد
-
ممكن توضيح اكثر من حيث تعديل علي جدول مخزن
-
في كل عمليات إدخال تكون هكدا بالنسبة لتوليد رقم فاتورة
-
السلام عليكم استفسار بخصوص حفظ فاتورة في حالة يعمل علي نظام أكثر من شخص بحيث يتم اصدار فاتورة أكثر من شخص في وقت واحد اعتماد رصيد صنف علي حركة صنف وليس تحديث مخزن بعد كل عملية بيع او تعديل فاتورة او فاتورة ترجيع هل كود صحيح بالنسبة للنظام يعمل عليه اكثر من شخص if (comboBox1.SelectedIndex == -1) { MessageBox.Show("الرجاء إدخال اسم زبون", "تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (dataGridView4.Rows.Count == 0) { MessageBox.Show("الرجاء إدخال أصناف في الفاتورة", "تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } string sql = ""; SqlDataAdapter adp; DataTable dt; SqlCommand sqlcmd; SqlCommandBuilder commandBuilder; if (Class1.sqlCon.State != ConnectionState.Open) { Class1.sqlCon.Open(); } SqlTransaction trans = Class1.sqlCon.BeginTransaction(); try { sql = "select *from Invoices "; sqlcmd = new SqlCommand(sql, Class1.sqlCon); sqlcmd.Transaction = trans; adp = new SqlDataAdapter(sqlcmd); dt = new DataTable(); adp.Fill(dt); DataRow dr = dt.NewRow(); dr["invoice_number"] = textBox1.Text; dr["invoice_date"] = dateTimePicker1.Value; dr["customer_name"] = comboBox1.Text; decimal total = 0; for (int i = 0; i <= dataGridView4.Rows.Count - 1; i++) { total += Convert.ToDecimal(dataGridView4.Rows[i].Cells[3].Value); } textBox2.Text = total.ToString("N2"); label9.Text = Class1.NumberToWords(Convert.ToDouble(textBox2.Text), "دينار ", "درهم"); dr["total_amount"] = textBox2.Text; dr["total_ar"] = label9.Text; dt.Rows.Add(dr); commandBuilder = new SqlCommandBuilder(adp); adp.Update(dt); //حركة زبون string des = " مبيعات "; Class1.OPER_CUSTOMERS(textBox1.Text, DateTime.Today, des, total, 0, comboBox1.Text, trans, label10.Text); /////حفظ تفاصيل فاتورة المبيعات sql = "select *from InvoiceDetails "; sqlcmd = new SqlCommand(sql, Class1.sqlCon); sqlcmd.Transaction = trans; adp = new SqlDataAdapter(sqlcmd); dt = new DataTable(); adp.Fill(dt); for (int i = 0; i <= dataGridView4.Rows.Count - 1; i++) { dr = dt.NewRow(); dr["invoice_number"] = textBox1.Text; dr["item_name"] = dataGridView4.Rows[i].Cells[0].Value; dr["item_id"] = dataGridView4.Rows[i].Cells[5].Value; // نفترض أن العمود السادس يحتوي على item_id dr["inv_date"] = dateTimePicker1.Value; dr["quantity"] = dataGridView4.Rows[i].Cells[1].Value; dr["unit_price"] = dataGridView4.Rows[i].Cells[2].Value; dr["total_price"] = textBox2.Text; dr["store_number"] = dataGridView4.Rows[i].Cells[4].Value; dt.Rows.Add(dr); commandBuilder = new SqlCommandBuilder(adp); adp.Update(dt); } for (int i = 0; i <= dataGridView4.Rows.Count - 1; i++) { int item_id = Convert.ToInt32(dataGridView4.Rows[i].Cells[5].Value); int quantitySold = Convert.ToInt32(dataGridView4.Rows[i].Cells[1].Value); DateTime movementDate = dateTimePicker1.Value; string dayName = movementDate.ToString("dddd", new CultureInfo("ar-LY")); // اسم اليوم بالعربية string invoiceNumber = textBox1.Text; string updateInventorySql = "UPDATE inventory SET quantity = quantity - @qty WHERE item_id = @item_id"; SqlCommand updateCmd = new SqlCommand(updateInventorySql, Class1.sqlCon, trans); updateCmd.Parameters.Add("@qty", quantitySold).Value = quantitySold; updateCmd.Parameters.Add("@item_id", item_id).Value = item_id; updateCmd.ExecuteNonQuery(); /// تسجيل حركة صنف يوميه string type = "مبيعات"; string insertMovementSql = @"INSERT INTO ItemDailyMovement (item_id, movement_date, day_name, quantity_sold, invoice_number,item_name,name_cus,type,invotry_num) VALUES (@item_id, @date, @day, @qty, @inv,@item_name,@name_cus,@type,@invotry_num)"; SqlCommand movementCmd = new SqlCommand(insertMovementSql, Class1.sqlCon, trans); movementCmd.Parameters.Add("@item_id", item_id).Value = item_id; movementCmd.Parameters.Add("@date", movementDate).Value = movementDate; movementCmd.Parameters.Add("@day", dayName).Value = dayName; movementCmd.Parameters.Add("@qty", quantitySold).Value = quantitySold; movementCmd.Parameters.Add("@inv", invoiceNumber).Value = invoiceNumber; movementCmd.Parameters.Add("@item_name", dataGridView4.Rows[i].Cells[0].Value.ToString()).Value = dataGridView4.Rows[i].Cells[0].Value.ToString(); movementCmd.Parameters.Add("@name_cus", comboBox1.Text).Value = comboBox1.Text; movementCmd.Parameters.Add("@type", type).Value = type; movementCmd.Parameters.Add("@invotry_num", dataGridView4.Rows[i].Cells[4].Value.ToString()).Value = dataGridView4.Rows[i].Cells[4].Value.ToString(); movementCmd.ExecuteNonQuery(); } trans.Commit(); MessageBox.Show("تم حفظ الفاتورة وتحديث كمية مخزن بنجاح", "تاكيد", MessageBoxButtons.OK, MessageBoxIcon.Information); fill_dgv3(); fill_dgv2_inv(); dataGridView4.Rows.Clear(); comboBox1.SelectedIndex = -1; textBox2.Clear(); textBox1.Text = "" + (Class1.CODE_GENE("Invoices", "invoice_id") + 1).ToString(""); label9.Text = ""; } catch (Exception ex) { trans.Rollback(); MessageBox.Show("فشل الاتصال بقاعدة البيانات: " + ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
- 3 اجابة
-
- 1
-
-
السلام عليكم قمت بتثبيت لوحة تحكم adminlte عن طريق terminal لكن اتجاه من يسار لليمين كيف اغير اتجاه الي يمين
- 4 اجابة
-
- 2
-
-
السلام عليكم ورحمة الله وبركاته لدي ورقة بطول وعرض معين بها حقول وكل حقل أمامه فراغ انا عملت كود حفظ وعملت تقرير بي كريستال ريبورت لكن كيف اجعل حقل يعرض بالضبط امام فراغ ممكن مساعدة او توضيح اخواني
- 2 اجابة
-
- 1
-
-
تم حل مشكلة وهيا انشاء اجراء مخزن وتمرير له رقم فاتورة CREATE PROCEDURE GetInvoiceDetails @invoice_number int AS BEGIN SET NOCOUNT ON; SELECT i.invoice_number, i.invoice_date, i.customer_name, d.item_name, d.quantity, d.unit_price, d.total_price, i.total_amount, i.total_ar, d.store_number FROM Invoices i INNER JOIN InvoiceDetails d ON i.invoice_number = d.invoice_number WHERE i.invoice_number = @invoice_number; END
-
لم تحل المشكلة بعد اخي ياسر
-
ممكن فيديو لم افهمك
-
ممكن حل مشكلة من جديد اخواني كرام لزال يوجد تكرار في بيانات string selectedInvoiceNumber = dataGridView2.SelectedRows[0].Cells[0].Value.ToString(); string query = @" SELECT i.invoice_number, i.invoice_date, i.customer_name, d.item_name, d.quantity, d.unit_price, i.total_amount, i.total_ar, d.store_number FROM Invoices i INNER JOIN InvoiceDetails d ON i.invoice_number = d.invoice_number WHERE i.invoice_number = @invoice_number "; DataTable dt = new DataTable(); SqlCommand cmd = new SqlCommand(query, Class1.sqlCon); cmd.Parameters.AddWithValue("@invoice_number", selectedInvoiceNumber); SqlDataAdapter adp = new SqlDataAdapter(cmd); adp.Fill(dt); CrystalReport4 cr = new CrystalReport4(); cr.SetDataSource(dt); prev pp = new prev(); pp.crystalReportViewer1.ReportSource = cr; pp.crystalReportViewer1.Refresh(); pp.Show();
- 9 اجابة
-
- 1
-
-
لزالت نفس مشكلة اخي مصطفي ممكن تحل مشكلة لي عن طريق anydisk
-
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace sales { public partial class Form3 : Form { public Form3() { InitializeComponent(); } invoice ff ; private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { if (ff == null || ff.IsDisposed) { ff = new invoice(); } ff.dataGridView4.Rows.Add(label2.Text, textBox1.Text); if (!ff.Visible) { ff.Show(); } else { ff.BringToFront(); } } } private void textBox1_TextChanged(object sender, EventArgs e) { } } } اخي اختار صنف يضفيه ثم عند اضافة صنف جديد يظهر جديد ويختفي قديم يمكن ارسل لكي ip تدخل تحل مشكلة لي عن طريق anydisk
