private void CheckRemember(Window p)
        {
            if (!File.Exists("Pass.txt"))
            {
                FileStream fs;
                fs = new FileStream("Pass.txt", FileMode.Create);
                StreamWriter sWriter = new StreamWriter(fs, Encoding.UTF8);

                sWriter.WriteLine("Hello World!");
                sWriter.Flush();
                fs.Close();
            }

            string[] lines = File.ReadAllLines("Pass.txt");
            if (lines[lines.Length - 1] == "1")
            {
                Tendangnhap     = MyStaticMethods.Base64Decode(lines[lines.Length - 3]);
                Matkhau         = MyStaticMethods.Base64Decode(lines[lines.Length - 2]);
                CheckedRemember = true;
            }

            foreach (PasswordBox pb in MyStaticMethods.FindVisualChildren <PasswordBox>(p))
            {
                if (pb.Name == "pb_cr")
                {
                    pb.Password = Matkhau;
                }
            }
        }
        private string GuiMail(Model.TAIKHOAN TK)
        {
            string mail       = TK.email;
            string makhoiphuc = MyStaticMethods.RandomString(10, false);

            string from     = "*****@*****.**";
            string frompass = "******";

            if (!string.IsNullOrEmpty(mail))
            {
                var mess = "Mã xác thực : " + makhoiphuc;


                MailMessage messenge = new MailMessage(from, mail, ("Xin chào " + TK.ten_taikhoan), mess);
                SmtpClient  client   = new SmtpClient("smtp.gmail.com", 587);
                client.EnableSsl = true;

                client.Credentials = new NetworkCredential(from, frompass);

                client.Send(messenge);
            }
            else
            {
                Active  = true;
                Message = "Tài khoản này không có E-Mail khôi phục";
            }


            return(makhoiphuc);
        }
예제 #3
0
        public Menu_ViewModel()
        {
            Select_Command = new RelayCommand <ListView>(p =>
            {
                return(true);
            }, p =>
            {
                foreach (ListViewItem item in MyStaticMethods.FindVisualChildren <ListViewItem>(p))
                {
                    BrushConverter bc = new BrushConverter();
                    item.Foreground   = (Brush)bc.ConvertFrom("#FF5C99D6");
                }

                Window wd = MyStaticMethods.getWindowParent(p) as Window;

                ListViewItem selectedItem = p.SelectedItem as ListViewItem;
                int i = Convert.ToInt32(selectedItem.Uid);

                if (wd != null)
                {
                    foreach (Frame item in MyStaticMethods.FindVisualChildren <Frame>(wd))
                    {
                        if (item.Name == "main_content")
                        {
                            Dieuhuong(i, item);
                        }
                        break;
                    }
                }

                selectedItem.Foreground = Brushes.White;
            });
        }
        private bool Kiemtrataikhoan(string tendn, string matkhau)
        {
            string mk     = MyStaticMethods.MD5Hash(MyStaticMethods.Base64Encode(matkhau));
            var    result = Model.DataProvider.Ins.DB.TAIKHOANs.Where(x => x.ten_taikhoan == tendn && x.matkhau == mk && x.IsDeleted == false).Count();

            if (result != 0)
            {
                return(true);
            }

            return(false);
        }
        private void Filter_ngaythang(string datest, string datend)
        {
            DateTime date_start = MyStaticMethods.ConvertStringtoDate(datest);
            DateTime date_end   = MyStaticMethods.ConvertStringtoDate(datend);

            int tongnhap = 0;
            int tongxuat = 0;
            int tonkho   = 0;

            var list_mathang = Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false).ToList();

            foreach (var item in list_mathang)
            {
                var list_phieunhap = Model.DataProvider.Ins.DB.CHITIETPHIEUNHAPs.Where(x => x.MATHANG.ma_mathang == item.ma_mathang && x.IsDeleted == false).ToList();
                var list_phieuxuat = Model.DataProvider.Ins.DB.CHITIETPHIEUXUATs.Where(x => x.CHITIETPHIEUNHAP.MATHANG.ma_mathang == item.ma_mathang && x.IsDeleted == false).ToList();

                if (list_phieunhap != null)
                {
                    tongnhap = list_phieunhap.Where(x => MyStaticMethods.ConvertStringtoDate(x.PHIEUNHAP.ngaynhap) >= date_start &&
                                                    MyStaticMethods.ConvertStringtoDate(x.PHIEUNHAP.ngaynhap) <= date_end).Sum(x => x.soluongthuc);

                    tonkho = list_phieunhap.Where(x => MyStaticMethods.ConvertStringtoDate(x.PHIEUNHAP.ngaynhap) >= date_start &&
                                                  MyStaticMethods.ConvertStringtoDate(x.PHIEUNHAP.ngaynhap) <= date_end).Sum(x => x.soluongton);
                }

                else
                {
                    tongnhap = 0;
                    tonkho   = 0;
                }

                if (list_phieuxuat != null)
                {
                    tongxuat = list_phieuxuat.Where(x => MyStaticMethods.ConvertStringtoDate(x.PHIEUXUAT.ngayxuat) >= date_start &&
                                                    MyStaticMethods.ConvertStringtoDate(x.PHIEUXUAT.ngayxuat) <= date_end).Sum(x => x.soluongthucxuat);
                }

                else
                {
                    tongxuat = 0;
                }

                Model.Thongke obj = new Model.Thongke(item, tongnhap, tongxuat, tonkho);
                if (!List.Contains(obj))
                {
                    List.Add(obj);
                }
            }
        }
        private Model.PHIEUNHAP CheckPhieunhap(string str)
        {
            Model.PHIEUNHAP result = Model.DataProvider.Ins.DB.PHIEUNHAPs.Where(x => x.ngaynhap == str).SingleOrDefault();
            if (result == null)
            {
                Model.PHIEUNHAP newItem = new Model.PHIEUNHAP()
                {
                    ma_phieunhap = Guid.NewGuid().ToString(),
                    ngaynhap     = MyStaticMethods.ConvertDate2Vn_Today(),
                };

                Model.DataProvider.Ins.DB.PHIEUNHAPs.Add(newItem);
                Model.DataProvider.Ins.DB.SaveChanges();

                return(newItem);
            }

            return(result);
        }
 private void FindByDate(DateTime date_start, DateTime date_end)
 {
     for (int i = 0; i < List.Count(); i++)
     {
         while ((MyStaticMethods.ConvertStringtoDate(List[i].PHIEUNHAP.ngaynhap)) < date_start || (MyStaticMethods.ConvertStringtoDate(List[i].PHIEUNHAP.ngaynhap) > date_end))
         {
             if (List[i] == List[List.Count() - 1])
             {
                 List.Remove(List[i]);
                 break;
             }
             else
             {
                 List.Remove(List[i]);
             }
         }
         ;
     }
 }
        private void IsRemember()
        {
            FileStream fs = new FileStream("Pass.txt", FileMode.Append);

            StreamWriter writeFile = new StreamWriter(fs, Encoding.UTF8);

            if (CheckedRemember == true)
            {
                writeFile.WriteLine(MyStaticMethods.Base64Encode(Tendangnhap));
                writeFile.WriteLine(MyStaticMethods.Base64Encode(Matkhau));
                writeFile.WriteLine("1");
                writeFile.Flush();
            }
            else
            {
                writeFile.WriteLine("0");
            }
            writeFile.Close();
        }
예제 #9
0
 public bool Predicate(int input) => MyStaticMethods.IsPrime(input);
예제 #10
0
        public Mathang_ViewModel()
        {
            List       = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));
            DeleteList = new ObservableCollection <Model.MATHANG>();

            List_Loai       = new ObservableCollection <Model.LOAIHANG>(Model.DataProvider.Ins.DB.LOAIHANGs.Where(x => x.IsDeleted == false));
            List_Donvi      = new ObservableCollection <Model.DONVITINH>(Model.DataProvider.Ins.DB.DONVITINHs.Where(x => x.IsDeleted == false));
            List_Nhacungcap = new ObservableCollection <Model.NHACUNGCAP>(Model.DataProvider.Ins.DB.NHACUNGCAPs.Where(x => x.IsDeleted == false));

            Active        = false;
            IsOpen        = false;
            IsOpen_Filter = false;

            Active_Command = new RelayCommand <object>(p =>
            {
                if (Active == false)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Active = false;
            });

            CloseDialog_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                IsOpen = false;
            });

            Load_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                List       = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));
                DeleteList = new ObservableCollection <Model.MATHANG>();

                List_Loai       = new ObservableCollection <Model.LOAIHANG>(Model.DataProvider.Ins.DB.LOAIHANGs.Where(x => x.IsDeleted == false));
                List_Donvi      = new ObservableCollection <Model.DONVITINH>(Model.DataProvider.Ins.DB.DONVITINHs.Where(x => x.IsDeleted == false));
                List_Nhacungcap = new ObservableCollection <Model.NHACUNGCAP>(Model.DataProvider.Ins.DB.NHACUNGCAPs.Where(x => x.IsDeleted == false));

                Active        = false;
                IsOpen        = false;
                IsOpen_Filter = false;

                ListDonvi_Filter      = new ObservableCollection <Model.DONVITINH>(Model.DataProvider.Ins.DB.DONVITINHs.Where(x => x.IsDeleted == false));
                ListNhacungcap_Filter = new ObservableCollection <Model.NHACUNGCAP>(Model.DataProvider.Ins.DB.NHACUNGCAPs.Where(x => x.IsDeleted == false));
                ListLoai_Filter       = new ObservableCollection <Model.LOAIHANG>(Model.DataProvider.Ins.DB.LOAIHANGs.Where(x => x.IsDeleted == false));
            });

            #region Tao moi
            Reset_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                SelectedItem = null;
                Tenmathang   = "";
                Dong         = "";
                Hang         = "";
                SNhacungcap  = null;
                SLoai        = null;
                SDonvi       = null;
                Mota         = "";
            });
            #endregion

            #region Phan them
            Insert_Command = new RelayCommand <object>(p =>
            {
                if (string.IsNullOrEmpty(Tenmathang) || string.IsNullOrEmpty(Hang) || string.IsNullOrEmpty(Dong))
                {
                    return(false);
                }

                if (SDonvi == null || SNhacungcap == null || SLoai == null)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                SelectedItem = null;

                Model.MATHANG newItem = new Model.MATHANG()
                {
                    ma_mathang  = MyStaticMethods.RandomInt(10),
                    ten_mathang = Tenmathang,
                    dong        = Dong,
                    hang        = Hang,
                    LOAIHANG    = SLoai,
                    DONVITINH   = SDonvi,
                    NHACUNGCAP  = SNhacungcap,
                    mota        = (string.IsNullOrEmpty(Mota)) ? null : Mota,
                    IsDeleted   = false
                };

                Model.Mathang_Service.Insert(newItem);

                List.Insert(0, newItem);
                SelectedItem = newItem;

                Active  = true;
                Message = "Thêm mới thành công !!!";
            });
            #endregion

            #region Phan sua
            Update_Command = new RelayCommand <object>(p =>
            {
                if (SelectedItem == null)
                {
                    return(false);
                }

                if (string.IsNullOrEmpty(Tenmathang) || string.IsNullOrEmpty(Hang) || string.IsNullOrEmpty(Dong))
                {
                    return(false);
                }

                if (SDonvi == null || SNhacungcap == null || SLoai == null)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Model.MATHANG UpdateItem = new Model.MATHANG()
                {
                    ten_mathang = Tenmathang,
                    dong        = _Dong,
                    hang        = _Hang,
                    LOAIHANG    = SLoai,
                    NHACUNGCAP  = SNhacungcap,
                    DONVITINH   = SDonvi,
                    mota        = (string.IsNullOrEmpty(Mota)) ? null : Mota
                };
                Model.Mathang_Service.Update(UpdateItem, Mamathang);

                for (int i = 0; i < List.Count(); i++)
                {
                    if (List[i] == SelectedItem)
                    {
                        List[i] = new Model.MATHANG()
                        {
                            ma_mathang  = Mamathang,
                            ten_mathang = Tenmathang,
                            dong        = Dong,
                            hang        = Hang,
                            NHACUNGCAP  = SNhacungcap,
                            DONVITINH   = SDonvi,
                            LOAIHANG    = SLoai,
                            mota        = (string.IsNullOrEmpty(Mota)) ? null : Mota
                        };
                        break;
                    }
                }
                //MessageBox.Show("Chỉnh sửa thành công", "THÔNG BÁO");

                SelectedItem = null;
                Tenmathang   = "";
                Dong         = "";
                Hang         = "";
                SNhacungcap  = null;
                SLoai        = null;
                SDonvi       = null;
                Mota         = "";

                Active  = true;
                Message = "Chỉnh sửa thành công !!!";
            });
            #endregion

            #region Phan xoa
            AddDeleteList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                DeleteList.Add(List.Where(x => x.ma_mathang == p.Uid.ToString()).SingleOrDefault());
            });

            RemoveDeleteList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                DeleteList.Remove(List.Where(x => x.ma_mathang == p.Uid.ToString()).SingleOrDefault());
            });

            DeleteShow_Command = new RelayCommand <object>(p =>
            {
                if (DeleteList.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsOpen  = true;
                Content = "  Xóa các bản ghi được chọn ???";
            });

            Delete_Command = new RelayCommand <object>(p =>
            {
                if (DeleteList.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                RemoveIteminDb();
                RemoveIteminList();

                DeleteList   = new ObservableCollection <Model.MATHANG>();
                IsOpen       = false;
                SelectedItem = null;
            });
            #endregion

            #region Phan loc

            ListDonvi_Filter      = new ObservableCollection <Model.DONVITINH>(Model.DataProvider.Ins.DB.DONVITINHs.Where(x => x.IsDeleted == false));
            ListNhacungcap_Filter = new ObservableCollection <Model.NHACUNGCAP>(Model.DataProvider.Ins.DB.NHACUNGCAPs.Where(x => x.IsDeleted == false));
            ListLoai_Filter       = new ObservableCollection <Model.LOAIHANG>(Model.DataProvider.Ins.DB.LOAIHANGs.Where(x => x.IsDeleted == false));

            OpenFilter_Command = new RelayCommand <object>(p =>
            {
                if (IsOpen == true || IsOpen_Filter == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsOpen_Filter = true;
            });

            ResetFilter_Command = new RelayCommand <Button>(p =>
            {
                return(true);
            }, p =>
            {
                List = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));

                SLoai_Filter       = null;
                SNhacungcap_Filter = null;
                SDonvi_Filter      = null;

                IsOpen_Filter = false;
            });

            Filter_Command = new RelayCommand <Button>(p =>
            {
                return(true);
            }, p =>
            {
                List = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));

                if (SLoai_Filter != null)
                {
                    FilterbyLoaihang(SLoai_Filter.ma_loaihang);
                }
                if (SNhacungcap_Filter != null)
                {
                    FilterbyNhacungcap(SNhacungcap_Filter.ma_nhacungcap);
                }
                if (SDonvi_Filter != null)
                {
                    FilterbyDonvi(SDonvi_Filter.ma_donvi);
                }

                IsOpen_Filter = false;
            });

            #endregion

            #region Phan sap xep

            OrderbyTenMathang_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.MATHANG> chkList = new ObservableCollection <Model.MATHANG>(List.OrderByDescending(x => x.ten_mathang));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.MATHANG>(List.OrderBy(x => x.ten_mathang));
                }
                else
                {
                    List = new ObservableCollection <Model.MATHANG>(chkList);
                }
            });

            OrderbyTennhacungcap_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.MATHANG> chkList = new ObservableCollection <Model.MATHANG>(List.OrderByDescending(x => x.NHACUNGCAP.ten_nhacungcap));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.MATHANG>(List.OrderBy(x => x.NHACUNGCAP.ten_nhacungcap));
                }
                else
                {
                    List = new ObservableCollection <Model.MATHANG>(chkList);
                }
            });

            OrderbyTenloai_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.MATHANG> chkList = new ObservableCollection <Model.MATHANG>(List.OrderByDescending(x => x.LOAIHANG.ten_loaihang));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.MATHANG>(List.OrderBy(x => x.LOAIHANG.ten_loaihang));
                }
                else
                {
                    List = new ObservableCollection <Model.MATHANG>(chkList);
                }
            });

            OrderbyTendonvi_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.MATHANG> chkList = new ObservableCollection <Model.MATHANG>(List.OrderByDescending(x => x.DONVITINH.ten_donvi));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.MATHANG>(List.OrderBy(x => x.DONVITINH.ten_donvi));
                }
                else
                {
                    List = new ObservableCollection <Model.MATHANG>(chkList);
                }
            });

            #endregion
        }
        public Taikhoan_ViewModel()
        {
            List = new ObservableCollection <Model.TAIKHOAN>(Model.DataProvider.Ins.DB.TAIKHOANs.Where(x => x.IsDeleted == false).ToList().OrderBy(x => x.NHANVIEN.ma_quyen));

            TaoDSNhanvien();
            DeleteList = new ObservableCollection <Model.TAIKHOAN>();

            Active = false;
            IsOpen = false;

            Active_Command = new RelayCommand <object>(p =>
            {
                if (Active == false)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Active = false;
            });

            CloseDialog_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                IsOpen = false;
            });

            #region Trang quan tri he thong

            #region Load trang quan tri

            Load_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                List = new ObservableCollection <Model.TAIKHOAN>(Model.DataProvider.Ins.DB.TAIKHOANs.Where(x => x.IsDeleted == false).ToList().OrderBy(x => x.NHANVIEN.ma_quyen));

                TaoDSNhanvien();
                DeleteList = new ObservableCollection <Model.TAIKHOAN>();
            });

            #endregion

            #region Them tai khoan

            GetPassword_Command = new RelayCommand <PasswordBox>(p =>
            {
                if (p.Password.Length < 5)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Matkhautaikhoan = p.Password;
            });


            GetRePassword_Command = new RelayCommand <PasswordBox>(p =>
            {
                if (p.Password.Length < 5)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Matkhauxacnhan = p.Password;
            });



            Insert_Command = new RelayCommand <object>(p =>
            {
                if (string.IsNullOrEmpty(Tentaikhoan) || string.IsNullOrEmpty(Emailkhoiphuc) || string.IsNullOrEmpty(Matkhautaikhoan) || string.IsNullOrEmpty(Matkhauxacnhan))
                {
                    return(false);
                }

                if (SNhanvien == null)
                {
                    return(false);
                }

                if (MyStaticMethods.CheckEmail(Emailkhoiphuc) == false)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                if (Matkhauxacnhan == Matkhautaikhoan)
                {
                    if (!Kiemtratendangnhap(Tentaikhoan))
                    {
                        Model.TAIKHOAN newItem = new Model.TAIKHOAN()
                        {
                            ma_taikhoan  = MyStaticMethods.RandomInt(10),
                            ten_taikhoan = Tentaikhoan,
                            email        = Emailkhoiphuc,
                            matkhau      = MyStaticMethods.MD5Hash(MyStaticMethods.Base64Encode(Matkhautaikhoan)),
                            NHANVIEN     = SNhanvien,
                            IsDeleted    = false,
                            IsLogin      = false
                        };

                        Model.DataProvider.Ins.DB.TAIKHOANs.Add(newItem);
                        Model.DataProvider.Ins.DB.SaveChanges();

                        List.Insert(0, newItem);
                        TaoDSNhanvien();
                        SelectedItem = newItem;

                        Active  = true;
                        Message = "Thêm mới thành công !!!";
                    }
                    else
                    {
                        Active  = true;
                        Message = "Tên đăng nhập đã tồn tại !!!";
                    }
                }
                else
                {
                    Active  = true;
                    Message = "Mật khẩu và xác nhận mật khẩu không trùng khớp !!!";
                }
            });
            #endregion

            #region Tao moi
            Reset_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                Tentaikhoan     = "";
                Matkhautaikhoan = "";
                Matkhauxacnhan  = "";
                Emailkhoiphuc   = "";
                SNhanvien       = null;

                SelectedItem = null;
            });
            #endregion

            #region Xoa tai khoan

            DeleteShow_Command = new RelayCommand <object>(p =>
            {
                if (DeleteList.Count() == 0)
                {
                    return(false);
                }

                if (IsOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsOpen  = true;
                Content = "  Xóa vĩnh viễn các bản ghi được chọn ???";
            });

            AddDeleteList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                DeleteList.Add(List.Where(x => x.ma_taikhoan == p.Uid.ToString()).SingleOrDefault());
            });

            RemoveDeleteList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                DeleteList.Remove(List.Where(x => x.ma_taikhoan == p.Uid.ToString()).SingleOrDefault());
            });

            Delete_Command = new RelayCommand <object>(p =>
            {
                if (DeleteList.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                RemoveIteminDb();
                RemoveIteminList();

                DeleteList = new ObservableCollection <Model.TAIKHOAN>();

                Tentaikhoan     = "";
                Matkhautaikhoan = "";
                Emailkhoiphuc   = "";
                SNhanvien       = null;

                TaoDSNhanvien();
                IsOpen = false;
            });
            #endregion

            #endregion

            #region Trang dang nhap

            #region Dang nhap

            LoadDangnhap_Command = new RelayCommand <Window>(p =>
            {
                return(true);
            }, p =>
            {
                Matkhau = string.Empty;
                CheckRemember(p);
            });

            getCurrentPass_Command = new RelayCommand <PasswordBox>(p =>
            {
                return(true);
            }, p =>
            {
                Matkhau = p.Password;
            });

            Login_Command = new RelayCommand <Button>(p =>
            {
                if (string.IsNullOrEmpty(Matkhau) || string.IsNullOrEmpty(Tendangnhap))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                if (Kiemtrataikhoan(Tendangnhap, Matkhau))
                {
                    string mk        = MyStaticMethods.MD5Hash(MyStaticMethods.Base64Encode(Matkhau));
                    var current_user = Model.DataProvider.Ins.DB.TAIKHOANs.Where(x => x.ten_taikhoan == Tendangnhap && x.matkhau == mk).SingleOrDefault();
                    if (current_user.NHANVIEN.ma_quyen == 1)
                    {
                        View.View_Quanly.Manhinhchinh view = new View.View_Quanly.Manhinhchinh();
                        view.Show();

                        //MessageBox.Show("Đăng nhập thành công", "THÔNG BÁO");
                    }
                    else
                    {
                        View.View_Thukho.Manhinhchinh view = new View.View_Thukho.Manhinhchinh();
                        view.Show();

                        //MessageBox.Show("Đăng nhập thành công", "THÔNG BÁO");
                    }

                    CurrentUser = current_user;
                    IsRemember();

                    Window w = getWindowParent(p) as Window;
                    if (p != null)
                    {
                        w.Close();
                    }

                    Chuyentrangthai_Mo(CurrentUser);
                }
                else
                {
                    Active  = true;
                    Message = "Vui lòng kiểm tra lại tên đăng nhập và mật khẩu !!!";
                }
            });

            #endregion

            #region Khoi phuc

            Send_Command = new RelayCommand <Button>(p =>
            {
                return(true);
            }, p =>
            {
                if (!string.IsNullOrEmpty(Tendangnhap))
                {
                    var result = Model.DataProvider.Ins.DB.TAIKHOANs.Where(x => x.ten_taikhoan == Tendangnhap).Count();
                    if (result != 0)
                    {
                        Model.TAIKHOAN TK = Model.DataProvider.Ins.DB.TAIKHOANs.Where(x => x.ten_taikhoan == Tendangnhap).SingleOrDefault();
                        try
                        {
                            Makhoiphuc = GuiMail(TK);

                            Khoiphuctk view = new Khoiphuctk();
                            view.Show();

                            Window w = getWindowParent(p) as Window;
                            if (w != null)
                            {
                                w.Close();
                            }

                            Active  = true;
                            Message = "Đã gửi mã xác thực !!! Vui lòng kiểm tra email ";
                        }
                        catch (Exception)
                        {
                            Active  = true;
                            Message = "Không thể gửi mã !!! ";
                        }
                    }
                    else
                    {
                        Active  = true;
                        Message = "Tên đăng nhập không tồn tại !!!";
                    }
                }

                else
                {
                    Active  = true;
                    Message = "Vui lòng điền tên đăng nhập !!!";
                }
            });

            Check_Command = new RelayCommand <Button>(p =>
            {
                if (string.IsNullOrEmpty(Tendangnhap) || string.IsNullOrEmpty(Maxacthuc))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Model.TAIKHOAN TK = Model.DataProvider.Ins.DB.TAIKHOANs.Where(x => x.ten_taikhoan == Tendangnhap).SingleOrDefault();

                if (Maxacthuc == Makhoiphuc)
                {
                    if (TK.NHANVIEN.ma_quyen == 1)
                    {
                        View.View_Quanly.Manhinhchinh view = new View.View_Quanly.Manhinhchinh();
                        view.Show();

                        //MessageBox.Show("Đăng nhập thành công", "THÔNG BÁO");
                    }
                    else
                    {
                        View.View_Thukho.Manhinhchinh view = new View.View_Thukho.Manhinhchinh();
                        view.Show();

                        //MessageBox.Show("Đăng nhập thành công", "THÔNG BÁO");
                    }

                    CurrentUser = TK;
                    Makhoiphuc  = "";
                    Maxacthuc   = "";

                    Window w = getWindowParent(p) as Window;
                    if (w != null)
                    {
                        w.Close();
                    }

                    Chuyentrangthai_Mo(CurrentUser);
                }
                else
                {
                    Active  = true;
                    Message = "Mã xác thực sai";
                }
            });
            #endregion

            #endregion

            #region Thay doi thong tin

            getNewCurrentPass_Command = new RelayCommand <PasswordBox>(p =>
            {
                if (p.Password.Length < 5)
                {
                    return(false);
                }

                if (string.IsNullOrEmpty(p.Password))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Matkhaumoi = p.Password;
            });

            getNewCurrentRePass_Command = new RelayCommand <PasswordBox>(p =>
            {
                if (p.Password.Length < 5)
                {
                    return(false);
                }

                if (string.IsNullOrEmpty(p.Password))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                XacnhanMatkhaumoi = p.Password;
            });

            Update_Command = new RelayCommand <Button>(p =>
            {
                if (string.IsNullOrEmpty(Tentkmoi) || string.IsNullOrEmpty(CurrentUser.email) || string.IsNullOrEmpty(CurrentUser.NHANVIEN.ten_nhanvien))
                {
                    return(false);
                }

                if (!MyStaticMethods.CheckEmail(CurrentUser.email))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                if (!Kiemtratendangnhap(Tentkmoi))
                {
                    if (!string.IsNullOrEmpty(Matkhaumoi) && !string.IsNullOrEmpty(XacnhanMatkhaumoi))
                    {
                        if (Matkhaumoi == XacnhanMatkhaumoi)
                        {
                            CurrentUser.matkhau = MyStaticMethods.MD5Hash(MyStaticMethods.Base64Encode(Matkhaumoi));
                        }
                    }

                    CurrentUser.ten_taikhoan = Tentkmoi;
                    Model.DataProvider.Ins.DB.SaveChanges();

                    Active  = true;
                    Message = "Đã cập nhật thông tin !!!";
                }
                else
                {
                    if (!string.IsNullOrEmpty(Matkhaumoi) && !string.IsNullOrEmpty(XacnhanMatkhaumoi))
                    {
                        if (Matkhaumoi == XacnhanMatkhaumoi)
                        {
                            CurrentUser.matkhau = MyStaticMethods.MD5Hash(MyStaticMethods.Base64Encode(Matkhaumoi));
                        }
                    }

                    Model.DataProvider.Ins.DB.SaveChanges();

                    Active  = true;
                    Message = "Đã cập nhật thông tin !!! Không sửa tên đăng nhập";
                }
            });

            Back_Command = new RelayCommand <Button>(p =>
            {
                return(true);
            }, p =>
            {
                Window w = getWindowParent(p) as Window;
                if (w != null)
                {
                    CurrentUser = Model.DataProvider.Ins.DB.TAIKHOANs.Where(x => x.ma_taikhoan == CurrentUser.ma_taikhoan).SingleOrDefault();
                    w.Close();
                }
            });

            #endregion

            #region Phan tinh trang

            Status_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                View.View_Quanly.Tinhtrang_nguoidung view = new View.View_Quanly.Tinhtrang_nguoidung();
                view.WindowStartupLocation = WindowStartupLocation.CenterScreen;
                view.ShowDialog();
            });

            Refesh_State_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                Capnhattrangthai();
            });

            #endregion

            #region Phan sap xep

            OrderbyTennhanvien_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                if (p == null)
                {
                    ObservableCollection <Model.TAIKHOAN> chkList = new ObservableCollection <Model.TAIKHOAN>(List.OrderByDescending(x => x.NHANVIEN.ten_nhanvien));

                    if (List[0] == chkList[0])
                    {
                        List = new ObservableCollection <Model.TAIKHOAN>(List.OrderBy(x => x.NHANVIEN.ten_nhanvien));
                    }
                    else
                    {
                        List = new ObservableCollection <Model.TAIKHOAN>(chkList);
                    }
                }
                else if (p != null)
                {
                    ObservableCollection <Model.TAIKHOAN> chkList = new ObservableCollection <Model.TAIKHOAN>(List_Tinhtrang.OrderByDescending(x => x.NHANVIEN.ten_nhanvien));

                    if (List_Tinhtrang[0] == chkList[0])
                    {
                        List_Tinhtrang = new ObservableCollection <Model.TAIKHOAN>(List_Tinhtrang.OrderBy(x => x.NHANVIEN.ten_nhanvien));
                    }
                    else
                    {
                        List_Tinhtrang = new ObservableCollection <Model.TAIKHOAN>(chkList);
                    }
                }
            });

            OrderbyTentaikhoan_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                if (p == null)
                {
                    ObservableCollection <Model.TAIKHOAN> chkList = new ObservableCollection <Model.TAIKHOAN>(List.OrderByDescending(x => x.ten_taikhoan));

                    if (List[0] == chkList[0])
                    {
                        List = new ObservableCollection <Model.TAIKHOAN>(List.OrderBy(x => x.ten_taikhoan));
                    }
                    else
                    {
                        List = new ObservableCollection <Model.TAIKHOAN>(chkList);
                    }
                }
                else if (p != null)
                {
                    ObservableCollection <Model.TAIKHOAN> chkList = new ObservableCollection <Model.TAIKHOAN>(List_Tinhtrang.OrderByDescending(x => x.ten_taikhoan));

                    if (List_Tinhtrang[0] == chkList[0])
                    {
                        List_Tinhtrang = new ObservableCollection <Model.TAIKHOAN>(List_Tinhtrang.OrderBy(x => x.ten_taikhoan));
                    }
                    else
                    {
                        List_Tinhtrang = new ObservableCollection <Model.TAIKHOAN>(chkList);
                    }
                }
            });

            OrderbyTinhtrang_Command = new RelayCommand <object>(p =>
            {
                if (List_Tinhtrang.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.TAIKHOAN> chkList = new ObservableCollection <Model.TAIKHOAN>(List_Tinhtrang.OrderByDescending(x => x.IsLogin));

                if (List_Tinhtrang[0] == chkList[0])
                {
                    List_Tinhtrang = new ObservableCollection <Model.TAIKHOAN>(List.OrderBy(x => x.IsLogin));
                }
                else
                {
                    List_Tinhtrang = new ObservableCollection <Model.TAIKHOAN>(chkList);
                }
            });

            #endregion
        }
예제 #12
0
        public CheckInOut_ViewModel()
        {
            Load_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                IsActive = false;
                Message  = String.Empty;

                IsChkInOpen  = false;
                IsChkOutOpen = false;

                SelectedItem = new Models.CheckInOut();

                ListType     = new ObservableCollection <Models.Price>(Models.DataProvider.Ins.DB.Prices);
                SelectedType = null;
            });

            CloseDetail_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                IsChkInOpen  = false;
                IsChkOutOpen = false;
            });

            OpenChkIn_Command = new RelayCommand <object>(p =>
            {
                if (String.IsNullOrEmpty(BiensoNhandang) || String.IsNullOrEmpty(Thexe))
                {
                    return(false);
                }

                if (SelectedType == null)
                {
                    return(false);
                }

                if (IsChkInOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsChkInOpen = true;
            });

            CheckIn_Command = new RelayCommand <object>(p =>
            {
                if (String.IsNullOrEmpty(BiensoNhandang) || String.IsNullOrEmpty(Thexe))
                {
                    return(false);
                }

                if (SelectedType == null)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                if (checkValid())
                {
                    Models.CheckInOut insertItem = new Models.CheckInOut()
                    {
                        license         = BiensoNhandang,
                        cardId          = Thexe,
                        checkInTime     = DateTime.Now,
                        Price           = SelectedType,
                        checkInUserName = Login_ViewModel.CurrentUser.name
                    };
                    Models.DataProvider.Ins.DB.CheckInOuts.Add(insertItem);
                    Models.DataProvider.Ins.DB.SaveChanges();

                    IsChkInOpen = false;

                    IsActive = true;
                    Message  = "Thao tác thành công";
                }
                else
                {
                    IsChkInOpen = false;

                    IsActive = true;
                    Message  = "Biển số hoặc mã thẻ đã được thêm";
                }
            });

            OpenChkOut_Command = new RelayCommand <object>(p =>
            {
                if (IsChkOutOpen == true)
                {
                    return(false);
                }

                if (Thexe.Length != 5)
                {
                    return(false);
                }

                if (String.IsNullOrEmpty(BiensoNhandang) || String.IsNullOrEmpty(Thexe))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                SelectedItem = Models.DataProvider.Ins.DB.CheckInOuts
                               .Where(x => x.license == BiensoNhandang && x.cardId == Thexe && x.checkOutTime == null)
                               .SingleOrDefault();
                if (SelectedItem != null)
                {
                    IsChkOutOpen = true;
                }
                else
                {
                    IsActive = true;
                    Message  = "Không tìm được xe";
                }
            });

            CheckOut_Command = new RelayCommand <object>(p =>
            {
                if (String.IsNullOrEmpty(BiensoNhandang) || String.IsNullOrEmpty(Thexe))
                {
                    return(false);
                }

                if (Thexe.Length != 5)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Models.CheckInOut updateItem = Models.DataProvider.Ins.DB.CheckInOuts
                                               .Where(x => x.license == BiensoNhandang && x.cardId == Thexe && x.checkOutTime == null)
                                               .SingleOrDefault();

                if (updateItem != null)
                {
                    updateItem.checkOutTime     = DateTime.Now;
                    updateItem.checkOutUserName = Login_ViewModel.CurrentUser.name;
                    Models.DataProvider.Ins.DB.SaveChanges();

                    IsChkOutOpen = false;

                    IsActive = true;
                    Message  = "Thao tác thành công";
                }
            });

            CloseAlert_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                IsActive = false;
                Message  = String.Empty;
            });

            GeneId_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                Thexe = MyStaticMethods.RandomInt(5);
            });
        }
        public Xuathang_Deleted_ViewModel()
        {
            List   = new ObservableCollection <Model.CHITIETPHIEUXUAT>(Model.DataProvider.Ins.DB.CHITIETPHIEUXUATs.Where(x => x.IsDeleted == true).ToList().OrderByDescending(x => MySource.MyStaticMethods.ConvertStringtoDate(x.PHIEUXUAT.ngayxuat)));
            RDList = new ObservableCollection <Model.CHITIETPHIEUXUAT>();

            Opendel     = false;
            Openres     = false;
            Opendelete  = false;
            Openrestore = false;

            Content      = string.Empty;
            SelectedItem = null;

            CloseDialog_Command = new RelayCommand <MaterialDesignThemes.Wpf.DialogHost>(p =>
            {
                return(true);
            }, p =>
            {
                p.IsOpen = false;
            });

            #region Khoi phuc/ Xoa 1 dong

            DeleteShow_Command = new RelayCommand <Button>(p =>
            {
                if (Openrestore == true || Opendelete == true || Openres == true || Opendel == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Opendelete = true;
                Content    = " Xóa vĩnh viễn bản ghi này";

                string id    = p.Uid.ToString();
                SelectedItem = Model.DataProvider.Ins.DB.CHITIETPHIEUXUATs.Where(x => x.ma_ctphieuxuat == id).SingleOrDefault();
            });

            RestoreShow_Command = new RelayCommand <Button>(p =>
            {
                if (Openrestore == true || Opendelete == true || Openres == true || Opendel == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Openrestore = true;
                Content     = " Khôi phục bản ghi này";

                string id    = p.Uid.ToString();
                SelectedItem = Model.DataProvider.Ins.DB.CHITIETPHIEUXUATs.Where(x => x.ma_ctphieuxuat == id).SingleOrDefault();
            });

            Delete_Command = new RelayCommand <Button>(p =>
            {
                return(true);
            }, p =>
            {
                Model.Xuathang_Service.Delete(SelectedItem);
                Model.DataProvider.Ins.DB.SaveChanges();

                List.Remove(SelectedItem);
                Opendelete = false;
            });

            Restore_Command = new RelayCommand <Button>(p =>
            {
                return(true);
            }, p =>
            {
                SelectedItem.IsDeleted = false;
                Model.DataProvider.Ins.DB.SaveChanges();

                List.Remove(SelectedItem);
                Openrestore = false;
            });
            #endregion

            #region Khoi phuc / Xoa nhieu dong

            AddRDList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                RDList.Add(List.Where(x => x.ma_ctphieuxuat == p.Uid.ToString()).SingleOrDefault());
            });

            RemoveRDList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                RDList.Remove(List.Where(x => x.ma_ctphieuxuat == p.Uid.ToString()).SingleOrDefault());
            });

            ResShow_Command = new RelayCommand <object>(p =>
            {
                if (RDList.Count() == 0)
                {
                    return(false);
                }

                if (Openrestore == true || Opendelete == true || Openres == true || Opendel == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Openres = true;
                Content = " Khôi phục tất cả các bản ghi được chọn";
            });

            Res_Command = new RelayCommand <object>(p =>
            {
                if (RDList.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Restone_IteminDb();
                RemoveIteminList();

                RDList  = new ObservableCollection <Model.CHITIETPHIEUXUAT>();
                Openres = false;
            });

            DelShow_Command = new RelayCommand <object>(p =>
            {
                if (RDList.Count() == 0)
                {
                    return(false);
                }

                if (Openrestore == true || Opendelete == true || Openres == true || Opendel == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Opendel = true;
                Content = " Xóa vĩnh viễn tất cả các bản ghi được chọn";
            });

            Del_Command = new RelayCommand <object>(p =>
            {
                if (RDList.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Removeforever_IteminDb();
                RemoveIteminList();

                RDList  = new ObservableCollection <Model.CHITIETPHIEUXUAT>();
                Opendel = false;
            });
            #endregion

            #region Phan sap xep

            OrderbyTenMathang_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.CHITIETPHIEUXUAT> chkList = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.OrderByDescending(x => x.CHITIETPHIEUNHAP.MATHANG.ten_mathang));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.OrderBy(x => x.CHITIETPHIEUNHAP.MATHANG.ten_mathang));
                }
                else
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(chkList);
                }
            });

            OrderbyTennhacungcap_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.CHITIETPHIEUXUAT> chkList = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.OrderByDescending(x => x.CHITIETPHIEUNHAP.MATHANG.NHACUNGCAP.ten_nhacungcap));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.OrderBy(x => x.CHITIETPHIEUNHAP.MATHANG.NHACUNGCAP.ten_nhacungcap));
                }
                else
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(chkList);
                }
            });

            OrderbyNgay_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.CHITIETPHIEUXUAT> chkList = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.OrderByDescending(x => MyStaticMethods.ConvertStringtoDate(x.PHIEUXUAT.ngayxuat)));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.OrderBy(x => MyStaticMethods.ConvertStringtoDate(x.PHIEUXUAT.ngayxuat)));
                }
                else
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(chkList);
                }
            });

            OrderbyTendonvi_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.CHITIETPHIEUXUAT> chkList = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.OrderByDescending(x => x.CHITIETPHIEUNHAP.MATHANG.DONVITINH.ten_donvi));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.OrderBy(x => x.CHITIETPHIEUNHAP.MATHANG.DONVITINH.ten_donvi));
                }
                else
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(chkList);
                }
            });

            #endregion
        }
예제 #14
0
        public UserInfo_ViewModel()
        {
            LoadInfor_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                Acc            = Login_ViewModel.CurrentUser.acc;
                OldPass        = String.Empty;
                NewPass        = String.Empty;
                NewConfirmPass = String.Empty;
                IsActive       = false;
            });

            CloseAlert_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                IsActive = false;
                Message  = String.Empty;
            });

            CurOldPasswordChange_Command = new RelayCommand <PasswordBox>(p =>
            {
                if (String.IsNullOrEmpty(p.Password))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                OldPass = p.Password;
            });

            CurPasswordChange_Command = new RelayCommand <PasswordBox>(p =>
            {
                if (String.IsNullOrEmpty(p.Password))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                NewPass = p.Password;
            });

            CurRePasswordChange_Command = new RelayCommand <PasswordBox>(p =>
            {
                if (String.IsNullOrEmpty(p.Password))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                NewConfirmPass = p.Password;
            });

            ChangeInfor_Command = new RelayCommand <object>(p =>
            {
                if (String.IsNullOrEmpty(Acc))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                if (Acc != Login_ViewModel.CurrentUser.acc)
                {
                    if (Models.DataProvider.Ins.DB.Users.Where(x => x.acc == Acc).Count() == 0)
                    {
                        Models.User item = Models.DataProvider.Ins.DB.Users.Where(x => x.users_id == Login_ViewModel.CurrentUser.users_id).SingleOrDefault();
                        item.acc         = Acc;
                        Models.DataProvider.Ins.DB.SaveChanges();

                        IsActive = true;
                        Message  = "Đã thay đổi tên đăng nhập";

                        Login_ViewModel.CurrentUser = Models.DataProvider.Ins.DB.Users.Where(x => x.acc == Acc).SingleOrDefault();
                    }
                    else
                    {
                        IsActive = true;
                        Message  = "Tên đăng nhập đã tồn tại";
                    }
                }

                if (!String.IsNullOrEmpty(NewPass))
                {
                    if (String.IsNullOrEmpty(OldPass) || String.IsNullOrEmpty(NewConfirmPass))
                    {
                        IsActive = true;
                        Message  = "Điền đầy đủ thông tin";
                        return;
                    }
                    if (NewPass != NewConfirmPass)
                    {
                        IsActive = true;
                        Message  = "Xác nhận mật khẩu không khớp";
                        return;
                    }
                    if (MyStaticMethods.MD5Hash(OldPass) != Login_ViewModel.CurrentUser.pass)
                    {
                        IsActive = true;
                        Message  = "Mật khẩu cũ không chính xác";
                        return;
                    }
                    Models.User item = Models.DataProvider.Ins.DB.Users.Where(x => x.users_id == Login_ViewModel.CurrentUser.users_id).SingleOrDefault();
                    item.pass        = MyStaticMethods.MD5Hash(NewPass);
                    Models.DataProvider.Ins.DB.SaveChanges();

                    IsActive = true;
                    Message  = "Đã thay đổi mật khẩu";
                }
            });
        }
예제 #15
0
    public static string DateVNtoUS(string str)
    {
        DateTime Myreal_Date = MyStaticMethods.ConvertStringtoDate(str);

        return(Myreal_Date.Month.ToString() + "/" + Myreal_Date.Day.ToString() + "/" + Myreal_Date.Year.ToString());
    }
예제 #16
0
        public Report_ViewModel()
        {
            Load_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                List <Models.CheckInOut> listBase = Models.DataProvider.Ins.DB.CheckInOuts.ToList();
                listBase = new List <Models.CheckInOut>(listBase.Where(x => x.checkInTime.Value.Date == DateTime.Today));
                List     = new ObservableCollection <Report>();
                for (int i = 0; i < listBase.Count(); i++)
                {
                    List.Add(new Report()
                    {
                        id               = listBase[i].id,
                        license          = listBase[i].license,
                        cardId           = listBase[i].cardId,
                        checkInTime      = listBase[i].checkInTime,
                        checkOutTime     = listBase[i].checkOutTime,
                        Price            = listBase[i].Price,
                        checkInUserName  = listBase[i].checkInUserName,
                        checkOutUserName = listBase[i].checkOutUserName
                    });
                }

                ListStatus = new ObservableCollection <string>();
                ListStatus.Add("Xe vào");
                ListStatus.Add("Xe ra");

                SelectedStatus = String.Empty;
                TimeStart      = String.Empty;
                TimeEnd        = String.Empty;

                IsUserOpen = false;
            });

            CloseDetail_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                IsUserOpen = false;
            });

            OpenUser_Command = new RelayCommand <Button>(p =>
            {
                return(true);
            }, p =>
            {
                SelectedItem = new Report();
                int id       = Convert.ToInt32(p.Uid);
                SelectedItem = List.Where(x => x.id == id).SingleOrDefault();
                IsUserOpen   = true;
            });

            #region Report
            Report_Command = new RelayCommand <object>(p =>
            {
                if (IsUserOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                List <Models.CheckInOut> listBase = Models.DataProvider.Ins.DB.CheckInOuts.ToList();
                listBase = new List <Models.CheckInOut>(listBase.Where(x => x.checkInTime.Value.Date == DateTime.Today));

                List = new ObservableCollection <Report>();
                for (int i = 0; i < listBase.Count(); i++)
                {
                    List.Add(new Report()
                    {
                        id               = listBase[i].id,
                        license          = listBase[i].license,
                        cardId           = listBase[i].cardId,
                        checkInTime      = listBase[i].checkInTime,
                        checkOutTime     = listBase[i].checkOutTime,
                        Price            = listBase[i].Price,
                        checkInUserName  = listBase[i].checkInUserName,
                        checkOutUserName = listBase[i].checkOutUserName
                    });
                }

                if (!String.IsNullOrEmpty(TimeStart))
                {
                    DateTime timeStart = MyStaticMethods.ConvertTime(TimeStart);
                    List = new ObservableCollection <Report>(List.Where(x =>
                    {
                        if (x.checkOutTime != null)
                        {
                            return(x.checkInTime.Value >= timeStart || x.checkOutTime.Value >= timeStart);
                        }
                        return(x.checkInTime >= timeStart);
                    }));
                }
                if (!String.IsNullOrEmpty(TimeEnd))
                {
                    DateTime timeEnd = MyStaticMethods.ConvertTime(TimeEnd);
                    List             = new ObservableCollection <Report>(List.Where(x =>
                    {
                        if (x.checkOutTime != null)
                        {
                            return(x.checkInTime.Value <= timeEnd || x.checkOutTime.Value <= timeEnd);
                        }
                        return(x.checkInTime.Value <= timeEnd);
                    }));
                }
                if (!String.IsNullOrEmpty(SelectedStatus))
                {
                    DateTime timeStart = new DateTime();
                    DateTime timeEnd   = new DateTime();

                    if (!String.IsNullOrEmpty(TimeStart))
                    {
                        timeStart = MyStaticMethods.ConvertTime(TimeStart);
                    }
                    else
                    {
                        timeStart = MyStaticMethods.ConvertTime("00:00");
                    }
                    if (!String.IsNullOrEmpty(TimeEnd))
                    {
                        timeEnd = MyStaticMethods.ConvertTime(TimeEnd);
                    }
                    else
                    {
                        timeEnd = DateTime.Now;
                    }

                    if (SelectedStatus == "Xe vào")
                    {
                        List = new ObservableCollection <Report>(List.Where(x => x.checkInTime.Value >= timeStart && x.checkInTime.Value <= timeEnd));
                    }
                    if (SelectedStatus == "Xe ra")
                    {
                        List = new ObservableCollection <Report>(List.Where(x =>
                        {
                            if (x.checkOutTime != null)
                            {
                                return(x.checkOutTime.Value >= timeStart && x.checkOutTime.Value <= timeEnd);
                            }
                            return(x.id < 0);
                        }));
                    }
                }
            });
            #endregion

            #region Export Excel

            Export_Command = new RelayCommand <object>(p =>
            {
                if (IsUserOpen == true)
                {
                    return(false);
                }

                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                string filePath = "*.xlsx";
                // tạo SaveFileDialog để lưu file excel
                SaveFileDialog dialogs = new SaveFileDialog();

                // chỉ lọc ra các file có định dạng Excel
                dialogs.Filter = "Excel | *.xlsx | Excel 2003 | *.xls";

                // Nếu mở file và chọn nơi lưu file thành công sẽ lưu đường dẫn lại dùng
                if (dialogs.ShowDialog() == true)
                {
                    filePath = dialogs.FileName;
                }

                // nếu đường dẫn null hoặc rỗng thì báo không hợp lệ và return hàm
                if (string.IsNullOrEmpty(filePath))
                {
                    MessageBox.Show("Đường dẫn báo cáo không hợp lệ");
                    return;
                }
                try
                {
                    using (ExcelPackage pk = new ExcelPackage())
                    {
                        // đặt tên người tạo file
                        pk.Workbook.Properties.Author = "admin";

                        // đặt tiêu đề cho file
                        pk.Workbook.Properties.Title = "QLBX UTT";

                        //Tạo một sheet để làm việc trên đó
                        pk.Workbook.Worksheets.Add("QLBX sheet");

                        // lấy sheet vừa add ra để thao tác
                        ExcelWorksheet ws = pk.Workbook.Worksheets[1];

                        // đặt tên cho sheet
                        ws.Name = "QLBX sheet";
                        // fontsize mặc định cho cả sheet
                        ws.Cells.Style.Font.Size = 11;
                        // font family mặc định cho cả sheet
                        ws.Cells.Style.Font.Name = "Calibri";

                        // Tạo danh sách các column header
                        string[] arrColumnHeader =
                        {
                            "Biển số xe",
                            "Thẻ xe",
                            "Thời gian vào",
                            "Thời gian ra",
                            "Loại xe",
                            "Thời gian gửi (h)",
                            "Giá tiền (đ)",
                            "Nhân viên Check-In",
                            "Nhân viên Check-Out"
                        };

                        // lấy ra số lượng cột cần dùng dựa vào số lượng header
                        var countColHeader = arrColumnHeader.Count();

                        // merge các column lại từ column 1 đến số column header
                        // gán giá trị cho cell vừa merge là Thống kê thông tin
                        ws.Cells[1, 1].Value = "Thống kê";
                        ws.Cells[1, 1, 1, countColHeader].Merge = true;
                        // in đậm
                        ws.Cells[1, 1, 1, countColHeader].Style.Font.Bold = true;
                        // căn giữa
                        ws.Cells[1, 1, 1, countColHeader].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;

                        int colIndex = 1;
                        int rowIndex = 2;

                        //tạo các header từ column header đã tạo từ bên trên
                        foreach (var item in arrColumnHeader)
                        {
                            var cell = ws.Cells[rowIndex, colIndex];

                            //set màu thành gray
                            var fill         = cell.Style.Fill;
                            fill.PatternType = ExcelFillStyle.Solid;
                            fill.BackgroundColor.SetColor(System.Drawing.Color.LightBlue);

                            //căn chỉnh các border
                            var border                     = cell.Style.Border;
                            border.Bottom.Style            =
                                border.Top.Style           =
                                    border.Left.Style      =
                                        border.Right.Style = ExcelBorderStyle.Thin;

                            //gán giá trị
                            cell.Value = item;

                            colIndex++;
                        }

                        // lấy ra danh sách UserInfo từ ItemSource của DataGrid
                        List <Report> userList = List.Cast <Report>().ToList();

                        // với mỗi item trong danh sách sẽ ghi trên 1 dòng
                        foreach (var item in userList)
                        {
                            // bắt đầu ghi từ cột 1. Excel bắt đầu từ 1 không phải từ 0
                            colIndex = 1;

                            // rowIndex tương ứng từng dòng dữ liệu
                            rowIndex++;

                            //gán giá trị cho từng cell
                            ws.Cells[rowIndex, colIndex++].Value = item.license;
                            ws.Cells[rowIndex, colIndex++].Value = item.cardId;
                            ws.Cells[rowIndex, colIndex++].Value = item.checkInTime.ToString();
                            ws.Cells[rowIndex, colIndex++].Value = item.checkOutTime.ToString();
                            ws.Cells[rowIndex, colIndex++].Value = item.Price.veh_type;
                            ws.Cells[rowIndex, colIndex++].Value = item.Time.ToString() + "h";
                            ws.Cells[rowIndex, colIndex++].Value = item.Price.price1.ToString() + "đ";
                            ws.Cells[rowIndex, colIndex++].Value = item.checkInUserName;
                            ws.Cells[rowIndex, colIndex++].Value = item.checkOutUserName;
                        }

                        //Lưu file lại
                        Byte[] bin = pk.GetAsByteArray();
                        File.WriteAllBytes(filePath, bin);
                    }
                    MessageBox.Show("Thành công !!!", "THÔNG BÁO");
                    Process.Start(filePath);
                }
                catch (Exception)
                {
                    MessageBox.Show("Có lỗi khi lưu file !!!", "THÔNG BÁO");
                }
            });

            #endregion

            // sap xep bang (click vao header)
            #region Sort

            SortbyType_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <Report> chkList = new ObservableCollection <Report>(List.OrderByDescending(x => x.Price.veh_type));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Report>(List.OrderBy(x => x.Price.veh_type));
                }
                else
                {
                    List = chkList;
                }
            });

            SortbyLicense_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <Report> chkList = new ObservableCollection <Report>(List.OrderByDescending(x => x.license));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Report>(List.OrderBy(x => x.license));
                }
                else
                {
                    List = chkList;
                }
            });

            SortbyCardId_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <Report> chkList = new ObservableCollection <Report>(List.OrderByDescending(x => x.cardId));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Report>(List.OrderBy(x => x.cardId));
                }
                else
                {
                    List = chkList;
                }
            });

            SortbyTimeIn_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <Report> chkList = new ObservableCollection <Report>(List.OrderByDescending(x => x.checkInTime));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Report>(List.OrderBy(x => x.checkInTime));
                }
                else
                {
                    List = chkList;
                }
            });

            SortbyTimeOut_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <Report> chkList = new ObservableCollection <Report>(List.OrderByDescending(x => x.checkOutTime));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Report>(List.OrderBy(x => x.checkOutTime));
                }
                else
                {
                    List = chkList;
                }
            });

            SortbyTime_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <Report> chkList = new ObservableCollection <Report>(List.OrderByDescending(x => x.Time));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Report>(List.OrderBy(x => x.Time));
                }
                else
                {
                    List = chkList;
                }
            });

            #endregion
        }
        public Nhaphang_ViewModel()
        {
            TaoDS_nhap();
            DeleteList  = new ObservableCollection <Model.CHITIETPHIEUNHAP>();
            ListMathang = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));

            ListNCC_Print = new ObservableCollection <Model.NHACUNGCAP>(Model.DataProvider.Ins.DB.NHACUNGCAPs.Where(x => x.IsDeleted == false));

            Active        = false;
            IsOpen        = false;
            IsOpen_insert = false;
            IsOpen_Filter = false;
            IsOpen_prt    = false;

            Active_Command = new RelayCommand <object>(p =>
            {
                if (Active == false)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Active = false;
            });

            CloseDialog_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                IsOpen_prt = false;
            });

            Load_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                TaoDS_nhap();
                DeleteList  = new ObservableCollection <Model.CHITIETPHIEUNHAP>();
                ListMathang = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));

                ListNCC_Print = new ObservableCollection <Model.NHACUNGCAP>(Model.DataProvider.Ins.DB.NHACUNGCAPs.Where(x => x.IsDeleted == false));

                ListLoai_Filter       = new ObservableCollection <Model.LOAIHANG>(Model.DataProvider.Ins.DB.LOAIHANGs.Where(x => x.IsDeleted == false));
                ListMathang_Filter    = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));
                ListNhacungcap_Filter = new ObservableCollection <Model.NHACUNGCAP>(Model.DataProvider.Ins.DB.NHACUNGCAPs.Where(x => x.IsDeleted == false));

                Active        = false;
                IsOpen        = false;
                IsOpen_insert = false;
                IsOpen_Filter = false;
                IsOpen_prt    = false;
            });

            #region Tao moi
            Reset_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                SMathang        = null;
                Soluongnhap     = "";
                Soluongthucnhap = "";
                Dongianhap      = "";
                Dongiaxuat      = "";
                Phantram        = "";
                SelectedItem    = null;
            });
            #endregion

            #region Phan them

            GetvalueTextbox_Command = new RelayCommand <TextBox>(p =>
            {
                double d;
                if (!double.TryParse((p.Text), out d))
                {
                    return(false);
                }

                if (string.IsNullOrEmpty(p.Text))
                {
                    return(false);
                }

                if (SMathang == null)
                {
                    return(false);
                }

                if (string.IsNullOrEmpty(Soluongnhap) || string.IsNullOrEmpty(Soluongthucnhap) || string.IsNullOrEmpty(Dongianhap))
                {
                    return(false);
                }

                int dongianhap = 0;
                if (!int.TryParse(Dongianhap.Replace(" ", String.Empty), out dongianhap))
                {
                    return(false);
                }

                int soluongnhap = 0;
                if (!int.TryParse(Soluongnhap.Replace(" ", String.Empty), out soluongnhap))
                {
                    return(false);
                }

                int soluongthucnhap = 0;
                if (!int.TryParse(Soluongthucnhap.Replace(" ", String.Empty), out soluongthucnhap))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Dongiaxuat = String.Empty;

                double phantram   = Convert.ToDouble(Phantram) / 100;
                double dongianhap = Convert.ToDouble(Dongianhap.Replace(" ", String.Empty));
                double dongiaxuat = ((phantram * dongianhap) + dongianhap);

                Dongiaxuat = dongiaxuat.ToString();
            });

            InsertShow_Command = new RelayCommand <object>(p =>
            {
                if (SMathang == null)
                {
                    return(false);
                }

                if (string.IsNullOrEmpty(Soluongnhap) || string.IsNullOrEmpty(Soluongthucnhap) ||
                    string.IsNullOrEmpty(Dongiaxuat) || string.IsNullOrEmpty(Dongianhap) || string.IsNullOrEmpty(Phantram))
                {
                    return(false);
                }

                int dongianhap = 0;
                if (!int.TryParse(Dongianhap.Replace(" ", String.Empty), out dongianhap))
                {
                    return(false);
                }

                int soluongnhap = 0;
                if (!int.TryParse(Soluongnhap.Replace(" ", String.Empty), out soluongnhap))
                {
                    return(false);
                }

                int soluongthucnhap = 0;
                if (!int.TryParse(Soluongthucnhap.Replace(" ", String.Empty), out soluongthucnhap))
                {
                    return(false);
                }

                try
                {
                    if (Convert.ToInt32(Soluongnhap) <= 0 || Convert.ToInt32(Soluongthucnhap) <= 0)
                    {
                        return(false);
                    }

                    if (Convert.ToInt32(Dongianhap) <= 0 || Convert.ToDouble(Phantram) < 0)
                    {
                        return(false);
                    }

                    if (Convert.ToInt32(Dongiaxuat) <= 0)
                    {
                        return(false);
                    }
                }
                catch (Exception) { /*Try catch de sua loi FormatException*/ }


                if (IsOpen_insert == true || IsOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsOpen_insert = true;

                string date_str = MyStaticMethods.ConvertDate2Vn_Today();
                Ngay            = date_str;
            });

            Insert_Command = new RelayCommand <object>(p =>
            {
                if (SMathang == null)
                {
                    return(false);
                }

                if (string.IsNullOrEmpty(Soluongnhap) || string.IsNullOrEmpty(Soluongthucnhap) ||
                    string.IsNullOrEmpty(Dongiaxuat) || string.IsNullOrEmpty(Dongianhap) || string.IsNullOrEmpty(Phantram))
                {
                    return(false);
                }

                int dongianhap = 0;
                if (!int.TryParse(Dongianhap.Replace(" ", String.Empty), out dongianhap))
                {
                    return(false);
                }

                int soluongnhap = 0;
                if (!int.TryParse(Soluongnhap.Replace(" ", String.Empty), out soluongnhap))
                {
                    return(false);
                }

                int soluongthucnhap = 0;
                if (!int.TryParse(Soluongthucnhap.Replace(" ", String.Empty), out soluongthucnhap))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                string date_str       = MyStaticMethods.ConvertDate2Vn_Today();
                Model.PHIEUNHAP Phieu = CheckPhieunhap(date_str);

                Model.CHITIETPHIEUNHAP newPhieu = new Model.CHITIETPHIEUNHAP()
                {
                    ma_ctphieunhap = MyStaticMethods.RandomInt(5) + "-" + SMathang.ma_mathang,
                    MATHANG        = SMathang,
                    ma_phieunhap   = Phieu.ma_phieunhap,

                    soluongnhap = Convert.ToInt32(Soluongnhap.Replace(" ", String.Empty)),
                    soluongthuc = Convert.ToInt32(Soluongthucnhap.Replace(" ", String.Empty)),
                    soluongton  = Convert.ToInt32(Soluongthucnhap.Replace(" ", String.Empty)),

                    gianhap = Convert.ToDouble(Dongianhap.Replace(" ", String.Empty)),
                    giaxuat = Convert.ToDouble(Dongiaxuat.Replace(" ", String.Empty)),

                    nguoitao  = getCurrentUser(),
                    ghichu    = Ghichu != "" ? Ghichu : null,
                    IsDeleted = false,
                };

                Model.Nhaphang_Service.Insert(newPhieu);

                List.Insert(0, newPhieu);
                SelectedItem = newPhieu;

                Active        = true;
                Message       = "Thêm mới thành công !!!";
                IsOpen_insert = false;
            });

            #endregion

            #region Phan xoa

            AddDeleteList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                DeleteList.Add(List.Where(x => x.ma_ctphieunhap == p.Uid.ToString()).SingleOrDefault());
            });

            RemoveDeleteList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                DeleteList.Remove(List.Where(x => x.ma_ctphieunhap == p.Uid.ToString()).SingleOrDefault());
            });

            DeleteShow_Command = new RelayCommand <object>(p =>
            {
                if (DeleteList.Count() == 0)
                {
                    return(false);
                }

                if (IsOpen_insert == true || IsOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsOpen  = true;
                Content = "  Xóa các bản ghi được chọn ???";
            });


            Delete_Command = new RelayCommand <object>(p =>
            {
                if (DeleteList.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                RemoveIteminDb();
                RemoveIteminList();


                DeleteList   = new ObservableCollection <Model.CHITIETPHIEUNHAP>();
                IsOpen       = false;
                SelectedItem = null;
            });
            #endregion

            #region Phan loc

            ListLoai_Filter       = new ObservableCollection <Model.LOAIHANG>(Model.DataProvider.Ins.DB.LOAIHANGs.Where(x => x.IsDeleted == false));
            ListMathang_Filter    = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));
            ListNhacungcap_Filter = new ObservableCollection <Model.NHACUNGCAP>(Model.DataProvider.Ins.DB.NHACUNGCAPs.Where(x => x.IsDeleted == false));

            FilterLoai_Command = new RelayCommand <ComboBox>(p =>
            {
                return(true);
            }, p =>
            {
                if (SLoai_Filter != null)
                {
                    string ma = SLoai_Filter.ma_loaihang;
                    FilterMathangby_Loai(ma);
                }
                else
                {
                    ListMathang_Filter = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));
                }
            });

            OpenFilter_Command = new RelayCommand <object>(p =>
            {
                if (IsOpen_Filter == true || IsOpen == true || IsOpen_insert == true || IsOpen_prt == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsOpen_Filter = true;
            });

            ResetFilter_Command = new RelayCommand <Button>(p =>
            {
                return(true);
            }, p =>
            {
                ListLoai_Filter       = new ObservableCollection <Model.LOAIHANG>(Model.DataProvider.Ins.DB.LOAIHANGs.Where(x => x.IsDeleted == false));
                ListMathang_Filter    = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));
                ListNhacungcap_Filter = new ObservableCollection <Model.NHACUNGCAP>(Model.DataProvider.Ins.DB.NHACUNGCAPs.Where(x => x.IsDeleted == false));

                SNhacungcap_Filter = null;
                SMathang_Filter    = null;
                SLoai_Filter       = null;
                Date_Start         = String.Empty;
                Date_End           = String.Empty;

                TaoDS_nhap();

                IsOpen_Filter = false;
            });

            Filter_Command = new RelayCommand <Button>(p =>
            {
                if (string.IsNullOrEmpty(Date_Start) || string.IsNullOrEmpty(Date_End))
                {
                    return(false);
                }

                DateTime date_start = Convert.ToDateTime(Date_Start);
                DateTime date_end   = Convert.ToDateTime(Date_End);
                if ((date_start > date_end) && DateTime.TryParse(Date_Start, out date_start) && DateTime.TryParse(Date_End, out date_end))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                List = new ObservableCollection <Model.CHITIETPHIEUNHAP>(Model.DataProvider.Ins.DB.CHITIETPHIEUNHAPs.Where(x => x.IsDeleted == false).OrderByDescending(x => x.ma_phieunhap));

                DateTime date_start = Convert.ToDateTime(Date_Start);
                DateTime date_end   = Convert.ToDateTime(Date_End);

                FindByDate(date_start, date_end);

                if (SMathang_Filter != null)
                {
                    FindByMH(SMathang_Filter.ma_mathang);
                }

                if (SNhacungcap_Filter != null)
                {
                    FindByNCC(SNhacungcap_Filter.ma_nhacungcap);
                }

                if (SLoai_Filter != null)
                {
                    FindByLOAI(SLoai_Filter.ma_loaihang);
                }

                IsOpen_Filter = false;
            });
            #endregion

            #region Phan sap xep

            OrderbyTenMathang_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.CHITIETPHIEUNHAP> chkList = new ObservableCollection <Model.CHITIETPHIEUNHAP>(List.OrderByDescending(x => x.MATHANG.ten_mathang));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUNHAP>(List.OrderBy(x => x.MATHANG.ten_mathang));
                }
                else
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUNHAP>(chkList);
                }
            });

            OrderbyTennhacungcap_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.CHITIETPHIEUNHAP> chkList = new ObservableCollection <Model.CHITIETPHIEUNHAP>(List.OrderByDescending(x => x.MATHANG.NHACUNGCAP.ten_nhacungcap));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUNHAP>(List.OrderBy(x => x.MATHANG.NHACUNGCAP.ten_nhacungcap));
                }
                else
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUNHAP>(chkList);
                }
            });

            OrderbyNgay_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.CHITIETPHIEUNHAP> chkList = new ObservableCollection <Model.CHITIETPHIEUNHAP>(List.OrderByDescending(x => MyStaticMethods.ConvertStringtoDate(x.PHIEUNHAP.ngaynhap)));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUNHAP>(List.OrderBy(x => MyStaticMethods.ConvertStringtoDate(x.PHIEUNHAP.ngaynhap)));
                }
                else
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUNHAP>(chkList);
                }
            });

            OrderbyTendonvi_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.CHITIETPHIEUNHAP> chkList = new ObservableCollection <Model.CHITIETPHIEUNHAP>(List.OrderByDescending(x => x.MATHANG.DONVITINH.ten_donvi));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUNHAP>(List.OrderBy(x => x.MATHANG.DONVITINH.ten_donvi));
                }
                else
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUNHAP>(chkList);
                }
            });

            #endregion

            #region Printer

            PrinterOpen_Command = new RelayCommand <object>(p =>
            {
                if (SNhacungcapPrint == null)
                {
                    return(false);
                }

                if (string.IsNullOrEmpty(DayPrint))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                List_Print = new ObservableCollection <Model.CHITIETPHIEUNHAP>(List.Where(x => x.MATHANG.NHACUNGCAP == SNhacungcapPrint &&
                                                                                          x.PHIEUNHAP.ngaynhap == MyStaticMethods.FormatDateString(DayPrint)));

                var list_chk = new ObservableCollection <Model.CHITIETPHIEUNHAP>();

                ItemsCount = 0;
                Tongtien   = 0;

                foreach (var item in List_Print)
                {
                    Tongtien += (double)(item.gianhap * item.soluongthuc);

                    if (list_chk.Where(x => x.MATHANG == item.MATHANG).Count() == 0)
                    {
                        list_chk.Add(item);
                    }
                }

                ItemsCount = list_chk.Count();


                DayPrintVN = MyStaticMethods.FormatDateString(DayPrint);

                View.View_Thukho.In_Nhap w = new View.View_Thukho.In_Nhap();
                w.ShowDialog();
            });

            OpenPrintDialog_Command = new RelayCommand <object>(p =>
            {
                if (IsOpen == true)
                {
                    return(false);
                }

                if (IsOpen_insert == true)
                {
                    return(false);
                }

                if (IsOpen_Filter == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsOpen_prt = true;
            });

            Print_Command = new RelayCommand <Grid>(p =>
            {
                return(true);
            }, p =>
            {
                try
                {
                    PrintDialog printDialog = new PrintDialog();
                    if (printDialog.ShowDialog() == true)
                    {
                        printDialog.PrintVisual(p, "invoice");
                    }

                    MessageBox.Show("Thành công !!!", "THÔNG BÁO");
                }
                catch (Exception) { MessageBox.Show("Có lỗi xảy ra !!!", "THÔNG BÁO"); };
            });

            PrinterFormClose_Command = new RelayCommand <Window>(p =>
            {
                return(true);
            }, p =>
            {
                if (p != null)
                {
                    p.Close();
                    IsOpen_prt = false;
                }
            });

            #endregion
        }
 private void TaoDS_nhap()
 {
     List = new ObservableCollection <Model.CHITIETPHIEUNHAP>(Model.DataProvider.Ins.DB.CHITIETPHIEUNHAPs.Where(x => x.IsDeleted == false).ToList().OrderByDescending(x => MyStaticMethods.ConvertStringtoDate(x.PHIEUNHAP.ngaynhap)));
 }
예제 #19
0
        public ControlBar_ViewModel()
        {
            IsOpen  = false;
            Content = "  Đóng ứng dụng ???";

            Minimize_Command = new RelayCommand <UserControl>(p =>
            {
                if (IsOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Window windowparent = MyStaticMethods.getWindowParent(p) as Window;

                if (windowparent != null)
                {
                    windowparent.WindowState = WindowState.Minimized;
                }
            });

            Maximize_Command = new RelayCommand <UserControl>(p =>
            {
                if (IsOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Window windowparent = MyStaticMethods.getWindowParent(p) as Window;

                if (windowparent != null)
                {
                    if (windowparent.WindowState == WindowState.Maximized)
                    {
                        windowparent.WindowState = WindowState.Normal;
                    }
                    else
                    {
                        windowparent.WindowState = WindowState.Maximized;
                    }
                }
            });


            Close_Command = new RelayCommand <UserControl>(p =>
            {
                if (IsOpen == false)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Application.Current.Shutdown();
            });

            Drag_Command = new RelayCommand <UserControl>(p =>
            {
                return(true);
            }, p =>
            {
                Window windowparent = MyStaticMethods.getWindowParent(p) as Window;

                if (windowparent != null)
                {
                    windowparent.DragMove();
                }
            });

            OpenDialog_Command = new RelayCommand <UserControl>(p =>
            {
                if (IsOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsOpen = true;
            });

            CloseDialog_Command = new RelayCommand <UserControl>(p =>
            {
                return(true);
            }, p =>
            {
                IsOpen = false;
            });

            OpenDetail_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                Views.UserInfo w = new Views.UserInfo();
                w.ShowDialog();
            });
        }
예제 #20
0
        public User_ViewModel()
        {
            Load_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                getLst();
                UserName     = String.Empty;
                Account      = String.Empty;
                Phone        = String.Empty;
                SelectedItem = null;
                IsActive     = false;
                IsAdd        = false;
                IsUpdate     = false;
                IsDelete     = false;

                ListRole = new ObservableCollection <string>();
                ListRole.Add("Quản trị");
                ListRole.Add("Nhân viên");

                SelectedRole = String.Empty;
            });

            CloseAlert_Command = new RelayCommand <object>(x =>
            {
                return(true);
            }, x =>
            {
                IsActive = false;
            });

            CloseDlg_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                IsAdd    = false;
                IsUpdate = false;
                IsDelete = false;
            });

            Search_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                getLst();
                if (!String.IsNullOrEmpty(UserName))
                {
                    List = new ObservableCollection <UserCustom>(List.Where(x => x.name.ToUpper().Contains(UserName.ToUpper())));
                }
                if (!String.IsNullOrEmpty(Account))
                {
                    List = new ObservableCollection <UserCustom>(List.Where(x => x.acc.ToUpper().Contains(Account.ToUpper())));
                }
                if (!String.IsNullOrEmpty(Phone))
                {
                    List = new ObservableCollection <UserCustom>(List.Where(x => x.phone.ToUpper().Contains(Phone.ToUpper())));
                }
            });

            PassChanged_Command = new RelayCommand <PasswordBox>(p =>
            {
                if (String.IsNullOrEmpty(p.Password))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                SelectedItem.pass = MyStaticMethods.MD5Hash(p.Password);
            });

            #region sort

            SortbyName_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <UserCustom> chkList = new ObservableCollection <UserCustom>(List.OrderByDescending(x => x.name));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <UserCustom>(List.OrderBy(x => x.name));
                }
                else
                {
                    List = chkList;
                }
            });

            SortbyBorn_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <UserCustom> chkList = new ObservableCollection <UserCustom>(List.OrderByDescending(x => x.born));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <UserCustom>(List.OrderBy(x => x.born));
                }
                else
                {
                    List = chkList;
                }
            });

            SortbyAddress_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <UserCustom> chkList = new ObservableCollection <UserCustom>(List.OrderByDescending(x => x.user_address));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <UserCustom>(List.OrderBy(x => x.user_address));
                }
                else
                {
                    List = chkList;
                }
            });

            SortbyPhone_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <UserCustom> chkList = new ObservableCollection <UserCustom>(List.OrderByDescending(x => x.phone));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <UserCustom>(List.OrderBy(x => x.phone));
                }
                else
                {
                    List = chkList;
                }
            });

            SortbyAcc_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <UserCustom> chkList = new ObservableCollection <UserCustom>(List.OrderByDescending(x => x.acc));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <UserCustom>(List.OrderBy(x => x.acc));
                }
                else
                {
                    List = chkList;
                }
            });

            SortbyRole_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <UserCustom> chkList = new ObservableCollection <UserCustom>(List.OrderByDescending(x => x.user_role));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <UserCustom>(List.OrderBy(x => x.user_role));
                }
                else
                {
                    List = chkList;
                }
            });

            #endregion

            #region add

            OpenformAdd_Command = new RelayCommand <object>(p =>
            {
                if (IsUpdate == true || IsAdd == true || IsDelete == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                SelectedItem = new UserCustom();
                SelectedRole = "Nhân viên";
                IsAdd        = true;
            });

            Add_Command = new RelayCommand <object>(p =>
            {
                if (SelectedItem == null)
                {
                    return(false);
                }

                if (String.IsNullOrEmpty(SelectedItem.name))
                {
                    return(false);
                }

                if (String.IsNullOrEmpty(SelectedItem.user_address))
                {
                    return(false);
                }

                if (String.IsNullOrEmpty(SelectedItem.phone))
                {
                    return(false);
                }

                if (String.IsNullOrEmpty(SelectedItem.Born))
                {
                    return(false);
                }

                if (String.IsNullOrEmpty(SelectedItem.acc))
                {
                    return(false);
                }

                if (String.IsNullOrEmpty(SelectedRole))
                {
                    return(false);
                }

                if (String.IsNullOrEmpty(SelectedItem.pass))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                var countAcc = List.Where(x => x.acc == SelectedItem.acc).Count();
                if (countAcc == 0)
                {
                    User user      = new User();
                    user           = UserCustom.MapUser(SelectedItem);
                    user.user_role = SelectedRole == "Quản trị" ? 1 : 0;

                    Models.DataProvider.Ins.DB.Users.Add(user);
                    Models.DataProvider.Ins.DB.SaveChanges();

                    IsAdd = false;
                    getLst();

                    successAlert();
                }
                else
                {
                    IsAdd = false;
                    getLst();

                    IsActive = true;
                    Message  = "Tên đăng nhập bị trùng";
                }
            });

            #endregion

            #region update

            OpenformUpdate_Command = new RelayCommand <Button>(p =>
            {
                if (IsUpdate == true || IsAdd == true || IsDelete == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                SelectedItem = new UserCustom();
                SelectedItem = List.Where(x => x.users_id == Convert.ToInt32(p.Uid)).SingleOrDefault();
                SelectedRole = SelectedItem.user_role == 1 ? "Quản trị" : "Nhân viên";
                IsUpdate     = true;
            });

            Update_Command = new RelayCommand <object>(p =>
            {
                if (SelectedItem == null)
                {
                    return(false);
                }

                if (String.IsNullOrEmpty(SelectedItem.name))
                {
                    return(false);
                }

                if (String.IsNullOrEmpty(SelectedItem.user_address))
                {
                    return(false);
                }

                if (String.IsNullOrEmpty(SelectedItem.phone))
                {
                    return(false);
                }

                if (String.IsNullOrEmpty(SelectedItem.Born))
                {
                    return(false);
                }

                if (String.IsNullOrEmpty(SelectedItem.Role))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                User user         = Models.DataProvider.Ins.DB.Users.Where(x => x.users_id == SelectedItem.users_id).SingleOrDefault();
                user.name         = SelectedItem.name;
                user.user_address = SelectedItem.user_address;
                user.born         = Convert.ToDateTime(SelectedItem.Born);
                user.phone        = SelectedItem.phone;
                user.user_role    = SelectedRole == "Quản trị" ? 1 : 0;
                Models.DataProvider.Ins.DB.SaveChanges();

                IsUpdate = false;
                getLst();

                successAlert();
            });

            #endregion

            #region delete

            OpenformDelete_Command = new RelayCommand <Button>(p =>
            {
                if (IsUpdate == true || IsAdd == true || IsDelete == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                SelectedItem = new UserCustom();
                SelectedItem = List.Where(x => x.users_id == Convert.ToInt32(p.Uid)).SingleOrDefault();
                IsDelete     = true;
            });

            Delete_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                User user = Models.DataProvider.Ins.DB.Users.Where(x => x.users_id == SelectedItem.users_id).SingleOrDefault();
                Models.DataProvider.Ins.DB.Users.Remove(user);
                Models.DataProvider.Ins.DB.SaveChanges();

                IsDelete = false;
                getLst();

                successAlert();
            });

            #endregion
        }
예제 #21
0
        public Login_ViewModel()
        {
            IsActive           = false;
            CloseAlert_Command = new RelayCommand <object>(x =>
            {
                return(true);
            }, x =>
            {
                IsActive = false;
            });

            #region login
            GetPassLogin_Command = new RelayCommand <PasswordBox>(x =>
            {
                return(true);
            }, x =>
            {
                if (!String.IsNullOrEmpty(x.Password))
                {
                    Password = x.Password;
                }
            });

            Login_Command = new RelayCommand <Button>(p =>
            {
                if (String.IsNullOrEmpty(UserName) || String.IsNullOrEmpty(Password))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                var list = new List <Models.User>(Models.DataProvider.Ins.DB.Users);

                if (list.Where(x => x.acc == UserName && x.pass == MyStaticMethods.MD5Hash(Password)).Count() != 0)
                {
                    Models.User user = list.Where(x => x.acc == UserName && x.pass == MyStaticMethods.MD5Hash(Password)).SingleOrDefault();
                    if (user.user_role == 0)
                    {
                        if (chkLoginTime(user) == false)
                        {
                            IsActive = true;
                            Message  = "Tài khoản không được phân ca trực";
                        }
                        else
                        {
                            CurrentUser = user;

                            Views.Main view = new Views.Main();
                            view.Show();

                            Window wd = MyStaticMethods.getWindowParent(p) as Window;
                            if (wd != null)
                            {
                                wd.Close();
                            }

                            resetData();
                        }
                    }
                    else
                    {
                        CurrentUser = user;

                        Views.Main view = new Views.Main();
                        view.Show();

                        Window wd = MyStaticMethods.getWindowParent(p) as Window;
                        if (wd != null)
                        {
                            wd.Close();
                        }

                        resetData();
                    }
                }
                else
                {
                    IsActive = true;
                    Message  = "Sai tên đăng nhập hoặc mật khẩu";
                }
            });

            CloseLoginform_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                Application.Current.Shutdown();
            });
            #endregion
        }
예제 #22
0
        public Home_ViewModel()
        {
            Load_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                List            = new ObservableCollection <Models.CheckInOut>(Models.DataProvider.Ins.DB.CheckInOuts.Where(x => x.checkOutTime == null));
                List            = new ObservableCollection <Models.CheckInOut>(List.Where(x => x.checkInTime.Value.Date == DateTime.Today));
                SelectedItem    = null;
                IsDetailOpen    = false;
                SearchLicense   = String.Empty;
                SearchTimeStart = String.Empty;
                SearchTimeEnd   = String.Empty;
                IsEnableList    = true;
            });

            OpenDetail_Command = new RelayCommand <object>(p =>
            {
                if (IsDetailOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsDetailOpen = true;
                IsEnableList = false;
            });

            CloseDetail_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                SelectedItem = null;
                IsDetailOpen = false;
                IsEnableList = true;
            });

            Search_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                List = new ObservableCollection <Models.CheckInOut>(Models.DataProvider.Ins.DB.CheckInOuts.Where(x => x.checkOutTime == null));
                List = new ObservableCollection <Models.CheckInOut>(List.Where(x => x.checkInTime.Value.Date == DateTime.Today));
                if (!String.IsNullOrEmpty(SearchLicense))
                {
                    List = new ObservableCollection <Models.CheckInOut>(List.Where(x => x.license.ToUpper().Contains(SearchLicense.ToUpper())));
                }
                if (!String.IsNullOrEmpty(SearchTimeStart))
                {
                    DateTime timeStart = MyStaticMethods.ConvertTime(SearchTimeStart);
                    List = new ObservableCollection <Models.CheckInOut>(List.Where(x => x.checkInTime.Value >= timeStart));
                }
                if (!String.IsNullOrEmpty(SearchTimeEnd))
                {
                    DateTime timeEnd = MyStaticMethods.ConvertTime(SearchTimeEnd);
                    List             = new ObservableCollection <Models.CheckInOut>(List.Where(x => x.checkInTime.Value <= timeEnd));
                }
            });
        }
예제 #23
0
        public Nhanvien_ViewModel()
        {
            List       = new ObservableCollection <Model.NHANVIEN>(Model.DataProvider.Ins.DB.NHANVIENs.Where(x => x.IsDeleted == false));
            DeleteList = new ObservableCollection <Model.NHANVIEN>();

            List_Quyen = new ObservableCollection <Model.QUYEN>(Model.DataProvider.Ins.DB.QUYENs);

            Active = false;
            IsOpen = false;

            Active_Command = new RelayCommand <object>(p =>
            {
                if (Active == false)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Active = false;
            });

            CloseDialog_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                IsOpen = false;
            });

            Load_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                List       = new ObservableCollection <Model.NHANVIEN>(Model.DataProvider.Ins.DB.NHANVIENs.Where(x => x.IsDeleted == false));
                DeleteList = new ObservableCollection <Model.NHANVIEN>();

                List_Quyen = new ObservableCollection <Model.QUYEN>(Model.DataProvider.Ins.DB.QUYENs);

                Active = false;
                IsOpen = false;
            });

            #region Tao moi
            Reset_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                SelectedItem = null;
                Tennhanvien  = "";
                Diachi       = "";
                Sodienthoai  = "";
                Ngaysinh     = "";
                SQuyen       = null;
            });
            #endregion

            #region Phan them
            Insert_Command = new RelayCommand <object>(p =>
            {
                if (string.IsNullOrEmpty(Tennhanvien) || string.IsNullOrEmpty(Sodienthoai) || string.IsNullOrEmpty(Diachi) || string.IsNullOrEmpty(Ngaysinh))
                {
                    return(false);
                }

                long i = 0;
                if (!long.TryParse(Sodienthoai, out i))
                {
                    return(false);
                }

                int count = Model.DataProvider.Ins.DB.NHANVIENs.Where(x => x.sodienthoai == Sodienthoai).Count();
                if (count != 0)
                {
                    return(false);
                }

                if (SQuyen == null)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                SelectedItem = null;

                Model.NHANVIEN newItem = new Model.NHANVIEN()
                {
                    ma_nhanvien  = MyStaticMethods.RandomInt(10),
                    ten_nhanvien = Tennhanvien,
                    ngaysinh     = MyStaticMethods.FormatDateString(Ngaysinh),
                    QUYEN        = SQuyen,
                    diachi       = Diachi,
                    sodienthoai  = Sodienthoai,
                    IsDeleted    = false
                };

                Model.Nhanvien_Service.Insert(newItem);

                List.Insert(0, newItem);
                SelectedItem = newItem;

                Active  = true;
                Message = "Thêm mới thành công !!!";
            });
            #endregion

            #region Phan sua
            Update_Command = new RelayCommand <object>(p =>
            {
                if (SelectedItem == null)
                {
                    return(false);
                }

                if (string.IsNullOrEmpty(Tennhanvien) || string.IsNullOrEmpty(Sodienthoai) || string.IsNullOrEmpty(Diachi) || string.IsNullOrEmpty(Ngaysinh))
                {
                    return(false);
                }

                long i = 0;
                if (!long.TryParse(Sodienthoai, out i))
                {
                    return(false);
                }

                if (SQuyen == null)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Model.NHANVIEN UpdateItem = new Model.NHANVIEN()
                {
                    ten_nhanvien = Tennhanvien,
                    ngaysinh     = MyStaticMethods.FormatDateString(Ngaysinh),
                    QUYEN        = SQuyen,
                    diachi       = Diachi,
                    sodienthoai  = Sodienthoai
                };
                Model.Nhanvien_Service.Update(UpdateItem, Manhanvien);

                for (int i = 0; i < List.Count(); i++)
                {
                    if (List[i] == SelectedItem)
                    {
                        List[i] = new Model.NHANVIEN()
                        {
                            ma_nhanvien  = Manhanvien,
                            ten_nhanvien = Tennhanvien,
                            diachi       = Diachi,
                            sodienthoai  = Sodienthoai,
                            ngaysinh     = MyStaticMethods.FormatDateString(Ngaysinh),
                            QUYEN        = _SQuyen
                        };
                        break;
                    }
                }

                //MessageBox.Show("Chỉnh sửa thành công", "THÔNG BÁO");

                SelectedItem = null;
                Tennhanvien  = "";
                Diachi       = "";
                Sodienthoai  = "";
                Ngaysinh     = "";
                SQuyen       = null;

                Active  = true;
                Message = "Chỉnh sửa thành công !!!";
            });
            #endregion

            #region Phan xoa

            DeleteShow_Command = new RelayCommand <object>(p =>
            {
                if (DeleteList.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsOpen  = true;
                Content = "  Xóa các bản ghi được chọn ???";
            });

            AddDeleteList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                DeleteList.Add(List.Where(x => x.ma_nhanvien == p.Uid.ToString()).SingleOrDefault());
            });

            RemoveDeleteList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                DeleteList.Remove(List.Where(x => x.ma_nhanvien == p.Uid.ToString()).SingleOrDefault());
            });

            Delete_Command = new RelayCommand <object>(p =>
            {
                if (DeleteList.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                RemoveIteminDb();
                RemoveIteminList();
                Capnhat_dboTaiKhoan();

                DeleteList   = new ObservableCollection <Model.NHANVIEN>();
                IsOpen       = false;
                SelectedItem = null;
            });
            #endregion

            #region Sap xep

            OrderbyTen_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.NHANVIEN> chkList = new ObservableCollection <Model.NHANVIEN>(List.OrderByDescending(x => x.ten_nhanvien));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.NHANVIEN>(List.OrderBy(x => x.ten_nhanvien));
                }
                else
                {
                    List = new ObservableCollection <Model.NHANVIEN>(chkList);
                }
            });

            OrderbyDiachi_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.NHANVIEN> chkList = new ObservableCollection <Model.NHANVIEN>(List.OrderByDescending(x => x.diachi));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.NHANVIEN>(List.OrderBy(x => x.diachi));
                }
                else
                {
                    List = new ObservableCollection <Model.NHANVIEN>(chkList);
                }
            });

            OrderbyVitri_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.NHANVIEN> chkList = new ObservableCollection <Model.NHANVIEN>(List.OrderByDescending(x => x.QUYEN.ma_quyen));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.NHANVIEN>(List.OrderBy(x => x.QUYEN.ma_quyen));
                }
                else
                {
                    List = new ObservableCollection <Model.NHANVIEN>(chkList);
                }
            });

            #endregion
        }
예제 #24
0
        public Loaimathang_ViewModel()
        {
            List       = new ObservableCollection <Model.LOAIHANG>(Model.DataProvider.Ins.DB.LOAIHANGs.Where(x => x.IsDeleted == false));
            DeleteList = new ObservableCollection <Model.LOAIHANG>();

            Active = false;
            IsOpen = false;

            Active_Command = new RelayCommand <object>(p =>
            {
                if (Active == false)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Active = false;
            });

            CloseDialog_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                IsOpen = false;
            });

            Load_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                List       = new ObservableCollection <Model.LOAIHANG>(Model.DataProvider.Ins.DB.LOAIHANGs.Where(x => x.IsDeleted == false));
                DeleteList = new ObservableCollection <Model.LOAIHANG>();

                Active = false;
                IsOpen = false;
            });

            #region Phan them
            Insert_Command = new RelayCommand <object>(p =>
            {
                if (string.IsNullOrEmpty(Tenloaihang))
                {
                    return(false);
                }

                var check = Model.DataProvider.Ins.DB.LOAIHANGs.Where(x => x.ten_loaihang == Tenloaihang);
                if (check == null || check.Count() != 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                SelectedItem = null;

                Model.LOAIHANG newItem = new Model.LOAIHANG()
                {
                    ma_loaihang  = MyStaticMethods.RandomString(5, false),
                    ten_loaihang = Tenloaihang,
                    mota         = (string.IsNullOrEmpty(Mota)) ? null : Mota,
                    IsDeleted    = false
                };

                Model.Loaimathang_Service.Insert(newItem);

                List.Insert(0, newItem);
                SelectedItem = newItem;

                Active  = true;
                Message = "Thêm mới thành công !!!";
            });
            #endregion

            #region Phan sua
            Update_Command = new RelayCommand <object>(p =>
            {
                if (SelectedItem == null)
                {
                    return(false);
                }

                if (string.IsNullOrEmpty(Tenloaihang))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Model.LOAIHANG UpdateItem = new Model.LOAIHANG()
                {
                    ten_loaihang = Tenloaihang,
                    mota         = string.IsNullOrEmpty(Mota) ? null : Mota
                };
                Model.Loaimathang_Service.Update(UpdateItem, Maloaihang);

                for (int i = 0; i < List.Count(); i++)
                {
                    if (List[i] == SelectedItem)
                    {
                        List[i] = new Model.LOAIHANG()
                        {
                            ma_loaihang  = Maloaihang,
                            ten_loaihang = Tenloaihang,
                            mota         = (string.IsNullOrEmpty(Mota)) ? null : Mota
                        };
                        break;
                    }
                }
                //MessageBox.Show("Chỉnh sửa thành công", "THÔNG BÁO");

                SelectedItem = null;
                Tenloaihang  = "";
                Mota         = "";

                Active  = true;
                Message = "Chỉnh sửa thành công !!!";
            });
            #endregion

            #region Phan xoa
            AddDeleteList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                DeleteList.Add(List.Where(x => x.ma_loaihang == p.Uid.ToString()).SingleOrDefault());
            });

            RemoveDeleteList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                DeleteList.Remove(List.Where(x => x.ma_loaihang == p.Uid.ToString()).SingleOrDefault());
            });

            DeleteShow_Command = new RelayCommand <object>(p =>
            {
                if (DeleteList.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsOpen  = true;
                Content = "  Xóa các bản ghi được chọn ???";
            });

            Delete_Command = new RelayCommand <object>(p =>
            {
                if (DeleteList.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                RemoveIteminDb();
                RemoveIteminList();

                DeleteList   = new ObservableCollection <Model.LOAIHANG>();
                IsOpen       = false;
                SelectedItem = null;
            });
            #endregion

            #region Tao moi
            Reset_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                SelectedItem = null;
                Tenloaihang  = "";
                Mota         = "";
            });
            #endregion

            #region Phan sap xep

            Sort_Command = new RelayCommand <object>(p =>
            {
                if (List.Count == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.LOAIHANG> chkList = new ObservableCollection <Model.LOAIHANG>(List.OrderByDescending(x => x.ten_loaihang));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.LOAIHANG>(List.OrderBy(x => x.ten_loaihang));
                }
                else
                {
                    List = new ObservableCollection <Model.LOAIHANG>(chkList);
                }
            });

            #endregion
        }
        public Xuathang_ViewModel()
        {
            List       = new ObservableCollection <Model.CHITIETPHIEUXUAT>(Model.DataProvider.Ins.DB.CHITIETPHIEUXUATs.Where(x => x.IsDeleted == false).ToList().OrderByDescending(x => MyStaticMethods.ConvertStringtoDate(x.PHIEUXUAT.ngayxuat)));
            DeleteList = new ObservableCollection <Model.CHITIETPHIEUXUAT>();

            ListMathang   = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));
            ListKhachhang = new ObservableCollection <Model.KHACHHANG>(Model.DataProvider.Ins.DB.KHACHHANGs.Where(x => x.IsDeleted == false));
            ListPhieunhap = new ObservableCollection <Model.CHITIETPHIEUNHAP>();

            ListKH_Print = new ObservableCollection <Model.KHACHHANG>(Model.DataProvider.Ins.DB.KHACHHANGs.Where(x => x.IsDeleted == false));

            ListSoluong = new ObservableCollection <string>();

            Active        = false;
            IsOpen        = false;
            IsOpen_insert = false;
            IsOpen_Filter = false;
            IsOpen_prt    = false;

            Active_Command = new RelayCommand <object>(p =>
            {
                if (Active == false)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Active = false;
            });

            CloseDialog_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                IsOpen_prt = false;
            });

            Load_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                List       = new ObservableCollection <Model.CHITIETPHIEUXUAT>(Model.DataProvider.Ins.DB.CHITIETPHIEUXUATs.Where(x => x.IsDeleted == false).ToList().OrderByDescending(x => MyStaticMethods.ConvertStringtoDate(x.PHIEUXUAT.ngayxuat)));
                DeleteList = new ObservableCollection <Model.CHITIETPHIEUXUAT>();

                ListMathang   = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));
                ListKhachhang = new ObservableCollection <Model.KHACHHANG>(Model.DataProvider.Ins.DB.KHACHHANGs.Where(x => x.IsDeleted == false));
                ListPhieunhap = new ObservableCollection <Model.CHITIETPHIEUNHAP>();

                ListSoluong = new ObservableCollection <string>();

                Active        = false;
                IsOpen        = false;
                IsOpen_insert = false;
                IsOpen_Filter = false;
                IsOpen_prt    = false;

                ListLoai_Filter      = new ObservableCollection <Model.LOAIHANG>(Model.DataProvider.Ins.DB.LOAIHANGs.Where(x => x.IsDeleted == false));
                ListMathang_Filter   = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));
                ListKhachhang_Filter = new ObservableCollection <Model.KHACHHANG>(Model.DataProvider.Ins.DB.KHACHHANGs.Where(x => x.IsDeleted == false));

                ListKH_Print = new ObservableCollection <Model.KHACHHANG>(Model.DataProvider.Ins.DB.KHACHHANGs.Where(x => x.IsDeleted == false));
            });

            #region Lua chon mat hang va phieu nhap

            Select_mathang_Command = new RelayCommand <ComboBox>(p =>
            {
                if (SMathang == null)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ListPhieunhap = new ObservableCollection <Model.CHITIETPHIEUNHAP>();
                foreach (var item in Model.DataProvider.Ins.DB.CHITIETPHIEUNHAPs.Where(x => x.IsDeleted == false))
                {
                    while (item.MATHANG == SMathang)
                    {
                        ListPhieunhap.Add(item);
                        break;
                    }
                }
            });

            Select_phieunhap_Command = new RelayCommand <ComboBox>(p =>
            {
                if (SMathang == null || SPhieunhap == null)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Dongiaxuat = SPhieunhap.giaxuat.ToString();

                ListSoluong = new ObservableCollection <string>();
                for (int i = 1; i <= SPhieunhap.soluongton; i++)
                {
                    ListSoluong.Add(i.ToString());
                }
            });

            #endregion

            #region Them moi

            InsertShow_Command = new RelayCommand <object>(p =>
            {
                if (SPhieunhap == null || SKhachhang == null || SMathang == null)
                {
                    return(false);
                }

                if (string.IsNullOrEmpty(Soluongxuat) || string.IsNullOrEmpty(Soluongthucxuat))
                {
                    return(false);
                }

                int soluongnhap = 0;
                if (!int.TryParse(Soluongxuat.Replace(" ", String.Empty), out soluongnhap))
                {
                    return(false);
                }

                int soluongthucnhap = 0;
                if (!int.TryParse(Soluongthucxuat.Replace(" ", String.Empty), out soluongthucnhap))
                {
                    return(false);
                }

                if (IsOpen_insert == true || IsOpen == true)
                {
                    return(false);
                }

                if (Convert.ToInt32(Dongiaxuat) <= 0 || Convert.ToInt32(Soluongxuat) <= 0 || Convert.ToInt32(Soluongthucxuat) <= 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsOpen_insert = true;

                string date_str = MyStaticMethods.ConvertDate2Vn_Today();
                Ngay            = date_str;
            });

            Insert_Command = new RelayCommand <object>(p =>
            {
                if (SPhieunhap == null || SKhachhang == null || SMathang == null)
                {
                    return(false);
                }

                if (string.IsNullOrEmpty(Soluongxuat) || string.IsNullOrEmpty(Soluongthucxuat))
                {
                    return(false);
                }

                int soluongnhap = 0;
                if (!int.TryParse(Soluongxuat.Replace(" ", String.Empty), out soluongnhap))
                {
                    return(false);
                }

                int soluongthucnhap = 0;
                if (!int.TryParse(Soluongthucxuat.Replace(" ", String.Empty), out soluongthucnhap))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                string date_str       = MyStaticMethods.ConvertDate2Vn_Today();
                Model.PHIEUXUAT Phieu = CheckPhieuxuat(date_str);

                Model.CHITIETPHIEUXUAT newPhieu = new Model.CHITIETPHIEUXUAT()
                {
                    ma_ctphieuxuat   = MyStaticMethods.RandomInt(5) + "-" + SPhieunhap.MATHANG.ma_mathang,
                    CHITIETPHIEUNHAP = SPhieunhap,
                    KHACHHANG        = SKhachhang,
                    PHIEUXUAT        = Phieu,

                    soluongxuat     = Convert.ToInt32(Soluongxuat),
                    soluongthucxuat = Convert.ToInt32(Soluongthucxuat),

                    nguoitao  = getCurrentUser(),
                    ghichu    = Ghichu != "" ? Ghichu : null,
                    IsDeleted = false,
                };

                Model.Xuathang_Service.Insert(newPhieu);

                Update_luonghang(Convert.ToInt32(Soluongthucxuat), newPhieu.ma_ctphieunhap);

                List.Insert(0, newPhieu);
                SelectedItem = newPhieu;

                Active  = true;
                Message = "Thêm mới thành công !!!";

                IsOpen_insert = false;
            });

            #endregion

            #region Phan xoa

            DeleteShow_Command = new RelayCommand <object>(p =>
            {
                if (DeleteList.Count() == 0)
                {
                    return(false);
                }

                if (IsOpen_insert == true || IsOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsOpen  = true;
                Content = "  Xóa các bản ghi được chọn ???";
            });

            AddDeleteList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                DeleteList.Add(List.Where(x => x.ma_ctphieuxuat == p.Uid.ToString()).SingleOrDefault());
            });

            RemoveDeleteList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                DeleteList.Remove(List.Where(x => x.ma_ctphieuxuat == p.Uid.ToString()).SingleOrDefault());
            });

            Delete_Command = new RelayCommand <object>(p =>
            {
                if (DeleteList.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                RemoveIteminDb();
                RemoveIteminList();

                DeleteList   = new ObservableCollection <Model.CHITIETPHIEUXUAT>();
                IsOpen       = false;
                SelectedItem = null;
            });
            #endregion

            #region Tao moi
            Reset_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                SMathang        = null;
                SPhieunhap      = null;
                SKhachhang      = null;
                Soluongxuat     = "";
                Soluongthucxuat = "";
                Dongiaxuat      = "";
                SelectedItem    = null;

                ListMathang   = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));
                ListKhachhang = new ObservableCollection <Model.KHACHHANG>(Model.DataProvider.Ins.DB.KHACHHANGs.Where(x => x.IsDeleted == false));
                ListPhieunhap = new ObservableCollection <Model.CHITIETPHIEUNHAP>();

                ListSoluong = new ObservableCollection <string>();
            });
            #endregion

            #region Phan loc

            ListLoai_Filter      = new ObservableCollection <Model.LOAIHANG>(Model.DataProvider.Ins.DB.LOAIHANGs.Where(x => x.IsDeleted == false));
            ListMathang_Filter   = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));
            ListKhachhang_Filter = new ObservableCollection <Model.KHACHHANG>(Model.DataProvider.Ins.DB.KHACHHANGs.Where(x => x.IsDeleted == false));

            OpenFilter_Command = new RelayCommand <object>(p =>
            {
                if (IsOpen_Filter == true || IsOpen_insert == true || IsOpen_prt == true || IsOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsOpen_Filter = true;
            });

            FilterLoai_Command = new RelayCommand <ComboBox>(p =>
            {
                return(true);
            }, p =>
            {
                if (SLoai_Filter != null)
                {
                    FilterMathangby_Loai(SLoai_Filter.ma_loaihang);
                }
                else
                {
                    ListMathang_Filter = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));
                }
            });

            ResetFilter_Command = new RelayCommand <Button>(p =>
            {
                return(true);
            }, p =>
            {
                ListLoai_Filter      = new ObservableCollection <Model.LOAIHANG>(Model.DataProvider.Ins.DB.LOAIHANGs.Where(x => x.IsDeleted == false));
                ListMathang_Filter   = new ObservableCollection <Model.MATHANG>(Model.DataProvider.Ins.DB.MATHANGs.Where(x => x.IsDeleted == false));
                ListKhachhang_Filter = new ObservableCollection <Model.KHACHHANG>(Model.DataProvider.Ins.DB.KHACHHANGs.Where(x => x.IsDeleted == false));

                SKhachhang_Filter = null;
                SMathang_Filter   = null;
                SLoai_Filter      = null;
                Date_Start        = String.Empty;
                Date_End          = String.Empty;

                List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(Model.DataProvider.Ins.DB.CHITIETPHIEUXUATs.Where(x => x.IsDeleted == false).OrderByDescending(x => x.ma_phieuxuat));

                IsOpen_Filter = false;
            });

            Filter_Command = new RelayCommand <Button>(p =>
            {
                if (string.IsNullOrEmpty(Date_Start) || string.IsNullOrEmpty(Date_End))
                {
                    return(false);
                }

                DateTime date_start = Convert.ToDateTime(Date_Start);
                DateTime date_end   = Convert.ToDateTime(Date_End);
                if ((date_start > date_end) && DateTime.TryParse(Date_Start, out date_start) && DateTime.TryParse(Date_End, out date_end))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(Model.DataProvider.Ins.DB.CHITIETPHIEUXUATs.Where(x => x.IsDeleted == false).ToList().OrderByDescending(x => MyStaticMethods.ConvertStringtoDate(x.PHIEUXUAT.ngayxuat)));

                DateTime date_start = Convert.ToDateTime(Date_Start);
                DateTime date_end   = Convert.ToDateTime(Date_End);

                FindByDate(date_start, date_end);

                if (SMathang_Filter != null)
                {
                    FindByMH(SMathang_Filter.ma_mathang);
                }

                if (SKhachhang_Filter != null)
                {
                    FindByKH(SKhachhang_Filter.ma_khachhang);
                }

                if (SLoai_Filter != null)
                {
                    FindByLOAI(SLoai_Filter.ma_loaihang);
                }

                IsOpen_Filter = false;
            });

            #endregion

            #region Phan sap xep

            OrderbyTenMathang_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.CHITIETPHIEUXUAT> chkList = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.OrderByDescending(x => x.CHITIETPHIEUNHAP.MATHANG.ten_mathang));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.OrderBy(x => x.CHITIETPHIEUNHAP.MATHANG.ten_mathang));
                }
                else
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(chkList);
                }
            });

            OrderbyTennhacungcap_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.CHITIETPHIEUXUAT> chkList = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.OrderByDescending(x => x.CHITIETPHIEUNHAP.MATHANG.NHACUNGCAP.ten_nhacungcap));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.OrderBy(x => x.CHITIETPHIEUNHAP.MATHANG.NHACUNGCAP.ten_nhacungcap));
                }
                else
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(chkList);
                }
            });

            OrderbyNgay_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.CHITIETPHIEUXUAT> chkList = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.OrderByDescending(x => MyStaticMethods.ConvertStringtoDate(x.PHIEUXUAT.ngayxuat)));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.OrderBy(x => MyStaticMethods.ConvertStringtoDate(x.PHIEUXUAT.ngayxuat)));
                }
                else
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(chkList);
                }
            });

            OrderbyTendonvi_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.CHITIETPHIEUXUAT> chkList = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.OrderByDescending(x => x.CHITIETPHIEUNHAP.MATHANG.DONVITINH.ten_donvi));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.OrderBy(x => x.CHITIETPHIEUNHAP.MATHANG.DONVITINH.ten_donvi));
                }
                else
                {
                    List = new ObservableCollection <Model.CHITIETPHIEUXUAT>(chkList);
                }
            });

            #endregion

            #region Printer

            PrinterOpen_Command = new RelayCommand <object>(p =>
            {
                if (SKhachhangPrint == null)
                {
                    return(false);
                }

                if (string.IsNullOrEmpty(DayPrint))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                List_Print = new ObservableCollection <Model.CHITIETPHIEUXUAT>(List.Where(x => x.KHACHHANG == SKhachhangPrint &&
                                                                                          x.PHIEUXUAT.ngayxuat == MyStaticMethods.FormatDateString(DayPrint)));

                var list_chk = new ObservableCollection <Model.CHITIETPHIEUXUAT>();

                ItemsCount = 0;
                Tongtien   = 0;

                foreach (var item in List_Print)
                {
                    Tongtien += (double)(item.CHITIETPHIEUNHAP.giaxuat * item.soluongthucxuat);

                    if (list_chk.Where(x => x.CHITIETPHIEUNHAP.MATHANG == item.CHITIETPHIEUNHAP.MATHANG).Count() == 0)
                    {
                        list_chk.Add(item);
                    }
                }

                ItemsCount = list_chk.Count();


                DayPrintVN = MyStaticMethods.FormatDateString(DayPrint);

                View.View_Thukho.In_Xuat w = new View.View_Thukho.In_Xuat();
                w.ShowDialog();
            });

            OpenPrintDialog_Command = new RelayCommand <object>(p =>
            {
                if (IsOpen == true)
                {
                    return(false);
                }

                if (IsOpen_insert == true)
                {
                    return(false);
                }

                if (IsOpen_Filter == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsOpen_prt = true;
            });

            Print_Command = new RelayCommand <Grid>(p =>
            {
                return(true);
            }, p =>
            {
                try
                {
                    PrintDialog printDialog = new PrintDialog();
                    if (printDialog.ShowDialog() == true)
                    {
                        printDialog.PrintVisual(p, "invoice");
                    }

                    MessageBox.Show("Thành công !!!", "THÔNG BÁO");
                }
                catch (Exception) { MessageBox.Show("Có lỗi xảy ra !!!", "THÔNG BÁO"); };
            });

            PrinterFormClose_Command = new RelayCommand <Window>(p =>
            {
                return(true);
            }, p =>
            {
                if (p != null)
                {
                    p.Close();
                    IsOpen_prt = false;
                }
            });

            #endregion
        }
예제 #26
0
        public SpellDuty_ViewModel()
        {
            Load_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                getLst();
                IsAdd      = false;
                IsDelete   = false;
                IsUserOpen = false;

                TimeStart = String.Empty;
                TimeEnd   = String.Empty;
                Date      = String.Empty;
                ListUser  = new ObservableCollection <User>(Models.DataProvider.Ins.DB.Users);
            });

            CloseAlert_Command = new RelayCommand <object>(x =>
            {
                return(true);
            }, x =>
            {
                IsActive = false;
            });

            CloseDlg_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                IsAdd      = false;
                IsDelete   = false;
                IsUserOpen = false;
            });

            #region add

            OpenformAdd_Command = new RelayCommand <object>(p =>
            {
                if (IsAdd == true || IsDelete == true || IsUserOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                SelectedItem = new SpelldutyCustom();
                IsAdd        = true;
            });

            Add_Command = new RelayCommand <object>(p =>
            {
                if (SelectedItem == null)
                {
                    return(false);
                }

                if (String.IsNullOrEmpty(SelectedItem.TimeSt) || String.IsNullOrEmpty(SelectedItem.TimeEn))
                {
                    return(false);
                }

                if (MyStaticMethods.ConvertTimeSpell(SelectedItem.TimeSt) >= MyStaticMethods.ConvertTimeSpell(SelectedItem.TimeEn))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                if (checkValid(MyStaticMethods.ConvertTimeSpell(SelectedItem.TimeSt), MyStaticMethods.ConvertTimeSpell(SelectedItem.TimeEn)))
                {
                    Spellduty sp = new Spellduty();
                    sp           = SpelldutyCustom.MapSpell(SelectedItem);

                    Models.DataProvider.Ins.DB.Spellduties.Add(sp);
                    Models.DataProvider.Ins.DB.SaveChanges();
                    IsAdd = false;
                    getLst();
                    successAlert();
                }
                else
                {
                    IsAdd    = false;
                    IsActive = true;
                    Message  = "Ca trực bị trùng lặp";
                }
            });

            #endregion

            #region delete

            OpenformDelete_Command = new RelayCommand <Button>(p =>
            {
                if (IsAdd == true || IsDelete == true || IsUserOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                SelectedItem    = new SpelldutyCustom();
                SelectedItem.id = List.Where(x => x.id == Convert.ToInt32(p.Uid)).SingleOrDefault().id;
                IsDelete        = true;
            });

            Delete_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                Spellduty item = Models.DataProvider.Ins.DB.Spellduties.Where(x => x.id == SelectedItem.id).SingleOrDefault();
                Models.DataProvider.Ins.DB.Spellduties.Remove(item);
                Models.DataProvider.Ins.DB.SaveChanges();

                IsDelete = false;
                getLst();

                successAlert();
            });

            #endregion

            #region search

            Search_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                getLst();
                List = new ObservableCollection <SpelldutyCustom>(List.Where(x => x.startTime.Value.Date == DateTime.Today));
                if (!String.IsNullOrEmpty(Date))
                {
                    getLst();
                    List = new ObservableCollection <SpelldutyCustom>(List.Where(x => x.startTime.Value.Date.ToShortDateString() == Date));
                }
                if (!String.IsNullOrEmpty(TimeStart))
                {
                    List = new ObservableCollection <SpelldutyCustom>(List.Where(x =>
                    {
                        if (!String.IsNullOrEmpty(Date))
                        {
                            DateTime dt    = Convert.ToDateTime(Date);
                            DateTime conDt = MyStaticMethods.ConvertTime(TimeStart, dt);
                            return(x.startTime.Value >= conDt);
                        }
                        return(x.startTime.Value >= MyStaticMethods.ConvertTime(TimeStart));
                    }));
                }
                if (!String.IsNullOrEmpty(TimeEnd))
                {
                    List = new ObservableCollection <SpelldutyCustom>(List.Where(x =>
                    {
                        if (!String.IsNullOrEmpty(Date))
                        {
                            DateTime dt    = Convert.ToDateTime(Date);
                            DateTime conDt = MyStaticMethods.ConvertTime(TimeEnd, dt);
                            return(x.endTime.Value <= conDt);
                        }
                        return(x.endTime.Value <= MyStaticMethods.ConvertTime(TimeEnd));
                    }));
                }
            });

            #endregion

            #region users

            OpenUser_Command = new RelayCommand <Button>(p =>
            {
                if (IsAdd == true || IsDelete == true || IsUserOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                int id          = Convert.ToInt32(p.Uid);
                SelectedItem    = new SpelldutyCustom();
                SelectedItem.id = id;
                SelectedUser    = null;
                ListSpellUser   = new ObservableCollection <Spellduty_User>(Models.DataProvider.Ins.DB.Spellduty_User.Where(x => x.spelldutyId == id));
                IsUserOpen      = true;
            });

            UpdateUser_Command = new RelayCommand <object>(p =>
            {
                if (SelectedUser == null)
                {
                    return(false);
                }

                var chk = new ObservableCollection <Spellduty_User>(ListSpellUser.Where(x => x.User == SelectedUser));
                if (chk.Count != 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Models.Spellduty sp = Models.DataProvider.Ins.DB.Spellduties.Where(x => x.id == SelectedItem.id).SingleOrDefault();
                if (sp.startTime.Value.Date < DateTime.Today.Date)
                {
                    IsUserOpen = false;
                    IsActive   = true;
                    Message    = "Không cập nhật các bản ghi quá hạn";
                    return;
                }

                Spellduty_User item = new Spellduty_User()
                {
                    spelldutyId = SelectedItem.id,
                    User        = SelectedUser
                };
                Models.DataProvider.Ins.DB.Spellduty_User.Add(item);
                Models.DataProvider.Ins.DB.SaveChanges();
                ListSpellUser.Add(item);
            });

            RemoveUser_Command = new RelayCommand <Button>(p =>
            {
                return(true);
            }, p =>
            {
                Models.Spellduty sp = Models.DataProvider.Ins.DB.Spellduties.Where(x => x.id == SelectedItem.id).SingleOrDefault();
                if (sp.startTime.Value.Date < DateTime.Today.Date)
                {
                    IsUserOpen = false;
                    IsActive   = true;
                    Message    = "Không cập nhật các bản ghi quá hạn";
                    return;
                }

                int userId          = Convert.ToInt32(p.Uid);
                int spellId         = SelectedItem.id;
                Spellduty_User item = Models.DataProvider.Ins.DB.Spellduty_User.Where(x => x.Spellduty.id == spellId && x.User.users_id == userId).SingleOrDefault();
                Models.DataProvider.Ins.DB.Spellduty_User.Remove(item);
                Models.DataProvider.Ins.DB.SaveChanges();
                ListSpellUser.Remove(item);
            });

            #endregion

            #region sort

            SortbyDate_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <SpelldutyCustom> chkList = new ObservableCollection <SpelldutyCustom>(List.OrderByDescending(x => x.startTime.Value.Date));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <SpelldutyCustom>(List.OrderBy(x => x.startTime.Value.Date));
                }
                else
                {
                    List = chkList;
                }
            });

            SortbyTimeSt_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <SpelldutyCustom> chkList = new ObservableCollection <SpelldutyCustom>(List.OrderByDescending(x => x.startTime.Value.TimeOfDay));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <SpelldutyCustom>(List.OrderBy(x => x.startTime.Value.TimeOfDay));
                }
                else
                {
                    List = chkList;
                }
            });

            SortbyTimeEn_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                ObservableCollection <SpelldutyCustom> chkList = new ObservableCollection <SpelldutyCustom>(List.OrderByDescending(x => x.endTime.Value.TimeOfDay));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <SpelldutyCustom>(List.OrderBy(x => x.endTime.Value.TimeOfDay));
                }
                else
                {
                    List = chkList;
                }
            });

            #endregion
        }
        public Thongke_ViewModel()
        {
            List       = new ObservableCollection <Model.Thongke>();
            DeleteList = new ObservableCollection <Model.Thongke>();

            List_nhacungcap       = new ObservableCollection <Model.NHACUNGCAP>(Model.DataProvider.Ins.DB.NHACUNGCAPs.Where(x => x.IsDeleted == false));
            FilterList_nhacungcap = new ObservableCollection <Model.NHACUNGCAP>();

            List_loaihang       = new ObservableCollection <Model.LOAIHANG>(Model.DataProvider.Ins.DB.LOAIHANGs.Where(x => x.IsDeleted == false));
            FilterList_loaihang = new ObservableCollection <Model.LOAIHANG>();

            List_donvi       = new ObservableCollection <Model.DONVITINH>(Model.DataProvider.Ins.DB.DONVITINHs.Where(x => x.IsDeleted == false));
            FilterList_donvi = new ObservableCollection <Model.DONVITINH>();

            IscheckAll = true;
            IsOpen     = false;


            CloseDialog_Command = new RelayCommand <MaterialDesignThemes.Wpf.DialogHost>(p =>
            {
                return(true);
            }, p =>
            {
                p.IsOpen = false;
            });

            Load_Command = new RelayCommand <object>(p =>
            {
                return(true);
            }, p =>
            {
                List       = new ObservableCollection <Model.Thongke>();
                DeleteList = new ObservableCollection <Model.Thongke>();

                List_nhacungcap       = new ObservableCollection <Model.NHACUNGCAP>(Model.DataProvider.Ins.DB.NHACUNGCAPs.Where(x => x.IsDeleted == false));
                FilterList_nhacungcap = new ObservableCollection <Model.NHACUNGCAP>();

                List_loaihang       = new ObservableCollection <Model.LOAIHANG>(Model.DataProvider.Ins.DB.LOAIHANGs.Where(x => x.IsDeleted == false));
                FilterList_loaihang = new ObservableCollection <Model.LOAIHANG>();

                List_donvi       = new ObservableCollection <Model.DONVITINH>(Model.DataProvider.Ins.DB.DONVITINHs.Where(x => x.IsDeleted == false));
                FilterList_donvi = new ObservableCollection <Model.DONVITINH>();

                IsOpen = false;
            });

            #region Them / xoa khoi FilterList_nhacungcap

            AddtoFilterNCC_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                string id = p.Uid.ToString();
                var item  = List_nhacungcap.Where(x => x.ma_nhacungcap == id).SingleOrDefault();

                FilterList_nhacungcap.Add(item);
            });

            DeletefromFilterNCC_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                string id = p.Uid.ToString();
                var item  = List_nhacungcap.Where(x => x.ma_nhacungcap == id).SingleOrDefault();

                FilterList_nhacungcap.Remove(item);
            });

            #endregion

            #region Them / xoa khoi FilterList_loaihang

            AddtoFilterLH_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                string id = p.Uid.ToString();
                var item  = List_loaihang.Where(x => x.ma_loaihang == id).SingleOrDefault();

                FilterList_loaihang.Add(item);
            });

            DeletefromFilterLH_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                string id = p.Uid.ToString();
                var item  = List_loaihang.Where(x => x.ma_loaihang == id).SingleOrDefault();

                FilterList_loaihang.Remove(item);
            });

            #endregion

            #region Them / xoa khoi FilterList_donvi

            AddtoFilterDV_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                string id = p.Uid.ToString();
                var item  = List_donvi.Where(x => x.ma_donvi == id).SingleOrDefault();

                FilterList_donvi.Add(item);
            });

            DeletefromFilterDV_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                string id = p.Uid.ToString();
                var item  = List_donvi.Where(x => x.ma_donvi == id).SingleOrDefault();

                FilterList_donvi.Remove(item);
            });

            #endregion

            #region Phan xoa

            AddDeleteList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                DeleteList.Add(List.Where(x => x.mathang.ma_mathang == p.Uid.ToString()).SingleOrDefault());
            });

            RemoveDeleteList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                DeleteList.Remove(List.Where(x => x.mathang.ma_mathang == p.Uid.ToString()).SingleOrDefault());
            });

            DeleteShow_Command = new RelayCommand <object>(p =>
            {
                if (DeleteList.Count() == 0)
                {
                    return(false);
                }

                if (IsOpen == true)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                IsOpen  = true;
                Content = "  Xóa các bản ghi được chọn ???";
            });

            Delete_Command = new RelayCommand <object>(p =>
            {
                if (DeleteList.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                for (int i = 0; i < List.Count(); i++)
                {
                    while (DeleteList.Where(x => x == List[i]).Count() != 0)
                    {
                        if (List[i] == List[List.Count() - 1])
                        {
                            List.Remove(List[i]);
                            break;
                        }
                        else
                        {
                            List.Remove(List[i]);
                        }
                    }
                    ;
                }

                DeleteList = new ObservableCollection <Model.Thongke>();
                IsOpen     = false;
            });

            #endregion

            #region Thong ke
            Statistic_Command = new RelayCommand <object>(p =>
            {
                if (string.IsNullOrEmpty(Date_Start) || string.IsNullOrEmpty(Date_End))
                {
                    return(false);
                }

                DateTime date_start = Convert.ToDateTime(Date_Start);
                DateTime date_end   = Convert.ToDateTime(Date_End);
                if ((date_start > date_end) && DateTime.TryParse(Date_Start, out date_start) && DateTime.TryParse(Date_End, out date_end))
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                List = new ObservableCollection <Model.Thongke>();
                Filter_ngaythang(MyStaticMethods.FormatDateString(Date_Start), MyStaticMethods.FormatDateString(Date_End));

                if (IscheckAll == false)
                {
                    UncheckAll_Filter();
                }

                if (FilterList_nhacungcap.Count() != 0)
                {
                    Filter_nhacungcap();
                }

                if (FilterList_loaihang.Count() != 0)
                {
                    Filter_loaimathang();
                }

                if (FilterList_donvi.Count() != 0)
                {
                    Filter_donvi();
                }
            });
            #endregion

            #region Xuat Excel

            Excel_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                string filePath = "*.xlsx";
                // tạo SaveFileDialog để lưu file excel
                SaveFileDialog dialogs = new SaveFileDialog();

                // chỉ lọc ra các file có định dạng Excel
                dialogs.Filter = "Excel | *.xlsx | Excel 2003 | *.xls";

                // Nếu mở file và chọn nơi lưu file thành công sẽ lưu đường dẫn lại dùng
                if (dialogs.ShowDialog() == true)
                {
                    filePath = dialogs.FileName;
                }

                // nếu đường dẫn null hoặc rỗng thì báo không hợp lệ và return hàm
                if (string.IsNullOrEmpty(filePath))
                {
                    MessageBox.Show("Đường dẫn báo cáo không hợp lệ");
                    return;
                }
                try
                {
                    using (ExcelPackage pk = new ExcelPackage())
                    {
                        // đặt tên người tạo file
                        pk.Workbook.Properties.Author = ViewModel.Taikhoan_ViewModel.getCurrent();

                        // đặt tiêu đề cho file
                        pk.Workbook.Properties.Title = "Báo cáo thống kê";

                        //Tạo một sheet để làm việc trên đó
                        pk.Workbook.Worksheets.Add("BCTK sheet");

                        // lấy sheet vừa add ra để thao tác
                        ExcelWorksheet ws = pk.Workbook.Worksheets[1];

                        // đặt tên cho sheet
                        ws.Name = "BCTK sheet";
                        // fontsize mặc định cho cả sheet
                        ws.Cells.Style.Font.Size = 11;
                        // font family mặc định cho cả sheet
                        ws.Cells.Style.Font.Name = "Calibri";

                        // Tạo danh sách các column header
                        string[] arrColumnHeader =
                        {
                            (Date_Start + " - " + Date_End),
                            "Mã mặt hàng",
                            "Tên mặt hàng",
                            "Loại mặt hàng",
                            "Nhà cung cấp",
                            "Số lượng nhập",
                            "Số lượng xuất",
                            "Số lượng tồn",
                            "Đơn vị tính"
                        };

                        // lấy ra số lượng cột cần dùng dựa vào số lượng header
                        var countColHeader = arrColumnHeader.Count();

                        // merge các column lại từ column 1 đến số column header
                        // gán giá trị cho cell vừa merge là Thống kê thông tni User Kteam
                        ws.Cells[1, 1].Value = "Thống kê hàng hóa";
                        ws.Cells[1, 1, 1, countColHeader].Merge = true;
                        // in đậm
                        ws.Cells[1, 1, 1, countColHeader].Style.Font.Bold = true;
                        // căn giữa
                        ws.Cells[1, 1, 1, countColHeader].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;

                        int colIndex = 1;
                        int rowIndex = 2;

                        //tạo các header từ column header đã tạo từ bên trên
                        foreach (var item in arrColumnHeader)
                        {
                            var cell = ws.Cells[rowIndex, colIndex];

                            //set màu thành gray
                            var fill         = cell.Style.Fill;
                            fill.PatternType = ExcelFillStyle.Solid;
                            fill.BackgroundColor.SetColor(System.Drawing.Color.LightBlue);

                            //căn chỉnh các border
                            var border                     = cell.Style.Border;
                            border.Bottom.Style            =
                                border.Top.Style           =
                                    border.Left.Style      =
                                        border.Right.Style = ExcelBorderStyle.Thin;

                            //gán giá trị
                            cell.Value = item;

                            colIndex++;
                        }

                        // lấy ra danh sách UserInfo từ ItemSource của DataGrid
                        List <Model.Thongke> userList = List.Cast <Model.Thongke>().ToList();

                        // với mỗi item trong danh sách sẽ ghi trên 1 dòng
                        foreach (var item in userList)
                        {
                            // bắt đầu ghi từ cột 1. Excel bắt đầu từ 1 không phải từ 0
                            colIndex = 1;

                            // rowIndex tương ứng từng dòng dữ liệu
                            rowIndex++;

                            //gán giá trị cho từng cell
                            ws.Cells[rowIndex, colIndex++].Value = "";

                            ws.Cells[rowIndex, colIndex++].Value = item.mathang.ma_mathang;

                            ws.Cells[rowIndex, colIndex++].Value = item.mathang.ten_mathang;

                            ws.Cells[rowIndex, colIndex++].Value = item.mathang.LOAIHANG.ten_loaihang;

                            ws.Cells[rowIndex, colIndex++].Value = item.mathang.NHACUNGCAP.ten_nhacungcap;

                            ws.Cells[rowIndex, colIndex++].Value = item.soluongnhap;

                            ws.Cells[rowIndex, colIndex++].Value = item.soluongxuat;

                            ws.Cells[rowIndex, colIndex++].Value = item.tonkho;

                            ws.Cells[rowIndex, colIndex++].Value = item.mathang.DONVITINH.ten_donvi;
                        }

                        //Lưu file lại
                        Byte[] bin = pk.GetAsByteArray();
                        File.WriteAllBytes(filePath, bin);
                    }
                    MessageBox.Show("Thành công !!!", "THÔNG BÁO");
                    Process.Start(filePath);
                }
                catch (Exception)
                {
                    MessageBox.Show("Có lỗi khi lưu file !!!", "THÔNG BÁO");
                }
            });

            #endregion

            #region Sap xep

            OrderbyNhap_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.Thongke> chkList = new ObservableCollection <Model.Thongke>(List.OrderByDescending(x => x.soluongnhap));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.Thongke>(List.OrderBy(x => x.soluongnhap));
                }
                else
                {
                    List = new ObservableCollection <Model.Thongke>(chkList);
                }
            });

            OrderbyXuat_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.Thongke> chkList = new ObservableCollection <Model.Thongke>(List.OrderByDescending(x => x.soluongxuat));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.Thongke>(List.OrderBy(x => x.soluongxuat));
                }
                else
                {
                    List = new ObservableCollection <Model.Thongke>(chkList);
                }
            });

            OrderbyTon_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.Thongke> chkList = new ObservableCollection <Model.Thongke>(List.OrderByDescending(x => x.tonkho));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.Thongke>(List.OrderBy(x => x.tonkho));
                }
                else
                {
                    List = new ObservableCollection <Model.Thongke>(chkList);
                }
            });


            OrderbyTenMathang_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.Thongke> chkList = new ObservableCollection <Model.Thongke>(List.OrderByDescending(x => x.mathang.ten_mathang));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.Thongke>(List.OrderBy(x => x.mathang.ten_mathang));
                }
                else
                {
                    List = new ObservableCollection <Model.Thongke>(chkList);
                }
            });

            OrderbyTennhacungcap_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.Thongke> chkList = new ObservableCollection <Model.Thongke>(List.OrderByDescending(x => x.mathang.NHACUNGCAP.ten_nhacungcap));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.Thongke>(List.OrderBy(x => x.mathang.NHACUNGCAP.ten_nhacungcap));
                }
                else
                {
                    List = new ObservableCollection <Model.Thongke>(chkList);
                }
            });

            OrderbyTenloai_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.Thongke> chkList = new ObservableCollection <Model.Thongke>(List.OrderByDescending(x => x.mathang.LOAIHANG.ten_loaihang));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.Thongke>(List.OrderBy(x => x.mathang.LOAIHANG.ten_loaihang));
                }
                else
                {
                    List = new ObservableCollection <Model.Thongke>(chkList);
                }
            });

            OrderbyTendonvi_Command = new RelayCommand <object>(p =>
            {
                if (List.Count() == 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                ObservableCollection <Model.Thongke> chkList = new ObservableCollection <Model.Thongke>(List.OrderByDescending(x => x.mathang.DONVITINH.ten_donvi));

                if (List[0] == chkList[0])
                {
                    List = new ObservableCollection <Model.Thongke>(List.OrderBy(x => x.mathang.DONVITINH.ten_donvi));
                }
                else
                {
                    List = new ObservableCollection <Model.Thongke>(chkList);
                }
            });

            #endregion
        }