public ReturnValue SentInvoiceEmail(int invoiceId) { ReturnValue _result = new ReturnValue(); string MailContent = ""; string _emailTo = ""; System.Globalization.NumberFormatInfo nfi = Utilities.CurrentNumberFormat; Model.TProgram_EmailTF _tProgram_Email = new TProgram_EmailTF(); try { #region generate Email Content TCustomer _tCustomer = new TCustomer(); _result = _tCustomer.getCustomerByInvoiceId(invoiceId); if (_result.Success == false) { return(_result); } _tCustomer = _result.Object as TCustomer; _result = _tProgram_Email.getEmailTemplate("ShipInvoices"); if (_result.Success == false) { return(_result); } _tProgram_Email = _result.Object as Model.TProgram_EmailTF; string _mailHtmlContent = System.Web.HttpUtility.HtmlDecode(System.Web.HttpUtility.HtmlDecode(_tProgram_Email.FullHtml)); MailContent = _mailHtmlContent.Replace("[CustomerName]", _tCustomer.FirstName); EmailMessage _mail = new EmailMessage(); _mail.HtmlPart = new HtmlAttachment(MailContent); _mail.FromAddress = new EmailAddress(_tProgram_Email.RespondTo); _mail.Subject = _tProgram_Email.Subject; #endregion #region setup EmailMessage if (Convert.ToBoolean(System.Configuration.ConfigurationSettings.AppSettings["IsTestMode"].ToString()) == true) { string[] maillist = Common.TestMailTo.Split(';'); foreach (string _item in maillist) { _mail.AddToAddress(new EmailAddress(_item)); } _emailTo = Common.TestMailTo; } else { if (string.IsNullOrEmpty(_tCustomer.Email) == true) { _result.Success = false; _result.ErrMessage = "Email To Address is empty"; return(_result); } else { string[] bcclist = _tCustomer.Email.Split(';'); foreach (string _item in bcclist) { if (string.IsNullOrEmpty(_item) == false) { _mail.AddToAddress(new EmailAddress(_item)); } } } _emailTo = _tCustomer.Email; } if (string.IsNullOrEmpty(_tProgram_Email.BccAddress) == false) { string[] bcclist = _tProgram_Email.BccAddress.Split(';'); foreach (string _item in bcclist) { if (string.IsNullOrEmpty(_item) == false) { _mail.AddBccAddress(new EmailAddress(_item)); } } } if (string.IsNullOrEmpty(_tProgram_Email.CCAddress) == false) { string[] bcclist = _tProgram_Email.CCAddress.Split(';'); foreach (string _item in bcclist) { if (string.IsNullOrEmpty(_item) == false) { _mail.AddCcAddress(new EmailAddress(_item)); } } } if (string.IsNullOrEmpty(_tCustomer.InvoiceEmail) == false) { _mail.AddCcAddress(new EmailAddress(_tCustomer.InvoiceEmail)); } if (string.IsNullOrEmpty(_tCustomer.SalesRepEmail) == false) { _mail.AddBccAddress(new EmailAddress(_tCustomer.SalesRepEmail)); } #endregion #region attached pdf string pdffilename = ""; TecnifibreInvoicePDF TecnifibreInvoicePDF = new TecnifibreInvoicePDF(); _result = TecnifibreInvoicePDF.PrintInvoice(invoiceId); if (_result.Success == false) { return(_result); } pdffilename = "Invoice/TFInvoice_" + invoiceId.ToString() + ".pdf"; FileAttachment fileAttachment = new FileAttachment(new FileInfo(pdffilename)); fileAttachment.ContentType = "application/pdf"; _mail.AddMixedAttachment(fileAttachment); #endregion DotNetOpenMail.SmtpAuth.SmtpAuthToken token = new DotNetOpenMail.SmtpAuth.SmtpAuthToken( System.Configuration.ConfigurationSettings.AppSettings["SMTPUserName"], System.Configuration.ConfigurationSettings.AppSettings["SMTPPassword"]); SmtpServer server = new SmtpServer(System.Configuration.ConfigurationSettings.AppSettings["SMTPServer"]); server.SmtpAuthToken = token; if (_mail.Send(server) == false) { _result.Success = false; } } catch (Exception ex) { _result.Success = false; _result.ErrMessage = ex.ToString(); } #region Log App_Log_Mail App_Log_Mail _app_Log_Mail = new App_Log_Mail(); // _app_Log_Mail.ProgramId = this.Owner.DefaultProgram.ProgramId; _app_Log_Mail.IsTest = Convert.ToBoolean(System.Configuration.ConfigurationSettings.AppSettings["IsTestMode"].ToString()); _app_Log_Mail.CreatedOn = System.DateTime.Now; _app_Log_Mail.AddressFrom = _tProgram_Email.RespondTo; _app_Log_Mail.AddressTo = _emailTo; _app_Log_Mail.AddressBcc = _tProgram_Email.BccAddress; _app_Log_Mail.Subject = _tProgram_Email.Subject; _app_Log_Mail.Content = MailContent; _app_Log_Mail.OId = invoiceId.ToString(); _app_Log_Mail.Success = _result.Success; _app_Log_Mail.Notes = _result.ErrMessage; _app_Log_Mail.Type = "ShippingInvoice"; _app_Log_Mail.Save(); #endregion return(_result); }
public static ReturnValue SentEmail(TProgram_Email tProgram_Email, EmailFormat emailFormat, int oId, FileAttachment fileAttachment) { ReturnValue _result = new ReturnValue(); bool IsTFTestMode = Convert.ToBoolean(System.Configuration.ConfigurationSettings.AppSettings["IsTFTestMode"].ToString()); if (tProgram_Email.ContentStatusId != 1) { return(_result); } EmailMessage _mail = new EmailMessage(); if (string.IsNullOrEmpty(tProgram_Email.RespondToName) == true) { _mail.FromAddress = new EmailAddress(tProgram_Email.RespondTo); } else { _mail.FromAddress = new EmailAddress(tProgram_Email.RespondTo, tProgram_Email.RespondToName); } _mail.Subject = tProgram_Email.Subject; if (emailFormat == EmailFormat.Html || emailFormat == EmailFormat.Both) { _mail.HtmlPart = new HtmlAttachment(tProgram_Email.FullHtml); } if (emailFormat == EmailFormat.Text || emailFormat == EmailFormat.Both) { _mail.TextPart = new TextAttachment(tProgram_Email.FullText); } string _emailto = tProgram_Email.ToAddress; if (IsTFTestMode == true) { if (string.IsNullOrEmpty(Common.TestMailTo) == false) { string[] ccList = Common.TestMailTo.Split(';'); foreach (string ccAddress in ccList) { _mail.AddToAddress(new EmailAddress(ccAddress)); } _emailto = Common.TestMailTo; } } else { if (string.IsNullOrEmpty(tProgram_Email.CCAddress) == false) { string[] ccList = tProgram_Email.CCAddress.Split(';'); foreach (string ccAddress in ccList) { if (string.IsNullOrEmpty(ccAddress.Trim()) == false) { _mail.AddCcAddress(new EmailAddress(ccAddress)); } } } if (string.IsNullOrEmpty(tProgram_Email.BccAddress) == false) { string[] BccList = tProgram_Email.BccAddress.Split(';'); foreach (string bccAddress in BccList) { if (string.IsNullOrEmpty(bccAddress.Trim()) == false) { _mail.AddBccAddress(new EmailAddress(bccAddress)); } } } if (string.IsNullOrEmpty(tProgram_Email.ToAddress) == false) { string[] ToAddressList = tProgram_Email.ToAddress.Split(';'); foreach (string toAddress in ToAddressList) { if (string.IsNullOrEmpty(toAddress.Trim()) == false) { _mail.AddToAddress(new EmailAddress(toAddress)); } } } } if (fileAttachment != null) { _mail.AddMixedAttachment(fileAttachment); } App_Log_Mail _mailLog = new App_Log_Mail(); try { SmtpServer server = new SmtpServer(System.Configuration.ConfigurationSettings.AppSettings["SMTPServer"].ToString(), 25); DotNetOpenMail.SmtpAuth.SmtpAuthToken SmtpAuthToken = new DotNetOpenMail.SmtpAuth.SmtpAuthToken(System.Configuration.ConfigurationSettings.AppSettings["SMTPUserName"].ToString(), System.Configuration.ConfigurationSettings.AppSettings["SMTPPassword"].ToString()); server.SmtpAuthToken = SmtpAuthToken; bool _success = _mail.Send(server); _mailLog.Success = _success; _mailLog.Notes = ""; } catch (Exception ex) { _mailLog.Success = false; _mailLog.Notes = ex.ToString(); } finally { _mailLog.AddressBcc = "AddressBcc:" + (string.IsNullOrEmpty(tProgram_Email.BccAddress) ? "" : tProgram_Email.BccAddress) + " CCAddress:" + (string.IsNullOrEmpty(tProgram_Email.CCAddress) ? "" : tProgram_Email.CCAddress); _mailLog.AddressFrom = tProgram_Email.RespondTo; _mailLog.AddressTo = _emailto; if (emailFormat == EmailFormat.Html || emailFormat == EmailFormat.Both) { _mailLog.Content = tProgram_Email.FullHtml; } if (emailFormat == EmailFormat.Text || emailFormat == EmailFormat.Both) { _mailLog.Content = tProgram_Email.FullText; } _mailLog.CreatedOn = System.DateTime.Now; _mailLog.Subject = tProgram_Email.Subject; _mailLog.Type = tProgram_Email.EmailTypeId.ToString(); _mailLog.OId = oId.ToString(); _mailLog.IsTest = IsTFTestMode; _mailLog.Save(); } _result.Success = _mailLog.Success.Value; _result.ErrMessage = _mailLog.Notes; if (string.IsNullOrEmpty(_mailLog.AddressTo) == true) { _result.Success = true; } return(_result); }
public ReturnValue SentEmail(int orderId, int releaseID, EmailMessage email) { ReturnValue _result = new ReturnValue(); App_Log_Mail _app_Log_Mail = new App_Log_Mail(); try { SmtpServer server = new SmtpServer(System.Configuration.ConfigurationSettings.AppSettings["SMTPServer"].ToString(), 25); DotNetOpenMail.SmtpAuth.SmtpAuthToken SmtpAuthToken = new DotNetOpenMail.SmtpAuth.SmtpAuthToken(System.Configuration.ConfigurationSettings.AppSettings["SMTPUserName"].ToString(), System.Configuration.ConfigurationSettings.AppSettings["SMTPPassword"].ToString()); server.SmtpAuthToken = SmtpAuthToken; email.Send(server); } catch (Exception ex) { _app_Log_Mail.Success = false; _app_Log_Mail.Notes = ex.ToString(); _result.Success = false; _result.ErrMessage = _app_Log_Mail.Notes; return(_result); } #region Log App_Log_Mail _app_Log_Mail.IsTest = Common.IsTest; _app_Log_Mail.CreatedOn = System.DateTime.Now; if (email.FromAddress != null) { _app_Log_Mail.AddressFrom = email.FromAddress.Email; } foreach (EmailAddress item in email.ToAddresses) { _app_Log_Mail.AddressTo = _app_Log_Mail.AddressTo + item.Email + ";"; } _app_Log_Mail.Subject = email.Subject; if (email.TextPart != null) { _app_Log_Mail.Content = email.TextPart.Contents; } if (email.HtmlPart != null) { _app_Log_Mail.Content = email.HtmlPart.Contents; } _app_Log_Mail.OId = orderId.ToString(); _app_Log_Mail.ReleaseID = releaseID; _app_Log_Mail.Success = true;; _app_Log_Mail.Notes = ""; _app_Log_Mail.Type = "ShippingConfirm"; _app_Log_Mail.Save(); #endregion return(_result); }
public override ReturnValue UpdateShipment() { ReturnValue _result = new ReturnValue(); Common.Connect(); #region get order list TOrder _tOrder = new TOrder(); _result = _tOrder.getShimentOrderList(); if (_result.Success == false) { _result.Success = false; _result.ErrMessage = "getShimentOrderList failed. \r\n " + _result.ErrMessage; Common.Log("getShimentOrderList---ER \r\n" + _result.ErrMessage); return(_result); } EntityList orderList = _result.ObjectList; VCBusiness.Model.TProgram_Email _tProgram_Email = Common.CreateObject(this.Owner, "TProgram_Email") as VCBusiness.Model.TProgram_Email; _result = _tProgram_Email.getEmailTemplate("SHIP_CONFIRMATION"); if (_result.Success == false) { _result.Success = false; _result.ErrMessage = "getEmailTemplate failed. \r\n " + _result.ErrMessage; Common.Log("getEmailTemplate---ER \r\n" + _result.ErrMessage); return(_result); } _tProgram_Email = _result.Object as TProgram_Email; #endregion #region update shipment foreach (TOrder order in orderList) { Common.Log("Order : " + order.OrderId); #region GetOrderShipmentInfo EntityList productList = new EntityList(); if (Convert.ToBoolean(System.Configuration.ConfigurationSettings.AppSettings["IsTestMode"].ToString()) == true) { #region test TOrder_Line_Item orderline = new TOrder_Line_Item(); _result = orderline.getOrderLineItemsByOrderId(order.OrderId); foreach (TOrder_Line_Item item in _result.ObjectList) { item.ShipCarrier = "UPS"; item.ShipMethod = "STD"; item.TrackingNumber = "123456789"; item.ShippedDate = System.DateTime.Now; productList.Add(item); } #endregion } else { #region call Veracore _result = VeraCore.GetOrderShipmentInfo(order.OrderId.ToString()); if (_result.Success == false) { if (_result.ErrMessage.IndexOf("Invalid Order ID") > -1) { _result.ErrMessage = "Can't find the order"; } else { errorNotes = errorNotes + order.OrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n"; failedRecord++; } Common.Log("Order : " + order.OrderId + " GetOrderShipmentInfo---ER \r\n" + _result.ErrMessage); continue; } productList = _result.ObjectList; if (productList.Count() == 0) { Common.Log("Order : " + order.OrderId + "---Unshipped"); continue; } #endregion } #endregion Transaction _tran = new Transaction(); #region update order line foreach (TOrder_Line_Item item in productList) { order.ShipCarrier = item.ShipCarrier; order.ShipMethod = item.ShipMethod; order.TrackingNumber = item.TrackingNumber; order.ShippedDate = item.ShippedDate.Value; _result = item.updateOrderLineItemShipment(order.OrderId, item.PartNumber, item.ShippedDate.Value, item.TrackingNumber, _tran); if (_result.Success == false) { _tran.RollbackTransaction(); errorNotes = errorNotes + order.OrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n"; failedRecord++; Common.Log("Order : " + order.OrderId + " updateOrderLineItemShipment---ER \r\n" + _result.ErrMessage); continue; } if (this.Owner.OwnerInfo["ImportDM"].ToString() == "Y") { TDM_Order_Detail _tDM_Order_Detail = new TDM_Order_Detail(); _tDM_Order_Detail.DataConnectProviders = "ZoytoPH"; _result = _tDM_Order_Detail.updateDMShipingInfo(order.OrderId, item.PartNumber, order.ShippedDate.Value, order.TrackingNumber); if (_result.Success == false) { _tran.RollbackTransaction(); errorNotes = errorNotes + order.OrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n"; failedRecord++; Common.Log("Order : " + order.OrderId + " updateDMShipingInfo---ER \r\n" + _result.ErrMessage); continue; } } } #endregion #region update carton & ASN #region get release list TOrder_Line_Item _tOrder_Line_Item = new TOrder_Line_Item(); _result = _tOrder_Line_Item.getOrderReleaseByOrderId(order.OrderId, _tran); if (_result.Success == false) { _tran.RollbackTransaction(); errorNotes = errorNotes + order.OrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n"; failedRecord++; Common.Log("Order : " + order.OrderId + " getOrderReleaseByOrderId---ER \r\n" + _result.ErrMessage); continue; } EntityList _releaseList = _result.ObjectList; #endregion #region delete cartion and ASN TOrder_Line_Shipment_Carton _tOrder_Line_Shipment_Carton = new TOrder_Line_Shipment_Carton(); _result = _tOrder_Line_Shipment_Carton.deleteOrderLineShipmentCartonByOrderID(order.OrderId, _tran); if (_result.Success == false) { _tran.RollbackTransaction(); errorNotes = errorNotes + order.OrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n"; failedRecord++; Common.Log("Order : " + order.OrderId + " deleteOrderLineShipmentCartonByOrderID---ER \r\n" + _result.ErrMessage); continue; } TOrder_Line_Shipment_ASN _tOrder_Line_Shipment_ASN = new TOrder_Line_Shipment_ASN(); _result = _tOrder_Line_Shipment_ASN.deleteOrderLineShipmentASNByOrderID(order.OrderId, _tran); if (_result.Success == false) { _tran.RollbackTransaction(); errorNotes = errorNotes + order.OrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n"; failedRecord++; Common.Log("Order : " + order.OrderId + " deleteOrderLineShipmentASNByOrderID---ER \r\n" + _result.ErrMessage); continue; } #endregion int releaseID = 1; foreach (TOrder_Line_Item item in _releaseList) { #region update release number && carton && ASN _result = item.updateOrderReleaseByTracking(order.OrderId, item.TrackingNumber, releaseID, _tran); if (_result.Success == false) { _tran.RollbackTransaction(); errorNotes = errorNotes + order.OrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n"; failedRecord++; Common.Log("Order : " + order.OrderId + " updateOrderReleaseByTracking---ER \r\n" + _result.ErrMessage); continue; } _tOrder_Line_Shipment_Carton = new TOrder_Line_Shipment_Carton(); _tOrder_Line_Shipment_Carton.ORDER_ID = order.OrderId; _tOrder_Line_Shipment_Carton.RELEASE_NUM = releaseID; _tOrder_Line_Shipment_Carton.CARTON_ID_FROM = releaseID.ToString(); _tOrder_Line_Shipment_Carton.CARRIER_ID = order.ShipCarrier; _tOrder_Line_Shipment_Carton.SHIP_METHOD = order.ShipMethod; _tOrder_Line_Shipment_Carton.PACKAGE_TRACE_ID = item.TrackingNumber; _tOrder_Line_Shipment_Carton.Ship_date = item.ShippedDate.Value; _result = _tOrder_Line_Shipment_Carton.Save(_tran); if (_result.Success == false) { _tran.RollbackTransaction(); errorNotes = errorNotes + order.OrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n"; failedRecord++; Common.Log("Order : " + order.OrderId + " _tOrder_Line_Shipment_Carton.Save---ER \r\n" + _result.ErrMessage); continue; } _result = item.createASN(order.OrderId, releaseID, _tran); if (_result.Success == false) { _tran.RollbackTransaction(); errorNotes = errorNotes + order.OrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n"; failedRecord++; Common.Log("Order : " + order.OrderId + " createASN---ER \r\n" + _result.ErrMessage); continue; } #endregion releaseID++; } #endregion #region update phontom item _result = _tOrder.updateOrderPhontomOrderStatus(order.OrderId, order.ShippedDate.Value, order.TrackingNumber, _tran); if (_result.Success == false) { _tran.RollbackTransaction(); errorNotes = errorNotes + order.OrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n"; failedRecord++; Common.Log("Order : " + order.OrderId + " updateOrderPhontomOrderStatus---ER \r\n" + _result.ErrMessage); continue; } #endregion #region customerEventPostShipmentUpdate _result = this.customerEventPostShipmentUpdate(order, productList, _tran); if (_result.Success == false) { _tran.RollbackTransaction(); errorNotes = errorNotes + order.OrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n"; failedRecord++; Common.Log("Order : " + order.OrderId + " customerEventPostShipmentUpdate---ER \r\n" + _result.ErrMessage); continue; } #endregion _tran.CommitTransaction(); #region sent confirm email if (Owner.OwnerInfo["ShipConfirmation"].ToString() == "Y") { #region check already sent email App_Log_Mail _app_Log_Mail = new App_Log_Mail(); _result = _app_Log_Mail.getEmailLog(order.OrderId, releaseID - 1); if (_result.Success == false) { errorNotes = errorNotes + order.OrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n"; failedRecord++; Common.Log("Order : " + order.OrderId + " getEmailLog---ER \r\n" + _result.ErrMessage); continue; } _app_Log_Mail = _result.Object as App_Log_Mail; #endregion if (_app_Log_Mail.ID == 0) { #region sent shipment email #region get email content VCBusiness.EmailFactory EmailFactory = Common.CreateObject(this.Owner, "EmailFactory") as VCBusiness.EmailFactory; _result = EmailFactory.GetMailContent(order.OrderId, releaseID - 1, _tProgram_Email); if (_result.Success == false) { errorNotes = errorNotes + order.OrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n"; failedRecord++; Common.Log("Order : " + order.OrderId + " GetMailContent---ER \r\n" + _result.ErrMessage); continue; } EmailMessage email = _result.ObjectValue as EmailMessage; #endregion #region sent email _result = EmailFactory.SentEmail(order.OrderId, releaseID - 1, email); if (_result.Success == false) { errorNotes = errorNotes + order.OrderId.ToString() + "\r\n" + _result.ErrMessage + "\r\n"; failedRecord++; Common.Log("Order : " + order.OrderId + " SentEmail---ER \r\n" + _result.ErrMessage); continue; } #endregion #endregion } } #endregion successfulRecord++; Common.Log("Order : " + order.OrderId + "---OK"); } #endregion #region update Order Status SH _result = _tOrder.updateOrderStatusSH(); if (_result.Success == false) { _result.Success = false; _result.ErrMessage = "updateOrderStatusSH failed. \r\n " + _result.ErrMessage; Common.Log("updateOrderStatusSH---ER \r\n" + _result.ErrMessage); return(_result); } #endregion Common.SentAlterEmail(failedRecord, errorNotes); _result.Success = true; return(_result); }