/// <summary> /// บันทึกการแก้ไข โดยไล่ Disable ตัวเดิมทิ้งให้หมด แล้ว add ใหม่ /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button6_Click(object sender, EventArgs e) { DialogResult dr = MessageBox.Show("คุณต้องการบันทึกข้อมูล ใช่หรือไม่ ?", "คำเตือนจากระบบ", MessageBoxButtons.YesNo); switch (dr) { case DialogResult.Yes: using (SSLsEntities db = new SSLsEntities()) { var order = db.SaleOrderWarehouse.SingleOrDefault(w => w.Code == code); foreach (var item in order.SaleOrderWarehouseDtl.Where(w => w.Enable == true).ToList()) { item.UpdateDate = DateTime.Now; item.UpdateBy = SingletonAuthen.Instance().Id; item.Enable = false; db.Entry(item).State = EntityState.Modified; } List <SaleOrderWarehouseDtl> details = new List <SaleOrderWarehouseDtl>(); SaleOrderWarehouseDtl detail; decimal discountList = 0; for (int i = 0; i < dataGridView1.Rows.Count; i++) { detail = new SaleOrderWarehouseDtl(); detail.FKSaleOrderWarehouse = order.Id; detail.Enable = true; detail.Description = dataGridView1.Rows[i].Cells[colRemark].Value.ToString(); detail.CreateDate = DateTime.Now; detail.CreateBy = SingletonAuthen.Instance().Id; detail.UpdateDate = DateTime.Now; detail.UpdateBy = SingletonAuthen.Instance().Id; detail.FKProductDtl = int.Parse(dataGridView1.Rows[i].Cells[colId].Value.ToString()); detail.Qty = decimal.Parse(dataGridView1.Rows[i].Cells[colQty].Value.ToString()); // จำนวนหน่วย detail.PricePerUnit = decimal.Parse(dataGridView1.Rows[i].Cells[colPricePerUnit].Value.ToString()); // จำนวนหน่วย detail.BathDiscount = decimal.Parse(dataGridView1.Rows[i].Cells[colDiscount].Value.ToString()); // จำนวนเงินส่วนลด detail.TotalPrice = decimal.Parse(dataGridView1.Rows[i].Cells[colTotalPrice].Value.ToString()); // จำนวนเงิน หลังหักส่วนลด details.Add(detail); discountList += decimal.Parse(dataGridView1.Rows[i].Cells[colDiscount].Value.ToString()); if (i >= dataGridView1.Rows.Count - 2) { break; } } db.SaleOrderWarehouseDtl.AddRange(details); order.TotalDiscountInList = discountList; // วนใน ลิส order.TotalBalance = decimal.Parse(textBoxTotalBalance.Text); order.UpdateDate = DateTime.Now; order.UpdateBy = SingletonAuthen.Instance().Id; db.Entry(order).State = EntityState.Modified; db.SaveChanges(); saleOrderWarehouseListForm.LoadGrid(); this.Dispose(); } break; case DialogResult.No: break; } }