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

176 lines
6.9 KiB
C#

using YLErp.Model.Enum;
using YLErp.Modules.ClientModule;
namespace YLErp.Web.Controllers
{
public class bankcardController : BaseController
{
public ActionResult bankcardEditPopInner(int? rid, bool isOnlyView = false)
{
var clientCount = yldb.approvalprocess.Where(x => x.processType == "OpenProcess").Count();
ViewBag.ClientApprovalProcessCount = clientCount;
var client = clientDB.client.Find(rid);
ViewBag.ProcessStatus = client == null ? "未提交" : client.ProcessStatus;
var bankCard = new List<ClientBankCard>();
var models = clientDB.bankcard.Where(b => b.ApprovalOrder < 1 && b.ClientId == rid).ToList();
if (models != null)
{
foreach (var m in models)
{
var b = new ClientBankCard
{
id = m.id,
Bank = m.Bank,
Card = System.Text.RegularExpressions.Regex.Replace(m.Card, @"(\d{4}(?!$))", "$1 "),
ClientId = m.ClientId,
Payment = m.Payment,
ClientName = m.ClientName,
ValidState = m.ValidState,
OptId = m.OptId,
OptName = m.OptName,
OptDate = m.OptDate,
State = m.State,
Comments = m.Comments,
ApprovalOrder = (int)ApprovalOrderEnum.无需审批
};
bankCard.Add(b);
}
}
ViewBag.IsOnlyView = isOnlyView;
return View(bankCard);
}
[HttpPost]
public JsonResult bankcardQuery(ClientBankCardReq req)
{
var sList = new ClientBankCardService(CurUser).SearchList(req);
return Json(sList);
}
public ActionResult bankcardEdit(string enid, int? rid)
{
var r = new ClientBankCard();
var isAdd = string.IsNullOrEmpty(enid) || enid == "0";
var clientCount = yldb.approvalprocess.Where(x => x.processType == "OpenProcess").Count();
ViewBag.ClientApprovalProcessCount = clientCount;
if (isAdd)
{
if (rid != null)
{
//客户id
var client = clientDB.client.Find(rid);
if (client == null)
{
throw new ServiceException("请先保存用户基本信息");
}
r.ClientId = client == null ? 0 : client.id;
r.ClientName = client == null ? "" : client.Name;
ViewBag.ProcessStatus = client == null ? "未提交" : client.ProcessStatus;
ViewBag.IsProductType = client.ClientType == ClientTypeEnum.产品.ToString();
}
else
{
ViewBag.ProcessStatus = "未提交";
ViewBag.IsProductType = false;
}
return View(r);
}
else
{
var intid = DecryptInt(enid);
r = clientDB.bankcard.Find(intid);
if (r != null)
{
var client = clientDB.client.Find(r.ClientId);
ViewBag.ProcessStatus = client == null ? "未提交" : client.ProcessStatus;
ViewBag.IsProductType = client.ClientType == ClientTypeEnum.产品.ToString();
}
else
{
ViewBag.ProcessStatus = "未提交";
ViewBag.IsProductType = false;
}
return View(r);
}
}
[HttpPost]
public JsonResult bankcardEditJson(ClientBankCard req)
{
var set = Request.Form.Keys.Cast<string>().ToHashSet(StringComparer.OrdinalIgnoreCase);
var r = new ClientBankCardService(CurUser).SaveBankCard(req, out _, set);
return JsonSuccess("更新成功", r);
}
/// <summary>
/// 银行卡详情
/// </summary>
public JsonResult AjaxGetBankcardDetail(string enid)
{
var intid = DecryptInt(enid);
var dbModel = intid > 0 ? clientDB.bankcard.AsNoTracking().FirstOrDefault(n => n.id == intid) : null;
if (dbModel == null)
{
return JsonError("没有找到银行卡信息");
}
return JsonSuccessData(dbModel);
}
/// <summary>
/// 作废银行卡
/// </summary>
public JsonResult AjaxInvalidBankcard(string enid, bool isDirectSubApp = false)
{
var intid = DecryptInt(enid);
if (intid < 1)
{
return JsonError("没有找到银行卡信息");
}
var bankcard = new ClientBankCardService(CurUser).InvalidBankcard(intid, out var client, isDirectSubApp);
return JsonSuccessData(new { bankcard, client = new { client.ProcessStatus, client.ProcessOrderId, client.ProcessOptDate } });
}
/// <summary>
/// 根据客户ID获取银行卡信息列表
/// </summary>
public JsonResult AjaxGetBankcardList(int clientId, bool isApproval = false)
{
var bankcards = clientId == 0 ? new ClientBankCard[0] : clientDB.bankcard.Where(b => b.ClientId == clientId && b.ApprovalOrder != (int)ApprovalOrderEnum.审批作废).ToArray();
if (isApproval)
{
var notbankcards = bankcards.Where(x => x.SourceId > 0).Select(x => x.SourceId ?? 0).ToList();
notbankcards.AddRange(bankcards.Where(x => x.ApprovalOrder == (int)ApprovalOrderEnum.删除).Select(x => x.id).ToList());
bankcards = bankcards.Where(x => !notbankcards.Contains(x.id)).ToArray();
foreach (var item in bankcards)
{
if (item.ApprovalOrder == (int?)ApprovalOrderEnum.失效)
{
item.ValidState = "InValid";
}
}
}
else
{
bankcards = bankcards.Where(x => x.ApprovalOrder < 1).ToArray();
}
return JsonSuccessData(bankcards);
}
/// <summary>
/// 保存银行卡信息
/// </summary>
public JsonResult AjaxSaveBankCard(ClientBankCard req, bool isDirectSubApp = false)
{
var set = Request.Form.Keys.Cast<string>().ToHashSet(StringComparer.OrdinalIgnoreCase);
var bankcard = new ClientBankCardService(CurUser).SaveBankCard(req, out var client, set, isDirectSubApp);
return JsonSuccess("更新成功", new { bankcard, client = new { client.ProcessStatus, client.ProcessOrderId, client.ProcessOptDate } });
}
}
}