Ejemplo n.º 1
0
        private void btnXacNhan_Click(object sender, EventArgs e)
        {
            if (khachHang == null)
            {
                // Khách hàng mới
                khachHang = new clsKhachHang_DTO(txtTenKH.Text, txtSDT.Text, Helper.GetTimestamp(DateTime.Now));
                clsKhachHang_BUS.Them(khachHang);
            }

            hoaDonHienTai = new clsHoaDon_DTO(
                Helper.GetTimestamp(DateTime.Now),
                Validation.LayMaNhanVien(),
                string.IsNullOrWhiteSpace(txtGhiChu.Text) ? "Không" : txtGhiChu.Text,
                double.Parse(lblGiamTru.Text),
                double.Parse(lblThanhTien.Text),
                khachHang,
                khuyenMai);

            if (clsHoaDon_BUS.Them(hoaDonHienTai))
            {
                // Chi tiet hoa don
                foreach (DataRow row in dtSanPham.Rows)
                {
                    clsKhuyenMai_DTO km = new clsKhuyenMai_DTO
                                          (
                        row["TenKhuyenMai"].ToString(),
                        row["GiamTru"].ToString(),
                        false, null, null, 1, int.Parse(row["MaKhuyenMai"].ToString())
                                          );

                    clsChiTietHD_DTO cthd = new clsChiTietHD_DTO
                                            (
                        Helper.GetTimestamp(DateTime.Now),
                        row["MaCTSP"].ToString(),
                        double.Parse(row["GiamTru"].ToString()),
                        double.Parse(row["TongTien"].ToString()),
                        int.Parse(row["SoLuong"].ToString()),
                        km,
                        hoaDonHienTai
                                            );

                    if (!clsChiTietHD_BUS.Them(cthd))
                    {
                        MessageBox.Show("Đã xảy ra lỗi khi tạo chi tiết hóa đơn, vui lòng thử lại hoặc liên hệ Admin để xử lý.");
                        // TODO: Xóa hóa đơn đã tạo ở trên

                        return;
                    }
                    else
                    {
                        // TODO: Giam so luong ton kho trong database
                        if (!clsChiTietSanPham_BUS.CapNhatSoLuong(cthd.MaCTSP, cthd.SoLuong))
                        {
                            MessageBox.Show("Đã xảy ra lỗi khi cập nhật số lượng, vui lòng thử lại hoặc liên hệ Admin để xử lý.");
                            return;
                        }
                    }

                    int milliseconds = 100;
                    Thread.Sleep(milliseconds);
                }

                DialogResult result = MessageBox.Show("Tạo hóa đơn thành công, bạn có muốn In ngay bây giờ?", "Thông báo", MessageBoxButtons.OKCancel);
                if (result == DialogResult.OK)
                {
                    In();
                }
                btnIn.Enabled = true;
                XacNhanHoaDon(false);
            }
            else
            {
                MessageBox.Show("Thêm hóa đơn thất bại.");
            }
        }