260 lines
12 KiB
C#
260 lines
12 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 AuditPerformanceByAfterSaleController : BaseController
|
|
{
|
|
private readonly IWX_BALANCEAFTERSALEAUDIT _balanceaftersaleaudit;
|
|
|
|
public AuditPerformanceByAfterSaleController(IWX_BALANCEAFTERSALEAUDIT balanceaftersaleaudit)
|
|
{
|
|
_balanceaftersaleaudit = balanceaftersaleaudit;
|
|
}
|
|
|
|
[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_BALANCEAFTERSALEAUDIT> list;
|
|
if (roleCodes.Contains("[CW]"))
|
|
list = _balanceaftersaleaudit.GetAutitList(0, mcode, status);
|
|
else
|
|
list = _balanceaftersaleaudit.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("AuditPerformanceByAfterSaleController: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_BALANCEAFTERSALEAUDIT> list;
|
|
if (roleCodes.Contains("CW"))
|
|
list = _balanceaftersaleaudit.GetAutitList(0, mcode, status);
|
|
else
|
|
list = _balanceaftersaleaudit.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_BALANCEAFTERSALEAUDITEXPORT>();
|
|
foreach (var item in list)
|
|
{
|
|
var info = new WX_BALANCEAFTERSALEAUDITEXPORT()
|
|
{
|
|
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_BALANCEAFTERSALEAUDITEXPORT>(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);
|
|
/*确认业绩*/
|
|
_balanceaftersaleaudit.AuditPerformanceAfterSale(_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_BALANCEAFTERSALEAUDITEXPORT
|
|
{
|
|
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; }
|
|
}
|
|
}
|
|
}
|