You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DS7/DSWeb/Areas/MvcShipping/DAL/BookingConfirm/BookingConfirmDAL.cs

846 lines
31 KiB
C#

3 years ago
using System;
using System.Data;
using System.Collections.Generic;
using System.Text;
using DSWeb.MvcShipping.Models.BookingConfirm;
using Microsoft.Practices.EnterpriseLibrary.Data;
using DSWeb.Areas.CommMng.Models;
using HcUtility.Comm;
using System.Web.Mvc;//ContentResult
using DSWeb.TruckMng.Helper.Repository;//ModelObjectRepository
using DSWeb.MvcShipping.Helper;
using DSWeb.Areas.CommMng.DAL;//使用获取权限子句
using DSWeb.MvcShipping.Models.MsOpSeae;
using BookingWeb.DB;
using BookingWeb.DB.Model;
using System.Linq;
using DSWeb.MvcShipping.DAL.MsSysParamSet;
using DSWeb.MvcShipping.DAL.DsSendmail;
2 years ago
using static DSWeb.MvcShipping.Controllers.BookingConfirmController;
3 years ago
namespace DSWeb.Areas.MvcShipping.DAL.BookingConfirm
{
public class BookingConfirmDAL
{
#region 订舱 Order 头表
static public List<BookingConfirmmb> GetBookingList ( string strCondition,string USERID, string sort = "" )
{
var strSql = new StringBuilder();
strSql.Append(getHeadListStr(strCondition, USERID));
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by (select max(optime) from OP_LOG where billno=ORDNO and JsonValue like '%\"BSSTATUS\":\"Submit\"%') desc ");
}
return SetBookingData(strSql, USERID);
}
/*
public static BookingConfirmmb GetBookingData(string condition, string USERID)
{
var dataList = GetBookingList(condition, USERID);
var result = new BookingConfirmmb();
if (dataList.Count > 0)
{
result = dataList[0];
}
return result;
}
*/
public static string getHeadListStr(string condition, string USERID) {
string sql = BookingConfirmmb.getSQL() ;
//var rangestr = BasicDataRefDAL.GetVisableRange("modBookingConfirm", USERID, "COMPANYID", "CREATEUSER", "DEPTID");
var CLIENT_ID = EntityDA.T_ALL_DA.GetSQL_str("PARAMVALUE", "select top 1 PARAMVALUE from sys_param_set where PARAMNAME='Booking_CLIENT_GID' ");
sql += " and userid in (select GID from sys_user where CLIENT_ID='"+ CLIENT_ID + "') and BSSTATUS in('Submit','Confirm','Back') ";
if (!string.IsNullOrEmpty(condition)) { sql += " and " + condition; }
return sql;
}
private static List<BookingConfirmmb> SetBookingData(StringBuilder strSql,string USERID)//, List<HcUtility.Core.Fieldmb> fieldlist
{
var headList = new List<BookingConfirmmb>();
//此处使用webconfig中的 booking内定义的订舱平台地址
Database db = DatabaseFactory.CreateDatabase("BookingDB");
string sql = strSql.ToString();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql))
{
while (reader.Read())
{
////根据字段名设定同名属性值
BookingConfirmmb data = new BookingConfirmmb();
data.SetExtendValue(reader);
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 集装箱表 明细表
static public List<Booking_Ctnmb> GetCtnList(string strCondition, string sort = "")
{
var strSql = new StringBuilder();
strSql.Append(getCtnListStr(strCondition));
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by CTNALL ");
}
return SetCtnData(strSql);
}
public static Booking_Ctnmb GetCtnData(string condition)
{
var dataList = GetCtnList(condition);
var result = new Booking_Ctnmb();
if (dataList.Count > 0)
{
result = dataList[0];
}
return result;
}
public static string getCtnListStr(string condition)
{
string sql = Booking_Ctnmb.getSQL();
if (!string.IsNullOrEmpty(condition)) { sql += " where " + condition; }
return sql;
}
private static List<Booking_Ctnmb> SetCtnData(StringBuilder strSql)//, List<HcUtility.Core.Fieldmb> fieldlist
{
var headList = new List<Booking_Ctnmb>();
//此处使用webconfig中的 booking内定义的订舱平台地址
Database db = DatabaseFactory.CreateDatabase("BookingDB");
string sql = strSql.ToString();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql))
{
while (reader.Read())
{
////根据字段名设定同名属性值
Booking_Ctnmb data = new Booking_Ctnmb();
data.SetExtendValue(reader);
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 集装箱装箱明细表 明细表
static public List<Booking_CtnDetailmb> GetCtnDetailList(string strCondition, string USERID, string sort = "")
{
var strSql = new StringBuilder();
strSql.Append(GetCtnDetailListStr(strCondition, USERID));
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
//strSql.Append(" order by CTNALL ");
}
return SetCtnDetailData(strSql, USERID);
}
public static Booking_CtnDetailmb GetCtnDetailData(string condition, string USERID)
{
var dataList = GetCtnDetailList(condition, USERID);
var result = new Booking_CtnDetailmb();
if (dataList.Count > 0)
{
result = dataList[0];
}
return result;
}
public static string GetCtnDetailListStr(string condition, string USERID)
{
string sql = Booking_CtnDetailmb.getSQL();
if (!string.IsNullOrEmpty(condition)) { sql += " where " + condition; }
return sql;
}
private static List<Booking_CtnDetailmb> SetCtnDetailData(StringBuilder strSql, string USERID)//, List<HcUtility.Core.Fieldmb> fieldlist
{
var headList = new List<Booking_CtnDetailmb>();
//此处使用webconfig中的 booking内定义的订舱平台地址
Database db = DatabaseFactory.CreateDatabase("BookingDB");
string sql = strSql.ToString();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql))
{
while (reader.Read())
{
////根据字段名设定同名属性值
Booking_CtnDetailmb data = new Booking_CtnDetailmb();
data.SetExtendValue(reader);
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 提单确认表 头表//截单对比中的本地数据
static public List<Booking_OP_SEAE_SImb> GetBooking_SIList(string strCondition, string USERID, string sort = "")
{
var strSql = new StringBuilder();
strSql.Append(getBooking_SIListStr(strCondition, USERID));
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by (select max(optime) from OP_LOG where billno=SINO and JsonValue like '%\"BSSTATUS\":\"Submit\"%') ");
}
return SetSIData(strSql, USERID);
}
public static Booking_OP_SEAE_SImb GetBooking_SIData(string condition, string USERID)
{
var dataList = GetBooking_SIList(condition, USERID);
var result = new Booking_OP_SEAE_SImb();
if (dataList.Count > 0)
{
result = dataList[0];
}
return result;
}
public static string getBooking_SIListStr(string condition, string USERID)
{
string sql = Booking_OP_SEAE_SImb.getSQL();
string _condition = " BSSTATUS <>'Create' ";
sql += " where " + _condition;
var CLIENT_ID = EntityDA.T_ALL_DA.GetSQL_str("PARAMVALUE", "select top 1 PARAMVALUE from sys_param_set where PARAMNAME='Booking_CLIENT_GID' ");
sql += " and userid in (select GID from sys_user where CLIENT_ID='" + CLIENT_ID + "') and BSSTATUS in('Submit','Confirm','Reject')";
if (!string.IsNullOrEmpty(condition)) { sql += " and " + condition; }
return sql;
}
private static List<Booking_OP_SEAE_SImb> SetSIData(StringBuilder strSql, string USERID)//, List<HcUtility.Core.Fieldmb> fieldlist
{
var headList = new List<Booking_OP_SEAE_SImb>();
//此处使用webconfig中的 booking内定义的订舱平台地址
Database db = DatabaseFactory.CreateDatabase("BookingDB");
string sql = strSql.ToString();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql))
{
while (reader.Read())
{
////根据字段名设定同名属性值
Booking_OP_SEAE_SImb data = new Booking_OP_SEAE_SImb();
data.SetExtendValue(reader);
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 获取字段列表存在于op_seae不存在于op_seae_billmanage且在“需要同步”的范围之内
/// <summary>
/// 获取字段列表存在于op_seae不存在于op_seae_billmanage且在“需要同步”的范围之内
/// </summary>
/// <param name="HeadSIFieldList"></param>
/// <returns></returns>
public static List<DiffFieldmb> GetMoreField(List<DiffFieldmb> HeadSIFieldList) {
//最初为数据库比较 后改为固定范围
//var noexistfieldList = SetNoExistList();
var noexistfieldList = new List<DiffFieldmb>();
var SIREMARK = new DiffFieldmb("SIREMARK", "");
noexistfieldList.Add(SIREMARK);
var COPYNOBILL = new DiffFieldmb("COPYNOBILL", "");
noexistfieldList.Add(COPYNOBILL);
var ISCONTAINERSOC = new DiffFieldmb("ISCONTAINERSOC", "");
noexistfieldList.Add(ISCONTAINERSOC);
var result = new List<DiffFieldmb>();
foreach (var item in HeadSIFieldList)
{
foreach (var field in noexistfieldList)
{
if (item.FieldName == field.FieldName)
{
result.Add(item);
continue;
}
}
}
return result;
}
private static List<DiffFieldmb> SetNoExistList()
{
var headList = new List<DiffFieldmb>();
Database db = DatabaseFactory.CreateDatabase();
string sql = " Select name from syscolumns Where ID=OBJECT_ID('op_seae') and name not in (select name from syscolumns Where ID = OBJECT_ID('op_seae_billmanage')) ";
using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql))
{
while (reader.Read())
{
////根据字段名设定同名属性值
DiffFieldmb data = new DiffFieldmb(Convert.ToString(reader["name"]),"");
//data.FieldName= Convert.ToString(reader["name"]);
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
/// <summary>
/// 向Booking.Op_seae_order写入数据
/// </summary>
/// <param name="head"></param>
/// <returns></returns>
private BookingDB bookingDB = new BookingDB();
public static DBResult SavetoBooking(MsOpSeae head,string CORPNAME)
{
var bookingDB = new BookingDB();
var result = new DBResult(false, "", null);
OP_SEAE_ORDER model = bookingDB.Orders.First(o => o.BSNO == head.BSNO);
model.MBLNO = head.MBLNO;
model.VESSEL = head.VESSEL;
model.VOYNO = head.VOYNO;
model.YARD = head.YARD;
if(!string.IsNullOrWhiteSpace(head.ETD))
model.ETD = Convert.ToDateTime( head.ETD);
if (!string.IsNullOrWhiteSpace(head.CLOSINGDATE))
model.CLOSINGDATE = Convert.ToDateTime(head.CLOSINGDATE);
if (!string.IsNullOrWhiteSpace(head.CLOSEDOCDATE))
model.CLOSEDOCDATE = Convert.ToDateTime(head.CLOSEDOCDATE);
model.VESSELID = head.VESSELID;
model.CARRIER = head.CARRIER;
var _r = bookingDB.SaveChanges();
if (_r>0) {
//保存日志
var viewModel = OrderEditViewModelExt.AsEditViewModel(model);
LogHelper.Log(OpLogModule.Order, OpLogType.Save, model.ORDNO, model.MBLNO,model.CORPID,CORPNAME, Newtonsoft.Json.JsonConvert.SerializeObject(viewModel));
}
return result;
}
/// <summary>
/// 判断Booking.OP_seae_order的状态是否能进行指定变化
/// </summary>
/// <param name="BSNO"></param>
/// <param name="STATUS"></param>
/// <returns></returns>
public static DBResult Order_CanConfirm(string BSNO, string STATUS)
{
var bookingDB = new BookingDB();
var result = new DBResult(false, "", null);
if (string.IsNullOrEmpty(BSNO)) {
result.Success = true;
return result;
}
OP_SEAE_ORDER model = bookingDB.Orders.First(o => o.BSNO == BSNO);
2 years ago
if (DoingOrder.IsDoing(model.ORDERNO))
{
result.Message = "该业务正在处理,请刷新后重试";
return result;
}
else {
DoingOrder.Add(model.ORDERNO);
}
3 years ago
var Confirms = bookingDB.Confirms.Where(o => o.ORDNO == model.ORDNO && (o.BSSTATUS == OrderStatus.Submit.ToString() || o.BSSTATUS == OrderStatus.Confirm.ToString()));
if (Confirms.Count() > 0)
{
result.Message = "已经开始截单的订舱业务不能更改订舱状态";
return result;
}
if ((model.BSSTATUS == OrderStatus.Submit.ToString() && STATUS == OrderStatus.Confirm.ToString()) || ((model.BSSTATUS == OrderStatus.Confirm.ToString() || model.BSSTATUS == OrderStatus.Submit.ToString()) && STATUS == OrderStatus.Back.ToString())) {
result.Success = true;
return result;
}
result.Message="当前状态不能进行此操作";
return result;
}
/// <summary>
/// 更改Booking.Op_Seae_Order的状态
/// 如果需要的话 对Booking.OP_STATUS_LOG进行操作
/// </summary>
/// <param name="BSNO"></param>
/// <param name="CORPNAME"></param>
/// <returns></returns>
public static DBResult BookingStatus_Order(OP_SEAE_ORDER model, string STATUS, string CORPNAME)
{
var bookingDB = new BookingDB();
var result = new DBResult(false, "", null);
//OP_SEAE_ORDER model = bookingDB.Orders.FirstOrDefault(o => o.BSNO == BSNO);
//1.Confirm
if (STATUS == OrderStatus.Confirm.ToString()) {
OP_STATUS_LOG confirmlog = new OP_STATUS_LOG();
confirmlog.GID = System.Guid.NewGuid().ToString();
confirmlog.RELATIVE_ID = model.ORDNO;
confirmlog.STATUS = OrderLogStatus.OrderConfirm.ToString();
confirmlog.OP_TIME = System.DateTime.Now;
confirmlog.OP_USER = CORPNAME;
bookingDB.StatusLogs.Add(confirmlog);
}
//statusLogs = bookingDB.StatusLogs.Where(o => o.RELATIVE_ID == model.ORDNO && o.STATUS == OrderLogStatus.OrderSubmit.ToString());
//2.Back
if (STATUS == OrderStatus.Back.ToString())
{
bookingDB.StatusLogs.RemoveRange(bookingDB.StatusLogs.Where(o => o.RELATIVE_ID == model.ORDNO && (o.STATUS == OrderLogStatus.OrderSubmit.ToString() || o.STATUS == OrderLogStatus.OrderConfirm.ToString())));
result.Success = true;
}
//model.BSSTATUS = STATUS;
var _r = bookingDB.SaveChanges();
if (_r > 1) {
result.Success = true;
}
return result;
}
/// <summary>
/// 写回订舱网站端的订舱状态
/// </summary>
/// <param name="ORDNO"></param>
/// <param name="BSNO"></param>
/// <param name="STATUS"></param>
/// <param name="CORPNAME"></param>
/// <returns></returns>
public static DBResult BookingStatus_Order(string ORDNO, string BSNO, string STATUS, string CORPNAME,string OPEmail="") {
var bookingDB = new BookingDB();
OP_SEAE_ORDER model = bookingDB.Orders.FirstOrDefault(o => o.ORDNO == ORDNO);
model.BSNO = BSNO;
model.BSSTATUS = STATUS;//写回订舱状态
if (STATUS== OrderStatus.Confirm.ToString()) {
model.EMAIL = OPEmail;
}
bookingDB.SaveChanges();
return BookingStatus_Order(model, STATUS, CORPNAME);
}
/// <summary>
/// 判断Booking.OP_seae_order的状态是否能进行指定变化
/// </summary>
/// <param name="BSNO"></param>
/// <param name="STATUS"></param>
/// <returns></returns>
public static DBResult SI_CanConfirm(string SINO, string ConfirmStatus)
{
var result = new DBResult(false, "", null);
var bookingDB = new BookingDB();
var confirm = bookingDB.Confirms.FirstOrDefault(o => o.SINO == SINO);
OP_SEAE_ORDER model = bookingDB.Orders.First(o => o.ORDNO == confirm.ORDNO);
var Confirms = bookingDB.Confirms.Where(o => o.ORDNO == confirm.ORDNO);
if (ConfirmStatus == OrderConfirmStatus.Reject.ToString())
{
if (confirm.BSSTATUS == OrderConfirmStatus.Confirm.ToString())
{
result.Message = "已经确认的截单不能再驳回";
return result;
}
}
if (confirm.BSSTATUS != OrderConfirmStatus.Submit.ToString())
{
result.Message = "当前状态不能进行此操作";
return result;
}
result.Success = true;
return result;
}
/// <summary>
/// 对Booking.Op_Seae_SI进行状态变更操作
/// </summary>
/// <param name="SINO"></param>
/// <param name="ConfirmStatus"></param>
/// <param name="CORPNAME"></param>
/// <returns></returns>
public static DBResult BookingStatus_Confirm(string SINO,string ConfirmStatus, string CORPNAME,string USERID="")
{
var result = new DBResult(false, "", null);
var bookingDB = new BookingDB();
var confirm = bookingDB.Confirms.FirstOrDefault(o => o.SINO == SINO);
OP_SEAE_ORDER model = bookingDB.Orders.First(o => o.ORDNO == confirm.ORDNO);
var Confirms = bookingDB.Confirms.Where(o => o.ORDNO == confirm.ORDNO).ToList();
if (ConfirmStatus == OrderConfirmStatus.Reject.ToString()) {
//if (confirm.BSSTATUS == OrderConfirmStatus.Confirm.ToString()) {
// result.Message = "已经确认的截单不能再驳回";
// return result;
//}
confirm.BSSTATUS = OrderConfirmStatus.Reject.ToString();
model.SISTATUS = OrderConfirmStatus.Reject.ToString();
//if (Confirms.Where(o => o.BSSTATUS == OrderConfirmStatus.Reject.ToString()).Count() > 0)
//{
bookingDB.StatusLogs.RemoveRange(bookingDB.StatusLogs.Where(o => o.RELATIVE_ID == confirm.ORDNO && (o.STATUS == OrderLogStatus.ConfirmSubmit.ToString() || o.STATUS == OrderLogStatus.ConfirmConfirm.ToString())));
//}
bookingDB.SaveChanges();
result.Success = true;
}
if (ConfirmStatus == OrderConfirmStatus.Confirm.ToString())
{
confirm.BSSTATUS = OrderConfirmStatus.Confirm.ToString();
bookingDB.SaveChanges();
if (Confirms.Where(o => o.BSSTATUS == OrderConfirmStatus.Confirm.ToString()).Count() == Confirms.Count())
{
OP_STATUS_LOG confirmlog = new OP_STATUS_LOG();
confirmlog.GID = System.Guid.NewGuid().ToString();
confirmlog.RELATIVE_ID = confirm.ORDNO;
confirmlog.STATUS = OrderLogStatus.ConfirmConfirm.ToString();
confirmlog.OP_TIME = System.DateTime.Now;
confirmlog.OP_USER = CORPNAME;
bookingDB.StatusLogs.Add(confirmlog);
model.SISTATUS = OrderConfirmStatus.Confirm.ToString();
}
try
{
bookingDB.SaveChanges();
}
catch(Exception e) {
}
result.Success = true;
}
return result;
}
#region 订舱 邮件
/// <summary>
/// ORDNO TYPE类型订舱确认/驳回订舱)
/// </summary>
/// <param name="ORDER"></param>
/// <param name="TYPE"></param>
/// <returns></returns>
public static DBResult SendMail_Order(string ORDNO, string TYPE, string REASON, string EMAIL, string USERID,string COMPANYNAME,MsOpSeae headData=null)
{
DBResult result = new DBResult(true, "", null);
var bookingDB = new BookingDB();
var Order = bookingDB.Orders.FirstOrDefault(o => o.ORDNO == ORDNO);
var mailtopic = TYPE + ":" + Order.ORDERNO+"|"+ Order.CARRIER+"|ETD:"+Order.ETD+"|"+Order.CNTRTOTAL+"|"+ Order.PORTDISCHARGE;
//var userlist = MsBaseInfoDAL.MsBaseInfoDAL.GetUserBaseList("USERID='" + userid + "'");
//var tel = "";
//var email = "";
var SENDEREMAIL = "";
var qq = "";
var p = BasicDataRefDAL.GetPhoneWithUserId(USERID, out SENDEREMAIL, out qq);
var mailbody = "订舱公司:" + COMPANYNAME + "</br>"
+ "订舱编号:" + Order.ORDERNO + "</br>"
+ "ETD" + Order.ETD + "</br>"
+ "船公司:" + Order.CARRIER + "</br>"
+ "箱型箱量:" + Order.CNTRTOTAL + "</br>"
+ "卸货港:" + Order.PORTDISCHARGE + "</br>";
if (!string.IsNullOrEmpty(REASON))
mailbody += "" + REASON + "</br>";
if (headData != null) {
mailbody += getmailinfo(headData.OP,headData.SERVICE,headData.SALE);
}
mailbody += "发送邮箱:" + SENDEREMAIL;
mailbody+= "</br>" + "</br>" + "</br>" + "<p style=\"color:blue\">本邮件为 " + COMPANYNAME + " 工作平台自动发送,请勿回复</p>";
//string toNames = "frank,lee";
var MAILTONAME = "dongshengcangdan@h8j.top";//"admin@dongshengsoft.com";
var PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTONAME'");
if (PARAMVALUE.PARAMVALUE != "") MAILTONAME = PARAMVALUE.PARAMVALUE;
var MAILTOPASSWORD = "A1B2C3ds040201";//"ds!@#)(*";
PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTOPASSWORD'");
if (PARAMVALUE.PARAMVALUE != "") MAILTOPASSWORD = PARAMVALUE.PARAMVALUE;
var MAILTOSERVER = "smtpdm.aliyun.com";// "smtpcom.263xmail.com";
PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTOSERVER'");
if (PARAMVALUE.PARAMVALUE != "") MAILTOSERVER = PARAMVALUE.PARAMVALUE;
var MAILTOPORT = "80";// "465";
PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTOPORT'");
if (PARAMVALUE.PARAMVALUE != "") MAILTOPORT = PARAMVALUE.PARAMVALUE;
var MAILISSSL = false;
PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILISSSL'");
if (PARAMVALUE.PARAMVALUE == "1") MAILISSSL = true;
SendEmail se = new SendEmail(EMAIL, MAILTONAME, "", "", mailtopic, mailbody, true);
// SendEmail se = new SendEmail("dev001@dongshengsoft.com", "admin@dongshengsoft.com", "", "", mailtopic, mailbody, false);
try
{
se.SetSmtp_thread(MAILTONAME, MAILTOPASSWORD, MAILTOSERVER, Convert.ToInt32(MAILTOPORT), MAILISSSL, System.Net.Mail.MailPriority.Normal);
}
catch (Exception e)
{
se.SetSmtp_thread(MAILTONAME, MAILTOPASSWORD, MAILTOSERVER, Convert.ToInt32(MAILTOPORT), MAILISSSL, System.Net.Mail.MailPriority.Normal);
}
result.Success = true;
result.Message = "";
return result;
}
public static DBResult SendMail_SI(string SINO, string TYPE, string REASON,MsOpSeae headData, string EMAIL, string USERID, string COMPANYNAME)
{
DBResult result = new DBResult(true, "", null);
var bookingDB = new BookingDB();
var SI = bookingDB.Confirms.FirstOrDefault(o => o.SINO == SINO);
var mailtopic = TYPE + " MBLNO:" + SI.MBLNO+"|" + SI.CARRIER + "|ETD:" + SI.ETD + "|"+SI.CNTRTOTAL+"|" + SI.PORTDISCHARGE; ;
//var userlist = MsBaseInfoDAL.MsBaseInfoDAL.GetUserBaseList("USERID='" + userid + "'");
//var tel = "";
//var email = "";
var SENDEREMAIL = "";
var qq = "";
var p = BasicDataRefDAL.GetPhoneWithUserId(USERID, out SENDEREMAIL, out qq);
//if (!string.IsNullOrWhiteSpace(REASON)) {
// REASON = "原因:" + "</br>" + REASON;
//}
//var mailbody = "公司:" + COMPANYNAME + "\r\n" + "MBLNO" + SI.MBLNO + "\r\n" + "订舱编号:" + SI.ORDERNO + "\r\n" + "卸货港:" + SI.PORTDISCHARGE + "\r\n" + "ETD" + SI.ETD + "\r\n" + "" + REASON + "\r\n" + "邮箱:" + SENDEREMAIL;
var mailbody = "</br>" + "MBLNO" + SI.MBLNO + "</br>"
+ "订舱编号:" + SI.ORDERNO + "</br>"
+ "卸货港:" + SI.PORTDISCHARGE + "</br>"
+ "ETD" + SI.ETD + "</br>";
if (!string.IsNullOrWhiteSpace(REASON))
{
mailbody += "原因:" + "</br>" + REASON + "</br>";
if (headData != null)
{
mailbody += getmailinfo(headData.OP, headData.SERVICE, headData.SALE);
}
}
mailbody += "" + REASON + "";
mailbody += "</br>" + "</br>" + "</br>" + "<p style=\"color:blue\">本邮件为 " + COMPANYNAME + " 工作平台自动发送,请勿回复</p>";
//string toNames = "frank,lee";
var MAILTONAME = "admin@dongshengsoft.com";
var PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTONAME'");
if (PARAMVALUE.PARAMVALUE != "") MAILTONAME = PARAMVALUE.PARAMVALUE;
var MAILTOPASSWORD = "ds!@#)(*";
PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTOPASSWORD'");
if (PARAMVALUE.PARAMVALUE != "") MAILTOPASSWORD = PARAMVALUE.PARAMVALUE;
var MAILTOSERVER = "smtpcom.263xmail.com";
PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTOSERVER'");
if (PARAMVALUE.PARAMVALUE != "") MAILTOSERVER = PARAMVALUE.PARAMVALUE;
var MAILTOPORT = "465";
PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILTOPORT'");
if (PARAMVALUE.PARAMVALUE != "") MAILTOPORT = PARAMVALUE.PARAMVALUE;
var MAILISSSL = false;
PARAMVALUE = MsSysParamSetDAL.GetData("PARAMNAME='MAILISSSL'");
if (PARAMVALUE.PARAMVALUE == "1") MAILISSSL = true;
SendEmail se = new SendEmail(EMAIL, MAILTONAME, "", "", mailtopic, mailbody, true);
// SendEmail se = new SendEmail("dev001@dongshengsoft.com", "admin@dongshengsoft.com", "", "", mailtopic, mailbody, false);
try
{
se.SetSmtp_thread(MAILTONAME, MAILTOPASSWORD, MAILTOSERVER, Convert.ToInt32(MAILTOPORT), MAILISSSL, System.Net.Mail.MailPriority.Normal);
}
catch (Exception e)
{
se.SetSmtp_thread(MAILTONAME, MAILTOPASSWORD, MAILTOSERVER, Convert.ToInt32(MAILTOPORT), MAILISSSL, System.Net.Mail.MailPriority.Normal);
}
result.Success = true;
result.Message = "";
return result;
}
/// <summary>
///
/// </summary>
/// <param name="opname">操作</param>
/// <param name="servicename">客服</param>
/// <param name="salename">销售</param>
/// <returns></returns>
private static string getmailinfo(string opname,string servicename,string salename)
{
var qq = "";
var result = "";
if(!string.IsNullOrWhiteSpace(opname))
result += "操作:" + getmailinfo(opname);
if (!string.IsNullOrWhiteSpace(servicename))
result += "客服:" + getmailinfo(servicename);
if (!string.IsNullOrWhiteSpace(salename))
result += "销售:" + getmailinfo(salename);
return result = "";
}
private static string getmailinfo(string showname) {
var qq = "";
var result = "";
var name = showname;
var mail = "";
var tel = BasicDataRefDAL.GetPhoneWithUserId(name, out mail, out qq);
return name + "<&ensp;>" + tel + "<&ensp;>" + mail+ "</br>";
}
#endregion
}
}