ComplianceServer/oldcode/WEB/Controllers/WeiXin/AuditPerformanceByUserThree...

298 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.Wx;
using WX.CRM.Model.Entity;
using WX.CRM.WebHelper;
namespace WX.CRM.WEB.Controllers.WeiXin
{
public class AuditPerformanceByUserThreeController : BaseController
{
private readonly IWX_BALANCESALEUSERAUDIT3 _balancesaleuseraudit;
public AuditPerformanceByUserThreeController(IWX_BALANCESALEUSERAUDIT3 balancesaleuseraudit)
{
_balancesaleuseraudit = balancesaleuseraudit;
}
[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();
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_BALANCESALEUSERAUDIT3> list;
if (roleCodes.Contains("[CW]") || roleCodes.Contains("[SDZJ]"))
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();
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.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_BALANCESALEUSERAUDIT3> list;
if (roleCodes.Contains("CW") || roleCodes.Contains("SDZJ"))
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; }
}
}
}