using System ;
using System.Data ;
using System.Collections.Generic ;
using System.Text ;
using System.Collections ;
using DSWeb.MvcShipping.Models.RptOpReceiptEntity ;
using Microsoft.Practices.EnterpriseLibrary.Data ;
using DSWeb.Areas.CommMng.Models ;
using DSWeb.EntityDA ;
using HcUtility.Comm ;
using System.Data.SqlClient ;
using HcUtility.Core ;
using DSWeb.DataAccess ;
using DSWeb.Models ;
using DSWeb.MvcShipping.Helper ;
using DSWeb.Areas.CommMng.DAL ;
namespace DSWeb.MvcShipping.DAL.RptOpReceiptDAL
{
public class RptOpReceiptDAL
{
#region 查询
static public List < RptOpReceiptEntity > GetDataList ( string strCondition , string strUserID , string strCompanyID , string usercode , string orgcode , string sort = null )
{
var strSql = new StringBuilder ( ) ;
strSql . Append ( "select * from VW_OP_RECEIPT_SEA" ) ;
if ( strCondition . Trim ( ) ! = String . Empty )
{
strSql . Append ( " where " + strCondition ) ;
}
/ /
var sortstring = DatasetSort . Getsortstring ( sort ) ;
if ( ! string . IsNullOrEmpty ( sortstring ) )
{
strSql . Append ( " order by " + sortstring ) ;
}
else {
strSql . Append ( " order by MBLNO,CREATETIME desc" ) ; //BSNO,
}
return SetData ( strSql ) ;
}
private static List < RptOpReceiptEntity > SetData ( StringBuilder strSql )
{
var headList = new List < RptOpReceiptEntity > ( ) ;
Database db = DatabaseFactory . CreateDatabase ( ) ;
using ( IDataReader reader = db . ExecuteReader ( CommandType . Text , strSql . ToString ( ) ) )
{
while ( reader . Read ( ) )
{
RptOpReceiptEntity data = new RptOpReceiptEntity ( ) ;
#region Set DB data to Object
data . GID = Convert . ToString ( reader [ "GID" ] ) ;
data . TRANCNO = Convert . ToString ( reader [ "TRANCNO" ] ) ;
data . ISREPEAT = Convert . ToString ( reader [ "ISREPEAT" ] ) ;
data . REPEAT_MAN = Convert . ToString ( reader [ "REPEAT_MAN" ] ) ;
data . REPEAT_DATE = Convert . ToString ( reader [ "REPEAT_DATE" ] ) ;
data . ISRECEIVE = Convert . ToString ( reader [ "ISRECEIVE" ] ) ;
data . RETURN_MAN = Convert . ToString ( reader [ "RETURN_MAN" ] ) ;
data . RETURN_DATE = Convert . ToString ( 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 . BSNO = Convert . ToString ( reader [ "BSNO" ] ) ;
data . CORPID_NAME = Convert . ToString ( reader [ "CORPID_NAME" ] ) ;
data . CORPID = Convert . ToString ( reader [ "CORPID" ] ) ;
data . CREATEUSER_NAME = Convert . ToString ( reader [ "CREATEUSER_NAME" ] ) ;
data . CREATEUSER = Convert . ToString ( reader [ "CREATEUSER" ] ) ;
data . CREATETIME = Convert . ToString ( reader [ "CREATETIME" ] ) ;
data . MODIFIEDUSER_NAME = Convert . ToString ( reader [ "MODIFIEDUSER_NAME" ] ) ;
data . MODIFIEDUSER = Convert . ToString ( reader [ "MODIFIEDUSER" ] ) ;
data . MODIFIEDTIME = Convert . ToString ( reader [ "MODIFIEDTIME" ] ) ;
data . OPLB = Convert . ToString ( reader [ "OPLB" ] ) ;
data . OPLBNAME = Convert . ToString ( reader [ "OPLBNAME" ] ) ;
data . RECEIPTNO = Convert . ToString ( reader [ "RECEIPTNO" ] ) ;
data . CUSTOMERNAME = Convert . ToString ( reader [ "CUSTOMERNAME" ] ) ;
data . CUSTNO = Convert . ToString ( reader [ "CUSTNO" ] ) ;
data . MBLNO = Convert . ToString ( reader [ "MBLNO" ] ) ;
data . HBLNO = Convert . ToString ( reader [ "HBLNO" ] ) ;
data . ETD = Convert . ToString ( reader [ "ETD" ] ) ;
data . VESSEL = Convert . ToString ( reader [ "VESSEL" ] ) ;
data . VOYNO = Convert . ToString ( reader [ "VOYNO" ] ) ;
data . INPUTBY = Convert . ToString ( reader [ "INPUTBY" ] ) ;
data . BSSTATUS = Convert . ToString ( reader [ "BSSTATUS" ] ) ;
data . SALE = Convert . ToString ( reader [ "SALE" ] ) ;
data . RECEIPTTYPE = Convert . ToString ( reader [ "RECEIPTTYPE" ] ) ;
data . OP = Convert . ToString ( reader [ "OP" ] ) ;
data . DOC = Convert . ToString ( reader [ "DOC" ] ) ;
data . CUSTSERVICE = Convert . ToString ( reader [ "CUSTSERVICE" ] ) ;
data . PORTLOAD = Convert . ToString ( reader [ "PORTLOAD" ] ) ;
data . PORTDISCHARGE = Convert . ToString ( reader [ "PORTDISCHARGE" ] ) ;
data . CUSTOMNO = Convert . ToString ( reader [ "CUSTOMNO" ] ) ;
data . CUSTOMNO2 = Convert . ToString ( reader [ "CUSTOMNO2" ] ) ;
data . ACCDATE = Convert . ToString ( reader [ "ACCDATE" ] ) ;
data . RECEIVE_MAN = Convert . ToString ( reader [ "RECEIVE_MAN" ] ) ;
data . RECEIVE_DATE = Convert . ToString ( reader [ "RECEIVE_DATE" ] ) ;
data . SEND_MAN = Convert . ToString ( reader [ "SEND_MAN" ] ) ;
data . SEND_DATE = Convert . ToString ( reader [ "SEND_DATE" ] ) ;
data . TRANCER = Convert . ToString ( reader [ "TRANCER" ] ) ;
# endregion
headList . Add ( data ) ;
}
reader . Close ( ) ;
}
return headList ;
}
# endregion
#region 删除
public static DBResult Delete_Main ( string gids , string strUserID , string strCompanyID )
{
DBResult result = new DBResult ( ) ;
if ( gids . Trim ( ) = = "" )
{
result . Success = false ;
result . Message = "没有输入任何需要修改的数据" ;
}
gids = "'" + gids . Trim ( ) . Replace ( "," , "','" ) + "'" ;
/ /
Database db = DatabaseFactory . CreateDatabase ( ) ;
using ( SqlTransaction sqlTran = SqlHelper . BeginTransaction ( SqlHelper . ConnectionStringLocalTransaction ) )
{
try
{
#region 判断【ch_fee】中的费用状态, 是否允许删除
//string sbool = "0";
//T_ALL_DA T_ALL_DA = new T_ALL_DA();
//string ls = "select count(gid) nums from ch_fee where WMSOUTBSNO='" + gid + "' and (ISINVOICE=1 or AUDITSTATUS=1 or ORDERINVOICE<>0.00 or DEBITNO is not null or FEESTATUS<>1)";
//sbool = T_ALL_DA.GetStrSQL("nums", ls);
//if (sbool.Trim() == "0")
//{
// ls = "select count(gid) nums from ch_fee_do where feeid in (select gid from ch_fee where WMSOUTBSNO='" + gid + "')";
// sbool = T_ALL_DA.GetStrSQL("nums", ls);
// if (sbool.Trim() != "0")
// {
// sqlTran.Rollback();
// result.Success = false;
// result.Message = "有“已申请开票、已开发票或已对帐”的费用,不允许删除,请重新操作!";
// return result;
// }
//}
//else
//{
// sqlTran.Rollback();
// result.Success = false;
// result.Message = "有“已申请开票、已开发票、已对帐”的费用,不允许删除,请重新操作!";
// return result;
//}
# endregion
#region 判断是否有下一个阶段汇总的数据
string strError = "" ;
int iNum = 0 ;
string strSql = "select *,STARTBILLINGDATE_MAIN=(select top 1 STARTBILLINGDATE from wms_settlement_list where gid=wms_settlement_detail.DUIGID),ENDBILLINGDATE_MAIN=(select top 1 ENDBILLINGDATE from wms_settlement_list where gid=wms_settlement_detail.DUIGID) from wms_settlement_detail where ISDELETE=0 and DUIGID in (" + gids + ")" ;
DataSet ds = SqlHelper . ExecuteQueryDataset ( sqlTran , CommandType . Text , strSql , null ) ;
if ( ds ! = null )
{
foreach ( DataRow dr in ds . Tables [ 0 ] . Rows )
{
strSql = "select count(*) from wms_settlement_detail where ISDELETE=0 and BLNO='" + dr [ "BLNO" ] . ToString ( ) . Trim ( ) + "' and DUIGID in (select gid from wms_settlement_list where STARTBILLINGDATE>'" + dr [ "ENDBILLINGDATE_MAIN" ] . ToString ( ) . Trim ( ) + "')" ;
object statusObj = SqlHelper . ExecuteScalar ( sqlTran , CommandType . Text , strSql , null ) ;
if ( statusObj ! = null )
{
iNum = int . Parse ( statusObj . ToString ( ) . Trim ( ) ) ;
}
if ( iNum > 0 )
{
strError + = "、" + dr [ "BLNO" ] . ToString ( ) . Trim ( ) ;
}
}
}
if ( strError . Trim ( ) ! = "" )
{
strError = strError . Trim ( ) . Substring ( 1 ) ;
result . Success = false ;
result . Message = "提单号" + strError + "已经有下一个阶段汇总的数据,因此不允许删除此账单!" ;
return result ;
}
# endregion
#region 把【ch_fee】中WMSOUTBSNO与【仓储结算主表wms_settlement_list】GID关联的数据删除
strSql = "delete from ch_fee where WMSOUTBSNO in (" + gids + ")" ;
int existVal = SqlHelper . ExecuteNonQuery ( sqlTran , CommandType . Text , strSql . ToString ( ) , null ) ;
# endregion
#region 把【仓储结算关联表wms_settlement_date】中数据【ISDELETE】设为【1】
strSql = "update wms_settlement_date set ISDELETE=1,DELETEUSER='" + strUserID + "',DELETETIME=getdate() where DUIGID in (" + gids + ")" ;
existVal = SqlHelper . ExecuteNonQuery ( sqlTran , CommandType . Text , strSql . ToString ( ) , null ) ;
# endregion
#region 把【仓储结算明细表wms_settlement_detail】中数据【ISDELETE】设为【1】
strSql = "update wms_settlement_detail set ISDELETE=1,DELETEUSER='" + strUserID + "',DELETETIME=getdate() where DUIGID in (" + gids + ")" ;
existVal = SqlHelper . ExecuteNonQuery ( sqlTran , CommandType . Text , strSql . ToString ( ) , null ) ;
# endregion
#region 把【仓储结算主表wms_settlement_list】中数据【ISDELETE】设为【1】
strSql = "update wms_settlement_list set ISDELETE=1,DELETEUSER='" + strUserID + "',DELETETIME=getdate() where gid in (" + gids + ")" ;
existVal = SqlHelper . ExecuteNonQuery ( sqlTran , CommandType . Text , strSql . ToString ( ) , null ) ;
# endregion
sqlTran . Commit ( ) ;
}
catch ( Exception )
{
sqlTran . Rollback ( ) ;
result . Success = false ;
result . Message = "删除出现错误,请重试或联系系统管理员" ;
return result ;
}
finally
{
SqlHelper . CloseConnection ( ) ;
sqlTran . Dispose ( ) ;
}
}
result . Success = true ;
result . Message = "删除数据成功" ;
return result ;
}
#endregion
/ /
}
}