private void tsslSua_Click(object sender, EventArgs e)
        {
            if (Validate())
            {
                CheckConflictUpdate();
                if (kt == "ok")
                {
                    Server_Client.Client cl = new Server_Client.Client();
                    this.client1 = cl.Connect(Luu.IP, Luu.Ports);
                    Entities.NhomTKKeToan pb = new Entities.NhomTKKeToan("Update", Convert.ToInt32(txtID.Text), txtmaNTKKT.Text, txttenNTKKT.Text, txtghichu.Text, false, Common.Utilities.User.NhanVienID, Common.Utilities.User.TenDangNhap);
                    clientstream = cl.SerializeObj(this.client1, "NhomTKKeToan", pb);

                    int msg = 0;
                    msg = (int)cl.DeserializeHepper(clientstream, msg);
                    if (msg == 1)
                    {
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("Update that bai");
                    }
                }
                else
                if (kt == "null")
                {
                    MessageBox.Show("Bản ghi đã bị xóa - Mời thao tác lại.");
                    this.Close();
                }
            }
        }
 public void CheckConflictUpdate()
 {
     try
     {
         cl = new Server_Client.Client();
         // gán TCPclient
         this.client1 = cl.Connect(Luu.IP, Luu.Ports);
         // khởi tạo biến truyền vào với hàm khởi tạo
         Entities.NhomTKKeToan ntkkt = new Entities.NhomTKKeToan("Select");
         // khởi tạo mảng đối tượng để hứng giá trị
         pb1          = new Entities.NhomTKKeToan[1];
         clientstream = cl.SerializeObj(this.client1, "NhomTKKeToan", ntkkt);
         // đổ mảng đối tượng vào datagripview
         pb1 = (Entities.NhomTKKeToan[])cl.DeserializeHepper1(clientstream, pb1);
         if (pb1 != null)
         {
             for (int j = 0; j < pb1.Length; j++)
             {
                 if (pb1[j].MaNhomTKKeToan == maNhomTK)
                 {
                     kt = Check(pb1[j]);
                     break;
                 }
                 else
                 {
                     kt = "ok";
                 }
             }
         }
     }
     catch
     {
     }
 }
        private void tsslThem_Click(object sender, EventArgs e)
        {
            if (Validate())
            {
                CheckConflictInsert();
                if (kt == "ok")
                {
                    cl           = new Server_Client.Client();
                    this.client1 = cl.Connect(Luu.IP, Luu.Ports);
                    Entities.NhomTKKeToan pb = new Entities.NhomTKKeToan("Insert", 1, txtmaNTKKT.Text, txttenNTKKT.Text, txtghichu.Text, false, Common.Utilities.User.NhanVienID, Common.Utilities.User.TenDangNhap);
                    clientstream = cl.SerializeObj(this.client1, "NhomTKKeToan", pb);

                    int msg = 0;
                    msg = (int)cl.DeserializeHepper(clientstream, msg);
                    if (msg == 1)
                    {
                        txtmaNTKKT.Text  = "";
                        txttenNTKKT.Text = "";
                        txtghichu.Text   = "";
                        frmQuanLyNhomTKKeToan.KiemTra = "insert";
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("Insert that bai");
                    }
                }
            }
        }
 public void CheckConflictInsert()
 {
     try
     {
         cl = new Server_Client.Client();
         // gán TCPclient
         this.client1 = cl.Connect(Luu.IP, Luu.Ports);
         // khởi tạo biến truyền vào với hàm khởi tạo
         Entities.NhomTKKeToan pb = new Entities.NhomTKKeToan("Select");
         // khởi tạo mảng đối tượng để hứng giá trị
         Entities.NhomTKKeToan[] pb1 = new Entities.NhomTKKeToan[1];
         clientstream = cl.SerializeObj(this.client1, "NhomTKKeToan", pb);
         // đổ mảng đối tượng vào datagripview
         pb1 = (Entities.NhomTKKeToan[])cl.DeserializeHepper1(clientstream, pb1);
         if (pb1 != null)
         {
             for (int j = 0; j < pb1.Length; j++)
             {
                 if (pb1[j].MaNhomTKKeToan == txtmaNTKKT.Text)
                 {
                     MessageBox.Show("Mã nhóm tk này đã có trong dữ liệu - mời nhập lại");
                     kt = "ko";
                     txtmaNTKKT.Text = "";
                     break;
                 }
                 else
                 {
                     kt = "ok";
                 }
             }
         }
         else
         {
             kt = "ok";
         }
     }
     catch
     {
     }
 }
        public string Check(Entities.NhomTKKeToan ntkkt)
        {
            string gt = "ok";

            if (tenNhomTKKeToan != ntkkt.TenNhomTKKeToan)
            {
                tenNhomTKKeToan = txttenNTKKT.Text = ntkkt.TenNhomTKKeToan;
                gt = "ko";
            }
            if (ghiChu != ntkkt.GhiChu)
            {
                ghiChu = txtghichu.Text = ntkkt.GhiChu;
                gt     = "ko";
            }

            if (gt == "ko")
            {
                MessageBox.Show("Dữ liệu đã có thay đổi trước, ấn ok để cập nhật lại.");
            }

            return(gt);
        }
        private void txtTimKiem_TextChanged(object sender, EventArgs e)
        {
            if (rdbTen.Checked == true)
            {

                if (NhomTKKT_Search == null)
                {
                    NhomTKKeToan[] pb = new NhomTKKeToan[0];
                    dataGridView1.DataSource = pb;
                    FixDataGridView();
                    toolStripStatus_Sua.Enabled = false;
                    toolStripStatus_Xoa.Enabled = false;

                }
                else
                    if (NhomTKKT_Search != null)
                    {
                        if (txtTimKiem.Text.Length == 0)
                        {
                            NhomTKKeToan[] pb = new NhomTKKeToan[0];
                            dataGridView1.DataSource = pb;
                            FixDataGridView();
                            toolStripStatus_Sua.Enabled = false;
                            toolStripStatus_Xoa.Enabled = false;
                        }
                        else
                        {
                            int TKKT1_search_count = 0;

                            for (int i = 0; i < NhomTKKT_Search.Length; i++)
                            {
                                int index = -1;
                                index = NhomTKKT_Search[i].TenNhomTKKeToan.ToLower().IndexOf(txtTimKiem.Text.Trim().ToLower());
                                if (index >= 0)
                                {
                                    TKKT1_search_count++;
                                }
                            }
                            NhomTKKeToan[] TKKT1_search = new NhomTKKeToan[TKKT1_search_count];
                            TKKT1_search_count = 0;

                            for (int i = 0; i < NhomTKKT_Search.Length; i++)
                            {
                                int index = -1;
                                index = NhomTKKT_Search[i].TenNhomTKKeToan.ToLower().IndexOf(txtTimKiem.Text.Trim().ToLower());
                                if (index >= 0)
                                {
                                    TKKT1_search[TKKT1_search_count] = NhomTKKT_Search[i];
                                    TKKT1_search_count++;
                                }
                            }
                            if (TKKT1_search_count == 0)
                            {
                                toolStripStatus_Sua.Enabled = false;
                                toolStripStatus_Xoa.Enabled = false;
                            }
                            else
                            {
                                toolStripStatus_Sua.Enabled = true;
                                toolStripStatus_Xoa.Enabled = true;
                            }
                            dataGridView1.DataSource = TKKT1_search;
                            FixDataGridView();
                        }
                    }
            }
            else
                if (rdbMa.Checked == true)
                {
                    if (NhomTKKT_Search == null)
                    {
                        NhomTKKeToan[] pb = new NhomTKKeToan[0];
                        dataGridView1.DataSource = pb;
                        FixDataGridView();
                        toolStripStatus_Sua.Enabled = false;
                        toolStripStatus_Xoa.Enabled = false;
                    }
                    else
                        if (NhomTKKT_Search != null)
                        {
                            if (txtTimKiem.Text.Length == 0)
                            {
                                NhomTKKeToan[] pb = new NhomTKKeToan[0];
                                dataGridView1.DataSource = pb;
                                FixDataGridView();
                                toolStripStatus_Sua.Enabled = false;
                                toolStripStatus_Xoa.Enabled = false;
                            }
                            else
                            {
                                int NV1_Search_count = 0;

                                for (int i = 0; i < NhomTKKT_Search.Length; i++)
                                {
                                    int index = -1;
                                    index = NhomTKKT_Search[i].MaNhomTKKeToan.ToLower().IndexOf(txtTimKiem.Text.Trim().ToLower());
                                    if (index >= 0)
                                    {
                                        NV1_Search_count++;
                                    }
                                }
                                NhomTKKeToan[] NV1_search = new NhomTKKeToan[NV1_Search_count];
                                NV1_Search_count = 0;

                                for (int i = 0; i < NhomTKKT_Search.Length; i++)
                                {
                                    int index = -1;
                                    index = NhomTKKT_Search[i].MaNhomTKKeToan.IndexOf(txtTimKiem.Text.Trim().ToLower());
                                    if (index >= 0)
                                    {
                                        NV1_search[NV1_Search_count] = NhomTKKT_Search[i];
                                        NV1_Search_count++;
                                    }
                                }
                                if (NV1_Search_count == 0)
                                {
                                    toolStripStatus_Sua.Enabled = false;
                                    toolStripStatus_Xoa.Enabled = false;
                                }
                                else
                                {
                                    toolStripStatus_Sua.Enabled = true;
                                    toolStripStatus_Xoa.Enabled = true;
                                }
                                dataGridView1.DataSource = NV1_search;
                                FixDataGridView();
                            }
                        }
                }
        }
        private void toolStripStatus_Xoa_Click(object sender, EventArgs e)
        {
            if (!frmDangNhap.User.Administrator && !CheckQuyen(this.Name, 3))
            {
                MessageBox.Show("Bạn Không có quyền vào chức năng này.");
                return;
            }
            DialogResult dlgResult = MessageBox.Show("Bạn Có Chắc Chắn muốn Xóa không?", "Đồng ý?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (dlgResult == DialogResult.Yes)
            {
                try
                {
                    bool ktdelete = false;
                    int idcurent = int.Parse(dataGridView1.CurrentRow.Cells["NhomTKKeToanID"].Value.ToString());
                    string maCurrent = dataGridView1.CurrentRow.Cells["MaNhomTKKeToan"].Value.ToString();
                    hienthi();
                    for (int j = 0; j < NhomTKKT_Search.Length; j++)
                    {
                        if (NhomTKKT_Search[j].Delete == false)
                            if (NhomTKKT_Search[j].NhomTKKeToanID == idcurent)
                            {
                                ktdelete = true;
                                break;
                            }
                    }
                    if (ktdelete == true)
                    {

                        try
                        {
                            if (new Check().CheckReference("NhomTKKeToan", maCurrent))
                            {
                                Server_Client.Client cl = new Server_Client.Client();
                                this.client1 = cl.Connect(Luu.IP, Luu.Ports);
                                Entities.NhomTKKeToan nv = new NhomTKKeToan("Delete", idcurent,maCurrent, "", "", false,Common.Utilities.User.NhanVienID,Common.Utilities.User.TenDangNhap);
                                clientstrem = cl.SerializeObj(this.client1, "NhomTKKeToan", nv);
                                //  MessageBox.Show("Xoa Thanh Cong...");
                            }
                            else
                            {
                                MessageBox.Show("Nhóm TK kế toán này hiện đang có giao dịch - Không thể xóa","Hệ thống cảnh báo");
                            }
                        }
                        catch { }
                    }
                    hienthi();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Lỗi Hệ Thống- Liên Hệ nhà Quản Trị");
                }
            }
        }
        public void hienthi()
        {
            Server_Client.Client cl = new Server_Client.Client();
            this.client1 = cl.Connect(Luu.IP, Luu.Ports);
            ntkkt = new NhomTKKeToan("Select");
            clientstrem = cl.SerializeObj(this.client1, "NhomTKKeToan", ntkkt);

            NhomTKKeToan[] pb1 = new NhomTKKeToan[1];
            pb1[0] = new NhomTKKeToan(1, "a", "a", "a", false);
            pb1 = (NhomTKKeToan[])cl.DeserializeHepper1(clientstrem, pb1);

            if (pb1 == null)
            {
                toolStripStatus_Sua.Enabled = false;
                toolStripStatus_Xoa.Enabled = false;
                Entities.NhomTKKeToan [] nhomtk= new NhomTKKeToan [0];
                NhomTKKT_Search = nhomtk;
                dataGridView1.DataSource = nhomtk;
                FixDataGridView();
            }
            else
            {
                toolStripStatus_Sua.Enabled = true;
                toolStripStatus_Xoa.Enabled = true;
                NhomTKKT_Search = pb1;
                dataGridView1.DataSource = pb1;
                FixDataGridView();
            }
        }
        public void CheckConflictInsert()
        {
            try
            {
                cl = new Server_Client.Client();
                // gán TCPclient
                this.client1 = cl.Connect(Luu.IP, Luu.Ports);
                // khởi tạo biến truyền vào với hàm khởi tạo
                Entities.NhomTKKeToan pb = new Entities.NhomTKKeToan("Select");
                // khởi tạo mảng đối tượng để hứng giá trị
                Entities.NhomTKKeToan[] pb1 = new Entities.NhomTKKeToan[1];
                clientstream = cl.SerializeObj(this.client1, "NhomTKKeToan", pb);
                // đổ mảng đối tượng vào datagripview
                pb1 = (Entities.NhomTKKeToan[])cl.DeserializeHepper1(clientstream, pb1);
                if (pb1 != null)
                {
                    for (int j = 0; j < pb1.Length; j++)
                    {
                        if (pb1[j].MaNhomTKKeToan == txtmaNTKKT.Text)
                        {
                            MessageBox.Show("Mã nhóm tk này đã có trong dữ liệu - mời nhập lại");
                            kt = "ko";
                            txtmaNTKKT.Text = "";
                            break;
                        }
                        else
                            kt = "ok";
                    }

                }
                else
                    kt = "ok";

            }
            catch
            {
            }
        }
        private void tsslThem_Click(object sender, EventArgs e)
        {
            if (Validate())
            {
                CheckConflictInsert();
                if (kt == "ok")
                {
                    cl = new Server_Client.Client();
                    this.client1 = cl.Connect(Luu.IP, Luu.Ports);
                    Entities.NhomTKKeToan pb = new Entities.NhomTKKeToan("Insert", 1, txtmaNTKKT.Text, txttenNTKKT.Text, txtghichu.Text, false,Common.Utilities.User.NhanVienID,Common.Utilities.User.TenDangNhap);
                    clientstream = cl.SerializeObj(this.client1, "NhomTKKeToan", pb);

                    int msg = 0;
                    msg = (int)cl.DeserializeHepper(clientstream, msg);
                    if (msg == 1)
                    {
                        txtmaNTKKT.Text = "";
                        txttenNTKKT.Text = "";
                        txtghichu.Text = "";
                        frmQuanLyNhomTKKeToan.KiemTra = "insert";
                        this.Close();
                    }
                    else
                        MessageBox.Show("Insert that bai");

                }
            }
        }
        private void tsslSua_Click(object sender, EventArgs e)
        {
            if (Validate())
            {
                CheckConflictUpdate();
                if (kt == "ok")
                {
                    Server_Client.Client cl = new Server_Client.Client();
                    this.client1 = cl.Connect(Luu.IP, Luu.Ports);
                    Entities.NhomTKKeToan pb = new Entities.NhomTKKeToan("Update", Convert.ToInt32(txtID.Text), txtmaNTKKT.Text, txttenNTKKT.Text, txtghichu.Text, false, Common.Utilities.User.NhanVienID, Common.Utilities.User.TenDangNhap);
                    clientstream = cl.SerializeObj(this.client1, "NhomTKKeToan", pb);

                    int msg = 0;
                    msg = (int)cl.DeserializeHepper(clientstream, msg);
                    if (msg == 1)
                    {
                        this.Close();
                    }
                    else
                        MessageBox.Show("Update that bai");
                }
                else
                    if (kt=="null")
                    {
                        MessageBox.Show("Bản ghi đã bị xóa - Mời thao tác lại.");
                        this.Close();
                    }
            }
        }
 public void CheckConflictUpdate()
 {
     try
     {
         cl = new Server_Client.Client();
         // gán TCPclient
         this.client1 = cl.Connect(Luu.IP, Luu.Ports);
         // khởi tạo biến truyền vào với hàm khởi tạo
         Entities.NhomTKKeToan ntkkt = new Entities.NhomTKKeToan("Select");
         // khởi tạo mảng đối tượng để hứng giá trị
         pb1 = new Entities.NhomTKKeToan[1];
         clientstream = cl.SerializeObj(this.client1, "NhomTKKeToan", ntkkt);
         // đổ mảng đối tượng vào datagripview
         pb1 = (Entities.NhomTKKeToan[])cl.DeserializeHepper1(clientstream, pb1);
         if (pb1 != null)
         {
             for (int j = 0; j < pb1.Length; j++)
             {
                 if (pb1[j].MaNhomTKKeToan == maNhomTK)
                 {
                     kt = Check(pb1[j]);
                     break;
                 }
                 else
                     kt = "ok";
             }
         }
     }
     catch
     {
     }
 }
        public void ShowCombobox()
        {
            Server_Client.Client cl = new Server_Client.Client();
            this.client1 = cl.Connect(Luu.IP, Luu.Ports);
            ntkkt = new NhomTKKeToan("Select");
            clientstream = cl.SerializeObj(this.client1, "NhomTKKeToan", ntkkt);

            NhomTKKeToan[] tk = new NhomTKKeToan[1];
            tk[0] = new NhomTKKeToan(1, "a", "a", "a", false);
            tk = (NhomTKKeToan[])cl.DeserializeHepper1(clientstream, tk);

            cbbNhomTK.DataSource = tk;
            cbbNhomTK.DisplayMember = "TenNhomTKKeToan";
        }