private void dgrdGioKDQD_SelectionChanged(object sender, EventArgs e) { // mỗi lần chọn 1 row thì load dữ liệu vào các group thêm xóa sửa if (dgrdGioKDQD.SelectedRows.Count == 0) // trường hợp này xảy ra sau khi gán dataSource tức load lần đầu hay reload //reset từng group { chkGioVao.Checked = false; chkGioRaa.Checked = false; MyUtility.ClearControlText(tbCa_Them, tbGioCu_Suaa, tbCa_Suaa, tbGioCu_Xoaa, tbGioCuu_ChuyenDoi); tbCa_Them.Tag = null; tbCa_Suaa.Tag = null; //không row nào được chọn thì disable button, ko cho thực hiện thao tác MyUtility.EnableDisableControl(false, btnThem, btnXoaa, btnSuaa, btnChuyenDoi, btnChonCa_Them, btnChonCa_Suaa); return; } //chuyển từ dataGridViewRow sang DataRowView sang DataRow var row = (DataRowView)(dgrdGioKDQD.SelectedRows[0]).DataBoundItem; var CIO = (row["cCheckInOut"] != DBNull.Value) ? (cCheckInOut)row["cCheckInOut"] : null; //2. lấy dữ liệu và load group var ngayCong = (row["cNgayCong"] != DBNull.Value) ? (cNgayCong)row["cNgayCong"] : null; var chk = (row["cCheck"] != DBNull.Value) ? (cCheck)row["cCheck"] : null; LoadGroup_Them(ngayCong.Ngay, CIO); LoadGroup_Suaa(ngayCong, CIO, chk); LoadGroup_Xoaa(chk); }
private void LoadGroup_Them(DateTime ngay, cCheckInOut CIO) { MyUtility.EnableDisableControl(true, btnChonCa_Them, btnThem); //vì thêm giờ ko cần xác định giờ cũ, chỉ insert data nên mặc định cho phép enable MyUtility.ClearControlText(tbCa_Them, tbGhichu_Them); tbCa_Them.Tag = (CIO == null || CIO.HaveINOUT < 0) ? null : CIO.ThuocCa; tbCa_Them.Text = (CIO == null || CIO.HaveINOUT < 0) ? string.Empty : CIO.ThuocCa.Code; chkGioVao.Checked = (CIO != null && CIO.HaveINOUT == -2); chkGioRaa.Checked = (CIO != null && CIO.HaveINOUT == -1); dtpVao_Them.Value = new DateTime(ngay.Year, ngay.Month, ngay.Day, 0, 0, 1); dtpRaa_Them.Value = new DateTime(ngay.Year, ngay.Month, ngay.Day, 0, 0, 1); cbLyDo_Them.SelectedIndex = 0; }
private void LoadGroup_Xoaa(cCheck check) { if (check == null) // check null thì reset group { MyUtility.ClearControlText(tbGioCuu_ChuyenDoi, tbGioCu_Xoaa, tbGhiChu_Xoaa); cbLyDo_Xoaa.SelectedIndex = 0; MyUtility.EnableDisableControl(false, btnChuyenDoi, btnXoaa); } else // check ko null { tbGioCu_Xoaa.Text = tbGioCuu_ChuyenDoi.Text = ((check.MachineNo % 2 == 1) ? "Vào" : "Ra") + " " + check.Time.ToString("H:mm ddd d/M", Application.CurrentCulture); cbLyDo_Xoaa.SelectedIndex = 0; tbGhiChu_Xoaa.Text = string.Empty; MyUtility.EnableDisableControl(true, btnChuyenDoi, btnXoaa); } }
private void ResetDataOfControl() { //chú ý ko xóa tag của button Chọn ca lbGioLV.Tag = null; lbGioCheckVT.Tag = null; lbVaoTre.Tag = null; lbRaaSom.Tag = null; lbOLaiChuaXN.Tag = null; lbCurrentCIO.Tag = null; // ẩn ko hiển thị text lbCurrentNgayCong.Tag = null; // ẩn ko hiển thị text timeEditXacNhanOT.Tag = null; MyUtility.CheckedCheckBox(false, checkChoPhepTre, checkChoPhepSom, checkVaoTreTinhCV, checkRaaSomTinhCV, checkXNLamThem); MyUtility.ClearControlText(lbGioLV, lbGioCheckVT, lbVaoTre, lbRaaSom, lbOLaiChuaXN, tbThongTinKhac, cbXNLyDo, tbXNGhiChu); timeEditXacNhanOT.Time = DateTime.Today.Date; //reset về timezero 0:00 }
void clearAllField() { MyUtility.ClearControlText(new Control[] { textBoxShiftcode, maskedTextBoxVao, maskedTextBoxRaa, textBoxWKTime, maskedTextBoxWKDay, textBoxMoTa, textBoxKyhieu, maskedTextBoxBDLunch, maskedTextBoxKTLunch }); numOnnInn.Value = 0; numCutInn.Value = 0; numOnnOut.Value = 0; numCutOut.Value = 0; numLateGrace.Value = 0; numEarlyGrace.Value = 0; numAfterOT.Value = 0; lbShiftID.Tag = null; checkBoxTachCaDem.Checked = false; checkBoxEnable.Checked = false; checkBoxCaMR.Checked = false; // 2 combobox comboBoxCaTruoc.DataSource = null; comboBoxCaSau.DataSource = null; }
private void dgrdDSLuongCongnhat_SelectionChanged(object sender, EventArgs e) { if (dgrdDSLuongCongnhat.SelectedRows.Count == 0) { MyUtility.ClearControlText(tbTenNV, tbMaNV, tbPhongBan, tbChucvu, tbCong); lbUserEnrollNumber.Tag = null; numDonGiaLuong.Value = 0; numTamUng.Value = 0; btnCapNhat.Enabled = false; // ko chọn dòng nào--> ko fill thông tin, disable btnCapnhat return; } btnCapNhat.Enabled = true; // có chọn dòng, enable btnCapnhat // lấy dòng được chọn DataRowView selectedRow = (DataRowView)(dgrdDSLuongCongnhat.SelectedRows[0]).DataBoundItem; if (selectedRow == null) { return; } //fill thông tin nhân viên công nhật của dòng được chọn tbTenNV.Text = selectedRow["UserFullName"].ToString(); tbMaNV.Text = selectedRow["UserFullCode"].ToString(); lbUserEnrollNumber.Tag = selectedRow["UserEnrollNumber"]; lbUserEnrollNumber.Text = ((int)selectedRow["UserEnrollNumber"]).ToString(); tbPhongBan.Text = selectedRow["TenPhong"].ToString(); tbPhongBan.Tag = (selectedRow["IDPhong"] != DBNull.Value) ? (int)selectedRow["IDPhong"] : -1; tbChucvu.Text = selectedRow["ChucVu"].ToString(); tbCong.Text = ((float)selectedRow["SoNgayCong"]).ToString("00.00"); var dongiaLuong = (selectedRow["DonGiaLuong"] == DBNull.Value) ? 0 : (int)selectedRow["DonGiaLuong"]; var tamung = (selectedRow["TamUng"] == DBNull.Value) ? 0d : Convert.ToDouble(selectedRow["TamUng"]); numDonGiaLuong.Value = dongiaLuong; numTamUng.Value = Convert.ToDecimal(tamung); }
private void LoadGroup_Suaa(cNgayCong ngayCong, cCheckInOut cio, cCheck check) { if (check == null) { MyUtility.ClearControlText(tbGioCu_Suaa, tbCa_Suaa, tbGhiChu_Suaa); tbCa_Suaa.Tag = null; MyUtility.EnableDisableControl(false, btnChonCa_Suaa, btnSuaa); // ko tồn tại giờ cũ nên ko cho sửa, chuyển đổi cbLyDo_Suaa.SelectedIndex = 0; } else { // xem xét check là CIO_V hay CIO_A, CIO_A cho sửa, CIO_V ko cho sửa, trong CIO_A coi có phải là check đệm giữa ca ko tbGioCu_Suaa.Text = ((check.MachineNo % 2 == 1) ? "Vào" : "Ra") + " " + check.Time.ToString("H:mm ddd d/M"); dtpGioMoi_Sua.Value = new DateTime(check.Time.Year, check.Time.Month, check.Time.Day, check.Time.Hour, check.Time.Minute, check.Time.Second); tbCa_Suaa.Tag = (cio == null || cio.HaveINOUT < 0) ? null : cio.ThuocCa; tbCa_Suaa.Text = (cio == null || cio.HaveINOUT < 0) ? string.Empty : cio.ThuocCa.Code; cbLyDo_Suaa.SelectedIndex = 0; tbGhiChu_Suaa.Text = string.Empty; //tồn tại giờ cũ nên cho phép sửa MyUtility.EnableDisableControl(true, btnChonCa_Suaa, btnSuaa); } }
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 dgrdGioCoLamThem_SelectionChanged(object sender, EventArgs e) { if (dgrdGioCoLamThem.SelectedRows.Count == 0) { #region reset layout MyUtility.ClearControlText(tbTTTenNV, tbTTGioVao, tbTTGioRaa, tbTTThuocCa, tbTTGioLam, tbTTTongGio, tbTTTreSom, tbTTOLaiThem, tbTTLamThem, tbXNCa, tbXNGioLam, tbXNTre, tbXNSom, tbXN_OLaiThem); MyUtility.CheckedCheckBox(false, checkTTChoPhepTre, checkTTChoPhepSom, checkTTTinhPC50, checkXNChoPhepTre, checkXNChoPhepSom, checkXNLamThem, checkXNTinhPC50, checkTTVaoTreTinhCV, checkTTRaaSomTinhCV, checkXNVaoTreTinhCV, checkXNRaaSomTinhCV);//ver 4.0.0.4 //numPhutTinhLamThem.Value = 0; maskPhutTinhLamThem.Text = "00:00"; //ver 4.0.0.4 maskPhutTinhLamThem.Tag = TimeSpan.Zero; //ver 4.0.0.4 #endregion MyUtility.EnableDisableControl(false, btnXacNhan, btnDoiCa, // ngoài reset layout thì disable nút xác nhận, nút sửa để tránh ấn nhầm gây lỗi checkXNChoPhepTre, checkXNChoPhepSom, checkXNLamThem, checkXNTinhPC50, numPhutTinhLamThem, maskPhutTinhLamThem, checkXNVaoTreTinhCV, checkXNRaaSomTinhCV); //ver 4.0.0.4 } else if (dgrdGioCoLamThem.SelectedRows.Count == 1) { MyUtility.EnableDisableControl(true, btnXacNhan, btnDoiCa, checkXNChoPhepTre, checkXNChoPhepSom, checkXNTinhPC50, checkXNLamThem, numPhutTinhLamThem, maskPhutTinhLamThem, checkXNVaoTreTinhCV, checkXNRaaSomTinhCV); //ver 4.0.0.4 var dataRowView = dgrdGioCoLamThem.SelectedRows[0].DataBoundItem as DataRowView; var nhanvien = dataRowView["cUserInfo"] as cUserInfo; var CIO = dataRowView["cCheckInOut"] as cCheckInOut; var ngaycong = dataRowView["cNgayCong"] as cNgayCong; #region fill phần thông tin CIO //DateTime ngaydangchon = CIO.ThuocNgayCong; tbTTTenNV.Text = nhanvien.TenNV; tbTTGioVao.Text = (CIO.Vao != null) ? CIO.Vao.Time.ToString("H:mm d/M") : string.Empty; tbTTGioRaa.Text = (CIO.Raa != null) ? CIO.Raa.Time.ToString("H:mm d/M") : string.Empty; tbTTThuocCa.Text = CIO.CIOCodeFull(); tbTTGioLam.Text = (CIO.HaveINOUT == 0) ? CIO.TG.GioLamViec5.ToString(@"h\gmm\p") : string.Empty; tbTTTongGio.Text = (CIO.HaveINOUT == 0) ? CIO.TG.GioThucTe5.ToString(@"h\gmm\p") : string.Empty; tbTTTreSom.Text = (CIO.HaveINOUT == 0) ? (CIO.TG.VaoTre + CIO.TG.RaaSom).ToString(@"h\gmm\p") : string.Empty; tbTTOLaiThem.Text = (CIO.HaveINOUT == 0) ? CIO.TG.OLai.ToString(@"h\gmm\p") : string.Empty; tbTTLamThem.Text = (CIO.DaXN) ? CIO.TG.SoPhutLamThem5.ToString(@"h\gmm\p") : string.Empty; checkTTChoPhepTre.Checked = CIO.DuyetChoPhepVaoTre; checkTTChoPhepSom.Checked = CIO.DuyetChoPhepRaSom; checkTTTinhPC50.Checked = ngaycong.TinhPC50; checkTTVaoTreTinhCV.Checked = CIO.VaoTreTinhCV; //ver 4.0.0.4 checkTTRaaSomTinhCV.Checked = CIO.RaaSomTinhCV; //ver 4.0.0.4 #endregion #region fill phần xác nhận CIO tbXNCa.Text = CIO.CIOCodeFull(); tbXNCa.Tag = (CIO.HaveINOUT == 0) ? CIO.ThuocCa : null; tbXNGioLam.Text = (CIO.HaveINOUT == 0) ? CIO.TG.GioLamViec5.ToString(@"h\gmm\p") : string.Empty; tbXNTre.Text = (CIO.HaveINOUT == 0) ? CIO.TG.VaoTre.ToString(@"h\gmm\p") : string.Empty; tbXNSom.Text = (CIO.HaveINOUT == 0) ? CIO.TG.RaaSom.ToString(@"h\gmm\p") : string.Empty; tbXN_OLaiThem.Text = (CIO.HaveINOUT == 0) ? CIO.TG.OLai.ToString(@"h\gmm\p") : string.Empty; //numPhutTinhLamThem.Maximum = (CIO.HaveINOUT == 0) ? Convert.ToInt32(CIO.TG.OLai.TotalMinutes) : 0; //numPhutTinhLamThem.Value = (CIO.HaveINOUT == 0) ? (Convert.ToInt32(CIO.TG.OLai.TotalMinutes) / 10) * 10 : 0; maskPhutTinhLamThem.Tag = (CIO.TG.OLai == null) ? TimeSpan.Zero : CIO.TG.OLai; //ver 4.0.0.4 maskPhutTinhLamThem.Text = (CIO.TG.OLai == null) ? "00:00" : CIO.TG.OLai.ToString(@"hh\:mm"); //ver 4.0.0.4 checkXNChoPhepTre.Checked = CIO.DuyetChoPhepVaoTre; checkXNChoPhepSom.Checked = CIO.DuyetChoPhepRaSom; checkXNLamThem.Checked = false; checkXNTinhPC50.Checked = false; checkXNVaoTreTinhCV.Checked = CIO.VaoTreTinhCV; //ver 4.0.0.4 checkXNRaaSomTinhCV.Checked = CIO.RaaSomTinhCV; //ver 4.0.0.4 tbXNGhiChu.Text = string.Empty; #endregion } else // chế độ xác nhận hàng loạt { MyUtility.EnableDisableControl(true, btnXacNhan, btnDoiCa, checkXNChoPhepTre, checkXNChoPhepSom, checkXNTinhPC50, checkXNLamThem, numPhutTinhLamThem, maskPhutTinhLamThem, checkXNVaoTreTinhCV, checkXNRaaSomTinhCV); //ver 4.0.0.4 var dataRowView = dgrdGioCoLamThem.SelectedRows[0].DataBoundItem as DataRowView; var nhanvien = dataRowView["cUserInfo"] as cUserInfo; var CIO = dataRowView["cCheckInOut"] as cCheckInOut; var ngaycong = dataRowView["cNgayCong"] as cNgayCong; #region fill thông tin CIO tbTTTenNV.Text = nhanvien.TenNV; tbTTGioVao.Text = (CIO.Vao != null) ? CIO.Vao.Time.ToString("H:mm d/M") : string.Empty; tbTTGioRaa.Text = (CIO.Raa != null) ? CIO.Raa.Time.ToString("H:mm d/M") : string.Empty; tbTTThuocCa.Text = CIO.CIOCodeFull(); tbTTGioLam.Text = (CIO.HaveINOUT == 0) ? CIO.TG.GioLamViec5.ToString(@"h\gmm\p") : string.Empty; tbTTTongGio.Text = (CIO.HaveINOUT == 0) ? CIO.TG.GioThucTe5.ToString(@"h\gmm\p") : string.Empty; tbTTTreSom.Text = (CIO.HaveINOUT == 0) ? (CIO.TG.VaoTre + CIO.TG.RaaSom).ToString(@"h\gmm\p") : string.Empty; tbTTOLaiThem.Text = (CIO.HaveINOUT == 0) ? CIO.TG.OLai.ToString(@"h\gmm\p") : string.Empty; tbTTLamThem.Text = (CIO.DaXN) ? CIO.TG.SoPhutLamThem5.ToString(@"h\gmm\p") : string.Empty; checkTTChoPhepTre.Checked = CIO.DuyetChoPhepVaoTre; checkTTChoPhepSom.Checked = CIO.DuyetChoPhepRaSom; checkTTTinhPC50.Checked = ngaycong.TinhPC50; checkTTVaoTreTinhCV.Checked = CIO.VaoTreTinhCV; //ver 4.0.0.4 checkTTRaaSomTinhCV.Checked = CIO.RaaSomTinhCV; //ver 4.0.0.4 #endregion #region fill phần xác nhận CIO var listCIO = (from DataGridViewRow dataGridViewRow in dgrdGioCoLamThem.SelectedRows let row = (DataRowView)dataGridViewRow.DataBoundItem select(cCheckInOut) row["cCheckInOut"]).ToList(); var distinctShift = (from cio in listCIO where cio.HaveINOUT == 0 select cio.ThuocCa).Distinct().ToList(); var distinctList_KR = listCIO.Where(item => item.HaveINOUT == -1).ToList(); var distinctList_KV = listCIO.Where(item => item.HaveINOUT == -2).ToList(); // phần ca làm việc if (distinctShift.Count == 1) { tbXNCa.Tag = distinctShift[0]; tbXNCa.Text = distinctShift[0].Code; } else { tbXNCa.Tag = null; tbXNCa.Text = string.Empty; } // phần giờ làm, ra trễ, về sớm, ở lại cần xn MyUtility.ClearControlText(tbXNGioLam, tbXNTre, tbXNSom, tbXN_OLaiThem); //numPhutTinhLamThem.Value = 0; //numPhutTinhLamThem.Maximum = 840; maskPhutTinhLamThem.Text = "00:00"; //ver 4.0.0.4 maskPhutTinhLamThem.Tag = XL2._16gio; //ver 4.0.0.4 MyUtility.CheckedCheckBox(false, checkXNChoPhepTre, checkXNChoPhepSom, checkXNLamThem, checkXNTinhPC50, checkXNVaoTreTinhCV, checkXNRaaSomTinhCV);//ver 4.0.0.4 tbXNGhiChu.Text = string.Empty; #endregion } }