public void GetCheckInCheckOutData(FromToDateTime KhoangThoiGian, List <int> ArrayUEN, out List <cCheck> ResultListCheck) { DataTable tableArrayUEN = MyUtility.Array_To_DataTable("tableName", ArrayUEN); DataTable tableCheck = SqlDataAccessHelper.ExecSPQuery(SPName6.CheckInOut_DocCheckChuaXuLyV6.ToString(), new SqlParameter("@From", KhoangThoiGian.From), new SqlParameter("@To", KhoangThoiGian.To), new SqlParameter { ParameterName = "@ArrayUserEnrollNumber", SqlDbType = SqlDbType.Structured, Value = tableArrayUEN }, new SqlParameter("@DaChamCong", false), new SqlParameter("@Loai", false)); ResultListCheck = new List <cCheck>(); foreach (DataRow dataRow in tableCheck.Rows) { cCheck check = new cCheck { MaCC = (int)dataRow["UserEnrollNumber"], Source = dataRow["Source"].ToString(), Time = (DateTime)dataRow["TimeStr"], MachineNo = (int)dataRow["MachineNo"], TypeColumn = dataRow["OriginType"].ToString() }; check.Type = (check.MachineNo % 2 == 1) ? "I" : "O"; ResultListCheck.Add(check); } }
private void frmDangKyNhiemVuChoNV_Load(object sender, EventArgs e) { //lấy danh sách tất cả nhân viên trong phòng được thao tác và load vào datagrid DataTable tableMaPhongBan = MyUtility.Array_To_DataTable("tableMaPhongBan", m_listIDPhongBan); SqlParameter sqlParamArrUserIDD = new SqlParameter("@ArrUserIDD", SqlDbType.Structured) { Value = tableMaPhongBan }; DataTable tableNhanVien = SqlDataAccessHelper.ExecSPQuery(SPName.sp_UserInfo_DocDSNVThaoTac.ToString(), sqlParamArrUserIDD); DataView viewNhanVien = new DataView(tableNhanVien); dgrdDSNVTrgPhg.DataSource = viewNhanVien; //load AutoComplete cho tb tìm kiếm var Source = new AutoCompleteStringCollection(); Source.AddRange((from DataRow row in tableNhanVien.Rows select row["UserLastName"].ToString().ToUpperInvariant()).ToArray()); tbSearch.AutoCompleteSource = AutoCompleteSource.CustomSource; tbSearch.AutoCompleteMode = AutoCompleteMode.SuggestAppend; tbSearch.AutoCompleteCustomSource = Source; //load nhiệm vụ cho checkList DataTable tableNhiemVu = SqlDataAccessHelper.ExecSPQuery(SPName.sp_NhiemVu_DocBang.ToString()); checkListNhiemVu.DataSource = tableNhiemVu; checkListNhiemVu.ValueMember = "MaNhiemVu"; checkListNhiemVu.DisplayMember = "TenNhiemVu"; }
private void btnXem_Click(object sender, EventArgs e) { /*1. lấy danh sách phòng ban(và con) được phép thao tác để lọc nhân viên trong phòng ngày * 2. lấy lựa chọn để xác định khoảng thời gian chọn * 3. lấy danh sách các nhiệm vụ được chọn để lọc các nhân viên có nhiệm vụ này * 4. lấy danh sách exclude nhân viên để loại ra các nhân viên này * 5. thực hiện */ DataTable tableUserIDD = MyUtility.Array_To_DataTable("ArrayUserIDD", m_listIDPhongBan); DateTime ngayBD, ngayKT; this.XacDinhKhoangThoiGianChon(out ngayBD, out ngayKT); List <int> dsNhiemVuDangChon = new List <int>(); this.LayDSNhiemVuDangChon(ref dsNhiemVuDangChon); List <int> dsExcludeMaCC = new List <int>(); this.LayDSExcludeNV(ref dsExcludeMaCC); DataTable tableThongke = this.ThongKeCong_PC_Phep(ngayBD, ngayKT, tableUserIDD, dsExcludeMaCC, dsNhiemVuDangChon); dgrdThongKe.DataSource = tableThongke; }
public static void XemCongThoiGianChuaKetLuong(List <cUserInfo> DSNV, DateTime ngayBD, DateTime ngayKT) { XmlConfigurator.Configure(); if (DSNV.Count == 0) { return; } #region nạp dữ liệu từ database var Arr_MaCC = (from nv in DSNV select nv.MaCC).ToList(); // tạo mảng danh sách mã chấm công để viết chuỗi query : or.. or DataTable tableArrayMaCC = MyUtility.Array_To_DataTable("tableArrayMaCC", Arr_MaCC); var tableCheck_A = DAO5.LayTableCIO_A5(tableArrayMaCC, ngayBD, ngayKT); var tableCheck_V = DAO5.LayTableCIO_V5(tableArrayMaCC, ngayBD, ngayKT); var tableXPVang = DAO5.LayTableXPVang5(tableArrayMaCC, ngayBD, ngayKT); var tableXNPC = DAO5.LayTableXacNhanPhuCap(tableArrayMaCC, ngayBD, ngayKT, Duyet: true); var tableNgayLe = DAO5.DocNgayLe(ngayBD, ngayKT); #endregion #region transfer dữ liệu sang object foreach (var nv in DSNV) { var tempMaCC = nv.MaCC; nv.NgayCongBD_Bef2D = ngayBD; nv.NgayCongKT_Aft2D = ngayKT; LoadDSCheck_A5(tempMaCC, tableCheck_A, out nv.DS_Check_A); LoadDSCIO_V5(tempMaCC, tableCheck_V, out nv.DS_CIO_V); LoadDSXPVang_Le(tempMaCC, tableXPVang, tableNgayLe, nv.DSVang); LoadDSXNPC5(tempMaCC, tableXNPC, out nv.DSXNPC5); // khởi tạo danh sách ngày công KhoiTaoDSNgayCong(nv.DSNgayCong, ngayBD.AddDays(-2d), ngayKT.AddDays(2d)); } #endregion #region xử lý var DS_Check_KoHopLe_AllNV = new List <cCheck>(); var ds_raa3_vao1 = new List <cCheck>(); foreach (var nv in DSNV) { List <cCheck> DS_Check_KoHopLe_1NV; LoaiBoCheckKoHopLe15(nv.DS_Check_A, out DS_Check_KoHopLe_1NV); // loại bỏ check cùng loại trong 30ph, IO 30 phút DS_Check_KoHopLe_AllNV.AddRange(DS_Check_KoHopLe_1NV); // add vào ds ko hợp lệ của nhiều nhân viên để xóa sau GhepCIO_A2(nv.DS_Check_A, out nv.DS_CIO_A); XetCa_ListCIO_A3_5(nv.DS_CIO_A, nv.LichTrinhLV, ds_raa3_vao1, nv.DS_Check_A); // xét thuộc ThuocCa, update thuộc ngày công, tách ThuocCa 3&1 nếu có, rồi tính công//nv.MacDinhTinhPC50, //[140615_4] XetCa_ListCIO_V4_5(nv.DS_CIO_V); TronDS_CIO_A_V5(nv.DS_CIO_A, nv.DS_CIO_V, out nv.DSVaoRa); PhanPhoi_DSVaoRa6(nv.DSVaoRa, nv.DSNgayCong); PhanPhoi_DSVang7(nv.DSVang, nv.DSNgayCong); TinhCong_ListNgayCong8_5(nv.DSNgayCong); //ver 4.0.0.4 TinhPhuCap_ListNgayCong9_5(nv.DSNgayCong, nv.DSXNPC5); } if (DS_Check_KoHopLe_AllNV.Count > 0) { DAO5.LoaiGioLienQuan(DS_Check_KoHopLe_AllNV); } if (ds_raa3_vao1.Count > 0) { DAO5.ThemGio_ra3_vao1(ds_raa3_vao1); } #endregion }
public static void XemCong_v08_2(List <cUserInfo> dsnv, DateTime ngayBD_Bef2D, DateTime ngayKT_Aft2D) { if (dsnv.Count == 0) { return; } #region nạp dữ liệu từ database var Arr_MaCC = (from nv in dsnv select nv.MaCC).ToList(); // tạo mảng danh sách mã nv chấm công DataTable tableArrayMaCC = MyUtility.Array_To_DataTable("tableArrayMaCC", Arr_MaCC); var tableCheck_A = DAO5.LayTableCIO_A5(tableArrayMaCC, ngayBD_Bef2D, ngayKT_Aft2D); var tableCheck_V = DAO5.LayTableCIO_V5(tableArrayMaCC, ngayBD_Bef2D, ngayKT_Aft2D); var tableXPVang = DAO5.LayTableXPVang5(tableArrayMaCC, ngayBD_Bef2D, ngayKT_Aft2D); var tableXNPC = DAO5.LayTableXacNhanPhuCap(tableArrayMaCC, ngayBD_Bef2D, ngayKT_Aft2D, Duyet: true); var tableNgayLe = DAO5.DocNgayLe(ngayBD_Bef2D, ngayKT_Aft2D); #endregion #region transfer dữ liệu sang object foreach (var nv in dsnv) { var tempMaCC = nv.MaCC; nv.NgayCongBD_Bef2D = ngayBD_Bef2D; nv.NgayCongKT_Aft2D = ngayKT_Aft2D; LoadDSCheck_A5(tempMaCC, tableCheck_A, out nv.DS_Check_A); LoadDSCIO_V5(tempMaCC, tableCheck_V, out nv.DS_CIO_V); LoadDSXPVang_Le(tempMaCC, tableXPVang, tableNgayLe, nv.DSVang); LoadDSXNPC50(tempMaCC, tableXNPC, nv.DSXNPhuCap50); // khởi tạo danh sách ngày công KhoiTaoDSNgayCong(nv.DSNgayCong, ngayBD_Bef2D, ngayKT_Aft2D); } #endregion #region xử lý //var DS_Check_KoHopLe_AllNV = new List<cCheck>(); //var ds_raa3_vao1 = new List<cCheck>(); //foreach (var nv in dsnv) { // var DS_Check_KoHopLe_1NV = new List<cCheck>(); // LoaiBoCheckKoHopLe1(nv.DS_Check_A, ref DS_Check_KoHopLe_1NV);// loại bỏ check cùng loại trong 30ph, IO 30 phút // DS_Check_KoHopLe_AllNV.AddRange(DS_Check_KoHopLe_1NV);// add vào ds ko hợp lệ của nhiều nhân viên để xóa sau // GhepCIO_A2(nv.DS_Check_A, nv.DS_CIO_A); // XetCa_ListCIO_A3(nv.DS_CIO_A, nv.LichTrinhLV, ds_raa3_vao1, nv.DS_Check_A);// xét thuộc ca, update thuộc ngày công, tách ca 3&1 nếu có, rồi tính công//nv.MacDinhTinhPC50, //[140615_4] // XetCa_ListCIO_V4_5(nv.DS_CIO_V, nv.LichTrinhLV); // TronDS_CIO_A_V5(nv.DS_CIO_A, nv.DS_CIO_V, nv.DSVaoRa); // PhanPhoi_DSVaoRa6(nv.DSVaoRa, nv.DSNgayCong); // PhanPhoi_DSVang7(nv.DSVang, nv.DSNgayCong); // TinhCong_ListNgayCong8(nv.DSNgayCong, nv.StartNT, nv.EndddNT);//ver 4.0.0.4 // TinhPCTC_TrongListXNPCTC9(nv.DSXNPhuCap50, nv.DSNgayCong); // TinhPCDB_TrongListXNPCDB10(nv.DSXNPhuCapDB, nv.DSNgayCong); //} //if (DS_Check_KoHopLe_AllNV.Count > 0) DAO.LoaiGioLienQuan(DS_Check_KoHopLe_AllNV); //if (ds_raa3_vao1.Count > 0) DAO.ThemGio_ra3_vao1(ds_raa3_vao1); #endregion }
private void LayTableNhanVien(out DataTable tableNhanVien, List <cPhongBan> SelectedPhong) { List <int> listIDPhong = (from cPhongBan phong in SelectedPhong select phong.Phong.ID).ToList(); DataTable tableArrayIDPhong = MyUtility.Array_To_DataTable("tableArrayIDD", listIDPhong); tableNhanVien = SqlDataAccessHelper.ExecSPQuery(SPName6.UserInfo_DocNhanVienChamCongV6.ToString(), new SqlParameter("@ArrayIDDepartment", SqlDbType.Structured) { Value = tableArrayIDPhong }, new SqlParameter("@DepartmentEnable", true), new SqlParameter("@UserEnabled", true)); }
private void XemCong2(List <cUserInfo> DSNV, FromToDateTime KhoangTG) { List <int> arrayUEN = (from cUserInfo item in DSNV select item.MaCC).ToList(); DataTable tableArrayUEN = MyUtility.Array_To_DataTable("tableName", arrayUEN); List <cCheckInOut_DaCC> DS_CIO_DaCC; List <cXacNhanPhuCapNgay> DS_XN_PC_Ngay; List <cKhaiBaoVang> DS_KhaiBaoVang; List <DateTime> DS_NgayLe; DAL_CheckInCheckOut dal = new DAL_CheckInCheckOut(); dal.GetCIOData(tableArrayUEN, KhoangTG, out DS_CIO_DaCC); dal.GetXacNhanPhuCapNgayData(tableArrayUEN, KhoangTG, out DS_XN_PC_Ngay); dal.GetNgayVangData(tableArrayUEN, KhoangTG, out DS_KhaiBaoVang); dal.GetNgayLeData(KhoangTG, out DS_NgayLe); foreach (cUserInfo nhanvien in DSNV) { int maCC = nhanvien.MaCC; LapDSNgayCongDeXuLy(maCC, KhoangTG, out nhanvien.DSNgayDaCC); foreach (cXacNhanPhuCapNgay xacNhanPhuCapNgay in DS_XN_PC_Ngay) { cNgayCong ngayCoPhuCap = nhanvien.DSNgayDaCC.Single(item => item.Ngay == xacNhanPhuCapNgay.Ngay); ngayCoPhuCap.SetXacNhanPhuCap(xacNhanPhuCapNgay.DuocTinhPCTC, xacNhanPhuCapNgay.DuocTinhPCNgayNghi, xacNhanPhuCapNgay.DuocTinhPCNgayLe, xacNhanPhuCapNgay.DuocTinhPCThuCong, xacNhanPhuCapNgay.PhuCapTay); //ngayCoPhuCap.TinhLaiPhuCap(); } foreach (cKhaiBaoVang khaiBaoVang in DS_KhaiBaoVang) { cNgayCong ngayCoKBVang = nhanvien.DSNgayDaCC.Single(item => item.Ngay == khaiBaoVang.Ngay); ngayCoKBVang.DSVang.Add(khaiBaoVang); } foreach (DateTime ngayLe in DS_NgayLe) { cNgayCong ngayDuocChamCongLe = nhanvien.DSNgayDaCC.Single(item => item.Ngay == ngayLe); ngayDuocChamCongLe.IsHoliday = true; } foreach (cNgayCong ngayCong in nhanvien.DSNgayDaCC) { DateTime ngay = ngayCong.Ngay; foreach (cCheckInOut_DaCC CIO_DaCC in DS_CIO_DaCC.Where(item => item.Ngay == ngay && item.MaCC == maCC)) { ngayCong.Them_CheckInOut_DaCC(CIO_DaCC); } ngayCong.TinhLaiPhuCap(); } } }
public static DataTable GetTableXNPCDB(DateTime ngayBD, DateTime ngayKT, List <int> ArrDSMaCC_Checked, bool Duyet = true) { DataTable tableArrMaCC = MyUtility.Array_To_DataTable("TableMaCC", ArrDSMaCC_Checked); SqlParameter paramArrMaCC = new SqlParameter("@ArrayMaCC", SqlDbType.Structured) { Value = tableArrMaCC }; DataTable result = SqlDataAccessHelper.ExecSPQuery(SPName.XacNhanPC_DocXNPC.ToString(), paramArrMaCC, new SqlParameter("@NgayBD", ngayBD), new SqlParameter("@NgayKT", ngayKT) ); return(result); }
private void LoadDSNV() { DataTable tableDSPhong = SqlDataAccessHelper.ExecSPQuery(SPName6.DeptPrivilege_DocPhongBanThaoTacV6.ToString(), new SqlParameter("@UserID", GlobalVariables.CurrentUserID), new SqlParameter("@ChoPhepThaoTac", true), new SqlParameter("@RelationDeptEnable", true)); //LayTableNhanVien(out tableNhanVien, this.m_SelectedPhong); //m_NhanVienDR = (from DataRow dataRow in tableNhanVien.Rows select dataRow).ToList(); List <int> listIDPhong = (from DataRow dataRow in tableDSPhong.Rows select(int) dataRow["IDDepartment"]).ToList(); DataTable tableArrayIDPhong = MyUtility.Array_To_DataTable("tableArrayIDD", listIDPhong); DataTable tableNhanVien = SqlDataAccessHelper.ExecSPQuery(SPName6.UserInfo_DocNhanVienChamCongV6.ToString(), new SqlParameter("@ArrayIDDepartment", SqlDbType.Structured) { Value = tableArrayIDPhong }, new SqlParameter("@DepartmentEnable", true), new SqlParameter("@UserEnabled", true)); gridControl_DSNV.DataSource = tableNhanVien; }
/// <summary> /// Lấy các nhân viên thuộc phòng ban được thao tác và có nhiệm vụ tương ứng nhiệm vụ được check /// </summary> /// <param name="listMaPhongBan"></param> /// <param name="listMaNhiemVu"></param> /// <returns></returns> public DataTable tableNhanVienNhanNhiemVu(List <int> listMaPhongBan, List <int> listMaNhiemVu) { DataTable tableMaPhongBan = MyUtility.Array_To_DataTable("tableMaPhongBan", listMaPhongBan); SqlParameter sqlParamArrUserIDD = new SqlParameter("@ArrUserIDD", SqlDbType.Structured); sqlParamArrUserIDD.Value = tableMaPhongBan; DataTable tableMaNhiemVu = MyUtility.Array_To_DataTable("tableMaNhiemVu", listMaNhiemVu); SqlParameter sqlParamArrMaNhiemVu = new SqlParameter("@ArrMaNhiemVu", SqlDbType.Structured); sqlParamArrMaNhiemVu.Value = tableMaNhiemVu; DataTable kq = SqlDataAccessHelper.ExecSPQuery(SPName.UserInfo_DocNhanVienNhanNhiemVu.ToString(), sqlParamArrUserIDD, sqlParamArrMaNhiemVu); kq.Columns.Add(new DataColumn("check", typeof(bool)) { DefaultValue = false }); return(kq); }
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_listCurrentIDPhg.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_listCurrentIDPhg); // chỉ lấy các phòng ban được phép, } else { var temp = ((DataRow)e.Node.Tag); if ((int)temp["IsYes"] == 1) { m_listCurrentIDPhg.Add((int)temp["ID"]); } } #endregion /* 1. clear select chọn nhân viên trước * 2. load datasource cho check chọn nhân viên * 3. gán lại tên cho các column ngày */ // checkedComboBoxEdit1.Properties.Items.Clear(); DataTable tableMaPhong = MyUtility.Array_To_DataTable("ArrUserIDD", m_listCurrentIDPhg); DataTable tableNhanVien = SqlDataAccessHelper.ExecSPQuery(SPName.sp_UserInfo_DocDSNVThaoTac.ToString(), new SqlParameter("@ArrUserIDD", SqlDbType.Structured) { Value = tableMaPhong }); checkedDSNV.Properties.DataSource = tableNhanVien; checkedDSNV.Properties.DisplayMember = "DisplayItem"; checkedDSNV.Properties.ValueMember = "UserEnrollNumber"; for (int i = 3; i < 34; i++) // bắt đầu từ 3 vì 1 mã cc, 2 mã nv, 3 tên nv { dgrdTongHop.Columns[i].HeaderText = string.Empty; } }
private DataTable LayDSNhanVien(DataTable TableUserIDD, List <int> dsExcludeMaCC, List <int> dsNhiemVuDangChon) { SqlParameter sqlParamArrUserIDD = new SqlParameter("@ArrUserIDD", SqlDbType.Structured) { Value = TableUserIDD }; DataTable tableExcludeNV = MyUtility.Array_To_DataTable("TableExcludeNV", dsExcludeMaCC); DataTable tableArrMaNhiemVu = MyUtility.Array_To_DataTable("TableMaNhiemVu", dsNhiemVuDangChon); DataTable tableNhanVien = SqlDataAccessHelper.ExecSPQuery(SPName.UserInfo_DocDSNVThongKeCongVaPC.ToString(), sqlParamArrUserIDD, new SqlParameter("@ArrExcludeMaCC", SqlDbType.Structured) { Value = tableExcludeNV }, new SqlParameter("@ArrMaNhiemVu", SqlDbType.Structured) { Value = tableArrMaNhiemVu }); return(tableNhanVien); }
private void fmExcludeNV_Load(object sender, EventArgs e) { DataTable tableArrarMaPhong = MyUtility.Array_To_DataTable("TableArrayMaPhong", mListMaPhong); DataTable tableNhanVien = SqlDataAccessHelper.ExecSPQuery(SPName.sp_UserInfo_DocDSNVThaoTac.ToString(), new SqlParameter("@ArrUserIDD", SqlDbType.Structured) { Value = tableArrarMaPhong }); #region tạo datasourcr cho autocomplete var Source = new AutoCompleteStringCollection(); Source.AddRange((from DataRow row in tableNhanVien.Rows select row["UserLastName"].ToString()).ToArray()); tbSearch.AutoCompleteSource = AutoCompleteSource.CustomSource; tbSearch.AutoCompleteMode = AutoCompleteMode.SuggestAppend; tbSearch.AutoCompleteCustomSource = Source; #endregion dgrdDSNVTrgPhg.DataSource = new DataView(tableNhanVien); }
public static DataTable GetTableCheckDaXN(List <int> ArrDSMaCC_Checked, DateTime ngayBD, DateTime ngayKT) { DataTable tableArrMaCC = MyUtility.Array_To_DataTable("TableMaCC", ArrDSMaCC_Checked); SqlParameter paramArrMaCC = new SqlParameter("@ArrayMaCC", SqlDbType.Structured) { Value = tableArrMaCC }; var startVao = ngayBD.Add(XL2._18h00); var endddVao = ngayKT.Add(XL2._04h30); var startRaa = ngayBD.AddDays(1d).Add(XL2._07h00); var endddRaa = ngayKT.Add(XL2._18h00); DataTable result = SqlDataAccessHelper.ExecSPQuery(SPName.sp_CheckInOut_DocCheckDaCoXN.ToString(), paramArrMaCC, new SqlParameter("@BDVao", startVao), new SqlParameter("@KTVao", endddVao), new SqlParameter("@BDRaa", startRaa), new SqlParameter("@KTRaa", endddRaa) ); return(result); }
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(); List <int> arrMaCC = new List <int>(); strChecked_ArrMaCC.Split(',').ToList().ForEach(item => arrMaCC.Add(int.Parse(item))); DataTable tableArrMaCC = MyUtility.Array_To_DataTable("tableArrMaCC", arrMaCC); DateTime ngayDauThang = MyUtility.FirstDayOfMonth(dateNavigator1.DateTime); DateTime ngayCuoiThang = MyUtility.FirstDayOfMonth(dateNavigator1.DateTime); //kiểm tra tình trạng kết công XL.Kiemtra(ngayDauThang, ngayCuoiThang); this.ChamCong(tableArrMaCC, ngayDauThang); }
private DataTable ThongKe(List <cUserInfo> listNhanVien, List <List <DateTime> > arrDoanTGChuaKetCong, List <List <DateTime> > arrDoanTGDaKetCong) { #region tạo DataTable result DataTable result = new DataTable(); result.Columns.Add(new DataColumn { ColumnName = "UserEnrollNumber", DataType = typeof(int) }); result.Columns.Add(new DataColumn { ColumnName = "UserFullCode", DataType = typeof(string) }); result.Columns.Add(new DataColumn { ColumnName = "UserFullName", DataType = typeof(string) }); result.Columns.Add(new DataColumn { ColumnName = "TongCong1", DataType = typeof(float), DefaultValue = 0f }); result.Columns.Add(new DataColumn { ColumnName = "TongPC1", DataType = typeof(float), DefaultValue = 0f }); result.Columns.Add(new DataColumn { ColumnName = "TongPhep1", DataType = typeof(float), DefaultValue = 0f }); result.Columns.Add(new DataColumn { ColumnName = "TongCong2", DataType = typeof(float), DefaultValue = 0f }); result.Columns.Add(new DataColumn { ColumnName = "TongPC2", DataType = typeof(float), DefaultValue = 0f }); result.Columns.Add(new DataColumn { ColumnName = "TongPhep2", DataType = typeof(float), DefaultValue = 0f }); result.Columns.Add(new DataColumn { ColumnName = "TongCong3", DataType = typeof(float), DefaultValue = 0f }); result.Columns.Add(new DataColumn { ColumnName = "TongPC3", DataType = typeof(float), DefaultValue = 0f }); result.Columns.Add(new DataColumn { ColumnName = "TongPhep3", DataType = typeof(float), DefaultValue = 0f }); //result.Columns.Add(new DataColumn {ColumnName = "", DataType = typeof ()}); #endregion #region tạo các row tương ứng từng nhân viên, mặc định tổng công, pc = 0 (đã set sẵn do trong lúc tạo datatable) for (int i = 0; i < listNhanVien.Count; i++) { DataRow row = result.NewRow(); row["UserEnrollNumber"] = listNhanVien[i].MaCC; row["UserFullCode"] = listNhanVien[i].MaNV; row["UserFullName"] = listNhanVien[i].TenNV; result.Rows.Add(row); } #endregion #region nếu có khoảng thời gian chưa kết công thì xem công khoảng thời gian này và cập nhật phần tổng công 1... if (arrDoanTGChuaKetCong.Count != 0) { var ngayBD = arrDoanTGChuaKetCong[0][0]; var ngayKT = arrDoanTGChuaKetCong[arrDoanTGChuaKetCong.Count - 1][1]; XL.XemCong_v08(listNhanVien, ngayBD.AddDays(-2d), ngayKT.AddDays(2d)); foreach (DataRow rowNhanVien in result.Rows) // tìm và cập nhật phần tổng công 1 tương ứng cho nhân viên đó { var uen = (int)rowNhanVien["UserEnrollNumber"]; cUserInfo nhanvien = listNhanVien.Find(item => item.MaCC == uen); var tongCong1 = 0f; //tbd var tongPC1 = 0f; //tbd var tongPhep1 = 0f; //tbd foreach (cNgayCong ngayCong in nhanvien.DSNgayCong) { if (ngayCong.Ngay < ngayBD || ngayCong.Ngay > ngayKT) { continue; } tongCong1 += ngayCong.TongCong; tongPC1 += ngayCong.PhuCaps._TongPC; var listPhep = (ngayCong.DSVang.Where(item => item.MaLV_Code.ToUpper() == "P").ToList()); if (listPhep.Count > 0) { tongPhep1 += listPhep.Sum(item1 => item1.WorkingDay); } } rowNhanVien["TongCong1"] = tongCong1; rowNhanVien["TongPC1"] = tongPC1; rowNhanVien["TongPhep1"] = tongPhep1; } } #endregion #region nếu có khoảng thời gian đã kết công thì cập nhật phần tổng cong 2 if (arrDoanTGDaKetCong.Count != 0) { DataTable tableArrUEN = MyUtility.Array_To_DataTable("TableArrUserEnrollNumber", (from cUserInfo item in listNhanVien select item.MaCC).ToList()); DataTable tableTKeDaKetCong = SqlDataAccessHelper.ExecSPQuery(SPName.ThongKeCongVaPhuCap.ToString(), new SqlParameter("@ArrUserEnrollNumber", SqlDbType.Structured) { Value = tableArrUEN }, new SqlParameter("@NgayBatDau", arrDoanTGDaKetCong[0][0]), new SqlParameter("@NgayKetThuc", arrDoanTGDaKetCong[arrDoanTGDaKetCong.Count - 1][1])); foreach (DataRow rowCongDaKet in tableTKeDaKetCong.Rows) //tìm và cập nhật phần tổng công 2 tương ứng cho nhân viên đó { var uen = (int)rowCongDaKet["UserEnrollNumber"]; DataRow[] rowNhanVien = result.Select("UserEnrollNumber=" + uen); rowNhanVien[0]["TongCong2"] = Convert.ToSingle(rowCongDaKet["TongCong"]); rowNhanVien[0]["TongPC2"] = Convert.ToSingle(rowCongDaKet["TongPC"]); rowNhanVien[0]["TongPhep2"] = rowCongDaKet["TongPhep"] != DBNull.Value ? Convert.ToSingle(rowCongDaKet["TongPhep"]) : 0f; } } #endregion foreach (DataRow row in result.Rows) { row["TongCong3"] = (float)row["TongCong1"] + (float)row["TongCong2"]; row["TongPC3"] = (float)row["TongPC1"] + (float)row["TongPC2"]; row["TongPhep3"] = (float)row["TongPhep1"] + (float)row["TongPhep2"]; } return(result); }
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; }