Files
zszq-trs/YLErpWeb/Controllers/SalesCommissionManageController.cs
T
2024-05-09 14:06:26 +08:00

415 lines
14 KiB
C#

using YLErp.Modules.SalesModule;
namespace YLErp.Web.Controllers
{
/// <summary>
/// 销售提成管理
/// </summary>
public class SalesCommissionManageController : BaseController
{
/// <summary>
/// 人员列表
/// </summary>
[MyAuthorize("销售管理-人员管理")]
public ActionResult SalesmenList()
{
return View();
}
/// <summary>
/// 客户提成明细
/// </summary>
public ActionResult CommissionInfoByClient()
{
if (PS.Config.ErpElement.SalesCommissionCalculation == "公式1")
{
return View("FangDunCommissionInfoByClient");
}
return View();
}
/// <summary>
/// 交易提成明细
/// </summary>
public ActionResult CommissionInfoByTrade()
{
if (PS.Config.ErpElement.SalesCommissionCalculation == "公式1")
{
return View("FangDunCommissionInfoByTrade");
}
return View();
}
/// <summary>
/// 查询销售人员信息
/// </summary>
[HttpPost]
public JsonResult SalesmenQuery(BaseSearchReq req, string ids, string departments)
{
var salesmenIds = new List<int>();
var salesmenDepartments = new List<string>();
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);
}
/// <summary>
/// 查看修改销售人员信息
/// </summary>
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);
}
/// <summary>
/// 上传销售人员信息
/// </summary>
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);
}
}
/// <summary>
/// 更新上传信息
/// </summary>
[HttpPost]
public async Task<JsonResult> SalesmanEditJson()
{
var salesman = new Salesman();
await TryUpdateModelAsync(salesman);
var result = new SalesmenDataService(CurUser).SaveSalesman(salesman);
if (result)
{
return JsonSuccess("更新成功", salesman);
}
return JsonSuccess("更新异常", salesman);
}
/// <summary>
/// 删除销售员信息
/// </summary>
[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("删除成功");
}
/// <summary>
/// 客户提成明细查询
/// </summary>
/// <returns></returns>
[HttpPost]
public JsonResult CommissionQueryByClient(BaseSearchReq req, string Name, string Department, string ClientName)
{
var salesmanIds = new List<int>();
var salesmanDepartments = new List<string>();
var commissionClients = new List<int>();
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("未查到结果");
}
/// <summary>
/// 客户提成明细查询
/// </summary>
/// <returns></returns>
[HttpPost]
public JsonResult FangDunCommissionQueryByClient(BaseSearchReq req, string Name, string Department, string ClientName)
{
var salesmanIds = new List<int>();
var salesmanDepartments = new List<string>();
var commissionClients = new List<int>();
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("未查到结果");
}
/// <summary>
/// 客户提成明细导出
/// </summary>
/// <returns></returns>
public ActionResult CommissionListByClientExport(BaseSearchReq req, string ids, string departments, string clients)
{
var list = ((SearchListResult<CommissionsGroupByClient>)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<CommissionsGroupByClient>)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");
}
}
/// <summary>
/// 交易提成明细查询
/// </summary>
/// <returns></returns>
[HttpPost]
public JsonResult CommissionQuery(SalesCommissionReq req)
{
var sList = new SalesCommissionDataService(CurUser).CommissionQuery(req);
if (sList != null)
{
return Json(sList);
}
return JsonError("未查到结果");
}
/// <summary>
/// 方顿交易提成明细查询
/// </summary>
/// <returns></returns>
[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);
}
}
}