using System ;
using System.Data ;
using System.Data.Common ;
using System.Collections ;
using System.Collections.Generic ;
using System.Text ;
using DSWeb.MvcShipping.Models.MsOpExpress ;
using Microsoft.Practices.EnterpriseLibrary.Data ;
using DSWeb.EntityDA ;
using DSWeb.Areas.CommMng.Models ;
using HcUtility.Comm ;
using System.Data.SqlClient ;
using DSWeb.DataAccess ;
using System.IO ;
using HcUtility.Core ;
using DSWeb.Areas.CommMng.DAL ;
using DotNet4.Utilities ;
using DSWeb.SoftMng.DBUtility ;
namespace DSWeb.MvcShipping.DAL.MsOpExpressDAL
{
public class MsOpExpressDAL
{
#region 查询
static public List < MsOpExpress > GetDataList ( string strCondition , string userid , string usercode , string companyid , string sort = null , string load = null )
{
var rangstr = GetRangDAStr ( "index" , userid , usercode , companyid ) ;
if ( ! string . IsNullOrEmpty ( rangstr ) )
{
if ( ! string . IsNullOrEmpty ( strCondition ) )
{
strCondition = strCondition + " and " + rangstr ;
}
else
{
strCondition = rangstr ;
}
}
var strSql = new StringBuilder ( ) ;
strSql . Append ( "SELECT GID,EXNO,BILLDATE,BILLSTATUS,BILLTYPE,EXPRESSCORP,SENDERCUST,SENDERATTN,SENDERCITY," ) ;
strSql . Append ( "SENDER,SENDERADDR,SENDERPOST,SENDERTEL,RECEIVECUST,RECEIVEATTN,BILLFEE,SENDERPROVINCE,RECEIVEPROVINCE," ) ;
strSql . Append ( "RECEIVECITY,[RECEIVE],RECEIVEADDR,RECEIVEPOST,RECEIVETEL,GOODSNAME,REMARKS,CREATEUSER,isnull(EXCOUNT,0)EXCOUNT" ) ;
strSql . Append ( ",(select top 1 showname from [user] where GID=OP_EXPRESS.CREATEUSER) as CREATEUSERREF,CREATETIME" ) ;
strSql . Append ( " from OP_EXPRESS " ) ;
if ( ! string . IsNullOrEmpty ( strCondition ) )
{
strSql . Append ( " where " + strCondition ) ;
}
/ /
var sortstring = DatasetSort . Getsortstring ( sort ) ;
if ( ! string . IsNullOrEmpty ( sortstring ) )
{
strSql . Append ( " order by " + sortstring ) ;
}
else
{
strSql . Append ( " order by CREATETIME desc" ) ;
}
return SetData ( strSql ) ;
}
static public MsOpExpress GetData ( string condition )
{
var strSql = new StringBuilder ( ) ;
strSql . Append ( "SELECT GID,EXNO,BILLDATE,BILLSTATUS,BILLTYPE,EXPRESSCORP,SENDERCUST,SENDERATTN,SENDERCITY," ) ;
strSql . Append ( "SENDER,SENDERADDR,SENDERPOST,SENDERTEL,RECEIVECUST,RECEIVEATTN,BILLFEE,isnull(EXCOUNT,0)EXCOUNT," ) ;
strSql . Append ( "RECEIVECITY,[RECEIVE],RECEIVEADDR,RECEIVEPOST,RECEIVETEL,GOODSNAME,REMARKS,CREATEUSER,SENDERPROVINCE,RECEIVEPROVINCE" ) ;
strSql . Append ( ",(select top 1 showname from [user] where GID=OP_EXPRESS.CREATEUSER) as CREATEUSERREF,CREATETIME" ) ;
strSql . Append ( " from OP_EXPRESS " ) ;
if ( ! string . IsNullOrEmpty ( condition ) )
{
strSql . Append ( " where " + condition ) ;
}
var list = SetData ( strSql ) ;
if ( list . Count > 0 )
return list [ 0 ] ;
return new MsOpExpress ( ) ;
}
private static List < MsOpExpress > SetData ( StringBuilder strSql )
{
var headList = new List < MsOpExpress > ( ) ;
Database db = DatabaseFactory . CreateDatabase ( ) ;
using ( IDataReader reader = db . ExecuteReader ( CommandType . Text , strSql . ToString ( ) ) )
{
while ( reader . Read ( ) )
{
MsOpExpress data = new MsOpExpress ( ) ;
#region Set DB data to Object
data . GID = Convert . ToString ( reader [ "GID" ] ) ; //业务编号
data . EXNO = Convert . ToString ( reader [ "EXNO" ] ) ; //委托方式
if ( reader [ "BILLDATE" ] ! = DBNull . Value )
data . BILLDATE = Convert . ToDateTime ( reader [ "BILLDATE" ] ) . ToString ( "yyyy-MM-dd" ) ; //到港日期
data . BILLSTATUS = Convert . ToString ( reader [ "BILLSTATUS" ] ) ; / /
data . BILLTYPE = Convert . ToString ( reader [ "BILLTYPE" ] ) ; / /
data . EXPRESSCORP = Convert . ToString ( reader [ "EXPRESSCORP" ] ) ; //主编号
data . SENDERCUST = Convert . ToString ( reader [ "SENDERCUST" ] ) ; //委托编号
data . SENDERATTN = Convert . ToString ( reader [ "SENDERATTN" ] ) ; //主提单号
data . SENDERCITY = Convert . ToString ( reader [ "SENDERCITY" ] ) ; //分提单号
data . SENDER = Convert . ToString ( reader [ "SENDER" ] ) ; // 业务状态
data . SENDERADDR = Convert . ToString ( reader [ "SENDERADDR" ] ) ; // 费用状态
data . SENDERPOST = Convert . ToString ( reader [ "SENDERPOST" ] ) ; //会计期间
data . SENDERTEL = Convert . ToString ( reader [ "SENDERTEL" ] ) ; //委托单位
data . RECEIVECUST = Convert . ToString ( reader [ "RECEIVECUST" ] ) ; //业务来源
data . RECEIVEATTN = Convert . ToString ( reader [ "RECEIVEATTN" ] ) ; //来源明细
data . RECEIVECITY = Convert . ToString ( reader [ "RECEIVECITY" ] ) ; //录入人
data . RECEIVE = Convert . ToString ( reader [ "RECEIVE" ] ) ; //操作员
data . RECEIVEADDR = Convert . ToString ( reader [ "RECEIVEADDR" ] ) ; //客服员
data . RECEIVEPOST = Convert . ToString ( reader [ "RECEIVEPOST" ] ) ; //揽货人
data . RECEIVETEL = Convert . ToString ( reader [ "RECEIVETEL" ] ) ; //分公司代码
data . GOODSNAME = Convert . ToString ( reader [ "GOODSNAME" ] ) ; //所属部门
data . REMARKS = Convert . ToString ( reader [ "REMARKS" ] ) ; //创建时间
data . CREATEUSER = Convert . ToString ( reader [ "CREATEUSER" ] ) ; //创建时间
data . CREATEUSERREF = Convert . ToString ( reader [ "CREATEUSERREF" ] ) ; //创建时间
data . SENDERPROVINCE = Convert . ToString ( reader [ "SENDERPROVINCE" ] ) ; //发件人省份
data . RECEIVEPROVINCE = Convert . ToString ( reader [ "RECEIVEPROVINCE" ] ) ; //收件人省份
if ( reader [ "CREATETIME" ] ! = DBNull . Value )
data . CREATETIME = Convert . ToDateTime ( reader [ "CREATETIME" ] ) . ToString ( "yyyy-MM-dd HH:mm:ss" ) ;
data . BILLFEE = reader [ "BILLFEE" ] . ToString ( ) ; //快递费
data . EXCOUNT = Convert . ToDecimal ( reader [ "EXCOUNT" ] ) ; //寄托物数量
# endregion
headList . Add ( data ) ;
}
reader . Close ( ) ;
}
return headList ;
}
public static DBResult RefreshExpressSTATUSList ( List < MsOpExpress > bodyList , string status )
{
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 OP_EXPRESS set BILLSTATUS=@BILLSTATUS WHERE GID=@GID " ) ;
if ( bodyList ! = null )
{
foreach ( var enumValue in bodyList )
{
cmdInsert . Parameters . Clear ( ) ;
db . AddInParameter ( cmdInsert , "@BILLSTATUS" , DbType . String , status ) ;
db . AddInParameter ( cmdInsert , "@GID" , DbType . String , enumValue . GID ) ;
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 RefreshExpressSTATUS ( string expid , string status )
{
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 OP_EXPRESS set BILLSTATUS=@BILLSTATUS WHERE GID=@GID " ) ;
cmdInsert . Parameters . Clear ( ) ;
db . AddInParameter ( cmdInsert , "@BILLSTATUS" , DbType . String , status ) ;
db . AddInParameter ( cmdInsert , "@GID" , DbType . String , expid ) ;
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 UpdateSFExpress ( string expid , string mailno , string status )
{
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 OP_EXPRESS set BILLSTATUS=@BILLSTATUS,EXNO =@EXNO WHERE GID=@GID " ) ;
cmdInsert . Parameters . Clear ( ) ;
db . AddInParameter ( cmdInsert , "@BILLSTATUS" , DbType . String , status ) ;
db . AddInParameter ( cmdInsert , "@EXNO" , DbType . String , mailno ) ;
db . AddInParameter ( cmdInsert , "@GID" , DbType . String , expid ) ;
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 ;
}
#region 快递动态
static public DBResult GetExpressStatusList ( string expno , string expcorpid , string expid )
{
var result = new DBResult ( ) ;
result . Success = true ;
try
{
HttpHelper http = new HttpHelper ( ) ;
HttpItem item = new HttpItem ( )
{
URL = "http://www.kuaidi100.com/autonumber/autoComNum?text=" + expno , //URL这里都是测试 必需项
Referer = "http://www.kuaidi100.com/" ,
Encoding = null , //编码格式( utf-8,gb2312,gbk) 可选项 默认类会自动识别
Host = "www.kuaidi100.com" ,
UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" ,
Accept = "application/json, text/javascript, */*" , // 可选项有默认值
ContentType = "text/html" ,
Method = "POST" , //URL 可选项 默认为Get
} ;
HttpResult resulthtml = http . GetHtml ( item ) ;
var mycookie = resulthtml . Cookie ;
item = new HttpItem ( )
{
URL = "http://www.kuaidi100.com/query?type=" + expcorpid + "&postid=" + expno + "&id=1&valicode=&temp=0.07429930970249981" , //URL这里都是测试 必需项
Referer = "http://www.kuaidi100.com/" ,
Encoding = null , //编码格式( utf-8,gb2312,gbk) 可选项 默认类会自动识别
Cookie = mycookie ,
Host = "www.kuaidi100.com" ,
UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" ,
Accept = "text/html, application/xhtml+xml, */*" , // 可选项有默认值
ContentType = "application/x-www-form-urlencoded" ,
Method = "GET" , //URL 可选项 默认为Get
} ;
resulthtml = http . GetHtml ( item ) ;
result . Message = resulthtml . Html ;
var alltext = result . Message ;
alltext = alltext . Replace ( " " , "" ) ;
if ( alltext . IndexOf ( "已签收" ) > = 0 ) {
RefreshExpressSTATUS ( expid , "已收件" ) ;
}
}
catch
{
result . Success = false ;
result . Message = "提取数据过程中发生错误,请联系系统管理员!" ;
}
// bodyList=SumBodyList(bodyList);
return result ;
}
# endregion
# endregion
#region 查询费用数据
static public List < MsOpReceiptEntity > GetExpressDocList ( 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 e.GID,d.GID DOCID,e.DOCTYPE, d.TRANCNO, d.ISREPEAT, d.REPEAT_MAN, convert(char(10),d.REPEAT_DATE,20) as REPEAT_DATE, d.ISRECEIVE," ) ;
strSql . Append ( "d.RETURN_MAN, convert(char(10),d.RETURN_DATE,20) as RETURN_DATE, d.RETURN_TRANCER, d.RETURN_TRANCNO, d.REMARK, " ) ;
strSql . Append ( "d.BSNO, d.CORPID, d.CREATEUSER, d.CREATETIME, d.MODIFIEDUSER, d.MODIFIEDTIME, d.RECEIPTNO, d.RECEIPTTYPE, d.RECEIVE_MAN," ) ;
strSql . Append ( "convert(char(10),d.RECEIVE_DATE,20) as RECEIVE_DATE, d.SEND_MAN, convert(char(10),d.SEND_DATE,20) as SEND_DATE, d.TRANCER" ) ;
strSql . Append ( ",b.CUSTNO,b.MBLNO,b.CUSTOMERNAME,b.OPLBNAME,d.RECEIPTTYPE + '-' + d.RECEIPTNO AS RECEIPTTYPENO,b.OP,b.SALE" ) ;
strSql . Append ( " from op_express_doc e left join op_receipt d on (d.GID=e.DOCID) " ) ;
strSql . Append ( "left join v_op_bs b on (b.BSNO=d.BSNO) " ) ;
if ( strCondition . Trim ( ) ! = String . Empty )
{
strSql . Append ( " where " + strCondition ) ;
}
if ( ! string . IsNullOrEmpty ( sort ) )
{
strSql . Append ( " order by " + sort ) ;
}
else
{
strSql . Append ( " order by CREATETIME desc" ) ;
}
return SetExpressDocData ( strSql ) ;
}
private static List < MsOpReceiptEntity > SetExpressDocData ( 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 . DOCID = Convert . ToString ( reader [ "DOCID" ] ) ; //惟一编号
data . DOCTYPE = Convert . ToString ( reader [ "DOCTYPE" ] ) ; //惟一编号
data . BSNO = Convert . ToString ( reader [ "BSNO" ] ) ; //关联编号/业务编号BSNO
data . RECEIPTNO = Convert . ToString ( reader [ "RECEIPTNO" ] ) ; //单据编号
data . RECEIPTTYPE = Convert . ToString ( reader [ "RECEIPTTYPE" ] ) ; //单据类型
data . RECEIPTTYPENO = Convert . ToString ( reader [ "RECEIPTTYPENO" ] ) ; //单据类型
data . RECEIVE_MAN = Convert . ToString ( reader [ "RECEIVE_MAN" ] ) ; //接单人
data . RECEIVE_DATE = Convert . ToString ( reader [ "RECEIVE_DATE" ] ) ; //接单日期
//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" ] ) ; //送单的快递单号
if ( reader [ "ISREPEAT" ] ! = DBNull . Value )
data . ISREPEAT = Convert . ToString ( reader [ "ISREPEAT" ] ) ; //是否回单
if ( data . ISREPEAT = = "0" )
data . ISREPEAT = "否" ;
else
data . 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"]);//回单日期
if ( reader [ "ISRECEIVE" ] ! = DBNull . Value )
data . ISRECEIVE = Convert . ToString ( reader [ "ISRECEIVE" ] ) ; //是否还单
if ( data . ISRECEIVE = = "0" )
data . ISRECEIVE = "否" ;
else
data . 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" ] ) ; //更改操作时间
data . CUSTNO = Convert . ToString ( reader [ "CUSTNO" ] ) ; //更改操作时间
data . MBLNO = Convert . ToString ( reader [ "MBLNO" ] ) ; //更改操作时间
data . CUSTOMERNAME = Convert . ToString ( reader [ "CUSTOMERNAME" ] ) ; //更改操作时间
data . OPLBNAME = Convert . ToString ( reader [ "OPLBNAME" ] ) ; //更改操作时间
data . OP = Convert . ToString ( reader [ "OP" ] ) ; //更改操作时间
data . SALE = Convert . ToString ( reader [ "SALE" ] ) ; //更改操作时间
//if (reader["MODIFIEDTIME"] != DBNull.Value)
// data.MODIFIEDTIME = Convert.ToDateTime(reader["MODIFIEDTIME"]);//更改操作时间
# endregion
bodyList . Add ( data ) ;
}
reader . Close ( ) ;
}
return bodyList ;
}
private static List < MsOpAddress > SetAddressData ( StringBuilder strSql )
{
var bodyList = new List < MsOpAddress > ( ) ;
Database db = DatabaseFactory . CreateDatabase ( ) ;
using ( IDataReader reader = db . ExecuteReader ( CommandType . Text , strSql . ToString ( ) ) )
{
while ( reader . Read ( ) )
{
MsOpAddress data = new MsOpAddress ( ) ;
#region Set DB data to Object
data . GID = Convert . ToString ( reader [ "GID" ] ) ; //惟一编号
data . NAME = Convert . ToString ( reader [ "NAME" ] ) ; //收件人姓名
data . CORPNAME = Convert . ToString ( reader [ "CORPNAME" ] ) ; //公司名称
data . ADDRESS = Convert . ToString ( reader [ "ADDRESS" ] ) ; //收件地址
data . DESTI = Convert . ToString ( reader [ "DESTI" ] ) ; //收件城市
data . TEL = Convert . ToString ( reader [ "TEL" ] ) ; //电话
data . POSTCODE = Convert . ToString ( reader [ "POSTCODE" ] ) ; //邮编
data . CORPNAMERV = Convert . ToString ( reader [ "CORPNAMERV" ] ) ; //实际收件公司名称
data . PROVINCE = Convert . ToString ( reader [ "PROVINCE" ] ) ; //收件省份
# endregion
bodyList . Add ( data ) ;
}
reader . Close ( ) ;
}
return bodyList ;
}
static public List < MsOpReceiptEntity > GetDocList ( string strCondition , string userid , string username , string companyid , string doctype , string sort = null )
{
StringBuilder strSql = new StringBuilder ( ) ;
if ( doctype = = "发票" )
{
strSql . Append ( "select top 10 NEWID() GID,'*' DOCID,'发票' DOCTYPE,'' TRANCNO, null ISREPEAT, '' REPEAT_MAN,null REPEAT_DATE, null ISRECEIVE," ) ;
strSql . Append ( "'' RETURN_MAN, null RETURN_DATE, '' RETURN_TRANCER, '' RETURN_TRANCNO, '' REMARK, " ) ;
strSql . Append ( "'' BSNO, '' CORPID, '' CREATEUSER,'' CREATETIME, '' MODIFIEDUSER, '' MODIFIEDTIME,INVOICENO RECEIPTNO,'' RECEIPTTYPE, '' RECEIVE_MAN," ) ;
strSql . Append ( "null RECEIVE_DATE, '' SEND_MAN,null SEND_DATE, '' TRANCER" ) ;
strSql . Append ( ",'' CUSTNO,'' MBLNO,'' CUSTOMERNAME,'' OPLBNAME,'' AS RECEIPTTYPENO,'' SALE,'' OP" ) ;
strSql . Append ( " from ch_fee_invoice " ) ;
}
else
{
strSql . Append ( "select d.GID,d.GID DOCID,'1' DOCTYPE,d.TRANCNO, d.ISREPEAT, d.REPEAT_MAN, convert(char(10),d.REPEAT_DATE,20) as REPEAT_DATE, d.ISRECEIVE," ) ;
strSql . Append ( "d.RETURN_MAN, convert(char(10),d.RETURN_DATE,20) as RETURN_DATE, d.RETURN_TRANCER, d.RETURN_TRANCNO, d.REMARK, " ) ;
strSql . Append ( "d.BSNO, d.CORPID, d.CREATEUSER, d.CREATETIME, d.MODIFIEDUSER, d.MODIFIEDTIME, d.RECEIPTNO, d.RECEIPTTYPE, d.RECEIVE_MAN," ) ;
strSql . Append ( "convert(char(10),d.RECEIVE_DATE,20) as RECEIVE_DATE, d.SEND_MAN, convert(char(10),d.SEND_DATE,20) as SEND_DATE, d.TRANCER" ) ;
strSql . Append ( ",b.CUSTNO,b.MBLNO,b.CUSTOMERNAME,b.OPLBNAME,d.RECEIPTTYPE + '-' + d.RECEIPTNO AS RECEIPTTYPENO,b.SALE,b.OP " ) ;
strSql . Append ( " from op_receipt d " ) ;
strSql . Append ( "left join v_op_bs b on (b.BSNO=d.BSNO) " ) ;
}
if ( strCondition . Trim ( ) ! = String . Empty )
{
strSql . Append ( " where " + strCondition ) ;
}
if ( ! string . IsNullOrEmpty ( sort ) )
{
strSql . Append ( " order by " + sort ) ;
}
else
{
strSql . Append ( " order by CREATETIME desc" ) ;
}
return SetExpressDocData ( strSql ) ;
}
static public MsOpReceiptEntity GetDoc ( string condition )
{
var strSql = new StringBuilder ( ) ;
strSql . Append ( "select d.GID,d.GID DOCID,'1' DOCTYPE,d.TRANCNO, d.ISREPEAT, d.REPEAT_MAN, convert(char(10),d.REPEAT_DATE,20) as REPEAT_DATE, d.ISRECEIVE," ) ;
strSql . Append ( "d.RETURN_MAN, convert(char(10),d.RETURN_DATE,20) as RETURN_DATE, d.RETURN_TRANCER, d.RETURN_TRANCNO, d.REMARK, " ) ;
strSql . Append ( "d.BSNO, d.CORPID, d.CREATEUSER, d.CREATETIME, d.MODIFIEDUSER, d.MODIFIEDTIME, d.RECEIPTNO, d.RECEIPTTYPE, d.RECEIVE_MAN," ) ;
strSql . Append ( "convert(char(10),d.RECEIVE_DATE,20) as RECEIVE_DATE, d.SEND_MAN, convert(char(10),d.SEND_DATE,20) as SEND_DATE, d.TRANCER" ) ;
strSql . Append ( ",b.CUSTNO,b.MBLNO,b.CUSTOMERNAME,b.OPLBNAME,d.RECEIPTTYPE + '-' + d.RECEIPTNO AS RECEIPTTYPENO,b.SALE,b.OP" ) ;
strSql . Append ( " from op_receipt d " ) ;
strSql . Append ( "left join v_op_bs b on (b.BSNO=d.BSNO) " ) ;
var list = SetExpressDocData ( strSql ) ;
if ( list . Count > 0 )
return list [ 0 ] ;
return new MsOpReceiptEntity ( ) ;
}
static public List < MsOpAddress > GetAddressList ( string strCondition , string userid , string username , string companyid , string sort = null )
{
StringBuilder strSql = new StringBuilder ( ) ;
strSql . Append ( "select GID,NAME,CORPNAME,ADDRESS,DESTI,PROVINCE,TEL,POSTCODE,CORPNAMERV " ) ;
strSql . Append ( " from op_express_address " ) ;
if ( strCondition . Trim ( ) ! = String . Empty )
{
strSql . Append ( " where " + strCondition ) ;
}
if ( ! string . IsNullOrEmpty ( sort ) )
{
strSql . Append ( " order by " + sort ) ;
}
else
{
strSql . Append ( " order by NAME desc" ) ;
}
return SetAddressData ( strSql ) ;
}
public static DBResult SaveDetail ( MsOpExpress bill , List < MsOpReceiptEntity > bodyList , string companyid , string username , 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 (
@ "insert into op_express_doc (GID,EXPID,DOCID)
values ( @GID , @EXPID , @DOCID ) ");
var cmdInsertDoc =
db . GetSqlStringCommand (
@ "insert into op_receipt (GID,BSNO,RECEIPTNO,RECEIPTTYPE,SEND_MAN,SEND_DATE,
TRANCER , TRANCNO , RETURN_MAN , RETURN_DATE , RETURN_TRANCER , RETURN_TRANCNO , CORPID , CREATEUSER , CREATETIME , MODIFIEDUSER , MODIFIEDTIME , REMARK )
values ( @GID , @BSNO , @RECEIPTNO , @RECEIPTTYPE , @SEND_MAN , @SEND_DATE ,
@TRANCER , @TRANCNO , @RETURN_MAN , @RETURN_DATE , @RETURN_TRANCER , @RETURN_TRANCNO , @CORPID , @CREATEUSER , @CREATETIME , @MODIFIEDUSER , @MODIFIEDTIME , @REMARK ) ");
if ( bodyList ! = null )
{
foreach ( var enumValue in bodyList )
{
var DOCID = "" ;
if ( enumValue . DOCID = = "*" )
{
DOCID = Guid . NewGuid ( ) . ToString ( ) ;
cmdInsertDoc . Parameters . Clear ( ) ;
db . AddInParameter ( cmdInsertDoc , "@GID" , DbType . String , DOCID ) ;
db . AddInParameter ( cmdInsertDoc , "@BSNO" , DbType . String , enumValue . BSNO ) ;
db . AddInParameter ( cmdInsertDoc , "@RECEIPTNO" , DbType . String , enumValue . RECEIPTNO ) ;
db . AddInParameter ( cmdInsertDoc , "@RECEIPTTYPE" , DbType . String , enumValue . RECEIPTTYPE ) ;
db . AddInParameter ( cmdInsertDoc , "@CORPID" , DbType . String , companyid ) ;
db . AddInParameter ( cmdInsertDoc , "@CREATEUSER" , DbType . String , userid ) ;
db . AddInParameter ( cmdInsertDoc , "@MODIFIEDUSER" , DbType . String , userid ) ;
db . AddInParameter ( cmdInsertDoc , "@CREATETIME" , DbType . String , DateTime . Now ) ;
db . AddInParameter ( cmdInsertDoc , "@MODIFIEDTIME" , DbType . String , DateTime . Now ) ;
if ( bill . BILLTYPE = = "送单" )
{
db . AddInParameter ( cmdInsertDoc , "@SEND_MAN" , DbType . String , username ) ;
db . AddInParameter ( cmdInsertDoc , "@SEND_DATE" , DbType . String , DateTime . Now . ToString ( "yyyy-MM-dd" ) ) ;
db . AddInParameter ( cmdInsertDoc , "@TRANCER" , DbType . String , bill . EXPRESSCORP ) ;
db . AddInParameter ( cmdInsertDoc , "@TRANCNO" , DbType . String , bill . EXNO ) ;
db . AddInParameter ( cmdInsertDoc , "@RETURN_MAN" , DbType . String , "" ) ;
db . AddInParameter ( cmdInsertDoc , "@RETURN_DATE" , DbType . String , null ) ;
db . AddInParameter ( cmdInsertDoc , "@RETURN_TRANCER" , DbType . String , "" ) ;
db . AddInParameter ( cmdInsertDoc , "@RETURN_TRANCNO" , DbType . String , "" ) ;
}
else if ( bill . BILLTYPE = = "还单" )
{
db . AddInParameter ( cmdInsertDoc , "@SEND_MAN" , DbType . String , enumValue . SEND_MAN ) ;
db . AddInParameter ( cmdInsertDoc , "@SEND_DATE" , DbType . String , enumValue . SEND_DATE ) ;
db . AddInParameter ( cmdInsertDoc , "@TRANCER" , DbType . String , enumValue . TRANCER ) ;
db . AddInParameter ( cmdInsertDoc , "@TRANCNO" , DbType . String , enumValue . TRANCNO ) ;
db . AddInParameter ( cmdInsertDoc , "@RETURN_MAN" , DbType . String , username ) ;
db . AddInParameter ( cmdInsertDoc , "@RETURN_DATE" , DbType . String , DateTime . Now . ToString ( "yyyy-MM-dd" ) ) ;
db . AddInParameter ( cmdInsertDoc , "@RETURN_TRANCER" , DbType . String , bill . EXPRESSCORP ) ;
db . AddInParameter ( cmdInsertDoc , "@RETURN_TRANCNO" , DbType . String , bill . EXNO ) ;
}
else {
db . AddInParameter ( cmdInsertDoc , "@SEND_MAN" , DbType . String , enumValue . SEND_MAN ) ;
db . AddInParameter ( cmdInsertDoc , "@SEND_DATE" , DbType . String , enumValue . SEND_DATE ) ;
db . AddInParameter ( cmdInsertDoc , "@TRANCER" , DbType . String , enumValue . TRANCER ) ;
db . AddInParameter ( cmdInsertDoc , "@TRANCNO" , DbType . String , enumValue . TRANCNO ) ;
db . AddInParameter ( cmdInsertDoc , "@RETURN_MAN" , DbType . String , enumValue . RETURN_MAN ) ;
db . AddInParameter ( cmdInsertDoc , "@RETURN_DATE" , DbType . String , enumValue . RETURN_DATE ) ;
db . AddInParameter ( cmdInsertDoc , "@RETURN_TRANCER" , DbType . String , enumValue . RETURN_TRANCER ) ;
db . AddInParameter ( cmdInsertDoc , "@RETURN_TRANCNO" , DbType . String , enumValue . RETURN_TRANCNO ) ;
}
db . AddInParameter ( cmdInsertDoc , "@REMARK" , DbType . String , enumValue . REMARK ) ;
db . ExecuteNonQuery ( cmdInsertDoc , tran ) ;
}
else {
DOCID = enumValue . DOCID ;
if ( bill . BILLTYPE = = "送单" )
{
var cmdUpdateDoc =
db . GetSqlStringCommand (
@"update op_receipt set SEND_MAN=@SEND_MAN,SEND_DATE=@SEND_DATE,TRANCER=@TRANCER,TRANCNO=@TRANCNO,REMARK=@REMARK where GID=@DOCID " ) ;
db . AddInParameter ( cmdUpdateDoc , "@SEND_MAN" , DbType . String , username ) ;
db . AddInParameter ( cmdUpdateDoc , "@SEND_DATE" , DbType . String , DateTime . Now . ToString ( "yyyy-MM-dd" ) ) ;
db . AddInParameter ( cmdUpdateDoc , "@TRANCER" , DbType . String , bill . EXPRESSCORP ) ;
db . AddInParameter ( cmdUpdateDoc , "@TRANCNO" , DbType . String , bill . EXNO ) ;
db . AddInParameter ( cmdUpdateDoc , "@REMARK" , DbType . String , enumValue . REMARK ) ;
db . AddInParameter ( cmdUpdateDoc , "@DOCID" , DbType . String , DOCID ) ;
db . ExecuteNonQuery ( cmdUpdateDoc , tran ) ;
}
else
{
var cmdUpdateDoc =
db . GetSqlStringCommand (
@"update op_receipt set RETURN_MAN=@RETURN_MAN,RETURN_DATE=@RETURN_DATE,RETURN_TRANCER=@RETURN_TRANCER,RETURN_TRANCNO=@RETURN_TRANCNO,REMARK=@REMARK where GID=@DOCID " ) ;
db . AddInParameter ( cmdUpdateDoc , "@RETURN_MAN" , DbType . String , username ) ;
db . AddInParameter ( cmdUpdateDoc , "@RETURN_DATE" , DbType . String , DateTime . Now . ToString ( "yyyy-MM-dd" ) ) ;
db . AddInParameter ( cmdUpdateDoc , "@RETURN_TRANCER" , DbType . String , bill . EXPRESSCORP ) ;
db . AddInParameter ( cmdUpdateDoc , "@RETURN_TRANCNO" , DbType . String , bill . EXNO ) ;
db . AddInParameter ( cmdUpdateDoc , "@REMARK" , DbType . String , enumValue . REMARK ) ;
db . AddInParameter ( cmdUpdateDoc , "@DOCID" , DbType . String , DOCID ) ;
db . ExecuteNonQuery ( cmdUpdateDoc , tran ) ;
}
}
if ( enumValue . EXPID = = "*" )
{
cmdInsert . Parameters . Clear ( ) ;
db . AddInParameter ( cmdInsert , "@GID" , DbType . String , Guid . NewGuid ( ) . ToString ( ) ) ;
db . AddInParameter ( cmdInsert , "@EXPID" , DbType . String , bill . GID ) ;
db . AddInParameter ( cmdInsert , "@DOCID" , DbType . String , DOCID ) ;
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 AddBill ( string billno , List < MsOpReceiptEntity > bodyList )
{
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 op_express_doc (GID,EXPID,DOCID)
values ( @GID , @EXPID , @DOCID ) ");
if ( bodyList ! = null )
{
foreach ( var enumValue in bodyList )
{
cmdInsert . Parameters . Clear ( ) ;
db . AddInParameter ( cmdInsert , "@GID" , DbType . String , Guid . NewGuid ( ) . ToString ( ) ) ;
db . AddInParameter ( cmdInsert , "@EXPID" , DbType . String , billno ) ;
db . AddInParameter ( cmdInsert , "@DOCID" , DbType . String , enumValue . GID ) ;
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 DelBill ( List < MsOpReceiptEntity > boday )
{
var result = new DBResult ( ) ;
Database db = DatabaseFactory . CreateDatabase ( ) ;
using ( var conn = db . CreateConnection ( ) )
{
conn . Open ( ) ;
var tran = conn . BeginTransaction ( ) ;
try
{
if ( boday ! = null )
{
var cmddelete = db . GetSqlStringCommand ( "delete from op_express_doc where GID=@GID" ) ;
foreach ( var enumValue in boday )
{
cmddelete . Parameters . Clear ( ) ;
db . AddInParameter ( cmddelete , "@GID" , DbType . String , enumValue . GID ) ;
db . ExecuteNonQuery ( cmddelete , tran ) ;
}
}
result = new DBResult ( ) ;
result . Success = true ;
result . Message = "成功" ;
tran . Commit ( ) ;
}
catch ( Exception )
{
tran . Rollback ( ) ;
result . Success = false ;
result . Message = "保存出现错误,请重试或联系系统管理员" ;
return result ;
}
}
result . Success = true ;
result . Message = "保存成功" ;
return result ;
}
#endregion
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 " ) ;
strSql . Append ( " from VW_User_Authority " ) ;
strSql . Append ( " where [NAME]='modOpExpress' 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 ( visiblerange = = "4" )
{
str = " CREATEUSER='" + userid + "' " ;
}
else if ( visiblerange = = "3" )
{
str = " CREATEUSER='" + userid + "' " ;
}
else if ( visiblerange = = "2" )
{
var rangeDa = new RangeDA ( ) ;
var deptname = rangeDa . GetDEPTNAME ( userid ) ;
str = " CREATEUSER in (select USERID from user_company where COMPANYID='" + companyid + "') and CREATEUSER in (select userid from user_baseinfo where DEPTNAME='" + deptname + "') " ;
}
else if ( visiblerange = = "1" )
{
str = " CORPID='" + companyid + "' " ;
}
else if ( visiblerange = = "0" )
{
str = " 1=1 " ;
}
return str ;
}
#region 获取顺丰下单号
public static string GetSFOrderID ( )
{
SqlParameter [ ] parameters =
{
new SqlParameter ( "@BillType" , SqlDbType . VarChar , 4 ) ,
new SqlParameter ( "@BillDate" , SqlDbType . VarChar , 8 ) ,
} ;
parameters [ 0 ] . Value = "0501" ;
parameters [ 1 ] . Value = DateTime . Now . ToString ( "yyyyMMdd" ) ;
int num = DbHelperSQL . ExcuteScalarProc ( "Proc_EIP_OrderNO" , parameters ) ;
StringBuilder strNo = new StringBuilder ( ) ;
strNo . Append ( "QDLH" ) ;
strNo . Append ( DateTime . Now . ToString ( "yyyyMMdd" ) ) ;
strNo . Append ( String . Format ( "{0:000}" , num ) ) ;
return strNo . ToString ( ) ;
}
# endregion
}
}