using YLErp.Modules.SalesModule; namespace YLErp.Web.Controllers { /// /// 销售提成管理 /// public class SalesCommissionManageController : BaseController { /// /// 人员列表 /// [MyAuthorize("销售管理-人员管理")] public ActionResult SalesmenList() { return View(); } /// /// 客户提成明细 /// public ActionResult CommissionInfoByClient() { if (PS.Config.ErpElement.SalesCommissionCalculation == "公式1") { return View("FangDunCommissionInfoByClient"); } return View(); } /// /// 交易提成明细 /// public ActionResult CommissionInfoByTrade() { if (PS.Config.ErpElement.SalesCommissionCalculation == "公式1") { return View("FangDunCommissionInfoByTrade"); } return View(); } /// /// 查询销售人员信息 /// [HttpPost] public JsonResult SalesmenQuery(BaseSearchReq req, string ids, string departments) { var salesmenIds = new List(); var salesmenDepartments = new List(); if (!string.IsNullOrWhiteSpace(ids)) { var temp = ids.Split(','); if (temp.Count() > 0) { foreach (var id in temp) { int.TryParse(id, out var i); salesmenIds.Add(i); } } } if (!string.IsNullOrWhiteSpace(departments)) { var temp = departments.Split(','); if (temp.Count() > 0) { foreach (var department in temp) { salesmenDepartments.Add(department); } } } var sList = new SalesmenDataService(CurUser).SalesmenQuery(req, salesmenIds, salesmenDepartments); return Json(sList); } /// /// 查看修改销售人员信息 /// public ActionResult SalesmanEdit(string enid) { var salesman = new Salesman(); if (string.IsNullOrEmpty(enid) || enid == "0") { return View(salesman); } int.TryParse(enid, out var id); salesman = yldb.salesmen.Find(id); return View(salesman); } /// /// 上传销售人员信息 /// public ActionResult SalesmenUpload() { return View(); } public ActionResult UploadSalesmenMain(string MasterType) { if (Request.Form.Files.Count == 0) { return JsonError("缺少上传文件"); } var file = Request.Form.Files[0]; var fileExt = Path.GetExtension(file.FileName)?.ToLowerInvariant(); if (fileExt == ".csv") { return UploadSalesmen(file, MasterType); } else if (fileExt == ".xlsx") { return UploadSalesmenExcel(file); } else { return JsonError("请上传xlsx或csv格式文件"); } } public ActionResult UploadSalesmen(IFormFile file, string MasterType) { var fileName = ""; //上传交易存储目录 var MainUploadPath = "/App_Upload/Salesman"; var filePathName = string.Empty; if (Request.Form.Files.Count == 0) { return JsonError("保存失败"); } try { //上传同名文件会覆盖 fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + file.FileName; var directoryName = string.Format("{1}{0}/", MasterType, MainUploadPath); filePathName = directoryName + fileName; //自行处理保存 var pafile = Server.MapPath(directoryName); if (!Directory.Exists(pafile)) { Directory.CreateDirectory(pafile); } //Request.Form.Files[0].FileName var pa = Server.MapPath(filePathName); file.SaveAs(pa); //把文件上传到服务器的绝对路径上 var result = new SalesmenImportService(CurUser).UploadSalesmenCsv(pa); if (result.IsSuccess) { return JsonSuccess("导入成功"); } return JsonError(result.Message); } catch (Exception ex) { LogFactory.GetLogger(nameof(ClientController)).Error("UploadSalesmanCsv", ex); return JsonError(ex.Message); }; } public ActionResult UploadSalesmenExcel(IFormFile file) { try { using var openStream = file.OpenReadStream(); var result = new SalesmenImportService(CurUser).UploadSalesmenExcel(openStream, CurUser.UserId, CurUser.UserName); if (result.IsSuccess) { return JsonSuccess("导入成功"); } return JsonError(result.Message); } catch (Exception ex) { LogFactory.GetLogger(nameof(ClientController)).Error("UploadSalesmenExcel", ex); return JsonError(ex.Message); } } /// /// 更新上传信息 /// [HttpPost] public async Task SalesmanEditJson() { var salesman = new Salesman(); await TryUpdateModelAsync(salesman); var result = new SalesmenDataService(CurUser).SaveSalesman(salesman); if (result) { return JsonSuccess("更新成功", salesman); } return JsonSuccess("更新异常", salesman); } /// /// 删除销售员信息 /// [HttpPost] public JsonResult DeleteSalesman(string id) { int.TryParse(id, out var i); var salesman = yldb.salesmen.Find(i); if (salesman == null) { return JsonError("删除失败,找不到该销售员"); } yldb.salesmen.Remove(salesman); yldb.SaveChanges(); return JsonSuccess("删除成功"); } /// /// 客户提成明细查询 /// /// [HttpPost] public JsonResult CommissionQueryByClient(BaseSearchReq req, string Name, string Department, string ClientName) { var salesmanIds = new List(); var salesmanDepartments = new List(); var commissionClients = new List(); if (!string.IsNullOrWhiteSpace(Name)) { var temp = Name.Split(','); if (temp.Count() > 0) { foreach (var id in temp) { int.TryParse(id, out var i); salesmanIds.Add(i); } } } if (!string.IsNullOrWhiteSpace(Department)) { var temp = Department.Split(','); if (temp.Count() > 0) { foreach (var department in temp) { salesmanDepartments.Add(department); } } } if (!string.IsNullOrEmpty(ClientName)) { var temp = ClientName.Split(','); if (temp.Count() > 0) { foreach (var client in temp) { int.TryParse(client, out var i); commissionClients.Add(i); } } } var sList = new SalesCommissionDataService(CurUser).CommissionQueryByClient(req, salesmanIds, salesmanDepartments, commissionClients); if (sList != null) { return Json(sList); } return JsonError("未查到结果"); } /// /// 客户提成明细查询 /// /// [HttpPost] public JsonResult FangDunCommissionQueryByClient(BaseSearchReq req, string Name, string Department, string ClientName) { var salesmanIds = new List(); var salesmanDepartments = new List(); var commissionClients = new List(); if (!string.IsNullOrWhiteSpace(Name)) { var temp = Name.Split(','); if (temp.Count() > 0) { foreach (var id in temp) { int.TryParse(id, out var i); salesmanIds.Add(i); } } } if (!string.IsNullOrWhiteSpace(Department)) { var temp = Department.Split(','); if (temp.Count() > 0) { foreach (var department in temp) { salesmanDepartments.Add(department); } } } if (!string.IsNullOrEmpty(ClientName)) { var temp = ClientName.Split(','); if (temp.Count() > 0) { foreach (var client in temp) { int.TryParse(client, out var i); commissionClients.Add(i); } } } var sList = new SalesCommissionDetailDataService(CurUser).FunDunCommissionDetailQueryByClient(req, salesmanIds, salesmanDepartments, commissionClients); if (sList != null) { return Json(sList); } return JsonError("未查到结果"); } /// /// 客户提成明细导出 /// /// public ActionResult CommissionListByClientExport(BaseSearchReq req, string ids, string departments, string clients) { var list = ((SearchListResult)CommissionQueryByClient(req, ids, departments, clients).Value).rows; var templateFilePath = Server.MapPath("~/App_Docs/导出模板/客户销售提成明细.xlsx"); using (var generator = Office.ExcelModule.ExcelGenerator.UseTemplateGenerator(templateFilePath). AddVariable(new { list })) { return File(generator.GenerateBytes(), "application/vnd.ms-excel", "客户提成明细_" + DateTime.Today.ToString("yyyy-MM-dd") + ".xlsx"); } } public ActionResult FangDunCommissionListByClientExport(BaseSearchReq req, string ids, string departments, string clients) { var list = ((SearchListResult)FangDunCommissionQueryByClient(req, ids, departments, clients).Value).rows; var templateFilePath = Server.MapPath("~/App_Docs/导出模板/客户销售提成明细.xlsx"); using (var generator = Office.ExcelModule.ExcelGenerator.UseTemplateGenerator(templateFilePath). AddVariable(new { list })) { return File(generator.GenerateBytes(), "application/vnd.ms-excel", "客户提成明细_" + DateTime.Today.ToString("yyyy-MM-dd") + ".xlsx"); } } /// /// 交易提成明细查询 /// /// [HttpPost] public JsonResult CommissionQuery(SalesCommissionReq req) { var sList = new SalesCommissionDataService(CurUser).CommissionQuery(req); if (sList != null) { return Json(sList); } return JsonError("未查到结果"); } /// /// 方顿交易提成明细查询 /// /// [HttpPost] public JsonResult FangDunCommissionQuery(SalesCommissionDetailReq req) { var sList = new SalesCommissionDetailDataService(CurUser).CommissionDetailQuery(req); if (sList != null) { return Json(sList); } return JsonError("未查到结果"); } public JsonResult GetClientDefaultSalesmen(int ClientId) { if (PS.Config.ErpElement.SaleMode == YLErp.Configuration.Enums.SaleMode.SaleMen) { var seller = clientDB.client.Where(o => o.id == ClientId).Select(o => o.Seller).FirstOrDefault(); if (string.IsNullOrWhiteSpace(seller)) { return JsonSuccessData(null); } var salesmanIds = seller.Split(','); return Json(salesmanIds); } else if (PS.Config.ErpElement.SaleMode == YLErp.Configuration.Enums.SaleMode.CustomerManager) { var customerManager = clientDB.client.Where(o => o.id == ClientId).Select(o => o.CustomerManagerId).FirstOrDefault(); if (string.IsNullOrWhiteSpace(customerManager)) { return JsonSuccessData(null); } var customerManagerIds = customerManager.Split(','); return Json(customerManagerIds); } return JsonSuccessData(null); } } }