public string InsertToBangThanhToanLuong(string MaDonVi, int IDDanhSachBangLuong, int IDDanhSachBangTongHopCong)
    {
        var data = (from t in dataContext.TongHopCongs
                    where t.IdDanhSachBangTongHopCong == IDDanhSachBangTongHopCong
                    select new
        {
            t.MA_CB
        }).ToList();

        foreach (var item in data)
        {
            var x = new DAL.BangThanhToanLuong()
            {
                MaCB        = item.MA_CB,
                IdBangLuong = IDDanhSachBangLuong
            };
            dataContext.BangThanhToanLuongs.InsertOnSubmit(x);
        }
        dataContext.SubmitChanges();
        DataController.DataHandler.GetInstance().ExecuteNonQuery("TienLuong_UpdateThongTinLuong", "@idBangLuong", IDDanhSachBangLuong);
        string loi = XuLiCongThuc(IDDanhSachBangLuong, MaDonVi, "");

        return(loi);
        // DataController.DataHandler.GetInstance().ExecuteNonQuery("TienLuong_TinhToanThongTinLuong", "@idBangLuong", IDDanhSachBangLuong);
    }
    public int TinhVaTrichLuongThang(int idbangluong, bool checkSoNgayDiLam)
    {
        int      count     = 0;
        var      bangluong = dataContext.DanhSachBangLuongs.Where(p => p.ID == idbangluong).FirstOrDefault();
        DateTime thangnam  = new DateTime(bangluong.Year, bangluong.Month, 1).AddMonths(-1);

        string[] listnvbangluong = dataContext.BangThanhToanLuongs.Where(p => p.IdBangLuong == idbangluong).Select(p => p.MaCB).ToArray();
        var      mucdongbh       = (from t in dataContext.BHMUCDONGBAOHIEMs
                                    where t.NgayHieuLuc <= thangnam
                                    orderby t.NgayHieuLuc descending
                                    select t).FirstOrDefault();
        var listNhanVienDuocDong = (from t in dataContext.TongHopCongs
                                    join q in dataContext.BHNHANVIEN_BAOHIEMs on t.MA_CB equals q.MaNhanVien
                                    join x in dataContext.DanhSachBangTongHopCongs on t.IdDanhSachBangTongHopCong equals x.ID
                                    where
                                    //(!checkSoNgayDiLam || ((thangnam.Month == x.FromDate.Month) && (thangnam.Year == x.FromDate.Year) && t.GioCongThucTe >= 14))
                                    //   &&
                                    listnvbangluong.Contains(q.MaNhanVien)
                                    select new
        {
            q.IDNhanVien_BaoHiem,
            MaNhanVien = q.MaNhanVien,
            HoTen = q.HoTen,
            LuongBaoHiem = q.LuongBaoHiem,
            TongPhuCap = q.PhuCapCV + q.PhuCapKhac + q.PhuCapTNN + q.PhuCapTNVK,
            q.DangDongBHYT,
            q.DangDongBHXH,
            q.DangDongBHTN
        }).ToList();

        foreach (var item in listNhanVienDuocDong)
        {
            decimal luongBHXH = 0, luongBHYT = 0, LuongBHTN = 0;
            if (item.LuongBaoHiem > mucdongbh.TranBHXH)
            {
                luongBHXH = mucdongbh.TranBHXH;
            }
            else if (item.LuongBaoHiem < mucdongbh.SanBHXH)
            {
                luongBHXH = mucdongbh.SanBHXH;
            }
            else
            {
                luongBHXH = item.LuongBaoHiem;
            }

            if (item.LuongBaoHiem > mucdongbh.TranBHYT)
            {
                luongBHYT = mucdongbh.TranBHYT;
            }
            else if (item.LuongBaoHiem < mucdongbh.SanBHYT)
            {
                luongBHYT = mucdongbh.SanBHYT;
            }
            else
            {
                luongBHYT = item.LuongBaoHiem;
            }

            if (item.LuongBaoHiem > mucdongbh.TranBHTN)
            {
                LuongBHTN = mucdongbh.TranBHTN;
            }
            else if (item.LuongBaoHiem < mucdongbh.SanBHTN)
            {
                LuongBHTN = mucdongbh.SanBHTN;
            }
            else
            {
                LuongBHTN = item.LuongBaoHiem;
            }

            if (!item.DangDongBHTN)
            {
                LuongBHTN = 0;
            }
            if (!item.DangDongBHYT)
            {
                luongBHYT = 0;
            }
            if (!item.DangDongBHXH)
            {
                luongBHXH = 0;
            }


            DAL.BangThanhToanLuong dong = dataContext.BangThanhToanLuongs.Where(p => p.MaCB == item.MaNhanVien && p.IdBangLuong == idbangluong).FirstOrDefault();
            dong.DVBHTN      = (double)(LuongBHTN * mucdongbh.DVBHTN / 100);
            dong.DVBHXH      = (double)(luongBHXH * mucdongbh.DVBHXH / 100);
            dong.DVBHYT      = (double)(luongBHYT * mucdongbh.DVBHYT / 100);
            dong.GiamTruBHTN = (double)(LuongBHTN * mucdongbh.NVBHTN / 100);
            dong.GiamTruBHXH = (double)(luongBHXH * mucdongbh.NVBYXH / 100);
            dong.GiamTruBHYT = (double)(luongBHYT * mucdongbh.NVBHYT / 100);
            dataContext.SubmitChanges();
            count++;
        }

        return(count);
    }