public void TruyenViewBagPhongBan(int?month, int?year, int?MaPB) { ViewBag.month = month; ViewBag.year1 = year; if (MaPB == 12) { ViewBag.TenPB = "Tất cả"; } else { LuongThang luongThang = new LuongThang(); if (year != null && month != null) { luongThang = db.LuongThangs.Where(x => x.ThangNam.Month == month && x.ThangNam.Year == year).FirstOrDefault(); ViewBag.TenPB = luongThang.LuongCoBan.NhanVien.PhongBan.TenPB.ToString(); } else if (year != null && month == null) { luongThang = db.LuongThangs.Where(x => x.ThangNam.Year == year).FirstOrDefault(); ViewBag.TenPB = luongThang.LuongCoBan.NhanVien.PhongBan.TenPB.ToString(); } else if (year == null && month != null) { luongThang = db.LuongThangs.Where(x => x.ThangNam.Month == month).FirstOrDefault(); ViewBag.TenPB = luongThang.LuongCoBan.NhanVien.PhongBan.TenPB.ToString(); } luongThang = db.LuongThangs.FirstOrDefault(); ViewBag.TenPB = luongThang.LuongCoBan.NhanVien.PhongBan.TenPB.ToString(); } }
public string Remove(LuongThang obj) { myData.LuongThangs.Remove(obj); myData.SaveChanges(); return(null); }
public static LuongThangDTO ToDTO(this LuongThang luongThang, string hinhAnh, string hoTenNhanVien, string tenPhongBan) { return(new LuongThangDTO() { LuongThangId = luongThang.LuongThangId, LuongCoBan = luongThang.LuongCoBan, HSChucVu = luongThang.HSChucVu, HSCongViec = luongThang.HSCongViec, SoNgayLam = luongThang.SoNgayLam, SoNgayNghiCoPhep = luongThang.SoNgayNghiCoPhep, SoNgayNghiKhongPhep = luongThang.SoNgayNghiKhongPhep, SoNgayNghiOm = luongThang.SoNgayNghiOm, PhuCapNhanVien = luongThang.PhuCapNhanVien, ThuongLe = luongThang.ThuongLe, PhuCapChucVu = luongThang.PhuCapChucVu, PhuCapThamNien = luongThang.PhuCapThamNien, TienDuAn = luongThang.TienDuAn, NgayTinhLuong = luongThang.NgayTinhLuong, LuongThucLanh = luongThang.LuongThucLanh, NhanVienId = luongThang.NhanVienId, HinhAnh = hinhAnh, HoTenNhanVien = hoTenNhanVien, TenPhongBan = tenPhongBan }); }
public string Update(LuongThang obj) { //Kiểm tra quan hệ if (myData.NhanViens.ToList().Find(x => x.NhanVienId == obj.NhanVienId) == null) { return("Nhân viên id chưa tồn tại vui lòng khởi tạo trước khi sử dụng làm khóa ngoại"); } //Sửa nếu không có lỗi myData.LuongThangs.Update(obj); myData.SaveChanges(); return(null); }
//Xem chi tiết lương public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } LuongThang luongThang = db.LuongThangs.Find(id); if (luongThang == null) { return(HttpNotFound()); } return(View(luongThang)); }
public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } LuongThang luongThang = db.LuongThangs.Find(id); if (luongThang == null) { return(HttpNotFound()); } TempData["MaNV"] = luongThang.LuongCoBan.MaNhanVien; return(View(luongThang)); }
public string Add(LuongThang obj) { //Kiểm tra khóa chính if (myData.LuongThangs.ToList().Find(x => x.LuongThangId == obj.LuongThangId) != null) { return("Lương tháng id đã tồn tại"); } //Kiểm tra quan hệ if (myData.NhanViens.ToList().Find(x => x.NhanVienId == obj.NhanVienId) == null) { return("Nhân viên id chưa tồn tại vui lòng khởi tạo trước khi sử dụng làm khóa ngoại"); } //Thêm nếu không có lỗi myData.LuongThangs.Add(obj); myData.SaveChanges(); return(null); }
//in ra chi tiết lương tháng của nhân viên>>>>>>>>>>>>>>>>> //<<<<<<<<<<<<<<<<in ra danh sách lương tháng của nhiều nhân viên public ActionResult PrintLuongTheoPhongBan(int?month, int?year, int?MaPB) { if (MaPB == 12) { return(new ActionAsPdf("DSLuongTheoPhongBan", new { month, year, MaPB }) { FileName = "LuongTheoPhongBan_Thang_" + month + "_Nam_" + year + "_PhongBan_TatCa.pdf" }); } else { LuongThang luong = new LuongThang(); luong = db.LuongThangs.FirstOrDefault(); string tenPB = luong.LuongCoBan.NhanVien.PhongBan.TenPB; return(new ActionAsPdf("DSLuongTheoPhongBan", new { month, year, MaPB }) { FileName = "LuongTheoPhongBan_Thang_" + month + "_Nam_" + year + "_PhongBan_" + tenPB + ".pdf" }); } }
public void AutoAdd() { //Ngày đầu tiên của tháng mới bắt đầu tính lương if (DateTime.Now.IsFirstDayOfMonth() != false) { return; } foreach (NhanVienCongViec nhanVienCongViec in myData.NhanVienCongViecs.ToList()) { bool add = true; //Không tính lương cho nhân viến quá 2 lần foreach (LuongThang lt in myData.LuongThangs.ToList()) { if (lt.NhanVienId == nhanVienCongViec.NhanVienId && ((DateTime)lt.NgayTinhLuong).EqualTo(DateTime.Now.FirstDayOfMonth()) == true) { add = false; break; } } if (add == false) { break; } //Chỉ tính lương cho nhân viên có //ngày bắt đầu trước hôm nay và //ngày kết thúc băng null hoặc sau ngày đầu tiên của tháng trước if (((DateTime)nhanVienCongViec.NgayBatDau).Before(DateTime.Now) && (nhanVienCongViec.NgayKetThuc == null || ((DateTime)nhanVienCongViec.NgayKetThuc).After(DateTime.Now.FirstDayOfPreviousMonth()))) { LuongThang luongThang = new LuongThang(); //Tao id int max = 0; List <LuongThang> luongThangs = myData.LuongThangs.ToList(); foreach (LuongThang lt in luongThangs) { if (int.Parse(lt.LuongThangId) > max) { max = int.Parse(lt.LuongThangId); } } luongThang.LuongThangId = "" + (max + 1); luongThang.NhanVienId = nhanVienCongViec.NhanVienId; luongThang.LuongCoBan = myData.HopDongs.ToList().Find(x => x.NhanVienId == luongThang.NhanVienId && x.TrangThai == 1) != null? myData.HopDongs.ToList().Find(x => x.NhanVienId == luongThang.NhanVienId && x.TrangThai == 1).LuongCanBan : "0"; string chucVuId = myData.NhanViens.ToList().Find(x => x.NhanVienId == luongThang.NhanVienId).ChucVuId; luongThang.HSChucVu = myData.ChucVus.ToList().Find(x => x.ChucVuId == chucVuId).HSChucVu; luongThang.HSCongViec = nhanVienCongViec.HSCongViec; DateTime ngayBatDauLamCuaThangTruoc = ((DateTime)nhanVienCongViec.NgayBatDau).After(DateTime.Now.FirstDayOfPreviousMonth()) ? (DateTime)nhanVienCongViec.NgayBatDau : DateTime.Now.FirstDayOfPreviousMonth(); DateTime ngayKetThucLamCuaThangTruoc = nhanVienCongViec.NgayKetThuc == null?DateTime.Now.FirstDayOfPreviousMonth().LastDayOfMonth() : (DateTime)nhanVienCongViec.NgayKetThuc; luongThang.SoNgayLam = 0; luongThang.SoNgayNghiCoPhep = 0; luongThang.SoNgayNghiKhongPhep = 0; luongThang.SoNgayNghiOm = 0; luongThang.ThuongLe = "0"; foreach (BangChamCong bangChamCong in myData.BangChamCongs.ToList()) { //Đếm số ngày làm việc của //nhân viên đang xét và //ngày làm việc phải nằm trong đoạn [ngayBatDauLamCuaThangTruoc, ngayKetThucLamCuaThangTruoc] //nếu có trạng thái là tt1 => soNgayLam //nếu có trạng thái là tt2 => SoNgayNghiCoPhep //nếu có trạng thái là tt3 => SoNgayNghiKhongPhep //nếu có trạng thái là tt4 => SoNgayNghiOm //nếu có ngày làm trùng vs ngày lễ => có tiền thưởng if (luongThang.NhanVienId == bangChamCong.NhanVienId && ( bangChamCong.NgayLamViec.EqualTo(ngayBatDauLamCuaThangTruoc) || (bangChamCong.NgayLamViec.After(ngayBatDauLamCuaThangTruoc) && bangChamCong.NgayLamViec.Before(ngayKetThucLamCuaThangTruoc)) || bangChamCong.NgayLamViec.EqualTo(ngayKetThucLamCuaThangTruoc))) { //Tính số ngày làm, nghỉ if (bangChamCong.TrangThaiChamCongId == "tt1") { luongThang.SoNgayLam++; } else { if (bangChamCong.TrangThaiChamCongId == "tt2") { luongThang.SoNgayNghiCoPhep++; } else { if (bangChamCong.TrangThaiChamCongId == "tt3") { luongThang.SoNgayNghiKhongPhep++; } else { if (bangChamCong.TrangThaiChamCongId == "tt4") { luongThang.SoNgayNghiOm++; } } } } //Tính tiền thưởng foreach (ThuongLe thuongLe in myData.ThuongLes.ToList()) { if (((DateTime)thuongLe.NgayLe).EqualTo(bangChamCong.NgayLamViec)) { luongThang.ThuongLe = "" + (long.Parse(luongThang.ThuongLe) + long.Parse(thuongLe.TienThuongLe)); } } } } luongThang.PhuCapNhanVien = "" + 0; foreach (NhanVienPhuCap nhanVienPhuCap in myData.NhanVienPhuCaps.ToList()) { if (nhanVienPhuCap.NhanVienId == luongThang.NhanVienId) { PhuCap phuCap = myData.PhuCaps.ToList().Find(x => x.PhuCapId == nhanVienPhuCap.PhuCapId); luongThang.PhuCapNhanVien = "" + (long.Parse(luongThang.PhuCapNhanVien) + long.Parse(phuCap.TienPhuCap)); } } luongThang.PhuCapChucVu = myData.ChucVus.ToList().Find(x => x.ChucVuId == myData.NhanViens.ToList() .Find(y => y.NhanVienId == luongThang.NhanVienId).ChucVuId).TienPhuCapChucVu; //Tính hệ số thâm niên DateTime ngayDauTienDiLam = DateTime.Now; foreach (NhanVienCongViec nvcv in myData.NhanVienCongViecs.ToList()) { if (luongThang.NhanVienId == nvcv.NhanVienId) { if (ngayDauTienDiLam.After((DateTime)nvcv.NgayBatDau)) { ngayDauTienDiLam = (DateTime)nvcv.NgayBatDau; } } } luongThang.PhuCapThamNien = ((int)(DateTime.Now - ngayDauTienDiLam).Days / 365) * 0.1; luongThang.TienDuAn = "" + 0; foreach (NhanVienDuAn nhanVienDuAn in myData.NhanVienDuAns.ToList()) { if (nhanVienDuAn.NhanVienId == luongThang.NhanVienId) { DuAn duAn = myData.DuAns.ToList().Find(x => x.DuAnId == nhanVienDuAn.DuAnId); if (((DateTime)duAn.NgayKetThuc).After(DateTime.Now.FirstDayOfPreviousMonth()) && ((DateTime)duAn.NgayKetThuc).Before(DateTime.Now.FirstDayOfPreviousMonth().LastDayOfMonth())) { luongThang.TienDuAn = "" + (long.Parse(luongThang.TienDuAn) + (nhanVienDuAn.PhanTramCV * long.Parse(duAn.ThuongDuAn) / 100)); } } } luongThang.NgayTinhLuong = DateTime.Now.FirstDayOfMonth(); long luongMotNgay = long.Parse(luongThang.LuongCoBan) * (long)(1.0 + (double)luongThang.HSChucVu + (double)luongThang.HSCongViec + (double)luongThang.PhuCapThamNien) / 26; luongThang.LuongThucLanh = "" + ((long)(luongMotNgay * (int)luongThang.SoNgayLam) + long.Parse(luongThang.ThuongLe) + long.Parse(luongThang.TienDuAn) + long.Parse(luongThang.PhuCapNhanVien)); //Lưu vào database myData.LuongThangs.Add(luongThang); myData.SaveChanges(); } } }
public ActionResult InBangLuongThang(int?id) { LuongThang luongThang = db.LuongThangs.Find(id); return(View(luongThang)); }
protected void Application_Start() { DateTime B = DateTime.Now; DateTime dayOfW = DateTime.Today; JobManager.Initialize(new MyRegistry()); QLNhanSuEntities ql = new QLNhanSuEntities(); if (dayOfW.DayOfWeek != DayOfWeek.Saturday && dayOfW.DayOfWeek != DayOfWeek.Sunday) { var chamcong = ql.ChamCongs.Where(s => s.Ngay == B.Date).FirstOrDefault(); if (chamcong == null) { var nhanvien = ql.NhanViens.Where(s => s.TrangThai == true && s.MaNhanVien != 1001); foreach (var nv in nhanvien) { //ChamCong cham = new ChamCong(); //cham.MaNhanVien = nv.MaNhanVien; //cham.Ngay = B; //ql.ChamCongs.Add(cham); ChamCong cham = new ChamCong(); cham.MaNhanVien = nv.MaNhanVien; cham.Ngay = B; ql.ChamCongs.Add(cham); } ql.SaveChanges(); } } int month, year; if (B.Month == 1) { month = 12; year = B.Year - 1; } else { month = B.Month - 1; year = B.Year; } var day = DateTime.DaysInMonth(year, month); DateTime ngayCuoiThang = new DateTime(year, month, day); var luong = ql.LuongThangs.Where(s => s.ThangNam.Month.ToString() == month.ToString() && s.ThangNam.Year.ToString() == year.ToString()).FirstOrDefault(); if (luong == null) { var nhanvien = ql.NhanViens.Where(s => s.TrangThai == true && s.MaNhanVien != 1001); foreach (var nv in nhanvien) { int gtthuong = 0; int gtphat = 0; int giolam = 0; int giotangca = 0; var thuong = ql.Ct_Thuong.Where(s => s.NgaySua.Month == month && s.NgaySua.Year == year && s.MaNhanVien == nv.MaNhanVien); foreach (var t in thuong) { var giatrithuong = ql.LoaiThuongs.Where(s => s.MaLoaiThuong == t.MaLoaiThuong).SingleOrDefault(); gtthuong = gtthuong + giatrithuong.GiaTri; } var phat = ql.Ct_Phat.Where(s => s.NgaySua.Month == month && s.NgaySua.Year == year && s.MaNhanVien == nv.MaNhanVien); foreach (var t in phat) { var giatriphat = ql.LoaiPhats.Where(s => s.MaLoaiPhat == t.MaLoaiPhat).SingleOrDefault(); gtphat = gtphat + giatriphat.GiaTri; } var cc = ql.ChamCongs.Where(s => s.MaNhanVien == nv.MaNhanVien && s.Ngay.Month.ToString() == month.ToString() && s.Ngay.Year.ToString() == year.ToString() && s.TrangThai != null); if (cc.Count() == 0) { } else { foreach (var c in cc) { giolam = (int)(giolam + c.ThoiGianLamViec); giotangca = (int)(giotangca + c.ThoiGianTangCa); } } var luongcoban = ql.LuongCoBans.Where(s => s.MaNhanVien == nv.MaNhanVien && s.TrangThai == true).SingleOrDefault(); if (luongcoban != null) { LuongThang l = new LuongThang(); l.MaLuongCoBan = luongcoban.MaLuongCoBan; l.ThangNam = ngayCuoiThang; l.TongGioLamViec = giolam; l.TongGioTangCa = giotangca; l.TongThuong = gtthuong; l.TongPhat = gtphat; l.HeSoLuong = luongcoban.NhanVien.ChucVu.HeSoChucVu; l.PhuCap = luongcoban.NhanVien.ChucVu.PhuCap; ql.LuongThangs.Add(l); } } ql.SaveChanges(); } //sau 10h nếu app đc khởi động mà chấm công hôm nay, những ai chưa chấm công nếu trạng thái là null, thì thay thành "Nghỉ" //đồng thời thêm nhân viên đó vào bảng nghỉ TimeSpan thoiGianKhongChoVao = DateTime.Parse("10:00 AM").TimeOfDay; if (DateTime.Now.TimeOfDay > thoiGianKhongChoVao) { var nvList = ql.ChamCongs.Where(s => s.TrangThai == null && s.Ngay == DateTime.Today).ToList(); if (nvList.Count > 0) { foreach (var b in nvList) { b.TrangThai = "Nghỉ"; //thêm dữ liệu nhân viên nghỉ vào bảng Nghỉ Nghi nhanVienNghi = new Nghi(); nhanVienNghi.MaNhanVien = b.MaNhanVien; nhanVienNghi.NgayNghi = DateTime.Today; nhanVienNghi.Phep = false; nhanVienNghi.NgaySua = DateTime.Now; nhanVienNghi.GhiChu = "Hôm nay nghỉ"; ql.Nghis.Add(nhanVienNghi); } ql.SaveChanges(); } } //kiểm tra sau 16h nếu nhân viên nghỉ thì thêm phạt nhân viên đó, mà nếu đã có phạt rồi thì ko phạt nữa TimeSpan thoiGianThemPhatNhanVienNghi = DateTime.Parse("04:00 PM").TimeOfDay; var mocThoiGian16h = DateTime.Today.AddHours(16); if (DateTime.Now.TimeOfDay > thoiGianThemPhatNhanVienNghi) { //list chấm công nhân viên có trạng thái nghỉ không phép trong ngày hôm nay var nvChamCongList = ql.Nghis.Where(x => x.Phep == false && x.NgayNghi == DateTime.Today.Date).ToList(); foreach (var b in nvChamCongList) { var ct_PhatNhanVienNghi = ql.Ct_Phat.Where(x => x.LoaiPhat.TenLoaiPhat == "Nghỉ" && x.MaNhanVien == b.MaNhanVien && x.NgayPhat == mocThoiGian16h).SingleOrDefault(); if (ct_PhatNhanVienNghi == null) { var tenphat = ql.LoaiPhats.Where(s => s.TenLoaiPhat == "Nghỉ" && s.TrangThai == true).SingleOrDefault(); if (tenphat != null) { Ct_Phat phat = new Ct_Phat(); phat.MaNhanVien = b.MaNhanVien; phat.MaLoaiPhat = tenphat.MaLoaiPhat; phat.NgayPhat = DateTime.Today.AddHours(16); phat.NguoiPhat = "Hệ thống"; phat.NguoiSua = "Hệ thống"; phat.NgaySua = DateTime.Today.AddHours(16); phat.TrangThai = true; ql.Ct_Phat.Add(phat); } } else { break; } } ql.SaveChanges(); } AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); }