using System; using System.Collections.Generic; using System.Linq; using System.Web.Mvc; using WX.CRM.Common; using WX.CRM.IBLL.QH; using WX.CRM.WebHelper; namespace WX.CRM.WEB.Controllers.QH { public class MonthlyGroupPerformanceAuditController : BaseController { private readonly IQH_PerformanceGroupAudit _balancesalegrouperaudit; public MonthlyGroupPerformanceAuditController(IQH_PerformanceGroupAudit balancesalegrouperaudit) { _balancesalegrouperaudit = balancesalegrouperaudit; } [HttpGet] [AuthorizeRedirect(Roles = InitRights.CONST_主管业绩确认)] [AuthorizeSession(HasRight = false)] public ActionResult Index() { try { 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", "", "", "", false); ViewBag.ToolBar = tb; Table tab = new Table("tablist1"); tab.AddHiddenHeadCol("pkid", "ID"); tab.AddHiddenHeadCol("balancebatchid", "batchid"); tab.AddHeadCol("month", "", "结算年月"); //tab.AddHeadCol("ctime", "", "结算时间"); tab.AddHeadCol("eid", "", "工号"); tab.AddHeadCol("uname", "", "姓名"); tab.AddHeadCol("gname", "", "组别"); tab.AddHeadCol("leadertype", "", "类型"); tab.AddHeadCol("isdismiss", "", "在/离职"); tab.AddHeadCol("workday", "", "出勤天数"); tab.AddHeadCol("dixing", "", "底薪"); tab.AddHeadCol("PerformanceAmount", "", "业绩额"); tab.AddHeadCol("UserPerformanceAmount", "", "个人业绩"); tab.AddHeadCol("PerformanceAmount2", "", "计算业绩"); tab.AddHeadCol("commissionratio", "", "业绩额提成比例"); //tab.AddHeadCol("OrderCount", "", "单量"); //tab.AddHeadCol("ordercountratio", "", "单量提成比例"); //tab.AddHiddenHeadCol("orderRate", "出单人数"); //tab.AddHiddenHeadCol("orderCommissionRate", "出单提成比例"); //tab.AddHiddenHeadCol("chuqinGroupRate", "缺勤人数"); //tab.AddHiddenHeadCol("chuqinGroupCommissionRate", "全勤提成比例"); //tab.AddHiddenHeadCol("dismissRate", "离职人数"); //tab.AddHiddenHeadCol("dismissCommissionRate", "无离职提成比例"); tab.AddHeadCol("allratio", "", "总比例"); tab.AddHeadCol("AllPerformanceAmount", "", "本月提成金额"); tab.AddHeadCol("yingshou", "", "本月应发金额"); //tab.AddHeadCol("yuliu", "", "本月预留金额"); //tab.AddHeadCol("fanhuan", "", "预留返还金额"); //tab.AddHeadCol("tuikuan", "", "退款"); tab.AddHeadCol("deductions", "", "扣款缺勤"); tab.AddHeadCol("reward", "", "全勤"); tab.AddHeadCol("shishou", "", "本月实发金额"); tab.AddHeadCol("shishou2", "", "财务实发金额"); //tab.AddHeadCol("hascertificate", "", "有证"); tab.AddHeadCol("status", "", "确认状态"); tab.AddHiddenHeadCol("audittime", "确认时间"); tab.AddHiddenHeadCol("auditbyusername", "确认人"); tab.AddHiddenHeadCol("remark", "确认说明"); tab.AddHeadRow(); ViewBag.RptList = tab.GetTable(); //ViewBag.inneruserid = UserId; //ViewBag.userGroupId = userGroupId; //ViewBag.saleDeptId = saleDeptId; //ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId); } catch (Exception ex) { LogHelper.Error(ex); } return View(); } [HttpPost] [AuthorizeRedirect(Roles = InitRights.CONST_主管业绩确认)] [AuthorizeSession(HasRight = false)] public JsonResult Index(decimal? groupId, string balanceCode, string status, string columns) { try { decimal[] g = new decimal[2]; //if (groupId.HasValue) //{ // groupId = userGroupId; //} g[0] = userGroupId; var roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId); DateTime? mcode = null; if (!string.IsNullOrEmpty(balanceCode)) { balanceCode = balanceCode + "-01"; mcode = DateTime.Parse(balanceCode); } Table table = new Table(columns, true); var list = (roleCodes.Contains("[CW]") || roleCodes.Contains("[ZJ]") || roleCodes.Contains("[ZJZL]")) ? _balancesalegrouperaudit.GetAutitList(null, mcode, status, null).Where(p => p.TYPE == 1) : _balancesalegrouperaudit.GetAutitList(g, mcode, status, UserId).Where(p => p.TYPE == 1); decimal batchId = 0; if (list.Any()) batchId = (from p in list select p.BALANCEBATCHID).Max(); list = list.Where(p => p.BALANCEBATCHID == batchId); foreach (var item in list) { table.AddHiddenCol(item.PKID); table.AddHiddenCol(item.BALANCEBATCHID); table.AddCol(item.MONTH.ToString("yyyy-MM")); //table.AddCol(item.CTIME); table.AddCol(item.EID); table.AddCol(item.UNAME); table.AddCol(item.GNAME); table.AddCol(item.LEADERTYPE.HasValue ? item.LEADERTYPE < 10 ? "主任" : "经理" : ""); table.AddCol(item.ISDISMISS.HasValue ? string.Format("{0}", item.ISDISMISS.Value == 1 ? "离职" : "在职") : "未知"); table.AddCol(item.WORKDAY); table.AddCol(item.DIXING); table.AddCol(item.PERFORMANCEAMOUNT); table.AddCol(item.USERPERFORMANCEAMOUNT); table.AddCol(item.PERFORMANCEAMOUNT - item.USERPERFORMANCEAMOUNT); table.AddCol(item.COMMISSIONRATIO + "%"); //table.AddCol(item.ORDERCOUNT); //table.AddCol(item.ORDERCOUNTRATIO + "%"); //table.AddHiddenCol((item.ORDERRATE.HasValue ? item.ORDERRATE.Value : 0).ToString()); //table.AddHiddenCol((item.ORDERCOMMISSIONRATE.HasValue ? item.ORDERCOMMISSIONRATE.Value : 0).ToString() + "%"); //table.AddHiddenCol((item.CHUQINGROUPRATE.HasValue ? item.CHUQINGROUPRATE.Value : 0).ToString()); //table.AddHiddenCol((item.CHUQINGROUPCOMMISSIONRATE.HasValue ? item.CHUQINGROUPCOMMISSIONRATE.Value : 0).ToString() + "%"); //table.AddHiddenCol((item.DISMISSRATE.HasValue ? item.DISMISSRATE.Value : 0).ToString()); //table.AddHiddenCol((item.DISMISSCOMMISSIONRATE.HasValue ? item.DISMISSCOMMISSIONRATE.Value : 0).ToString() + "%"); //table.AddCol((item.LEADERTYPE.HasValue && item.LEADERTYPE < 10) ? string.Format("{0}", item.ALLRATIO + "%", item.ORDERRATE.HasValue ? item.ORDERRATE.Value : 0, item.ORDERCOMMISSIONRATE.HasValue ? item.ORDERCOMMISSIONRATE.Value : 0, item.CHUQINGROUPRATE.HasValue ? item.CHUQINGROUPRATE.Value : 0, item.CHUQINGROUPCOMMISSIONRATE.HasValue ? item.CHUQINGROUPCOMMISSIONRATE.Value : 0, item.DISMISSRATE.HasValue ? item.DISMISSRATE.Value : 0, item.DISMISSCOMMISSIONRATE.HasValue ? item.DISMISSCOMMISSIONRATE.Value : 0) : item.ALLRATIO + "%"); table.AddCol(item.ALLRATIO + "%"); table.AddCol(item.ALLPERFORMANCEAMOUNT); table.AddCol(item.YINGSHOU); //table.AddCol(item.YULIU); //table.AddCol(item.FANHUAN); //if (item.TUIKUAN <= 0) // table.AddCol(item.TUIKUAN); //else // table.AddCol(string.Format("{1}", item.GID, item.TUIKUAN, mcode)); table.AddCol(item.DEDUCTIONS); table.AddCol(item.REWARD); table.AddCol(item.SHISHOU); table.AddCol(item.SHISHOU2); //table.AddCol(item.HASCERTIFICATE == 1 ? "有" : "无"); table.AddCol(string.Format("{0}", item.STATUS, item.AUDITTIME.HasValue ? item.AUDITTIME.Value.ToShortDateString() : "", item.AUDITBYUSERNAME, item.REMARK)); table.AddHiddenCol(item.AUDITTIME.HasValue ? item.AUDITTIME.Value.ToShortDateString() : ""); table.AddHiddenCol(item.AUDITBYUSERNAME); table.AddHiddenCol(item.REMARK); table.AddRow(); } var json = new { rowsList = table.GetRows() }; return Json(json, JsonRequestBehavior.AllowGet); } catch (Exception ex) { LogHelper.Error("AuditPerformanceByUserController:Index" + ex.Message + ex.StackTrace); return JsonHandler.ManageMessage(ex.Message, false); } } [AuthorizeRedirect(Roles = InitRights.CONST_主管业绩确认)] [AuthorizeSession(HasRight = false)] public FileResult Export(decimal? groupId, string balanceCode, string monStatus) { DateTime? mcode = null; if (!string.IsNullOrEmpty(balanceCode)) { balanceCode = balanceCode + "-01"; mcode = DateTime.Parse(balanceCode); } decimal[] g = new decimal[2]; //if (groupId.HasValue) //{ // groupId = userGroupId; //} g[0] = userGroupId; string checkedFilds = PageRequest.GetQueryString("checkedFilds"); string checkedTitle = PageRequest.GetQueryString("checkedTitles"); var roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId); var list = (roleCodes.Contains("[CW]") || roleCodes.Contains("[ZJ]") || roleCodes.Contains("[ZJZL]")) ? _balancesalegrouperaudit.GetAutitList(null, mcode, null, null).Where(p => p.TYPE == 1) : _balancesalegrouperaudit.GetAutitList(g, mcode, null, UserId).Where(p => p.TYPE == 1); decimal batchId = 0; if (list.Any()) batchId = (from p in list select p.BALANCEBATCHID).Max(); list = list.Where(p => p.BALANCEBATCHID == batchId); var export = new List(); foreach (var item in list) { var info = new QH_BALANCESALEGROUPERAUDIT_EXPORT() { MONTH = item.MONTH, EID = item.EID, UNAME = item.UNAME, GNAME = item.GNAME, ISDISMISS = item.ISDISMISS.GetValueOrDefault(0) == 1 ? "离职" : "在职", //tousu = item.TOUSU.GetValueOrDefault(0), //chufa = item.CHUFA.GetValueOrDefault(0), CHUQIN = item.CHUQIN.GetValueOrDefault(0) + "%", WORKDAY = item.WORKDAY.GetValueOrDefault(0), DIXING = item.DIXING, PERFORMANCEAMOUNT = item.PERFORMANCEAMOUNT, //commissionratio = item.COMMISSIONRATIO.ToString() + "%", //OrderCount = item.ORDERCOUNT, //ordercountratio = item.ORDERCOUNTRATIO.ToString() + "%", //allratio = item.ALLRATIO.ToString() + "%", ALLPERFORMANCEAMOUNT = item.ALLPERFORMANCEAMOUNT, YINGSHOU = item.YINGSHOU, //yuliu = item.YULIU, //fanhuan = item.FANHUAN, //tuikuan = item.TUIKUAN, 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); _balancesalegrouperaudit.AuditPerformanceGroup(_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); } } public class QH_BALANCESALEGROUPERAUDIT_EXPORT { public decimal PKID { get; set; } public decimal INNERUSERID { get; set; } public decimal EID { get; set; } public string UNAME { get; set; } public decimal? GID { get; set; } public string GNAME { get; set; } public decimal DIXING { get; set; } public decimal PERFORMANCEAMOUNT { get; set; } public decimal COMMISSIONRATIO { get; set; } public decimal ORDERCOUNT { get; set; } public decimal ORDERCOUNTRATIO { get; set; } public decimal ALLRATIO { get; set; } public decimal YINGSHOU { get; set; } public decimal YULIU { get; set; } public decimal FANHUAN { get; set; } public decimal TUIKUAN { get; set; } public decimal SHISHOU { get; set; } public DateTime CTIME { get; set; } public DateTime MONTH { get; set; } public decimal BALANCEBATCHID { get; set; } public string STATUS { get; set; } public DateTime? AUDITTIME { get; set; } public decimal? AUDITBYUSERID { get; set; } public string AUDITBYUSERNAME { get; set; } public string REMARK { get; set; } public decimal ALLPERFORMANCEAMOUNT { get; set; } public decimal? TOUSU { get; set; } public decimal? CHUFA { get; set; } public string CHUQIN { get; set; } public decimal TYPE { get; set; } public decimal? WORKDAY { get; set; } public decimal? DEDUCTIONS { get; set; } public decimal? REWARD { get; set; } public string ISDISMISS { get; set; } public decimal? ORDERRATE { get; set; } public decimal? CHUQINGROUPRATE { get; set; } public decimal? DISMISSRATE { get; set; } public decimal? ORDERCOMMISSIONRATE { get; set; } public decimal? CHUQINGROUPCOMMISSIONRATE { get; set; } public decimal? DISMISSCOMMISSIONRATE { get; set; } public decimal LEADERTYPE { get; set; } public decimal UserPerformanceAmount { get; set; } public decimal shishou2 { get; set; } public decimal HasCertificate { get; set; } public decimal PERFORMANCEAMOUNT2 { get; set; } } } }