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.

927 lines
40 KiB
C#

using System;
using System.Data;
using System.Data.Common;
using System.Collections.Generic;
using System.Text;
using DSWeb.MvcShipping.Models.MsOpSeaePre;
using Microsoft.Practices.EnterpriseLibrary.Data;
using DSWeb.EntityDA;
using DSWeb.Areas.CommMng.Models;
using HcUtility.Comm;
using HcUtility.Core;
namespace DSWeb.MvcShipping.DAL.MsOpSeaePreDAL
{
public class MsOpSeaePreDAL
{
#region Inquery DataList
static public List<MsOpSeaePre> GetDataList(string strCondition, string userid, string usercode, string companyid, string sort = null)
{
var rangstr = "";
// GetRangDAStr("index", userid, usercode, companyid);
if (!string.IsNullOrEmpty(rangstr))
{
if (!string.IsNullOrEmpty(strCondition))
{
strCondition = strCondition + " and " + rangstr;
}
else
{
strCondition = rangstr;
}
}
//
String strSql = "SELECT [BSNO],[MASTERNO],[CUSTOMERNAME],[MBLNO],[CONTRACTNO],[VESSEL],[VOYNO],[ETD],[CLOSINGDATE],[CLOSEDOCDATE],[ETA]"
+ ",CNTR1,CNTR2,CNTR3,CNTR4,CNTR5,CNTR6,CNTR7,CNTR8,CNTR9,CNTR10,OTCNTR"
+ ",(select top 1 showname from [user] where GID=op_seae_pre.CREATEUSER) as CREATEUSER,(select top 1 showname from [user] where GID=op_seae_pre.MODIFIEDUSER) as MODIFIEDUSER"
+ ",[PORTLOADID],[PORTLOAD],[PORTDISCHARGEID],[PORTDISCHARGE],[LANE],[CARRIER],[FORWARDER],[BSSTATUS],[CNTRTOTAL],[OP],[REMARK],[CREATEUSER],[CREATETIME],[MODIFIEDUSER],[MODIFIEDTIME],BSLOCK FROM op_seae_pre ";
if (!string.IsNullOrEmpty(strCondition))
{
strSql += " where " + strCondition;
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql += " order by " + sortstring;
}
else
{
strSql += " order by ETD desc";
}
return SetData(strSql);
}
static public string GetDataListStr(string strCondition, string userid, string usercode, string companyid, string sort = null)
{
var rangstr = "";
if (!string.IsNullOrEmpty(rangstr))
{
if (!string.IsNullOrEmpty(strCondition))
{
strCondition = strCondition + " and " + rangstr;
}
else
{
strCondition = rangstr;
}
}
//
String strSql = "SELECT [BSNO],[MASTERNO],[CUSTOMERNAME],[MBLNO],[CONTRACTNO],[VESSEL],[VOYNO],[ETD],[CLOSINGDATE],[CLOSEDOCDATE],[ETA]"
+ ",CNTR1,CNTR2,CNTR3,CNTR4,CNTR5,CNTR6,CNTR7,CNTR8,CNTR9,CNTR10,OTCNTR"
+ ",(select top 1 showname from [user] where GID=op_seae_pre.CREATEUSER) as CREATEUSER,(select top 1 showname from [user] where GID=op_seae_pre.MODIFIEDUSER) as MODIFIEDUSER"
+ ",[PORTLOADID],[PORTLOAD],[PORTDISCHARGEID],[PORTDISCHARGE],[LANE],[CARRIER],[FORWARDER],[BSSTATUS],[CNTRTOTAL],[OP],[REMARK],[CREATETIME],[MODIFIEDTIME],BSLOCK FROM op_seae_pre ";
if (!string.IsNullOrEmpty(strCondition))
{
strSql += " where " + strCondition;
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql += " order by " + sortstring;
}
else
{
strSql += " order by ETD desc";
}
return strSql.ToString();
}
static public MsOpSeaePre GetData(string condition)
{
String strSql = "SELECT [BSNO],[MASTERNO],[CUSTOMERNAME],[MBLNO],[CONTRACTNO],[VESSEL],[VOYNO],[ETD],[CLOSINGDATE],[CLOSEDOCDATE],[ETA]"
+ ",CNTR1,CNTR2,CNTR3,CNTR4,CNTR5,CNTR6,CNTR7,CNTR8,CNTR9,CNTR10,OTCNTR"
+ ",[PORTLOADID],[PORTLOAD],[PORTDISCHARGEID],[PORTDISCHARGE],[LANE],[CARRIER],[FORWARDER],[BSSTATUS],[CNTRTOTAL],[OP],[REMARK],[CREATEUSER],[CREATETIME],[MODIFIEDUSER],[MODIFIEDTIME],BSLOCK FROM op_seae_pre ";
if (!string.IsNullOrEmpty(condition))
{
strSql += " where " + condition;
}
var list=SetData(strSql);
if (list.Count > 0)
{
return list[0];
}
return new MsOpSeaePre();
}
static public List<MsOpSeaePre> GetHisDataList(string strCondition, string userid, string usercode, string companyid, string sort = null)
{
var rangstr = "";
// GetRangDAStr("index", userid, usercode, companyid);
if (!string.IsNullOrEmpty(rangstr))
{
if (!string.IsNullOrEmpty(strCondition))
{
strCondition = strCondition + " and " + rangstr;
}
else
{
strCondition = rangstr;
}
}
//
String strSql = "SELECT [BSNO],[MASTERNO],[CUSTOMERNAME],[MBLNO],[CONTRACTNO],[VESSEL],[VOYNO],[ETD],[CLOSINGDATE],[CLOSEDOCDATE],[ETA]"
+ ",CNTR1,CNTR2,CNTR3,CNTR4,CNTR5,CNTR6,CNTR7,CNTR8,CNTR9,CNTR10,OTCNTR"
+ ",(select top 1 showname from [user] where GID=op_seae_pre_his.CREATEUSER) as CREATEUSER,(select top 1 showname from [user] where GID=op_seae_pre_his.MODIFIEDUSER) as MODIFIEDUSER"
+ ",[PORTLOADID],[PORTLOAD],[PORTDISCHARGEID],[PORTDISCHARGE],[LANE],[CARRIER],[FORWARDER],[BSSTATUS],[CNTRTOTAL],[OP],[REMARK],[CREATEUSER],[CREATETIME],[MODIFIEDUSER],[MODIFIEDTIME],0 BSLOCK FROM op_seae_pre_his ";
if (!string.IsNullOrEmpty(strCondition))
{
strSql += " where " + strCondition;
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql += " order by " + sortstring;
}
else
{
strSql += " order by ETD desc";
}
return SetData(strSql);
}
static public string GetHisDataListStr(string strCondition, string userid, string usercode, string companyid, string sort = null)
{
var rangstr = "";
if (!string.IsNullOrEmpty(rangstr))
{
if (!string.IsNullOrEmpty(strCondition))
{
strCondition = strCondition + " and " + rangstr;
}
else
{
strCondition = rangstr;
}
}
//
String strSql = "SELECT [BSNO],[MASTERNO],[CUSTOMERNAME],[MBLNO],[CONTRACTNO],[VESSEL],[VOYNO],[ETD],[CLOSINGDATE],[CLOSEDOCDATE],[ETA]"
+ ",CNTR1,CNTR2,CNTR3,CNTR4,CNTR5,CNTR6,CNTR7,CNTR8,CNTR9,CNTR10,OTCNTR"
+ ",[PORTLOADID],[PORTLOAD],[PORTDISCHARGEID],[PORTDISCHARGE],[LANE],[CARRIER],[FORWARDER],[BSSTATUS],[CNTRTOTAL],[OP],[REMARK],[CREATEUSER],[CREATETIME],[MODIFIEDUSER],[MODIFIEDTIME],0 BSLOCK FROM op_seae_pre_his ";
if (!string.IsNullOrEmpty(strCondition))
{
strSql += " where " + strCondition;
}
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql += " order by " + sortstring;
}
else
{
strSql += " order by ETD desc";
}
return strSql.ToString();
}
static public MsOpSeaePre GetHisData(string condition)
{
String strSql = "SELECT [BSNO],[MASTERNO],[CUSTOMERNAME],[MBLNO],[CONTRACTNO],[VESSEL],[VOYNO],[ETD],[CLOSINGDATE],[CLOSEDOCDATE],[ETA]"
+ ",CNTR1,CNTR2,CNTR3,CNTR4,CNTR5,CNTR6,CNTR7,CNTR8,CNTR9,CNTR10,OTCNTR"
+ ",[PORTLOADID],[PORTLOAD],[PORTDISCHARGEID],[PORTDISCHARGE],[LANE],[CARRIER],[FORWARDER],[BSSTATUS],[CNTRTOTAL],[OP],[REMARK],[CREATEUSER],[CREATETIME],[MODIFIEDUSER],[MODIFIEDTIME],0 BSLOCK FROM op_seae_pre_his ";
if (!string.IsNullOrEmpty(condition))
{
strSql += " where " + condition;
}
var list = SetData(strSql);
if (list.Count > 0)
{
return list[0];
}
return new MsOpSeaePre();
}
private static List<MsOpSeaePre> SetData(String strSql)
{
var headList = new List<MsOpSeaePre>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsOpSeaePre data = new MsOpSeaePre();
#region Set DB data to Object
data.BSNO = Convert.ToString(reader["BSNO"]);
data.MASTERNO = Convert.ToString(reader["MASTERNO"]);
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
data.MBLNO = Convert.ToString(reader["MBLNO"]);
data.CONTRACTNO = Convert.ToString(reader["CONTRACTNO"]);
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
data.VESSEL = Convert.ToString(reader["VESSEL"]);
data.VOYNO = Convert.ToString(reader["VOYNO"]);
if (reader["ETD"] != DBNull.Value)
data.ETD = Convert.ToDateTime(reader["ETD"]).ToString("yyyy-MM-dd");
data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]);
data.PORTDISCHARGE = Convert.ToString(reader["PORTDISCHARGE"]);
data.PORTLOADID = Convert.ToString(reader["PORTLOADID"]);
data.PORTDISCHARGEID = Convert.ToString(reader["PORTDISCHARGEID"]);
data.LANE = Convert.ToString(reader["LANE"]);
data.CARRIER = Convert.ToString(reader["CARRIER"]);
data.FORWARDER = Convert.ToString(reader["FORWARDER"]);
data.BSSTATUS = Convert.ToString(reader["BSSTATUS"]);
data.CNTRTOTAL = Convert.ToString(reader["CNTRTOTAL"]);
data.OP = Convert.ToString(reader["OP"]);
data.REMARK = Convert.ToString(reader["REMARK"]);
data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);
if (reader["CREATETIME"] != DBNull.Value)
data.CREATETIME = Convert.ToDateTime(reader["CREATETIME"]);
data.MODIFIEDUSER = Convert.ToString(reader["MODIFIEDUSER"]);
if (reader["MODIFIEDTIME"] != DBNull.Value)
data.MODIFIEDTIME = Convert.ToDateTime(reader["MODIFIEDTIME"]);
if (reader["CLOSINGDATE"] != DBNull.Value)
data.CLOSINGDATE = Convert.ToDateTime(reader["CLOSINGDATE"]).ToString("yyyy-MM-dd HH:mm:ss");//截港日期
if (reader["CLOSEDOCDATE"] != DBNull.Value)
data.CLOSEDOCDATE = Convert.ToDateTime(reader["CLOSEDOCDATE"]).ToString("yyyy-MM-dd HH:mm:ss");//截港日期
if (reader["CNTR1"] != DBNull.Value)
data.CNTR1 = Convert.ToInt32(reader["CNTR1"]);//箱型1
if (reader["CNTR2"] != DBNull.Value)
data.CNTR2 = Convert.ToInt32(reader["CNTR2"]);//箱型2
if (reader["CNTR3"] != DBNull.Value)
data.CNTR3 = Convert.ToInt32(reader["CNTR3"]);//箱型3
if (reader["CNTR4"] != DBNull.Value)
data.CNTR4 = Convert.ToInt32(reader["CNTR4"]);//箱型4
if (reader["CNTR5"] != DBNull.Value)
data.CNTR5 = Convert.ToInt32(reader["CNTR5"]);//箱型5
if (reader["CNTR6"] != DBNull.Value)
data.CNTR6 = Convert.ToInt32(reader["CNTR6"]);//箱型6
if (reader["CNTR7"] != DBNull.Value)
data.CNTR7 = Convert.ToInt32(reader["CNTR7"]);//箱型7
if (reader["CNTR8"] != DBNull.Value)
data.CNTR8 = Convert.ToInt32(reader["CNTR8"]);//箱型8
if (reader["CNTR9"] != DBNull.Value)
data.CNTR9 = Convert.ToInt32(reader["CNTR9"]);//箱型9
if (reader["CNTR10"] != DBNull.Value)
data.CNTR10 = Convert.ToInt32(reader["CNTR10"]);//箱型10
if (reader["OTCNTR"] != DBNull.Value)
data.OTCNTR = Convert.ToInt32(reader["OTCNTR"]);//其他箱型
if (!string.IsNullOrEmpty(data.ETD) && (data.BSSTATUS == "船公司已放舱未使用"))
{
if ((Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")).AddDays(2))>=(Convert.ToDateTime(data.ETD))) {
data.LISTSTATUS = "1";
}
}
else data.LISTSTATUS = "0";
if (reader["BSLOCK"] != DBNull.Value)
data.BSLOCK = Convert.ToBoolean(reader["BSLOCK"]);//箱型3
#endregion
headList.Add(data);
}
reader.Close();
}
return headList;
}
#endregion
#region 批量修改
public static DBResult UnBsLock(List<MsOpSeaePre> bodyList, string companyid)
{
var result = new DBResult();
string errstr = "";
int i = 0;
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var strSql = new StringBuilder();
strSql.Append("update op_seae_pre set BSLOCK=0 ");
strSql.Append(" where BSNO=@BSNO ");
var cmdupdate =
db.GetSqlStringCommand(strSql.ToString());
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
cmdupdate.Parameters.Clear();
db.AddInParameter(cmdupdate, "@BSNO", DbType.String, enumValue.BSNO);
db.ExecuteNonQuery(cmdupdate, tran);
}
}
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "出现错误,请重试或联系系统管理员";
return result;
}
}
result.Success = true;
result.Message = "取消锁定成功";
return result;
}
public static DBResult Modify(List<MsOpSeaePre> bodyList, MsOpSeaePre modifydata, string companyid)
{
var result = new DBResult();
string errstr = "";
int i = 0;
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var strSql = new StringBuilder();
strSql.Append("update op_seae_pre set bsno=bsno ");
if (modifydata.CARRIER != "" && modifydata.CARRIER != null)
strSql.Append(",CARRIER=@CARRIER");
if (modifydata.FORWARDER != "" && modifydata.FORWARDER != null)
strSql.Append(",FORWARDER=@FORWARDER");
if (modifydata.CUSTOMERNAME != "" && modifydata.CUSTOMERNAME != null)
strSql.Append(",CUSTOMERNAME=@CUSTOMERNAME");
if (modifydata.LANE != "" && modifydata.LANE != null)
strSql.Append(",LANE=@LANE");
if (modifydata.PORTLOAD != "" && modifydata.PORTLOAD != null)
strSql.Append(",PORTLOAD=@PORTLOAD");
if (modifydata.PORTDISCHARGE != "" && modifydata.PORTDISCHARGE != null)
strSql.Append(",PORTDISCHARGE=@PORTDISCHARGE");
if (modifydata.VESSEL != "" && modifydata.VESSEL != null)
strSql.Append(",VESSEL=@VESSEL");
if (modifydata.VOYNO != "" && modifydata.VOYNO != null)
strSql.Append(",VOYNO=@VOYNO");
if (modifydata.ETD != "" && modifydata.ETD != null)
{
strSql.Append(",ETD=@ETD");
}
if (modifydata.CLOSINGDATE != "" && modifydata.CLOSINGDATE != null)
strSql.Append(",CLOSINGDATE=@CLOSINGDATE");
if (modifydata.CLOSEDOCDATE != "" && modifydata.CLOSEDOCDATE != null)
strSql.Append(",CLOSEDOCDATE=@CLOSEDOCDATE");
strSql.Append(" where BSNO=@BSNO ");
var cmdupdate =
db.GetSqlStringCommand(strSql.ToString());
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
var opseae = GetData("BSNO='" + enumValue.BSNO + "'");
var isPost = true;
//if (opseae.BSSTATUS)
//{
// if (errstr == "")
// errstr = enumValue.CUSTNO + "此票所在业务已业务锁定";
// else
// errstr = errstr + "," + enumValue.CUSTNO + "此票所在业务已业务锁定";
// isPost = false;
//}
//if (!string.IsNullOrEmpty(opseae.ETD) && !string.IsNullOrEmpty(modifydata.CLOSINGDATE))
//{
// if (Convert.ToDateTime(opseae.ETD + " 23:59:59") < Convert.ToDateTime(modifydata.CLOSINGDATE))
// {
// isPost = false;
// errstr = errstr + "," + "截港日期不允许大于开船日期";
// }
//}
//if (!string.IsNullOrEmpty(opseae.ETD) && !string.IsNullOrEmpty(modifydata.CLOSEDOCDATE))
//{
// if (Convert.ToDateTime(opseae.ETD + " 23:59:59") < Convert.ToDateTime(modifydata.CLOSEDOCDATE))
// {
// isPost = false;
// errstr = errstr + "," + "截单日期不允许大于开船日期";
// }
//}
if (isPost)
{
cmdupdate.Parameters.Clear();
if (modifydata.CARRIER != "" && modifydata.CARRIER != null)
db.AddInParameter(cmdupdate, "@CARRIER", DbType.String, modifydata.CARRIER);
if (modifydata.FORWARDER != "" && modifydata.FORWARDER != null)
db.AddInParameter(cmdupdate, "@FORWARDER", DbType.String, modifydata.FORWARDER);
if (modifydata.CUSTOMERNAME != "" && modifydata.CUSTOMERNAME != null)
db.AddInParameter(cmdupdate, "@CUSTOMERNAME", DbType.String, modifydata.CUSTOMERNAME);
if (modifydata.LANE != "" && modifydata.LANE != null)
db.AddInParameter(cmdupdate, "@LANE", DbType.String, modifydata.LANE);
if (modifydata.PORTLOAD != "" && modifydata.PORTLOAD != null)
db.AddInParameter(cmdupdate, "@PORTLOAD", DbType.String, modifydata.PORTLOAD);
if (modifydata.PORTDISCHARGE != "" && modifydata.PORTDISCHARGE != null)
db.AddInParameter(cmdupdate, "@PORTDISCHARGE", DbType.String, modifydata.PORTDISCHARGE);
if (modifydata.VESSEL != "" && modifydata.VESSEL != null)
db.AddInParameter(cmdupdate, "@VESSEL", DbType.String, modifydata.VESSEL);
if (modifydata.VOYNO != "" && modifydata.VOYNO != null)
db.AddInParameter(cmdupdate, "@VOYNO", DbType.String, modifydata.VOYNO);
if (modifydata.ETD != "" && modifydata.ETD != null)
{
db.AddInParameter(cmdupdate, "@ETD", DbType.String, modifydata.ETD);
}
if (modifydata.CLOSINGDATE != "" && modifydata.CLOSINGDATE != null)
db.AddInParameter(cmdupdate, "@CLOSINGDATE", DbType.String, modifydata.CLOSINGDATE);
if (modifydata.CLOSEDOCDATE != "" && modifydata.CLOSEDOCDATE != null)
db.AddInParameter(cmdupdate, "@CLOSEDOCDATE", DbType.String, modifydata.CLOSEDOCDATE);
db.AddInParameter(cmdupdate, "@BSNO", DbType.String, enumValue.BSNO);
db.ExecuteNonQuery(cmdupdate, tran);
i = i + 1;
}
}
}
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "修改出现错误,请重试或联系系统管理员";
return result;
}
}
result.Success = true;
result.Message = "修改成功" + i.ToString() + "票";
if (errstr != "")
{
result.Message = result.Message + "(其中" + errstr + " 无法修改)";
}
return result;
}
public static DBResult ShenModify(MsOpSeaePre oldData, MsOpSeaePre newdata,string userid,string companyid,string rq)
{
var result = new DBResult();
var headData = newdata;
headData.DbOperationType = DbOperationType.DbotUpd;
headData.ModelUIStatus = "E";
//
headData.MODIFIEDUSER =userid;//最后一次操作人
headData.MODIFIEDTIME = DateTime.Parse(rq);//最后一次操作时间
var ctndataList = MsCodeOpServiceDAL.MsCodeOpServiceDAL.GetDataCtnList("OPTYPE='1'");
var ctnstr = "";
if (headData.CNTR1 != 0)
{
foreach (var ctncode in ctndataList)
{
if (ctncode.OPTYPE == "" && ctncode.OPField == "CNTR1")
{
if (string.IsNullOrEmpty(ctnstr))
ctnstr = ctnstr + ctncode.SERVICENAME + "*" + headData.CNTR1.ToString();
else
ctnstr = ctnstr + " " + ctncode.SERVICENAME + "*" + headData.CNTR1.ToString();
}
}
}
if (headData.CNTR2 != 0)
{
foreach (var ctncode in ctndataList)
{
if (ctncode.OPTYPE == "" && ctncode.OPField == "CNTR2")
{
if (string.IsNullOrEmpty(ctnstr))
ctnstr = ctnstr + ctncode.SERVICENAME + "*" + headData.CNTR2.ToString();
else
ctnstr = ctnstr + " " + ctncode.SERVICENAME + "*" + headData.CNTR2.ToString();
}
}
}
if (headData.CNTR3 != 0)
{
foreach (var ctncode in ctndataList)
{
if (ctncode.OPTYPE == "" && ctncode.OPField == "CNTR3")
{
if (string.IsNullOrEmpty(ctnstr))
ctnstr = ctnstr + ctncode.SERVICENAME + "*" + headData.CNTR3.ToString();
else
ctnstr = ctnstr + " " + ctncode.SERVICENAME + "*" + headData.CNTR3.ToString();
}
}
}
if (headData.CNTR4 != 0)
{
foreach (var ctncode in ctndataList)
{
if (ctncode.OPTYPE == "" && ctncode.OPField == "CNTR4")
{
if (string.IsNullOrEmpty(ctnstr))
ctnstr = ctnstr + ctncode.SERVICENAME + "*" + headData.CNTR4.ToString();
else
ctnstr = ctnstr + " " + ctncode.SERVICENAME + "*" + headData.CNTR4.ToString();
}
}
}
if (headData.CNTR5 != 0)
{
foreach (var ctncode in ctndataList)
{
if (ctncode.OPTYPE == "" && ctncode.OPField == "CNTR5")
{
if (string.IsNullOrEmpty(ctnstr))
ctnstr = ctnstr + ctncode.SERVICENAME + "*" + headData.CNTR5.ToString();
else
ctnstr = ctnstr + " " + ctncode.SERVICENAME + "*" + headData.CNTR5.ToString();
}
}
}
if (headData.CNTR6 != 0)
{
foreach (var ctncode in ctndataList)
{
if (ctncode.OPTYPE == "" && ctncode.OPField == "CNTR6")
{
if (string.IsNullOrEmpty(ctnstr))
ctnstr = ctnstr + ctncode.SERVICENAME + "*" + headData.CNTR6.ToString();
else
ctnstr = ctnstr + " " + ctncode.SERVICENAME + "*" + headData.CNTR6.ToString();
}
}
}
if (headData.CNTR7 != 0)
{
foreach (var ctncode in ctndataList)
{
if (ctncode.OPTYPE == "" && ctncode.OPField == "CNTR7")
{
if (string.IsNullOrEmpty(ctnstr))
ctnstr = ctnstr + ctncode.SERVICENAME + "*" + headData.CNTR7.ToString();
else
ctnstr = ctnstr + " " + ctncode.SERVICENAME + "*" + headData.CNTR7.ToString();
}
}
}
if (headData.CNTR8 != 0)
{
foreach (var ctncode in ctndataList)
{
if (ctncode.OPTYPE == "" && ctncode.OPField == "CNTR8")
{
if (string.IsNullOrEmpty(ctnstr))
ctnstr = ctnstr + ctncode.SERVICENAME + "*" + headData.CNTR8.ToString();
else
ctnstr = ctnstr + " " + ctncode.SERVICENAME + "*" + headData.CNTR8.ToString();
}
}
}
if (headData.CNTR9 != 0)
{
foreach (var ctncode in ctndataList)
{
if (ctncode.OPTYPE == "" && ctncode.OPField == "CNTR9")
{
if (string.IsNullOrEmpty(ctnstr))
ctnstr = ctnstr + ctncode.SERVICENAME + "*" + headData.CNTR9.ToString();
else
ctnstr = ctnstr + " " + ctncode.SERVICENAME + "*" + headData.CNTR9.ToString();
}
}
}
if (headData.CNTR10 != 0)
{
foreach (var ctncode in ctndataList)
{
if (ctncode.OPTYPE == "" && ctncode.OPField == "CNTR10")
{
if (string.IsNullOrEmpty(ctnstr))
ctnstr = ctnstr + ctncode.SERVICENAME + "*" + headData.CNTR10.ToString();
else
ctnstr = ctnstr + " " + ctncode.SERVICENAME + "*" + headData.CNTR10.ToString();
}
}
}
headData.CNTRTOTAL = ctnstr;
if (headData.ETD == "") headData.ETD = null;
if (headData.CLOSINGDATE == "") headData.CLOSINGDATE = null;
if (headData.CLOSEDOCDATE == "") headData.CLOSEDOCDATE = null;
var modb = new ModelObjectDB();
result = modb.Save(headData);
if (result.Success) {
var oldhis = new MsOpSeaePreHis();
oldhis.DbOperationType = DbOperationType.DbotIns;
oldhis.MASTERNO = headData.BSNO;
oldhis.LOSTNO = oldhis.BSNO;
oldhis.TYPE = 1;
oldhis.MODIFIEDUSER = userid;//最后一次操作人
oldhis.MODIFIEDTIME = DateTime.Parse(rq);//最后一次操作时间
oldhis.BSSTATUS = oldData.BSSTATUS;
oldhis.CUSTOMERNAME = oldData.CUSTOMERNAME;
oldhis.MBLNO = oldData.MBLNO;
oldhis.CONTRACTNO = oldData.CONTRACTNO;
oldhis.VESSEL = oldData.VESSEL;
oldhis.VOYNO = oldData.VOYNO;
oldhis.ETD = oldData.ETD;
oldhis.CLOSINGDATE = oldData.CLOSINGDATE;
oldhis.CLOSEDOCDATE = oldData.CLOSEDOCDATE;
oldhis.PORTLOAD = oldData.PORTLOAD;
oldhis.PORTDISCHARGE = oldData.PORTDISCHARGE;
oldhis.LANE = oldData.LANE;
oldhis.CARRIER = oldData.CARRIER;
oldhis.FORWARDER = oldData.FORWARDER;
oldhis.OP = oldData.OP;
oldhis.REMARK = oldData.REMARK;
oldhis.CNTR1 = oldData.CNTR1;
oldhis.CNTR2 = oldData.CNTR2;
oldhis.CNTR3 = oldData.CNTR3;
oldhis.CNTR4 = oldData.CNTR4;
oldhis.CNTR5 = oldData.CNTR5;
oldhis.CNTR6 = oldData.CNTR6;
oldhis.CNTR7 = oldData.CNTR7;
oldhis.CNTR8 = oldData.CNTR8;
oldhis.CNTR9 = oldData.CNTR9;
oldhis.CNTR10 = oldData.CNTR10;
if (oldhis.ETD == "") oldhis.ETD = null;
if (oldhis.CLOSINGDATE == "") oldhis.CLOSINGDATE = null;
if (oldhis.CLOSEDOCDATE == "") oldhis.CLOSEDOCDATE = null;
modb.Save(oldhis);
var newhis = new MsOpSeaePreHis();
newhis.DbOperationType = DbOperationType.DbotIns;
newhis.MASTERNO = headData.BSNO;
newhis.LOSTNO = oldhis.BSNO;
newhis.TYPE = 2;
newhis.MODIFIEDUSER = userid;//最后一次操作人
newhis.MODIFIEDTIME = DateTime.Parse(rq);//最后一次操作时间
newhis.BSSTATUS = newdata.BSSTATUS;
newhis.CUSTOMERNAME = newdata.CUSTOMERNAME;
newhis.MBLNO = newdata.MBLNO;
newhis.CONTRACTNO = newdata.CONTRACTNO;
newhis.VESSEL = newdata.VESSEL;
newhis.VOYNO = newdata.VOYNO;
newhis.ETD = newdata.ETD;
newhis.CLOSINGDATE = newdata.CLOSINGDATE;
newhis.CLOSEDOCDATE = newdata.CLOSEDOCDATE;
newhis.PORTLOAD = newdata.PORTLOAD;
newhis.PORTDISCHARGE = newdata.PORTDISCHARGE;
newhis.LANE = newdata.LANE;
newhis.CARRIER = newdata.CARRIER;
newhis.FORWARDER = newdata.FORWARDER;
newhis.OP = newdata.OP;
newhis.REMARK = newdata.REMARK;
newhis.CNTR1 = newdata.CNTR1;
newhis.CNTR2 = newdata.CNTR2;
newhis.CNTR3 = newdata.CNTR3;
newhis.CNTR4 = newdata.CNTR4;
newhis.CNTR5 = newdata.CNTR5;
newhis.CNTR6 = newdata.CNTR6;
newhis.CNTR7 = newdata.CNTR7;
newhis.CNTR8 = newdata.CNTR8;
newhis.CNTR9 = newdata.CNTR9;
newhis.CNTR10 = newdata.CNTR10;
if (newhis.ETD == "") newhis.ETD = null;
if (newhis.CLOSINGDATE == "") newhis.CLOSINGDATE = null;
if (newhis.CLOSEDOCDATE == "") newhis.CLOSEDOCDATE = null;
modb.Save(newhis);
}
return result;
}
#endregion
#region 判断编码是否有重复
static public int GetRdCount(string strCondition)
{
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append(" Count(BSNO) AS CT ");
strSql.Append(" from op_seae_pre ");
if (strCondition.Trim() != String.Empty)
{
strSql.Append(" where " + strCondition);
}
var ct=0;
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
ct = Convert.ToInt16(reader["CT"]);
}
reader.Close();
}
return ct;
}
#endregion
#region 判断是否有FEE
public static bool GetFeeCount(string BSNO)
{
var isfee = false;
String strSql = "Select count(*) as count from ch_fee where BSNO='" + BSNO + "'";
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql))
{
while (reader.Read())
{
var evData = Convert.ToInt32(reader["count"]);
if (evData > 0) { isfee = true; };
}
reader.Close();
}
return isfee;
}
#endregion
#region Rang权限范围
public static string GetRangDAStr(string tb, string userid, string username, string companyid)
{
string str = "";
var strSql = new StringBuilder();
strSql.Append("SELECT");
strSql.Append(" VISIBLERANGE,OPERATERANGE,AUTHORITYID");
strSql.Append(" from VW_User_Authority");
strSql.Append(" where [NAME]='modOpOtherList' and USERID='" + userid + "' and ISDELETE=0");
string visiblerange = "4";
string operaterange = "4";
string AUTHORITYID = "";
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
visiblerange = Convert.ToString(reader["VISIBLERANGE"]);
operaterange = Convert.ToString(reader["OPERATERANGE"]);
AUTHORITYID = Convert.ToString(reader["AUTHORITYID"]);
break;
}
reader.Close();
}
if (visiblerange == "4")
{
str = " (OP='" + username + "' OR CREATEUSER='" + userid + "' OR SALE='" + username + "' OR CUSTSERVICE='" + username + "')";
}
else if (visiblerange == "3")
{
str = " (OP='" + username + "' OR CREATEUSER='" + userid + "' OR SALE='" + username + "' OR CUSTSERVICE='" + username + "')";
}
else if (visiblerange == "2")
{
var rangeDa = new RangeDA();
var deptname = rangeDa.GetDEPTNAME(userid);
str = " (OP in (select showname from [user] where GID in (select USERID from user_company where COMPANYID='" + companyid + "') and GID in (select userid from user_baseinfo where DEPTNAME='" + deptname + "'))"
+ " OR CREATEUSER in (select GID from [user] where GID in (select USERID from user_company where COMPANYID='" + companyid + "') and GID in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')))";
}
else if (visiblerange == "1")
{
str = " (UPPER(op_other.Corpid)='" + companyid + "' or op_other.SALECORPID='" + companyid + "') ";
}
else if (visiblerange == "5")
{
if (tb == "index")
{
var userstr = new StringBuilder();
userstr.Append(" select COMPANYID from user_authority_range_company where userid='" + userid + "' and AUTHORITYID='" + AUTHORITYID + "' and VISIBLERANGE=1");
Database userdb = DatabaseFactory.CreateDatabase();
using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
{
str = "";
while (reader.Read())
{
if (str == "")
{
str = " (op_other.Corpid='" + Convert.ToString(reader["COMPANYID"]) + "' or op_other.SALECORPID='" + Convert.ToString(reader["COMPANYID"]) + "' ";
}
else
{
str = str + " or op_other.Corpid='" + Convert.ToString(reader["COMPANYID"]) + "' or op_other.SALECORPID='" + Convert.ToString(reader["COMPANYID"]) + "'";
};
}
str = str + ")";
reader.Close();
}
}
else
{
str = " (UPPER(op_other.Corpid)='" + companyid + "') ";
}
}
else if (visiblerange == "6")
{
if (tb == "index")
{
var opstr = "";
var userstr = new StringBuilder();
userstr.Append(" select OPID,(select SHOWNAME from [user] where GID=user_authority_range_op.OPID) SHOWNAME from user_authority_range_op where userid='" + userid + "' and AUTHORITYID='" + AUTHORITYID + "' and VISIBLERANGE=1");
Database userdb = DatabaseFactory.CreateDatabase();
using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString()))
{
while (reader.Read())
{
if (opstr == "")
{
opstr = " ('" + Convert.ToString(reader["SHOWNAME"]) + "'";
}
else
{
opstr = opstr + ",'" + Convert.ToString(reader["SHOWNAME"]) + "'";
};
}
if (opstr != "") opstr = opstr + ")";
reader.Close();
}
if (opstr == "") opstr = "('" + username + "')";
str = " (OP in " + opstr + " or CREATEUSER in " + opstr + " or CUSTSERVICE IN " + opstr + " or SALE IN " + opstr + " )";
}
else
{
str = " (UPPER(op_other.Corpid)='" + companyid + "') ";
}
}
else if (visiblerange == "0")
{
str = " 1=1 ";
}
return str;
}
#endregion
}
}