private void btnCapNhat_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } #region ko cho cập nhật lương công nhật nếu tháng này đã đã kết lương if (XL.Kiemtra(m_thang, MyUtility.LastDayOfMonth(m_thang))) { MessageBox.Show(string.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "cập nhật thông tin làm việc công nhật", "cập nhật thông tin làm việc công nhật", ""), Resources.Caption_ThongBao, MessageBoxButtons.OK); return; } #endregion // lấy thông tin từ form var UserEnrollNumber = (lbUserEnrollNumber.Tag == null) ? -1 : (int)lbUserEnrollNumber.Tag; var DonGiaLuong = (int)numDonGiaLuong.Value; var TamUng = Convert.ToDouble(numTamUng.Value); #region update đơn giá lương , tạm ứng xuống csdl //info ko cần lưu thành tiền vì lúc lưu xuống đã tính thành tiền để có cơ sở tính lương, lúc lấy lên thì tính ra số tổng rồi mới xuất bb string query = @" update DSNVChiCongNhatThang set DonGiaLuong=@DonGiaLuong, TamUng=@TamUng where UserEnrollNumber=@UserEnrollNumber and Thang=@Thang "; int kq2 = SqlDataAccessHelper.ExecNoneQueryString(query, new string[] { "@DonGiaLuong", "@TamUng", "@UserEnrollNumber", "@Thang" }, new object[] { DonGiaLuong, TamUng, UserEnrollNumber, m_thang }); DAO.GhiNhatKyThaotac("Cập nhật lương công nhật và tạm ứng", string.Format("Cập nhật đơn giá lương công nhật [{1}], tạm ứng [{2}] cho NV có mã chấm công [{0}]", UserEnrollNumber, DonGiaLuong.ToString(Settings.Default.numFormatMoney), TamUng.ToString(Settings.Default.numFormatMoney)), maCC: UserEnrollNumber); #endregion // sau khi cập nhật thì reload lại var table = DAO.LayTableCongNhat(m_thang); dgrdDSLuongCongnhat.DataSource = table; dgrdDSLuongCongnhat.ClearSelection(); }
private void btnLietKe_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } //1. lấy dữ liệu từ form dtpThang.Update(); currMonth = dtpThang.Value; var ngayBD = DateTime.MinValue; var ngayKT = DateTime.MinValue; ngayBD = new DateTime(currMonth.Year, currMonth.Month, 1); ngayKT = new DateTime(currMonth.Year, currMonth.Month, DateTime.DaysInMonth(currMonth.Year, currMonth.Month)); //-----------INFO bắt buộc EndEdit thao tác trên Grid rồi mới thực hiện xử lý tác vụ dgrdDSNVTrgPhg.EndEdit(); dgrdDSNVTrgPhg.Update(); //2. lấy danh sách nhân viên check, nếu chưa có nv nào check thì thông báo BindingContext[dgrdDSNVTrgPhg.DataSource].EndCurrentEdit(); var listNV = (from DataGridViewRow dataGridViewRow in dgrdDSNVTrgPhg.Rows let row = (DataRowView)dataGridViewRow.DataBoundItem where (row["check"] != DBNull.Value && (bool)row["check"]) select((cUserInfo)row["cUserInfo"]).MaCC).ToList(); if (listNV.Count == 0) { ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000); return; } var table = DAO5.LietKeNgayVangChoNV(listNV, ngayBD, ngayKT); dgrdNgayVang.DataSource = table; if (table.Rows.Count == 0) { ACMessageBox.Show("Các nhân viên đang chọn không vắng ngày nào trong tháng.", "Thông báo", 1500); } GC.Collect(); }
private void btnThemKBVang_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } #region ko cho chỉnh sửa giờ nếu khoảng thời gian xem công tồn tại các ngày đã kết lương if (XL.Kiemtra(dtpNgayBD.Value.Date, dtpNgayKT.Value.Date)) { MessageBox.Show(string.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "xem công", "khai báo vắng", "xem công"), Resources.Caption_ThongBao, MessageBoxButtons.OK); return; } #endregion // xác định đang chọn datagrid nào để lấy các datarow của các datagrid đó DataGridView currDataGrid = XacDinhDataGridViewDangChon(); if (currDataGrid.SelectedRows.Count != 0) { IEnumerable <dynamic> arrRecord = (from DataGridViewRow row in currDataGrid.SelectedRows let rowViews = (DataRowView)row.DataBoundItem select new { MaCC = (int)rowViews["UserEnrollNumber"], NgayVang = (DateTime)rowViews["TimeStrNgay"] }).ToList(); if (arrRecord.Any() == false) { return; } frm_KBVang_Nhanh frm = new frm_KBVang_Nhanh { StartPosition = FormStartPosition.CenterParent, listMaCC_NgayVang = arrRecord }; frm.ShowDialog(); if (frm.IsReload) { btnXem.PerformClick(); } } }
private void btnSave_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } var val30 = (int)numPC30.Value; DAO5.UpdSetting((int)numPC30.Tag, val30.ToString()); var val50 = (int)numPC50.Value; DAO5.UpdSetting((int)numPC50.Tag, val50.ToString()); var valPCTCC3 = (int)numPCTCC3.Value; DAO5.UpdSetting((int)numPCTCC3.Tag, valPCTCC3.ToString()); var val100 = (int)numPC100.Value; DAO5.UpdSetting((int)numPC100.Tag, val100.ToString()); var val160 = (int)numPC160.Value; DAO5.UpdSetting((int)numPC160.Tag, val160.ToString()); var val200 = (int)numPC200.Value; DAO5.UpdSetting((int)numPC200.Tag, val200.ToString()); var val290 = (int)numPC290.Value; DAO5.UpdSetting((int)numPC290.Tag, val290.ToString()); var valTGLamDemToiThieu = dateTimePicker1.Value.TimeOfDay; DAO5.UpdSetting((int)dateTimePicker1.Tag, valTGLamDemToiThieu.ToString(@"hh\:mm\:") + "00"); var valChoPhepTre = (int)numPhutTre.Value; DAO5.UpdSetting((int)numPhutTre.Tag, valChoPhepTre.ToString()); var valChoPhepSom = (int)numPhutSom.Value; DAO5.UpdSetting((int)numPhutSom.Tag, valChoPhepSom.ToString()); var valLamThemAfterOT = (int)numPhutAfterOT.Value; DAO5.UpdSetting((int)numPhutAfterOT.Tag, valLamThemAfterOT.ToString()); ACMessageBox.Show("Lưu thông số thành công.", "Thông báo", 2000); }
private void btnXoa_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } #region ko cho chỉnh sửa giờ nếu khoảng thời gian xem công tồn tại các ngày đã kết lương if (XL.Kiemtra(m_thang.Date, MyUtility.LastDayOfMonth(m_thang))) { MessageBox.Show(string.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "chỉnh sửa thu chi tháng", "thực hiện thao tác", ""), Resources.Caption_ThongBao, MessageBoxButtons.OK); return; } #endregion #region lấy thông tin từ form int?macc = (int?)lbUserEnrollNumber.Tag; if (macc == null) { ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000); return; } #endregion // thực hiện query int kq = SqlDataAccessHelper.ExecNoneQueryString( " delete from DSThuChiThang where Thang=@Thang and UserEnrollNumber=@UserEnrollNumber ", new string[] { "@Thang", "@UserEnrollNumber" }, new object[] { m_thang, macc }); DAO5.GhiNhatKyThaotac("Xoá khoản thu chi tháng", string.Format("Xoá tạm ứng, lương điều chỉnh, mức đóng BHXH, thu chi khác tháng [{0}]... của 1 NV có mã chấm công [{1}]", m_thang.ToString("dd/MM/yyyy"), macc), maCC: macc); if (kq == 0) { MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi); } reloadGridDSThuChi(); }
private void btnHuyKetluong_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; // kiểm tra kết nối csdl trước khi thực hiện } //confirm trước khi thực hiện if (MessageBox.Show(string.Format("Bạn muốn hủy kết lương tháng {0}?", m_Thang.ToString("MM/yyyy")), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } if (XL.HuyKetLuongThang(MyUtility.FirstDayOfMonth(m_Thang))) { ACMessageBox.Show("Đã huỷ kết lương tháng " + m_Thang.ToString("MM/yyyy"), Resources.Caption_ThongBao, 3000); } else { MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi); } }
private void btnHuyXN_Click(object sender, EventArgs e) { #region hỏi lại trước khi thực hiện #endregion if (XL2.KiemtraKetnoiCSDL() == false) { return; } if (tabControl1.SelectedTab == tabDSG_DaXN) { IEnumerable <DataGridViewRow> lstGridViewRow = dgrdGioDaXN.SelectedRows.Cast <DataGridViewRow>(); var listRowView = (from row in (lstGridViewRow) select((DataRowView)row.DataBoundItem)).ToList(); foreach (var rowView in listRowView) { var ID = (int)rowView["IDXNCa_LamThem"]; XL.HuyXN_GioChamCong(ID); } Thread.Sleep(20); btnXem.PerformClick(); } }
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 void btnXoaTK_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } string tempTenTK = tbTenTaiKhoan.Text; string deleteString = @" delete NewUserAccount where UserAccount = @UserAccount "; try { int kq = SqlDataAccessHelper.ExecNoneQueryString(deleteString, new[] { "@UserAccount" }, new object[] { tempTenTK }); if (kq != 0) { MessageBox.Show("Xóa tài khoản thành công.", "Thông báo", MessageBoxButtons.OK); } Load_cbTaikhoanWE(); Load_dataGridNewUserAccount(); } catch (Exception ex) { lg.Error(string.Format("[{0}]_[{1}]\n", this.Name, System.Reflection.MethodBase.GetCurrentMethod().Name), ex); MessageBox.Show("Không xóa tài khoản được.", "Lỗi", MessageBoxButtons.OK); } }
private void btnXoaTatcaDSThuchiThang_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } #region ko cho chỉnh sửa giờ nếu khoảng thời gian xem công tồn tại các ngày đã kết lương if (XL.Kiemtra(m_thang.Date, MyUtility.LastDayOfMonth(m_thang))) { MessageBox.Show(string.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "chỉnh sửa thu chi tháng", "thực hiện thao tác", ""), Resources.Caption_ThongBao, MessageBoxButtons.OK); return; } #endregion //xác nhận trước khi xóa string messContent = "Bạn muốn xóa tất cả danh sách thu chi tháng {0}?."; messContent = string.Format(messContent, m_thang.ToString("MM/yyyy")); if (MessageBox.Show(messContent, Resources.Caption_XacNhan) == DialogResult.No) { return; } // thực hiện query int kq = SqlDataAccessHelper.ExecNoneQueryString("delete from DSThuChiThang where thang=@Thang ", new string[] { "@Thang" }, new object[] { m_thang }); DAO5.GhiNhatKyThaotac("Xoá tất cả khoản thu chi tháng", string.Format("Xoá tạm ứng, lương điều chỉnh, mức đóng BHXH, thu chi khác của TẤT CẢ NV tháng [{0}]", m_thang.ToString("dd/MM/yyyy"))); if (kq == 0) { MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi); } reloadGridDSThuChi(); }
private void btnThaydoi_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } string oldPass = btnEditMatkhauCu.Text; string newPass = btnEditMatkhauMoi1.Text; string testPass = btnEditMatkhauMoi2.Text; string userAccount = GlobalVariables.CurrentUserAccount; int userID = GlobalVariables.CurrentUserID; if (newPass == testPass) { ACMessageBox.Show("Vui lòng nhập 2 mật khẩu mới giống nhau.", Resources.Caption_Loi, 2000); return; } if (DAO5.ChangePassword(oldPass, newPass, userAccount, userID)) { ACMessageBox.Show(Resources.Text_DaThucHienXong, Resources.Caption_ThongBao, 2000); this.Close(); } }
private void checkBoxTachCaDem_CheckedChanged(object sender, EventArgs e) { if (checkBoxTachCaDem.Checked == false) { comboBoxCaTruoc.DataSource = null; comboBoxCaSau.DataSource = null; } else { if (XL2.KiemtraKetnoiCSDL() == false) { return; } var tableDSCaTruoc = DAO5.LayDSCa_FillCaTruocCaSau(); var tableDSCaSau = tableDSCaTruoc.Copy(); comboBoxCaTruoc.DataSource = tableDSCaTruoc; comboBoxCaTruoc.ValueMember = "ShiftID"; comboBoxCaTruoc.DisplayMember = "ShiftCode"; comboBoxCaSau.DataSource = tableDSCaSau; comboBoxCaSau.ValueMember = "ShiftID"; comboBoxCaSau.DisplayMember = "ShiftCode"; } }
private void btnCapNhat_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } // lấy ID tài khoản đang chọn DataRowView rowView = lstTaikhoan.SelectedItem as DataRowView; int userid = (int)rowView["UserID"]; // update phòng ban thao tác và status cho phép hay ko #region lấy ds phòng ban 1. được thao tác, 2.check kết công List <cPhongBan> dsphongbanChecked = new List <cPhongBan>(); List <cPhongBan> dsphongbanUnCheck = new List <cPhongBan>(); // đưa về root node trước khi thực hiện var root = treePhongBan.TopNode; GetTopLevelNode(ref root); // mỗi lần duyệt node sẽ làm root node chuyển về parent của node cuối nên phải trả về node gốc để duyệt từ đầu while (root.PrevNode != null) { root = root.PrevNode; } GetNode_DuocThaotac_CheckKetcong(root, dsphongbanChecked, dsphongbanUnCheck); #endregion // duyệt qua từng phòng ban và update lại phòng ban đó được cho phép hay ko for (int i = 0; i < dsphongbanChecked.Count; i++) { SqlDataAccessHelper.ExecNoneQueryString( @" update DeptPrivilege set IsYes = @IsYes where IDD = @IDD and UserID = @UserID IF @@ROWCOUNT=0 INSERT INTO DeptPrivilege (UserID,IDD,IsYes) VALUES (@UserID,@IDD,@IsYes) " , new string[] { "@UserID", "@IsYes", "@IDD" } , new object[] { userid, 1, dsphongbanChecked[i].ID }); } for (int i = 0; i < dsphongbanUnCheck.Count; i++) { SqlDataAccessHelper.ExecNoneQueryString( @" update DeptPrivilege set IsYes = @IsYes where IDD = @IDD and UserID = @UserID IF @@ROWCOUNT=0 INSERT INTO DeptPrivilege (UserID,IDD,IsYes) VALUES (@UserID,@IDD,@IsYes) " , new string[] { "@UserID", "@IsYes", "@IDD" } , new object[] { userid, 0, dsphongbanUnCheck[i].ID }); } //duyệt từng chức năng và update lại cho phép hay ko cho phép chức năng đó List <XL2.cChucNang> lstchucnang = checkQuyenThaotac.DataSource as List <XL2.cChucNang>; for (int i = 0; i < checkQuyenThaotac.Items.Count; i++) { XL2.cChucNang item = checkQuyenThaotac.Items[i] as XL2.cChucNang; bool check = item.IsYes; int menuid = item.ID; SqlDataAccessHelper.ExecNoneQueryString( @" update MenuPrivilege set IsYes = @IsYes where UserID = @UserID and MenuID = @MenuID IF @@ROWCOUNT=0 INSERT INTO MenuPrivilege (UserID,MenuID,IsYes) VALUES (@UserID,@MenuID,@IsYes) " , new string[] { "@UserID", "@IsYes", "@MenuID" } , new object[] { userid, check, menuid }); } ACMessageBox.Show("Cập nhật phân quyền thành công.", "Thông báo", 2000); point1: lstTaikhoan_SelectedValueChanged(lstTaikhoan, null); }
private void btnXNPCTC_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } #region ko cho chỉnh sửa giờ nếu khoảng thời gian xem công tồn tại các ngày đã kết lương if (XL.Kiemtra(dtpNgayBD.Value.Date, dtpNgayKT.Value.Date)) { MessageBox.Show(string.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "xem công", "xác nhận phụ cấp", "xem công"), Resources.Caption_ThongBao, MessageBoxButtons.OK); return; } #endregion // xác định đang chọn datagrid nào để lấy các datarow của các datagrid đó DataGridView currDataGrid = XacDinhDataGridViewDangChon(); // lọc lấy các datarow được check, nếu không có row nào được check thì chế độ view all, ngược lại thì xem các ngày được check if (currDataGrid.SelectedRows.Count != 0) { var arrRecord = (from DataGridViewRow row in currDataGrid.SelectedRows select(((DataRowView)row.DataBoundItem).Row)).ToArray(); if (arrRecord.Length == 0) { return; } frm_XN_PC50 frm112 = new frm_XN_PC50 { StartPosition = FormStartPosition.CenterParent, m_arrRecd = arrRecord }; //frm112.Location = new Point((int)((Size.Width - frm112.Size.Width) / 2f), (int)((Size.Height - frm112.Size.Height) / 2f)); //frm112.m_DSNV = m_DSNV; frm112.ShowDialog(); // lấy dsnv đang chọn var listNV = (from DataGridViewRow dataGridViewRow in dgrdDSNVTrgPhg.Rows let rowView = dataGridViewRow.DataBoundItem as DataRowView where (rowView["check"] != DBNull.Value && (bool)rowView["check"]) select(cUserInfo) rowView["cUserInfo"]) .ToList(); if (frm112.IsReload) { int tempUserEnrollNumber; DateTime tempDateTime; GetCurrRow(dgrdTongHop, out tempUserEnrollNumber, out tempDateTime); XL.TaoTableXemCong(listNV, m_Bang_TongHopXemCong); SetCurrRow(dgrdTongHop, tempUserEnrollNumber, tempDateTime); GetCurrRow(dgrdGioKDQD, out tempUserEnrollNumber, out tempDateTime); XL.TaoTableGioKDQD(listNV, m_Bang_GioKDQD); SetCurrRow(dgrdGioKDQD, tempUserEnrollNumber, tempDateTime); GetCurrRow(dgrdGioThieuCheck, out tempUserEnrollNumber, out tempDateTime); XL.TaoTableGioThieuCheck(listNV, m_Bang_GioThieuCheck); SetCurrRow(dgrdGioThieuCheck, tempUserEnrollNumber, tempDateTime); XL.TaoTableThK_TreSom(listNV, m_Bang_ThK_TreSom); VeLaiDataGrid(dgrdTongHop); VeLaiDataGrid(dgrdGioKDQD); VeLaiDataGrid(dgrdGioThieuCheck); VeLaiDataGrid(dgrdThKTreSom); dgrdTongHop.Invalidate(); dgrdGioKDQD.Invalidate(); dgrdGioThieuCheck.Invalidate(); dgrdThKTreSom.Invalidate(); } } }
private void btnXoaGioRaa_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } IsReload = true; var lydo = (cbLyDo.SelectedItem != null) ? cbLyDo.SelectedItem.ToString() : cbLyDo.Text; var ghichu = tbGhiChu.Text; #region hỏi lại ttrước khi xoá if (MessageBox.Show(string.Format(Resources.Text_xacNhanXoaGioHangLoat, "ra"), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } #endregion if (dgrdDSGioVaoRa.SelectedRows.Count == 0) { return; } var flagThongBao = false; // thông báo ko được xoá giờ đãn XN try //general try catch { var arrRecord = (from DataGridViewRow dataGridViewRow in dgrdDSGioVaoRa.SelectedRows let row = (DataRowView)dataGridViewRow.DataBoundItem let nv = (cUserInfo)(row["cUserInfo"]) let cCheckInOut = (cCheckInOut)(row["cCheckInOut"]) let ngay = (DateTime)(row["TimeStrNgay"]) select new { nhanvien = nv, CIO = cCheckInOut, Ngay = ngay }).GroupBy(o => o.nhanvien).ToList(); var ds_raa3_vao1 = new List <cCheck>(); var DS_Check_KoHopLe = new List <cCheck>(); foreach (var groupByNV in arrRecord) { var nhanvien = groupByNV.Key; foreach (var row in groupByNV) { if (row.CIO.DaXN) { flagThongBao = true; continue; } if (row.CIO.HaveINOUT == -1) { continue; } var checkout = row.CIO.Raa; XL.XoaGioChoNV(nhanvien.MaCC, checkout, row.nhanvien.DS_Check_A, lydo, ghichu); } XL.LoaiBoCheckKoHopLe1(nhanvien.DS_Check_A, ref DS_Check_KoHopLe); XL.GhepCIO_A2(nhanvien.DS_Check_A, nhanvien.DS_CIO_A); XL.XetCa_ListCIO_A3(nhanvien.DS_CIO_A, nhanvien.LichTrinhLV, ds_raa3_vao1, nhanvien.DS_Check_A); XL.TronDS_CIO_A_V5(nhanvien.DS_CIO_A, nhanvien.DS_CIO_V, nhanvien.DSVaoRa); XL.PhanPhoi_DSVaoRa6(nhanvien.DSVaoRa, nhanvien.DSNgayCong); XL.PhanPhoi_DSVang7(nhanvien.DSVang, nhanvien.DSNgayCong); XL.TinhCong_ListNgayCong8(nhanvien.DSNgayCong, nhanvien.StartNT, nhanvien.EndddNT); //ver 4.0.0.4 XL.TinhPCTC_TrongListXNPCTC9(nhanvien.DSXNPhuCap50, nhanvien.DSNgayCong); XL.TinhPCDB_TrongListXNPCDB10(nhanvien.DSXNPhuCapDB, nhanvien.DSNgayCong); XL.TinhPCNgayVang(nhanvien.DSVang, nhanvien.DSNgayCong); } if (DS_Check_KoHopLe.Count > 0) { DAO.LoaiGioLienQuan(DS_Check_KoHopLe); } if (ds_raa3_vao1.Count > 0) { DAO.ThemGio_ra3_vao1(ds_raa3_vao1); } loadGrid(); if (flagThongBao) { ACMessageBox.Show(Resources.Text_KoTheSuaXoaGioDaXN, Resources.Caption_ThongBao, 2000); } } catch (Exception ex) //general try catch { lg.Error(string.Format("[{0}]_[{1}]\n", this.Name, System.Reflection.MethodBase.GetCurrentMethod().Name), ex); MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi); } }
private void btnSuaa_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } IsReload = true; var timespanGioVao = dtpVao.Value.TimeOfDay; var timespanGioRaa = dtpRaa.Value.TimeOfDay; var lydo = (cbLyDo.SelectedItem != null) ? cbLyDo.SelectedItem.ToString() : cbLyDo.Text; var ghichu = tbGhiChu.Text; if (dgrdDSGioVaoRa.SelectedRows.Count == 0) { return; } #region hỏi lại trước khi sửa if (MessageBox.Show(string.Format(Resources.Text_xacNhanSuaGioHangLoat, (radGioVao.Checked)?"vào":"ra", (radGioVao.Checked)?dtpVao.Value.ToString("H:mm"): dtpRaa.Value.ToString("H:mm")), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } #endregion try //general try catch { var flagThongBao = false; // flag thông báo không cho phép sửa giờ đã CN var arrRecord = (from DataGridViewRow dataGridViewRow in dgrdDSGioVaoRa.SelectedRows let row = (DataRowView)dataGridViewRow.DataBoundItem let nv = (cUserInfo)row["cUserInfo"] let cCheckInOut = (cCheckInOut)row["cCheckInOut"] let ngay = (DateTime)row["TimeStrNgay"] select new { nhanvien = nv, CIO = cCheckInOut, Ngay = ngay }).GroupBy(o => o.nhanvien).ToList(); var ds_raa3_vao1 = new List <cCheck>(); var DS_Check_KoHopLe = new List <cCheck>(); foreach (var group in arrRecord) { var nhanvien = group.Key; foreach (var item in group) { if (item.CIO.DaXN) // ko cho sửa các giờ đã xác nhận { flagThongBao = true; continue; } if (radGioVao.Checked) { if (item.CIO.HaveINOUT == -2) { continue; } var giovao = item.Ngay.Add(timespanGioVao); var checkinnold = item.CIO.Vao; var checkinnnew = new cCheck { MaCC = nhanvien.MaCC, Type = "I", Time = giovao, Source = "PC", MachineNo = 21, PhucHoi = new cPhucHoi { IDGioGoc = int.MaxValue, Them = checkinnold.PhucHoi.Them, Xoaa = checkinnold.PhucHoi.Xoaa } }; XL.SuaGioChoNV(nhanvien.MaCC, checkinnold, checkinnnew, nhanvien.DS_Check_A, lydo, ghichu); } else { if (item.CIO.HaveINOUT == -1) { continue; } var gioraa = item.Ngay.Add(timespanGioRaa); var checkoutold = item.CIO.Raa; var checkoutnew = new cCheck { MaCC = nhanvien.MaCC, Type = "O", Time = gioraa, Source = "PC", MachineNo = 22, PhucHoi = new cPhucHoi { IDGioGoc = int.MaxValue, Them = checkoutold.PhucHoi.Them, Xoaa = checkoutold.PhucHoi.Xoaa } }; XL.SuaGioChoNV(nhanvien.MaCC, checkoutold, checkoutnew, nhanvien.DS_Check_A, lydo, ghichu); } } XL.LoaiBoCheckKoHopLe1(nhanvien.DS_Check_A, ref DS_Check_KoHopLe); XL.GhepCIO_A2(nhanvien.DS_Check_A, nhanvien.DS_CIO_A); XL.XetCa_ListCIO_A3(nhanvien.DS_CIO_A, nhanvien.LichTrinhLV, ds_raa3_vao1, nhanvien.DS_Check_A); XL.TronDS_CIO_A_V5(nhanvien.DS_CIO_A, nhanvien.DS_CIO_V, nhanvien.DSVaoRa); XL.PhanPhoi_DSVaoRa6(nhanvien.DSVaoRa, nhanvien.DSNgayCong); XL.PhanPhoi_DSVang7(nhanvien.DSVang, nhanvien.DSNgayCong); XL.TinhCong_ListNgayCong8(nhanvien.DSNgayCong, nhanvien.StartNT, nhanvien.EndddNT); //ver 4.0.0.4 XL.TinhPCTC_TrongListXNPCTC9(nhanvien.DSXNPhuCap50, nhanvien.DSNgayCong); XL.TinhPCDB_TrongListXNPCDB10(nhanvien.DSXNPhuCapDB, nhanvien.DSNgayCong); XL.TinhPCNgayVang(nhanvien.DSVang, nhanvien.DSNgayCong); } if (DS_Check_KoHopLe.Count > 0) { DAO.LoaiGioLienQuan(DS_Check_KoHopLe); } if (ds_raa3_vao1.Count > 0) { DAO.ThemGio_ra3_vao1(ds_raa3_vao1); } loadGrid(); if (flagThongBao) { ACMessageBox.Show(Resources.Text_KoTheSuaXoaGioDaXN, Resources.Caption_ThongBao, 2000); } } catch (Exception ex) //general try catch { lg.Error(string.Format("[{0}]_[{1}]\n", this.Name, System.Reflection.MethodBase.GetCurrentMethod().Name), ex); MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi); } }
private void btnThem_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } IsReload = true; #region lấy thông tin var timespanGioVao = dtpVao.Value.TimeOfDay; var timespanGioRaa = dtpRaa.Value.TimeOfDay; var lydo = (cbLyDo.SelectedItem != null) ? cbLyDo.SelectedItem.ToString() : cbLyDo.Text; var ghichu = tbGhiChu.Text; #endregion var tempstring = radGioVao.Checked ? "vào" : "ra"; var temptime = (radGioVao.Checked) ? dtpVao.Value : dtpRaa.Value; if (dgrdDSGioVaoRa.SelectedRows.Count == 0) { return; } #region hỏi lại trước khi thêm if (MessageBox.Show(string.Format(Resources.Text_xacNhanThemGioHangLoat, tempstring, temptime.ToString("H:mm")), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } #endregion try //general try catch { #region lấy ds các giờ vào ra, group lại theo từng nhân viên để thực hiện thêm 1 loạt rồi sau đó xử lý tính toán lại checkinout và ngày công var arrRecord = (from DataGridViewRow dataGridViewRow in dgrdDSGioVaoRa.SelectedRows let row = (DataRowView)dataGridViewRow.DataBoundItem let nv = (cUserInfo)(row["cUserInfo"]) let cCheckInOut = (cCheckInOut)(row["cCheckInOut"]) let ngay = (DateTime)(row["TimeStrNgay"]) select new { nhanvien = nv, CIO = cCheckInOut, Ngay = ngay }).GroupBy(o => o.nhanvien).ToList(); #endregion var ds_raa3_vao1 = new List <cCheck>(); var DS_Check_KoHopLe = new List <cCheck>(); foreach (var group in arrRecord) { var nhanvien = group.Key; foreach (var item in @group.Where(item => item.CIO.HaveINOUT != 0)) { if (radGioVao.Checked) //2. thêm I cho O kv { if (item.CIO.HaveINOUT == -2) { var giovao = item.Ngay.Add(timespanGioVao); if (giovao > item.CIO.Raa.Time) { giovao = giovao.AddDays(-1d); // trừ đi 1 ngày nếu (giờ vào thêm) > giờ ra } var checkinn = new cCheck { MaCC = item.nhanvien.MaCC, Type = "I", Time = giovao, Source = "PC", MachineNo = 21, PhucHoi = new cPhucHoi { Them = true, IDGioGoc = -1, Xoaa = false } }; XL.ThemGioChoNV(item.nhanvien.MaCC, checkinn, item.nhanvien.DS_Check_A, lydo, ghichu); } } else { if (item.CIO.HaveINOUT == -1) //3. thêm O cho I kr { var gioraa = item.Ngay.Add(timespanGioRaa); if (gioraa < item.CIO.Vao.Time) { gioraa = gioraa.AddDays(1d); // cộng thêm 1 ngày nếu (giờ vào thêm) > giờ ra } var checkout = new cCheck { MaCC = item.nhanvien.MaCC, Type = "O", Time = gioraa, Source = "PC", MachineNo = 22, PhucHoi = new cPhucHoi { Them = true, IDGioGoc = -1, Xoaa = false } }; XL.ThemGioChoNV(item.nhanvien.MaCC, checkout, item.nhanvien.DS_Check_A, lydo, ghichu); } } } XL.LoaiBoCheckKoHopLe1(nhanvien.DS_Check_A, ref DS_Check_KoHopLe); XL.GhepCIO_A2(nhanvien.DS_Check_A, nhanvien.DS_CIO_A); XL.XetCa_ListCIO_A3(nhanvien.DS_CIO_A, nhanvien.LichTrinhLV, ds_raa3_vao1, nhanvien.DS_Check_A); XL.TronDS_CIO_A_V5(nhanvien.DS_CIO_A, nhanvien.DS_CIO_V, nhanvien.DSVaoRa); XL.PhanPhoi_DSVaoRa6(nhanvien.DSVaoRa, nhanvien.DSNgayCong); XL.PhanPhoi_DSVang7(nhanvien.DSVang, nhanvien.DSNgayCong); XL.TinhCong_ListNgayCong8(nhanvien.DSNgayCong, nhanvien.StartNT, nhanvien.EndddNT); //ver 4.0.0.4 XL.TinhPCTC_TrongListXNPCTC9(nhanvien.DSXNPhuCap50, nhanvien.DSNgayCong); XL.TinhPCDB_TrongListXNPCDB10(nhanvien.DSXNPhuCapDB, nhanvien.DSNgayCong); XL.TinhPCNgayVang(nhanvien.DSVang, nhanvien.DSNgayCong); } if (DS_Check_KoHopLe.Count > 0) { DAO.LoaiGioLienQuan(DS_Check_KoHopLe); } if (ds_raa3_vao1.Count > 0) { DAO.ThemGio_ra3_vao1(ds_raa3_vao1); } loadGrid(); } catch (Exception ex) //general try catch { lg.Error(string.Format("[{0}]_[{1}]\n", this.Name, System.Reflection.MethodBase.GetCurrentMethod().Name), ex); MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi); } }
private void buttonLuu_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } #region lấy dữ liệu từ form và xử lý trước khi lưu var shiftid = (lbShiftID.Tag != null) ? (int)(lbShiftID.Tag) : -1; var shiftcode = textBoxShiftcode.Text; var mota = textBoxMoTa.Text; var kyhieucc = textBoxKyhieu.Text; bool tachcadem = checkBoxTachCaDem.Checked; bool isenable = checkBoxEnable.Checked; bool isextended = checkBoxCaMR.Checked; TimeSpan OnnDuty = TimeSpan.Zero, OffDuty = TimeSpan.Zero; TimeSpan OnnInn = TimeSpan.Zero, CutInn = TimeSpan.Zero; TimeSpan OnnOut = TimeSpan.Zero, CutOut = TimeSpan.Zero; TimeSpan OnnLun = TimeSpan.Zero, OffLun = TimeSpan.Zero; float wkday = 0f; int daycount = 0, wktime = 0, shiftid1 = -1, shiftid2 = -1; #region validate giờ if (TimeSpan.TryParse(maskedTextBoxVao.Text, out OnnDuty) == false) { ACMessageBox.Show(Resources.Text_GioVaoKoHL, Resources.Caption_Loi, 2000); return; } if (TimeSpan.TryParse(maskedTextBoxRaa.Text, out OffDuty) == false) { ACMessageBox.Show(Resources.Text_GioRaaKoHL, Resources.Caption_Loi, 2000); return; } if (TimeSpan.TryParse(maskedTextBoxBDLunch.Text, out OnnLun) == false) { ACMessageBox.Show(Resources.Text_OnnLunKoHL, Resources.Caption_Loi, 2000); return; } if (TimeSpan.TryParse(maskedTextBoxKTLunch.Text, out OffLun) == false) { ACMessageBox.Show(Resources.Text_OffLunKoHL, Resources.Caption_Loi, 2000); return; } if (float.TryParse(maskedTextBoxWKDay.Text, out wkday) == false) { ACMessageBox.Show(Resources.Text_WKDayKoHL, Resources.Caption_Loi, 2000); return; } #endregion //tính daycount , wktime if (OffDuty < OnnDuty) { daycount = 1; } OffDuty = OffDuty.Add(new TimeSpan(daycount, 0, 0, 0)); wktime = Convert.ToInt32((OffDuty - OnnDuty - (OffLun - OnnLun)).TotalMinutes); int iOnnInn = Convert.ToInt32(numOnnInn.Value); // bug onn in qua đêm int iCutInn = Convert.ToInt32(numCutInn.Value); // bug cut in qua đêm int iOnnOut = Convert.ToInt32(numOnnOut.Value); // bug onn out qua đêm int iCutOut = Convert.ToInt32(numCutOut.Value); // bug cut out qua đêm int iCPTre = Convert.ToInt32(numLateGrace.Value); int iCPSom = Convert.ToInt32(numEarlyGrace.Value); int afterot = Convert.ToInt32(numAfterOT.Value); if (tachcadem) { shiftid1 = (int)comboBoxCaTruoc.SelectedValue; shiftid2 = (int)comboBoxCaSau.SelectedValue; } #endregion //MessageBox.Show(shiftid + " " + shiftcode + " " + mota + " " + kyhieucc + " " + OnnDuty + " " + OffDuty + " " + wktime);// fortesting if (themmoi) // đang thêm { int n = DAO5.InsCa(shiftcode, OnnDuty, OffDuty, daycount, wktime, wkday, iOnnInn, iCutInn, iOnnOut, iCutOut, iCPTre, iCPSom, afterot, mota, kyhieucc, OnnLun, OffLun, tachcadem, shiftid1, shiftid2, isenable, isextended); if (n == 0) { MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi, MessageBoxButtons.OK, MessageBoxIcon.Error); } // sau khi lưu xong thì set về false themmoi = false; } else // đang sửa { int n = DAO5.UpdCa(shiftid, shiftcode, OnnDuty, OffDuty, daycount, wktime, wkday, iOnnInn, iCutInn, iOnnOut, iCutOut, iCPTre, iCPSom, afterot, mota, kyhieucc, OnnLun, OffLun, tachcadem, shiftid1, shiftid2, isenable, isextended); if (n == 0) { MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi, MessageBoxButtons.OK, MessageBoxIcon.Error); } } LoadGrid(); // thêm hoặc sửa xong thì load lại grid }
private void btnSuaGio_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } bool flag = false; bool tmpSuaGioVao = (tabControl1.SelectedIndex == 0); try { DataGridView dataGridThaoTac = tmpSuaGioVao ? dgrdCTGioVao : dgrdCTGioRa; DataTable table = dataGridThaoTac.DataSource as DataTable; if (table == null) { return; } DataRow[] tmpArrRow = (table).Select("check = true"); if (tmpArrRow.Length == 0) { ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000); return; } frm_ThongTinSuaGioHangLoat frm311Thongtin = new frm_ThongTinSuaGioHangLoat() { fNgaySuaMacDinh = dtpBD.Value.Date, fCheckIn = tmpSuaGioVao }; frm311Thongtin.ShowDialog(); if (frm311Thongtin.fOK) { DateTime tmpGioMoi = frm311Thongtin.fGioMoi; bool tmpKieuGioMoi = frm311Thongtin.fCheckIn; foreach (DataRow row in tmpArrRow) { int tmpUserEnrollNumber = (int)row["UserEnrollNumber"]; DateTime tmpGioCu = (DateTime)row["TimeStr"]; int tmpMachineNo = (int)row["MachineNo"]; string tmpSourceOld = row["Source"].ToString(); string tmpLyDo = frm311Thongtin.fLydo; string tmpGhiChu = frm311Thongtin.fGhichu; flag = DAO5.SuaGioChoNV(tmpUserEnrollNumber, tmpGioCu, tmpGioMoi, tmpSourceOld, "PC", tmpMachineNo, (tmpKieuGioMoi) ? 21 : 22, -1, tmpLyDo, tmpGhiChu); if (flag == false) { lg.Error("Lỗi: sửa giờ cho " + tmpUserEnrollNumber + " giờ chưa sửa: " + tmpGioCu + " giờ sửa: " + tmpGioMoi); break; } } if (flag) { btnXem_Click(btnXem, null); } else { MessageBox.Show("Xảy ra lỗi trong quá trình sửa giờ cho Nhân viên. Vui lòng thử lại.", "Lỗi", MessageBoxButtons.OK); } } } catch (Exception ex) { lg.Error(string.Format("[{0}]_[{1}]\n", this.Name, System.Reflection.MethodBase.GetCurrentMethod().Name), ex); MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi); } }
private void btnThem_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } // xác nhận thực hiện if (MessageBox.Show("Khai báo vắng cho các nhân viên?", Resources.Caption_XacNhan, MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } #region //lấy loại vắng, workingDay, workingTime, absentCode, XL2.currUserID if (cbLoaiVang.SelectedItem == null) { ACMessageBox.Show("Bạn chưa chọn loại vắng", Resources.Caption_ThongBao, 2000); return; } var rowLV = cbLoaiVang.SelectedItem as DataRowView; var absentCode = rowLV["AbsentCode"].ToString(); var workingDay = (float)((frm_KBVang.Working)cbSoBuoi.SelectedItem).Cong; var phuCapString = maskedTextBox1.Text; var phuCapInt = 0; var phuCapFloat = 0f; if (int.TryParse(phuCapString, out phuCapInt) == false || phuCapString.Length < 3) { ACMessageBox.Show("Nhập phụ cấp chưa đúng định dạng.", Resources.Caption_Loi, 2000); return; } phuCapFloat = Convert.ToSingle(phuCapInt) / 100f; #region set working time tùy theo workingDay var workingTime = 0f; if (Math.Abs(workingDay - 0f) < 0.01f) { workingTime = 0f; } else if (Math.Abs(workingDay - 0.25f) < 0.01f) { workingTime = 2f; if (!(absentCode.ToLower() == "p" || absentCode.ToLower() == "ro")) { ACMessageBox.Show("Chưa hỗ trợ vắng 2 tiếng ngoài phép và việc riêng.", "Chức năng chưa được hỗ trợ", 3000); return; } } else if (Math.Abs(workingDay - 0.5f) < 0.01f) { workingTime = 4f; } else if (Math.Abs(workingDay - 1f) < 0.01f) { workingTime = 8f; } #endregion #endregion IsReload = true; List <Error> listError = new List <Error>(); XL.ThemNgayVang(listMaCC_NgayVang, workingDay, workingTime, phuCapFloat, absentCode, listError); if (listError.Count > 0) { frmError frm = new frmError { StartPosition = FormStartPosition.CenterParent, listError = listError }; frm.ShowDialog(); } Close(); }
private void btnTaoTK_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } if (tbPass1.Text != tbPass2.Text) { MessageBox.Show("Mật khẩu không khớp."); return; } if (tbPass1.Text == string.Empty || tbPass2.Text == string.Empty) { MessageBox.Show("Mật khẩu không được để trống."); return; } string insertString = @" insert into NewUserAccount(UserID, UserAccount, Password) values (@UserID, @UserAccount, @password) "; // xem các chức năng để tạo mặc định List <cChucNang> listChucNang = XL2.TaoChucNang(); string templateString = " insert into MenuPrivilege (UserID, MenuID, IsYes) values (@UserID, {0}, 0) "; string chuoi = string.Empty; for (int i = 0; i < listChucNang.Count; i++) { chuoi = string.Format(templateString, listChucNang[i].ID); insertString += chuoi; } int tempUserID = (int)cbTaikhoanWE.SelectedValue; string tempUserAccount = tbTenTaiKhoan.Text; string tempPass = tbPass1.Text; string tempPassEncrypt = MyUtility.Mahoa(tempPass); try { #region /* insertString = @" insert into NewUserAccount(UserID, UserAccount, Password) values (@UserID, @UserAccount, @password) * insert into MenuPrivilege (UserID, MenuID, IsYes) values (@UserID, 10001, 0) * insert into MenuPrivilege (UserID, MenuID, IsYes) values (@UserID, 10002, 0) * insert into MenuPrivilege (UserID, MenuID, IsYes) values (@UserID, 20001, 0) * insert into MenuPrivilege (UserID, MenuID, IsYes) values (@UserID, 20002, 0) * insert into MenuPrivilege (UserID, MenuID, IsYes) values (@UserID, 20003, 0) * insert into MenuPrivilege (UserID, MenuID, IsYes) values (@UserID, 30001, 0) * insert into MenuPrivilege (UserID, MenuID, IsYes) values (@UserID, 30002, 0) * insert into MenuPrivilege (UserID, MenuID, IsYes) values (@UserID, 40001, 0) * insert into MenuPrivilege (UserID, MenuID, IsYes) values (@UserID, 40002, 0) * insert into MenuPrivilege (UserID, MenuID, IsYes) values (@UserID, 60001, 0) " */ #endregion int kq = SqlDataAccessHelper.ExecNoneQueryString(insertString , new[] { "@UserID", "@UserAccount", "@password" } , new object[] { tempUserID, tempUserAccount, tempPassEncrypt }, CanLog: false); if (kq != 0) { ACMessageBox.Show("Thêm tài khoản thành công.", "Thông báo", 2000); } else { MessageBox.Show("Không thêm được tài khoản.", "Lỗi", MessageBoxButtons.OK); } Load_dataGridNewUserAccount(); Load_cbTaikhoanWE(); } catch (Exception exception) { lg.Error(string.Format("[{0}]_[{1}]\n", this.Name, System.Reflection.MethodBase.GetCurrentMethod().Name), exception); MessageBox.Show("Mất kết nối đến máy chủ. Vui lòng thử lại.", "Lỗi", MessageBoxButtons.OK); } }
private void btnXacNhan_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } var loai = 0; var pcngay = 0; var pcdem = 0; var temp = string.Empty; if (radKhongPC.Checked) { loai = -1; } else if (radPCNgayNghi.Checked) { loai = 200; pcngay = XL2.PC100; pcdem = XL2.PC160; temp = "ngày nghỉ {0}% (ban ngày), {1}% (ban đêm)"; temp = string.Format(temp, XL2.PC100, XL2.PC160); } else if (radPCNgayLe.Checked) { loai = 300; pcngay = XL2.PC200; pcdem = XL2.PC290; temp = "ngày lễ {0}% (ban ngày), {1}% (ban đêm), chưa kể công lễ, tết"; temp = string.Format(temp, XL2.PC200, XL2.PC290); } else if (radPCCus1.Checked) { loai = 1; pcngay = (int)(numPCCus1.Value); temp = "tuỳ chỉnh " + pcngay + "% cho giờ làm trên 8 tiếng"; } else if (radPCCus2.Checked) { loai = 2; pcngay = (int)(numPCCus2.Value); temp = "tuỳ chỉnh " + pcngay + "% cho giờ làm"; } #region hỏi lại trước khi thực hiện if (loai == -1) { if (MessageBox.Show(string.Format("Bạn muốn huỷ xác nhận tính phụ cấp {0}?", temp), Resources.Caption_XacNhan, MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } } else { if (MessageBox.Show(string.Format("Bạn muốn xác nhận các ngày làm việc vừa chọn tính phụ cấp {0}?", temp), Resources.Caption_XacNhan, MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } } #endregion IsReload = true; foreach (var row in m_arrRecd) { var nhanvien = (cUserInfo)row["cUserInfo"]; var ngay = (DateTime)row["TimeStrNgay"]; var ngayCong = (cNgayCong)row["cNgayCong"]; //if (ngay <= XL2.NgayCuoiThangKetCong && XL2.NgayCuoiThangKetCong != DateTime.MinValue) continue;//tbd temp patch// ko thực hiện đối với các ngày trong tháng đã kết công if (loai == -1) { XL.HuyBo_TinhPCDB(nhanvien, ngayCong, nhanvien.DSXNPhuCapDB); //XL.TinhPCNgayVang(ngayCong); } else { XL.TinhPCDB(nhanvien, ngayCong, ngay, loai, pcngay, pcdem, temp); XL.TinhPCNgayVang(ngayCong); } } this.Close(); }
private void btnXem_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } #region //1. lấy dữ liệu từ form lấy ngày BD và kết thúc nếu quá 62 ngày thì báo dtpNgayBD.Update(); dtpNgayKT.Update(); var ngayBD = dtpNgayBD.Value.Date; var ngayKT = dtpNgayKT.Value.Date; if (ngayBD > ngayKT) { MyUtility.Swap(ref ngayBD, ref ngayKT); } var ngayBD_Bef2D = ngayBD.AddDays(-2d); var ngayKT_Aft2D = ngayKT.AddDays(2d); // ngày 1->5 là trừ ra = 4, + 1 để ra số ngày, + thêm 2 để ra cột(UserEnrollNumber và số lượng) if ((ngayKT - ngayBD).Duration() > new TimeSpan(62, 0, 0, 0)) { if (MessageBox.Show(Resources.Text_KhoangThoiGianXemCongQuaDai, Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } } #endregion XL.SaveSetting(lastStartDate: ngayBD, lastEndDate: ngayKT); BindingContext[dgrdDSNVTrgPhg.DataSource].EndCurrentEdit(); #region //2. lấy danh sách nhân viên check, nếu chưa có nv nào check thì thông báo var listNV = (from DataGridViewRow dataGridViewRow in dgrdDSNVTrgPhg.Rows let rowView = dataGridViewRow.DataBoundItem as DataRowView where (rowView["check"] != DBNull.Value && (bool)rowView["check"]) select(cUserInfo) rowView["cUserInfo"]) .ToList(); if (listNV.Count == 0) { ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000); // GC.Collect(); return; } #endregion //3. lấy dữ liệu chấm công của các nhân viên try { if (XL.KiemtraDulieuCapnhatTuServer(DateTime.Now) == false) { ACMessageBox.Show(Resources.Text_DuLieuChamCongChuaUpdate, Resources.Caption_ThongBao, 4000); } WaitWindow.Show(this.XuLyXemCong, "Đang xử lý, vui lòng đợi trong giây lát...", new object[] { listNV, ngayBD_Bef2D, ngayKT_Aft2D }); //XL.XemCong_v08(listNV, ngayBD_Bef2D, ngayKT_Aft2D); Reload4DataGrid(listNV); } catch (Exception exception) { lg.Error(string.Format("[{0}]_[{1}]\n", this.Name, System.Reflection.MethodBase.GetCurrentMethod().Name), exception); MessageBox.Show(Resources.Text_MatKetNoiCSDL, Resources.Caption_Loi); GC.Collect(); } }
private void btnLuu_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } string maNV = tbMaNV.Text; string hoten = tbHoTenNV.Text.TrimEnd('?', '.', ','); string[] words = hoten.Split(' '); string ten = (words.Last(item => item != string.Empty)); int gioitinh = (radNam.Checked) ? 0 : 1; int maCC; if (int.TryParse(tbMaCC.Text, out maCC) == false) { ACMessageBox.Show("Mã chấm công phải là số hợp lệ.", Resources.Caption_Loi, 2000); return; } string tenCC = tbUserEnrollName.Text; string mathetu = tbMaTheTu.Text; DateTime ngayvaolam = dtpNgayVaoLam.Value.Date; int idchucvu = (int)cbChucVu.SelectedValue; int idphong = (int)cbPhongBan.SelectedValue; string tenphong = (cbPhongBan.SelectedItem != null) ? cbPhongBan.SelectedItem.ToString() : cbPhongBan.SelectedText; int idlichtrinh = (int)cbLichTrinh.SelectedValue; string tenLichTrinh = (cbLichTrinh.SelectedItem != null) ? cbLichTrinh.SelectedItem.ToString() : cbLichTrinh.SelectedText; float hslcb, hslcv, hsbhxhcongthem; if (float.TryParse(tbHSLCB.Text, out hslcb) == false || float.TryParse(tbHSLCV.Text, out hslcv) == false || float.TryParse(tbHSBHXHCongThem.Text, out hsbhxhcongthem) == false) { ACMessageBox.Show(Resources.Text_HeSoLCB_CV_BHXH_ChuaHopLe, Resources.Caption_Loi, 2000); return; } bool userEnabled = checkUserEnabled.Checked; if (mode == 1) { var tableKiemTraTonTai = SqlDataAccessHelper.ExecuteQueryString( "select * from UserInfo where UserEnrollNumber = @UserEnrollNumber", new string[] { "@UserFullCode", "@UserEnrollNumber" }, new object[] { maNV, maCC }); if (tableKiemTraTonTai.Rows.Count > 0) { ACMessageBox.Show("Mã nhân viên hoặc mã chấm công đã tồn tại trong CSDL. Vui lòng chọn mã khác.", Resources.Caption_Loi, 2000); return; } } #region xác nhận trước khi lưu if (MessageBox.Show(Resources.Text_XacNhanLuuThongTinNV, Resources.Caption_XacNhan, MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } #endregion #region execute query int kq1 = SqlDataAccessHelper.ExecNoneQueryString( @" UPDATE UserInfo Set UserFullCode = @UserFullCode, UserFullName = @UserFullName, UserLastName = @UserLastName, UserEnrollName = @UserEnrollName, UserCardNo = @UserCardNo, UserHireDay = @UserHireDay, UserIDTitle = @IDChucVu, UserSex = @UserSex, UserEnabled = @UserEnabled, UserIDD = @UserIDD, SchID = @SchID, HeSoLuongCB = @HeSoLuongCB, HeSoLuongSP = @HeSoLuongSP, HSBHCongThem = @HSBHCongThem where UserEnrollNumber = @UserEnrollNumber if ( @@ROWCOUNT = 0 ) INSERT INTO UserInfo ( UserFullCode, UserFullName, UserLastName, UserEnrollNumber, UserEnrollName, UserCardNo, UserHireDay, UserIDTitle, UserSex, UserPrivilege, UserEnabled, UserIDD, SchID, HeSoLuongCB, HeSoLuongSP, HSBHCongThem, PushCardID, UserPW, UserGroup, UserTZ) VALUES ( @UserFullCode, @UserFullName, @UserLastName, @UserEnrollNumber, @UserEnrollName, @UserCardNo, @UserHireDay, @IDChucVu, @UserSex, @UserPrivilege, @UserEnabled, @UserIDD, @SchID, @HeSoLuongCB, @HeSoLuongSP, @HSBHCongThem, @PushCardID, @UserPW, @UserGroup, @UserTZ )" , new string[] { "@UserFullCode", "@UserFullName", "@UserLastName", "@UserEnrollNumber", "@UserEnrollName", "@UserCardNo", "@UserHireDay", "@IDChucVu", "@UserSex", "@UserEnabled", "@UserIDD", "@SchID", "@HeSoLuongCB", "@HeSoLuongSP", "@HSBHCongThem", "@UserPrivilege", "@PushCardID", "@UserPW", "@UserGroup", "@UserTZ" }, new object[] { maNV, hoten, ten, maCC, tenCC, mathetu, ngayvaolam, idchucvu, gioitinh, userEnabled, idphong, idlichtrinh, hslcb, hslcv, hsbhxhcongthem, 0, "[0000000000]", string.Empty, 1, "0000000000000000", }); string noidung = @"Lưu thông tin nhân viên có mã chấm công [{0}], mã nhân viên [{1}], hệ số lương cơ bản [{2}], hệ số lương sản phẩm [{3}], hệ số bảo hiểm cộng thêm cho lãnh đạo [{4}], tình trạng hoạt động [{5}], phòng ban [{6}], lịch trình [{7}]"; DAO5.GhiNhatKyThaotac("Lưu thông tin nhân viên", string.Format(noidung, maCC, maNV, hslcb.ToString("0.00"), hslcv.ToString("0.00"), hsbhxhcongthem.ToString("0.00"), userEnabled, tenphong, tenLichTrinh), maCC: maCC); #endregion if (checkLamCongnhat.Enabled && checkLamCongnhat.Checked) { var ngayBD = dtpNgayBDCongnhat.Value.Date; var ngayKT = dtpNgayKTCongnhat.Value.Date; var laNVChinhthuc = checkNVChinhThuc.Checked; if (ngayBD > ngayKT) // hoán vị ngày bắt đầu kết thúc nếu bị ngược { var temp = ngayBD; ngayKT = ngayBD; ngayBD = temp; } //thực hiện tách nếu làm công nhật ngày bd và kt là nhiều tháng liên tiếp List <DateTime> arrNgayBD, arrNgayKT; XL2.TachThang(ngayBD, ngayKT, out arrNgayBD, out arrNgayKT); for (int i = 0; i < arrNgayBD.Count; i++) { int kq2 = DAO5.UpdIns_ThuChiNVCongNhat(new DateTime(arrNgayBD[i].Year, arrNgayBD[i].Month, 1), maCC, idphong, tenphong, arrNgayBD[i], arrNgayKT[i], 0, 0d, laNVChinhthuc); if (kq2 == 0) { MessageBox.Show(Resources.Text_CoLoi); break; } } } if (kq1 == 0) { MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi); } else { IsReload = true; if (mode == 1) { ACMessageBox.Show("Thêm nhân viên thành công.", Resources.Caption_ThongBao, 2000); MyUtility.ClearControlText(tbMaNV, tbHoTenNV, tbMaCC, tbUserEnrollName); radNam.Checked = true; tbMaTheTu.Text = "0000000000"; tbHSLCB.Text = "000"; tbHSLCV.Text = "000"; tbHSBHXHCongThem.Text = "000"; cbChucVu.SelectedIndex = 0; cbPhongBan.SelectedIndex = 0; cbLichTrinh.SelectedIndex = 0; checkUserEnabled.Checked = true; } else { Close(); } } }
private void btnCapNhat_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } DateTime ngaydauthang = dtpThang.Value; int uen = (int)m_currRowNV["UserEnrollNumber"]; bool LaNVChinhThuc = checkNVChinhThuc.Checked; DateTime ngayBD = dtpNgayBDCongnhat.Value; DateTime ngayKT = dtpNgayKTCongnhat.Value; if (ngayBD > ngayKT) { MyUtility.Swap(ref ngayBD, ref ngayKT); } if (checkLamCongnhat.Checked && checkLamCongnhat.Enabled) { #region query string var query = @" UPDATE DSNVChiCongNhatThang SET IDPhong = @IDPhong ,TenPhong = @TenPhong ,NgayBatDau = @NgayBatDau ,NgayKetThuc = @NgayKetThuc ,SoNgayCong = 0 ,NVChinhThuc = @NVChinhThuc WHERE Thang = @Thang and UserEnrollNumber = @UserEnrollNumber if @@ROWCOUNT = 0 INSERT INTO DSNVChiCongNhatThang (Thang ,UserEnrollNumber ,IDPhong ,TenPhong ,NgayBatDau ,NgayKetThuc ,SoNgayCong ,DonGiaLuong ,TamUng ,NVChinhThuc) VALUES (@Thang ,@UserEnrollNumber ,@IDPhong ,@TenPhong ,@NgayBatDau ,@NgayKetThuc ,0 ,0 ,0 ,@NVChinhThuc) " ; #endregion int idPhong = (int)m_currRowNV["MaPhong"]; var tenPhong = m_currRowNV["TenPhong"].ToString(); #region update or insert xuống csdl int kq = SqlDataAccessHelper.ExecNoneQueryString( query, new string[] { "@Thang", "@UserEnrollNumber", "@IDPhong", "@TenPhong", "@NgayBatDau", "@NgayKetThuc", "@NVChinhThuc" }, new object[] { ngaydauthang, uen, idPhong, tenPhong, ngayBD, ngayKT, LaNVChinhThuc }); DAO5.GhiNhatKyThaotac("Lưu ngày làm việc công nhật", string.Format("Lưu thời gian làm việc công nhật bắt đầu từ ngày [{1}] đến hết ngày [{2}], [{3}] cho NV có mã chấm công [{0}]", uen, ngayBD.ToString("dd/MM/yyyy"), ngayKT.ToString("dd/MM/yyyy"), LaNVChinhThuc ? "tính lương các ngày còn lại như NV chính thức" : ""), maCC: uen); if (kq == 0) // báo lỗi { MessageBox.Show(Resources.Text_CoLoi); return; } #endregion // sau khi update thì đóng form và reload IsReload = true; Close(); } }
private void btnThem_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } // lấy ngày check List <DateTime> DSNgayCheck = (from object item in checklistNgay.CheckedItems select(DateTime) item).ToList(); if (DSNgayCheck.Count == 0) { ACMessageBox.Show("Bạn chưa chọn ngày vắng", "Thông báo", 2000); return; } #region ko cho chỉnh sửa giờ nếu khoảng thời gian xem công tồn tại các ngày đã kết lương if (XL.Kiemtra(DSNgayCheck[0], DSNgayCheck[DSNgayCheck.Count - 1])) { MessageBox.Show(String.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "khai báo vắng", "khai báo vắng", "khai báo vắng"), Resources.Caption_ThongBao, MessageBoxButtons.OK); return; } #endregion #region hỏi lại trước khi thực hiện if (MessageBox.Show(Resources.Text_XacNhanThemKhaiVang, Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } #endregion //1. lấy dữ liệu từ form dtpThang.Update(); currMonth = dtpThang.Value; dgrdDSNVTrgPhg.EndEdit(); dgrdDSNVTrgPhg.Update(); BindingContext[dgrdDSNVTrgPhg.DataSource].EndCurrentEdit(); //2. lấy danh sách nhân viên check, nếu chưa có nv nào check thì thông báo var listMaCC_NV = (from DataGridViewRow dataGridViewRow in dgrdDSNVTrgPhg.Rows let row = (DataRowView)dataGridViewRow.DataBoundItem where (row["check"] != DBNull.Value && (bool)row["check"]) select((cUserInfo)row["cUserInfo"]).MaCC) .ToList(); if (listMaCC_NV.Count == 0) { ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000); return; } // lấy loại vắng if (cbLoaiVang.SelectedItem == null) { ACMessageBox.Show("Bạn chưa chọn loại vắng", "Thông báo", 2000); return; } var rowLV = cbLoaiVang.SelectedItem as DataRowView; var absentCode = rowLV["AbsentCode"].ToString(); float workingDay = 0f; if (rad2Gio.Checked) { workingDay = 0.25f; } else if (radNuaNgay.Checked) { workingDay = 0.5f; } else if (rad1ngay.Checked) { workingDay = 1f; } else { workingDay = 0f; } var workingTime = 0f; var phuCapString = maskedTextBox1.Text; var phuCapInt = 0; var phuCapFloat = 0f; if (int.TryParse(phuCapString, out phuCapInt) == false || phuCapString.Length < 3) { ACMessageBox.Show("Nhập phụ cấp chưa đúng định dạng.", Resources.Caption_Loi, 2000); return; } phuCapFloat = Convert.ToSingle(phuCapInt) / 100f; #region set working time tùy theo workingDay if (Math.Abs(workingDay - 0f) < 0.01f) { workingTime = 0f; } else if (Math.Abs(workingDay - 0.25f) < 0.01f) { workingTime = 2f; } else if (Math.Abs(workingDay - 0.5f) < 0.01f) { workingTime = 4f; } else if (Math.Abs(workingDay - 1f) < 0.01f) { workingTime = 8f; } #endregion if (Math.Abs(workingDay - 0.25f) < 0.01f) { if (!(absentCode.ToLower() == "p" || absentCode.ToLower() == "ro")) { ACMessageBox.Show("Chưa hỗ trợ vắng 2 tiếng ngoài phép và việc riêng.", "Chức năng chưa được hỗ trợ", 3000); return; } } var formatString = "[{0}] đã xin phép vắng [{1}] [{2}] ngày ngày [{3}]"; var tableVang = DAO.LietKeNgayVangChoNV(listMaCC_NV, DSNgayCheck.Min(), DSNgayCheck.Max()); if (tableVang.Rows.Count > 0) { List <Warning> listWarning = new List <Warning>(); foreach (var nv in listMaCC_NV) //duyệt từng nhân viên { foreach (var ngay in DSNgayCheck) // duyệt từng ngày check vắng của nhân viên { DateTime ngay1 = ngay; int nv1 = nv; var result = (from DataRow item in tableVang.Rows where (int)item["UserEnrollNumber"] == nv1 && (DateTime)item["TimeDate"] == ngay1 select item).ToList(); // lấy danh sách các xin phép vắng trong ngày xác định if (result.Any()) { // nếu có xin phép vắng thì ghi lại chuỗi các xin phép vắng đó var userfullname = result[0]["UserFullName"].ToString(); listWarning.AddRange(result.Select(row123 => new Warning() { CB = "Đã có xin phép vắng", ND = string.Format(formatString, userfullname, row123["AbsentCode"], ((float)row123["Workingday"]).ToString("0.0#"), ((DateTime)row123["TimeDate"]).ToString("dd/MM/yyyy")) })); } } } // hiện form cảnh báo, nếu xác nhận tiếp tục thì thực hiện , ko thì dừng frmWarning frm = new frmWarning { StartPosition = FormStartPosition.CenterParent }; frm.listWarning = listWarning; frm.ShowDialog(); if (frm.TiepTuc == false) { return; } } IEnumerable <dynamic> tempList = (from macc in listMaCC_NV from ngay in DSNgayCheck select new { MaCC = macc, NgayVang = ngay }); DAO.ThemNgayVang(tempList, workingDay, workingTime, phuCapFloat, absentCode); // sau khi thao tác xong thì clear check các ngày liệt kê lại chk2ExceptSat.Checked = false; chk2ExceptSun.Checked = false; for (int i = 0; i < checklistNgay.Items.Count; i++) { checklistNgay.SetItemChecked(i, false); } Thread.Sleep(20); btnLietKe.PerformClick(); }
private void btnCapNhatVaoCSDL_Click(object sender, EventArgs e) { IsReload = true; if (XL2.KiemtraKetnoiCSDL() == false) { return; } #region ko cho chỉnh sửa giờ nếu khoảng thời gian xem công tồn tại các ngày đã kết lương if (XL.Kiemtra(m_Thang.Date, MyUtility.LastDayOfMonth(m_Thang))) { MessageBox.Show(string.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "chỉnh sửa thu chi tháng", "thực hiện thao tác", ""), Resources.Caption_ThongBao, MessageBoxButtons.OK); return; } #endregion var table = dgrdDThuchiExcel.DataSource as DataTable; DateTime thang = m_Thang; var flagError = false; #region xác nhận trước khi thực hiện if ( MessageBox.Show(string.Format("Bạn muốn cập nhật cho tháng {0}?", thang.ToString("M/yyyy")), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } #endregion if (table != null) { var tableTatCaNV = XL.LayDSNV(true); //tbd foreach (DataRow row in table.Rows) { #region lấy thông tin var userFullcode = row["UserFullCode"].ToString().TrimStart().TrimEnd().ToLower(); //var arrRows = tableTatCaNV.Select("UserFullCode = '" +userFullcode + "'","", DataViewRowState.CurrentRows); var resultRow = (tableTatCaNV.Rows.Cast <DataRow>().Where( dataRow => dataRow["UserFullCode"].ToString().TrimStart().TrimEnd().ToLower() == userFullcode)).SingleOrDefault(); if (resultRow == null) { continue; } var tenNV = resultRow["UserFullName"].ToString(); var UserEnrollNumber = (int)resultRow["UserEnrollNumber"]; var luongdieuchinh = (double)row["LuongDieuChinh"]; var tamung = (double)row["TamUng"]; var thuchikhac = (double)row["ThuChiKhac"]; var mucdongbhxhDouble = (double)row["MucDongBHXH"]; var mucdongbhxhFloat = Convert.ToSingle(mucdongbhxhDouble); #endregion var kq = DAO.CapnhatThuchiThang(UserEnrollNumber, thang, luongdieuchinh, tamung, thuchikhac, mucdongbhxhFloat); #region báo lỗi nếu ko cập nhật được if (kq == 0) { flagError = true; ACMessageBox.Show(string.Format("Xảy ra lỗi trong quá trình cập nhật tại vị trí nhân viên {0}, mã {1}.\nVui lòng thử lại.", tenNV, userFullcode), "Lỗi", 3000); break; } #endregion } if (flagError == false) { ACMessageBox.Show("Thực hiện thành công.", "Thông báo", 2000); } } }
private void btnXem_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } //0. xoa dữ liệu cũ //1. lấy dữ liệu từ form dtpBD.Update(); dtpKT.Update(); DateTime startTime = dtpBD.Value; DateTime endTime = dtpKT.Value; dgrdDSNVTrgPhg.EndEdit(); BindingContext[dgrdDSNVTrgPhg.DataSource].EndCurrentEdit(); try //general try catch { #region //2. lấy danh sách nhân viên check, nếu chưa có nv nào check thì thông báo var listNV = (from DataGridViewRow dataGridViewRow in dgrdDSNVTrgPhg.Rows let rowView = dataGridViewRow.DataBoundItem as DataRowView where (rowView["check"] != DBNull.Value && (bool)rowView["check"]) select(cUserInfo) rowView["cUserInfo"]) .ToList(); if (listNV.Count == 0) { ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000); // GC.Collect(); return; } #endregion //2. lấy dữ liệu chấm công của các nhân viên if (XL.KiemtraDulieuCapnhatTuServer(DateTime.Now) == false) { ACMessageBox.Show(Resources.Text_DuLieuChamCongChuaUpdate, Resources.Caption_ThongBao, 4000); } DataTable fDataTableChkInOut = new DataTable(); try { var Arr_MaCC = (from nv in listNV select nv.MaCC).ToArray(); fDataTableChkInOut = DAO5.LayTableCIO_A(Arr_MaCC, startTime, endTime); fDataTableChkInOut.Columns.Add("check", typeof(bool)); } catch (Exception exception) { lg.Error(string.Format("[{0}]_[{1}]\n", this.Name, System.Reflection.MethodBase.GetCurrentMethod().Name), exception); MessageBox.Show(Resources.Text_MatKetNoiCSDL, Resources.Caption_Loi); GC.Collect(); } DataTable dataTableChiTietVao = dgrdCTGioVao.DataSource as DataTable; DataTable dataTableChiTietRa = dgrdCTGioRa.DataSource as DataTable; if (dataTableChiTietVao == null) { dataTableChiTietVao = fDataTableChkInOut.Clone(); } else { dataTableChiTietVao.Rows.Clear(); } if (dataTableChiTietRa == null) { dataTableChiTietRa = fDataTableChkInOut.Clone(); } else { dataTableChiTietRa.Rows.Clear(); } //4. xử lý dữ liệu để đưa lên lưới tổng hợp foreach (DataRow row in fDataTableChkInOut.Rows) { if ((int)row["MachineNo"] % 2 == 1) { dataTableChiTietVao.ImportRow(row); } else { dataTableChiTietRa.ImportRow(row); } } dgrdCTGioVao.DataSource = dataTableChiTietVao; dgrdCTGioRa.DataSource = dataTableChiTietRa; checkAllGridCheckIn.CheckedChanged -= checkAll_CheckedChanged; checkAllGridCheckOut.CheckedChanged -= checkAll_CheckedChanged; checkAllGridCheckIn.Checked = false; checkAllGridCheckOut.Checked = false; checkAllGridCheckIn.CheckedChanged += checkAll_CheckedChanged; checkAllGridCheckOut.CheckedChanged += checkAll_CheckedChanged; } catch (Exception ex) //general try catch { lg.Error(string.Format("[{0}]_[{1}]\n", this.Name, System.Reflection.MethodBase.GetCurrentMethod().Name), ex); MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi); } }
private void btnXoa_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } #region lấy ds UserEnrollNumber được chọn BindingContext[dgrdDSNVTrgPhg.DataSource].EndCurrentEdit(); var checkRows = (from DataGridViewRow dataGridViewRow in dgrdDSNVTrgPhg.Rows let row = (DataRowView)dataGridViewRow.DataBoundItem where dataGridViewRow.Cells["check"].FormattedValue != null && (bool)dataGridViewRow.Cells["check"].FormattedValue select(int) row["UserEnrollNumber"]).ToList(); #endregion #region chưa chọn NV thì báo và thoát if (checkRows.Count == 0) { ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000); return; } #endregion #region xác nhận trước khi xoá if (MessageBox.Show("Bạn muốn xoá Nhân viên này khỏi CSDL? \nKhi xoá Nhân viên sẽ không thể phục hồi lại nhân viên này.\nCân nhắc sử dụng chức năng vô hiệu hoá trạng thái hoạt động (UserEnabled).\nBấm yes để xoá Nhân viên. Bấm No để quay trở lại.", Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } #endregion TreeNode node = treePhongBan.SelectedNode; // sử dụng để reload dgrid var query = " delete from UserInfo where ( UserEnrollNumber = {0} ) "; string temp = string.Join(" or UserEnrollNumber = ", checkRows.ToArray()); query = string.Format(query, temp); int kq = SqlDataAccessHelper.ExecNoneQueryString(query, null, null); foreach (int checkedUEN in checkRows) { DAO.GhiNhatKyThaotac("Xoá NV khỏi CSDL", string.Format("Xoá NV có mã chấm công [{0}] khỏi CSDL", checkedUEN), maCC: checkedUEN); } if (kq != 0) { ACMessageBox.Show("Xoá Nhân viên thành công.", Resources.Caption_ThongBao, 2000); } else { ACMessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi, 2000); } #region reload grid string oldFilter = string.Empty; var dataView = dgrdDSNVTrgPhg.DataSource as DataView; if (dataView != null) { oldFilter = dataView.RowFilter; } treePhongBan_AfterSelect(treePhongBan, new TreeViewEventArgs(node)); dataView = dgrdDSNVTrgPhg.DataSource as DataView; if (dataView != null) { dataView.RowFilter = oldFilter; } #endregion }
private void btnThem_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } // lấy ngày check var ngayBD = dtpNgayBD.Value.Date; var ngayKT = dtpNgayKT.Value.Date; if (ngayBD > ngayKT) { MyUtility.Swap(ref ngayBD, ref ngayKT); } List <DateTime> DSNgayCheck = new List <DateTime>(); for (DateTime indexNgay = ngayBD; indexNgay <= ngayKT; indexNgay = indexNgay.AddDays(1d)) { DSNgayCheck.Add(indexNgay); } #region ko cho chỉnh sửa giờ nếu khoảng thời gian xem công tồn tại các ngày đã kết lương if (XL.Kiemtra(DSNgayCheck[0], DSNgayCheck[DSNgayCheck.Count - 1])) { MessageBox.Show(String.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "khai báo vắng", "khai báo vắng", "khai báo vắng"), Resources.Caption_ThongBao, MessageBoxButtons.OK); return; } #endregion #region hỏi lại trước khi thực hiện if (MessageBox.Show(Resources.Text_XacNhanThemKhaiVang, Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } #endregion // lấy loại vắng if (cbLoaiVang.SelectedItem == null) { ACMessageBox.Show("Bạn chưa chọn loại vắng", "Thông báo", 2000); return; } var rowLV = cbLoaiVang.SelectedItem as DataRowView; var absentCode = rowLV["AbsentCode"].ToString(); var workingDay = 1f; var workingTime = 8f; var formatString = "[{0}] đã xin phép vắng [{1}] [{2}] ngày ngày [{3}]"; var tableVang = DAO.LietKeNgayVangChoNV(listMaCC_NV, DSNgayCheck.Min(), DSNgayCheck.Max()); if (tableVang.Rows.Count > 0) { List <Warning> listWarning = new List <Warning>(); foreach (var nv in listMaCC_NV) //duyệt từng nhân viên { foreach (var ngay in DSNgayCheck) // duyệt từng ngày check vắng của nhân viên { DateTime ngay1 = ngay; int nv1 = nv; var result = (from DataRow item in tableVang.Rows where (int)item["UserEnrollNumber"] == nv1 && (DateTime)item["TimeDate"] == ngay1 select item).ToList(); // lấy danh sách các xin phép vắng trong ngày xác định if (result.Any()) { // nếu có xin phép vắng thì ghi lại chuỗi các xin phép vắng đó var userfullname = result[0]["UserFullName"].ToString(); listWarning.AddRange(result.Select(row123 => new Warning() { CB = "Đã có xin phép vắng", ND = string.Format(formatString, userfullname, row123["AbsentCode"], ((float)row123["Workingday"]).ToString("0.0#"), ((DateTime)row123["TimeDate"]).ToString("dd/MM/yyyy")) })); } } } // hiện form cảnh báo, nếu xác nhận tiếp tục thì thực hiện , ko thì dừng frmWarning frm = new frmWarning { listWarning = listWarning, WindowState = FormWindowState.Normal, StartPosition = FormStartPosition.CenterParent }; //Point temp = XL2.GetCenterLocation(this.MdiParent.Size.Width, this.MdiParent.Size.Height, frm.Size.Width, frm.Size.Height); //frm.Location = new Point(this.MdiParent.Location.X + temp.X, this.MdiParent.Location.Y + temp.Y); frm.ShowDialog(); if (frm.TiepTuc == false) { return; } } IsReload = true; IEnumerable <dynamic> listMaCC_NgayVang = (from macc in listMaCC_NV from ngay in DSNgayCheck select new { MaCC = macc, NgayVang = ngay }); List <Error> listError = new List <Error>(); XL.ThemNgayVang(listMaCC_NgayVang, workingDay, workingTime, 0f, absentCode, listError); if (listError.Count > 0) { frmError frm = new frmError { StartPosition = FormStartPosition.CenterParent, listError = listError }; frm.ShowDialog(); } Close(); }