Ejemplo n.º 1
0
        private void ThemMon(object sender, EventArgs e)
        {
            ListView lsv = LayMenuMon();

            if (radMenuMon.Checked)
            {
                if (lsv.SelectedItems.Count == 1)
                {
                    MonDTO mon = (MonDTO)lsv.SelectedItems[0].Tag;

                    DataGridViewRow rowMon = new DataGridViewRow();
                    rowMon.DefaultCellStyle.BackColor = Color.AliceBlue;
                    rowMon.DefaultCellStyle.Font      = new Font("Arial", 11.25F, FontStyle.Bold);
                    rowMon.Height = 50;
                    rowMon.Tag    = mon;
                    rowMon.Cells.Add(new DataGridViewTextBoxCell {
                        Value = mon.TenMon
                    });
                    rowMon.Cells.Add(new DataGridViewTextBoxCell {
                        Value = 1
                    });
                    rowMon.Cells.Add(new DataGridViewTextBoxCell {
                        Value = mon.GiaTien.ToString("#,###đ")
                    });

                    if (MonBUS.KiemTraMonLaNuocUong(mon.LoaiMon))
                    {
                        rowMon.Cells.Add(new DataGridViewTextBoxCell {
                            Value = "Đá: 50%\nĐường: 50%"
                        });
                    }

                    // Thêm món vào hoá đơn nếu hoá đơn chưa có món nào
                    if (dgvHoaDon.Rows.Count == 0)
                    {
                        dgvHoaDon.Rows.Add(rowMon);
                        TinhThanhTien();
                        lblThanhTien.Text      = TinhThanhTien().ToString("#,##0đ");
                        btnThanhToan.Enabled   = true;
                        btnThanhToan.BackColor = Color.LimeGreen;
                        return;
                    }

                    //// Duyệt qua toàn bộ danh sách hoá đơn
                    //foreach (DataGridViewRow rowHD in dgvHoaDon.Rows)
                    //{
                    //    if (rowHD.Tag.GetType() == typeof(MonDTO))
                    //    {
                    //        // Tăng số lương món trong hoá đơn nếu hoá đơn đã có món đó
                    //        if (((MonDTO)rowHD.Tag).MaMon == mon.MaMon)
                    //        {
                    //            int soLuong = Convert.ToInt32(rowHD.Cells["colSoLuong"].Value);
                    //            rowHD.Cells["colSoLuong"].Value = soLuong + 1;
                    //            TinhThanhTien();
                    //            return;
                    //        }
                    //    }
                    //}

                    //// Thêm món vào hoá đơn nếu hoá đơn chưa có món đó
                    //dgvHoaDon.Rows.Add(rowMon);
                    //lblThanhTien.Text = TinhThanhTien().ToString("#,##0đ");\

                    bool added = false;

                    // Duyệt qua toàn bộ danh sách hoá đơn
                    for (int i = 0; i < dgvHoaDon.Rows.Count; i++)
                    {
                        DataGridViewRow rowHD = dgvHoaDon.Rows[i];
                        if (rowHD.Tag.GetType() == typeof(MonDTO))
                        {
                            // Kiểm tra dòng i có trùng món đang thêm không
                            if (((MonDTO)rowHD.Tag).MaMon == mon.MaMon)
                            {
                                // Kiểm tra dòng tiếp theo có hay không
                                if (i + 1 == dgvHoaDon.Rows.Count)
                                {
                                    int soLuong = Convert.ToInt32(rowHD.Cells["colSoLuong"].Value);
                                    rowHD.Cells["colSoLuong"].Value = soLuong + 1;
                                    TinhThanhTien();
                                    dgvHoaDon.CurrentCell = rowHD.Cells[0];
                                    return;
                                }
                                else
                                {
                                    // Nếu dòng i có topping thì kiểm tra tiếp
                                    if (dgvHoaDon.Rows[i + 1].Tag.GetType() == typeof(ToppingDTO))
                                    {
                                        continue;
                                    }
                                    // Nếu dòng i không có topping thì tăng số lượng
                                    else
                                    {
                                        int soLuong = Convert.ToInt32(rowHD.Cells["colSoLuong"].Value);
                                        rowHD.Cells["colSoLuong"].Value = soLuong + 1;
                                        TinhThanhTien();
                                        dgvHoaDon.CurrentCell = rowHD.Cells[0];
                                        added = true;
                                        break;
                                    }
                                }
                            }
                        }
                    }

                    // Thêm món vào hoá đơn nếu không có thao tác nào trong câu lệnh trên
                    if (!added)
                    {
                        dgvHoaDon.Rows.Add(rowMon);
                        dgvHoaDon.CurrentCell = rowMon.Cells[0];
                        lblThanhTien.Text     = TinhThanhTien().ToString("#,##0đ");
                    }
                }
            }
        }