اذهب إلى المحتوى

ايمن ميلاد

الأعضاء
  • المساهمات

    431
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    1

آخر يوم ربح فيه ايمن ميلاد هو مارس 31 2024

ايمن ميلاد حاصل على أكثر محتوى إعجابًا!

1 متابع

آخر الزوار

لوحة آخر الزوار معطلة ولن تظهر للأعضاء

إنجازات ايمن ميلاد

عضو نشيط

عضو نشيط (3/3)

241

السمعة بالموقع

1

إجابات الأسئلة

  1. ممكن توضيح اكثر من حيث تعديل علي جدول مخزن
  2. في كل عمليات إدخال تكون هكدا بالنسبة لتوليد رقم فاتورة
  3. السلام عليكم استفسار بخصوص حفظ فاتورة في حالة يعمل علي نظام أكثر من شخص بحيث يتم اصدار فاتورة أكثر من شخص في وقت واحد اعتماد رصيد صنف علي حركة صنف وليس تحديث مخزن بعد كل عملية بيع او تعديل فاتورة او فاتورة ترجيع هل كود صحيح بالنسبة للنظام يعمل عليه اكثر من شخص 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); } }
  4. السلام عليكم قمت بتثبيت لوحة تحكم adminlte عن طريق terminal لكن اتجاه من يسار لليمين كيف اغير اتجاه الي يمين
  5. السلام عليكم ورحمة الله وبركاته لدي ورقة بطول وعرض معين بها حقول وكل حقل أمامه فراغ انا عملت كود حفظ وعملت تقرير بي كريستال ريبورت لكن كيف اجعل حقل يعرض بالضبط امام فراغ ممكن مساعدة او توضيح اخواني
  6. تم حل مشكلة وهيا انشاء اجراء مخزن وتمرير له رقم فاتورة 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
  7. لم تحل المشكلة بعد اخي ياسر
  8. ممكن حل مشكلة من جديد اخواني كرام لزال يوجد تكرار في بيانات 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. ماهي مشكله اخي مصطفى
  10. لزالت نفس مشكلة اخي مصطفي ممكن تحل مشكلة لي عن طريق anydisk
  11. 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
  12. لزالت نفس المشكلة
×
×
  • أضف...