From ab24d1de25687cfdb12ccfcad8d117b040d9138c Mon Sep 17 00:00:00 2001 From: Janie <109517022+Janie06@users.noreply.github.com> Date: Tue, 14 Mar 2023 10:03:02 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AA=BF=E6=95=B4=20CancelBooking=20API=20+=20?= =?UTF-8?q?=E8=A8=82=E5=96=AE=E7=9B=B8=E9=97=9C=E4=BF=A1=E4=BB=B6=E6=A8=A3?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. CancelBooking API 寄出通知信給user、supplier 2. BookingStatus = 04(已取消),ModifyDate = now(取消訂單時間) 3. 取消訂單、退款信件樣式 --- .../EasyBL.WEBAPP/ShowEasy/BookingMail.cs | 388 +++++++++++++++++- .../ShowEasy/BookingOnlineService.cs | 139 ++++++- 2 files changed, 519 insertions(+), 8 deletions(-) diff --git a/EuroTran/EasyBL.WEBAPP/ShowEasy/BookingMail.cs b/EuroTran/EasyBL.WEBAPP/ShowEasy/BookingMail.cs index 2162bf4..e9b08c0 100644 --- a/EuroTran/EasyBL.WEBAPP/ShowEasy/BookingMail.cs +++ b/EuroTran/EasyBL.WEBAPP/ShowEasy/BookingMail.cs @@ -1047,6 +1047,151 @@ namespace EasyBL.WEBAPP.SYS } + //Cancel Booking(User) + public string CancelledBooking(string Img, string LastName, string BookingStatus, string PaymentStatus, string BookingNo, string BookingItem, DateTime? BookingDate, DateTime? ServiceDateS, string CurrencyID, string TotalPrice, string ServiceName) + { + + StringBuilder sb = new StringBuilder(); + + EmailTemplate_CH mailTemplate = new EmailTemplate_CH(); + //var Server = Common.ConfigGetValue("", "ida:RedirectUri"); + + sb.Append(mailTemplate.MailHeader()); + sb.Append(mailTemplate.MailCSS()); + sb.Append(mailTemplate.MailShowEasyLogo()); + //Email Body + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + //如果按鈕無法點擊 (連結記得改成要打的API) + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append("
"); + sb.Append(" "); + //Text:你好 xxx, + sb.Append(""); + sb.Append(""); + sb.Append(""); + //Text:我們正在處理您的退款 + sb.Append(""); + sb.Append(""); + sb.Append(""); + //Text:訂單資訊 + sb.Append(""); + sb.Append(""); + sb.Append(""); + //Button:service card start ---------------------------------------------------- + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append("
"); + sb.Append("

"); + sb.Append("你好," + LastName + ","); + sb.Append("

"); + sb.Append("
"); + sb.Append("

"); + sb.Append("我們已收到您希望取消訂單的申請。
"); + sb.Append("
"); + sb.Append("取消訂單會依據各商品的退款規則,可能需支付退款費用。"); + sb.Append("
"); + sb.Append("
"); + sb.Append("若有任何問題,您可以"); + sb.Append("
"); + sb.Append("撥打 +886-2 27255000"); + sb.Append("
"); + sb.Append("發送 Email: info@showeasy.com。"); + sb.Append("
"); + sb.Append("
"); + sb.Append("ShowEasy 客服時間:"); + sb.Append("週一至週五:9:00~18:00 (台灣時區)"); + sb.Append("

"); + sb.Append("
"); + sb.Append("

"); + sb.Append("訂單資訊:"); + sb.Append("

"); + sb.Append("
"); + sb.Append(""); + sb.Append(""); + sb.Append(""); + //service img + sb.Append(""); + //booking status + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append("
"); + sb.Append(""); + sb.Append(Img); + sb.Append("\" width = '30' height = '30'"); + sb.Append(""); + sb.Append("

"); + sb.Append("取消訂單, " + PaymentStatus); + sb.Append("

"); + //service name + sb.Append("

"); + sb.Append(ServiceName); + sb.Append("

"); + //booking number + sb.Append("

"); + sb.Append(BookingNo); + sb.Append("

"); + //BookingItem + //sb.Append("

"); + //sb.Append("接送服務, 台北市, 四人座車型 x 1"); + //sb.Append("

"); + var lstT = new List(); + var objval = BookingItem.ToString(); + if (!string.IsNullOrEmpty(objval) && objval != "[]") + { + lstT = JsonConvert.DeserializeObject>(objval.ToString()); + } + foreach (var item in lstT) + { + sb.Append("

"); + sb.Append(item); + sb.Append("

"); + } + //service time + sb.Append("

"); + sb.Append("服務時間: " + ServiceDateS); + sb.Append("

"); + //booking time + sb.Append("

"); + sb.Append("訂購時間: " + BookingDate); + sb.Append("

"); + //cost + sb.Append("

"); + sb.Append("$" + TotalPrice + CurrencyID); + sb.Append("

"); + //sb.Append(""); + sb.Append(""); + sb.Append("查看訂單"); + sb.Append(""); + sb.Append("
"); + sb.Append("
"); + sb.Append("
"); + sb.Append("如果按鈕無法點擊,你可以直接點擊"); + sb.Append("

"); + sb.Append(""); + sb.Append("這裡"); + sb.Append(""); + sb.Append("

"); + sb.Append("
"); + //sb.Append(mailTemplate.MailButtom()); + sb.Append(mailTemplate.MailFooter()); + + return sb.ToString(); + + } + //Refunding for customer public string Refunding() { @@ -1066,7 +1211,7 @@ namespace EasyBL.WEBAPP.SYS sb.Append(""); sb.Append(""); sb.Append(" "); - //Text:hi + //Text:你好 xxx, sb.Append(""); sb.Append(""); sb.Append(""); - //Text:我們成功收到了你的訂單。 + //Text:我們正在處理您的退款 sb.Append(""); sb.Append(""); + sb.Append(""); sb.Append(""); + sb.Append(""); + //如果按鈕無法點擊 (連結記得改成要打的API) + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append("
"); sb.Append("

"); @@ -1074,7 +1219,7 @@ namespace EasyBL.WEBAPP.SYS sb.Append("

"); sb.Append("
"); sb.Append("

"); @@ -1167,8 +1312,128 @@ namespace EasyBL.WEBAPP.SYS } + //Refunded for customer + public string Refunded() + { + + StringBuilder sb = new StringBuilder(); + + EmailTemplate_CH mailTemplate = new EmailTemplate_CH(); + //var Server = Common.ConfigGetValue("", "ida:RedirectUri"); + + sb.Append(mailTemplate.MailHeader()); + sb.Append(mailTemplate.MailCSS()); + sb.Append(mailTemplate.MailShowEasyLogo()); + //Email Body + sb.Append("

"); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + //如果按鈕無法點擊 (連結記得改成要打的API) + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append("
"); + sb.Append(" "); + //Text:您好,xxx + sb.Append(""); + sb.Append(""); + sb.Append(""); + //Text:我們已成功退款。 + sb.Append(""); + sb.Append(""); + sb.Append(""); + //Text:訂單資訊 + sb.Append(""); + sb.Append(""); + sb.Append(""); + //Button:service card start ---------------------------------------------------- + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append("
"); + sb.Append("

"); + sb.Append("你好,Janie,"); + sb.Append("

"); + sb.Append("
"); + sb.Append("

"); + sb.Append("我們已成功退款。
"); + sb.Append("
"); + sb.Append("若有任何問題,您可以下兩種方式與我們聯繫:
"); + sb.Append("撥打 +886-2 27255000
"); + sb.Append("發送 Email: info@showeasy.com 。
"); + sb.Append("
"); + sb.Append("ShowEasy 客服時間:"); + sb.Append("週一至週五:9:00~18:00 (台灣時區)"); + sb.Append("

"); + sb.Append("
"); + sb.Append("

"); + sb.Append("訂單資訊:"); + sb.Append("

"); + sb.Append("
"); + sb.Append(""); + sb.Append(""); + sb.Append(""); + //service img + sb.Append(""); + //booking status + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append("
"); + sb.Append(""); + sb.Append(""); + sb.Append("

"); + sb.Append("等待確認中"); + sb.Append("

"); + //service name + sb.Append("

"); + sb.Append("包車遊覽|新北景點一日遊:九份&平溪&北海岸"); + sb.Append("

"); + //booking number + sb.Append("

"); + sb.Append("#B35553244AC"); + sb.Append("

"); + sb.Append("

"); + sb.Append("接送服務, 台北市, 四人座車型 x 1"); + sb.Append("

"); + //service time + sb.Append("

"); + sb.Append("服務時間: 2022.09.20 08:00 (當地時間)"); + sb.Append("

"); + //booking time + sb.Append("

"); + sb.Append("訂購時間: 2022.07.20 12:00"); + sb.Append("

"); + //cost + sb.Append("

"); + sb.Append("$3,500 台幣"); + sb.Append("

"); + sb.Append(""); + sb.Append("$3,500 台幣"); + sb.Append(""); + sb.Append("
"); + sb.Append("
"); + sb.Append("
"); + sb.Append("

"); + sb.Append("如果按鈕無法點擊,你可以直接點擊"); + sb.Append(""); + sb.Append("這裡"); + sb.Append(""); + sb.Append("

"); + sb.Append("
"); + //sb.Append(mailTemplate.MailButtom()); + sb.Append(mailTemplate.MailFooter()); + + return sb.ToString(); + + } + //Cancel Order Notify (SE/Supplier) - private string CheckPaymentStatus(string FirstName, string LastName, string BookingNo, string Amount, DateTime? date) + public string CancelOrderNotify(string BookingNo, string ServiceName, string FirstName, string LastName, string CurrencyID, string TotalPrice, DateTime? date) { StringBuilder sb = new StringBuilder(); @@ -1186,7 +1451,7 @@ namespace EasyBL.WEBAPP.SYS sb.Append("
"); sb.Append(" "); - //Text:您好,Janie, + //Text:客戶取消訂單! sb.Append(""); sb.Append(""); sb.Append(""); - //Text:我們已經成功收到你的付款! + //Text:您的客戶已取消訂單,請進行確認並進行退款流程! sb.Append(""); sb.Append(""); sb.Append(""); + //客戶名稱 + sb.Append(""); + sb.Append(""); + //訂單金額 + sb.Append(""); + sb.Append(""); + //取消日期 + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + //查看訂單按鈕 + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append("
"); sb.Append("

"); @@ -1194,7 +1459,7 @@ namespace EasyBL.WEBAPP.SYS sb.Append("

"); sb.Append("
"); sb.Append("

"); @@ -1213,6 +1478,119 @@ namespace EasyBL.WEBAPP.SYS sb.Append("

"); sb.Append("

"); + sb.Append(ServiceName); + sb.Append("

"); + sb.Append("
"); + sb.Append("

"); + sb.Append("客戶名稱: " + FirstName + " " + LastName); + sb.Append("

"); + sb.Append("
"); + sb.Append("

"); + sb.Append("訂單金額: " + CurrencyID + " " + TotalPrice); + sb.Append("

"); + sb.Append("
"); + sb.Append("

"); + sb.Append("取消日期" + date); + sb.Append("

"); + sb.Append("
"); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append("
"); + sb.Append(""); + sb.Append("查看訂單"); + sb.Append(""); + sb.Append("
"); + sb.Append("
"); + sb.Append("
"); + sb.Append("如果按鈕無法點擊,你可以直接點擊"); + sb.Append("

"); + sb.Append(""); + sb.Append("這裡"); + sb.Append(""); + sb.Append("

"); + sb.Append("
"); + //sb.Append(mailTemplate.MailButtom()); + sb.Append(mailTemplate.MailFooter()); + + return sb.ToString(); + + } + + //SE Cancel Order Notify + public string SECancelOrderNotify(string FirstName, string LastName, string BookingNo, string Amount, DateTime? date) + { + + StringBuilder sb = new StringBuilder(); + + EmailTemplate_CH mailTemplate = new EmailTemplate_CH(); + var Server = Common.ConfigGetValue("", "ida:RedirectUri"); + + sb.Append(mailTemplate.MailHeader()); + sb.Append(mailTemplate.MailCSS()); + sb.Append(mailTemplate.MailShowEasyLogo()); + //Email Body + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append(""); + sb.Append("
"); + sb.Append(" "); + //Text:客戶取消訂單! + sb.Append(""); + sb.Append(""); + sb.Append(""); + //Text:ShowEasy 已取消此訂單,請進行確認並進行退款流程。 + sb.Append(""); + sb.Append(""); + sb.Append(""); + //訂單編號 + sb.Append(""); + sb.Append(""); + //商品名稱 + sb.Append(""); + sb.Append(""); diff --git a/EuroTran/EasyBL.WEBAPP/ShowEasy/BookingOnlineService.cs b/EuroTran/EasyBL.WEBAPP/ShowEasy/BookingOnlineService.cs index f35b922..c24a558 100644 --- a/EuroTran/EasyBL.WEBAPP/ShowEasy/BookingOnlineService.cs +++ b/EuroTran/EasyBL.WEBAPP/ShowEasy/BookingOnlineService.cs @@ -397,15 +397,111 @@ namespace EasyBL.WEBAPP.SYS do { var db = SugarBase.DB; - var Booking = db.Updateable() //更新訂單狀態 - .UpdateColumns(x => new SETB_SAL_BookingOnline { BookingStatus = "04" }) + var Img = ""; + var sPayment = ""; + var changeBookingStatus = db.Updateable() //更新訂單狀態 + .UpdateColumns(x => new SETB_SAL_BookingOnline { BookingStatus = "04", ModifyDate = DateTime.Now }) .Where(x => x.BookingID == BookingID && x.Account == sAccount && x.LangType == Lang) .ExecuteCommand(); + var sUser = db.Queryable() //get Member info + .Where(x => x.Account == sAccount) + .Single(); + + var booking = db.Queryable() //get Booking info + .Where(x => x.Account == sAccount && x.BookingID == BookingID) + .Single(); + + var service = db.Queryable() //get Service info + .Where(x => x.ServiceID == booking.ServiceID && x.LangID == Lang) + .Single(); + + service.PreviewFile = GetPreviewFile(service.PreviewFile); + + var supplier = db.Queryable() //get Supplier info + .Where(x => x.SupplierID == service.SupplierID && x.LangType == Lang) + .Single(); + + var supplierMail = db.Queryable() //get Supplier Mail + .Where(x => x.SupplierID == service.SupplierID && x.LangType == Lang) + .Single(); + + //var img = db.Queryable() //get img info + //.Where(x => x.ParentID == sAccount && x.ParentID == service.PreviewFile) + //.Single(); + + if (!string.IsNullOrEmpty(booking.PaymentStatus)) + { + if (booking.PaymentStatus == "01") + { + sPayment = "未付清"; + } + else if (booking.PaymentStatus == "02") + { + sPayment = "已付款待確認"; + } + else if (booking.PaymentStatus == "03") + { + sPayment = "確認付款"; + } + else if (booking.PaymentStatus == "04") + { + sPayment = "退款中"; + } + else + { + sPayment = "已退款"; + } + } + + var OrgID = WebAppGlobalConstWord.TG_ORGID; + + if (sUser != null) + { + + } + + //寄信給User + var oEmail = new Emails(); //寄件人 + var toEmail = new List(); //收件人 + var oEmailTo = new EmailTo //收件人資訊 + { + ToUserID = sUser.MemberID, + ToUserName = sUser.LastName, + ToEmail = sUser.Email, + Type = "to" + }; + toEmail.Add(oEmailTo); + oEmail.FromUserName = "訂單取消通知"; //取fonfig + oEmail.Title = "訂單取消通知"; //取fonfig + oEmail.EmailBody = new BookingMail().CancelledBooking(service.PreviewFile, sUser.LastName, booking.BookingStatus, sPayment, booking.BookingNo, booking.BookingItem, booking.BookingDate, booking.ServiceDateS, booking.CurrencyID, booking.TotalPrice, service.ServiceName); + oEmail.IsCCSelf = false; + oEmail.Attachments = null; + oEmail.EmailTo = toEmail; + var bSend = new MailService(OrgID, true).MailFactory(oEmail, out sError); + + //寄信給Supplier + oEmail = new Emails(); //寄件人 + toEmail = new List(); //收件人 + oEmailTo = new EmailTo //收件人資訊 + { + ToUserID = sUser.MemberID, + ToUserName = sUser.LastName, + ToEmail = sUser.Email, + Type = "to" + }; + toEmail.Add(oEmailTo); + oEmail.FromUserName = "訂單取消通知"; //取fonfig + oEmail.Title = "訂單取消通知"; //取fonfig + oEmail.EmailBody = new BookingMail().CancelOrderNotify(booking.BookingNo, service.ServiceName, sUser.FirstName, sUser.LastName, booking.CurrencyID, booking.TotalPrice, booking.ModifyDate); + oEmail.IsCCSelf = false; + oEmail.Attachments = null; + oEmail.EmailTo = toEmail; + bSend = new MailService(OrgID, true).MailFactory(oEmail, out sError); //返回token信息 srm = new SuccessResponseMessage(null, null); - srm.DATA.Add(BLWording.REL, Booking); + srm.DATA.Add(BLWording.REL, bSend); } while (false); } @@ -609,7 +705,44 @@ namespace EasyBL.WEBAPP.SYS } + //取得封面圖片 + public string GetPreviewFile(string PreviewFile) + { + var sFilePath = ""; + var db = SugarBase.GetIntance(); + try + { + do + { + var sORIGID = WebAppGlobalConstWord.TG_ORGID; + string requestUrl = Common.ConfigGetValue("", "ida:RedirectUri"); + var oFilePath = db.Queryable() + .Where(x => x.ParentID == PreviewFile && x.OrgID == sORIGID) + .Select(x => new FileDTO + { + FileID = x.FileID, + FileName = x.FileName, + FilePath = x.FilePath + }) + .Single(); + + + if (oFilePath != null) + { + sFilePath = requestUrl + "/" + oFilePath.FilePath.Replace("\\", "/"); + + } + return sFilePath; + + } while (false); + } + catch (Exception ex) + { + + } + return sFilePath; + } }
"); + sb.Append("

"); + sb.Append("客戶取消訂單!"); + sb.Append("

"); + sb.Append("
"); + sb.Append("

"); + sb.Append("ShowEasy 已取消此訂單,請進行確認並進行退款流程。"); + sb.Append("

"); + sb.Append("
"); + sb.Append("

"); + sb.Append("訂單編號: " + BookingNo); + sb.Append("

"); + sb.Append("
"); + sb.Append("

"); sb.Append("台灣展館服務 - 高雄自動化展"); sb.Append("

"); sb.Append("