示例#1
0
        private void btnReset_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 tempTenTK       = tbTenTaiKhoan.Text;
            string tempPass        = tbPass1.Text;
            string tempPassEncrypt = MyUtility.Mahoa(tempPass);
            string updateString    = @" update NewUserAccount set Password=@Password where UserAccount = @UserAccount ";
            int    kq = SqlDataAccessHelper.ExecNoneQueryString(updateString, new[] { "@UserAccount", "@Password" }
                                                                , new object[] { tempTenTK, tempPassEncrypt }, CanLog: false);

            if (kq != 0)
            {
                ACMessageBox.Show("Reset mật khẩu tài khoản thành công.", "Thông báo", 2000);
            }
            else
            {
                ACMessageBox.Show("Không Reset mật khẩu tài khoản được.", "Lỗi", 2000);
            }
            tbPass1.Text = tbPass2.Text = string.Empty;
        }
示例#2
0
        public static bool ThemNgayVang(int MaCC, DateTime ngayVang, float workingDay, float workingTime, string absentCode)
        {
            #region query
            var queryIns = @"	
IF EXISTS (	SELECT ID FROM Absent 
			WHERE UserEnrollNumber = @UserEnrollNumber and AbsentCode=@AbsentCode and TimeDate=@TimeDate	
					and WorkingTime = 4 and WorkingTime = @WorkingTime )
	UPDATE Absent SET Workingday = @NewWorkingday, WorkingTime = @NewWorkingTime
	WHERE UserEnrollNumber = @UserEnrollNumber and AbsentCode=@AbsentCode and TimeDate=@TimeDate 
			and WorkingTime = 4  and WorkingTime = @WorkingTime 
ELSE
   INSERT INTO Absent (UserEnrollNumber,   TimeDate,  AbsentCode, Thang, Nam, Workingday, WorkingTime) 
		VALUES		  (@UserEnrollNumber,  @TimeDate, @AbsentCode,@Thang,@Nam,@Workingday,@WorkingTime) 
";
            #endregion

            //info ghép 2 cái nửa thành 1
            int kq = SqlDataAccessHelper.ExecNoneQueryString(
                queryIns,
                new string[] { "@UserEnrollNumber", "@TimeDate", "@AbsentCode", "@Thang", "@Nam",
                               "@Workingday", "@WorkingTime", "@NewWorkingday", "@NewWorkingTime", },
                new object[] { MaCC, ngayVang, absentCode, ngayVang.Month, ngayVang.Year,
                               workingDay, workingTime, 1f, 8f });
            string noidung = "Thêm xin phép vắng [{0}] [{1}] ngày [{2}] cho NV có mã chấm công [{3}]";

            DAO5.GhiNhatKyThaotac("Thêm xin phép vắng",
                                  string.Format(noidung, absentCode, workingDay.ToString("0.0"), (ngayVang).ToString("dd/MM/yyyy"), MaCC), maCC: MaCC);
            return(true);
        }
示例#3
0
        public static int UpdSetting(int id, string value)
        {
            var query = @"	update Setting set Value = @Value where ID = @ID ";
            var kq    = SqlDataAccessHelper.ExecNoneQueryString(query, new string[] { "@ID", "@Value" }, new object[] { id, value });

            return(kq);
        }
        public static int InsKetCongNgay(int maCc, DateTime ngay, float tongCong, float tongNgayLV /*ver4.0.0.1*/, float tongPc, float pc30, float pc50, float pctcc3, float pc200, float pc260, float pc300, float pc390, float pccus, TimeSpan gioLamViec, TimeSpan lamThem, TimeSpan lamBanDem, TimeSpan gioThuc, bool QuaDem,
                                         float CongDinhMucDuoi8Tieng, float CongTichLuy, float TruCongTreVR, float TruCongSomVR, float TruCongTreBu, float TruCongSomBu, float CongBuPhepTre, float CongBuPhepSom//ver 4.0.0.8
                                         )
        {
//info thuộc log kết công bộ phận
            //ver4.0.0.1 có thêm TongNgayLV
            var query = @"
INSERT INTO KetCongNgay
(  UserEnrollNumber, Ngay, TongCong, TongNgayLV, TongPC, PCDem, PCTangCuong, PCTangCuong_Dem, 
PC200, PC260, PC300, PC390, PCCus, TGLamViec, TGLamThem, TGLamDem, TGThuc, IsOverNight,
CongDinhMucDuoi8Tieng, CongTichLuy, TruCongTreVR, TruCongSomVR, TruCongTreBu, TruCongSomBu, CongBuPhepTre, CongBuPhepSom) 
VALUES (
  @UserEnrollNumber, @Ngay, @TongCong, @TongNgayLV, @TongPC, @PCDem, @PCTangCuong, @PCTangCuong_Dem, 
@PC200, @PC260, @PC300, @PC390, @PCCus, @TGLamViec, @TGLamThem, @TGLamDem, @TGThuc, @IsOverNight,
@CongDinhMucDuoi8Tieng, @CongTichLuy, @TruCongTreVR, @TruCongSomVR, @TruCongTreBu, @TruCongSomBu, @CongBuPhepTre, @CongBuPhepSom)";

            //ver4.0.0.1 có thêm TongNgayLV
            //ver 4.0.0.8 CongDinhMucDuoi8Tieng, CongTichLuy, TruCongTreVR,TruCongSomVR, TruCongTreBu,TruCongSomBu,CongBuPhepTre,CongBuPhepSom
            return(SqlDataAccessHelper.ExecNoneQueryString(query, new string[]
            {
                "@UserEnrollNumber", "@Ngay", "@TongCong", "@TongNgayLV", "@TongPC", "@PCDem", "@PCTangCuong", "@PCTangCuong_Dem", //ver4.0.0.1 có thêm TongNgayLV
                "@PC200", "@PC260", "@PC300", "@PC390", "@PCCus", "@TGLamViec", "@TGLamThem", "@TGLamDem", "@TGThuc", "@IsOverNight",
                "@CongDinhMucDuoi8Tieng", "@CongTichLuy", "@TruCongTreVR", "@TruCongSomVR", "@TruCongTreBu", "@TruCongSomBu", "@CongBuPhepTre", "@CongBuPhepSom"
            }, new object[]
            {
                maCc, ngay, tongCong, tongNgayLV, tongPc, pc30, pc50, pctcc3,                                                            //ver4.0.0.1 có thêm TongNgayLV
                pc200, pc260, pc300, pc390, pccus, gioLamViec, lamThem, lamBanDem, gioThuc, QuaDem,
                CongDinhMucDuoi8Tieng, CongTichLuy, TruCongTreVR, TruCongSomVR, TruCongTreBu, TruCongSomBu, CongBuPhepTre, CongBuPhepSom //ver 4.0.0.8
            }));
        }
        private void btnDongY_Click(object sender, EventArgs e)
        {
            if (tbPass1.Text == string.Empty || tbPass2.Text == string.Empty)
            {
                MessageBox.Show("Mật khẩu không được trống.", "Thông báo", MessageBoxButtons.OK);
                return;
            }
            if (tbPass1.Text != tbPass2.Text)
            {
                MessageBox.Show("Mật khẩu không khớp.", "Thông báo", MessageBoxButtons.OK);
                tbPass1.Text = tbPass2.Text = string.Empty;
                return;
            }
            if (MessageBox.Show("Bấm Yes để đổi mật khẩu. Bấm No để xem lại.", "Xác nhận", MessageBoxButtons.YesNo) == DialogResult.No)
            {
                return;
            }
            string tempTKDangnhap  = lbAccount.Tag.ToString();
            string tempPass        = tbPass1.Text;
            string tempPassEncrypt = MyUtility.Mahoa(tempPass);

            int kq = SqlDataAccessHelper.ExecNoneQueryString(" update NewUserAccount set Password = @Password  where UserAccount = @UserAccount"
                                                             , new string[] { "@Password", "@UserAccount" }
                                                             , new object[] { tempPassEncrypt, tempTKDangnhap });

            if (kq == 0)
            {
                MessageBox.Show("Không thể thay đổi password. Vui lòng thử lại", "Lỗi", MessageBoxButtons.OK);
            }
            else
            {
                MessageBox.Show("Thay đổi mật khẩu thành công.", "Thông báo", MessageBoxButtons.OK);
                tbPass1.Text = tbPass2.Text = string.Empty;
            }
        }
        public static void HuyXN_GioChamCong(int ID)
        {
            var query = @"	update CheckInOut set IDXNCa_LamThem = null where IDXNCa_LamThem = @IDXNCa_LamThem 
							delete XNCa_LamThem where ID = @IDXNCa_LamThem "                            ;

            SqlDataAccessHelper.ExecNoneQueryString(query, new string[] { "@IDXNCa_LamThem" }, new object[] { ID });
        }
        public static bool LoaiGioLienQuan(List <cCheck> kq1)
        {
            var query = String.Empty;
            var param = new string[kq1.Count];
            var obj   = new object[kq1.Count];
            var dem   = 0;

            foreach (cCheck o in kq1)
            {
                var UserEnrollNumber = o.MaCC;

                param[dem] = @"@time" + dem;
                obj[dem]   = o.Time;
                query     += @" update CheckInOut set Xoa = 1 where UserEnrollNumber = " + UserEnrollNumber;
                query     += @" and TimeStr = @time" + dem;
                query     += @" and MachineNo % 2 = " + (o.MachineNo % 2) + "  ";
                dem++;
            }
            if (param.Length == 0)
            {
                return(true);
            }
            if (SqlDataAccessHelper.ExecNoneQueryString(query, param, obj) == 0)
            {
                return(false);
            }
            return(true);
        }
示例#8
0
        public static void XacNhanCa(int maCc, DateTime timevao, int machineNoInn, string sourceInn,
                                     DateTime timeraa, int machineNoOut, string sourceOut,
                                     int ShiftID, string shiftCode, bool bDuyetCpTre, bool bDuyetCpSom, int soPhutLamThem, string lydo, string ghichu,
                                     out int idXacNhan, bool vaoTreLaCV, bool raaSomLaCV)
        {
            // insert vào bảng xác nhận trước để lấy id
            var       queryInsXNCa = @"	INSERT INTO XNCa_LamThem(ShiftID,ShiftCode,DuyetChoPhepVaoTre, DuyetChoPhepRaSom,  OTMin,  Explain,  Note,
															VaoTreLaCV, RaSomLaCV) 
									VALUES (@ShiftID,@ShiftCode,@DuyetChoPhepVaoTre,@DuyetChoPhepRaSom,@OTMin,@Explain,@Note,@VaoTreLaCV, @RaSomLaCV)
									select ID = @@Identity"                                    ;//ver 4.0.0.4	VaoTreLaCV, RaSomLaCV
            DataTable tableKQ1     = SqlDataAccessHelper.ExecuteQueryString(
                queryInsXNCa,
                new string[] { "@ShiftID", "@ShiftCode", "@DuyetChoPhepVaoTre", "@DuyetChoPhepRaSom", "@OTMin", "@Explain", "@Note", "@VaoTreLaCV", "@RaSomLaCV" }, //ver 4.0.0.4
                new object[] { ShiftID, shiftCode, bDuyetCpTre, bDuyetCpSom, soPhutLamThem, lydo, ghichu, vaoTreLaCV, raaSomLaCV });                                //ver 4.0.0.4

            idXacNhan = Int32.Parse(tableKQ1.Rows[0][0].ToString());
            var queryUpd_CheckInOut = @"	UPDATE	CheckInOut  
											SET		IDXNCa_LamThem = @IDXNCa_LamThem
											WHERE	UserEnrollNumber = @UserEnrollNumber
												and	( (TimeStr = @TimeStrInn and Source = @SourceInn and MachineNo = @MachineNoInn)
												or	  (TimeStr = @TimeStrOut and Source = @SourceOut and MachineNo = @MachineNoOut) )"                                                    ;
            int kq = SqlDataAccessHelper.ExecNoneQueryString(
                queryUpd_CheckInOut,
                new string[] { "@IDXNCa_LamThem", "@UserEnrollNumber", "@TimeStrInn", "@SourceInn", "@MachineNoInn", "@TimeStrOut", "@SourceOut", "@MachineNoOut" },
                new object[] { idXacNhan, maCc, timevao, sourceInn, machineNoInn, timeraa, sourceOut, machineNoOut });

            //string noidung = @"Xác nhận ca [{0}] cho NV có mã chấm công [{1}], giờ vào [{2}], giờ ra [{3}], [{4}] cho phép vào trễ, [{5}] cho phép ra sớm, làm thêm [{6}] phút, [{9}] tính vào trễ, [{10}] tính ra sớm là chờ việc(nếu có), lý do: [{7}], ghi chú: [{8}]";//ver 4.0.0.4
            string noidung = @"Xác nhận ca [{0}] cho NV có mã chấm công [{1}], giờ vào [{2}], giờ ra [{3}], [{4}] cho phép vào trễ, [{5}] cho phép ra sớm, làm thêm [{6}] phút, [{7}] tính vào trễ, [{8}] tính ra sớm là chờ việc(nếu có), lý do: [{9}], ghi chú: [{10}]";            //ver 4.0.0.4

            noidung = string.Format(noidung, shiftCode, maCc, timevao.ToString("H:mm:ss dd/MM/yyyy"), timeraa.ToString("H:mm:ss dd/MM/yyyy"), bDuyetCpTre ? "CÓ" : "KHÔNG",
                                    bDuyetCpSom ? "CÓ" : "KHÔNG", soPhutLamThem, vaoTreLaCV ? "CÓ" : "KHÔNG", raaSomLaCV ? "CÓ" : "KHÔNG", lydo, ghichu);                                    //ver 4.0.0.4	VaoTreLaCV, RaSomLaCV
            DAO5.GhiNhatKyThaotac("Xác nhận ca", noidung, maCC: maCc);
        }
        private int ExecuteInsertLichSuSua(int temp_UserEnrollNumber, DateTime temp_TimeStrOld, DateTime temp_TimeStrNew, string temp_Source, int temp_MachineNo, int tempWorkCode, int pCurrentUserID, string pLydo, string pGhiChu, int pCommandType)
        {
            object pWorkCode = new object();

            if (tempWorkCode == -1)
            {
                pWorkCode = DBNull.Value;
            }
            else
            {
                pWorkCode = tempWorkCode;
            }

            return(SqlDataAccessHelper.ExecNoneQueryString(InsertStringBackupThemGioVaoRa()
                                                           , new[] { "@UserEnrollNumber"
                                                                     , "@TimeDate", "@TimeStrOld", "@TimeStrNew"
                                                                     , "@Source", "@MachineNo", "@WorkCode"
                                                                     , "@UserID"
                                                                     , "@Explain", "@Note"
                                                                     //, Execute time lấy giờ của sqlserver
                                                                     , "@CommandType" }
                                                           , new object[] { temp_UserEnrollNumber
                                                                            , temp_TimeStrOld.Date, temp_TimeStrOld, temp_TimeStrNew
                                                                            , temp_Source/* cell 6 "@Source"#1#, temp_MachineNo/*cell "@MachineNo"#1#, pWorkCode // cell 9 [TBD] giá trị này chưa biết nên để là 0"@WorkCode"
                                                                                          * , pCurrentUserID //[TBD] lấy current user id"@UserID"
                                                                                          * , pLydo , pGhiChu
                                                                                          * , pCommandType // [TBD] @CommandType +1 nếu là thêm, 0 nếu là sửa, -1 nếu là xóa
                                                                                          */
                                                           }));
        }
        public static int InsCa(string shiftcode, TimeSpan OnnDuty, TimeSpan OffDuty, int DayCount, int wktime, float wkday,
                                int iOnnInn, int iCutInn, int iOnnOut, int iCutOut, int cptre, int cpsom, int afterot,
                                string mota, string kyhieucc, TimeSpan OnnLun, TimeSpan OffLun, bool tachcadem, int shiftid1, int shiftid2, bool isenable, bool isextended)
        {
            var query = @"	insert into Shifts(ShiftCode, Onduty, Offduty, DayCount, WorkingTime, Workingday, 
												OnTimeIn, CutIn, OnTimeOut, CutOut, LateGrace, EarlyGrace, AfterOT,
												Description, KyHieuCC, OnLunch, OffLunch, 
												IsSplited, ShiftID1, ShiftID2, IsEnabled, IsExtended,

												  IsNightTime,  StartNT,  EndNT,  NoOutWT,  NoInWT,
												  IsLateGrace,  IsEarlyGrace,  IsOT,  OTlevel,  IsSunOT,  SunOTLevel,
												  IsBeforeOT,  BeforeOT,  IsAfterOT,  AfterOTTotal,  AfterOTDeduce,
												  BeforeOTTotal,  BeforeOTDeduce,  LevelOT1,  LevelOT2,  IsOTPoint,  OTPoint,
												  IsHolidayOT,  HolidayOTLevel,  IsLate,  IsEarly,  WKOTLevel,  IsWKOTLevel,  ShowPosition)
 
							values				(@shiftcode, @OnnDuty, @OffDuty, @DayCount, @wktime, @wkday, 
												@iOnnInn, @iCutInn, @iOnnOut, @iCutOut, @cptre, @cpsom, @afterot,
												@mota, @kyhieucc, @OnnLun, @OffLun, @tachcadem, @shiftid1, @shiftid2, @isenable, @isextended,
												0, N'22:00',N'06:00',0,0,
												1,1,0,1,0,1, 
												0 , 30 , 0 , 0 , 0, 
												0 , 0 , 0 , 0 , 0 , 0, 
												1 , 1 , 1 , 1 , 1 , 1, 1) "                                                ;

            return(SqlDataAccessHelper.ExecNoneQueryString(query,
                                                           new string[] { "@shiftcode", "@OnnDuty", "@OffDuty", "@DayCount", "@wktime", "@wkday", "@iOnnInn", "@iCutInn", "@iOnnOut", "@iCutOut", "@cptre", "@cpsom", "@afterot",
                                                                          "@mota", "@kyhieucc", "@OnnLun", "@OffLun", "@tachcadem", "@shiftid1", "@shiftid2", "@isenable", "@isextended" },
                                                           new object[]
            {
                shiftcode, OnnDuty.ToString(@"hh\:mm"), OffDuty.ToString(@"hh\:mm"), DayCount, wktime, wkday, iOnnInn, iCutInn, iOnnOut, iCutOut, cptre, cpsom, afterot,
                mota, kyhieucc, OnnLun.ToString(@"hh\:mm"), OffLun.ToString(@"hh\:mm"),
                tachcadem, (shiftid1 == -1) ? (object)DBNull.Value : shiftid1, (shiftid2 == -1) ? (object)DBNull.Value : shiftid2, isenable, isextended
            }));
        }
示例#11
0
        public static void GhiNhatKyThaotac(string loai, string noidung, int?maCC = null, int?maPhong = null)
        {
            var query =
                @"	INSERT INTO NhatKyThaoTac(Loai, NoiDung, UserID, ThoiDiem, UserEnrollNumber, MaPhong) VALUES (@Loai, @NoiDung, @UserID, GetDate(), @UserEnrollNumber, @MaPhong)";                     //ver4.0.0.1 thêm mã phòng, mã NV

            SqlDataAccessHelper.ExecNoneQueryString(query, new string[] { "@Loai", "@NoiDung", "@UserID", /*ThoiDiem=GetDate,*/ "@UserEnrollNumber", "@MaPhong" },
                                                    new object[] { loai, noidung, XL2.currUserID, maCC == null ? (object)DBNull.Value : maCC, maPhong == null ? (object)DBNull.Value : maPhong });
        }
示例#12
0
        public static int InsKetLuongThang(DateTime Thang, cUserInfo nv)
        {
            //info đã thực hiện log. log do hàm gọi thực hiện
            #region query
            //DANGLAM
            var query = @"
	INSERT INTO KetLuongThang
	(Thang, UserEnrollNumber, HSLCB, HSLCV, HSBHCongThem,
	IDPhong, TenPhong, ViTriPhong, LevelDept, RelationIDDept,
	IDChucVu, ChucVu,
	TongCong, TongLe, TongPhep, TongH_CT_PT, TongQuaDem, TongCongCV, TongBHXH, TongRo, TongPTDT,
	TongPCDem, TongPCTC, TongPCTC_dem, TongPC200, TongPC260, TongPC300, TongPC390, TongPCCus, TongPC,
	LuongCB_TheoCongThucTe, LuongCB_TheoCheDoNghi, LuongCB_TheoCongCV, PCLuongCB, 
	LuongSP_TheoCongThucTe, LuongSP_TheoCheDoNghi, PCLuongSP, 
	LuongDieuChinh, BoiDuongCa3, 
	TamUng, MucDongBHXH, KhauTruBHXH, ThuChiKhac, TienComTrua, ThucLanh  ) 
	VALUES (
	@Thang, @UserEnrollNumber, @HSLCB, @HSLCV, @HSBHCongThem,
	@IDPhong, @TenPhong, @ViTriPhong, @LevelDept, @RelationIDDept,
	@IDChucVu, @ChucVu,
	@TongCong, @TongLe, @TongPhep, @TongH_CT_PT, @TongQuaDem, @TongCongCV, @TongBHXH, @TongRo, @TongPTDT,
	@TongPCDem, @TongPCTC, @TongPCTC_dem, @TongPC200, @TongPC260, @TongPC300, @TongPC390, @TongPCCus, @TongPC,
	@LuongCB_TheoCongThucTe, @LuongCB_TheoCheDoNghi, @LuongCB_TheoCongCV, @PCLuongCB, 
	@LuongSP_TheoCongThucTe, @LuongSP_TheoCheDoNghi, @PCLuongSP, 
	@LuongDieuChinh, @BoiDuongCa3, 
	@TamUng, @MucDongBHXH, @KhauTruBHXH, @ThuChiKhac, @TienComTrua, @ThucLanh  ) "    ;

            #endregion

            return(SqlDataAccessHelper.ExecNoneQueryString(query,
                                                           new string[]                                                        //DANGLAM
            {
                "@Thang", "@UserEnrollNumber", "@HSLCB", "@HSLCV", "@HSBHCongThem",
                "@IDPhong", "@TenPhong", "@ViTriPhong", "@LevelDept", "@RelationIDDept",
                "@IDChucVu", "@ChucVu",
                "@TongCong", "@TongLe", "@TongPhep", "@TongH_CT_PT", "@TongQuaDem", "@TongCongCV", "@TongBHXH", "@TongRo", "@TongPTDT",
                "@TongPCDem", "@TongPCTC", "@TongPCTC_dem", "@TongPC200", "@TongPC260", "@TongPC300", "@TongPC390", "@TongPCCus", "@TongPC",
                "@LuongCB_TheoCongThucTe", "@LuongCB_TheoCheDoNghi", "@LuongCB_TheoCongCV", "@PCLuongCB",
                "@LuongSP_TheoCongThucTe", "@LuongSP_TheoCheDoNghi", "@PCLuongSP",
                "@BoiDuongCa3", "@LuongDieuChinh",
                "@TamUng", "@MucDongBHXH", "@KhauTruBHXH", "@ThuChiKhac", "@TienComTrua", "@ThucLanh"
            },
                                                           new object[]
            {
                Thang, nv.MaCC, nv.HeSo.LuongCB, nv.HeSo.LuongCV, nv.HeSo.BHCongThem_ChoGD_PGD,
                nv.PhongBan.ID, nv.PhongBan.Ten, nv.PhongBan.ViTri, 0 /*leveldept*/, nv.PhongBan.idParent, //info xem lại nếu phòng ban null thì id và tên ntn--> đã giải quyết
                //info id parent nếu null --> đã giải quyết
                nv.IDChucVu, nv.ChucVu,
                nv.ThongKeThang.Cong, nv.ThongKeThang.Le, nv.ThongKeThang.Phep, nv.ThongKeThang.H_CT_PT, nv.ThongKeThang.NgayQuaDem, nv.ThongKeThang.CongCV, nv.ThongKeThang.BHXH, nv.ThongKeThang.NghiRo, nv.ThongKeThang.PTDT,//DANGLAM
                nv.ThongKeThang.PhuCaps._30_dem, nv.ThongKeThang.PhuCaps._50_TC, nv.ThongKeThang.PhuCaps._100_TCC3,
                nv.ThongKeThang.PhuCaps._100_LVNN_Ngay, nv.ThongKeThang.PhuCaps._150_LVNN_Dem, nv.ThongKeThang.PhuCaps._200_LeTet_Ngay, nv.ThongKeThang.PhuCaps._250_LeTet_Dem, nv.ThongKeThang.PhuCaps._Cus, nv.ThongKeThang.PhuCaps._TongPC,
                nv.chiTietLuong.LCB_Theo.CongThucTe, nv.chiTietLuong.LCB_Theo.CheDoNghi, nv.chiTietLuong.LCB_Theo.CongCV, nv.chiTietLuong.LCB_Theo.PhuCap,
                nv.chiTietLuong.LSP_Theo.CongThucTe, nv.chiTietLuong.LSP_Theo.CheDoNghi, nv.chiTietLuong.LSP_Theo.PhuCap,
                nv.chiTietLuong.BoiDuongQuaDem, nv.chiTietLuong.LuongDieuChinh,
                nv.chiTietLuong.KhauTru.TamUng, nv.chiTietLuong.MucDongBHXH, nv.chiTietLuong.KhauTru.BHXH, nv.chiTietLuong.KhauTru.ThuChiKhac, nv.chiTietLuong.TienComTrua, nv.chiTietLuong.ThucLanh,
            }));
        }
        private void btnTaoTK_Click(object sender, EventArgs e)
        {
            if (SqlDataAccessHelper.TestConnection(SqlDataAccessHelper.ConnectionString) == false)
            {
                AutoClosingMessageBox.Show("Mất kết nối với CSDL. Vui lòng thử lại sau.", "Lỗi", 2000);
                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) " +
                                  " 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) ";

            int tempUserID = (int)cbTaikhoanWE.SelectedValue;

            string tempUserAccount = tbTenTaiKhoan.Text;
            string tempPass        = tbPass1.Text;
            string tempPassEncrypt = MyUtility.Mahoa(tempPass);

            try {
                int kq = SqlDataAccessHelper.ExecNoneQueryString(insertString
                                                                 , new[] { "@UserID", "@UserAccount", "@password" }
                                                                 , new object[] { tempUserID, tempUserAccount, tempPassEncrypt });
                if (kq != 0)
                {
                    AutoClosingMessageBox.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("btnTaoTK_Click", exception);
                MessageBox.Show("Mất kết nối đến máy chủ. Vui lòng thử lại.", "Lỗi", MessageBoxButtons.OK);
            }
        }
        public static int PhucHoiGioXoa(int UserEnrollNumber, int MachineNo, DateTime TimeStr)
        {
            var query = @"	update CheckInOut set Xoa = null 
								where		UserEnrollNumber = @UserEnrollNumber and MachineNo = @MachineNo and TimeStr = @TimeStr"                                    ;
            var kq    = SqlDataAccessHelper.ExecNoneQueryString(query,
                                                                new string[] { "@UserEnrollNumber", "@MachineNo", "@TimeStr" },
                                                                new object[] { UserEnrollNumber, MachineNo, TimeStr });

            return(kq);
        }
        private void btnCapNhatVaoCSDL_Click(object sender, EventArgs e)
        {
            IsReload = true;
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            var      table     = dgrdDThuchiExcel.DataSource as DataTable;
            DateTime thang     = m_Thang;
            var      flagError = false;
            var      kq2       = 0;

            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 userfc    = row["UserFullCode"].ToString();
                    var HSLCBTT17 = (float)row["HSLCBTT17"];
                    var HSPCCV    = (float)row["HSPCCV"];
                    var HSPCDH    = (float)row["HSPCDH"];
                    var HSPCTN    = (float)row["HSPCTN"];

                    #endregion
                    var kq = SqlDataAccessHelper.ExecNoneQueryString(@"update UserInfo set HSLCBTT17 = @HSLCBTT17, HSPCCV=@HSPCCV, HSPCDH=@HSPCDH, HSPCTN=@HSPCTN where UserFullCode=@UserFullCode",
                                                                     new string[] { "@HSLCBTT17", "@HSPCCV", "@HSPCDH", "@HSPCTN", "@UserFullCode" }, new object[] { HSLCBTT17, HSPCCV, HSPCDH, HSPCTN, userFullcode });

                    #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í mã nhân viên {0} .\nVui lòng thử lại.", userFullcode), "Lỗi", 3000);
                        break;
                    }
                    kq2 += kq;
                    #endregion
                }
                if (flagError == false)
                {
                    ACMessageBox.Show("Thực hiện thành công.", "Thông báo", 2000);
                }
            }
        }
        public static int PhucHoiGioGoc(int UserEnrollNumber, int CurrMachineNo, DateTime CurrTimeStr, string CurrSource, int OrinMachineNo, DateTime OrinTimeStr, string OrinSource, int IDGioGoc)
        {
            var query = @"	update	CheckInOut
							set		MachineNo = @OrinMachineNo, TimeStr = @OrinTimeStr, Source = @OrinSource, IDGioGoc = null
							where UserEnrollNumber = @UserEnrollNumber and MachineNo = @CurrMachineNo and TimeStr = @CurrTimeStr and Source = @CurrSource"                            ;
            var kq    = SqlDataAccessHelper.ExecNoneQueryString(query,
                                                                new string[] { "@UserEnrollNumber", "@CurrMachineNo", "@CurrTimeStr", "@CurrSource", "@OrinMachineNo", "@OrinTimeStr", "@OrinSource", "@IDGioGoc" },
                                                                new object[] { UserEnrollNumber, CurrMachineNo, CurrTimeStr, CurrSource, OrinMachineNo, OrinTimeStr, OrinSource, IDGioGoc });

            return(kq);
        }
        public static int DeleteTinhPCDB(int macc, DateTime ngay)
        {
            var query = @"	delete from	XacNhanPC where Ngay = @Ngay and UserEnrollNumber = @UserEnrollNumber";
            var n     = SqlDataAccessHelper.ExecNoneQueryString(query, new string[] { "@Ngay", "@UserEnrollNumber" }, new object[] { ngay, macc });

            string noidung = "Xác nhận [{0}] tính phụ cấp làm việc ngày nghỉ, trực lễ, tết ngày [{1}] cho NV có mã chấm công [{2}]";

            noidung = string.Format(noidung, "HUỶ", ngay.ToString("dd/MM/yyyy"), macc.ToString());
            DAO.GhiNhatKyThaotac("Xác nhận phụ cấp làm việc ngày nghỉ, trực lễ, tết", noidung, maCC: macc);
            return(n);
        }
示例#18
0
        public static bool HuyKetLuongThang(DateTime ngaydauthang)
        {
            var query = @" delete from ThongSoKetLuongThang where Thang=@Thang 
						   delete from KetLuongThang where Thang=@Thang "                        ;
            var kq    = SqlDataAccessHelper.ExecNoneQueryString(query, new string[] { "@Thang" }, new object[] { ngaydauthang });

            DAO5.GhiNhatKyThaotac("Huỷ kết lương tháng", string.Format("Huỷ kết lương tháng [{0}]", ngaydauthang.ToString("MM/yyyy")));
            if (kq == 0)
            {
                return(false);
            }
            return(true);
        }
        public static bool SuaGioChoNV(int UserEnrollNumber, DateTime GioCuu, DateTime GioMoi, string SourceOld, string SourceNew, int MachineNoOld, int MachineNoNew, int idgiogoc, string Lydo, string Ghichu)
        {
            var kq = 0;

            var query = String.Empty;

            if (idgiogoc != -1)
            {
                query = @"   update  CheckInOut 
								set     TimeStr = @TimeStrNew, TimeDate = @TimeDateNew, Source = @SourceNew, MachineNo = @MachineNoNew
								where   UserEnrollNumber = @UserEnrollNumber 
										and TimeStr = @TimeStrOld
										and (MachineNo % 2 = @MachineNoOld % 2) "                                        ;
            }
            else
            {
                query = @"	declare @ID int
								insert into GioGoc (TimeStr, MachineNo, Source) 
								values				(@TimeStrOld, @MachineNoOld, @SourceOld)

								select @ID = @@Identity

								update  CheckInOut 
								set     TimeStr = @TimeStrNew, TimeDate = @TimeDateNew, Source = @SourceNew, MachineNo = @MachineNoNew, IDGioGoc = @ID
								where   UserEnrollNumber = @UserEnrollNumber 
										and TimeStr = @TimeStrOld
										and (MachineNo % 2 = @MachineNoOld % 2)								"                                                                    ;
            }
            kq = SqlDataAccessHelper.ExecNoneQueryString(query
                                                         , new string[] { "@UserEnrollNumber", "@TimeStrOld", "@TimeStrNew", "@TimeDateNew"
                                                                          , "@SourceOld", "@SourceNew", "@MachineNoOld", "@MachineNoNew"
                                                                          , "@Explain", "@Note", "@CommandType" }
                                                         , new object[] { UserEnrollNumber, GioCuu, GioMoi, GioMoi.Date
                                                                          , SourceOld, SourceNew, MachineNoOld, MachineNoNew
                                                                          , Lydo, Ghichu, 0 });
            string kieugiogoc = MachineNoOld % 2 == 1 ? "VÀO" : "RA";
            string kieugiomoi = MachineNoNew % 2 == 1 ? "VÀO" : "RA";
            string noidung    =
                @"Sửa giờ [{0}] [{2}] sang giờ [{10}] [{3}] của NV có mã chấm công [{1}], nguồn gốc [{4}], nguồn mới [{5}], máy gốc [{6}], máy mới [{7}], lý do [{8}], ghi chú [{9}]";

            noidung = string.Format(noidung, kieugiogoc, UserEnrollNumber, GioCuu.ToString("H:mm:ss dd/MM/yyyy"), GioMoi.ToString("H:mm:ss dd/MM/yyyy"), SourceOld, SourceNew, MachineNoOld,
                                    MachineNoNew, Lydo, Ghichu, kieugiomoi);
            DAO.GhiNhatKyThaotac("Sửa giờ chấm công", noidung, maCC: UserEnrollNumber);
            if (kq == 0)
            {
                return(false);
            }
            return(true);
        }
        public static int CheckTinhPC50(int macc, DateTime ngay, bool giatri)
        {
            var query = @"	update		XacNhanPC50 set TinhPC50 = @giatri 
							where		Ngay = @Ngay and UserEnrollNumber = @UserEnrollNumber 
							if @@ROWCOUNT=0 
							insert into XacNhanPC50	(UserEnrollNumber, Ngay,TinhPC50)
							values (@UserEnrollNumber, @Ngay,@giatri)"                            ;
            var n     = SqlDataAccessHelper.ExecNoneQueryString(query, new string[] { "@giatri", "@Ngay", "@UserEnrollNumber" },
                                                                new object[] { giatri, ngay, macc });
            string noidung = "Xác nhận [{0}] tính phụ cấp tăng cường ngày [{1}] cho NV có mã chấm công [{2}]";

            noidung = string.Format(noidung, giatri ? "CÓ" : "KHÔNG", ngay.ToString("dd/MM/yyyy"), macc);
            DAO.GhiNhatKyThaotac("Xác nhận phụ cấp tăng cường", noidung, maCC: macc);
            return(n);
        }
示例#21
0
        private void btnXoaKBVang_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", "xoá khai báo vắng", "xem công"),
                                Resources.Caption_ThongBao, MessageBoxButtons.OK);
                return;
            }

            #endregion

            DataGridView currDataGrid = XacDinhDataGridViewDangChon();

            if (MessageBox.Show("Xoá các khai báo vắng của nhân viên với các ngày được chọn?", Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No)
            {
                return;
            }
            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;
                }

                string query = " delete from Absent where UserEnrollNumber = @UserEnrollNumber and TimeDate = @TimeDate ";
                foreach (dynamic obj in arrRecord)
                {
                    int kq = SqlDataAccessHelper.ExecNoneQueryString(
                        query,
                        new string[] { "@UserEnrollNumber", "@TimeDate" },
                        new object[] { obj.MaCC, obj.NgayVang });
                    DAO.GhiNhatKyThaotac("Xoá các khai báo vắng trong ngày",
                                         string.Format("Xoá tất cả khai báo vắng của NV có mã chấm công [{0}] trong ngày [{1}]", (int)obj.MaCC, ((DateTime)obj.NgayVang).ToString("dd/MM/yyyy")), maCC: (int)obj.MaCC);
                }
                btnXem.PerformClick();
            }
        }
        public static int DelKetCongCa_Ngay(DateTime ngaydauthang, DateTime ngaycuoithang, List <int> ds_macc)
        {
            //info log do kết công bộ phận thực hiện ( trước khi kết thì huỷ kết công)
            var query = @" 
delete from KetCongCa where Ngay >= @NgayDauThang and Ngay <= @NgayCuoiThang and UserEnrollNumber = @UserEnrollNumber
delete from KetCongNgay where Ngay >= @NgayDauThang and Ngay <= @NgayCuoiThang and UserEnrollNumber = @UserEnrollNumber ";
            int kq    = 1;

            foreach (int UserEnrollNumber in ds_macc)
            {
                int result = SqlDataAccessHelper.ExecNoneQueryString(query,
                                                                     new string[] { "@NgayDauThang", "@NgayCuoiThang", "@UserEnrollNumber" },
                                                                     new object[] { ngaydauthang, ngaycuoithang, UserEnrollNumber });
            }
            return(kq);
        }
示例#23
0
        private void btnXoaKBVang_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            #region chưa chọn nhân viên thì báo
            var listMaCC_NV = (from DataGridViewRow dataGridViewRow in dgrdTongHop.SelectedRows
                               let row = (DataRowView)dataGridViewRow.DataBoundItem
                                         select(int) row["UserEnrollNumber"]).ToList();
            if (listMaCC_NV.Count == 0)
            {
                ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000);
                return;
            }

            #endregion

            if (MessageBox.Show(string.Format("Xoá tất cả khai báo vắng ngày {0} của các nhân viên được chọn?", dtpNgay.Value.Date.ToString("dddd dd/MM/yyyy")),
                                Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No)
            {
                return;
            }
            IEnumerable <dynamic> templist = (from macc in listMaCC_NV
                                              select new { MaCC = macc, NgayVang = dtpNgay.Value.Date });
            string query = " delete from Absent where UserEnrollNumber = @UserEnrollNumber and TimeDate = @TimeDate ";
            try
            {
                foreach (dynamic obj in templist)
                {
                    SqlDataAccessHelper.ExecNoneQueryString(
                        query,
                        new string[] { "@UserEnrollNumber", "@TimeDate" },
                        new object[] { obj.MaCC, obj.NgayVang });
                    DAO.GhiNhatKyThaotac("Xoá các khai báo vắng trong ngày",
                                         string.Format("Xoá tất cả khai báo vắng của NV có mã chấm công [{0}] trong ngày [{1}]", (int)obj.MaCC, ((DateTime)obj.NgayVang).ToString("dd/MM/yyyy")), maCC: (int)obj.MaCC);
                }
            }
            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);
            }
            dtpNgay_ValueChanged(null, null);
        }
        private void btnXoaTK_Click(object sender, EventArgs e)
        {
            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) {
                MessageBox.Show("Không xóa tài khoản được.\nLỗi:" + ex.ToString(), "Lỗi", MessageBoxButtons.OK);
            }
        }
 private int ExecuteUpdateGio(int pUserEnrollNumber, DateTime pTimeStrOld, DateTime temp_TimeStrNew)
 {
     return(SqlDataAccessHelper.ExecNoneQueryString(
                UpdateStringSuaGioVaoRa()
                , new[] {
         "@UserEnrollNumber"
         , "@TimeStr_Old"
         , "@TimeDate_New"
         , "@TimeStr_New"
     }
                , new object[] {
         pUserEnrollNumber
         , pTimeStrOld                                         //[TBD]@TimeStr_Old
         , temp_TimeStrNew.Date                                //[TBD]@TimeDate_New
         , temp_TimeStrNew                                     // [TBD]@TimeStr_New
     }));
 }
        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) ";

            int tempUserID = (int)cbTaikhoanWE.SelectedValue;

            string tempUserAccount = cbTaikhoanWE.SelectedItem.ToString();
            string tempPass        = tbPass1.Text;
            string tempPassEncrypt = MyUtility.Mahoa(tempPass);

            try {
                int kq = SqlDataAccessHelper.ExecNoneQueryString(insertString
                                                                 , new[] { "@UserID", "@UserAccount", "@password" }
                                                                 , new object[] { tempUserID, tempUserAccount, tempPassEncrypt }, CanLog: false);
                if (kq != 0)
                {
                    MessageBox.Show("Thêm tài khoản thành công.", "Thông báo", MessageBoxButtons.OK);
                }
                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);
            }
        }
        public static int UpdIns_TinhPCDB(int macc, DateTime ngay, int loai, int pcngay, int pcdem, string noidungLog)
        {
            var query = @"	
update		XacNhanPC set LoaiPC = @loai, Duyet = 1 
where		Ngay = @Ngay and UserEnrollNumber = @UserEnrollNumber 
if @@ROWCOUNT=0 
insert into XacNhanPC	(UserEnrollNumber, Ngay,LoaiPC,PCNgay, PCDem,Duyet)
values (@UserEnrollNumber, @Ngay,@loai,@PCNgay, @PCDem,1)";
            var n     = SqlDataAccessHelper.ExecNoneQueryString(query, new string[] { "@loai", "@Ngay", "@UserEnrollNumber", "@PCNgay", "@PCDem" },
                                                                new object[] { loai, ngay, macc, pcngay, pcdem });

            string noidung = "Xác nhận [{0}] tính phụ cấp {1} ngày [{2}] cho NV có mã chấm công [{3}]";

            noidung = string.Format(noidung, "CÓ", noidungLog, ngay.ToString("dd/MM/yyyy"), macc);
            DAO.GhiNhatKyThaotac("Xác nhận phụ cấp làm việc ngày nghỉ, trực lễ, tết", noidung, maCC: macc);

            return(n);
        }
        private void btnXoaTK_Click(object sender, EventArgs e)
        {
            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);
            }
        }
        public static int UpdCa(int shiftid, string shiftcode, TimeSpan OnnDuty, TimeSpan OffDuty, int DayCount, int wktime, float wkday, int iOnnInn, int iCutInn, int iOnnOut, int iCutOut, int cptre, int cpsom, int afterot, string mota, string kyhieucc, TimeSpan OnnLun, TimeSpan OffLun, bool tachcadem, int shiftid1, int shiftid2, bool isenable, bool isextended)
        {
            var query = @"	update Shifts
							set ShiftCode= @shiftcode   , Onduty=  @OnnDuty  , Offduty=  @OffDuty  , DayCount= @DayCount , WorkingTime=  @wktime  , Workingday=  @wkday  , 
							OnTimeIn= @iOnnInn  , CutIn=  @iCutInn  , OnTimeOut= @iOnnOut , CutOut= @iCutOut  , LateGrace=  @cptre  , EarlyGrace=  @cpsom  , AfterOT=  @afterot ,
							Description=  @mota  , KyHieuCC=  @kyhieucc  , OnLunch=  @OnnLun , OffLunch= @OffLun  , 
							IsSplited=  @tachcadem  , ShiftID1=  @shiftid1  , ShiftID2=  @shiftid2  , IsEnabled=@isenable   , IsExtended= @isextended 
							where ShiftID = @ShiftID"                            ;

            return(SqlDataAccessHelper.ExecNoneQueryString(query,
                                                           new string[] { "@ShiftID", "@shiftcode", "@OnnDuty", "@OffDuty", "@DayCount", "@wktime", "@wkday", "@iOnnInn", "@iCutInn", "@iOnnOut", "@iCutOut", "@cptre", "@cpsom", "@afterot",
                                                                          "@mota", "@kyhieucc", "@OnnLun", "@OffLun", "@tachcadem", "@shiftid1", "@shiftid2", "@isenable", "@isextended" },
                                                           new object[]
            {
                shiftid, shiftcode, OnnDuty.ToString(@"hh\:mm"), OffDuty.ToString(@"hh\:mm"), DayCount, wktime, wkday, iOnnInn, iCutInn, iOnnOut, iCutOut, cptre, cpsom, afterot,
                mota, kyhieucc, OnnLun.ToString(@"hh\:mm"), OffLun.ToString(@"hh\:mm"),
                tachcadem, (shiftid1 == -1) ? (object)DBNull.Value : shiftid1, (shiftid2 == -1) ? (object)DBNull.Value : shiftid2, isenable, isextended
            }));
        }
        public static bool XoaNgayVangNV(List <DataRowView> arrRecord)
        {
            var query      = @"DELETE FROM Absent WHERE ID = {0}";
            var formatStr2 = "Xóa khai báo vắng [{0}] [{1}] ngày ngày [{2}] của NV có mã chấm công [{3}]";

            //query = String.Format(query, String.Join(" or ID = ", arrRecord));
            foreach (var rowView in arrRecord)
            {
                var id         = (int)rowView["ID"];
                var absentCode = rowView["AbsentCode"].ToString();
                var wkday      = (float)rowView["Workingday"];
                var ngay       = (DateTime)rowView["TimeDate"];
                var macc       = (int)rowView["UserEnrollNumber"];
                SqlDataAccessHelper.ExecNoneQueryString(string.Format(query, id), null, null);
                DAO.GhiNhatKyThaotac("Xóa khai báo vắng", noidung: string.Format(formatStr2, absentCode, wkday.ToString("0.0"), ngay.ToString("H:mm:ss dd/MM/yyyy"), macc), maCC: macc);
            }

            return(true);
        }