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#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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)
{
}
}
}