322 lines
15 KiB
C#
322 lines
15 KiB
C#
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 AuditPerformanceByUserController : BaseController
|
||
{
|
||
private readonly IWX_BALANCESALEUSERAUDIT _balancesaleuseraudit;
|
||
private readonly IWX_BALANCESALEUSER _balancesaleuser;
|
||
|
||
public AuditPerformanceByUserController(IWX_BALANCESALEUSERAUDIT balancesaleuseraudit, IWX_BALANCESALEUSER balancesaleuser)
|
||
{
|
||
_balancesaleuseraudit = balancesaleuseraudit;
|
||
_balancesaleuser = balancesaleuser;
|
||
}
|
||
|
||
[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("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);
|
||
IList<WX_BALANCESALEUSERAUDIT> list;
|
||
if (roleCodes.Contains("[CW]") || roleCodes.Contains("[ZJZL]") || roleCodes.Contains("[ZJ]"))
|
||
list = _balancesaleuseraudit.GetAutitList(string.Empty, 0, mcode, status);
|
||
else
|
||
list = _balancesaleuseraudit.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("2017-08-01");
|
||
foreach (var item in list)
|
||
{
|
||
decimal gangwei = 0;
|
||
decimal zhengshu = 0;
|
||
var dixing = item.DIXING;
|
||
|
||
//这两个人考证通过,过程里面直接在底薪+200,所以这里需要-200
|
||
//if (item.EID == 6039 || item.EID == 6063)
|
||
//{
|
||
// dixing = dixing - 200;
|
||
// zhengshu = 200;
|
||
//}
|
||
//if (dixing >= 2400 && dixing < 2600)
|
||
// gangwei = 200;
|
||
//else if (dixing >= 2600 && dixing < 2800)
|
||
// gangwei = 400;
|
||
//else if (dixing >= 2800)
|
||
// gangwei = 600;
|
||
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<WX_BALANCESALEUSERAUDIT> list;
|
||
if (roleCodes.Contains("CW") || roleCodes.Contains("ZJZL"))
|
||
list = _balancesaleuseraudit.GetAutitList(string.Empty, 0, mcode, status);
|
||
else
|
||
list = _balancesaleuseraudit.GetAutitList(string.Empty, 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<WX_BALANCESALEUSERAUDITEXPORT>();
|
||
foreach (var item in list)
|
||
{
|
||
var info = new WX_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<WX_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);
|
||
/*确认业绩*/
|
||
_balancesaleuseraudit.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);
|
||
}
|
||
}
|
||
[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_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; }
|
||
}
|
||
}
|
||
}
|