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 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 SetData(StringBuilder strSql) { var headList = new List(); 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 // } }