Example #1
0
 protected override void RemoveItem(int index)
 {
     if (this.RaiseListChangedEvents)
     {
         DeleteList.Add(this[index]);
         this.AddedList.Remove(this[index]);
         base.RemoveItem(index);
     }
 }
Example #2
0
 /// <summary>
 /// 删除用法
 /// </summary>
 /// <param name="sender">控件</param>
 /// <param name="e">参数</param>
 private void dgChannel_CellClick(object sender, DataGridViewCellEventArgs e)
 {
     if (dgChannel.Columns.IndexOf(dgChannel.Columns["btnDelete"]) == e.ColumnIndex)
     {
         DataTable dt = dgChannel.DataSource as DataTable;
         DeleteList.Add(ConvertExtend.ToObject <Basic_ExecuteBillChannel>(dt, e.RowIndex));
         dt.Rows.RemoveAt(e.RowIndex);
         dt.AcceptChanges();
     }
 }
Example #3
0
        /// <summary>
        /// Default constructor
        /// </summary>
        public SellGoldAction()
        {
            var x = new NamedParameter("param1");
            var y = new NamedParameter("param2");

            Preconditions.Add(new Fact(Definitions.HasGold, new ValueParameter(true)));
            Preconditions.Add(new Fact(Definitions.Town, x, y));
            Preconditions.Add(new Fact(Definitions.In, x, y));
            AddList.Add(new Fact(Definitions.HasGold, new ValueParameter(false)));
            DeleteList.Add(new Fact(Definitions.HasGold, new ValueParameter(true)));
        }
Example #4
0
        /// <summary>
        /// Default constructor
        /// </summary>
        public GoToAction()
        {
            var x  = new NamedParameter("param1");
            var y  = new NamedParameter("param2");
            var x2 = new NamedParameter("param3");
            var y2 = new NamedParameter("param4");

            Preconditions.Add(new Fact(Definitions.In, x, y));
            AddList.Add(new Fact(Definitions.In, x2, y2));
            DeleteList.Add(new Fact(Definitions.In, x, y));
        }
Example #5
0
        /// <summary>
        /// Default constructor that initializes preconditions, add/delete list and constraints
        /// </summary>
        /// <param name="table">The table of our problem</param>
        public PutDownAction(Table table)
        {
            _table = table;
            var block = new NamedParameter("param1");
            var goal1 = new Fact(Definitions.ArmHolds, block);

            Preconditions.Add(goal1);
            AddList.Add(new Fact(Definitions.ArmHolds, new ValueParameter(null)));
            AddList.Add(new Fact(Definitions.On, block, new ValueParameter(table)));
            AddList.Add(new Fact(Definitions.Clear, block));
            DeleteList.Add(goal1);
            Constraints.Add(TypeCheck(typeof(Block), block));
        }
        /// <summary>
        /// List删除后的处理
        /// </summary>
        /// <param name="e"></param>
        private void ItemDeleted(ListChangedEventArgs e)
        {
            if (InsertList.Contains(_deletedItem))
            {
                InsertList.Remove(_deletedItem);
                return;
            }
            if (UpdateList.Contains(_deletedItem))
            {
                UpdateList.Remove(_deletedItem);
            }

            if (!DeleteList.Contains(_deletedItem))
            {
                DeleteList.Add(_deletedItem);
            }
        }
            public StackAction()
            {
                var param1 = new STRIPS.NamedParameter("param1");
                var param2 = new STRIPS.NamedParameter("param2");
                var goal1  = new STRIPS.Fact(Definitions.ArmHolds, param1);
                var goal2  = new STRIPS.Fact(Definitions.Clear, param2);

                Preconditions.Add(goal1);
                Preconditions.Add(goal2);
                AddList.Add(new STRIPS.Fact(Definitions.ArmHolds, new STRIPS.ValueParameter(null)));
                AddList.Add(new STRIPS.Fact(Definitions.On, param1, param2));
                AddList.Add(new STRIPS.Fact(Definitions.Clear, param1));
                DeleteList.Add(goal1);
                DeleteList.Add(goal2);
                Constraints.Add(TypeCheck(typeof(Block), param1));
                Constraints.Add(TypeCheck(typeof(Block), param2));
                Constraints.Add(NotEqualsCheck(param1, param2));
            }
        public Khachhang_ViewModel()
        {
            List       = new ObservableCollection <Model.KHACHHANG>(Model.DataProvider.Ins.DB.KHACHHANGs.Where(x => x.IsDeleted == false));
            DeleteList = new ObservableCollection <Model.KHACHHANG>();

            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.KHACHHANG>(Model.DataProvider.Ins.DB.KHACHHANGs.Where(x => x.IsDeleted == false));
                DeleteList = new ObservableCollection <Model.KHACHHANG>();

                Active = false;
                IsOpen = false;
            });

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

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

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

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

                Model.KHACHHANG newItem = new Model.KHACHHANG()
                {
                    ma_khachhang  = Guid.NewGuid().ToString(),
                    ten_khachhang = Tenkhachhang,
                    diachi        = Diachi,
                    sodienthoai   = Sodienthoai,
                    IsDeleted     = false
                };

                Model.Khachhang_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);
                }

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

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

                var check = Model.DataProvider.Ins.DB.KHACHHANGs.Where(x => x.ten_khachhang == Tenkhachhang && x.diachi == Diachi && x.sodienthoai == Sodienthoai);
                if (check == null || check.Count() != 0)
                {
                    return(false);
                }

                return(true);
            }, p =>
            {
                Model.KHACHHANG UpdateItem = new Model.KHACHHANG()
                {
                    ten_khachhang = Tenkhachhang,
                    sodienthoai   = Sodienthoai,
                    diachi        = Diachi
                };
                Model.Khachhang_Service.Update(UpdateItem, Makhachhang);

                for (int i = 0; i < List.Count(); i++)
                {
                    if (List[i] == SelectedItem)
                    {
                        List[i] = new Model.KHACHHANG()
                        {
                            ma_khachhang  = Makhachhang,
                            ten_khachhang = Tenkhachhang,
                            diachi        = Diachi,
                            sodienthoai   = Sodienthoai
                        };
                        break;
                    }
                }
                //MessageBox.Show("Chỉnh sửa thành công", "THÔNG BÁO");

                SelectedItem = null;
                Tenkhachhang = "";
                Sodienthoai  = "";
                Diachi       = "";

                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_khachhang == p.Uid.ToString()).SingleOrDefault());
            });

            RemoveDeleteList_Command = new RelayCommand <CheckBox>(p =>
            {
                return(true);
            }, p =>
            {
                DeleteList.Remove(List.Where(x => x.ma_khachhang == 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.KHACHHANG>();
                IsOpen       = false;
                SelectedItem = null;
            });
            #endregion

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

            #region Phan sap xep

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

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

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

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

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

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

            #endregion
        }
Example #9
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 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
        }
 public AnAction()
 {
     AddList.Add(new STRIPS.Fact("test", new STRIPS.NamedParameter("param1")));
     DeleteList.Add(new STRIPS.Fact("test", new STRIPS.NamedParameter("param1")));
     Preconditions.Add(new STRIPS.Fact("test", new STRIPS.NamedParameter("param1")));
 }
        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
        }
        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
        }
        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
        }
Example #15
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
        }
Example #16
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
        }