/// <summary>
    /// xử lý trừ tạm ứng với bảng lương đã khóa hoặc mở khóa
    /// trangthai=true: chuyển từ chưa khóa sang đã khóa.
    /// trạng thái = false: chuyển từ đã khóa sang chưa khóa.
    /// </summary>
    /// <param name="id"></param>
    /// <param name="trangthai"></param>
    public void XuLyTruTamUng(int id, bool trangthai)
    {
        var hsc = new HoSoController();

        foreach (var item in dataContext.BangThanhToanLuongs.Where(p => p.IdBangLuong == id && p.TamUng > 0).ToList())
        {
            decimal prkeyhoso = hsc.TraVePRKEYbyMaCB(item.MaCB);
            string  tencanbo  = hsc.TraVeTenByMaCB(item.MaCB);
            decimal sotien    = (decimal)item.TamUng;
            if (trangthai)
            {
                foreach (var itemtamung in dataContext.BangTamUngs.Where(p => p.PrKeyHoSo == prkeyhoso && (p.SoTien - p.SoTienDaTra > 0)).OrderBy(p => p.NgayTamUng).ToList())
                {
                    if (sotien > 0)
                    {
                        if (sotien >= (itemtamung.SoTien - itemtamung.SoTienDaTra))
                        {
                            sotien -= (itemtamung.SoTien - itemtamung.SoTienDaTra);
                            itemtamung.SoTienDaTra = itemtamung.SoTien;
                        }
                        else
                        {
                            itemtamung.SoTienDaTra += sotien;
                            sotien = 0;
                        }
                    }
                }
            }
            else
            {
                foreach (var itemtamung in dataContext.BangTamUngs.Where(p => p.PrKeyHoSo == prkeyhoso && p.SoTienDaTra > 0).OrderBy(p => p.NgayTamUng).ToList())
                {
                    if (sotien > 0)
                    {
                        if (sotien >= itemtamung.SoTienDaTra)
                        {
                            sotien -= itemtamung.SoTienDaTra;
                            itemtamung.SoTienDaTra = 0;
                        }
                        else
                        {
                            itemtamung.SoTienDaTra -= sotien;
                            sotien = 0;
                        }
                    }
                }
            }
        }
        Save();
    }
    public string CheckKhoaSoDuTamUng(int id)
    {
        string loi = "";
        var    hsc = new HoSoController();

        foreach (var item in dataContext.BangThanhToanLuongs.Where(p => p.IdBangLuong == id && p.TamUng > 0).ToList())
        {
            decimal prkeyhoso        = hsc.TraVePRKEYbyMaCB(item.MaCB);
            string  tencanbo         = hsc.TraVeTenByMaCB(item.MaCB);
            decimal sotien           = (decimal)item.TamUng;
            decimal sotiencanhoanung = dataContext.BangTamUngs.Where(p => p.PrKeyHoSo == prkeyhoso && (p.SoTien - p.SoTienDaTra > 0)).ToList().Count > 0 ? dataContext.BangTamUngs.Where(p => p.PrKeyHoSo == prkeyhoso && (p.SoTien - p.SoTienDaTra > 0)).Sum(p => p.SoTien - p.SoTienDaTra) : 0;
            if (sotien > sotiencanhoanung)
            {
                loi += "Cán bộ: " + tencanbo + " Số tiền trên cột tạm ứng: " + sotien.ToString() + " Tổng tiền cần hoàn ứng: " + sotiencanhoanung.ToString() + "<br/>";
            }
        }
        return(loi);
    }