ComplianceServer/oldcode/WEB/Controllers/WeiXin/AuditPerformanceByUserContr...

322 lines
15 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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; }
}
}
}