|
|
using System; using System.Text; using System.Collections; using System.Xml; using System.Data; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Resources; using System.Reflection; using System.Globalization; using System.Threading;
using Telerik.WebControls; using UFSoft.UBF.UI.WebControls; using UFSoft.UBF.UI.Controls; using UFSoft.UBF.Util.Log; using UFSoft.UBF.Util.Globalization;
using UFSoft.UBF.UI.IView; using UFSoft.UBF.UI.Engine; using UFSoft.UBF.UI.MD.Runtime; using UFSoft.UBF.UI.ActionProcess; using UFSoft.UBF.UI.WebControls.ClientCallBack; using UFSoft.UBF.Analysis.MD.Report.Service; using UFSoft.UBF.Analysis.Interface.MD.Report.Service; using UFSoft.UBF.Analysis.Interface.MD.Report.Model; using System.IO; using System.Net.Mail; using UFSoft.UBF.PRN.Control; using UFSoft.UBF.Report.Tools; using CusSupplierContactBP; using System.Collections.Generic;
/*********************************************************************************************** * Form ID: * UIFactory Auto Generator ***********************************************************************************************/ namespace UFIDA.U9.Cust.WC.CustPOSendMailUI { public partial class CustPOSendMailUIFormWebPart { #region Custome eventBind
string filePath = " C:\\U8NetPrintResult\\Guest"; string filePathD = " E:\\U8NetPrintResult\\Guest";
string PurMail = "";
//DropDownList_Notices_TextChanged...
private void DropDownList_Notices_TextChanged_Extend(object sender, EventArgs e) { //调用模版提供的默认实现.--默认实现可能会调用相应的Action.
Action.OnSend(sender, new UIActionEventArgs());
string SelSQL = @"SELECT PrintTemplateText FROM Cust_PrintTemplateText WHERE PrintTemplateTypeName='" + this.DropDownList_Notices.Text + "'"; DataSet SelSQLDs = new DataSet(); UFSoft.UBF.Util.DataAccess.DataAccessor.RunSQL(UFSoft.UBF.Util.DataAccess.DataAccessor.GetConn(), SelSQL.ToString(), null, out SelSQLDs); DataTable dt = new DataTable(); dt = SelSQLDs.Tables[0]; if (dt.Rows.Count < 1) { throw new Exception("配置表Cust_PrintTemplateText中不存在对应信息,请先维护"); }
this.MailText53.Text = dt.Rows[0][0].ToString();
this.DataCollect(); this.DataBind();
DropDownList_Notices_TextChanged_DefaultImpl(sender, e); }
//OnSend273_Click...
private void OnSend273_Click_Extend(object sender, EventArgs e) { //调用模版提供的默认实现.--默认实现可能会调用相应的Action.
IUIRecordCollection records = this.Model.CustPOSendMailPerson.SelectRecords;
if (records == null || records.Count == 0) { throw new Exception("请先勾选发件人"); } string MailAddress = string.Empty;
if (records.Count > 0) { foreach (var item in records) { string RcvPerson = string.Empty; string Telephone = string.Empty;
RcvPerson = item["RcvPerson"].ToString(); Telephone = item["Telephone"].ToString(); if (string.IsNullOrWhiteSpace(item["MailAddress"].ToString())) { throw new Exception("邮箱地址为空"); } MailAddress += item["MailAddress"].ToString() + ";"; if (string.IsNullOrWhiteSpace(MailAddress)) { throw new Exception("邮箱地址为空"); }
} }
SendMail(MailAddress);
OnSend273_Click_DefaultImpl(sender, e); }
private void SendMail(string TOAddress) { string printTemplateID = this.PrintTemplates278.Value.ToString();
this.DataCollect(); this.DataBind(); if (string.IsNullOrWhiteSpace(this.PrintTemplates278.Value.ToString())) { throw new Exception("请选择模板"); } string connectionString = UFSoft.UAP.Report.Base.DBConnectionHelper.GetConnectionString(); string cultrueName = UFSoft.UBF.Util.Context.PlatformContext.Current.Culture; ReportMDService service = ReportMDService.GetInstance(connectionString, cultrueName); IReportMDReader reader = service.GetReader(); IReportTemplate reportTemplate = reader.GetReportTemplateByID(printTemplateID); UFSoft.UBF.Report.Entity.Report report = (UFSoft.UBF.Report.Entity.Report)reportTemplate.Content; reader.Dispose();
DataSet ds = new DataSet(); string fileName = OutPutFile(report, ds, printTemplateID);
string _NewFile = string.Empty; string __NewFile = string.Empty;
ArrayList list = new ArrayList(); //读取指定目录的文件
if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } else { DirectoryInfo dirIfo = new DirectoryInfo(filePath); FileInfo[] files = dirIfo.GetFiles(); for (int k = files.Length - 1; k >= 0; k--) { if (fileName == files[k].FullName) { list.Add(files[k].FullName);
_NewFile = filePath + "\\" + "采购订单" + CurrentState["POCode"].ToString() + "" + ".pdf"; __NewFile = filePathD + "\\" + "采购订单" + CurrentState["POCode"].ToString() + "" + ".pdf";
File.Delete(_NewFile); File.Move(files[k].FullName, _NewFile);
File.Move(_NewFile, __NewFile);
} }
}
string MailBoxConfigurationSQL = @"SELECT SendHost,SendPort,SendDisplayName,SendAddress,SendPassword,TOAddress,
CCAddress,Subject,IsBodyHtml FROM [Cust_MailBoxConfiguration ]";
DataSet MailBoxConfigurationDs = new DataSet(); UFSoft.UBF.Util.DataAccess.DataAccessor.RunSQL(UFSoft.UBF.Util.DataAccess.DataAccessor.GetConn(), MailBoxConfigurationSQL.ToString(), null, out MailBoxConfigurationDs); DataTable MailBoxConfigurationDT = new DataTable(); if (MailBoxConfigurationDs != null && MailBoxConfigurationDs.Tables.Count > 0 && MailBoxConfigurationDs.Tables[0].Rows.Count > 0) { MailBoxConfigurationDT = MailBoxConfigurationDs.Tables[0]; }
string SendHost = string.Empty; int SendPort = 0; string SendAddress = string.Empty; ; string SendPassword = string.Empty; ; string CCAddress = string.Empty; ; foreach (DataRow item in MailBoxConfigurationDT.Rows) { SendHost = item["SendHost"].ToString(); if (!string.IsNullOrWhiteSpace(item["SendPort"].ToString())) { SendPort = Int32.Parse(item["SendPort"].ToString()); }
SendAddress = item["SendAddress"].ToString(); SendPassword = item["SendPassword"].ToString(); CCAddress = item["CCAddress"].ToString();
}
string[] mailNames = TOAddress.Split(';'); for (int i = 0; i < list.Count; i++) {
SmtpClient client = new SmtpClient();
client.Host = SendHost;//SMTP服务器地址
client.EnableSsl = true; client.UseDefaultCredentials = false;
//发件人邮箱账号
client.Credentials = new System.Net.NetworkCredential(SendAddress, SendPassword);
MailAddress from = new MailAddress(SendAddress, SendPassword); //邮件的发件人
MailMessage message = new MailMessage(); try { foreach (var MailItem in mailNames) { if (!string.IsNullOrWhiteSpace(MailItem)) { message.To.Add(MailItem);//收件人地址
} } if (!string.IsNullOrWhiteSpace(CCAddress)) { message.CC.Add(CCAddress);//抄送人邮箱
}
string SelSQL = @"SELECT top 1 PrintTemplateText FROM Cust_PrintTemplateText "; DataSet SelSQLDs = new DataSet(); UFSoft.UBF.Util.DataAccess.DataAccessor.RunSQL(UFSoft.UBF.Util.DataAccess.DataAccessor.GetConn(), SelSQL.ToString(), null, out SelSQLDs); DataTable dt = new DataTable(); dt = SelSQLDs.Tables[0]; if (dt.Rows.Count < 1) { throw new Exception("配置表Cust_PrintTemplateText中不存在对应信息,请先维护"); }
message.From = new MailAddress(SendAddress);//发件人邮箱
message.Subject = this.MailTitle86.Text;//邮件标题
message.SubjectEncoding = Encoding.UTF8;//标题格式为UTF8
string _Body = dt.Rows[0][0].ToString(); string[] strArray = _Body.Split(new char[1] { ' ' });
string _SelSQL = @"select c.DefaultEmail from PM_PurchaseOrder a
left join CBO_Operators b on a.PurOper = b.ID left join Base_Contact c on b.Contact = c.ID where a.DocNo ='" + CurrentState["POCode"].ToString() + "' and a.Org='" + CurrentState["OrgID"].ToString() + "'";
DataSet _SelSQLDs = new DataSet(); UFSoft.UBF.Util.DataAccess.DataAccessor.RunSQL(UFSoft.UBF.Util.DataAccess.DataAccessor.GetConn(), _SelSQL.ToString(), null, out _SelSQLDs); DataTable dtPur = new DataTable(); dtPur = _SelSQLDs.Tables[0]; if (dtPur.Rows.Count == 0) { throw new Exception("采购员未维护邮箱"); }
string PurMail = dtPur.Rows[0]["DefaultEmail"].ToString();//采购员收件邮箱
string mailMessage = @"<html>
<body> <table style='width: 100%; table-layout: fixed; font-size: 16px;' border: 0px cellspacing='4' > <tbody> ";
int k = 0; foreach (var item in strArray) { if (k <= strArray.Length - 1) { if (item.StartsWith("\n")) { mailMessage += string.Format(@"
<tr> <td style='color:Red;'>{0}</td> </tr> ", item);
} else { mailMessage += string.Format(@"
<tr> <td >{0}</td> </tr> ", item + " ");
} } i++; } mailMessage += string.Format(@"
<tr> <td >{0}</td> </tr> ", "采购员邮箱:" + PurMail);
mailMessage += string.Format(@"
<tr> <td >{0}</td> </tr> ", "采购经理邮箱:yu.zhou@panawincn.com");
mailMessage += @" </table></body></html>";
message.Body = mailMessage;// mailContent;//邮件内容
message.BodyEncoding = Encoding.UTF8;//内容格式为UTF8
message.IsBodyHtml = true;//是否是HTML邮件
message.Priority = MailPriority.Normal;//邮件优先级
if (SendPort > 0) { client.Port = Convert.ToInt32(SendPort);// 25;
}
message.Attachments.Add(new Attachment(__NewFile)); // 发送附件
client.Send(message);//发送邮件
message.Dispose(); File.Delete(fileName); File.Delete(_NewFile); File.Delete(__NewFile); this.CloseDialog(); } catch (Exception ex) { message.Dispose(); File.Delete(fileName); File.Delete(_NewFile); File.Delete(__NewFile);
throw new Exception(ex.ToString());
}
} }
private string OutPutFile(UFSoft.UBF.Report.Entity.Report template, DataSet data, string printTemplateID) { string sql = string.Empty;
string SelSQL = @"SELECT a.PrintTemplateSQL FROM Cust_PrintTemplate a WHERE a.PrintTemplateID='" + printTemplateID + "'"; DataSet SelSQLDs = new DataSet(); UFSoft.UBF.Util.DataAccess.DataAccessor.RunSQL(UFSoft.UBF.Util.DataAccess.DataAccessor.GetConn(), SelSQL.ToString(), null, out SelSQLDs); DataTable dt = new DataTable(); if (SelSQLDs != null && SelSQLDs.Tables.Count > 0 && SelSQLDs.Tables[0].Rows.Count > 0) { dt = SelSQLDs.Tables[0]; } sql = dt.Rows[0][0].ToString();
sql = string.Format(sql, CurrentState["POCode"].ToString(), CurrentState["OrgID"].ToString());
DataSet SelDs = new DataSet(); UFSoft.UBF.Util.DataAccess.DataAccessor.RunSQL(UFSoft.UBF.Util.DataAccess.DataAccessor.GetConn(), sql.ToString(), null, out SelDs); data = SelDs;
PrintService printService = new PrintService(); PrintCreater printCreater = new PrintCreater(); printService.LoadXmlFormatFromString(printCreater.CreateReport(template).InnerXml); printService.LoadPrintData(data); printService.ConvertStart(); string[] resultFilesName = printService.GetResultFilesName(); return printService.PhysicalFilePrefix + resultFilesName[0]; }
//OnClose141_Click...
private void OnClose141_Click_Extend(object sender, EventArgs e) { //调用模版提供的默认实现.--默认实现可能会调用相应的Action.
OnClose141_Click_DefaultImpl(sender, e); }
string OrgID = string.Empty; string SupplierName = string.Empty; string SupplierCode = string.Empty; string POCode = string.Empty; List<OperationResultContent> list = new List<OperationResultContent>();
#region 自定义数据初始化加载和数据收集
private void OnLoadData_Extend(object sender) { DropDownList_Notices.Items.Clear();
string _SelSQL = @"SELECT PrintTemplateTypeName FROM Cust_PrintTemplateText"; DataSet _SelSQLDs = new DataSet(); UFSoft.UBF.Util.DataAccess.DataAccessor.RunSQL(UFSoft.UBF.Util.DataAccess.DataAccessor.GetConn(), _SelSQL.ToString(), null, out _SelSQLDs); DataTable _dt = new DataTable(); _dt = _SelSQLDs.Tables[0]; if (_dt.Rows.Count < 1) { throw new Exception("配置表Cust_PrintTemplateText中不存在对应信息,请先维护"); } foreach (DataRow item in _dt.Rows) { this.DropDownList_Notices.Items.Add("" + item["PrintTemplateTypeName"].ToString() + ""); }
DropDownList_Notices.SelectedIndex = 0;
OrgID = CurrentState["OrgID"].ToString(); SupplierName = CurrentState["SupplierName"].ToString(); SupplierCode = CurrentState["SupplierCode"].ToString();
POCode = CurrentState["POCode"].ToString();
this.Model.CustPOSendMailPerson.Clear(); CusSupplierContactBP.CusSelSupplierContactBP pro = new CusSupplierContactBP.CusSelSupplierContactBP(); pro.OrgID = OrgID; pro.SupplierNo = SupplierCode; pro.PODocNo = POCode;
list = new List<OperationResultContent>(); list = pro.Do(); if (list != null && list.Count > 0) { foreach (var item in list) { //IUIRecordCollection records = this.Model.CustPOSendMailPerson.SelectRecords;
CustPOSendMailPersonRecord dataRwcord = this.Model.CustPOSendMailPerson.AddNewUIRecord(); if (!string.IsNullOrWhiteSpace(item.SupplierContentName)) { dataRwcord.RcvPerson = item.SupplierContentName; dataRwcord.Telephone = item.Telephoto; dataRwcord.MailAddress = item.Mail; dataRwcord.IsSelected = true; } } }
OnLoadData_DefaultImpl(sender); string MaileTile = string.Empty; MaileTile = "供应商:" + SupplierName + ",采购订单 " + POCode + "已经审批";
string SelSQL = @"SELECT top 1 PrintTemplateText FROM Cust_PrintTemplateText "; DataSet SelSQLDs = new DataSet(); UFSoft.UBF.Util.DataAccess.DataAccessor.RunSQL(UFSoft.UBF.Util.DataAccess.DataAccessor.GetConn(), SelSQL.ToString(), null, out SelSQLDs); DataTable dt = new DataTable(); dt = SelSQLDs.Tables[0]; if (dt.Rows.Count < 1) { throw new Exception("配置表Cust_PrintTemplateText中不存在对应信息,请先维护"); }
_SelSQL = @"select c.DefaultEmail from PM_PurchaseOrder a
left join CBO_Operators b on a.PurOper = b.ID left join Base_Contact c on b.Contact = c.ID where a.DocNo ='" + CurrentState["POCode"].ToString() + "' and a.Org='" + CurrentState["OrgID"].ToString() + "'";
_SelSQLDs = new DataSet(); UFSoft.UBF.Util.DataAccess.DataAccessor.RunSQL(UFSoft.UBF.Util.DataAccess.DataAccessor.GetConn(), _SelSQL.ToString(), null, out _SelSQLDs); DataTable dtPur = new DataTable(); dtPur = _SelSQLDs.Tables[0]; if (dtPur.Rows.Count == 0) { throw new Exception("采购员未维护邮箱"); }
string PurMail = dtPur.Rows[0]["DefaultEmail"].ToString();//采购员收件邮箱
this.MailTitle86.Text = MaileTile; this.MailText53.Text = dt.Rows[0][0].ToString() + "\r\n" + "采购员邮箱:" + PurMail + "\r\n" + "采购经理邮箱:yu.zhou@panawincn.com";
this.DataCollect(); this.DataBind(); } private void OnDataCollect_Extend(object sender) { OnDataCollect_DefaultImpl(sender); } #endregion
#region 自己扩展 Extended Event handler
public void AfterOnLoad() {
}
public void AfterCreateChildControls() {
}
public void AfterEventBind() { }
public void BeforeUIModelBinding() {
}
public void AfterUIModelBinding() {
}
#endregion
#endregion
} }
|