示例#1
0
        public static void Xoa(ThanhToan thanhtoan)
        {
            IsSuccess = false;
            // kiểm tra dữ liệu
            THANHTOAN tt = db.THANHTOANs.Find(thanhtoan.MaTT);

            if (tt == null)
            {
                Message = "Không tìm thấy thanh toán này";
                return;
            }
            try
            {
                db.KHACHHANGs.Find(tt.MaKhachHang).TienNo += tt.SoTien;
                db.THANHTOANs.Remove(tt);
                db.SaveChanges();
            }
            catch (Exception e)
            {
                Message = "Xóa thanh toán thất bại!\n" + e.Message;
                return;
            }
            Message   = "Xóa thanh toán thành công!";
            IsSuccess = true;
            return;
        }
        public ActionResult PaymentConfirm(string billID, string voucherID, string paymentMethod)
        {
            DATHANG   dathang = db.DATHANGs.Find(billID);
            THANHTOAN found;
            DATHANG   billInfo = (from bill in db.DATHANGs
                                  where bill.ID_DONHANG == billID
                                  select bill).SingleOrDefault();
            var voucherInfo = (from system_voucher in db.VOUCHERs
                               where system_voucher.MACODE == voucherID
                               join loai_voucher in db.LOAIVOUCHERs
                               on system_voucher.LOAIVOUCHER equals loai_voucher.MALOAIVOUCHER
                               select new
            {
                mavoucher = system_voucher.MACODE,
                mucgia = loai_voucher.MUCGIA,
                giamtoida = loai_voucher.GIAMTOIDA,
                uudai = loai_voucher.UUDAI
            }).SingleOrDefault();

            if (billInfo != null)
            {
                try
                {
                    const string      chars                  = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
                    Random            random                 = new Random();
                    THANHTOAN         toAdd                  = new THANHTOAN();
                    DONMUA            toAddDonMua            = new DONMUA();
                    THONGTINDONHANG   toAddThongTinDonHang   = new THONGTINDONHANG();
                    THONGTINVANCHUYEN toAddThongTinVanChuyen = new THONGTINVANCHUYEN();
                    toAdd.ID_DONHANG                    = billID;
                    toAddDonMua.MADVVC                  = dathang.MADVVC;
                    toAddDonMua.ID_DONHANG              = dathang.ID_DONHANG;
                    toAddThongTinDonHang.ID_DONHANG     = dathang.ID_DONHANG;
                    toAddThongTinDonHang.THOIGIAN       = DateTime.Now;
                    toAddThongTinDonHang.TINHTRANG_DH   = "Chờ xác nhận";
                    toAddThongTinVanChuyen.TINHTRANG_VC = "Người bán đang chuẩn bị đơn hàng";
                    toAddThongTinVanChuyen.THOIGIAN     = DateTime.Now;
                    var total = billInfo.TONGTIEN;
                    toAdd.SOTIENTT      = (voucherInfo != null && total - voucherInfo.mucgia > 0) ? total - Math.Min(total * voucherInfo.uudai, voucherInfo.giamtoida) : total;
                    toAdd.NGAYTHANHTOAN = DateTime.Now;
                    do
                    {
                        toAdd.SO_THANHTOAN = new string(Enumerable.Repeat(chars, 10).Select(s => s[random.Next(s.Length)]).ToArray());
                        toAddThongTinVanChuyen.MADONVAN = new string(Enumerable.Repeat(chars, 10).Select(s => s[random.Next(s.Length)]).ToArray());
                        found = db.THANHTOANs.Where(x => x.SO_THANHTOAN == toAdd.SO_THANHTOAN).SingleOrDefault();
                    } while (toAdd.SO_THANHTOAN == "" || toAddThongTinVanChuyen.MADONVAN == "" || found != null);
                    toAdd.UUDAI         = voucherInfo.mavoucher;
                    toAdd.HOANTIEN      = billInfo.TONGTIEN - toAdd.SOTIENTT;
                    toAdd.LOAITHANHTOAN = paymentMethod != "Thanh toán khi nhận hàng" ? "ONL" : "COD";
                    toAdd.LOAITTONLINE  = toAdd.LOAITHANHTOAN == "COD" ? null : paymentMethod == "Ví Airpay" ? "VDT" : paymentMethod == "Thẻ tín dụng" ? "ATM" : "DEBIT";
                    db.THANHTOANs.Add(toAdd);
                    db.SaveChanges();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            return(RedirectToAction("Success", "Checkout"));
        }
示例#3
0
        public string UpdateThanhToan(QLPHONGKHAMEntities db, ThanhToanDTO ThanhToan)
        {
            THANHTOAN thanhToanDAO = new THANHTOAN();

            BUS.Com.Utils.CopyPropertiesFrom(ThanhToan, thanhToanDAO);
            return(thanhToanService.Save(db, thanhToanDAO));
        }
示例#4
0
        public void Update_TestCase9()
        {
            ThanhToanDAO dao       = new ThanhToanDAO();
            THANHTOAN    thanhToan = new THANHTOAN
            {
                MaThanhToan     = TestCommon.LEN_10,
                MaHoSo          = TestCommon.LEN_10,
                ChiPhiKham      = 1,
                ChiPhiXetNghiem = 1,
                TongChiPhi      = 2,
                NhanVienThu     = TestCommon.LEN_10,
                NgayThu         = TestCommon.LEN_8
            };

            dao.Save(db, thanhToan);
            THANHTOAN thanhToanUpdate = new THANHTOAN
            {
                MaThanhToan     = TestCommon.LEN_10 + "1",
                MaHoSo          = TestCommon.LEN_10 + "1",
                ChiPhiKham      = 1111111111111,
                ChiPhiXetNghiem = 1111111111111,
                TongChiPhi      = 22222222222222,
                NhanVienThu     = TestCommon.LEN_10 + "1",
                NgayThu         = TestCommon.LEN_8 + "1"
            };
            string actual = dao.Save(db, thanhToanUpdate);
            // Biến kết quả
            string expected = "1111";

            // Test
            Assert.Equals(expected, actual);
        }
示例#5
0
        public void Insert_TestCase2()
        {
            THANHTOAN thanhToan = new THANHTOAN
            {
                MaThanhToan = TestCommon.LEN_10,
            };
            ThanhToanDAO dao      = new ThanhToanDAO();
            string       actual   = dao.Save(db, thanhToan);
            string       expected = "1111";

            Assert.Equals(expected, actual);
        }
示例#6
0
        public void Delete_TestCase9()
        {
            THANHTOAN thanhToan = new THANHTOAN
            {
                MaThanhToan = TestCommon.LEN_10,
                MaHoSo      = TestCommon.LEN_10
            };
            ThanhToanDAO dao    = new ThanhToanDAO();
            string       actual = dao.Save(db, thanhToan);

            Assert.Equals(null, actual);
        }
示例#7
0
        public string GetThanhToan(QLPHONGKHAMEntities db, string MaHoSo, out ThanhToanDTO thanhToan)
        {
            thanhToan = new ThanhToanDTO();
            THANHTOAN ResObject = new THANHTOAN();

            thanhToanService.GetThanhToan(db, MaHoSo, out ResObject);
            if (ResObject == null)
            {
                return(Constant.RES_FAI);
            }
            BUS.Com.Utils.CopyPropertiesFrom(ResObject, thanhToan);
            return(Constant.RES_SUC);
        }
示例#8
0
        public void Insert_TestCase3()
        {
            THANHTOAN thanhToan = new THANHTOAN
            {
                MaThanhToan     = TestCommon.LEN_10,
                MaHoSo          = TestCommon.LEN_10,
                ChiPhiKham      = -100000000000,
                ChiPhiXetNghiem = -100000000000,
                TongChiPhi      = -200000000000,
            };
            ThanhToanDAO dao      = new ThanhToanDAO();
            string       actual   = dao.Save(db, thanhToan);
            string       expected = "1111";

            Assert.Equals(expected, actual);
        }
示例#9
0
        public void thanhToan(int tienPhong, string maKiemTra, int maThuePhong, int[] danhSachPhongThue)
        {
            DateTime  now       = DateTime.Now;
            THANHTOAN thanhToan = new THANHTOAN
            {
                NgayThanhToan = now,
                ThanhTien     = tienPhong,
                THUEPHONG_ID  = maThuePhong
            };

            foreach (var idPhong in danhSachPhongThue)
            {
                var phong = db.PHONGs.Find(idPhong);
                phong.LOAITINHTRANG_ID = 1;
            }
            db.THANHTOANs.Add(thanhToan);
            db.SaveChanges();
        }
示例#10
0
        public void Insert_TestCase4()
        {
            THANHTOAN thanhToan = new THANHTOAN
            {
                MaThanhToan     = TestCommon.LEN_10 + "1",
                MaHoSo          = TestCommon.LEN_10 + "1",
                ChiPhiKham      = 1000000000001,
                ChiPhiXetNghiem = 1000000000001,
                TongChiPhi      = 2000000000002,
                NhanVienThu     = TestCommon.LEN_10 + "1",
                NgayThu         = TestCommon.LEN_8 + "1"
            };
            ThanhToanDAO dao      = new ThanhToanDAO();
            string       actual   = dao.Save(db, thanhToan);
            string       expected = "1111";

            Assert.Equals(expected, actual);
        }
示例#11
0
 public static void Sua(ThanhToan thanhtoan)
 {
     IsSuccess = false;
     // kiểm tra dữ liệu
     if (db.THANHTOANs.Find(thanhtoan.MaTT) == null)
     {
         Message = "Mã thanh toán không tồn tại";
         return;
     }
     if (db.KHACHHANGs.Find(thanhtoan.MaKH) == null)
     {
         Message = "Không tìm thấy khách hàng này";
         return;
     }
     if (thanhtoan.SoTien <= 0)
     {
         Message = "Số tiền thanh toán phải lớn hơn 0!";
         return;
     }
     if (thanhtoan.SoTien > db.KHACHHANGs.Find(thanhtoan.MaKH).TienNo)
     {
         Message = "Số tiền thanh toán lớn hơn nợ hiện tại của khách hàng!";
         return;
     }
     // sửa
     try
     {
         THANHTOAN tt = db.THANHTOANs.Find(thanhtoan.MaTT);
         db.KHACHHANGs.Find(tt.MaKhachHang).TienNo += tt.SoTien;
         tt.MaKhachHang = thanhtoan.MaKH;
         tt.SoTien      = thanhtoan.SoTien;
         db.KHACHHANGs.Find(tt.MaKhachHang).TienNo -= tt.SoTien;
         db.SaveChanges();
     }
     catch (Exception e)
     {
         Message = "Sửa thanh toán thất bại!\n" + e.Message;
         return;
     }
     Message   = "Sửa thanh toán thành công!";
     IsSuccess = true;
     return;
 }
示例#12
0
 public static void Them(ThanhToan thanhtoan)
 {
     IsSuccess = false;
     // kiểm tra dữ liệu
     if (db.THANHTOANs.Find(thanhtoan.MaTT) != null)
     {
         Message = "Mã thanh toán đã tồn tại";
         return;
     }
     if (db.KHACHHANGs.Find(thanhtoan.MaKH) == null)
     {
         Message = "Không tìm thấy khách hàng này";
         return;
     }
     if (thanhtoan.SoTien <= 0)
     {
         Message = "Số tiền thanh toán phải lớn hơn 0!";
         return;
     }
     if (thanhtoan.SoTien > db.KHACHHANGs.Find(thanhtoan.MaKH).TienNo)
     {
         Message = "Số tiền thanh toán lớn hơn nợ hiện tại của khách hàng!";
         return;
     }
     thanhtoan.NgayTT = DateTime.Now;
     // Thêm
     try
     {
         THANHTOAN tt = Convert(thanhtoan);
         db.THANHTOANs.Add(tt);
         KHACHHANG kh = db.KHACHHANGs.Find(thanhtoan.MaKH);
         kh.TienNo -= thanhtoan.SoTien;
         db.SaveChanges();
     }
     catch (Exception e)
     {
         Message = "Thêm thanh toán thất bại!\n" + e.Message;
         return;
     }
     Message   = "Thêm thanh toán thành công!";
     IsSuccess = true;
     return;
 }
示例#13
0
        public void Update_TestCase7()
        {
            ThanhToanDAO dao       = new ThanhToanDAO();
            THANHTOAN    thanhToan = new THANHTOAN
            {
                MaThanhToan = TestCommon.LEN_10,
                MaHoSo      = TestCommon.LEN_10,
            };

            dao.Save(db, thanhToan);
            THANHTOAN thanhToanUpdate = new THANHTOAN
            {
                MaThanhToan = TestCommon.LEN_10,
            };
            string actual = dao.Save(db, thanhToanUpdate);
            // Biến kết quả
            string expected = "1111";

            // Test
            Assert.Equals(expected, actual);
        }
示例#14
0
        public ActionResult Update(string Address, string pttt, THANHTOAN donhang, string sdt)
        {
            var sanpham = cn.XemGioHangs.SqlQuery("XemGioHang @SDT", new SqlParameter("@SDT", sdt)).ToList();

            ViewBag.GioHang = sanpham;
            //thanh toán
            int tt = 0;

            ViewBag.DiaChi       = Address;
            donhang.PhuongThucTT = pttt;
            ViewBag.PhuongThucTT = pttt;
            foreach (var i in sanpham)
            {
                tt += Convert.ToInt32(i.Gia) * Convert.ToInt32(i.SoLuong);
            }
            ViewBag.ThanhToan = tt;
            if (ModelState.IsValid)
            {
                // xử lý cho button XacNhan
                dh.Update_DiaChi(Address, sdt);
                return(View("Index", donhang));
            }
            return(View("Index", donhang));
        }
示例#15
0
        public ActionResult Index(THANHTOAN donhang, string diachi, string pttt, string sdt)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (donhang.PhuongThucTT == null)
                    {
                        ViewBag.PhuongThucTT = "Thanh Toán Khi Nhận Sản Phẩm";
                    }
                    else
                    {
                        ViewBag.PhuongThucTT = donhang.PhuongThucTT.Replace("{ value = ", "").Replace(" }", "");
                    }
                    var sanpham = cn.XemGioHangs.SqlQuery("XemGioHang @SDT", new SqlParameter("@SDT", sdt)).ToList();
                    ViewBag.GioHang = sanpham;
                    //thanh toán
                    float tt = 0;
                    if (donhang.DiaChi == null)
                    {
                        ViewBag.DiaChi = ViewBag.GioHang[0].DiaChi;
                    }
                    ViewBag.DiaChi = donhang.DiaChi;
                    foreach (var i in sanpham)
                    {
                        tt += (Convert.ToInt32(i.Gia) * ((float)(100 - Convert.ToInt32(i.Discount)) / 100)) * Convert.ToInt32(i.SoLuong);
                    }
                    ViewBag.ThanhToan = tt;
                    if (donhang.ChuThich == null)
                    {
                        donhang.ChuThich = "không";
                    }
                    List <string> temp = ListSL(sdt);
                    if (pttt == "Thanh toán khi nhận hàng")
                    {
                        if (CheckSL(temp))
                        {
                            dh.Mua_Update(sdt, diachi, (int)tt, "Chưa thanh toán", donhang.ChuThich);

                            string maDH = Configuration.MaDH;

                            CustomerModel cus = new CustomerModel();
                            OrderModel    ord = new OrderModel();
                            ViewBag.infoCustomer = cus.infoCustomer(sdt); //Lấy thông tin khách hàng

                            string noidung = "";
                            ViewBag.infoOrder = ord.infoDonHang(maDH);
                            foreach (var info in ViewBag.infoOrder)
                            {
                                noidung = noidung + "<tr>" + "<td>" + info.TenSP + "</td>" + "<td style=\"text-align:center;\">" + info.Gia.ToString("N0") + "</td>" + "<td style=\"text-align:center;\">" + info.SoLuong + "</td>" + "</tr>";
                            }
                            string notice  = "<p style=\"color: red;\">" + " * Đơn hàng sẽ giao tới trong vòng 3 - 4 ngày (Không tính T7, CN)" + "</p>";
                            string content = System.IO.File.ReadAllText(Server.MapPath("~/Template/NewOrder.html"));

                            var toEmail = "";
                            foreach (var item in ViewBag.infoCustomer)
                            {
                                content = content.Replace("{{CustomerName}}", item.TenKH);
                                content = content.Replace("{{Address}}", ord.addressOrderbySDT(sdt));
                                content = content.Replace("{{IDOrder}}", maDH + " <i>(Chưa thanh toán)</i>");
                                content = content.Replace("{{Order}}", noidung);
                                content = content.Replace("{{Total}}", Convert.ToInt32(ViewBag.ThanhToan).ToString("N0"));
                                content = content.Replace("{{Notice}}", notice);
                                toEmail = item.Email;
                            }

                            new MailHelper().SendMail(toEmail, "⌚ Đặt thành công đơn hàng [" + maDH + "] NOLOGO Shop", content);
                            TempData["Alert-Message"] = "Đặt hàng thành công";
                        }
                    }
                    else
                    {
                        if (CheckSL(temp))
                        {
                            Configuration.SDT      = sdt;
                            Configuration.DiaChi   = diachi;
                            Configuration.ChuThich = donhang.ChuThich;
                            Configuration.tong     = Convert.ToInt32(ViewBag.ThanhToan);
                            return(RedirectToAction("PaymentWithPaypal", "Pay", new { @sdt = sdt }));
                        }
                    }
                }

                return(RedirectToAction("Index", "Home", new { area = "Customer" }));
            }
            catch
            {
                return(View(donhang));
            }
        }