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

145 lines
5.5 KiB
C#

using YLErp.Enums;
using YLErp.Model.Enum;
using YLErp.Modules.ClientCashModule;
using YLErp.Modules.ClientModule;
namespace YLErp.Web.Controllers
{
public class book_calendarController : BaseController
{
[MyAuthorize("客户管理-双录预约")]
public ActionResult book_calendarList()
{
ViewBag.IsClientNeedBook = valuedateBLL.SystemDate.IsClientNeedBook;
return View();
}
[HttpPost]
public JsonResult book_calendarQuery(ClientBookCalendarReq req)
{
var sList = new ClientBookCalendarService(CurUser).SearchList(req);
return Json(sList);
}
[HttpPost]
public JsonResult Ensurebook_calendar(string id)
{
var intid = DataProtectHelper.DecryptInt(id);
var r = clientDB.book_calendar.Find(intid);
if (r == null)
{
return JsonError("未找到该预约记录,确认失败");
}
else
{
r.state = BookCalendarStateEnum.已确认.ToString();
// 发送邮件
var emails = ClientDataQueryService.GetClientEmails(r.clientid ?? 0);
var status = EmailTradeConfirmResultType.Succeed;
if (!emails.Any())
{
status = EmailTradeConfirmResultType.NoEmailSetting;
}
foreach (var email in emails)
{
if (string.IsNullOrEmpty(email))
{
status = EmailTradeConfirmResultType.NoEmailSetting;
}
}
if (status == EmailTradeConfirmResultType.Succeed)
{
var sendMail = EmailHelper.SendMail(string.Join(";", emails), "双录预约邮件", "双录预约成功,双录时间为" + r.appointmenttime);
if (!string.IsNullOrEmpty(sendMail))
{
status = EmailTradeConfirmResultType.EmailSentFailed;
}
}
switch (status)
{
case EmailTradeConfirmResultType.Succeed:
yldb.SaveChanges();
return JsonSuccess("确认成功");
case EmailTradeConfirmResultType.NoEmailSetting:
return JsonError("未设置邮箱,无法发送双录预约邮件");
case EmailTradeConfirmResultType.EmailSentFailed:
return JsonError("发送双录预约邮件失败");
case EmailTradeConfirmResultType.Other:
default:
return JsonError("发送邮件未知错误");
}
}
}
[HttpPost]
public JsonResult Denybook_calendar(string id)
{
var intid = DataProtectHelper.DecryptInt(id);
var r = clientDB.book_calendar.Find(intid);
if (r == null)
{
return JsonError("未找到该预约记录,拒绝失败");
}
else
{
r.state = BookCalendarStateEnum.已拒绝.ToString();
// 发送邮件
var emails = ClientDataQueryService.GetClientEmails(r.clientid ?? 0);
var status = EmailTradeConfirmResultType.Succeed;
if (!emails.Any())
{
status = EmailTradeConfirmResultType.NoEmailSetting;
}
foreach (var email in emails)
{
if (string.IsNullOrEmpty(email))
{
status = EmailTradeConfirmResultType.NoEmailSetting;
}
}
if (status == EmailTradeConfirmResultType.Succeed)
{
var sendMail = EmailHelper.SendMail(string.Join(";", emails), "双录预约邮件", "双录预约被拒绝,双录人员在" + r.appointmenttime + "该时间忙,请重新选择双录预约时间");
if (!string.IsNullOrEmpty(sendMail))
{
status = EmailTradeConfirmResultType.EmailSentFailed;
}
}
switch (status)
{
case EmailTradeConfirmResultType.Succeed:
yldb.SaveChanges();
return JsonSuccess("拒绝成功");
case EmailTradeConfirmResultType.NoEmailSetting:
return JsonError("未设置邮箱,无法发送双录预约邮件");
case EmailTradeConfirmResultType.EmailSentFailed:
return JsonError("发送双录预约邮件失败");
case EmailTradeConfirmResultType.Other:
default:
return JsonError("发送邮件未知错误");
}
}
}
[HttpPost]
public JsonResult Completebook_calendar(string id)
{
var intid = DataProtectHelper.DecryptInt(id);
var r = clientDB.book_calendar.Find(intid);
if (r == null)
{
return JsonError("未找到该预约记录,完成失败");
}
r.state = BookCalendarStateEnum.已完成.ToString();
yldb.SaveChanges();
return JsonSuccess("完成成功");
}
}
}