private DataTable ThongKeCong_PC_Phep(DateTime ngayBD, DateTime ngayKT, DataTable TableUserIDD, List <int> dsExcludeMaCC, List <int> dsNhiemVuDangChon) { /* 1. chia thành các đoạn thời gian, xác định rõ đoạn nào đã kết công, đoạn nào chưa kết công * 2. thống kê các đoạn đã kết công * 3. thống kê các đoạn chưa kết công * 4. tổng hợp */ //tbd nhớ kiểm tra khoảng thời gian tìm kiếm quá xa nhau thì báo vì dữ liệu quá nhiều sẽ gây lỗi List <List <DateTime> > arrDoanThoigian; ChiaDoanThoiGian(ngayBD, ngayKT, out arrDoanThoigian); List <List <DateTime> > arrDoanTGDaKetCong; List <List <DateTime> > arrDoanTGChuaKetCong; TachKC_ChuaKC(arrDoanThoigian, out arrDoanTGChuaKetCong, out arrDoanTGDaKetCong); DataTable tableNhanVien = this.LayDSNhanVien(TableUserIDD, dsExcludeMaCC, dsNhiemVuDangChon); List <cUserInfo> listNhanVien = new List <cUserInfo>(); foreach (DataRow row in tableNhanVien.Rows) { cUserInfo nhanvien = new cUserInfo { MaCC = (int)row["UserEnrollNumber"], MaNV = row["UserFullCode"].ToString(), TenNV = row["UserFullName"].ToString(), }; XL.GetLichTrinhNV(nhanvien, row["SchID"] != DBNull.Value ? (int)row["SchID"] : (int?)null); listNhanVien.Add(nhanvien); } DataTable tableThongKe = this.ThongKe(listNhanVien, arrDoanTGChuaKetCong, arrDoanTGDaKetCong); return(tableThongKe); }
private void treePhongBan_AfterSelect(object sender, TreeViewEventArgs e) { #region mỗi lần chọn node thì lấy ID node hiện tại và tất cả node con m_listIDPhongBan.Clear(); e.Node.Expand(); TreeNode topnode = XL.TopNode(e.Node); //đưa về root để thực hiện từ trên xuống if (topnode != null) { XL.GetIDNodeAndChildNode1(e.Node, ref m_listIDPhongBan); // chỉ lấy các phòng ban được phép, } else { var temp = ((DataRow)e.Node.Tag); if ((int)temp["IsYes"] == 1) { m_listIDPhongBan.Add((int)temp["ID"]); } } #endregion #region kiểm tra kết nối csdl , nếu mất kết nối thì đóng if (SqlDataAccessHelper.TestConnection(SqlDataAccessHelper.ConnectionString) == false) { ACMessageBox.Show(Resources.Text_MatKetNoiCSDL, Resources.Caption_Loi, 4000); Close(); return; } #endregion DataTable tableMaPhong = MyUtility.Array_To_DataTable("ArrUserIDD", m_listIDPhongBan); DataTable tableNhanVien = SqlDataAccessHelper.ExecSPQuery(SPName.UserInfo_DocDSNVThaoTac.ToString(), new SqlParameter("@ArrUserIDD", SqlDbType.Structured) { Value = tableMaPhong }); List <cUserInfo> listNhanVien = new List <cUserInfo>(); foreach (DataRow row in tableNhanVien.Rows) { cUserInfo nhanvien = new cUserInfo { MaCC = (int)row["UserEnrollNumber"], MaNV = row["UserFullCode"].ToString(), TenNV = row["UserFullName"].ToString(), }; XL.GetLichTrinhNV(nhanvien, row["SchID"] != DBNull.Value ? (int)row["SchID"] : (int?)null); listNhanVien.Add(nhanvien); } XL.TaoTableDSNV(m_DSNV, m_Bang_DSNV); #region tạo datasourcr cho autocomplete var Source = new AutoCompleteStringCollection(); Source.AddRange((from nv in m_DSNV select nv.TenNV.ToUpperInvariant()).ToArray()); tbSearch.AutoCompleteSource = AutoCompleteSource.CustomSource; tbSearch.AutoCompleteMode = AutoCompleteMode.SuggestAppend; tbSearch.AutoCompleteCustomSource = Source; #endregion dgrdDSNVTrgPhg.DataSource = m_Bang_DSNV; m_Bang_TongHopXemCong.Rows.Clear(); m_Bang_GioKDQD.Rows.Clear(); m_Bang_GioThieuCheck.Rows.Clear(); m_Bang_ThK_TreSom.Rows.Clear(); checkAll_GridDSNV.Checked = false; }
private void btnChamCong_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } /* 1. lấy dsnv check, lấy tháng * */ string strChecked_ArrMaCC = checkedDSNV.EditValue.ToString(); if (string.IsNullOrEmpty(strChecked_ArrMaCC)) { ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000); return; } List <int> arrMaCC = new List <int>(); strChecked_ArrMaCC.Split(new char[] { ',' }).ToList().ForEach(item => arrMaCC.Add(int.Parse(item))); List <cUserInfo> listNhanVien = new List <cUserInfo>(); DataTable tableDSNV = checkedDSNV.Properties.DataSource as DataTable; if (tableDSNV == null) { return; } foreach (int maCC in arrMaCC) { DataRow[] row = tableDSNV.Select("UserEnrollNumber=" + maCC); cUserInfo nhanvien = new cUserInfo { MaCC = (int)row[0]["UserEnrollNumber"], MaNV = row[0]["UserFullCode"].ToString(), TenNV = row[0]["UserFullName"].ToString(), }; XL.GetLichTrinhNV(nhanvien, row[0]["SchID"] != DBNull.Value ? (int)row[0]["SchID"] : (int?)null); listNhanVien.Add(nhanvien); } DateTime ngaybd = MyUtility.FirstDayOfMonth(dateNavigator1.DateTime); DateTime ngaykt = MyUtility.LastDayOfMonth(ngaybd); XL.XemCongThoiGianChuaKetLuong(listNhanVien, ngaybd, ngaykt); int soTH_ThieuChamCong, soTH_KoNhanDienCa, soTH_OLaiChuaXN, soTH_VaoTreRaSom, soTH_VaoRaEdited, soTH_DaXN, soTH_DaXN_LamThem, soTH_ChoPhepTreSom, soTH_VaoTre_RaSom_CoLamBu, soTH_XinPhepVang; this.GhiNhanThongBao(listNhanVien, ngaybd, ngaykt, out soTH_ThieuChamCong, out soTH_KoNhanDienCa, out soTH_OLaiChuaXN, out soTH_VaoTreRaSom, out soTH_VaoRaEdited, out soTH_DaXN, out soTH_DaXN_LamThem, out soTH_ChoPhepTreSom, out soTH_VaoTre_RaSom_CoLamBu, out soTH_XinPhepVang); lbThieuChamCong.Text = string.Format(Resources.LabelText_ThieuChamCong, soTH_ThieuChamCong); lbKhongNhanDienCa.Text = string.Format(Resources.LabelText_KoNhanDienCa, soTH_KoNhanDienCa); lbOLaiChuaXN.Text = string.Format(Resources.LabelText_OLaiChuaXN, soTH_OLaiChuaXN); lbVaoTreRaSom.Text = string.Format(Resources.LabelText_VaoTreRaSom, soTH_VaoTreRaSom); lbVaoRaBiChinhSua.Text = string.Format(Resources.LabelText_VaoRaBiChinhSua, soTH_VaoRaEdited); lbDaXacNhanCa.Text = string.Format(Resources.LabelText_DaXacNhanCa, soTH_DaXN); lbDaXacNhanLamThem.Text = string.Format(Resources.LabelText_DaXacNhanLamThemGio, soTH_DaXN_LamThem); lbChoPhepTreSom.Text = string.Format(Resources.LabelText_ChoPhepTreSom, soTH_ChoPhepTreSom); lbTreSomCoLamBu.Text = string.Format(Resources.LabelText_TreSomCoLamBu, soTH_VaoTre_RaSom_CoLamBu); lbXinPhepVang.Text = string.Format(Resources.LabelText_XinPhepVang, soTH_XinPhepVang); DataTable table = tao(); populatedata(listNhanVien, table); //dataGridView1.DataSource = table; gridControl1.DataSource = table; lbThieuChamCong.Tag = listNhanVien; }