Example #1
0
 public static bool Them(clsChiTietHD_DTO CTHD)
 {
     using (SqlConnection conn = XuLyDuLieu.MoKetNoi)
     {
         string     query = "Insert into ChiTietHoaDon(MaCTHD,MaHD,MaCTSP,GiamTru,SoLuong,MaKhuyenMai,TongTien) values (@MaCTHD,@MaHD,@MaCTSP,@GiamTru,@SoLuong,@MaKhuyenMai,@TongTien)";
         SqlCommand cmd   = new SqlCommand(query, conn);
         cmd.Parameters.Add("@MaCTHD", SqlDbType.Char).Value     = CTHD.MaCTHD;
         cmd.Parameters.Add("@MaHD", SqlDbType.Char).Value       = CTHD.HoaDon.MaHD;
         cmd.Parameters.Add("@MaCTSP", SqlDbType.Char).Value     = CTHD.MaCTSP;
         cmd.Parameters.Add("@GiamTru", SqlDbType.Money).Value   = CTHD.GiamTru;
         cmd.Parameters.Add("@SoLuong", SqlDbType.Int).Value     = CTHD.SoLuong;
         cmd.Parameters.Add("@MaKhuyenMai", SqlDbType.Int).Value = CTHD.KhuyenMai.MaKhuyenMai;
         cmd.Parameters.Add("@TongTien", SqlDbType.Money).Value  = CTHD.TongTien;
         cmd.CommandType = CommandType.Text;
         try
         {
             return(cmd.ExecuteNonQuery() >= 1);
         }
         catch (SqlException e)
         {
             throw e;
         }
     }
 }
 public static bool Them(clsChiTietHD_DTO CTHD)
 {
     return(clsChiTietHD_DAO.Them(CTHD));
 }
        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.");
            }
        }