コード例 #1
0
ファイル: KhuVuc.cs プロジェクト: nhatkhoa/Zenta
 public static Dictionary<int, string> ListKhuVuc()
 {
     using (var db = new DB())
     {
         return db.KhuVucs.ToDictionary(p => p.KhuVucID, t => t.Ten);
     }
 }
コード例 #2
0
ファイル: KhuVuc.cs プロジェクト: nhatkhoa/Zenta
        public static bool DelKhuVuc(int id)
        {
            using (var db = new DB())
            {
                try
                {
                    // ---- Truy vấn đến đối tượng (đầu tiên) có id trùng với id truyền vào
                    var kv = db.KhuVucs.Single(p => p.KhuVucID.Equals(id));
                    // ---- Gọi phương thức xóa kv trên
                    db.KhuVucs.DeleteOnSubmit(kv);
                    // ---- Cập nhật lên cơ sở dữ liệu
                    db.SubmitChanges();
                    // ---- Báo xóa thành công
                    return true;
                }
                catch (SqlException)
                {
                    // ---- Trường hợp cơ sở dữ liệu không tồn tại id trùng
                    // ---- Trường hợp không xóa được do SQL error
                    // ---- Báo xóa không thành công
                    return false;
                }

            }
        }
コード例 #3
0
ファイル: Report.cs プロジェクト: nhatkhoa/Zenta
        public static DataTable DoanhThuTheoKhuVuc(int khuVuc)
        {
            try
            {
                using (var db = new DB())
                {
                    var temp = db.PhieuThus.Where(p=>p.KhuVuc.Equals(khuVuc) && p.ThoiGian.Value.Day == DateTime.Now.Day)
                        .Select(p => new
                    {
                        p.ThoiGian.Value.Hour,
                        p.TongTien
                    })
                    .GroupBy(p => p.Hour)
                    .Select(p => new
                    {
                        Hour = p.Key,
                        TongTien = p.Sum(t => t.TongTien).Value
                    });

                    return Convert.CreateTable(temp);
                }
            }
            catch
            {
                return null;
            }
        }
コード例 #4
0
ファイル: NguoiDung.cs プロジェクト: nhatkhoa/Zenta
 public static bool DelNguoiDung(int id)
 {
     // ---- Nếu người dùng là Admin quản trị chính thì không xoá và trả về false
     if (CauHinh.AdminChinh() == id)
         return true;
     try
     {
         using (var db = new DB())
         {
             // ---- Truy vấn đến người dùng có id trùng với id truyền vào
             var nd = db.NguoiDungs.Single(p => p.NguoiDungID.Equals(id));
             // ---- Gọi phương thức xóa
             db.NguoiDungs.DeleteOnSubmit(nd);
             // ---- Cập nhật thay đổi CSDL
             db.SubmitChanges();
             //
             return true;
         }
     }
     catch (SqlException)
     {
         using (var db = new DB())
         {
             // ---- trường hợp không thể xóa do không tồn tại hoặc đang sử dụng
             // ---- Truy vấn đến người dùng có id trùng với id truyền vào
             var nd = db.NguoiDungs.Single(p => p.NguoiDungID.Equals(id));
             // ---- Đưa vào thùng rác (Đặt cờ xoá = true)
             nd.Xoa = true;
             // ---- Cập nhật thay đổi CSDL
             db.SubmitChanges();
             //
         }
         return false;
     }
 }
コード例 #5
0
ファイル: PhieuThu.cs プロジェクト: nhatkhoa/Zenta
 public static int AddPhieuThu(int nguoiDung, int khuVuc)
 {
     using (var db = new DB())
     {
         // ---- Tạo mới một đối tượng phiếu thu
         var phieuThu = new DAL.PhieuThu()
         {
             NguoiDung = nguoiDung,
             KhuVuc = khuVuc,
             // ---- Lấy thời gian hiện tại
             ThoiGian = DateTime.Now,
             // ---- Tổng tiền ban đầu bằng 0 khi thêm chi tiết sẽ tự cập nhật
             TongTien = 0,
             // ---- Tiền nhận cập nhật khi thanh toán phiếu thu
             TienNhan = 0,
             SoNguoi = 1,
             ThanhToan = false,
         };
         // ---- Thêm phiếu thu vào cơ sở dữ liệu
         db.PhieuThus.InsertOnSubmit(phieuThu);
         // ---- Cập nhật thay đổi
         db.SubmitChanges();
         // ---- Trả về PhieuThuID mới thêm vào
         return phieuThu.PhieuThuID;
     }
 }
コード例 #6
0
ファイル: Report.cs プロジェクト: nhatkhoa/Zenta
 public static DataTable DoanhThu(int thang)
 {
     try
     {
         using (var db = new DB())
         {
             var doanhThu = db.PhieuThus
                 .Where(p=> p.ThoiGian.Value.Month.Equals(thang) && p.ThoiGian.Value.Year.Equals(DateTime.Now.Year))
                 .Select(p => new
             {
                 p.PhieuThuID,
                 Ngay = p.ThoiGian.Value.Day,
                 p.ThoiGian,
                 NguoiTao = p.NguoiDung1.HoTen,
                 p.TongTien,
                 p.SoNguoi,
                 KhuVuc = p.KhuVuc1.Ten
             });
             return Convert.CreateTable(doanhThu);
         }
     }
     catch
     {
         return null;
     }
 }
コード例 #7
0
ファイル: KhuVuc.cs プロジェクト: nhatkhoa/Zenta
        public static DataTable GetKhuVuc()
        {
            using (var db = new DB())
            {
                return DAL.Convert.CreateTable(db.KhuVucs.Select(p => new
                {
                    p.KhuVucID,
                    p.Ten,
                    p.SoBan,

                }));
            }
        }
コード例 #8
0
ファイル: CauHinh.cs プロジェクト: nhatkhoa/Zenta
        public static int NhomChinh()
        {
            using (var db = new DB())
            {
                var tuyChinh = db.CauHinhs.Single(p => p.TenCauHinh.Equals("Nhóm Chính")).TuyChinh;
                if (tuyChinh != null)
                {
                    return tuyChinh.Value;

                }
                db.CauHinhs.InsertOnSubmit(new DAL.CauHinh() {TenCauHinh = "Nhóm Chính", TuyChinh = 1});
                return db.CauHinhs.Single(p => p.TenCauHinh.Equals("Nhóm Chính")).TuyChinh.Value;
            }
        }
コード例 #9
0
ファイル: KhuVuc.cs プロジェクト: nhatkhoa/Zenta
        public static void AddKhuVuc(string ten, int soBan)
        {
            // ---- Tạo mới một đối tượng Khu Vực
            var kv = new DAL.KhuVuc()
            {
                Ten = ten,
                SoBan = soBan
            };

            // ---- Khai báo sử dụng biến db là đối tượng DB linq
            using (var db = new DB())
            {
                // ---- Gọi phương thức thêm mới một đối tượng khu vực
                db.KhuVucs.InsertOnSubmit(kv);
                // ---- Cập nhật vào cơ sở dữ liệu
                db.SubmitChanges();
            }
        }
コード例 #10
0
ファイル: NguoiDung.cs プロジェクト: nhatkhoa/Zenta
 public static DataTable GetListNguoiDung()
 {
     using (var db = new DB())
     {
         // ---- Truy vấn toàn bộ danh sách người dùng chưa bị xoá
         var nd = db.NguoiDungs.Where(p=> !p.Xoa.Value)
             .Select(p => new
         {
             p.NguoiDungID,
             p.HoTen,
             p.TaiKhoan,
             p.MatKhau,
             p.QuanTri,
             AD = p.NguoiDungID == CauHinh.AdminChinh()
         });
         // ---- Trả về dưới dạng data table
         return DAL.Convert.CreateTable(nd);
     }
 }
コード例 #11
0
ファイル: Report.cs プロジェクト: nhatkhoa/Zenta
 public static DataTable GetLuongKhachTheoKhuVuc()
 {
     try
     {
         using (var db = new DB())
         {
             return Convert.CreateTable(db.PhieuThus.Where(p=>!p.ThanhToan.Value).Select(p => new
             {
                 p.PhieuThuID,
                 KhuVuc = p.KhuVuc1.Ten,
                 p.TongTien,
                 p.SoNguoi
             }));
         }
     }
     catch
     {
         return null;
     }
 }
コード例 #12
0
ファイル: NguoiDung.cs プロジェクト: nhatkhoa/Zenta
        public static void AddNguoiDung(string hoTen, string taiKhoan, string matKhau, bool quanTri)
        {
            using (var db = new DB())
            {
               // ---- Khởi tạo một đối tượng Người Dùng mới
                var nd = new DAL.NguoiDung()
                {
                    HoTen = hoTen,
                    TaiKhoan = taiKhoan,
                    MatKhau = matKhau,
                    QuanTri = quanTri,
                    Xoa = false
                };
                // ---- Thêm vào CSDL
                db.NguoiDungs.InsertOnSubmit(nd);

                // ---- Cập nhật thay đổi lên CSDL
                db.SubmitChanges();
            }
        }
コード例 #13
0
ファイル: PhieuThu.cs プロジェクト: nhatkhoa/Zenta
 public static bool DelPhieuThu(int phieuThu)
 {
     try
     {
         using (var db = new DB())
         {
             // ----  Truy vấn đến phiếu thu cần xóa
             var del = db.PhieuThus.Single(p => p.PhieuThuID.Equals(phieuThu));
             // ---- Xóa khỏi CSDL
             db.PhieuThus.DeleteOnSubmit(del);
             // ---- Cập nhật thay đổi
             db.SubmitChanges();
         }
         return true;
     }
     catch
     {
         return false;
     }
 }
コード例 #14
0
ファイル: KhuVuc.cs プロジェクト: nhatkhoa/Zenta
        public static void UpdateKhuVuc(int id, string ten, int soBan)
        {
            using (var db = new DB())
            {
                try
                {
                    // ---- Truy vấn đến đối tượng (đầu tiên) có id trùng với id truyền vào
                    var kv = db.KhuVucs.Single(p => p.KhuVucID.Equals(id));
                    // ---- Thay đổi giá trị
                    kv.Ten = ten;
                    kv.SoBan = soBan;
                    // ---- Cập nhật vào cơ sở dữ liệu
                    db.SubmitChanges();
                }
                catch
                {
                    // ---- Trường hợp cơ sở dữ liệu không tồn tại id trùng
                }

            }
        }
コード例 #15
0
ファイル: CauHinh.cs プロジェクト: nhatkhoa/Zenta
        public static void SetAdminChinh(int admin)
        {
            using (var db = new DB())
            {
                var ad = db.CauHinhs.Single(p => p.TenCauHinh.Contains("Master Admin"));
                if (ad != null)
                {
                    ad.TuyChinh = admin;
                    db.SubmitChanges();
                }
                else
                {
                    db.CauHinhs.InsertOnSubmit(new DAL.CauHinh()
                    {
                        TenCauHinh = "Master Admin",
                        TuyChinh = admin
                    });
                    db.SubmitChanges();

                }
                db.SubmitChanges();
            }
        }
コード例 #16
0
ファイル: PhieuThu.cs プロジェクト: nhatkhoa/Zenta
        public static DataTable GetChiTiet(int phieuThu)
        {
            try
            {
                using (var db = new DB())
                {
                // ---- Join Danh mục với nhóm danh mục
                var danhMuc = db.DanhMucs.Join(db.NhomDMs, dm => dm.Nhom, nhom => nhom.NhomID, (dm, nhom) => new
                {
                    dm.DanhMucID,
                    Nhom = nhom.Ten,
                    dm.Ten,
                    dm.DonGia

                });

                    // ----- Join 3 bảng chi tiết, danh mục, nhóm danh mục
                    return Convert.CreateTable(db.ChiTietPTs.Where(p => p.PhieuThu.Equals(phieuThu))
                        .Join(danhMuc, ct => ct.DanhMuc, dm => dm.DanhMucID,
                            (ct, dm) => new
                            {
                                dm.DanhMucID,
                                dm.Nhom,
                                dm.Ten,
                                dm.DonGia,
                                ct.SoLuong,
                                ThanhTien = ct.SoLuong*dm.DonGia,
                                ThaoTac = 0,
                            }));
                }
            }
            catch
            {
                return null;
            }
        }
コード例 #17
0
 public ManageUnitOfWork(DB context)
 {
     dbContext = context;
 }
コード例 #18
0
ファイル: NguoiDung.cs プロジェクト: nhatkhoa/Zenta
 public static DataTable GetThungRac()
 {
     using (var db = new DB())
     {
         // ---- Truy vấn toàn bộ danh sách người dùng đã bị xoá
         var nd = db.NguoiDungs.Where(p => p.Xoa.Value)
             .Select(p => new
             {
                 p.NguoiDungID,
                 p.HoTen,
                 p.TaiKhoan,
                 p.QuanTri
             });
         // ---- Trả về dưới dạng data table
         return DAL.Convert.CreateTable(nd);
     }
 }
コード例 #19
0
ファイル: PhieuThu.cs プロジェクト: nhatkhoa/Zenta
 public static bool UpdateKhuVuc(int phieuThu, int khuVuc)
 {
     try
     {
         using (var db = new DB())
         {
             // ----  Truy vấn đến phiếu thu cần xóa
             var pt = db.PhieuThus.Single(p => p.PhieuThuID.Equals(phieuThu));
             // --- Thay đổi giá trị
             pt.KhuVuc = khuVuc;
             // ---- Cập nhật thay đổi
             db.SubmitChanges();
         }
         return true;
     }
     catch
     {
         return false;
     }
 }
コード例 #20
0
ファイル: NguoiDung.cs プロジェクト: nhatkhoa/Zenta
 public static int Login(string taiKhoan, string matKhau)
 {
     try
     {
         using (var db = new DB())
         {
             // ---- truy vấn đến người dùng có tài khoản trùng và chưa bị xoá
             var nd = db.NguoiDungs
                 .Single(p => !p.Xoa.Value && p.TaiKhoan.Equals(taiKhoan) && p.MatKhau.Equals(matKhau));
             // ---- Gán id người đã đăng nhập bằng id mới
             DaDangNhap = nd.NguoiDungID;
             // ---- Trả về true nếu có tồn tại người dùng trong truy vấn
             return nd.NguoiDungID;
         }
     }
     catch
     {
         return 0;
     }
 }
コード例 #21
0
ファイル: PhieuThu.cs プロジェクト: nhatkhoa/Zenta
        public static void UpdateChiTiet(int phieuThu, DataTable chiTiet)
        {
            using (var db = new DB())
            {
                // ---- Lấy danh sách items thuộc nhóm chính => số người
                var soNguoi =
                    chiTiet.Select()
                        .Where(p => p["Nhom"].Equals(DanhMuc.GetTenNhom(CauHinh.NhomChinh())))
                        .Sum(p => (int) p["SoLuong"]);
                // ---- Chuyển toàn bộ table chi tiết qua danh sách ChiTietPT
                var listMoi = chiTiet.Select().Select(p => new ChiTietPT()
                {
                    PhieuThu = phieuThu,
                    DanhMuc = (int) p["DanhMucID"],
                    SoLuong = (int) p["SoLuong"]
                });
                // ---- Danh sách các danh mục từ ChiTiet mới
                var danhMucMoi = listMoi.Select(p => p.DanhMuc);

                // ---- Truy vấn danh sách chi tiết gốc
                var listCu = db.ChiTietPTs.Where(p => p.PhieuThu.Equals(phieuThu));
                // ---- CDanh sách danh mục từ chi tiết gốc
                var danhMucCu = listCu.Select(p => p.DanhMuc);

                // ---- Nếu DS cũ rỗng thì thêm toàn bộ chi tiết trong list vào cơ sở dữ liệu
                if (listCu.Count() == 0)
                {
                    db.ChiTietPTs.InsertAllOnSubmit(listMoi);
                    db.SubmitChanges();
                }
                else
                {
                    // ------- Truy vấn danh sách phần tử trong danh sách cũ không tồn tại trong danh sách mới
                    var del = listCu.Where(p => !danhMucMoi.Contains(p.DanhMuc));
                    // ---- Xóa danh sách del khỏi CSDL
                    db.ChiTietPTs.DeleteAllOnSubmit(del);
                    // ---- Cập nhật thay đổi
                    db.SubmitChanges();

                    // ---- Truy vấn những phần tử trong list mới mà không tồn tại trong danh sách cũ
                    var neW = listMoi.Where(p => !danhMucCu.Contains(p.DanhMuc));
                    // ---- Thêm vào CSDL
                    db.ChiTietPTs.InsertAllOnSubmit(neW);
                    // ---- Cập nhật thay đổi
                    db.SubmitChanges();

                    // ---- Truy vấn những phần tử trong list mới mà danh mục nó tồn tại trong DS cũ nhưng khác về số lượng
                    var update = listMoi.Where(p =>listCu.Any(t=>t.DanhMuc.Equals(p.DanhMuc) && !t.SoLuong.Equals(p.SoLuong)));
                    foreach (var i in update)
                    {

                        // ---- Với mỗi chi tiết trùng thì cập nhật số lượng mới
                        db.ChiTietPTs.Single(p => i.DanhMuc.Equals(p.DanhMuc) && p.PhieuThu.Equals(phieuThu)).SoLuong = i.SoLuong;
                        // ---- Cập nhật thay đổi
                        db.SubmitChanges();
                    }
                }

                // ----- Cập nhật Tổng tiền cho phiếu thu vừa thao tác
                var pt = db.PhieuThus.Single(p => p.PhieuThuID.Equals(phieuThu));
                pt.TongTien = chiTiet.Select().Sum(p => (long) p["ThanhTien"]);
                pt.SoNguoi = soNguoi > 0 ? soNguoi : 1;
                // ----- Cập nhật thay đổi
                db.SubmitChanges();
            }
        }
コード例 #22
0
ファイル: NguoiDung.cs プロジェクト: nhatkhoa/Zenta
 public static void PhucHoi(int id)
 {
     using (var db = new DB())
     {
         // ---- Truy vấn đến người dùng có id trùng với id truyền vào
         var nd = db.NguoiDungs.Single(p => p.NguoiDungID.Equals(id));
         // ---- Đặt lại cờ xoá bằng =false
         nd.Xoa = false;
         // ---- Cập nhật thay đổi CSDL
         db.SubmitChanges();
         //
     }
 }
コード例 #23
0
ファイル: PhieuThu.cs プロジェクト: nhatkhoa/Zenta
 public static DataTable GetPhieuThu(bool thanhToan = false)
 {
     try
     {
         using (var db = new DB())
         {
             return Convert.CreateTable(db.PhieuThus.Where(p => p.ThanhToan.Equals(thanhToan)).Select(p=> new
             {
                 p.PhieuThuID,
                 p.ThoiGian,
                 NguoiDung = p.NguoiDung1.HoTen,
                 p.TongTien,
                 p.TienNhan,
                 p.KhuVuc,
                 p.SoNguoi
             }));
         }
     }
     catch
     {
         return null;
     }
 }
コード例 #24
0
ファイル: PhieuThu.cs プロジェクト: nhatkhoa/Zenta
 public static bool ThanhToanPhieuThu(int phieuThu, int tienNhan)
 {
     try
     {
         using (var db = new DB())
         {
             // ----  Truy vấn đến phiếu thu cần xóa
             var pt = db.PhieuThus.Single(p => p.PhieuThuID.Equals(phieuThu));
             // ---- Thay đổi cờ thanh toán
             pt.ThanhToan = true;
             if (tienNhan > 0)
             {
                 pt.TienNhan = tienNhan;
             }
             else
             {
                 throw new Exception();
             }
             // ---- Cập nhật thay đổi
             db.SubmitChanges();
         }
         return true;
     }
     catch
     {
         return false;
     }
 }
コード例 #25
0
ファイル: Report.cs プロジェクト: nhatkhoa/Zenta
 public static DataTable GetPhieuThu()
 {
     try
     {
         using (var db = new DB())
         {
             return Convert.CreateTable(db.PhieuThus.Select(p => new
             {
                 p.PhieuThuID,
                 p.ThoiGian,
                 Nam = p.ThoiGian.Value.Year,
                 Thang = p.ThoiGian.Value.Month,
                 Ngay = p.ThoiGian.Value.Day,
                 Gio = p.ThoiGian.Value.Hour,
                 Person = p.NguoiDung1.HoTen,
                 KhuVuc = p.KhuVuc1.Ten,
                 p.TongTien,
                 p.SoNguoi
             }));
         }
     }
     catch
     {
         return null;
     }
 }
コード例 #26
0
ファイル: NguoiDung.cs プロジェクト: nhatkhoa/Zenta
 public static void UpdateNguoiDung(int id, string hoTen, string taiKhoan, string matKhau, bool quanTri)
 {
     using (var db = new DB())
     {
         // ---- Truy vấn người dùng (đầu tiên) có id truyền vào
         var nd = db.NguoiDungs.Single(p => p.NguoiDungID.Equals(id));
         // ---- Thay đổi giá trị
         nd.HoTen = hoTen;
         nd.TaiKhoan = taiKhoan;
         nd.MatKhau = matKhau;
         nd.QuanTri = quanTri;
         // ---- Cập nhật thay đổi lên CSDL
         db.SubmitChanges();
     }
 }
コード例 #27
0
ファイル: NguoiDung.cs プロジェクト: nhatkhoa/Zenta
        public static Dictionary<string, object> GetNguoiDung(int id)
        {
            try
            {
                using (var db = new DB())
                {
                    // ---- Truy vấn toàn bộ danh sách người dùng
                    var nd = db.NguoiDungs.Single(p => p.NguoiDungID.Equals(id));

                    // ---- Khởi tạo một dictionary để chứa thông tin
                    var dic = new Dictionary<string, object>
                    {
                        {"ID", nd.NguoiDungID},
                        {"HoTen", nd.HoTen},
                        {"TaiKhoan", nd.TaiKhoan},
                        {"MatKhau", nd.MatKhau},
                        {"QuanTri", nd.QuanTri}
                    };

                    // ---- Trả về dưới dạng data table
                    return dic;
                }
            }
            catch
            {
                // ---- Lỗi trả về người dùng null
                var dic = new Dictionary<string, object>
                    {
                        {"ID", -1},
                        {"HoTen", "Không có người dùng"},
                        {"TaiKhoan", "None"},
                        {"MatKhau", ""},
                        {"QuanTri", "false"}
                    };

                // ---- Trả về dưới dạng data table
                return dic;
            }
        }
コード例 #28
0
ファイル: NguoiDung.cs プロジェクト: nhatkhoa/Zenta
        public static object[] GetObjectNguoiDung(int id)
        {
            try
            {
                using (var db = new DB())
                {
                    // ---- Truy vấn toàn bộ danh sách người dùng
                    var nd = db.NguoiDungs.Single(p => p.NguoiDungID.Equals(id));

                    // ---- Khởi tạo một Mảng Object để chứa thông tin
                    var obj= new Object[]
                    {
                        nd.NguoiDungID,
                        nd.HoTen,
                        nd.TaiKhoan,
                        nd.TaiKhoan,
                        nd.MatKhau,
                        nd.QuanTri
                    };

                    // ---- Trả về dưới dạng data table
                    return obj;
                }
            }
            catch
            {
                return null;
            }
        }
コード例 #29
0
ファイル: Report.cs プロジェクト: nhatkhoa/Zenta
 public static DataTable ReportDanhMuc()
 {
     try
     {
         using (var db = new DB())
         {
             // ---- Lấy danh mục trùng nhóm truyền vào và chưa xoá
             return DAL.Convert.CreateTable(db.DanhMucs.Where(p => !p.Xoa.Value)
                 .Select(p => new
                 {
                     p.DanhMucID,
                     TenNhom = p.NhomDM.Ten,
                     p.Ten,
                     p.DonGia
                 }));
         }
     }
     catch
     {
         return null;
     }
 }