using System; using System.Collections.Generic; using System.Linq; using System.Web.Mvc; using WX.CRM.Common; using WX.CRM.IBLL.Wx; using WX.CRM.Model.Entity; using WX.CRM.WebHelper; namespace WX.CRM.WEB.Controllers.WeiXin { public class AuditPerformanceByHeGuiController : BaseController { private readonly IWX_BALANCEHEGUIAUDIT _balanceheguiaudit; public AuditPerformanceByHeGuiController(IWX_BALANCEHEGUIAUDIT balanceheguiaudit) { _balanceheguiaudit = balanceheguiaudit; } [HttpGet] [AuthorizeRedirect(Roles = InitRights.CONST_合规业绩确认)] [AuthorizeSession(HasRight = false)] public ActionResult Index() { ToolBar tb = new ToolBar(); string[] balance = new ToolButtonView().ToolButtonRight(InitRights.员工业绩批量确认, userRightId); tb.AllowButton(balance); tb.AddOtherButton("Other1", "导出", "icon-export", "BtnExportAll_Click", true); tb.AddOtherButton("Other3", "批量确认", "icon-check", "", true); ViewBag.ToolBar = tb; string tableId = "tablist"; Table tab = new Table(tableId); tab.AddHiddenHeadCol("pkid", "ID"); tab.AddHiddenHeadCol("balancebatchid", "batchid"); tab.AddHeadCol("month", "", "结算年月"); tab.AddHeadCol("eid", "", "工号"); tab.AddHeadCol("uname", "", "姓名"); tab.AddHeadCol("gname", "", "组别"); tab.AddHeadCol("isdismiss", "", "在/离职"); tab.AddHeadCol("tousu", "", "投诉"); tab.AddHeadCol("chufa", "", "处罚"); tab.AddHeadCol("chuqin", "", "出勤率"); tab.AddHeadCol("workday", "", "出勤天数"); tab.AddHeadCol("dixing", "", "底薪"); tab.AddHeadCol("allresource", "", "分配资源"); tab.AddHeadCol("effectiveresource", "", "有效资源"); tab.AddHeadCol("allperformanceamount", "", "本月提成金额"); tab.AddHeadCol("deductions", "", "扣款缺勤"); tab.AddHeadCol("reward", "", "全勤"); tab.AddHeadCol("shishou", "", "本月实发金额"); tab.AddHeadCol("status", "", "确认状态"); tab.AddHeadCol("audittime", "", "确认时间"); tab.AddHeadCol("auditbyusername", "", "确认人"); tab.AddHeadCol("remark", "", "确认说明"); tab.AddHeadRow(); ViewBag.RptList = tab.GetHead(); return View(); } [HttpPost] [AuthorizeRedirect(Roles = InitRights.CONST_合规业绩确认)] [AuthorizeSession(HasRight = false)] public JsonResult Index(string saleDeptId, string groupId, string userId, string balanceCode, string status, string columns) { try { var roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId); DateTime? mcode = null; decimal uId = UserId; if (!string.IsNullOrEmpty(userId)) { decimal.TryParse(userId, out uId); } if (!string.IsNullOrEmpty(balanceCode)) { balanceCode = balanceCode + "-01"; mcode = DateTime.Parse(balanceCode); } Table table = new Table(columns, true); IList list; if (roleCodes.Contains("[CW]")) list = _balanceheguiaudit.GetAutitList(0, mcode, status); else list = _balanceheguiaudit.GetAutitList(uId, mcode, status); var batchId = (from p in list select p.BALANCEBATCHID).Max(); list = list.Where(p => p.BALANCEBATCHID == batchId).ToList(); foreach (var item in list) { table.AddHiddenCol(item.PKID); table.AddHiddenCol(item.BALANCEBATCHID); table.AddCol(item.MONTH.ToString("yyyy-MM")); table.AddCol(item.EID); table.AddCol(item.UNAME); table.AddCol(item.GNAME); table.AddCol(string.Format("{0}", item.ISDISMISS == 1 ? "离职" : "在职")); table.AddCol(item.TOUSU); table.AddCol(item.CHUFA); table.AddCol(item.CHUQIN + "%"); table.AddCol(item.WORKDAY); table.AddCol(item.DIXING); table.AddCol(item.ALLRESOURCE); table.AddCol(item.EFFECTIVECOMMUNICATION); table.AddCol(item.ALLPERFORMANCEAMOUNT); table.AddCol(item.DEDUCTIONS); table.AddCol(item.REWARD); table.AddCol(item.SHISHOU); table.AddCol(item.STATUS); table.AddCol(item.AUDITTIME.HasValue ? item.AUDITTIME.Value.ToShortDateString() : ""); table.AddCol(item.AUDITBYUSERNAME); table.AddCol(item.REMARK); table.AddRow(); } var json = new { rowsList = table.GetRows() }; return Json(json, JsonRequestBehavior.AllowGet); } catch (Exception ex) { LogHelper.Error("AuditPerformanceByHeGuiController:Index" + ex.Message + ex.StackTrace); return JsonHandler.ManageMessage(ex.Message, false); } } [AuthorizeSession(HasRight = false)] public FileResult Export(string saleDeptId, string groupId, string userId, string balanceCode, string status) { var roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId); DateTime? mcode = null; decimal uId = UserId; if (!string.IsNullOrEmpty(userId)) { decimal.TryParse(userId, out uId); } if (!string.IsNullOrEmpty(balanceCode)) { balanceCode = balanceCode + "-01"; mcode = DateTime.Parse(balanceCode); } string checkedFilds = PageRequest.GetQueryString("checkedFilds"); string checkedTitle = PageRequest.GetQueryString("checkedTitles"); IList list; if (roleCodes.Contains("CW")) list = _balanceheguiaudit.GetAutitList(0, mcode, status); else list = _balanceheguiaudit.GetAutitList(uId, mcode, status); var batchId = (from p in list select p.BALANCEBATCHID).Max(); list = list.Where(p => p.BALANCEBATCHID == batchId).ToList(); var export = new List(); foreach (var item in list) { var info = new WX_BALANCEHEGUIAUDITEXPORT() { month = item.MONTH, eid = item.EID, uname = item.UNAME, gname = item.GNAME, isdismiss = item.ISDISMISS == 1 ? "离职" : "在职", tousu = item.TOUSU, chufa = item.CHUFA, chuqin = item.CHUQIN.ToString() + "%", workday = item.WORKDAY, dixing = item.DIXING, allresource = item.ALLRESOURCE, effectiveresource = item.EFFECTIVECOMMUNICATION, AllPerformanceAmount = item.ALLPERFORMANCEAMOUNT, shishou = item.SHISHOU, deductions = item.DEDUCTIONS.GetValueOrDefault(0), reward = item.REWARD.GetValueOrDefault(0), status = item.STATUS, auditbyusername = item.AUDITBYUSERNAME, audittime = item.AUDITTIME, remark = item.REMARK }; export.Add(info); } return File(ExcelHelper.ExportListModelToExcel(export, "合规员工工资确认", 60000, checkedFilds, checkedTitle, null), "application/ms-excel", PageRequest.GetDlownLoadName("合规员工工资确认.xls")); } [AuthorizeSession(HasRight = false)] public JsonResult GetAuditPerformance() { try { string pkid = Request["PKID"]; string sta = Request["PSTATUS"]; string remark = Request["REMARK"]; string _eid = Request["EID"]; decimal _pkid = 0; int _sta = 0; if (!string.IsNullOrEmpty(pkid)) _pkid = decimal.Parse(pkid); if (!string.IsNullOrEmpty(sta)) _sta = int.Parse(sta); if (_eid != InnerUserHelper.Instance.GetEid(UserId)) return Json(new { result = 1, remark = "只能确认自已的业绩!" }, JsonRequestBehavior.AllowGet); /*确认业绩*/ _balanceheguiaudit.AuditPerformanceHeGui(_pkid, _sta, remark, UserId, UserName); var lis = new { result = 1, remark = "确认成功!" }; return Json(lis, JsonRequestBehavior.AllowGet); } catch (Exception ex) { var lis = new { result = 0, remark = ex.Message }; return Json(lis, JsonRequestBehavior.AllowGet); } } [AuthorizeSession(HasRight = false)] public JsonResult BatchAuditPerformance() { try { string balanceCode = Request["balanceCode"]; DateTime _balanceCode = DateTime.Now; if (!string.IsNullOrEmpty(balanceCode)) { _balanceCode = DateTime.Parse(balanceCode + "-01"); } /*批量确认业绩*/ //_balancesaleuseraudit.AuditBatchPerformanceUser(_balanceCode, UserId, UserName); var lis = new { result = 1, remark = "批量确认成功!" }; return Json(lis, JsonRequestBehavior.AllowGet); } catch (Exception ex) { var lis = new { result = 0, remark = ex.Message }; return Json(lis, JsonRequestBehavior.AllowGet); } } private class WX_BALANCEHEGUIAUDITEXPORT { public DateTime month { get; set; } public decimal eid { get; set; } public string uname { get; set; } public string gname { get; set; } public decimal? tousu { get; set; } public decimal? chufa { get; set; } public string chuqin { get; set; } public decimal? workday { get; set; } public decimal? dixing { get; set; } public decimal allresource { get; set; } public decimal effectiveresource { get; set; } public decimal? AllPerformanceAmount { get; set; } public decimal? deductions { get; set; } public decimal? reward { get; set; } public decimal? shishou { get; set; } public string status { get; set; } public DateTime? audittime { get; set; } public string auditbyusername { get; set; } public string remark { get; set; } public string isdismiss { get; set; } } } }