TG.WXCRM.V4/WEB/Controllers/WeiXin/AuditPerformanceByHeGuiCont...

261 lines
11 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 AuditPerformanceByHeGuiController : BaseController
{
private readonly IWX_BALANCEHEGUIAUDIT _balanceheguiaudit;
public AuditPerformanceByHeGuiController(IWX_BALANCEHEGUIAUDIT balanceheguiaudit)
{
_balanceheguiaudit = balanceheguiaudit;
}
[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("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("allresource", "", "分配资源");
tab.AddHeadCol("effectiveresource", "", "有效资源");
tab.AddHeadCol("allperformanceamount", "", "本月提成金额");
tab.AddHeadCol("deductions", "", "扣款缺勤");
tab.AddHeadCol("reward", "", "全勤");
tab.AddHeadCol("shishou", "", "本月实发金额");
tab.AddHeadCol("status", "", "确认状态");
tab.AddHeadCol("audittime", "", "确认时间");
tab.AddHeadCol("auditbyusername", "", "确认人");
tab.AddHeadCol("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_BALANCEHEGUIAUDIT> list;
if (roleCodes.Contains("[CW]"))
list = _balanceheguiaudit.GetAutitList(0, mcode, status);
else
list = _balanceheguiaudit.GetAutitList(uId, mcode, status);
var 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.EID);
table.AddCol(item.UNAME);
table.AddCol(item.GNAME);
table.AddCol(string.Format("{0}", item.ISDISMISS == 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(item.ALLRESOURCE);
table.AddCol(item.EFFECTIVECOMMUNICATION);
table.AddCol(item.ALLPERFORMANCEAMOUNT);
table.AddCol(item.DEDUCTIONS);
table.AddCol(item.REWARD);
table.AddCol(item.SHISHOU);
table.AddCol(item.STATUS);
table.AddCol(item.AUDITTIME.HasValue ? item.AUDITTIME.Value.ToShortDateString() : "");
table.AddCol(item.AUDITBYUSERNAME);
table.AddCol(item.REMARK);
table.AddRow();
}
var json = new
{
rowsList = table.GetRows()
};
return Json(json, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
LogHelper.Error("AuditPerformanceByHeGuiController: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_BALANCEHEGUIAUDIT> list;
if (roleCodes.Contains("CW"))
list = _balanceheguiaudit.GetAutitList(0, mcode, status);
else
list = _balanceheguiaudit.GetAutitList(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_BALANCEHEGUIAUDITEXPORT>();
foreach (var item in list)
{
var info = new WX_BALANCEHEGUIAUDITEXPORT()
{
month = item.MONTH,
eid = item.EID,
uname = item.UNAME,
gname = item.GNAME,
isdismiss = item.ISDISMISS == 1 ? "离职" : "在职",
tousu = item.TOUSU,
chufa = item.CHUFA,
chuqin = item.CHUQIN.ToString() + "%",
workday = item.WORKDAY,
dixing = item.DIXING,
allresource = item.ALLRESOURCE,
effectiveresource = item.EFFECTIVECOMMUNICATION,
AllPerformanceAmount = item.ALLPERFORMANCEAMOUNT,
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_BALANCEHEGUIAUDITEXPORT>(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);
/*确认业绩*/
_balanceheguiaudit.AuditPerformanceHeGui(_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_BALANCEHEGUIAUDITEXPORT
{
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 allresource { get; set; }
public decimal effectiveresource { get; set; }
public decimal? AllPerformanceAmount { 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; }
}
}
}