/// <summary> /// 发送投诉邮件通知 /// </summary> /// <param name="complainSysNo">投诉单号</param> public void SendMain(int complainSysNo) { var info = GetInfo(complainSysNo); //更新操作人 info.ProcessInfo.OperatorSysNo = ServiceContext.Current.UserSysNo; m_da.UpdateCompainOperatorUser(info.ProcessInfo); //发送邮件 KeyValueVariables vars = new KeyValueVariables(); vars.Add("Title", info.ComplaintCotentInfo.Subject); vars.Add("SysNo", info.ComplaintCotentInfo.SysNo); vars.Add("Content", info.ProcessInfo.ReplyContent.Replace(Environment.NewLine, "<BR/>")); CustomerInfo customerInfo = null; if (info.ComplaintCotentInfo.CustomerSysNo.HasValue) { customerInfo = ExternalDomainBroker.GetCustomerInfo(info.ComplaintCotentInfo.CustomerSysNo.Value); } if (customerInfo != null) { ExternalDomainBroker.SendExternalEmail(customerInfo.BasicInfo.Email, "SO_ReplyComplainEmail", vars, customerInfo.BasicInfo.FavoriteLanguageCode); } //写入日志 AddHistory(info, ReplyOperatorType.SendMain); }
public void PriceChangedSendMail(SOInfo soInfo) { try { List <SOInternalMemoInfo> memoList = ObjectFactory <SOInternalMemoProcessor> .Instance.GetBySOSysNo(soInfo.SysNo.Value); List <int> productSysNoList = (from item in soInfo.Items select item.ProductSysNo.Value).ToList(); List <ECCentral.BizEntity.IM.ProductInfo> productList = ExternalDomainBroker.GetProductInfoListByProductSysNoList(productSysNoList); if (productList != null) { DataTable dtMemo = new DataTable(); dtMemo.Columns.AddRange(new DataColumn[] { new DataColumn("LogTime"), new DataColumn("Content"), new DataColumn("Note") }); productList.ForEach(p => { SOItemInfo item = soInfo.Items.Find(i => i.ProductSysNo.Value == p.SysNo); if (item != null) { KeyValueVariables keyValueVariables = new KeyValueVariables(); KeyTableVariables keyTableVariables = new KeyTableVariables(); string pmEmailAddress = p.ProductBasicInfo.ProductManager.UserInfo.EmailAddress; StringBuilder mailBody = new StringBuilder(); keyValueVariables.Add("SOSysNo", soInfo.SysNo.Value); keyValueVariables.Add("ProductID", item.ProductID); keyValueVariables.Add("ProductName", item.ProductName); keyValueVariables.Add("Quantity", item.Quantity); keyValueVariables.Add("Weight", item.Weight); keyValueVariables.Add("Price", item.Price); keyValueVariables.Add("GainAveragePoint", item.GainAveragePoint); keyValueVariables.Add("PromotionAmount", item.PromotionAmount); keyValueVariables.Add("Warranty", item.Warranty); if (memoList != null && memoList.Count > 0 && dtMemo.Rows.Count == 0) { foreach (SOInternalMemoInfo internalMemo in memoList) { DataRow dr = dtMemo.NewRow(); dr["LogTime"] = internalMemo.LogTime.HasValue ? internalMemo.LogTime.Value.ToString(SOConst.DateTimeFormat) : String.Empty; dr["Content"] = internalMemo.Content; dr["Note"] = internalMemo.Note; dtMemo.Rows.Add(dr); } } keyValueVariables.Add("MemoListDisplay", dtMemo.Rows.Count > 0); keyTableVariables.Add("MemoList", dtMemo); ExternalDomainBroker.SendInternalEmail("SO_Product_PriceChanged", keyValueVariables, keyTableVariables); } }); } } catch (Exception ex) { ExceptionHelper.HandleException(ex); } }
public void ElectronicSOPriceNotExists(SOInfo soInfo) { KeyValueVariables keyValueVariables = new KeyValueVariables(); keyValueVariables.Add("SOSysNo", soInfo.SysNo); keyValueVariables.Add("StockSysNo", soInfo.Items[0].StockSysNo); ExternalDomainBroker.SendInternalEmail("Invoice_Generate_Error", keyValueVariables); }
/// <summary> /// 发送内部邮件 /// </summary> /// <param name="emailList">发送地址列表</param> /// <param name="title">标题可以不填</param> /// <param name="content">发送内容</param> /// <returns>返回成功发送列表</returns> public List <string> SendInternalEmail(List <string> emailList, string title, string content, string language) { KeyValueVariables vars = new KeyValueVariables(); vars.Add("Title", title); vars.Add("Content", content); ExternalDomainBroker.SendExternalEmail(string.Join(";", emailList), "SO_InternalEmail", vars, language); return(emailList); }
private static void SendMail(string mailSubject, int computerConfigSysNo, string operationNote, string companyCode, int createUserSysNo) { var userInfo = ExternalDomainBroker.GetUserInfoBySysNo(createUserSysNo); var param = new KeyValueVariables(); param.Add("Subject", mailSubject); param.Add("LogSysNo", computerConfigSysNo); param.Add("OperationNote", operationNote); param.Add("CompanyCode", companyCode); ECCentral.Service.Utility.EmailHelper.SendEmailByTemplate(userInfo.EmailAddress, "MKT_ComputerConfig_Edit", param, true); }
/// <summary> /// 发送邮件通知PM Combo的因商品调价,状态已改 /// </summary> /// <param name="combo"></param> protected virtual void SendMail(ComboInfo combo) { UserInfo user = ExternalDomainBroker.GetUserInfoBySysNo(combo.CreateUserSysNo.Value); KeyValueVariables keyValueVariables = new KeyValueVariables(); keyValueVariables.Add("ComboSysNo", combo.SysNo.Value.ToString()); keyValueVariables.Add("ComboName", combo.Name.Content); keyValueVariables.Add("PMUser", user.UserDisplayName); EmailHelper.SendEmailByTemplate(user.EmailAddress, "MKT_Combo_ChangeStatusForChangeProductPrice", keyValueVariables, true); }
public void Test_GiftCardMailTest() { KeyValueVariables vars = new KeyValueVariables(); vars.Add("$$CustomerID", "Poseidon.Y.Tong"); vars.Add("$$TotalValue", "230.00"); vars.Add("$$ExpireDate", DateTime.Now.AddYears(2).ToString("yyyy-MM-dd")); vars.Add("$$LinkToMyAccount", "http://www.newegg.com.cn/Customer/MyGiftCard.aspx"); // var html = ObjectFactory<IEmailBizInteract>.Instance.GetMailTemplatesHtml("Refund_GiftCard_Notify", vars, null, "zh-CN"); }
private void SendNotifyMail(string customerEmail, string productName, string customerId) { KeyValueVariables vars = new KeyValueVariables(); vars.Add("GiftProductName", productName); vars.Add("Year", DateTime.Now.Year); if (string.IsNullOrEmpty(customerEmail)) { throw new BizException("顾客帐号:" + customerId + " : 邮件收件人不能为空!"); } ECCentral.Service.Utility.EmailHelper.SendEmailByTemplate(customerEmail, "CustomerGift_Notify", vars, false); }
public virtual bool SendEmail(string toEmail, string title, string content, string companyCode) { try { var param = new KeyValueVariables(); param.Add("Content", content); param.Add("Title", title); ECCentral.Service.Utility.EmailHelper.SendEmailByTemplate(toEmail, "Manual_Send", param, false); return(true); } catch { return(false); } }
public void BuildData(NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables) { variables = new KeyValueVariables(); tableVariables = new KeyTableVariables(); if (requestPostData != null) { variables.Add("TotalAmount", HttpUtility.UrlDecode(requestPostData["TotalAmount"])); } int count; DataTable dataTable = new DataTable(); dataTable.Columns.Add("VendorName"); dataTable.Columns.Add("InvoiceTime"); dataTable.Columns.Add("InputTime"); dataTable.Columns.Add("TotalAmt"); dataTable.Columns.Add("InvoiceNumber"); if (int.TryParse(requestPostData["InvoiceCount"], out count)) { DataRow row; for (int i = 0; i < count; i++) { row = dataTable.NewRow(); row["VendorName"] = HttpUtility.UrlDecode(requestPostData["V" + i]); row["InvoiceTime"] = HttpUtility.UrlDecode(requestPostData["I" + i]); row["InputTime"] = HttpUtility.UrlDecode(requestPostData["T" + i]); row["TotalAmt"] = HttpUtility.UrlDecode(requestPostData["A" + i]); row["InvoiceNumber"] = HttpUtility.UrlDecode(requestPostData["N" + i]); dataTable.Rows.Add(row); } } tableVariables.Add("InvoiceDetailList", dataTable); }
private void SendEmailValid(string customerID, string customerEmail, string productName) { if (string.IsNullOrEmpty(customerEmail)) { return; } KeyValueVariables vars = new KeyValueVariables(); vars.Add("ProductName", productName); vars.Add("CustomerID", customerID); vars.Add("Year", DateTime.Now.Year); vars.Add("Month", DateTime.Now.Month); vars.Add("Day", DateTime.Now.Day); EmailHelper.SendEmailByTemplate(customerEmail, "ProductPriceCompare_AuditPass", vars, false); }
private void SendVoidMail(string customerEmail) { KeyValueVariables vars = new KeyValueVariables(); vars.Add("Year", DateTime.Now.Year); ECCentral.Service.Utility.EmailHelper.SendEmailByTemplate(customerEmail, "CustomerGift_Void", vars, false); }
/// <summary> /// 创建一张发票 /// </summary> /// <param name="invoice">发票信息,包含主信息和Transaction信息</param> /// <returns></returns> public virtual InvoiceInfo Create(InvoiceInfo invoice) { try { return(ObjectFactory <IInvoiceDA> .Instance.Create(invoice)); } catch (System.Exception ex) { //发送内部邮件通知异常信息 KeyValueVariables replaceVariables = new KeyValueVariables(); replaceVariables.Add("SO", invoice.MasterInfo.SONumber); replaceVariables.Add("Stock", invoice.MasterInfo.StockSysNo); EmailHelper.SendEmailByTemplate("", "Invoice_CreateError_Notify", replaceVariables, true); throw ex; } }
public void ActivateElectronicSendMailToCustomer(SOInfo soInfo) { try { ECCentral.BizEntity.Customer.CustomerBasicInfo customerInfo = GetCustomerBaseInfo(soInfo.BaseInfo.CustomerSysNo.Value); string customerEmail = customerInfo.Email == null ? null : customerInfo.Email.Trim(); if (customerEmail == null) { return; } KeyValueVariables keyValueVariables = new KeyValueVariables(); keyValueVariables.Add("CustomerID", customerInfo.CustomerID); keyValueVariables.Add("Quantity", soInfo.Items[0].Quantity); keyValueVariables.Add("TotalAmount", (soInfo.Items[0].Quantity.Value * soInfo.Items[0].OriginalPrice.Value).ToString(SOConst.DecimalFormat)); keyValueVariables.Add("ExpireYear", DateTime.Now.AddYears(2).Year); keyValueVariables.Add("ExpireMonth", DateTime.Now.Month); keyValueVariables.Add("ExpireDay", DateTime.Now.Day); keyValueVariables.Add("NowYear", DateTime.Now.Year); ExternalDomainBroker.SendExternalEmail(customerEmail, "SO_ActivateElectronicGiftCard", keyValueVariables, customerInfo.FavoriteLanguageCode); } catch (Exception ex) { ExceptionHelper.HandleException(ex); } }
public void RecommendCustomerAddExperienceSendMail(ECCentral.BizEntity.Customer.CustomerBasicInfo recommendCustomerInfo, string newCustomerID, decimal experience) { try { string customerEmail = recommendCustomerInfo.Email == null ? null : recommendCustomerInfo.Email.Trim(); if (customerEmail == null) { return; } KeyValueVariables keyValueVariables = new KeyValueVariables(); keyValueVariables.Add("RmdCustomerID", recommendCustomerInfo.CustomerID); keyValueVariables.Add("NewCustomerID", newCustomerID); keyValueVariables.Add("Experience", experience); ExternalDomainBroker.SendExternalEmail(customerEmail, "SO_ShipOut_UserAddExperience", keyValueVariables, recommendCustomerInfo.FavoriteLanguageCode); } catch (Exception ex) { ExceptionHelper.HandleException(ex); } }
private void SendCreateEmail(string email, string requestId) { if (StringUtility.IsNullOrEmpty(email) || StringUtility.IsNullOrEmpty(requestId)) { return; } KeyValueVariables vars = new KeyValueVariables(); vars.Add("RequestID", requestId); EmailHelper.SendEmailByTemplate(email, "RMARequest_Create", vars); }
/// <summary> /// 退款转礼品卡成功则像客户发送一封邮件 /// </summary> /// <param name="entity"></param> /// <param name="giftCardResultCode"></param> protected virtual void SendGiftCardEmail(SOIncomeRefundInfo entity, string giftCardResultCode) { int code = 0; if (int.TryParse(giftCardResultCode, out code) && code == 0) { var customer = ExternalDomainBroker.GetCustomerBasicInfo(entity.CustomerSysNo.Value); KeyValueVariables vars = new KeyValueVariables(); vars.Add("CustomerID", customer.CustomerID); vars.Add("TotalValue", entity.RefundCashAmt.Value); vars.Add("ExpireYear", DateTime.Now.AddYears(2).Year); vars.Add("ExpireMonth", DateTime.Now.Month); vars.Add("ExpireDay", DateTime.Now.Day); vars.Add("Year", DateTime.Now.Year); EmailHelper.SendEmailByTemplate(customer.Email, "Refund_GiftCard_Notify", vars, true, customer.FavoriteLanguageCode); } else { //记录操作日志 ObjectFactory<ICommonBizInteract>.Instance.CreateOperationLog( GetMessageString("SOIncomeRefund_Log_GiftCardRefundFailed", entity.SOSysNo.Value) , BizLogType.AuditRefund_Update , entity.SysNo.Value , entity.CompanyCode); ThrowBizException("SOIncomeRefund_Log_GiftCardRefundFailed", entity.SOSysNo.Value); } }
/// <summary> /// 财务拒绝审核应付记录,通知归属的PM /// </summary> /// <param name="pmSysNo"></param> /// <param name="payableInfo"></param> private void SendMailAfterRefuseAuditFinancePay(int pmSysNo, PayableInfo payableInfo) { string mailAddress = GetPMAndTLMailMailAddress(pmSysNo); //拒绝操作记日志 ObjectFactory <ICommonBizInteract> .Instance.CreateOperationLog( GetMessageString("Payable_Log_RefuseAuditFinancePay", mailAddress) , BizLogType.Invoice_Payable_RefuseAuditFinancePay , payableInfo.SysNo.Value , payableInfo.CompanyCode); //邮件地址不为空时发邮件通知 if (!string.IsNullOrEmpty(mailAddress)) { KeyValueVariables replaceVariables = new KeyValueVariables(); replaceVariables.Add("OrderSysNo", payableInfo.OrderSysNo); replaceVariables.Add("BatchNumber", payableInfo.BatchNumber); replaceVariables.Add("OrderType", payableInfo.OrderType.ToDisplayText()); replaceVariables.Add("OrderAmt", payableInfo.OrderAmt.Value.ToString(InvoiceConst.StringFormat.DecimalFormat)); replaceVariables.Add("UserSysNo", ServiceContext.Current.UserSysNo); EmailHelper.SendEmailByTemplate(mailAddress, "Payable_RefuseAudit_Notify", replaceVariables, true); } }
public void BuyGrifCardMailMethod() { KeyValueVariables keyValueVariables = new KeyValueVariables(); keyValueVariables.Add("CustomerID", "Geeker"); keyValueVariables.Add("Quantity", 2); keyValueVariables.Add("TotalAmount", 300); keyValueVariables.Add("ExpireYear", DateTime.Now.AddYears(2).Year); keyValueVariables.Add("ExpireMonth", DateTime.Now.Month); keyValueVariables.Add("ExpireDay", DateTime.Now.Day); keyValueVariables.Add("NowYear", DateTime.Now.Year); EmailHelper.SendEmailByTemplate("*****@*****.**", "SO_ActivateElectronicGiftCard", keyValueVariables, null, "zh-CN"); }
/// <summary> /// 替换邮件模板内连接追踪代码 /// </summary> /// <param name="emailType"></param> private static void ReplaceCM_MMC(string emaileTemplateID, KeyValueVariables keyValueVariables) { string now = DateTime.Now.ToString("yyyyMMdd"); string homePage = string.Format("?cm_mmc=emc-_-tran{0}-_-homepage", now); string countDown = string.Format("?cm_mmc=emc-_-tran{0}-_-countdown", now); string mobile = string.Format("?cm_mmc=emc-_-tran{0}-_-mobile", now); switch (emaileTemplateID) { case "SO_Created": case "SO_Audit_Passed": case "SO_OutStock": case "SO_Splited": break; default: homePage = countDown = mobile = string.Empty; break; } keyValueVariables.Add("CM_MMC_HomePage", homePage); keyValueVariables.Add("CM_MMC_CountDown", countDown); keyValueVariables.Add("CM_MMC_Mobile", mobile); }
public void GiftCardMailMethod() { KeyValueVariables vars = new KeyValueVariables(); vars.Add("CustomerID", "geeker"); vars.Add("TotalValue", 500); vars.Add("ExpireYear", DateTime.Now.AddYears(2).Year); vars.Add("ExpireMonth", DateTime.Now.Month); vars.Add("ExpireDay", DateTime.Now.Day); vars.Add("Year", DateTime.Now.Year); EmailHelper.SendEmailByTemplate("*****@*****.**", "Refund_GiftCard_Notify", vars, null, "zh-CN"); }
public void BuildData(NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables) { variables = new KeyValueVariables(); tableVariables = new KeyTableVariables(); string sysNo = requestPostData["SysNo"]; if (!string.IsNullOrEmpty(sysNo)) { StringBuilder sbRegisterSysNo = new StringBuilder(); StringBuilder sbCustomerDesc = new StringBuilder(); StringBuilder sbBriefNames = new StringBuilder(); CustomerInfo customer; SOBaseInfo soBaseInfo; DeliveryInfo deliveryInfo; int requestSysNo; string deliveryUserName, businessModel; if (int.TryParse(sysNo, out requestSysNo)) { var request = ObjectFactory <RequestAppService> .Instance.LoadWithRegistersBySysNo(requestSysNo, out customer, out soBaseInfo, out deliveryInfo, out deliveryUserName, out businessModel); if (request.Registers != null) { foreach (RMARegisterInfo register in request.Registers) { sbRegisterSysNo.Append(string.Format("{0}, ", register.SysNo.Value.ToString())); sbBriefNames.Append(string.Format("{0}<br />", register.BasicInfo.ProductName)); sbCustomerDesc.Append(string.Format("{0}<br />", register.BasicInfo.CustomerDesc)); } } variables.Add("Now", DateTime.Now.ToString("yyyy-MM-dd")); variables.Add("SOSysNo", request.SOSysNo); variables.Add("Contact", request.Contact); variables.Add("Phone", request.Phone); variables.Add("Address", request.Address); variables.Add("RegisterSysNoString", sbRegisterSysNo.ToString().Substring(0, sbRegisterSysNo.Length - 2)); variables.Add("BriefNameString", sbBriefNames.ToString()); variables.Add("CustomerDescString", sbCustomerDesc.ToString()); } } }
protected virtual void ChangeResponsibleUserName(TrackingInfo entity, TrackingInfo trackingInfo, string emailAddr) { if (string.Compare(trackingInfo.ResponsibleUserName, entity.ResponsibleUserName, true) != 0) { string fromEmail = string.Empty; //邮件发送人 string emailAddress = string.Empty; //收件人 string ccEmailAddress = string.Empty; //抄送人 = 发送人 string orgEmail = string.Empty; //原责任人邮件地址 List <string> emailAddrList = m_TrackInfoDA.GetEmailAddressByResponsibleUserName(entity.ResponsibleUserName); List <string> orgEmailAddrList = m_TrackInfoDA.GetEmailAddressByResponsibleUserName(trackingInfo.ResponsibleUserName); //从逾期未付款修改责任人 if (string.IsNullOrEmpty(emailAddr)) { emailAddress = string.Join(";", this.CheckEmailAddress(emailAddrList)); } else//从责任人配置修改责任人 { emailAddress = emailAddr; } orgEmail = string.Join(";", this.CheckEmailAddress(orgEmailAddrList)); fromEmail = m_TrackInfoDA.GetEmailAddressByUserSysNo(ServiceContext.Current.UserSysNo); ccEmailAddress = string.Join(";", this.CheckEmailAddress(new List <string>() { fromEmail })); //记录操作日志 ObjectFactory <ICommonBizInteract> .Instance.CreateOperationLog( GetMessageString("TrackingInfo_Log_ChangeResponsibleUserName", ServiceContext.Current.UserSysNo, entity.SysNo, entity.Note) , BizLogType.Invoice_TrackingInfo_ChangeResponsibleUserName , entity.SysNo.Value , entity.CompanyCode); KeyValueVariables replaceVariables = new KeyValueVariables(); replaceVariables.Add("Year", DateTime.Now.Year); replaceVariables.Add("Month", DateTime.Now.Month); replaceVariables.Add("Day", DateTime.Now.Day); replaceVariables.Add("UserSysNo", ServiceContext.Current.UserSysNo); replaceVariables.Add("OrderSysNo", entity.OrderSysNo); replaceVariables.Add("FromEmail", fromEmail); EmailHelper.SendEmailByTemplate(emailAddress, "ResponsibleUser_Change_Notify", replaceVariables, true); } }
public void SendProductRingEmail(string emailTemplate, List <ProductRingDetailInfo> detailList) { if (null != detailList && detailList.Count > 0) { DataTable dtProduct = new DataTable(); dtProduct.Columns.AddRange(new DataColumn[] { new DataColumn("ProductID"), new DataColumn("ProductName"), new DataColumn("BatchNumber"), new DataColumn("ActualQty"), new DataColumn("LeftRingDays"), }); KeyTableVariables keyTablesVariables = new KeyTableVariables(); KeyValueVariables keyValueVariables = new KeyValueVariables(); keyValueVariables.Add("Receiver", detailList[0].Email); detailList.ForEach(p => { DataRow dr = dtProduct.NewRow(); dr["ProductID"] = p.ProductID; dr["ProductName"] = p.ProductName; dr["BatchNumber"] = p.BatchNumber; dr["ActualQty"] = p.ActualQty; dr["LeftRingDays"] = p.LeftRingDays; dtProduct.Rows.Add(dr); }); keyTablesVariables.Add("ProductList", dtProduct); ExternalDomainBroker.SendInternalEmail(detailList[0].Email.Trim(), emailTemplate, keyValueVariables, keyTablesVariables); //ExternalDomainBroker.SendExternalEmail(detailList[0].Email, emailTemplate, keyValueVariables, keyTablesVariables,"zh-CN"); } }
public ActionResult BuildEmailTemplate() { KeyValueVariables keyValues = new KeyValueVariables(); keyValues.Add("StockName", "香港九龙仓"); keyValues.Add("ETATime", DateTime.Now.Date); keyValues.Add("CompanyName", "公司名称"); keyValues.Add("CompanyAddress", "公司地址"); keyValues.Add("CompanyTel", "123456789"); keyValues.Add("CompanyWebSite", "http://www.xxx.com"); keyValues.Add("StockAddress", "仓库地址"); keyValues.Add("StockContact", "仓库联系人"); keyValues.Add("StockTel", "仓库电话"); keyValues.Add("displayNo", ""); keyValues.Add("numberString", "1231312312312321"); keyValues.Add("shipTypeString", "默认 配送方式"); keyValues.Add("totalInPage", "5000.00"); keyValues.Add("totalAmt", "18000.00"); keyValues.Add("totalReturnPoint", "100"); keyValues.Add("PMName", "产品经理姓名"); keyValues.Add("CurrencyName", "港币"); keyValues.Add("entity.POID", "123"); keyValues.Add("DateTime.Now", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); keyValues.Add("vendor.VendorName", "供应商名称"); keyValues.Add("vendor.SysNo", "123"); keyValues.Add("vendor.Address", "供应商联系地址"); keyValues.Add("vendor.Contact", "供应商联系人"); keyValues.Add("vendor.Fax", "0123445"); keyValues.Add("entity.InTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); keyValues.Add("entity.PayTypeName", "默认支付方式"); keyValues.Add("entity.Memo", "备注信息备注信息备注信息备注信息备注信息"); keyValues.Add("entity.InStockMemo", "入库备注入库备注入库备注入库备注入库备注入库备注入库备注"); keyValues.Add("SendTimeString", DateTime.Now.ToString()); KeyTableVariables keyTables = new KeyTableVariables(); DataTable productAccessoryList = new DataTable(); productAccessoryList.Columns.Add("ProductID"); productAccessoryList.Columns.Add("AccessoriesID"); productAccessoryList.Columns.Add("AccessoriesIDAndName"); productAccessoryList.Columns.Add("Qty"); DataTable productItemList = new DataTable(); productItemList.Columns.Add("item.ProductID"); productItemList.Columns.Add("item.IsVirtualStockProduct"); productItemList.Columns.Add("item.ProductMode"); productItemList.Columns.Add("item.BriefName"); productItemList.Columns.Add("item.CurrencySymbol"); productItemList.Columns.Add("item.OrderPrice"); productItemList.Columns.Add("item.PurchaseQty"); productItemList.Columns.Add("item.Quantity"); productItemList.Columns.Add("item.PurchaseQtyOrderPrice"); productItemList.Columns.Add("item.QuantityOrderPrice"); for (int i = 0; i < 5; i++) { DataRow dr = productItemList.NewRow(); dr["item.ProductID"] = "ProductID-" + i.ToString(); dr["item.IsVirtualStockProduct"] = "IsVirtualStockProduct-" + i; dr["item.ProductMode"] = "ProductMode-" + i; dr["item.BriefName"] = "BriefName-" + i; dr["item.CurrencySymbol"] = "港币"; dr["item.OrderPrice"] = (i + 1) * 100; dr["item.PurchaseQty"] = (i + 1) * 5; dr["item.Quantity"] = (i + 1) * 5; dr["item.PurchaseQtyOrderPrice"] = ((i + 1) * 5 * 100).ToString("#########0.00"); dr["item.QuantityOrderPrice"] = ((i + 1) * 5 * 100).ToString("#########0.00"); productItemList.Rows.Add(dr); } for (int i = 0; i < 5; i++) { DataRow dr = productAccessoryList.NewRow(); dr["ProductID"] = "ProductID-" + i; dr["AccessoriesID"] = "AccessoriesID-" + i; dr["AccessoriesIDAndName"] = "AccessoriesIDAndName-" + i; dr["Qty"] = (i + 1) * 5; productAccessoryList.Rows.Add(dr); } keyTables.Add("tblProductItemsList", productItemList); keyTables.Add("tblProductAccessoryList", productAccessoryList); MailTemplate template = MailHelper.BuildMailTemplate("PO_AutoCloseMail", keyValues, keyTables); return(Content(template.Body)); }
public override void OnSuccess(MethodExecutionEventArgs args) { int requestsysno = 0; string ptptdUser = ConfigurationManager.AppSettings["PTPTDUser"]; string subject = string.Empty; ProductPriceRequestInfo entity = new ProductPriceRequestInfo(); if (EmailType == SendEmailType.ApprovePriceRequest) { object[] objs = args.GetReadOnlyArgumentArray(); entity = objs[0] as ProductPriceRequestInfo; requestsysno = entity.SysNo.Value; if (entity.RequestStatus == ProductPriceRequestStatus.Deny)//拒绝时的邮件发送 { subject = ResouceManager.GetMessageString("IM.Product", "AuditRejected"); } else { subject = ResouceManager.GetMessageString("IM.Product", "AuditPassed"); } } else if (EmailType == SendEmailType.CancelPriceRequest)//撤销时的邮件发送 { object[] objs = args.GetReadOnlyArgumentArray(); entity = objs[0] as ProductPriceRequestInfo; requestsysno = entity.SysNo.Value; subject = ResouceManager.GetMessageString("IM.Product", "CancelAudit"); } else if (EmailType == SendEmailType.CreatePriceRequest) { object[] objs = args.GetReadOnlyArgumentArray(); entity = objs[1] as ProductPriceRequestInfo; requestsysno = entity.SysNo.Value; subject = ResouceManager.GetMessageString("IM.Product", "RequestAudit"); } ProductPriceRequestInfo requestentity = ObjectFactory <ProductPriceRequestProcessor> .Instance.GetProductPriceRequestInfoBySysNo(requestsysno); string toAddress = string.Format("{0};{1}", entity.PMUserEmailAddress, entity.CurrentUserEmailAddress); if (!string.IsNullOrEmpty(entity.BackupPMUserEmailAddress)) { toAddress = string.Format("{0};{1}", toAddress, entity.BackupPMUserEmailAddress); } if (!string.IsNullOrEmpty(ptptdUser)) { toAddress = string.Format("{0};{1}", toAddress, ptptdUser); } string ccmail = GetCCEmail(requestentity); string updatetime = string.Empty; if (requestentity.LastUpdateTime.HasValue) { updatetime = requestentity.LastUpdateTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); } //参数设置 KeyValueVariables keyValueVariables = new KeyValueVariables(); keyValueVariables.AddKeyValue("Subject", subject); keyValueVariables.Add("ProductSysNo", Product.SysNo); keyValueVariables.Add("ProductName", Product.ProductName); keyValueVariables.Add("UpdateTime", updatetime); keyValueVariables.Add("SysNo", requestentity.SysNo); keyValueVariables.Add("ProductID", Product.ProductID); keyValueVariables.Add("BasicPrice", requestentity.OldPrice.BasicPrice); keyValueVariables.Add("BasicPriceNew", requestentity.BasicPrice); keyValueVariables.Add("UnitCost", requestentity.UnitCost); keyValueVariables.Add("CurrentPrice", requestentity.OldPrice.CurrentPrice); keyValueVariables.Add("CurrentPriceNew", requestentity.CurrentPrice); keyValueVariables.Add("Discount", requestentity.DiscountAmount); keyValueVariables.Add("CashRebate", requestentity.OldPrice.CashRebate); keyValueVariables.Add("CashRebateNew", requestentity.CashRebate); keyValueVariables.Add("Point", requestentity.OldPrice.Point); keyValueVariables.Add("PointNew", requestentity.Point); keyValueVariables.Add("ProductPayType", requestentity.OldPrice.PayType.ToString()); keyValueVariables.Add("MaxPerOrder", requestentity.MinCountPerOrder); keyValueVariables.Add("MinMargin", requestentity.OldPrice.Margin); keyValueVariables.Add("MinMarginCurrent", requestentity.Margin); keyValueVariables.Add("Apply", requestentity.CreateUser.UserName); keyValueVariables.Add("PMMemo", requestentity.PMMemo); keyValueVariables.Add("TLMemo", requestentity.TLMemo); EmailHelper.SendEmailByTemplate(toAddress, ccmail, "", "IM_Product_ChangePrice", keyValueVariables, null, true, true); base.OnSuccess(args); }
/// <summary> /// 发送订单拦截邮件 /// </summary> /// <param name="info"></param> public virtual void SendSOOrderInterceptEmail(SOInfo info, string Language) { KeyValueVariables keyValueVariables = new KeyValueVariables(); keyValueVariables.Add("SOSysNo", info.BaseInfo.SysNo.Value); keyValueVariables.Add("CustomerSysNo", info.BaseInfo.CustomerSysNo); keyValueVariables.Add("OrderDate", info.BaseInfo.CreateTime); SOStatusChangeInfo statusAuditInfo = info.StatusChangeInfoList.Find(x => { return(x.Status == SOStatus.WaitingOutStock); }); if (statusAuditInfo == null) { keyValueVariables.Add("AuditTime", DBNull.Value); } else { keyValueVariables.Add("AuditTime", statusAuditInfo.ChangeTime.Value.ToString()); } SOStatusChangeInfo statusOutStockInfo = info.StatusChangeInfoList.Find(x => { return(x.Status == SOStatus.OutStock); }); if (statusOutStockInfo == null) { keyValueVariables.Add("OutStockTime", DBNull.Value); } else { keyValueVariables.Add("OutStockTime", statusOutStockInfo.ChangeTime.Value.ToString()); } keyValueVariables.Add("SOTotalAmount", info.BaseInfo.SOTotalAmount); keyValueVariables.Add("PayType", info.BaseInfo.PayTypeSysNo); keyValueVariables.Add("UserSysNo", ServiceContext.Current.UserSysNo); List <string> emailList = new List <string>(); List <string> emailCCList = new List <string>(); if (info.SOInterceptInfoList != null && info.SOInterceptInfoList.Count == 1) { foreach (var item in info.SOInterceptInfoList) { if (!string.IsNullOrEmpty(item.EmailAddress)) { emailList.Add(item.EmailAddress); } if (!string.IsNullOrEmpty(item.CCEmailAddress)) { emailCCList.Add(item.CCEmailAddress); } } } else if (info.SOInterceptInfoList != null && info.SOInterceptInfoList.Count == 2) { if (info.SOInterceptInfoList[0].EmailAddress != info.SOInterceptInfoList[1].EmailAddress || info.SOInterceptInfoList[0].CCEmailAddress != info.SOInterceptInfoList[1].CCEmailAddress) { emailList.Add(info.SOInterceptInfoList[1].EmailAddress); emailCCList.Add(info.SOInterceptInfoList[1].CCEmailAddress); } } else if (info.SOInterceptInfoList != null && info.SOInterceptInfoList.Count > 2) { if (info.SOInterceptInfoList[0].EmailAddress != info.SOInterceptInfoList[info.SOInterceptInfoList.Count - 1].EmailAddress || info.SOInterceptInfoList[0].CCEmailAddress != info.SOInterceptInfoList[info.SOInterceptInfoList.Count - 1].CCEmailAddress) { emailList.Add(info.SOInterceptInfoList[info.SOInterceptInfoList.Count - 1].EmailAddress); emailCCList.Add(info.SOInterceptInfoList[info.SOInterceptInfoList.Count - 1].CCEmailAddress); } else { foreach (var item in info.SOInterceptInfoList) { emailList.Add(item.EmailAddress); emailCCList.Add(item.CCEmailAddress); } } } if (emailList != null && emailList.Count > 0) { ExternalDomainBroker.SendInternalEmail(emailList.Join(";"), emailCCList.Join(";"), "SO_OrderIntercept", keyValueVariables, Language); } }
/// <summary> /// 发送月底库存邮件 /// </summary> /// <param name="emailList">发送地址列表</param> /// <param name="title">标题可以不填</param> /// <param name="content">发送内容</param> /// <returns>返回成功发送列表</returns> public void SendInventoryEmailEndOfMonth(string address, string language, string downloadPath, string savePath) { DataTable dt = ObjectFactory <IInventoryQueryDA> .Instance.QueryInventoryListEndOfMouth(); KeyTableVariables keyTablesVariables = new KeyTableVariables(); KeyValueVariables keyValueVariables = new KeyValueVariables(); List <DataTable> data = new List <DataTable>(); data.Add(dt); //keyTablesVariables.Add("InventoryList", dt); List <ColumnData> columndatalist = new List <ColumnData> (); ColumnData columndata = null; columndata = new ColumnData() { FieldName = "StockName", FooterType = FooterType.None, Width = 30, Title = "渠道仓库" }; columndatalist.Add(columndata); columndata = new ColumnData() { FieldName = "ProductID", FooterType = FooterType.None, Width = 30, Title = "商品ID" }; columndatalist.Add(columndata); columndata = new ColumnData() { FieldName = "ProductName", FooterType = FooterType.None, Width = 30, Title = "商品名称" }; columndatalist.Add(columndata); columndata = new ColumnData() { FieldName = "VendorName", FooterType = FooterType.None, Width = 30, Title = "供应商" }; columndatalist.Add(columndata); columndata = new ColumnData() { FieldName = "AccountQty", FooterType = FooterType.None, Width = 30, Title = "财务库存" }; columndatalist.Add(columndata); columndata = new ColumnData() { FieldName = "CostAmount", FooterType = FooterType.None, Width = 30, Title = "成本金额" }; columndatalist.Add(columndata); columndata = new ColumnData() { FieldName = "AvailableQty", FooterType = FooterType.None, Width = 30, Title = "可用库存" }; columndatalist.Add(columndata); columndata = new ColumnData() { FieldName = "AllocatedQty", FooterType = FooterType.None, Width = 30, Title = "被占用库存" }; columndatalist.Add(columndata); columndata = new ColumnData() { FieldName = "OrderQty", FooterType = FooterType.None, Width = 30, Title = "被订购数量" }; columndatalist.Add(columndata); columndata = new ColumnData() { FieldName = "VirtualQty", FooterType = FooterType.None, Width = 30, Title = "虚库数量" }; columndatalist.Add(columndata); columndata = new ColumnData() { FieldName = "ConsignQty", FooterType = FooterType.None, Width = 30, Title = "代销库存" }; columndatalist.Add(columndata); columndata = new ColumnData() { FieldName = "PurchaseQty", FooterType = FooterType.None, Width = 30, Title = "采购在途数量" }; columndatalist.Add(columndata); columndata = new ColumnData() { FieldName = "ShiftInQty", FooterType = FooterType.None, Width = 30, Title = "移入在途数量" }; columndatalist.Add(columndata); columndata = new ColumnData() { FieldName = "ShiftOutQty", FooterType = FooterType.None, Width = 30, Title = "移出在途数量" }; columndatalist.Add(columndata); columndata = new ColumnData() { FieldName = "PositionInWarehouse", FooterType = FooterType.None, Width = 30, Title = "库位" }; columndatalist.Add(columndata); List <List <ColumnData> > columnList = new List <List <ColumnData> >(); columnList.Add(columndatalist); string fileName = ""; byte[] excelByte = new ExcelFileExporter().CreateFile(data, columnList, null, out fileName, "月底库存报表"); string excelName = System.Guid.NewGuid().ToString(); FileStream fs = new FileStream(String.Format("{0}//{1}.xls", savePath, excelName), FileMode.Create, FileAccess.Write); fs.Write(excelByte, 0, excelByte.Length); fs.Close(); keyValueVariables.Add("Titel", String.Format("月底库存报表,总数{0}条", dt.Rows.Count)); keyValueVariables.Add("Content", String.Format("库存数据已生成excel文件,请点击<a href=\"{0}/{1}.xls\">下载</a>", downloadPath, excelName)); ExternalDomainBroker.SendExternalEmail(address, "Inventory_EndOfMonth", keyValueVariables, keyTablesVariables, language); }
public void BuildData(System.Collections.Specialized.NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables) { variables = new KeyValueVariables(); tableVariables = new KeyTableVariables(); string sysNo = requestPostData["SysNo"]; if (sysNo != null && sysNo.Trim() != String.Empty) { sysNo = System.Web.HttpUtility.UrlDecode(sysNo); int requestSysNo = int.TryParse(sysNo, out requestSysNo) ? requestSysNo : int.MinValue; if (requestSysNo > int.MinValue) { ShiftRequestInfo requestInfo = ObjectFactory <ShiftRequestAppService> .Instance.GetShiftRequestInfoBySysNo(requestSysNo); variables.Add("SelfCompanyName", ResouceManager.GetMessageString(CommonConst.MessagePath_Common, "Res_Company_Name")); variables.Add("SelfCompanyAddress", ResouceManager.GetMessageString(CommonConst.MessagePath_Common, "Res_Company_Address")); variables.Add("SelfCompanyPhone", ResouceManager.GetMessageString(CommonConst.MessagePath_Common, "Res_Company_Phone")); variables.Add("SelfCompanyWebAddress", ResouceManager.GetMessageString(CommonConst.MessagePath_Common, "Res_Company_Url")); variables.Add("CreateUser", requestInfo.CreateUser.UserDisplayName); variables.Add("CreateDate", requestInfo.CreateDate.HasValue ? requestInfo.CreateDate.Value.ToString(SOConst.LongTimeFormat) : string.Empty); variables.Add("AuditUser", requestInfo.AuditUser.UserDisplayName); variables.Add("AuditDate", requestInfo.AuditDate.HasValue ? requestInfo.AuditDate.Value.ToString(SOConst.LongTimeFormat) : string.Empty); variables.Add("RequestSysNo", requestInfo.RequestID); variables.Add("OutStock", requestInfo.SourceStock == null ? "" : requestInfo.SourceStock.StockName); variables.Add("InStock", requestInfo.TargetStock == null ? "" : requestInfo.TargetStock.StockName); variables.Add("Status", requestInfo.RequestStatus.ToDisplayText()); variables.Add("OutStockUser", requestInfo.OutStockUser.UserDisplayName); variables.Add("OutStockDate", requestInfo.OutStockDate.HasValue ? requestInfo.OutStockDate.Value.ToString(SOConst.LongTimeFormat) : string.Empty); variables.Add("InStockUser", requestInfo.InStockUser.UserDisplayName); variables.Add("InStockDate", requestInfo.InStockDate.HasValue ? requestInfo.InStockDate.Value.ToString(SOConst.LongTimeFormat) : string.Empty); variables.Add("Note", requestInfo.Note); DataTable dtProduct = new DataTable(); dtProduct.Columns.AddRange(new System.Data.DataColumn[] { new DataColumn("ProductID"), new DataColumn("ProductName"), new DataColumn("Quantity"), }); requestInfo.ShiftItemInfoList.ForEach(p => { DataRow drProduct = dtProduct.NewRow(); drProduct["ProductID"] = p.ShiftProduct.ProductID; drProduct["ProductName"] = p.ShiftProduct.ProductBasicInfo.ProductBriefTitle; ; drProduct["Quantity"] = p.ShiftQuantity; dtProduct.Rows.Add(drProduct); }); tableVariables.Add("ProductList", dtProduct); } } }
public void BuildData(System.Collections.Specialized.NameValueCollection requestPostData, out KeyValueVariables variables, out KeyTableVariables tableVariables) { variables = new KeyValueVariables(); tableVariables = new KeyTableVariables(); string sysNo = requestPostData["SysNo"]; if (sysNo != null && sysNo.Trim() != String.Empty) { sysNo = System.Web.HttpUtility.UrlDecode(sysNo); int requestSysNo = int.TryParse(sysNo, out requestSysNo) ? requestSysNo : int.MinValue; if (requestSysNo > int.MinValue) { ConvertRequestInfo requestInfo = ObjectFactory <ConvertRequestAppService> .Instance.GetConvertRequestInfoBySysNo(requestSysNo); variables.Add("SelfCompanyName", ResouceManager.GetMessageString(CommonConst.MessagePath_Common, "Res_Company_Name")); variables.Add("SelfCompanyAddress", ResouceManager.GetMessageString(CommonConst.MessagePath_Common, "Res_Company_Address")); variables.Add("SelfCompanyPhone", ResouceManager.GetMessageString(CommonConst.MessagePath_Common, "Res_Company_Phone")); variables.Add("SelfCompanyWebAddress", ResouceManager.GetMessageString(CommonConst.MessagePath_Common, "Res_Company_Url")); variables.Add("CreateUser", requestInfo.CreateUser.UserDisplayName); variables.Add("CreateDate", requestInfo.CreateDate.HasValue ? requestInfo.CreateDate.Value.ToString() : string.Empty); variables.Add("AuditUser", requestInfo.AuditUser.UserDisplayName); variables.Add("AuditDate", requestInfo.AuditDate.HasValue ? requestInfo.AuditDate.Value.ToString() : string.Empty); variables.Add("RequestSysNo", requestInfo.RequestID); variables.Add("Stock", requestInfo.Stock == null ? "" : requestInfo.Stock.StockName); variables.Add("Status", requestInfo.RequestStatus.ToDisplayText()); variables.Add("OutStockUser", requestInfo.OutStockUser.UserDisplayName); variables.Add("OutStockDate", requestInfo.OutStockDate.HasValue ? requestInfo.OutStockDate.Value.ToString() : string.Empty); variables.Add("Note", requestInfo.Note); DataTable dtSourceProduct = new DataTable(); dtSourceProduct.Columns.AddRange(new System.Data.DataColumn[] { new DataColumn("ProductID"), new DataColumn("ProductName"), new DataColumn("Price"), new DataColumn("Quantity"), new DataColumn("Amount") }); DataTable dtTargetProduct = dtSourceProduct.Clone(); decimal sourceTotalAmount = 0M, targetTotalAmount = 0M; requestInfo.ConvertItemInfoList.ForEach(p => { DataRow drProduct = p.ConvertType == ConvertProductType.Source ? dtSourceProduct.NewRow() : dtTargetProduct.NewRow(); drProduct["ProductID"] = p.ConvertProduct.ProductID; drProduct["ProductName"] = p.ConvertProduct.ProductBasicInfo.ProductTitle; drProduct["Price"] = p.ConvertUnitCost.ToString("N2"); drProduct["Quantity"] = p.ConvertQuantity; drProduct["Amount"] = (p.ConvertQuantity * p.ConvertUnitCost).ToString("N2"); if (p.ConvertType == ConvertProductType.Source) { sourceTotalAmount += p.ConvertQuantity * p.ConvertUnitCost; dtSourceProduct.Rows.Add(drProduct); } else { targetTotalAmount += p.ConvertQuantity * p.ConvertUnitCost; dtTargetProduct.Rows.Add(drProduct); } }); variables.Add("SourceTotalAmount", sourceTotalAmount.ToString("N2")); variables.Add("TargetTotalAmount", targetTotalAmount.ToString("N2")); tableVariables.Add("SourceProductList", dtSourceProduct); tableVariables.Add("TargetProductList", dtTargetProduct); } } }