using System ;
using System.Data ;
using System.Collections.Generic ;
using System.Text ;
using DSWeb.MvcShipping.Models.CurrencyExchange ;
using Microsoft.Practices.EnterpriseLibrary.Data ;
using DSWeb.Areas.CommMng.Models ;
using HcUtility.Comm ;
using DSWeb.MvcShipping.DAL.MsSysParamSet ;
namespace DSWeb.MvcShipping.DAL.MsCurrencyExchange
{
public class MsCurrencyExchangeDAL
{
#region Inquery DataList
static public List < CurrencyExchange > GetDataList ( string strCondition , string companyid , string sort = null )
{
var strSql = new StringBuilder ( ) ;
strSql . Append ( "SELECT GID,CURRENCYID,VALUE,[TYPE],CRVALUE,CUSTOMVALUE,[STARTTIME],[ENDTIME],[CREATEUSER]" ) ;
strSql . Append ( ",[CREATETIME],[MODIFIEDUSER],[MODIFIEDTIME],[COMPANYID],LOCALCURR" ) ;
strSql . Append ( ",(select ShowName from [user] where GID=currency_exchange.CREATEUSER) as CREATEUSERREF" ) ;
strSql . Append ( ",(select CODENAME from [code_currency] where GID=currency_exchange.CURRENCYID) as CURRENCY,REMARK" ) ;
strSql . Append ( " from currency_exchange where COMPANYID='" + companyid + "'" ) ;
if ( ! string . IsNullOrEmpty ( strCondition ) )
{
strSql . Append ( " and " + strCondition ) ;
}
var sortstring = DatasetSort . Getsortstring ( sort ) ;
if ( ! string . IsNullOrEmpty ( sortstring ) )
{
strSql . Append ( " order by " + sortstring ) ;
}
else {
strSql . Append ( " order by CURRENCYID,STARTTIME" ) ;
}
return SetData ( strSql ) ;
}
static public CurrencyExchange GetData ( string condition , string companyid )
{
CurrencyExchange data = null ;
var list = GetDataList ( condition , companyid ) ;
if ( list . Count > 0 )
data = list [ 0 ] ;
if ( data = = null )
{
data = new CurrencyExchange ( ) ;
}
return data ;
}
private static List < CurrencyExchange > SetData ( StringBuilder strSql )
{
var headList = new List < CurrencyExchange > ( ) ;
Database db = DatabaseFactory . CreateDatabase ( ) ;
using ( IDataReader reader = db . ExecuteReader ( CommandType . Text , strSql . ToString ( ) ) )
{
while ( reader . Read ( ) )
{
CurrencyExchange data = new CurrencyExchange ( ) ;
#region Set DB data to Object
data . GID = Convert . ToString ( reader [ "GID" ] ) ;
data . CURRENCYID = Convert . ToString ( reader [ "CURRENCYID" ] ) ;
data . CURRENCY = Convert . ToString ( reader [ "CURRENCY" ] ) ;
if ( reader [ "VALUE" ] ! = DBNull . Value )
data . VALUE = Convert . ToString ( reader [ "VALUE" ] ) ;
if ( reader [ "CRVALUE" ] ! = DBNull . Value )
data . CRVALUE = Convert . ToString ( reader [ "CRVALUE" ] ) ;
if ( reader [ "CUSTOMVALUE" ] ! = DBNull . Value )
data . CUSTOMVALUE = Convert . ToString ( reader [ "CUSTOMVALUE" ] ) ; //海关汇率
data . TYPE = Convert . ToString ( reader [ "TYPE" ] ) ;
if ( reader [ "STARTTIME" ] ! = DBNull . Value )
data . STARTTIME = Convert . ToDateTime ( reader [ "STARTTIME" ] ) . ToString ( "yyyy-MM-dd" ) ;
if ( reader [ "ENDTIME" ] ! = DBNull . Value )
data . ENDTIME = Convert . ToDateTime ( reader [ "ENDTIME" ] ) . ToString ( "yyyy-MM-dd" ) ;
data . CREATEUSER = Convert . ToString ( reader [ "CREATEUSER" ] ) ;
data . CREATEUSERREF = Convert . ToString ( reader [ "CREATEUSERREF" ] ) ;
if ( reader [ "CREATETIME" ] ! = DBNull . Value )
data . CREATETIME = Convert . ToDateTime ( reader [ "CREATETIME" ] ) . ToString ( "yyyy-MM-dd HH:mm:ss" ) ;
data . COMPANYID = Convert . ToString ( reader [ "COMPANYID" ] ) ;
data . LOCALCURR = Convert . ToString ( reader [ "LOCALCURR" ] ) ;
data . Remark = Convert . ToString ( reader [ "REMARK" ] ) ;
# endregion
headList . Add ( data ) ;
}
reader . Close ( ) ;
}
return headList ;
}
# endregion
public static DBResult SaveDetail ( List < CurrencyExchange > bodyList , string companyid , string userid , string LOCALCURR )
{
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 currency_exchange (GID,CURRENCYID,VALUE,CRVALUE,CUSTOMVALUE,TYPE,STARTTIME,ENDTIME,COMPANYID,CREATEUSER,CREATETIME,LOCALCURR,REMARK)
values ( @GID , @CURRENCYID , @VALUE , @CRVALUE , @CUSTOMVALUE , @TYPE , @STARTTIME , @ENDTIME , @COMPANYID , @CREATEUSER , @CREATETIME , @LOCALCURR , @REMARK ) ");
var cmdUpdate =
db . GetSqlStringCommand (
@"update currency_exchange set CURRENCYID=@CURRENCYID,VALUE=@VALUE,CRVALUE=@CRVALUE,CUSTOMVALUE=@CUSTOMVALUE,TYPE=@TYPE,STARTTIME=@STARTTIME,ENDTIME=@ENDTIME,MODIFIEDUSER=@MODIFIEDUSER,MODIFIEDTIME=@MODIFIEDTIME,LOCALCURR=@LOCALCURR,REMARK=@REMARK where GID=@GID " ) ;
if ( bodyList ! = null )
{
foreach ( var enumValue in bodyList )
{
if ( enumValue . STARTTIME = = "" ) enumValue . STARTTIME = null ;
else
{
enumValue . STARTTIME = Convert . ToDateTime ( enumValue . STARTTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM-dd" ) ;
}
if ( enumValue . ENDTIME = = "" ) enumValue . ENDTIME = null ;
else
{
enumValue . ENDTIME = Convert . ToDateTime ( enumValue . ENDTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM-dd" ) ;
}
if ( enumValue . GID = = "*" | | enumValue . GID = = "" )
{
cmdInsert . Parameters . Clear ( ) ;
db . AddInParameter ( cmdInsert , "@GID" , DbType . String , Guid . NewGuid ( ) . ToString ( ) ) ;
db . AddInParameter ( cmdInsert , "@CURRENCYID" , DbType . String , enumValue . CURRENCYID ) ;
db . AddInParameter ( cmdInsert , "@VALUE" , DbType . String , enumValue . VALUE ) ;
db . AddInParameter ( cmdInsert , "@CRVALUE" , DbType . String , enumValue . CRVALUE ) ;
db . AddInParameter ( cmdInsert , "@CUSTOMVALUE" , DbType . String , enumValue . CUSTOMVALUE ) ;
db . AddInParameter ( cmdInsert , "@TYPE" , DbType . String , enumValue . TYPE ) ;
db . AddInParameter ( cmdInsert , "@STARTTIME" , DbType . String , enumValue . STARTTIME ) ;
db . AddInParameter ( cmdInsert , "@ENDTIME" , DbType . String , enumValue . ENDTIME ) ;
db . AddInParameter ( cmdInsert , "@CREATETIME" , DbType . String , DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) ) ;
db . AddInParameter ( cmdInsert , "@CREATEUSER" , DbType . String , userid ) ;
db . AddInParameter ( cmdInsert , "@COMPANYID" , DbType . String , companyid ) ;
db . AddInParameter ( cmdInsert , "@LOCALCURR" , DbType . String , LOCALCURR ) ;
db . AddInParameter ( cmdInsert , "@REMARK" , DbType . String , enumValue . Remark ) ;
db . ExecuteNonQuery ( cmdInsert , tran ) ;
}
else
{
cmdUpdate . Parameters . Clear ( ) ;
db . AddInParameter ( cmdUpdate , "@CURRENCYID" , DbType . String , enumValue . CURRENCYID ) ;
db . AddInParameter ( cmdUpdate , "@VALUE" , DbType . String , enumValue . VALUE ) ;
db . AddInParameter ( cmdUpdate , "@CRVALUE" , DbType . String , enumValue . CRVALUE ) ;
db . AddInParameter ( cmdUpdate , "@CUSTOMVALUE" , DbType . String , enumValue . CUSTOMVALUE ) ;
db . AddInParameter ( cmdUpdate , "@TYPE" , DbType . String , enumValue . TYPE ) ;
db . AddInParameter ( cmdUpdate , "@STARTTIME" , DbType . String , enumValue . STARTTIME ) ;
db . AddInParameter ( cmdUpdate , "@ENDTIME" , DbType . String , enumValue . ENDTIME ) ;
db . AddInParameter ( cmdUpdate , "@MODIFIEDTIME" , DbType . String , DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) ) ;
db . AddInParameter ( cmdUpdate , "@MODIFIEDUSER" , DbType . String , userid ) ;
db . AddInParameter ( cmdUpdate , "@GID" , DbType . String , enumValue . GID ) ;
db . AddInParameter ( cmdUpdate , "@LOCALCURR" , DbType . String , LOCALCURR ) ;
db . AddInParameter ( cmdUpdate , "@REMARK" , DbType . String , enumValue . Remark ) ;
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 = "保存成功" + result . Message ;
return result ;
}
public static DBResult UpBsExchange ( CurrencyExchange bodyList , string type , string userid , string companyid )
{
var result = new DBResult ( ) ;
Database db = DatabaseFactory . CreateDatabase ( ) ;
using ( var conn = db . CreateConnection ( ) )
{
conn . Open ( ) ;
var tran = conn . BeginTransaction ( ) ;
try
{
var sqlstr = " CORPID='" + companyid + "' " ;
var EXCHANGENOTCOMPANY = MsSysParamSetDAL . GetData ( "PARAMNAME='EXCHANGENOTCOMPANY'" ) ;
if ( EXCHANGENOTCOMPANY . PARAMVALUE = = "1" )
{
sqlstr = " 1=1 " ;
}
var UPDATEEXRATEISNOTLOCK = MsSysParamSetDAL . GetData ( "PARAMNAME='UPDATEEXRATEISNOTLOCK'" ) ;
if ( UPDATEEXRATEISNOTLOCK . PARAMVALUE = = "1" )
{
}
else {
sqlstr = sqlstr + " and FEESTATUS=0 " ;
}
var feestr = " 1=1 " ;
if ( type = = "业务日期" )
{
var startstr = Convert . ToDateTime ( bodyList . STARTTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM-dd" ) ;
var endstr = Convert . ToDateTime ( bodyList . ENDTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM-dd" ) ;
sqlstr = sqlstr + " AND ETD>='" + startstr + "' AND ETD<='" + endstr + "'" ;
}
else if ( type = = "更改单建单日期" )
{
var startstr = Convert . ToDateTime ( bodyList . STARTTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM-dd" ) ;
var endstr = Convert . ToDateTime ( bodyList . ENDTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM-dd" ) ;
sqlstr = sqlstr + " AND CREATETIME>='" + startstr + "' AND CREATETIME<='" + endstr + "'" ;
}
else if ( type = = "更改单业务日期" )
{
var startstr = Convert . ToDateTime ( bodyList . STARTTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM-dd" ) ;
var endstr = Convert . ToDateTime ( bodyList . ENDTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM-dd" ) ;
sqlstr = sqlstr + " AND ETD>='" + startstr + "' AND ETD<='" + endstr + "'" ;
}
else if ( type = = "更改单会计期间按业务日期汇率更新" )
{
var startstr = Convert . ToDateTime ( bodyList . STARTTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM" ) ;
var endstr = Convert . ToDateTime ( bodyList . ENDTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM" ) ;
sqlstr = sqlstr + " AND ACCDATE>='" + startstr + "' AND ACCDATE<='" + endstr + "'" ;
}
else if ( type = = "费用录入日期" )
{
var startstr = Convert . ToDateTime ( bodyList . STARTTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM-dd" ) ;
var endstr = Convert . ToDateTime ( bodyList . ENDTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM-dd" ) ;
feestr = feestr + " AND ENTERDATE>='" + startstr + "' AND ENTERDATE<='" + endstr + " 23:59:59'" ;
}
else
{
var startstr = Convert . ToDateTime ( bodyList . STARTTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM" ) ;
var endstr = Convert . ToDateTime ( bodyList . ENDTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM" ) ;
sqlstr = sqlstr + " AND ACCDATE>='" + startstr + "' AND ACCDATE<='" + endstr + "'" ;
}
var cmdUpdate =
db . GetSqlStringCommand (
@"update ch_fee set EXCHANGERATE=@EXCHANGERATE where CURRENCY=@CURRENCY and feetype=1 and SETTLEMENT=0 and INVOICE=0 and ORDERAMOUNT=0 and ORDERINVOICE=0 and BSNO IN (SELECT BSNO FROM V_OP_BILL WHERE 1=1 AND OPTYPE='普通货' and " + sqlstr + ")" ) ;
var cmdUpdateCr =
db . GetSqlStringCommand (
@"update ch_fee set EXCHANGERATE=@EXCHANGERATE where CURRENCY=@CURRENCY and feetype=2 and SETTLEMENT=0 and INVOICE=0 and ORDERAMOUNT=0 and ORDERINVOICE=0 and BSNO IN (SELECT BSNO FROM V_OP_BILL WHERE 1=1 AND OPTYPE='普通货' and " + sqlstr + ")" ) ;
if ( type ! = "更改单会计期间按业务日期汇率更新" )
{
if ( type = = "更改单" )
{
cmdUpdate =
db . GetSqlStringCommand (
@"update ch_fee set EXCHANGERATE=@EXCHANGERATE where CURRENCY=@CURRENCY and SETTLEMENT=0 and INVOICE=0 and ORDERAMOUNT=0 and ORDERINVOICE=0 and feetype=1 and BSNO IN (SELECT BSNO FROM V_OP_BILL WHERE 1=1 AND OPTYPE='更改单' and " + sqlstr + ")" ) ;
cmdUpdateCr =
db . GetSqlStringCommand (
@"update ch_fee set EXCHANGERATE=@EXCHANGERATE where CURRENCY=@CURRENCY and SETTLEMENT=0 and INVOICE=0 and ORDERAMOUNT=0 and ORDERINVOICE=0 and feetype=2 and BSNO IN (SELECT BSNO FROM V_OP_BILL WHERE 1=1 AND OPTYPE='更改单' and " + sqlstr + ")" ) ;
}
else if ( type = = "更改单建单日期" | | type = = "更改单业务日期" )
{
cmdUpdate =
db . GetSqlStringCommand (
@"update ch_fee set EXCHANGERATE=@EXCHANGERATE where CURRENCY=@CURRENCY and feetype=1 and SETTLEMENT=0 and INVOICE=0 and ORDERAMOUNT=0 and ORDERINVOICE=0 and BSNO IN (SELECT BSNO FROM V_OP_BILL WHERE 1=1 AND OPTYPE='更改单' and " + sqlstr + ")" ) ;
cmdUpdateCr =
db . GetSqlStringCommand (
@"update ch_fee set EXCHANGERATE=@EXCHANGERATE where CURRENCY=@CURRENCY and feetype=2 and SETTLEMENT=0 and INVOICE=0 and ORDERAMOUNT=0 and ORDERINVOICE=0 and BSNO IN (SELECT BSNO FROM V_OP_BILL WHERE 1=1 AND OPTYPE='更改单' and " + sqlstr + ")" ) ;
}
else if ( type = = "费用录入日期" )
{
cmdUpdate =
db . GetSqlStringCommand (
@"update ch_fee set EXCHANGERATE=@EXCHANGERATE where CURRENCY=@CURRENCY and feetype=1 and SETTLEMENT=0 and INVOICE=0 and ORDERAMOUNT=0 and ORDERINVOICE=0 and " + feestr + " and BSNO IN (SELECT BSNO FROM V_OP_BILL WHERE 1=1 and " + sqlstr + ")" ) ;
cmdUpdateCr =
db . GetSqlStringCommand (
@"update ch_fee set EXCHANGERATE=@EXCHANGERATE where CURRENCY=@CURRENCY and feetype=2 and SETTLEMENT=0 and INVOICE=0 and ORDERAMOUNT=0 and ORDERINVOICE=0 and " + feestr + " and BSNO IN (SELECT BSNO FROM V_OP_BILL WHERE 1=1 and " + sqlstr + ")" ) ;
}
cmdUpdate . Parameters . Clear ( ) ;
db . AddInParameter ( cmdUpdate , "@CURRENCY" , DbType . String , bodyList . CURRENCY ) ;
db . AddInParameter ( cmdUpdate , "@EXCHANGERATE" , DbType . String , bodyList . VALUE ) ;
db . ExecuteNonQuery ( cmdUpdate , tran ) ;
cmdUpdateCr . Parameters . Clear ( ) ;
db . AddInParameter ( cmdUpdateCr , "@CURRENCY" , DbType . String , bodyList . CURRENCY ) ;
db . AddInParameter ( cmdUpdateCr , "@EXCHANGERATE" , DbType . String , bodyList . CRVALUE ) ;
db . ExecuteNonQuery ( cmdUpdateCr , tran ) ;
var cmdInsertlog =
db . GetSqlStringCommand (
@ "insert into sys_log (GID,NAME,LOGTYPE,LOGTIME,LOGCONTENT,CREATEUSER)
values ( @GID , @NAME , @LOGTYPE , @LOGTIME , @LOGCONTENT , @CREATEUSER ) ");
cmdInsertlog . Parameters . Clear ( ) ;
db . AddInParameter ( cmdInsertlog , "@GID" , DbType . String , Guid . NewGuid ( ) . ToString ( ) ) ;
db . AddInParameter ( cmdInsertlog , "@NAME" , DbType . String , "同步本期汇率" ) ;
db . AddInParameter ( cmdInsertlog , "@LOGTYPE" , DbType . String , "UPDATE 更新操作" ) ;
db . AddInParameter ( cmdInsertlog , "@LOGTIME" , DbType . String , DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) ) ;
db . AddInParameter ( cmdInsertlog , "@LOGCONTENT" , DbType . String , "按照" + type + "更新费用汇率,更新条件:(" + feestr + ") " + sqlstr + ";应收汇率更新为:" + bodyList . VALUE . ToString ( ) + ";应付汇率更新为:" + bodyList . CRVALUE . ToString ( ) ) ;
db . AddInParameter ( cmdInsertlog , "@CREATEUSER" , DbType . String , userid ) ;
db . ExecuteNonQuery ( cmdInsertlog , tran ) ;
}
else {
var curexlist = GetDataList ( "" , companyid ) ;
foreach ( var enumValue in curexlist )
{
var sqlstr2 = "" ;
var startstr = Convert . ToDateTime ( enumValue . STARTTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM-dd" ) ;
var endstr = Convert . ToDateTime ( enumValue . ENDTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM-dd" ) ;
sqlstr2 = sqlstr2 + " AND ETD>='" + startstr + "' AND ETD<='" + endstr + "'" ;
cmdUpdate =
db . GetSqlStringCommand (
@"update ch_fee set EXCHANGERATE=@EXCHANGERATE where CURRENCY=@CURRENCY and feetype=1 and SETTLEMENT=0 and INVOICE=0 and ORDERAMOUNT=0 and ORDERINVOICE=0 and BSNO IN (SELECT BSNO FROM V_OP_BILL WHERE 1=1 AND OPTYPE='更改单' and " + sqlstr + sqlstr2 + ")" ) ;
cmdUpdateCr =
db . GetSqlStringCommand (
@"update ch_fee set EXCHANGERATE=@EXCHANGERATE where CURRENCY=@CURRENCY and feetype=2 and SETTLEMENT=0 and INVOICE=0 and ORDERAMOUNT=0 and ORDERINVOICE=0 and BSNO IN (SELECT BSNO FROM V_OP_BILL WHERE 1=1 AND OPTYPE='更改单' and " + sqlstr + sqlstr2 + ")" ) ;
cmdUpdate . Parameters . Clear ( ) ;
db . AddInParameter ( cmdUpdate , "@CURRENCY" , DbType . String , enumValue . CURRENCY ) ;
db . AddInParameter ( cmdUpdate , "@EXCHANGERATE" , DbType . String , enumValue . VALUE ) ;
db . ExecuteNonQuery ( cmdUpdate , tran ) ;
cmdUpdateCr . Parameters . Clear ( ) ;
db . AddInParameter ( cmdUpdateCr , "@CURRENCY" , DbType . String , enumValue . CURRENCY ) ;
db . AddInParameter ( cmdUpdateCr , "@EXCHANGERATE" , DbType . String , enumValue . CRVALUE ) ;
db . ExecuteNonQuery ( cmdUpdateCr , tran ) ;
var cmdInsertlog =
db . GetSqlStringCommand (
@ "insert into sys_log (GID,NAME,LOGTYPE,LOGTIME,LOGCONTENT,CREATEUSER)
values ( @GID , @NAME , @LOGTYPE , @LOGTIME , @LOGCONTENT , @CREATEUSER ) ");
cmdInsertlog . Parameters . Clear ( ) ;
db . AddInParameter ( cmdInsertlog , "@GID" , DbType . String , Guid . NewGuid ( ) . ToString ( ) ) ;
db . AddInParameter ( cmdInsertlog , "@NAME" , DbType . String , "同步本期汇率" ) ;
db . AddInParameter ( cmdInsertlog , "@LOGTYPE" , DbType . String , "UPDATE 更新操作" ) ;
db . AddInParameter ( cmdInsertlog , "@LOGTIME" , DbType . String , DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) ) ;
db . AddInParameter ( cmdInsertlog , "@LOGCONTENT" , DbType . String , "按照" + type + "更新费用汇率,更新条件:" + sqlstr + sqlstr2 + ";应收汇率更新为:" + enumValue . VALUE . ToString ( ) + ";应付汇率更新为:" + enumValue . CRVALUE . ToString ( ) ) ;
db . AddInParameter ( cmdInsertlog , "@CREATEUSER" , DbType . String , userid ) ;
db . ExecuteNonQuery ( cmdInsertlog , tran ) ;
}
}
tran . Commit ( ) ;
}
catch ( Exception )
{
tran . Rollback ( ) ;
result . Success = false ;
result . Message = "保存出现错误,请重试或联系系统管理员" ;
return result ;
}
}
result . Success = true ;
result . Message = "保存成功" + result . Message ;
return result ;
}
#region Inquery INV DataList
static public List < CurrencyExchange > GetDataInvList ( string strCondition , string companyid , string sort = null )
{
var strSql = new StringBuilder ( ) ;
strSql . Append ( "SELECT GID,CURRENCYID,VALUE,[TYPE],[STARTTIME],[ENDTIME],[CREATEUSER]" ) ;
strSql . Append ( ",[CREATETIME],[MODIFIEDUSER],[MODIFIEDTIME],[COMPANYID]" ) ;
strSql . Append ( ",(select ShowName from [user] where GID=currency_exchange_inv.CREATEUSER) as CREATEUSERREF" ) ;
strSql . Append ( ",(select CODENAME from [code_currency] where GID=currency_exchange_inv.CURRENCYID) as CURRENCY" ) ;
strSql . Append ( " from currency_exchange_inv where COMPANYID='" + companyid + "'" ) ;
if ( ! string . IsNullOrEmpty ( strCondition ) )
{
strSql . Append ( " and " + strCondition ) ;
}
var sortstring = DatasetSort . Getsortstring ( sort ) ;
if ( ! string . IsNullOrEmpty ( sortstring ) )
{
strSql . Append ( " order by " + sortstring ) ;
}
else
{
strSql . Append ( " order by CURRENCYID,STARTTIME" ) ;
}
return SetInvData ( strSql ) ;
}
static public CurrencyExchange GetInvData ( string condition , string companyid )
{
CurrencyExchange data = null ;
var list = GetDataInvList ( condition , companyid ) ;
if ( list . Count > 0 )
data = list [ 0 ] ;
if ( data = = null )
{
data = new CurrencyExchange ( ) ;
}
return data ;
}
private static List < CurrencyExchange > SetInvData ( StringBuilder strSql )
{
var headList = new List < CurrencyExchange > ( ) ;
Database db = DatabaseFactory . CreateDatabase ( ) ;
using ( IDataReader reader = db . ExecuteReader ( CommandType . Text , strSql . ToString ( ) ) )
{
while ( reader . Read ( ) )
{
CurrencyExchange data = new CurrencyExchange ( ) ;
#region Set DB data to Object
data . GID = Convert . ToString ( reader [ "GID" ] ) ;
data . CURRENCYID = Convert . ToString ( reader [ "CURRENCYID" ] ) ;
data . CURRENCY = Convert . ToString ( reader [ "CURRENCY" ] ) ;
if ( reader [ "VALUE" ] ! = DBNull . Value )
data . VALUE = Convert . ToString ( reader [ "VALUE" ] ) ;
data . TYPE = Convert . ToString ( reader [ "TYPE" ] ) ;
if ( reader [ "STARTTIME" ] ! = DBNull . Value )
data . STARTTIME = Convert . ToDateTime ( reader [ "STARTTIME" ] ) . ToString ( "yyyy-MM-dd" ) ;
if ( reader [ "ENDTIME" ] ! = DBNull . Value )
data . ENDTIME = Convert . ToDateTime ( reader [ "ENDTIME" ] ) . ToString ( "yyyy-MM-dd" ) ;
data . CREATEUSER = Convert . ToString ( reader [ "CREATEUSER" ] ) ;
data . CREATEUSERREF = Convert . ToString ( reader [ "CREATEUSERREF" ] ) ;
if ( reader [ "CREATETIME" ] ! = DBNull . Value )
data . CREATETIME = Convert . ToDateTime ( reader [ "CREATETIME" ] ) . ToString ( "yyyy-MM-dd HH:mm:ss" ) ;
data . COMPANYID = Convert . ToString ( reader [ "COMPANYID" ] ) ;
# endregion
headList . Add ( data ) ;
}
reader . Close ( ) ;
}
return headList ;
}
public static DBResult DeleteInv ( CurrencyExchange headdata )
{
var result = new DBResult ( ) ;
Database db = DatabaseFactory . CreateDatabase ( ) ;
using ( var conn = db . CreateConnection ( ) )
{
conn . Open ( ) ;
var tran = conn . BeginTransaction ( ) ;
try
{
var cmdDelete =
db . GetSqlStringCommand (
@"delete from currency_exchange_inv where GID=@GID " ) ;
cmdDelete . Parameters . Clear ( ) ;
db . AddInParameter ( cmdDelete , "@GID" , DbType . String , headdata . GID ) ;
db . ExecuteNonQuery ( cmdDelete , tran ) ;
tran . Commit ( ) ;
}
catch ( Exception )
{
tran . Rollback ( ) ;
result . Success = false ;
result . Message = "删除出现错误,请重试或联系系统管理员" ;
return result ;
}
}
result . Success = true ;
result . Message = "删除成功" + result . Message ;
return result ;
}
# endregion
public static DBResult SaveInvDetail ( List < CurrencyExchange > bodyList , string companyid , 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 currency_exchange_inv (GID,CURRENCYID,VALUE,TYPE,STARTTIME,ENDTIME,COMPANYID,CREATEUSER,CREATETIME)
values ( @GID , @CURRENCYID , @VALUE , @TYPE , @STARTTIME , @ENDTIME , @COMPANYID , @CREATEUSER , @CREATETIME ) ");
var cmdUpdate =
db . GetSqlStringCommand (
@"update currency_exchange_inv set CURRENCYID=@CURRENCYID,VALUE=@VALUE,TYPE=@TYPE,STARTTIME=@STARTTIME,ENDTIME=@ENDTIME,MODIFIEDUSER=@MODIFIEDUSER,MODIFIEDTIME=@MODIFIEDTIME where GID=@GID " ) ;
if ( bodyList ! = null )
{
foreach ( var enumValue in bodyList )
{
if ( enumValue . STARTTIME = = "" ) enumValue . STARTTIME = null ;
else
{
enumValue . STARTTIME = Convert . ToDateTime ( enumValue . STARTTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM-dd" ) ;
}
if ( enumValue . ENDTIME = = "" ) enumValue . ENDTIME = null ;
else
{
enumValue . ENDTIME = Convert . ToDateTime ( enumValue . ENDTIME . Replace ( "GMT+0800 (中国标准时间)" , "" ) ) . ToString ( "yyyy-MM-dd" ) ;
}
if ( enumValue . GID = = "*" | | enumValue . GID = = "" )
{
cmdInsert . Parameters . Clear ( ) ;
db . AddInParameter ( cmdInsert , "@GID" , DbType . String , Guid . NewGuid ( ) . ToString ( ) ) ;
db . AddInParameter ( cmdInsert , "@CURRENCYID" , DbType . String , enumValue . CURRENCYID ) ;
db . AddInParameter ( cmdInsert , "@VALUE" , DbType . String , enumValue . VALUE ) ;
db . AddInParameter ( cmdInsert , "@TYPE" , DbType . String , enumValue . TYPE ) ;
db . AddInParameter ( cmdInsert , "@STARTTIME" , DbType . String , enumValue . STARTTIME ) ;
db . AddInParameter ( cmdInsert , "@ENDTIME" , DbType . String , enumValue . ENDTIME ) ;
db . AddInParameter ( cmdInsert , "@CREATETIME" , DbType . String , DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) ) ;
db . AddInParameter ( cmdInsert , "@CREATEUSER" , DbType . String , userid ) ;
db . AddInParameter ( cmdInsert , "@COMPANYID" , DbType . String , companyid ) ;
db . ExecuteNonQuery ( cmdInsert , tran ) ;
}
else
{
cmdUpdate . Parameters . Clear ( ) ;
db . AddInParameter ( cmdUpdate , "@CURRENCYID" , DbType . String , enumValue . CURRENCYID ) ;
db . AddInParameter ( cmdUpdate , "@VALUE" , DbType . String , enumValue . VALUE ) ;
db . AddInParameter ( cmdUpdate , "@TYPE" , DbType . String , enumValue . TYPE ) ;
db . AddInParameter ( cmdUpdate , "@STARTTIME" , DbType . String , enumValue . STARTTIME ) ;
db . AddInParameter ( cmdUpdate , "@ENDTIME" , DbType . String , enumValue . ENDTIME ) ;
db . AddInParameter ( cmdUpdate , "@MODIFIEDTIME" , DbType . String , DateTime . Now . ToString ( "yyyy-MM-dd HH:mm:ss" ) ) ;
db . AddInParameter ( cmdUpdate , "@MODIFIEDUSER" , DbType . String , userid ) ;
db . AddInParameter ( cmdUpdate , "@GID" , DbType . String , enumValue . GID ) ;
db . ExecuteNonQuery ( cmdUpdate , tran ) ;
}
}
}
tran . Commit ( ) ;
}
catch ( Exception )
{
tran . Rollback ( ) ;
result . Success = false ;
result . Message = "保存出现错误,请重试或联系系统管理员" ;
return result ;
}
}
result . Success = true ;
result . Message = "保存成功" + result . Message ;
return result ;
}
}
}