Пример #1
0
 public static bool Them(clsHoaDon_DTO hoaDon)
 {
     using (SqlConnection conn = XuLyDuLieu.MoKetNoi)
     {
         string     query = "Insert into HoaDon(MaHD,MaNV,MaKH,NgayKhoiTao,MaKhuyenMai,GiamTru,GhiChu,ThanhTien) values (@MaHD,@MaNV,@MaKH,@NgayKhoiTao,@MaKhuyenMai,@GiamTru,@GhiChu,@ThanhTien) ";
         SqlCommand cmd   = new SqlCommand(query, conn);
         cmd.Parameters.Add("@MaHD", SqlDbType.Char).Value            = hoaDon.MaHD;
         cmd.Parameters.Add("@MaNV", SqlDbType.Char).Value            = hoaDon.MaNV;
         cmd.Parameters.Add("@MaKH", SqlDbType.Char).Value            = hoaDon.KhachHang.MaKH;
         cmd.Parameters.Add("@NgayKhoiTao", SqlDbType.DateTime).Value = hoaDon.NgayKhoiTao;
         cmd.Parameters.Add("@MaKhuyenMai", SqlDbType.Int).Value      = hoaDon.KhuyenMai.MaKhuyenMai;
         cmd.Parameters.Add("@GiamTru", SqlDbType.Money).Value        = hoaDon.GiamTru;
         cmd.Parameters.Add("@GhiChu", SqlDbType.NVarChar).Value      = hoaDon.GhiChu;
         cmd.Parameters.Add("@ThanhTien", SqlDbType.Money).Value      = hoaDon.ThanhTien;
         cmd.CommandType = CommandType.Text;
         try
         {
             return(cmd.ExecuteNonQuery() >= 1);
         }
         catch (SqlException e)
         {
             throw e;
         }
     }
 }
Пример #2
0
 public frmInHDBanHang(DataTable dt, clsHoaDon_DTO hd, clsKhuyenMai_DTO km, string tongTien)
 {
     dtSanPham      = dt.Copy();
     hoaDon         = hd;
     khuyenMai      = km;
     tongTien       = tongTien.Trim(',');
     this.thanhTien = Helper.ChuyenSo(new string((from c in tongTien
                                                  where char.IsWhiteSpace(c) || char.IsLetterOrDigit(c)
                                                  select c).ToArray()));
     this.thanhTien = new CultureInfo("vn-VN").TextInfo.ToTitleCase(this.thanhTien) + ".";
     CapNhatLaiTenSP();
     InitializeComponent();
 }
Пример #3
0
 public static bool Them(clsHoaDon_DTO hoaDon)
 {
     return(clsHoaDon_DAO.Them(hoaDon));
 }
Пример #4
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.");
            }
        }