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/MsOpReceipt/MsOpReceiptDAL.cs

1040 lines
54 KiB
C#

2 years ago
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Text;
using DSWeb.MvcShipping.Models.MsOpReceipt;
using HcUtility.Comm;
using System.Data.SqlClient;
using WebSqlHelper;
using Microsoft.Practices.EnterpriseLibrary.Data;
using DSWeb.EntityDA;
using System.Web;
using System.IO;
using DSWeb.Areas.CommMng.Models;
namespace DSWeb.MvcShipping.DAL.MsOpReceiptDAL
{
public class MsOpReceiptDAL
{
#region 插入、更新、删除 等 op_receipt 表的操作,并返回操作结果
static public int SaveUpdateReceipt(IList<MsOpReceiptEntity> tempReceiptEntities, string tempGID, string tempUserID, string tempCOMPANYID)
{
int iResult = 0;
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
foreach (MsOpReceiptEntity model in tempReceiptEntities)
{
if (model.BSNO == "*" || model.BSNO == "")
{
#region 插入op_receipt并返回操作结果
SqlParameter[] parameters = {
new SqlParameter("@GID", SqlDbType.VarChar,36) ,
new SqlParameter("@TRANCNO", SqlDbType.VarChar,100) ,
new SqlParameter("@ISREPEAT", SqlDbType.Bit,1) ,
new SqlParameter("@REPEAT_MAN", SqlDbType.VarChar,100) ,
//new SqlParameter("@REPEAT_DATE", SqlDbType.DateTime) ,
new SqlParameter("@ISRECEIVE", SqlDbType.Bit,1) ,
new SqlParameter("@RETURN_MAN", SqlDbType.VarChar,100) ,
//new SqlParameter("@RETURN_DATE", SqlDbType.DateTime) ,
new SqlParameter("@RETURN_TRANCER", SqlDbType.VarChar,100) ,
new SqlParameter("@RETURN_TRANCNO", SqlDbType.VarChar,100) ,
new SqlParameter("@REMARK", SqlDbType.VarChar,1024) ,
new SqlParameter("@BSNO", SqlDbType.VarChar,100) ,
new SqlParameter("@CORPID", SqlDbType.VarChar,36) ,
new SqlParameter("@CREATEUSER", SqlDbType.VarChar,36) ,
//new SqlParameter("@CREATETIME", SqlDbType.DateTime) ,
new SqlParameter("@MODIFIEDUSER", SqlDbType.VarChar,36) ,
//new SqlParameter("@MODIFIEDTIME", SqlDbType.DateTime) ,
new SqlParameter("@RECEIPTNO", SqlDbType.VarChar,100) ,
new SqlParameter("@RECEIPTTYPE", SqlDbType.VarChar,100) ,
new SqlParameter("@RECEIVE_MAN", SqlDbType.VarChar,100) ,
//new SqlParameter("@RECEIVE_DATE", SqlDbType.DateTime) ,
new SqlParameter("@SEND_MAN", SqlDbType.VarChar,100) ,
//new SqlParameter("@SEND_DATE", SqlDbType.DateTime) ,
new SqlParameter("@TRANCER", SqlDbType.VarChar,100),
new SqlParameter("@DOCNUM", SqlDbType.Int)
};
parameters[0].Value = Guid.NewGuid().ToString().Trim();
parameters[1].Value = model.TRANCNO;
parameters[2].Value = model.ISREPEAT;
parameters[3].Value = model.REPEAT_MAN;
//parameters[4].Value = model.REPEAT_DATE;
parameters[4].Value = model.ISRECEIVE;
parameters[5].Value = model.RETURN_MAN;
//parameters[7].Value = model.RETURN_DATE;
parameters[6].Value = model.RETURN_TRANCER;
parameters[7].Value = model.RETURN_TRANCNO;
parameters[8].Value = model.REMARK;
parameters[9].Value = tempGID;
parameters[10].Value = tempCOMPANYID;
parameters[11].Value = model.CREATEUSER;
//parameters[14].Value = model.CREATETIME;
parameters[12].Value = model.MODIFIEDUSER;
//parameters[16].Value = model.MODIFIEDTIME;
parameters[13].Value = model.RECEIPTNO;
parameters[14].Value = model.RECEIPTTYPE;
parameters[15].Value = model.RECEIVE_MAN;
//parameters[20].Value = model.RECEIVE_DATE;
parameters[16].Value = model.SEND_MAN;
//parameters[22].Value = model.SEND_DATE;
parameters[17].Value = model.TRANCER;
parameters[18].Value = model.DOCNUM;
string REPEAT_DATE = "";
string REPEAT_DATE_name = "";
if (model.REPEAT_DATE != null)
{
if (model.REPEAT_DATE.ToString().IndexOf("0001") < 0 && model.REPEAT_DATE.ToString().Trim() != "")
{
REPEAT_DATE = "'" + model.REPEAT_DATE.ToString() + "',";
REPEAT_DATE_name = "REPEAT_DATE,";
}
}
string RETURN_DATE = "";
string RETURN_DATE_name = "";
if (model.RETURN_DATE != null)
{
if (model.RETURN_DATE.ToString().IndexOf("0001") < 0 && model.RETURN_DATE.ToString().Trim() != "")
{
RETURN_DATE = "'" + model.RETURN_DATE.ToString() + "',";
RETURN_DATE_name = "RETURN_DATE,";
}
}
string RECEIVE_DATE = "";
string RECEIVE_DATE_name = "";
if (model.RECEIVE_DATE != null)
{
if (model.RECEIVE_DATE.ToString().IndexOf("0001") < 0 && model.RECEIVE_DATE.ToString().Trim() != "")
{
RECEIVE_DATE = "'" + model.RECEIVE_DATE.ToString() + "',";
RECEIVE_DATE_name = "RECEIVE_DATE,";
}
}
string SEND_DATE = "";
string SEND_DATE_name = "";
if (model.SEND_DATE != null)
{
if (model.SEND_DATE.ToString().IndexOf("0001") < 0 && model.SEND_DATE.ToString().Trim() != "")
{
SEND_DATE = "'" + model.SEND_DATE.ToString() + "',";
SEND_DATE_name = "SEND_DATE,";
}
}
String strSql = "insert into op_receipt(GID,TRANCNO,ISREPEAT,REPEAT_MAN,{0}ISRECEIVE,RETURN_MAN,{2}RETURN_TRANCER,RETURN_TRANCNO,REMARK,BSNO,CORPID,CREATEUSER,CREATETIME,MODIFIEDUSER,MODIFIEDTIME,RECEIPTNO,RECEIPTTYPE,RECEIVE_MAN,{4}SEND_MAN,{6}TRANCER,DOCNUM)"
+ " values (@GID,@TRANCNO,@ISREPEAT,@REPEAT_MAN,{1}@ISRECEIVE,@RETURN_MAN,{3}@RETURN_TRANCER,@RETURN_TRANCNO,@REMARK,@BSNO,@CORPID,@CREATEUSER,getdate(),@MODIFIEDUSER,getdate(),@RECEIPTNO,@RECEIPTTYPE,@RECEIVE_MAN,{5}@SEND_MAN,{7}@TRANCER,@DOCNUM)";
strSql = String.Format(strSql, REPEAT_DATE_name, REPEAT_DATE, RETURN_DATE_name, RETURN_DATE, RECEIVE_DATE_name, RECEIVE_DATE, SEND_DATE_name, SEND_DATE);
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql, parameters);
#endregion
}
else
{
#region 更新op_receipt并返回操作结果
SqlParameter[] parameters = {
new SqlParameter("@GID", SqlDbType.VarChar,36) ,
new SqlParameter("@TRANCNO", SqlDbType.VarChar,100) ,
new SqlParameter("@ISREPEAT", SqlDbType.Bit,1) ,
new SqlParameter("@REPEAT_MAN", SqlDbType.VarChar,100) ,
//new SqlParameter("@REPEAT_DATE", SqlDbType.DateTime) ,
new SqlParameter("@ISRECEIVE", SqlDbType.Bit,1) ,
new SqlParameter("@RETURN_MAN", SqlDbType.VarChar,100) ,
//new SqlParameter("@RETURN_DATE", SqlDbType.DateTime) ,
new SqlParameter("@RETURN_TRANCER", SqlDbType.VarChar,100) ,
new SqlParameter("@RETURN_TRANCNO", SqlDbType.VarChar,100) ,
new SqlParameter("@REMARK", SqlDbType.VarChar,1024) ,
//new SqlParameter("@BSNO", SqlDbType.VarChar,100) ,
//new SqlParameter("@CORPID", SqlDbType.VarChar,36) ,
//new SqlParameter("@CREATEUSER", SqlDbType.VarChar,36) ,
//new SqlParameter("@CREATETIME", SqlDbType.DateTime) ,
new SqlParameter("@MODIFIEDUSER", SqlDbType.VarChar,36) ,
//new SqlParameter("@MODIFIEDTIME", SqlDbType.DateTime) ,
new SqlParameter("@RECEIPTNO", SqlDbType.VarChar,100) ,
new SqlParameter("@RECEIPTTYPE", SqlDbType.VarChar,100) ,
new SqlParameter("@RECEIVE_MAN", SqlDbType.VarChar,100) ,
//new SqlParameter("@RECEIVE_DATE", SqlDbType.DateTime) ,
new SqlParameter("@SEND_MAN", SqlDbType.VarChar,100) ,
//new SqlParameter("@SEND_DATE", SqlDbType.DateTime) ,
new SqlParameter("@TRANCER", SqlDbType.VarChar,100),
new SqlParameter("@DOCNUM", SqlDbType.Int)
};
parameters[0].Value = model.GID;
parameters[1].Value = model.TRANCNO;
parameters[2].Value = model.ISREPEAT;
parameters[3].Value = model.REPEAT_MAN;
//parameters[4].Value = model.REPEAT_DATE;
parameters[4].Value = model.ISRECEIVE;
parameters[5].Value = model.RETURN_MAN;
//parameters[7].Value = model.RETURN_DATE;
parameters[6].Value = model.RETURN_TRANCER;
parameters[7].Value = model.RETURN_TRANCNO;
parameters[8].Value = model.REMARK;
//parameters[9].Value = model.BSNO;
//parameters[12].Value = model.CORPID;
//parameters[13].Value = model.CREATEUSER;
//parameters[14].Value = model.CREATETIME;
parameters[9].Value = model.MODIFIEDUSER;
//parameters[16].Value = model.MODIFIEDTIME;
parameters[10].Value = model.RECEIPTNO;
parameters[11].Value = model.RECEIPTTYPE;
parameters[12].Value = model.RECEIVE_MAN;
//parameters[20].Value = model.RECEIVE_DATE;
parameters[13].Value = model.SEND_MAN;
//parameters[22].Value = model.SEND_DATE;
parameters[14].Value = model.TRANCER;
parameters[15].Value = model.DOCNUM;
//
string REPEAT_DATE = "";
if (model.REPEAT_DATE != null)
{
if (model.REPEAT_DATE.ToString().IndexOf("0001") < 0 && model.REPEAT_DATE.ToString().Trim() != "")
{
REPEAT_DATE = "REPEAT_DATE='" + model.REPEAT_DATE.ToString() + "',";
}
}
string RETURN_DATE = "";
if (model.RETURN_DATE != null)
{
if (model.RETURN_DATE.ToString().IndexOf("0001") < 0 && model.RETURN_DATE.ToString().Trim() != "")
{
RETURN_DATE = "RETURN_DATE='" + model.RETURN_DATE.ToString() + "',";
}
}
string RECEIVE_DATE = "";
if (model.RECEIVE_DATE != null)
{
if (model.RECEIVE_DATE.ToString().IndexOf("0001") < 0 && model.RECEIVE_DATE.ToString().Trim() != "")
{
RECEIVE_DATE = "RECEIVE_DATE='" + model.RECEIVE_DATE.ToString() + "',";
}
}
string SEND_DATE = "";
if (model.SEND_DATE != null)
{
if (model.SEND_DATE.ToString().IndexOf("0001") < 0 && model.SEND_DATE.ToString().Trim() != "")
{
SEND_DATE = "SEND_DATE='" + model.SEND_DATE.ToString() + "',";
}
}
//
StringBuilder strSql=new StringBuilder();
strSql.Append("update op_receipt set ");
strSql.Append(" TRANCNO = @TRANCNO , ");
strSql.Append(" ISREPEAT = @ISREPEAT , ");
strSql.Append(" REPEAT_MAN = @REPEAT_MAN , ");
strSql.Append(REPEAT_DATE);
strSql.Append(" ISRECEIVE = @ISRECEIVE , ");
strSql.Append(" RETURN_MAN = @RETURN_MAN , ");
strSql.Append(RETURN_DATE);
strSql.Append(" RETURN_TRANCER = @RETURN_TRANCER , ");
strSql.Append(" RETURN_TRANCNO = @RETURN_TRANCNO , ");
strSql.Append(" REMARK = @REMARK , ");
//strSql.Append(" BSNO = @BSNO , ");
//strSql.Append(" CORPID = @CORPID , ");
//strSql.Append(" CREATEUSER = @CREATEUSER , ");
//strSql.Append(" CREATETIME = @CREATETIME , ");
strSql.Append(" MODIFIEDUSER = @MODIFIEDUSER , ");
strSql.Append(" MODIFIEDTIME = getdate() , ");
strSql.Append(" RECEIPTNO = @RECEIPTNO , ");
strSql.Append(" RECEIPTTYPE = @RECEIPTTYPE , ");
strSql.Append(" RECEIVE_MAN = @RECEIVE_MAN , ");
strSql.Append(RECEIVE_DATE);
strSql.Append(" SEND_MAN = @SEND_MAN , ");
strSql.Append(SEND_DATE);
strSql.Append(" TRANCER = @TRANCER, ");
strSql.Append(" DOCNUM = @DOCNUM ");
strSql.Append(" where GID=@GID ");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql.ToString(), parameters);
#endregion
}
}
sqlTran.Commit();
iResult = 1;//状态为1表示插入成功
}
catch (Exception execError)
{
iResult = -1;//有异常,插入失败
sqlTran.Rollback();
iResult = -2;//插入异常,事务已回滚成功
throw execError;
}
finally
{
SqlHelper.CloseConnection();
}
}
return iResult;
}
static public int DeleteReceipt(string tempGID)
{
int iResult = 0;
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
var strSql = new StringBuilder();
strSql.Append("Delete from op_receipt where GID in (" + tempGID + ")");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql.ToString());
sqlTran.Commit();
iResult = 1;//状态为1表示插入成功
}
catch (Exception execError)
{
iResult = -1;//有异常,插入失败
sqlTran.Rollback();
iResult = -2;//插入异常,事务已回滚成功
throw execError;
}
finally
{
SqlHelper.CloseConnection();
}
}
return iResult;
}
#endregion
#region 查询费用数据
static public List<MsOpReceiptEntity> GetDataList(string strCondition, string optype, string userid, string username, string companyid)
{
var rangstr = GetRangDAStr(userid, username, companyid);
if (!string.IsNullOrEmpty(rangstr))
{
if (!string.IsNullOrEmpty(strCondition))
{
strCondition = strCondition + " and " + rangstr;
}
else
{
strCondition = rangstr;
}
}
StringBuilder strSql = new StringBuilder();
strSql.Append("select GID, TRANCNO,DOCNUM,ISREPEAT, REPEAT_MAN, dbo.trimdate(REPEAT_DATE) as REPEAT_DATE, ISRECEIVE, RETURN_MAN, dbo.trimdate(RETURN_DATE) as RETURN_DATE, RETURN_TRANCER, RETURN_TRANCNO, REMARK, BSNO, CORPID, CREATEUSER,dbo.trimtime( CREATETIME) CREATETIME, MODIFIEDUSER, dbo.trimtime(MODIFIEDTIME) MODIFIEDTIME, RECEIPTNO, RECEIPTTYPE, RECEIVE_MAN, dbo.trimdate(RECEIVE_DATE) as RECEIVE_DATE, SEND_MAN, dbo.trimdate(SEND_DATE) as SEND_DATE, TRANCER from op_receipt ");
if (strCondition.Trim() != String.Empty)
{
strSql.Append(" where " + strCondition);
}
strSql.Append(" order by CREATETIME desc");
return SetData(strSql);
}
private static List<MsOpReceiptEntity> SetData(StringBuilder strSql)
{
var bodyList = new List<MsOpReceiptEntity>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsOpReceiptEntity data = new MsOpReceiptEntity();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);//惟一编号
data.BSNO = Convert.ToString(reader["BSNO"]);//关联编号/业务编号BSNO
data.RECEIPTNO = Convert.ToString(reader["RECEIPTNO"]);//单据编号
data.RECEIPTTYPE = Convert.ToString(reader["RECEIPTTYPE"]);//单据类型
data.RECEIVE_MAN = Convert.ToString(reader["RECEIVE_MAN"]);//接单人
data.RECEIVE_DATE = Convert.ToString(reader["RECEIVE_DATE"]);//接单日期
if (reader["DOCNUM"] != DBNull.Value)
data.DOCNUM = Convert.ToInt32(reader["DOCNUM"]);//是否有更改单
//if (reader["RECEIVE_DATE"] != DBNull.Value)
// data.RECEIVE_DATE = Convert.ToDateTime(reader["RECEIVE_DATE"]);//接单日期
data.SEND_MAN = Convert.ToString(reader["SEND_MAN"]);//送单人
data.SEND_DATE = Convert.ToString(reader["SEND_DATE"]);//接单日期
//if (reader["SEND_DATE"] != DBNull.Value)
// data.SEND_DATE = Convert.ToDateTime(reader["SEND_DATE"]);//送单日期
data.TRANCER = Convert.ToString(reader["TRANCER"]);//送单的快递公司
data.TRANCNO = Convert.ToString(reader["TRANCNO"]);//送单的快递单号
data.ISREPEAT = Convert.ToBoolean(reader["ISREPEAT"]);//是否回单
data.REPEAT_MAN = Convert.ToString(reader["REPEAT_MAN"]);//回单人
data.REPEAT_DATE = Convert.ToString(reader["REPEAT_DATE"]);//回单日期
//if (reader["REPEAT_DATE"] != DBNull.Value)
// data.REPEAT_DATE = Convert.ToDateTime(reader["REPEAT_DATE"]);//回单日期
data.ISRECEIVE = Convert.ToBoolean(reader["ISRECEIVE"]);//是否还单
data.RETURN_MAN = Convert.ToString(reader["RETURN_MAN"]);//还单人
data.RETURN_DATE = Convert.ToString(reader["RETURN_DATE"]);//还单日期
//if (reader["RETURN_DATE"] != DBNull.Value)
// data.RETURN_DATE = Convert.ToDateTime(reader["RETURN_DATE"]);//还单日期
data.RETURN_TRANCER = Convert.ToString(reader["RETURN_TRANCER"]);//还单的快递公司
data.RETURN_TRANCNO = Convert.ToString(reader["RETURN_TRANCNO"]);//还单的快递单号
data.REMARK = Convert.ToString(reader["REMARK"]);//备注
data.CORPID = Convert.ToString(reader["CORPID"]);//分公司代码
data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);//创建人GID
data.CREATETIME = Convert.ToString(reader["CREATETIME"]);//创建时间
//if (reader["CREATETIME"] != DBNull.Value)
// data.CREATETIME = Convert.ToDateTime(reader["CREATETIME"]);//创建时间
data.MODIFIEDUSER = Convert.ToString(reader["MODIFIEDUSER"]);//更改操作人GID
data.MODIFIEDTIME = Convert.ToString(reader["MODIFIEDTIME"]);//更改操作时间
//if (reader["MODIFIEDTIME"] != DBNull.Value)
// data.MODIFIEDTIME = Convert.ToDateTime(reader["MODIFIEDTIME"]);//更改操作时间
#endregion
bodyList.Add(data);
}
reader.Close();
}
return bodyList;
}
#endregion
static public List<MsOpReceipt> GetBLDataList(string strCondition, int start, int limit, out int totel, string userid, string username, string companyid, string sort = null)
{
var rangstr = GetRangDAStr(userid, username, companyid);
if (!string.IsNullOrEmpty(rangstr))
{
if (!string.IsNullOrEmpty(strCondition))
{
strCondition = strCondition + " and " + rangstr;
}
else
{
strCondition = rangstr;
}
}
StringBuilder strSql = new StringBuilder();
strSql.Append(@"SELECT * from (SELECT row_number() over (");
var sortstring = DatasetSort.Getsortstring(sort);
if (!string.IsNullOrEmpty(sortstring))
{
strSql.Append(" order by " + sortstring);
}
else
{
strSql.Append(" order by r.CREATETIME ");
}
strSql.Append(@") as num , ");
strSql.Append("r.GID, r.TRANCNO,r.DOCNUM,r.ISREPEAT, r.REPEAT_MAN, dbo.trimdate(r.REPEAT_DATE) as REPEAT_DATE, r.ISRECEIVE,");
strSql.Append("r.RETURN_MAN, dbo.trimdate(r.RETURN_DATE) as RETURN_DATE, r.RETURN_TRANCER, r.RETURN_TRANCNO, r.REMARK, r.BSNO, r.CORPID,");
strSql.Append("r.CREATEUSER,dbo.trimtime( r.CREATETIME) CREATETIME, r.MODIFIEDUSER, dbo.trimtime(r.MODIFIEDTIME) MODIFIEDTIME, r.RECEIPTNO,");
strSql.Append("r.RECEIPTTYPE, r.RECEIVE_MAN, dbo.trimdate(r.RECEIVE_DATE) as RECEIVE_DATE, r.SEND_MAN, dbo.trimdate(r.SEND_DATE) as SEND_DATE, r.TRANCER ");
strSql.Append(",b.PARENTID,b.OPTYPE,b.OPLB,b.OPLBNAME,b.BSSTATUS,b.FEESTATUS,b.ACCDATE,b.MBLNO,b.HBLNO,b.CUSTNO");
strSql.Append(",b.CUSTOMERNAME,b.BSSOURCE,b.BSSOURCEDETAIL,b.CUSTOMNO");
strSql.Append(",b.VESSEL,b.VOYNO,b.ETD,b.PORTLOAD,b.DESTINATION");
strSql.Append(",b.PORTDISCHARGE,b.INPUTBY,b.OP,b.CUSTSERVICE,b.APPLYNO");
strSql.Append(",b.DOC,b.SALE,b.FORWARDER ");
strSql.Append(" from op_receipt r left join v_op_bill b on (b.BSNO=R.BSNO)");
if (strCondition.Trim() != String.Empty)
{
strSql.Append(" where " + strCondition);
}
strSql.Append(@")as t ");
strSql.Append(string.Format("where t.num>{0} and t.num<={1} order by t.num ", start, start + limit)); //
totel = getTotalCount(strCondition);
return SetBLData(strSql);
}
static public string GetBLDataListStr(string strCondition,string userid, string username, string companyid, string sort = null)
{
var rangstr = GetRangDAStr(userid, username, companyid);
if (!string.IsNullOrEmpty(rangstr))
{
if (!string.IsNullOrEmpty(strCondition))
{
strCondition = strCondition + " and " + rangstr;
}
else
{
strCondition = rangstr;
}
}
StringBuilder strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append("r.GID, r.TRANCNO,r.DOCNUM,r.ISREPEAT, r.REPEAT_MAN, dbo.trimdate(r.REPEAT_DATE) as REPEAT_DATE, r.ISRECEIVE,");
strSql.Append("r.RETURN_MAN, dbo.trimdate(r.RETURN_DATE) as RETURN_DATE, r.RETURN_TRANCER, r.RETURN_TRANCNO, r.REMARK, r.BSNO, r.CORPID,");
strSql.Append("r.CREATEUSER,dbo.trimtime( r.CREATETIME) CREATETIME, r.MODIFIEDUSER, dbo.trimtime(r.MODIFIEDTIME) MODIFIEDTIME, r.RECEIPTNO,");
strSql.Append("r.RECEIPTTYPE, r.RECEIVE_MAN, dbo.trimdate(r.RECEIVE_DATE) as RECEIVE_DATE, r.SEND_MAN, dbo.trimdate(r.SEND_DATE) as SEND_DATE, r.TRANCER ");
strSql.Append(",b.PARENTID,b.OPTYPE,b.OPLB,b.OPLBNAME,b.BSSTATUS,b.FEESTATUS,b.ACCDATE,b.MBLNO,b.HBLNO,b.CUSTNO");
strSql.Append(",b.CUSTOMERNAME,b.BSSOURCE,b.BSSOURCEDETAIL,b.CUSTOMNO");
strSql.Append(",b.VESSEL,b.VOYNO,b.ETD,b.PORTLOAD,b.DESTINATION");
strSql.Append(",b.PORTDISCHARGE,b.INPUTBY,b.OP,b.CUSTSERVICE,b.APPLYNO");
strSql.Append(",b.DOC,b.SALE,b.FORWARDER ");
strSql.Append(" from op_receipt r left join v_op_bill b on (b.BSNO=R.BSNO)");
if (strCondition.Trim() != String.Empty)
{
strSql.Append(" where " + strCondition);
}
return strSql.ToString();
}
public static int getTotalCount(string strCondition)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select count(r.GID) ");
strSql.Append(" from op_receipt r left join v_op_bill b on (b.BSNO=R.BSNO) ");
if (!string.IsNullOrEmpty(strCondition))
{
strSql.Append(" where " + strCondition);
}
int cnt = 0;
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
cnt = Convert.ToInt32(reader[0]);
}
}
return cnt;
}
private static List<MsOpReceipt> SetBLData(StringBuilder strSql)
{
var bodyList = new List<MsOpReceipt>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
MsOpReceipt data = new MsOpReceipt();
#region Set DB data to Object
data.GID = Convert.ToString(reader["GID"]);//惟一编号
data.BSNO = Convert.ToString(reader["BSNO"]);//关联编号/业务编号BSNO
data.RECEIPTNO = Convert.ToString(reader["RECEIPTNO"]);//单据编号
data.RECEIPTTYPE = Convert.ToString(reader["RECEIPTTYPE"]);//单据类型
data.RECEIVE_MAN = Convert.ToString(reader["RECEIVE_MAN"]);//接单人
data.RECEIVE_DATE = Convert.ToString(reader["RECEIVE_DATE"]);//接单日期
if (reader["DOCNUM"] != DBNull.Value)
data.DOCNUM = Convert.ToInt32(reader["DOCNUM"]);//是否有更改单
//if (reader["RECEIVE_DATE"] != DBNull.Value)
// data.RECEIVE_DATE = Convert.ToDateTime(reader["RECEIVE_DATE"]);//接单日期
data.SEND_MAN = Convert.ToString(reader["SEND_MAN"]);//送单人
data.SEND_DATE = Convert.ToString(reader["SEND_DATE"]);//接单日期
//if (reader["SEND_DATE"] != DBNull.Value)
// data.SEND_DATE = Convert.ToDateTime(reader["SEND_DATE"]);//送单日期
data.TRANCER = Convert.ToString(reader["TRANCER"]);//送单的快递公司
data.TRANCNO = Convert.ToString(reader["TRANCNO"]);//送单的快递单号
data.ISREPEAT = Convert.ToBoolean(reader["ISREPEAT"]);//是否回单
data.REPEAT_MAN = Convert.ToString(reader["REPEAT_MAN"]);//回单人
data.REPEAT_DATE = Convert.ToString(reader["REPEAT_DATE"]);//回单日期
//if (reader["REPEAT_DATE"] != DBNull.Value)
// data.REPEAT_DATE = Convert.ToDateTime(reader["REPEAT_DATE"]);//回单日期
data.ISRECEIVE = Convert.ToBoolean(reader["ISRECEIVE"]);//是否还单
data.RETURN_MAN = Convert.ToString(reader["RETURN_MAN"]);//还单人
data.RETURN_DATE = Convert.ToString(reader["RETURN_DATE"]);//还单日期
//if (reader["RETURN_DATE"] != DBNull.Value)
// data.RETURN_DATE = Convert.ToDateTime(reader["RETURN_DATE"]);//还单日期
data.RETURN_TRANCER = Convert.ToString(reader["RETURN_TRANCER"]);//还单的快递公司
data.RETURN_TRANCNO = Convert.ToString(reader["RETURN_TRANCNO"]);//还单的快递单号
data.REMARK = Convert.ToString(reader["REMARK"]);//备注
data.CORPID = Convert.ToString(reader["CORPID"]);//分公司代码
data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]);//创建人GID
data.CREATETIME = Convert.ToString(reader["CREATETIME"]);//创建时间
//if (reader["CREATETIME"] != DBNull.Value)
// data.CREATETIME = Convert.ToDateTime(reader["CREATETIME"]);//创建时间
data.MODIFIEDUSER = Convert.ToString(reader["MODIFIEDUSER"]);//更改操作人GID
data.MODIFIEDTIME = Convert.ToString(reader["MODIFIEDTIME"]);//更改操作时间
if (reader["ETD"] != DBNull.Value)
data.ETD = Convert.ToDateTime(reader["ETD"]).ToString("yyyy-MM-dd");
data.ACCDATE = Convert.ToString(reader["ACCDATE"]);
data.OPLB = Convert.ToString(reader["OPLB"]);
data.OPTYPE = Convert.ToString(reader["OPTYPE"]);
data.OPLBNAME = Convert.ToString(reader["OPLBNAME"]);
data.MBLNO = Convert.ToString(reader["MBLNO"]);
data.HBLNO = Convert.ToString(reader["HBLNO"]);
data.CUSTNO = Convert.ToString(reader["CUSTNO"]);
data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]);
data.VESSEL = Convert.ToString(reader["VESSEL"]);
data.VOYNO = Convert.ToString(reader["VOYNO"]);
data.PORTLOAD = Convert.ToString(reader["PORTLOAD"]);
data.PORTDISCHARGE = Convert.ToString(reader["PORTDISCHARGE"]);
data.DESTINATION = Convert.ToString(reader["DESTINATION"]);
data.INPUTBY = Convert.ToString(reader["INPUTBY"]);
data.OP = Convert.ToString(reader["OP"]);
data.CUSTSERVICE = Convert.ToString(reader["CUSTSERVICE"]);
data.DOC = Convert.ToString(reader["DOC"]);
data.SALE = Convert.ToString(reader["SALE"]);
data.BSSOURCE = Convert.ToString(reader["BSSOURCE"]);
data.BSSOURCEDETAIL = Convert.ToString(reader["BSSOURCEDETAIL"]);
data.APPLYNO = Convert.ToString(reader["APPLYNO"]);
data.FORWARDER= Convert.ToString(reader["FORWARDER"]);
//if (reader["MODIFIEDTIME"] != DBNull.Value)
// data.MODIFIEDTIME = Convert.ToDateTime(reader["MODIFIEDTIME"]);//更改操作时间
#endregion
bodyList.Add(data);
}
reader.Close();
}
return bodyList;
}
public static DBResult SongDan(MsOpReceiptEntity headData,List<MsOpReceipt> bodyList, string userid, string username)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
var cmdUpdate =
db.GetSqlStringCommand(
@"update op_receipt set SEND_MAN=@SEND_MAN,SEND_DATE=@SEND_DATE,TRANCER=@TRANCER,TRANCNO=@TRANCNO WHERE GID=@GID ");
try
{
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
cmdUpdate.Parameters.Clear();
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
db.AddInParameter(cmdUpdate, "@SEND_MAN", DbType.String, headData.SEND_MAN);
db.AddInParameter(cmdUpdate, "@SEND_DATE", DbType.String, headData.SEND_DATE);
db.AddInParameter(cmdUpdate, "@TRANCER", DbType.String, headData.TRANCER);
db.AddInParameter(cmdUpdate, "@TRANCNO", DbType.String, headData.TRANCNO);
db.ExecuteNonQuery(cmdUpdate, tran);
}
}
tran.Commit();
}
catch (Exception e)
{
tran.Rollback();
result.Success = false;
result.Message = "更新出现错误,请重试或联系系统管理员" + e.Message;
return result;
}
}
result.Success = true;
result.Message = "更新成功";
return result;
}
public static DBResult HuiDan(MsOpReceiptEntity headData, List<MsOpReceipt> bodyList, string userid, string username)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
var cmdUpdate =
db.GetSqlStringCommand(
@"update op_receipt set ISREPEAT=@ISREPEAT,REPEAT_MAN=@REPEAT_MAN,REPEAT_DATE=@REPEAT_DATE WHERE GID=@GID ");
try
{
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
cmdUpdate.Parameters.Clear();
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
db.AddInParameter(cmdUpdate, "@ISREPEAT", DbType.Boolean, headData.ISREPEAT);
db.AddInParameter(cmdUpdate, "@REPEAT_MAN", DbType.String, headData.REPEAT_MAN);
db.AddInParameter(cmdUpdate, "@REPEAT_DATE", DbType.String, headData.REPEAT_DATE);
db.ExecuteNonQuery(cmdUpdate, tran);
}
}
tran.Commit();
}
catch (Exception e)
{
tran.Rollback();
result.Success = false;
result.Message = "更新出现错误,请重试或联系系统管理员" + e.Message;
return result;
}
}
result.Success = true;
result.Message = "更新成功";
return result;
}
public static DBResult HuanDan(MsOpReceiptEntity headData, List<MsOpReceipt> bodyList, string userid, string username)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
var cmdUpdate =
db.GetSqlStringCommand(
@"update op_receipt set ISRECEIVE=@ISRECEIVE,RETURN_MAN=@RETURN_MAN,RETURN_DATE=@RETURN_DATE WHERE GID=@GID ");
try
{
if (bodyList != null)
{
foreach (var enumValue in bodyList)
{
cmdUpdate.Parameters.Clear();
db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID);
db.AddInParameter(cmdUpdate, "@ISRECEIVE", DbType.Boolean, headData.ISRECEIVE);
db.AddInParameter(cmdUpdate, "@RETURN_MAN", DbType.String, headData.RETURN_MAN);
db.AddInParameter(cmdUpdate, "@RETURN_DATE", DbType.String, headData.RETURN_DATE);
db.ExecuteNonQuery(cmdUpdate, tran);
}
}
tran.Commit();
}
catch (Exception e)
{
tran.Rollback();
result.Success = false;
result.Message = "更新出现错误,请重试或联系系统管理员" + e.Message;
return result;
}
}
result.Success = true;
result.Message = "更新成功";
return result;
}
#region 权限设置
public static List<OPCODE> GetReceiptOpRang(string userid)
{
var strSql = new StringBuilder();
strSql.Append(GetRangDASQLStr(userid));
Database db = DatabaseFactory.CreateDatabase();
var evList = new List<OPCODE>();
using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (reader.Read())
{
var evData = new OPCODE();
evData.OPID = Convert.ToString(reader["OPCODE"]);
evList.Add(evData);
}
reader.Close();
}
return evList;
}
public static string GetRangDASQLStr(string userid)
{
string str = "";
var strSql = new StringBuilder();
strSql.Append("SELECT VISIBLERANGE,OPERATERANGE from VW_User_Authority where [NAME]='modOpReceiptManagement' and USERID='" + userid + "' and ISDELETE=0");
string visiblerange = "4";
string operaterange = "4";
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"]);
break;
}
reader.Close();
}
if (operaterange == "4")
{
str = "select GID AS OPCODE from [user] where GID='" + userid + "'";
}
else if (operaterange == "3")
{
str = "select GID AS OPCODE from [user] where GID='" + userid + "'";
}
else if (visiblerange == "2")
{
var rangeDa = new RangeDA();
var companyid = rangeDa.GetCORPID(userid);
var deptname = rangeDa.GetDEPTNAME(userid);
str = " select USERID AS OPCODE from user_company where COMPANYID='" + companyid + "' and USERID in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')";
}
else if (visiblerange == "1")
{
var rangeDa = new RangeDA();
var companyid = rangeDa.GetCORPID(userid);
str = " select USERID AS OPCODE from user_company where COMPANYID='" + companyid + "'";
}
else { str = "select GID AS OPCODE from [user] "; }
return str;
}
public static string GetRangDAStr(string userid, string username, string companyid)
{
string str = "";
string visiblerange = "4";
string operaterange = "4";
var strSql = new StringBuilder();
strSql.Append("SELECT VISIBLERANGE,OPERATERANGE from VW_User_Authority where [NAME]='modOpReceiptManagement' and USERID='" + userid + "' and ISDELETE=0");
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"]);
break;
}
reader.Close();
}
if (visiblerange == "4")
{
str = " MODIFIEDUSER='" + userid + "'";
}
else if (visiblerange == "3")
{
str = " MODIFIEDUSER='" + userid + "'";
}
else if (visiblerange == "2")
{
var rangeDa = new RangeDA();
var deptname = rangeDa.GetDEPTNAME(userid);
str = " MODIFIEDUSER in (select USERID from user_company where COMPANYID='" + companyid + "') and MODIFIEDUSER in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')";
}
else if (visiblerange == "1")
{
str = " MODIFIEDUSER in (select USERID from user_company where COMPANYID='" + companyid + "') ";
}
else if (visiblerange == "0")
{
str = " 1=1 ";
}
return str;
}
#endregion
#region 单据确认,并返回操作结果
static public int onSetRECEIPT(string strBSNO, string tempGID, string onSetType, string tempUserID, string tempUserName)
{
int iResult = 0;
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
var strSql = new StringBuilder();
if (onSetType.Trim() == "SEND")//送单
{
strSql.Append("update op_receipt set SEND_MAN='" + tempUserName + "',SEND_DATE=getdate(),MODIFIEDUSER='" + tempUserID + "',MODIFIEDTIME=getdate() where GID in (" + tempGID + ")");
}
else if (onSetType.Trim() == "RECEIVE")//接单
{
strSql.Append("update op_receipt set RECEIVE_MAN='" + tempUserName + "',RECEIVE_DATE=getdate(),MODIFIEDUSER='" + tempUserID + "',MODIFIEDTIME=getdate() where GID in (" + tempGID + ")");
}
else if (onSetType.Trim() == "REPEAT")//回单
{
strSql.Append("update op_receipt set ISREPEAT=1,REPEAT_MAN='" + tempUserName + "',REPEAT_DATE=getdate(),MODIFIEDUSER='" + tempUserID + "',MODIFIEDTIME=getdate() where GID in (" + tempGID + ")");
}
else if (onSetType.Trim() == "RETURN")//还单
{
strSql.Append("update op_receipt set ISRECEIVE=1,RETURN_MAN='" + tempUserName + "',RETURN_DATE=getdate(),MODIFIEDUSER='" + tempUserID + "',MODIFIEDTIME=getdate() where GID in (" + tempGID + ")");
}
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql.ToString());
sqlTran.Commit();
iResult = 1;//状态为1表示插入成功
}
catch (Exception execError)
{
iResult = -1;//有异常,插入失败
sqlTran.Rollback();
iResult = -2;//插入异常,事务已回滚成功
throw execError;
}
finally
{
SqlHelper.CloseConnection();
}
}
return iResult;
}
#endregion
public static DBResult UpdateFileData(string filename,string name,string BSNO, string userid,string type,string DOCUMENTATTACHEDCODE,string DOCUMENTATTACHEDNO,string CUSTNO)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdInsert =
db.GetSqlStringCommand(
@"insert into Receipt_Doc (GID,BSNO,URL,Driect_URL,MODIFIEDUSER,MODIFIEDTIME,RECEIPTTYPE,DOCUMENTATTACHEDCODE,DOCUMENTATTACHEDNO,R_GID)
values (@GID,@BSNO,@URL,@Driect_URL,@MODIFIEDUSER,@MODIFIEDTIME,@RECEIPTTYPE,@DOCUMENTATTACHEDCODE,@DOCUMENTATTACHEDNO,@R_GID) ");
cmdInsert.Parameters.Clear();
db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString());
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, BSNO);
db.AddInParameter(cmdInsert, "@URL", DbType.String, name);
db.AddInParameter(cmdInsert, "@Driect_URL", DbType.String, filename);
db.AddInParameter(cmdInsert, "@MODIFIEDUSER", DbType.String, userid);
db.AddInParameter(cmdInsert, "@MODIFIEDTIME", DbType.String, DateTime.Now.ToString());
db.AddInParameter(cmdInsert, "@RECEIPTTYPE", DbType.String,type);
db.AddInParameter(cmdInsert, "@DOCUMENTATTACHEDCODE", DbType.String, DOCUMENTATTACHEDCODE);
db.AddInParameter(cmdInsert, "@DOCUMENTATTACHEDNO", DbType.String, DOCUMENTATTACHEDNO);
db.AddInParameter(cmdInsert, "@R_GID", DbType.String, CUSTNO);
db.ExecuteNonQuery(cmdInsert, tran);
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "保存出现错误,请重试或联系系统管理员";
return result;
}
}
result.Success = true;
result.Message = "保存成功" + result.Message;
return result;
}
public static DBResult UpdateFileData(List<ReceiptDocmb> revdoc, string userid)
{
var result = new DBResult();
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdInsert =
db.GetSqlStringCommand(
@"update Receipt_Doc set URL=@URL,Driect_URL=@Driect_URL,MODIFIEDUSER=@MODIFIEDUSER,MODIFIEDTIME=@MODIFIEDTIME,RECEIPTTYPE=@RECEIPTTYPE,DOCUMENTATTACHEDCODE=@DOCUMENTATTACHEDCODE,DOCUMENTATTACHEDNO=@DOCUMENTATTACHEDNO
,ISPUBLIC=@ISPUBLIC,BSNO=@BSNO WHERE GID=@GID ");
if (revdoc != null)
{
foreach (var enumValue in revdoc)
{
cmdInsert.Parameters.Clear();
db.AddInParameter(cmdInsert, "@GID", DbType.String, enumValue.GID);
db.AddInParameter(cmdInsert, "@URL", DbType.String, enumValue.URL);
db.AddInParameter(cmdInsert, "@Driect_URL", DbType.String,enumValue.Driect_URL);
db.AddInParameter(cmdInsert, "@MODIFIEDUSER", DbType.String, userid);
db.AddInParameter(cmdInsert, "@MODIFIEDTIME", DbType.String, DateTime.Now.ToString());
db.AddInParameter(cmdInsert, "@RECEIPTTYPE", DbType.String, enumValue.RECEIPTTYPE);
db.AddInParameter(cmdInsert, "@DOCUMENTATTACHEDCODE", DbType.String, enumValue.DOCUMENTATTACHEDCODE);
db.AddInParameter(cmdInsert, "@DOCUMENTATTACHEDNO", DbType.String, enumValue.DOCUMENTATTACHEDNO);
db.AddInParameter(cmdInsert, "@ISPUBLIC", DbType.Boolean, enumValue.ISPUBLIC);
db.AddInParameter(cmdInsert, "@BSNO", DbType.String, enumValue.BSNO);
db.ExecuteNonQuery(cmdInsert, tran);
}
}
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
result.Success = false;
result.Message = "保存出现错误,请重试或联系系统管理员";
return result;
}
}
result.Success = true;
result.Message = "保存成功" + result.Message;
return result;
}
static public int DeleteUploadFile(string tempGId)
{
int iResult = 0;
using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction))
{
try
{
var strSql = new StringBuilder();
strSql.Append("Delete from Receipt_Doc where ");
strSql.Append(" GId in (" + tempGId + ")");
SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql.ToString());
sqlTran.Commit();
iResult = 1;//状态为1表示插入成功
}
catch (Exception execError)
{
iResult = -1;//有异常,插入失败
sqlTran.Rollback();
iResult = -2;//插入异常,事务已回滚成功
throw execError;
}
finally
{
SqlHelper.CloseConnection();
}
}
return iResult;
}
}
internal class MsOpReceiptDealException : Exception
{
internal MsOpReceiptDealException(string message) : base(message)
{
}
}
}