public static List <clsKhuyenMai_DTO> LayKhuyenMaiTheoHD()
        {
            List <clsKhuyenMai_DTO> lstKM = new List <clsKhuyenMai_DTO>();

            using (SqlConnection connection = XuLyDuLieu.MoKetNoi)
            {
                string     query = string.Format("Select * from KhuyenMai where TrangThai = 1 AND ApDungHD = 1");
                SqlCommand cmd   = new SqlCommand(query, connection);
                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        clsKhuyenMai_DTO km = new clsKhuyenMai_DTO();
                        km.MaKhuyenMai  = (int)reader["MaKhuyenMai"];
                        km.TenKhuyenMai = reader["TenKhuyenMai"].ToString();
                        km.MoTa         = reader["MoTa"].ToString();
                        DateTime?ngayTam = null;
                        km.NgayBatDau  = reader["NgayBatDau"] == DBNull.Value ? ngayTam : DateTime.Parse(reader["NgayBatDau"].ToString());
                        km.NgayKetThuc = reader["NgayKetThuc"] == DBNull.Value ? ngayTam : DateTime.Parse(reader["NgayKetThuc"].ToString());
                        km.TrangThai   = (int)reader["TrangThai"];
                        lstKM.Add(km);
                    }
                }
                connection.Close();
            }

            return(lstKM);
        }
Beispiel #2
0
        private void btnSua_Click(object sender, EventArgs e)
        {
            if (!KiemTraTextbox())
            {
                return;
            }
            clsKhuyenMai_DTO khuyenMai;

            if (ckbGioiHanTG.Checked)
            {
                khuyenMai = new clsKhuyenMai_DTO(txtTenCTKM.Text, txtMoTa.Text, rdbApDungHD.Checked, dtpTuNgay.Value, dtpDenNgay.Value, 1, _maKhuyenMai);
            }
            else
            {
                khuyenMai = new clsKhuyenMai_DTO(txtTenCTKM.Text, txtMoTa.Text, rdbApDungHD.Checked, null, null, 1, _maKhuyenMai);
            }



            bool result = clsKhuyenMai_BUS.Sua(khuyenMai);

            if (result)
            {
                LoadKhuyenMai();
                CapNhatKM(khuyenMai.MaKhuyenMai);
                LamMoi();
                MessageBox.Show("Sửa thành công.");
            }
            else
            {
                MessageBox.Show("Sửa thất bại.");
            }
        }
        private void KiemTraKhuyenMai()
        {
            List <clsKhuyenMai_DTO> lstKM = clsKhuyenMai_BUS.LayKhuyenMaiTheoHD();
            DateTime timeNow = DateTime.Now;

            foreach (clsKhuyenMai_DTO km in lstKM)
            {
                if (km.NgayBatDau != null && km.NgayKetThuc != null)
                {
                    DateTime ngayBatDau = km.NgayBatDau ?? DateTime.Now;
                    int      result     = DateTime.Compare(timeNow, ngayBatDau);
                    if (result >= 0)
                    {
                        DateTime ngayKetThuc = km.NgayKetThuc ?? DateTime.Now;
                        result = DateTime.Compare(timeNow, ngayKetThuc);
                        if (result <= 0)
                        {
                            khuyenMai       = km;
                            lblTenCTKM.Text = string.Format("- {0}", km.TenKhuyenMai);
                            lblNgayKM.Text  = string.Format("- Diễn ra từ ngày {0} đến hết ngày {1}", ngayBatDau.ToString("dd/MM/yyyy"), ngayKetThuc.ToString("dd/MM/yyyy"));

                            return;
                        }
                    }
                }
            }

            lblTenCTKM.Text = "Hiện không có chương trình khuyến mại.";
            lblNgayKM.Text  = "";
            khuyenMai       = clsKhuyenMai_BUS.LayKhuyenMai(4); // Mặc định
        }
        public static clsKhuyenMai_DTO LayKhuyenMai(int maKM)
        {
            clsKhuyenMai_DTO km = null;

            using (SqlConnection connection = XuLyDuLieu.MoKetNoi)
            {
                string     query = string.Format("Select * from KhuyenMai where MaKhuyenMai = {0} ", maKM);
                SqlCommand cmd   = new SqlCommand(query, connection);
                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        km              = new clsKhuyenMai_DTO();
                        km.MaKhuyenMai  = maKM;
                        km.TenKhuyenMai = reader["TenKhuyenMai"].ToString();
                        km.MoTa         = reader["MoTa"].ToString();
                        DateTime?ngayTam = null;
                        km.NgayBatDau  = reader["NgayBatDau"] == DBNull.Value ? ngayTam : DateTime.Parse(reader["NgayBatDau"].ToString());
                        km.NgayKetThuc = reader["NgayKetThuc"] == DBNull.Value ? ngayTam : DateTime.Parse(reader["NgayKetThuc"].ToString());
                        km.TrangThai   = (int)reader["TrangThai"];
                    }
                }
                connection.Close();
            }

            return(km);
        }
Beispiel #5
0
        public static bool Them(clsKhuyenMai_DTO khuyenMai)
        {
            int result = clsKhuyenMai_DAO.Them(khuyenMai);

            if (result >= 1)
            {
                khuyenMai.MaKhuyenMai = result;
            }
            return(result >= 1);
        }
Beispiel #6
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();
 }
        public frmMatHang(clsKhuyenMai_DTO km)
        {
            InitializeComponent();

            this.WindowState                              = FormWindowState.Normal;
            this.FormBorderStyle                          = FormBorderStyle.SizableToolWindow;
            this.Text                                     = "CẬP NHẬT KHUYẾN MẠI";
            this.FormClosed                              -= frmMatHang_FormClosed;
            this.FormClosing                             -= frmMatHang_FormClosing;
            dgvSanPham.AllowUserToDeleteRows              = false;
            dgvSanPham.DoubleClick                       -= dgvSanPham_DoubleClick;
            dgvSanPham.Columns["ApDungKM"].Visible        = true;
            dgvSanPham.Columns["colTenKhuyenMai"].Visible = true;
            dgvSanPham.Columns["colMauSac"].Visible       = false;
            dgvSanPham.Columns["colSoLuong"].Visible      = false;
            dgvSanPham.Columns["colHinhAnh"].Visible      = false;

            khuyenMai             = km;
            grbDanhMuc.Visible    = false;
            lblHDXoa.Visible      = false;
            lblHDSua.Visible      = false;
            cboApDung.Visible     = true;
            grpThongTinKM.Visible = true;
            btnXacNhan.Visible    = true;
            txtMauSac.Visible     = false;
            lblMauSac.Visible     = false;
            if (khuyenMai.NgayBatDau != null && khuyenMai.NgayKetThuc != null)
            {
                DateTime timeNow    = DateTime.Now;
                DateTime ngayBatDau = km.NgayBatDau ?? timeNow;
                int      result     = DateTime.Compare(timeNow, ngayBatDau);
                if (result >= 0)
                {
                    DateTime ngayKetThuc = km.NgayKetThuc ?? DateTime.Now;
                    result = DateTime.Compare(timeNow, ngayKetThuc);
                    if (result <= 0)
                    {
                        khuyenMai       = km;
                        lblTenCTKM.Text = string.Format("- {0}", km.TenKhuyenMai);
                        lblNgayKM.Text  = string.Format("- Diễn ra từ ngày {0} đến hết ngày {1}", ngayBatDau.ToString("dd/MM/yyyy"), ngayKetThuc.ToString("dd/MM/yyyy"));

                        return;
                    }
                }
            }
            else
            {
                lblTenCTKM.Text = string.Format("- {0}", km.TenKhuyenMai);
                lblNgayKM.Text  = "Không có thời hạn";
            }
        }
        private void btnThem_Click(object sender, EventArgs e)
        {
            clsChiTietSP_DTO CTSP = clsChiTietSanPham_BUS.LayChiTiet(txtMaCTSP.Text);

            if (CTSP == null)
            {
                MessageBox.Show("Sản phẩm không tồn tại.");
                return;
            }

            string soLuong = string.IsNullOrWhiteSpace(txtSoLuong.Text) ? "1" : txtSoLuong.Text;

            if (KiemTraSPTonTai(CTSP))
            {
                CapNhatThongTinThanhToan();
                CapNhatSoLuongChoBangTatCaSP(-int.Parse(soLuong), CTSP.MaCTSP);
                CapNhatSoLuongChoTextbox();
                return;
            }

            clsSanPham_DTO   sanPham   = clsSanPham_BUS.LayThongTinMotSanPham(CTSP.MaSP);
            clsHinhAnh_DTO   hinhAnhSP = clsHinhAnh_BUS.LayHinhAnh(CTSP.MaHinhAnh);
            clsKhuyenMai_DTO khuyenMai = clsKhuyenMai_BUS.LayKhuyenMai(sanPham.MaKhuyenMai);

            double giaGiamTru = ((double.Parse(khuyenMai.MoTa) / 100) * (double)sanPham.GiaBanLe);
            double tongTienSP = (((double)sanPham.GiaBanLe - giaGiamTru) * double.Parse(soLuong));

            DataRow newRow = dtSanPham.NewRow();

            newRow["HinhAnh"]      = hinhAnhSP.Url;
            newRow["TenSP"]        = sanPham.TenSP;
            newRow["MauSac"]       = CTSP.MauSac;
            newRow["GiaBanLe"]     = sanPham.GiaBanLe.ToString("0,00#");
            newRow["TenKhuyenMai"] = khuyenMai.TenKhuyenMai;
            newRow["GiamTru"]      = giaGiamTru.ToString("0,00#");
            newRow["SoNamBH"]      = sanPham.SoNamBH;
            newRow["SoLuong"]      = soLuong;
            newRow["MaCTSP"]       = CTSP.MaCTSP;
            newRow["MaKhuyenMai"]  = khuyenMai.MaKhuyenMai;
            newRow["TongTien"]     = tongTienSP.ToString("0,00#");
            newRow["ThuongHieu"]   = sanPham.ThuongHieu;
            newRow["KMGiamTru"]    = khuyenMai.MoTa + "%";
            dtSanPham.Rows.Add(newRow);

            CapNhatThongTinThanhToan();
            CapNhatSoLuongChoBangTatCaSP(-int.Parse(soLuong), CTSP.MaCTSP);
            CapNhatSoLuongChoTextbox();
        }
 public static int Them(clsKhuyenMai_DTO khuyenMai)
 {
     using (SqlConnection conn = XuLyDuLieu.MoKetNoi)
     {
         string     query = "Insert into KhuyenMai(NgayBatDau,NgayKetThuc,ApDungHD,TenKhuyenMai,MoTa) values (@NgayBatDau,@NgayKetThuc,@ApDungHD,@TenKhuyenMai,@MoTa) SELECT CAST(scope_identity() AS int)";
         SqlCommand cmd   = new SqlCommand(query, conn);
         cmd.Parameters.Add("@NgayBatDau", SqlDbType.Date).Value       = khuyenMai.NgayBatDau == null ? DBNull.Value : (object)khuyenMai.NgayBatDau;
         cmd.Parameters.Add("@NgayKetThuc", SqlDbType.Date).Value      = khuyenMai.NgayKetThuc == null ? DBNull.Value : (object)khuyenMai.NgayKetThuc;
         cmd.Parameters.Add("@ApDungHD", SqlDbType.Bit).Value          = khuyenMai.ApDungHD;
         cmd.Parameters.Add("@TenKhuyenMai", SqlDbType.NVarChar).Value = khuyenMai.TenKhuyenMai;
         cmd.Parameters.Add("@MoTa", SqlDbType.NVarChar).Value         = khuyenMai.MoTa;
         cmd.CommandType = CommandType.Text;
         try
         {
             return((int)cmd.ExecuteScalar());
         }
         catch (SqlException e)
         {
             throw e;
         }
     }
 }
 public static bool Sua(clsKhuyenMai_DTO khuyenMai)
 {
     using (SqlConnection conn = XuLyDuLieu.MoKetNoi)
     {
         string     query = "UPDATE KhuyenMai Set NgayBatDau = @NgayBatDau, NgayKetThuc = @NgayKetThuc, ApDungHD = @ApDungHD, TenKhuyenMai = @TenKhuyenMai, MoTa = @MoTa where MaKhuyenMai = @MaKhuyenMai";
         SqlCommand cmd   = new SqlCommand(query, conn);
         cmd.Parameters.Add("@NgayBatDau", SqlDbType.Date).Value       = khuyenMai.NgayBatDau == null ? DBNull.Value : (object)khuyenMai.NgayBatDau;
         cmd.Parameters.Add("@NgayKetThuc", SqlDbType.Date).Value      = khuyenMai.NgayKetThuc == null ? DBNull.Value : (object)khuyenMai.NgayKetThuc;
         cmd.Parameters.Add("@ApDungHD", SqlDbType.Bit).Value          = khuyenMai.ApDungHD;
         cmd.Parameters.Add("@TenKhuyenMai", SqlDbType.NVarChar).Value = khuyenMai.TenKhuyenMai;
         cmd.Parameters.Add("@MoTa", SqlDbType.NVarChar).Value         = khuyenMai.MoTa;
         cmd.Parameters.Add("@MaKhuyenMai", SqlDbType.Int).Value       = khuyenMai.MaKhuyenMai;
         cmd.CommandType = CommandType.Text;
         try
         {
             return(cmd.ExecuteNonQuery() >= 1);
         }
         catch (SqlException e)
         {
             throw e;
         }
     }
 }
Beispiel #11
0
 public static bool Sua(clsKhuyenMai_DTO khuyenMai)
 {
     return(clsKhuyenMai_DAO.Sua(khuyenMai));
 }
        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.");
            }
        }