예제 #1
0
        // GET: HoaDonChiTiet
        public ActionResult ThemHoaDonChiTiet(int MaMonAn, string strURL)
        {
            //Nếu người dùng tự ý chỉnh URL truyền vào MaMonAn không có trong CSDL thì hiện ra trang báo lỗi.
            MonAn MonAn = db.MonAn.SingleOrDefault(n => n.MaMon == MaMonAn);

            if (MonAn == null)
            {
                Response.StatusCode = 404;
                return(null);
            }
            //Lấy ra session giỏ hàng
            List <HoaDonChiTiet> lstHoaDonChiTiet = LayHoaDonChiTiet();
            //Kiểm tra sản phẩm có trong giỏ hàng hay chưa
            HoaDonChiTiet sanpham = lstHoaDonChiTiet.Find(n => n.iMaMon == MaMonAn);

            //Nếu sản phẩm chưa có trong giỏ thì thêm sp vào giỏ
            if (sanpham == null)
            {
                sanpham = new HoaDonChiTiet(MaMonAn);
                lstHoaDonChiTiet.Add(sanpham);
                TongTien();
                return(Redirect(strURL));
            }
            else
            {
                sanpham.SoLuong++;
                return(Redirect(strURL));
            }
        }
예제 #2
0
        private void btnInPhieu_Click(object sender, EventArgs e)
        {
            int count = lsvBill.Items.Count;

            if (alow == true && count > 0)
            {
                E_hoaDon = new HoaDon(hoaDon, MaNV, soBan, Tong, DateTime.Now, false);
                hdBus.ThemHoaDon(E_hoaDon, TableHoaDon);
                hdBus.SaveHoaDon(TableHoaDon);

                foreach (ListViewItem item in lsvBill.Items)
                {
                    string maSP    = item.SubItems[4].Text;
                    int    soLuong = int.Parse(item.SubItems[1].Text);
                    E_hoaDonChiTiet = new HoaDonChiTiet(hoaDon, maSP, soLuong);
                    hdctBus.ThemHoaDonChiTiet(E_hoaDonChiTiet, TableHoaDonChiTiet);
                }
                hdctBus.SaveHoaDonChiTiet(TableHoaDonChiTiet);

                E_Ban = new Ban(soBan, true);
                banBus.CapNhatTinhTrangBan(E_Ban, TableBan);
                banBus.SaveBan(TableBan);

                btnInPhieu.Enabled   = false;
                btnThem.Enabled      = false;
                btnGiam.Enabled      = false;
                btnThanhToan.Enabled = true;
                alow = false;
            }
        }
예제 #3
0
        public IHttpActionResult PostHoaDonChiTiet(HoaDonChiTiet hoaDonChiTiet)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.HoaDonChiTiets.Add(hoaDonChiTiet);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (HoaDonChiTietExists(hoaDonChiTiet.MaHoaDon))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = hoaDonChiTiet.MaHoaDon }, hoaDonChiTiet));
        }
예제 #4
0
        public async Task <ActionResult> DatHang(HoaDon hoaDon)
        {
            var gioHang = Session["GioHang"] as GioHangModel;

            if (gioHang == null || gioHang.TongSanPham == 0)
            {
                return(RedirectToAction("Index", "Home"));
            }
            try
            {
                hoaDon.NgayDatHang = DateTime.Now;
                hoaDon.TongTien    = gioHang.TongTriGia;
                db.HoaDons.Add(hoaDon);
                foreach (var item in gioHang.DanhSach)
                {
                    HoaDonChiTiet ct = new HoaDonChiTiet();
                    ct.HoaDonID  = hoaDon.ID;
                    ct.HangHoaID = item.HangHoa.ID;
                    ct.SoLuong   = item.SoLuong;
                    ct.DonGia    = item.HangHoa.GiaBan;
                    ct.ThanhTien = item.HangHoa.GiaBan * item.SoLuong;
                    db.HoaDonChiTiets.Add(ct);
                }
                await db.SaveChangesAsync();

                gioHang.XoaTatCa();
                return(View("DatHangThanhCong", hoaDon));
            }
            catch (Exception ex)
            {
                TempData["LoiDatHang"] = "Đặt hàng không thành công.<br>" + ex.Message;
                return(RedirectToAction("Index"));
            }
        }
        public void ThemHoaDonChiTiet(HoaDonChiTiet hoaDonChiTiet, DataTable dataTable)
        {
            DataRow row = dataTable.NewRow();

            row["MaHD"]    = hoaDonChiTiet.MaHD;
            row["MaSP"]    = hoaDonChiTiet.MaSP;
            row["SoLuong"] = hoaDonChiTiet.SoLuong;
            dataTable.Rows.Add(row);
        }
예제 #6
0
 void themHoaDonChiTiet()
 {
     BULHoaDonChiTiet = new BULHoaDonChiTiet();
     for (int i = 0; i < dataGridViewX1.RowCount - 1; i++)
     {
         HoaDonChiTiet hoaDonChiTiet = new HoaDonChiTiet(txtMaHoaDon.Text,
                                                         dataGridViewX1.Rows[i].Cells[0].Value + "",
                                                         Convert.ToInt32(dataGridViewX1.Rows[i].Cells[2].Value + ""));
         BULHoaDonChiTiet.themHDCT(hoaDonChiTiet);
     }
 }
예제 #7
0
        public List <HoaDonChiTiet> LayHoaDonChiTiet(int maHoaDon)
        {
            List <HoaDonChiTiet> listHoaDonChiTiet = new List <HoaDonChiTiet>();
            DataTable            data = DataProvider.Instance.ExecuteQuery("SECLET * FROM dbo.HoaDonChiTiet WHERE MaHoaDon =" + maHoaDon);

            foreach (DataRow item in data.Rows)
            {
                HoaDonChiTiet chiTiet = new HoaDonChiTiet(item);
                listHoaDonChiTiet.Add(chiTiet);
            }
            return(listHoaDonChiTiet);
        }
예제 #8
0
        public IHttpActionResult PostHoaDon(ThongTinHoaDon thongTinHoaDon)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //them vao bang? hoa don
            HoaDon hoaDon = new HoaDon()
            {
                //MaHoaDon = thongTinHoaDon.MaHoaDon,
                MaKhachHang = thongTinHoaDon.MaKhachHang,
                MaNhanVien  = thongTinHoaDon.MaNhanVien,
                NgayTao     = thongTinHoaDon.NgayTao,
                MoTa        = thongTinHoaDon.MoTa,
            };

            //them bang? hoa don chi tiet'
            List <HoaDonChiTiet> hoaDonChiTiet = new List <HoaDonChiTiet>();

            thongTinHoaDon.LuaChon.ToList().ForEach(v =>
            {
                HoaDonChiTiet tmp = new HoaDonChiTiet()
                {
                    //MaHoaDon = thongTinHoaDon.MaHoaDon,
                    MaHoaDon  = hoaDon.MaHoaDon,
                    MaLuaChon = v.Key,
                    SoLuong   = v.Value
                };
                hoaDonChiTiet.Add(tmp);
            });

            db.HoaDons.Add(hoaDon);
            db.HoaDonChiTiets.AddRange(hoaDonChiTiet);
            db.SaveChanges();

            // them bang? giam? gia'
            // lay ra list khuyen mai dang duoc ap dung.
            var khuyenMaiApDung = db.KhuyenMais.Where(v => v.NgayBatDau.Value <= DateTime.Now && v.NgayKetThuc >= DateTime.Now).ToList();

            if (khuyenMaiApDung != null)
            {
                //GiamGiaViewModel giamGia
                khuyenMaiApDung.ForEach(v =>
                {
                    db.PostGiamGia(v.MaKhuyenMai, hoaDon.MaHoaDon);
                });
            }
            return(Ok());
        }
예제 #9
0
        public IHttpActionResult DeleteHoaDonChiTiet(int id)
        {
            HoaDonChiTiet hoaDonChiTiet = db.HoaDonChiTiets.Find(id);

            if (hoaDonChiTiet == null)
            {
                return(NotFound());
            }

            db.HoaDonChiTiets.Remove(hoaDonChiTiet);
            db.SaveChanges();

            return(Ok(hoaDonChiTiet));
        }
예제 #10
0
        public void themHoaDonCT(HoaDonChiTiet hoaDonChiTiet)
        {
            List <HoaDonChiTiet> arr = new List <HoaDonChiTiet>();

            KetNoiCSDL.moKetNoi();
            string add = "insert into HoaDonChiTiet values (@maHoaDon, @maHang, @soLuong)";

            SqlCommand cmd = new SqlCommand(add, KetNoiCSDL.connect);

            cmd.Parameters.AddWithValue("maHoaDon", hoaDonChiTiet.MaHoaDon);
            cmd.Parameters.AddWithValue("maHang", hoaDonChiTiet.MaHang);
            cmd.Parameters.AddWithValue("soLuong", hoaDonChiTiet.SoLuong);

            cmd.ExecuteNonQuery();
            KetNoiCSDL.dongKetNoi();
        }
        public async Task <IHttpActionResult> HoaDon(InputHDDTO input)
        {
            try
            {
                //1.Thêm HoaDon
                var entity = new HoaDon();
                ConvertHoaDonDTOToEntity(input.HDItem, entity, true);
                db.HoaDons.Add(entity);

                //2.Thêm HoaDonChiTiet
                foreach (var item in input.HDCTItems)
                {
                    HoaDonChiTiet hDCT = new HoaDonChiTiet();
                    hDCT.HoaDonID  = item.HoaDonID;
                    hDCT.HangHoaID = item.HangHoaID;
                    hDCT.SoLuong   = item.SoLuong;
                    hDCT.DonGia    = item.DonGia;
                    hDCT.ThanhTien = item.ThanhTien;
                    db.HoaDonChiTiets.Add(hDCT);
                }
                await db.SaveChangesAsync();

                var hoaDonCTs = await db.HoaDonChiTiets
                                .Where(p => p.HoaDonID == entity.ID)
                                .Include(p => p.HoaDon)
                                .Include(p => p.HangHoa)
                                .Select(p => new HoaDonChiTietBSDTO
                {
                    ID          = p.HoaDon.ID,
                    NgayDatHang = p.HoaDon.NgayDatHang,
                    HoTenKhach  = p.HoaDon.HoTenKhach,
                    TenHang     = p.HangHoa.TenHang,
                    SoLuong     = p.SoLuong,
                    DonGia      = p.DonGia,
                    ThanhTien   = p.ThanhTien
                })
                                .ToListAsync();

                return(Ok(hoaDonCTs));
            }
            catch (Exception ex)
            {
                return(BadRequest($"Thêm Không thành công. {ex.Message}"));
            }
        }
예제 #12
0
        public List <HoaDonChiTiet> layTatCHDCT()
        {
            List <HoaDonChiTiet> list = new List <HoaDonChiTiet>();

            KetNoiCSDL.moKetNoi();
            string        get           = " select * from HoaDonChiTiet";
            SqlCommand    sqlCommand    = new SqlCommand(get, KetNoiCSDL.connect);
            SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();

            while (sqlDataReader.Read())
            {
                HoaDonChiTiet hoaDonChiTiet = new HoaDonChiTiet(sqlDataReader["maHoaDon"].ToString(),
                                                                sqlDataReader["maHang"].ToString(), Convert.ToInt32(
                                                                    sqlDataReader["soLuong"]));
                list.Add(hoaDonChiTiet);
            }
            KetNoiCSDL.dongKetNoi();
            return(list);
        }
예제 #13
0
        public List <HoaDonChiTiet> LayMenuTuBan(int maBan)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                string sql = "select f.TenMon, cthd.SoLuong, f.GiaBan from Mon as f, HoaDon as hd, ChiTietHoaDon as cthd where hd.Id = cthd.IdHoaDon and cthd.IdMon = f.Id and hd.IdBan = " + maBan + " and hd.TrangThai = 0";
                connection.Open();
                List <HoaDonChiTiet> dsMenu = new List <HoaDonChiTiet>();
                SqlDataAdapter       da     = new SqlDataAdapter(sql, connection);
                DataTable            dt     = new DataTable();
                da.Fill(dt);

                foreach (DataRow row in dt.Rows)
                {
                    HoaDonChiTiet menu = new HoaDonChiTiet(row);
                    dsMenu.Add(menu);
                }

                return(dsMenu);
            }
        }
예제 #14
0
        public ActionResult XoaHoaDonChiTiet(int MaMonAn, string strURL)
        {
            //Nếu người dùng tự ý chỉnh URL truyền vào MaMonAn không có trong CSDL thì hiện ra trang báo lỗi.
            MonAn MonAn = db.MonAn.SingleOrDefault(n => n.MaMon == MaMonAn);

            if (MonAn == null)
            {
                Response.StatusCode = 404;
                return(null);
            }
            List <HoaDonChiTiet> lstHoaDonChiTiet = LayHoaDonChiTiet();
            HoaDonChiTiet        sanpham          = lstHoaDonChiTiet.SingleOrDefault(n => n.iMaMon == MaMonAn);

            if (sanpham != null)
            {
                lstHoaDonChiTiet.RemoveAll(n => n.iMaMon == MaMonAn);
            }
            TongTien();
            return(RedirectPermanent(strURL));
        }
예제 #15
0
        public IHttpActionResult PutHoaDonChiTiet(HoaDonChiTiet hoaDonChiTiet)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var hoaDonCurrent = db.HoaDonChiTiets.SingleOrDefault(v => v.MaHoaDon == hoaDonChiTiet.MaHoaDon);

            if (hoaDonCurrent != null)
            {
                db.Entry(hoaDonCurrent).State = EntityState.Detached;
                db.Entry(hoaDonChiTiet).State = EntityState.Modified;

                try
                {
                    db.SaveChanges();
                }
                catch (DbUpdateConcurrencyException)
                {
                    //    if (!HoaDonChiTietExists(id))
                    //    {
                    //        return NotFound();
                    //    }
                    //    else
                    //    {
                    throw;
                    //}
                }
            }
            else
            {
                return(NotFound());
            }


            return(StatusCode(HttpStatusCode.NoContent));
        }
예제 #16
0
        public ActionResult DatHang(HoaDon hoaDon)
        {
            var gioHang = Session["GioHang"] as GioHangModel;

            if (gioHang == null || gioHang.TongSanPham == 0)
            {
                return(RedirectToAction("Index", "Home"));
            }
            // Xử lý phát sinh HoaDon và HoaDonChiTiet
            try
            {
                //1. Thêm HoaDon
                hoaDon.NgayDatHang = DateTime.Now;
                hoaDon.TongTien    = gioHang.TongTriGia;
                db.HoaDons.Add(hoaDon);
                //2. Thêm DatHangCT
                foreach (var item in gioHang.Items)
                {
                    HoaDonChiTiet ct = new HoaDonChiTiet();
                    ct.HoaDonID  = hoaDon.HoaDonID;
                    ct.SanPhamID = item.SanPham.SanPhamID;
                    ct.SoLuong   = item.SoLuong;
                    ct.DonGia    = item.SanPham.GiaBan;
                    ct.ThanhTien = item.SanPham.GiaBan * item.SoLuong;
                    db.HoaDonChiTiets.Add(ct);
                }
                db.SaveChanges();
                gioHang.Clear();

                return(View("DatHangThanhCong", hoaDon));
            }
            catch (Exception ex)
            {
                ViewData["LoiDatHang"] = "Đặt hàng không thành công.<br>" + ex.Message;
                return(View(hoaDon));
            }
        }
예제 #17
0
        public ActionResult CapNhatHoaDonChiTiet(int MaMonAn, string strURL, FormCollection f)
        {
            //Nếu người dùng tự ý chỉnh URL truyền vào MaMonAn không có trong CSDL thì hiện ra trang báo lỗi.
            MonAn MonAn = db.MonAn.SingleOrDefault(n => n.MaMon == MaMonAn);

            if (MonAn == null)
            {
                Response.StatusCode = 404;
                return(null);
            }
            List <HoaDonChiTiet> lstHoaDonChiTiet = LayHoaDonChiTiet();
            HoaDonChiTiet        sanpham          = lstHoaDonChiTiet.SingleOrDefault(n => n.iMaMon == MaMonAn);

            if (sanpham != null)
            {
                int i = int.Parse(f["txtSoLuong"].ToString());
                if (i != 0)
                {
                    sanpham.SoLuong = int.Parse(f["txtSoLuong"].ToString());
                }
            }
            TongTien();
            return(Redirect(strURL));
        }
예제 #18
0
        //Thêm mới
        public JsonResult ThemJson(string hoten, string dienthoai, string email, string diachi, string mota)
        {
            //Khai báo 1 đối tượng
            KhachHang objKhachHang = new KhachHang();

            //Gán giá trị
            objKhachHang.Id          = 0;
            objKhachHang.HoTen       = hoten;
            objKhachHang.DienThoai   = dienthoai;
            objKhachHang.Email       = email;
            objKhachHang.DiaChi      = diachi;
            objKhachHang.LoaiKhachId = 12; //id=12 là khách vãng lai

            //Kiểm tra dữ liệu trùng thì lấy id cũ , do chưa làm login cho Khách hàng , sau còn phát triển thêm v1.0
            if (Session["CTKhachHang"] != null)
            {
                KhachHang objKHLogin = (KhachHang)Session["CTKhachHang"];
                if (objKHLogin.HoTen == hoten && objKHLogin.DienThoai == dienthoai && objKHLogin.Email == email && objKHLogin.DiaChi == diachi)
                {
                    objKhachHang.Id          = objKHLogin.Id;
                    objKhachHang.LoaiKhachId = objKHLogin.LoaiKhachId;
                }
            }

            //Kiểm tra id khách hàng mới hay cũ , nếu mới thì tạo khách hàng mới trước đã
            if (objKhachHang.Id == 0)
            {
                //Thực hiện thêm và lưu sự thay đổi
                DataProvider.ShopEntities.KhachHangs.Add(objKhachHang);
                DataProvider.ShopEntities.SaveChanges();
            }
            //Kiểm tra trùng tên hoá đơn ở objHoaDonBan
            var tenHDB = 1;

            for (int i = 0; i < DataProvider.ShopEntities.HoaDonBans.ToList().Count; i++)
            {
                var check = false;
                foreach (HoaDonBan x in DataProvider.ShopEntities.HoaDonBans.ToList())
                {
                    string s = x.TenHoaDon.Substring(3);
                    while (s.StartsWith("0") == true)
                    {
                        string z = s.Substring(1);
                        s = z;
                    }
                    if (tenHDB == Int32.Parse(s))
                    {
                        tenHDB++;
                        check = true;
                        break;
                    }
                }
                if (check == false)
                {
                    break;
                }
            }

            var stringHDB = "";

            if (tenHDB > 0 && tenHDB < 9)
            {
                stringHDB = "HDB" + "00000" + tenHDB;
            }
            else if (tenHDB > 10 && tenHDB < 99)
            {
                stringHDB = "HDB" + "0000" + tenHDB;
            }
            else if (tenHDB > 100 && tenHDB < 999)
            {
                stringHDB = "HDB" + "000" + tenHDB;
            }
            else if (tenHDB > 1000 && tenHDB < 9999)
            {
                stringHDB = "HDB" + "00" + tenHDB;
            }
            else if (tenHDB > 10000 && tenHDB < 99999)
            {
                stringHDB = "HDB" + "0" + tenHDB;
            }
            else if (tenHDB > 100000 && tenHDB < 999999)
            {
                stringHDB = "HDB" + "" + tenHDB;
            }
            else
            {
                return(Json("Vượt quá giá trị cho phép", JsonRequestBehavior.DenyGet));
            }

            //Tạo mới thông tin HoaDonBan
            HoaDonBan objHoaDonBan = new HoaDonBan();

            objHoaDonBan.Id          = 0;
            objHoaDonBan.TenHoaDon   = stringHDB;
            objHoaDonBan.MoTa        = mota;
            objHoaDonBan.NgayBan     = DateTime.Now;
            objHoaDonBan.TrangThai   = 0;
            objHoaDonBan.DaThanhToan = false;
            objHoaDonBan.KhachHangId = objKhachHang.Id;
            //Lưu
            DataProvider.ShopEntities.HoaDonBans.Add(objHoaDonBan);
            DataProvider.ShopEntities.SaveChanges();

            //Tìm tenHDB để kiếm id liên kết bảng
            HoaDonBan objHDB = DataProvider.ShopEntities.HoaDonBans.Where(p => p.TenHoaDon == stringHDB).First();
            int       IdHDB  = objHDB.Id;

            //Thêm đơn đặt hàng bằng Session
            List <Cart> lstSanPham = (List <Cart>)Session["carts"];

            for (int i = 0; i < lstSanPham.Count; i++)
            {
                SanPham       sanPham     = DataProvider.ShopEntities.SanPhams.Find(lstSanPham[i].Id);
                HoaDonChiTiet objHoaDonCT = new HoaDonChiTiet();
                objHoaDonCT.Id        = 0;
                objHoaDonCT.SanPhamId = sanPham.Id;
                objHoaDonCT.HoaDonId  = IdHDB;
                objHoaDonCT.SoLuong   = lstSanPham[i].SoLuong;
                objHoaDonCT.Gia       = lstSanPham[i].Gia;
                //Lưu
                DataProvider.ShopEntities.HoaDonChiTiets.Add(objHoaDonCT);
                DataProvider.ShopEntities.SaveChanges();
                if (i == lstSanPham.Count - 1)
                {
                    //Reset session
                    Session.Remove("carts");
                    Session.Remove("TongTien");
                    Session.Remove("SoSP");
                    return(Json(new { Url = "/Cart/FinishCart" }));
                }
            }
            return(Json("Đặt hàng không thành công", JsonRequestBehavior.DenyGet));
        }
예제 #19
0
        public void ThemHoaDonChiTiet(HoaDonChiTiet hoaDonChiTiet, DataTable dataTable)
        {
            HoaDonChiTiet_DAO hoaDonChiTiet_DAO = new HoaDonChiTiet_DAO();

            hoaDonChiTiet_DAO.ThemHoaDonChiTiet(hoaDonChiTiet, dataTable);
        }
예제 #20
0
 public void themHDCT(HoaDonChiTiet hoaDonChiTiet)
 {
     DALHoaDonChiTiet.themHoaDonCT(hoaDonChiTiet);
 }