예제 #1
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);
        }
예제 #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 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());
            DAO5.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);
        }
예제 #4
0
        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);
            DAO5.GhiNhatKyThaotac("Sửa giờ chấm công", noidung, maCC: UserEnrollNumber);
            if (kq == 0)
            {
                return(false);
            }
            return(true);
        }
예제 #5
0
        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);
            DAO5.GhiNhatKyThaotac("Xác nhận phụ cấp tăng cường", noidung, maCC: macc);
            return(n);
        }
예제 #6
0
        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);
            DAO5.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);
        }
예제 #7
0
        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);
                DAO5.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);
        }
예제 #8
0
        public static int UpdIns_ThuChiNVCongNhat(DateTime thang, int userEnrollNumber, int idPhong, string tenPhong, DateTime ngayBd, DateTime ngayKt, int donGiaLuong, double tamUng, bool LaNVChinhThuc)
        {
            string noidung = "Lưu ngày làm việc công nhật của NV có mã chấm công [{0}] bắt đầu làm từ ngày [{1}] đến hết ngày [{2}], loại NV [{3}]";

            noidung = string.Format(noidung, userEnrollNumber, ngayBd.ToString("dd/MM/yyyy"), ngayKt.ToString("dd/MM/yyyy"), LaNVChinhThuc ? "vừa tính lương chính thức vừa tính lương công nhật" : "làm việc công nhật");
            DAO5.GhiNhatKyThaotac("Lưu thông tin làm việc công nhật", noidung, maCC: userEnrollNumber);
            var query = @"	
update DSNVChiCongNhatThang 
set IDPhong=@IDPhong, TenPhong=@TenPhong, NgayBatDau=@NgayBatDau, NgayKetThuc=@NgayKetThuc,DonGiaLuong= @DonGiaLuong, TamUng = @TamUng, NVChinhThuc = @NVChinhThuc
where UserEnrollNumber = @UserEnrollNumber and Thang=@Thang

if @@RowCount = 0
insert into DSNVChiCongNhatThang(Thang, UserEnrollNumber, IDPhong, TenPhong, NgayBatDau, NgayKetThuc, SoNgayCong, DonGiaLuong, TamUng, NVChinhThuc)
values (@Thang,  @UserEnrollNumber,  @IDPhong,  @TenPhong,  @NgayBatDau,  @NgayKetThuc,  @SoNgayCong,  @DonGiaLuong,  @TamUng, @NVChinhThuc) ";

            return(SqlDataAccessHelper.ExecNoneQueryString(query,
                                                           new string[] { "@Thang", "@UserEnrollNumber", "@IDPhong", "@TenPhong", "@NgayBatDau", "@NgayKetThuc", "@SoNgayCong", "@DonGiaLuong", "@TamUng", "@NVChinhThuc" },
                                                           new object[] { thang, userEnrollNumber, idPhong, tenPhong, ngayBd, ngayKt, 0, donGiaLuong, tamUng, LaNVChinhThuc }));
        }
예제 #9
0
        public static bool ThemGioChoNV(int UserEnrollNumber, DateTime GioMoi, string pKieuGioMoi, int MachineNoNew, string pLydo, string pGhichu)
        {
            var          OriginTypeNew = pKieuGioMoi;
            const string query         = @"   INSERT INTO CheckInOut (UserEnrollNumber, TimeStr, TimeDate, Source, MachineNo, OriginType, WorkCode, Them)
								VALUES     (@UserEnrollNumber, @TimeStrNew, @TimeDateNew, @SourceNew, @MachineNoNew, @OriginTypeNew, 0, 1) "                                ;

            int kq = SqlDataAccessHelper.ExecNoneQueryString(query
                                                             , new string[] { "@UserEnrollNumber", "@TimeStrNew", "@TimeDateNew", "@SourceNew", "@MachineNoNew", "@OriginTypeNew"
                                                                              , "@Explain", "@Note", "@CommandType" }
                                                             , new object[] { UserEnrollNumber, GioMoi, GioMoi.Date, "PC", MachineNoNew, OriginTypeNew
                                                                              , pLydo, pGhichu, 1 });
            string noidung = "Thêm giờ [{0}] cho NV có mã chấm công [{1}] : giờ [{2}], lý do [{3}], ghi chú [{4}]";

            noidung = string.Format(noidung, ((pKieuGioMoi == "I") ? "VÀO" : "RA"), UserEnrollNumber, GioMoi.ToString("H:mm:ss dd/MM/yyyy"), pLydo, pGhichu);
            DAO5.GhiNhatKyThaotac("Thêm giờ chấm công", noidung, maCC: UserEnrollNumber);
            if (kq == 0)
            {
                return(false);
            }
            return(true);
        }
예제 #10
0
        public static bool XoaGioChoNV(int pUserEnrollNumber, DateTime pGioCu, string pSourceOld, int pMachineNoOld, string pLydo, string pGhichu)
        {
            const string query = @"   UPDATE  CheckInOut 
									SET Xoa = 1
								WHERE   UserEnrollNumber = @UserEnrollNumber
										and TimeStr = @TimeStrOld
										and (MachineNo % 2 = @MachineNoOld % 2) "                                        ;
            int          kq    = SqlDataAccessHelper.ExecNoneQueryString(query
                                                                         , new string[] { "@UserEnrollNumber", "@TimeStrOld", "@SourceOld", "@MachineNoOld",
                                                                                          "@Explain", "@Note", "@CommandType" }
                                                                         , new object[] { pUserEnrollNumber, pGioCu, pSourceOld, pMachineNoOld,
                                                                                          pLydo, pGhichu, -1 });

            string noidung = "Xóa giờ [{0}] của NV có mã chấm công [{1}] : giờ [{2}], máy số [{3}], nguồn [{4}], lý do [{5}], ghi chú [{6}]";

            noidung = string.Format(noidung, ((pMachineNoOld % 2 == 1) ? "VÀO" : "RA"), pUserEnrollNumber, pGioCu.ToString("H:mm:ss dd/MM/yyyy"), pMachineNoOld, pSourceOld, pLydo, pGhichu);
            DAO5.GhiNhatKyThaotac("Xóa giờ chấm công", noidung, maCC: pUserEnrollNumber);

            if (kq == 0)
            {
                return(false);
            }
            return(true);
        }