TG.WXCRM.V4/WEB/Controllers/QH/MonthlyUserPerformanceAudit...

287 lines
14 KiB
C#

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.Model.Entity;
using WX.CRM.WebHelper;
namespace WX.CRM.WEB.Controllers.QH
{
public class MonthlyUserPerformanceAuditController : BaseController
{
private readonly IQH_PerformanceAudit _qhPerformanceAudit;
public MonthlyUserPerformanceAuditController(IQH_PerformanceAudit qhPerformanceAudit)
{
_qhPerformanceAudit = qhPerformanceAudit;
}
[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", "", "", "", false);
ViewBag.ToolBar = tb;
string tableId = "tablist";
Table tab = new Table(tableId);
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("isdismiss", "", "在/离职");
//tab.AddHeadCol("tousu", "", "投诉");
//tab.AddHeadCol("chufa", "", "处罚");
tab.AddHeadCol("chuqin", "", "出勤率");
tab.AddHeadCol("workday", "", "出勤天数");
tab.AddHeadCol("dixing", "", "底薪");
tab.AddHeadCol("PerformanceAmount", "", "业绩额");
tab.AddHeadCol("commissionratio", "", "业绩额提成比例");
//tab.AddHeadCol("OrderCount", "", "单量");
//tab.AddHeadCol("ordercountratio", "", "单量提成比例");
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("status", "", "确认状态");
tab.AddHiddenHeadCol("audittime", "确认时间");
tab.AddHiddenHeadCol("auditbyusername", "确认人");
tab.AddHiddenHeadCol("remark", "确认说明");
tab.AddHeadRow();
ViewBag.RptList = tab.GetHead();
//ViewBag.inneruserid = UserId;
//ViewBag.userGroupId = userGroupId;
//ViewBag.saleDeptId = saleDeptId;
//ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
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);
Pager page = new Pager() { page = 1, rows = int.MaxValue };
IList<QH_BALANCESALEUSERAUDIT> list;
if (roleCodes.Contains("[CW]") || roleCodes.Contains("[ZJZL]") || roleCodes.Contains("[ZJ]"))
list = _qhPerformanceAudit.GetAutitList(string.Empty, 0, mcode, status);
else
list = _qhPerformanceAudit.GetAutitList(groupId, uId, mcode, status);
decimal batchId = 0;
if (list.Any())
batchId = (from p in list select p.BALANCEBATCHID).Max();
list = list.Where(p => p.BALANCEBATCHID == batchId).ToList();
var month = DateTime.Parse("2018-04-01");
foreach (var item in list)
{
decimal gangwei = 0;
decimal zhengshu = 0;
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.ISDISMISS.HasValue ? string.Format("{0}", item.ISDISMISS.Value == 1 ? "<span style='color:red'>离职</span>" : "在职") : "未知");
//table.AddCol(item.TOUSU);
//table.AddCol(item.CHUFA);
table.AddCol(item.CHUQIN + "%");
table.AddCol(item.WORKDAY);
table.AddCol(item.DIXING);
//table.AddCol(string.Format("<a href='javascript:void(0)' onclick='ShowDiXing({0},{2})'>{1}</a>", gangwei, item.DIXING, zhengshu));
table.AddCol(item.PERFORMANCEAMOUNT);
table.AddCol(item.COMMISSIONRATIO + "%");
//table.AddCol(item.ORDERCOUNT);
//table.AddCol(item.ORDERCOUNTRATIO + "%");
table.AddCol(item.ALLRATIO + "%");
table.AddCol(item.ALLPERFORMANCEAMOUNT);
table.AddCol(item.YINGSHOU);
//table.AddCol(item.YULIU);
//table.AddCol(item.FANHUAN);
//table.AddCol(item.TUIKUAN);
//if (item.TUIKUAN <= 0)
// table.AddCol(item.TUIKUAN);
//else
// table.AddCol(string.Format("<a href='javascript:void(0)' onclick='GetRefundInfo({0},\"{2}\");'>{1}</a>", item.INNERUSERID, item.TUIKUAN, mcode));
table.AddCol(item.DEDUCTIONS);
table.AddCol(item.REWARD);
table.AddCol(item.SHISHOU);
table.AddCol(string.Format("<a href='javascript:void(0)' onclick='Show2(\"{1}\",\"{2}\",\"{3}\")'>{0}</a>", 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);
}
}
[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<QH_BALANCESALEUSERAUDIT> list;
if (roleCodes.Contains("[CW]") || roleCodes.Contains("[ZJZL]") || roleCodes.Contains("[ZJ]"))
list = _qhPerformanceAudit.GetAutitList(string.Empty, 0, mcode, status);
else
list = _qhPerformanceAudit.GetAutitList(groupId, 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<QH_BALANCESALEUSERAUDITEXPORT>();
foreach (var item in list)
{
var info = new QH_BALANCESALEUSERAUDITEXPORT()
{
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<QH_BALANCESALEUSERAUDITEXPORT>(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);
/*确认业绩*/
_qhPerformanceAudit.AuditPerformanceUser(_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);
}
}
private class QH_BALANCESALEUSERAUDITEXPORT
{
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? PerformanceAmount { get; set; }
public string commissionratio { get; set; }
public decimal? OrderCount { get; set; }
public string ordercountratio { get; set; }
public string allratio { get; set; }
public decimal? AllPerformanceAmount { get; set; }
public decimal? yingshou { get; set; }
public decimal? yuliu { get; set; }
public decimal? fanhuan { get; set; }
public decimal? tuikuan { 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; }
}
}
}