using System; using System.Data; using System.Collections.Generic; using System.Text; using Microsoft.Practices.EnterpriseLibrary.Data; using DSWeb.Areas.CommMng.Models; using DSWeb.EntityDA; using HcUtility.Comm; using DSWeb.Areas.CommMng.DAL; using DSWeb.Areas.Account.Models.Chfee_jinzhang; namespace DSWeb.Areas.Account.DAL.Chfee_Jinzhang { public class ChJinzhangDAL { #region 支票列表 static public List GetDataList(string strCondition, string userid = "", string usercode = "", string orgcode = "", string sort = null) { var rangstr = GetRangDAListStr("", userid, usercode, orgcode); if (!string.IsNullOrEmpty(rangstr)) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = strCondition + " and " + rangstr; } else { strCondition = rangstr; } } var strSql = new StringBuilder(); strSql.Append(" SELECT [GID],[BLNO],[BILLNO],[STLBILLNO],[CUSTOMERNAME],[JINZHANGCUSTNAME],[JINZHANGMAKETIME]"); strSql.Append(" ,[MAKETIMEUPPER],[YEAR],[MONTH],[DAY],[YEARUPPER],[MONTHUPPER],[DAYUPPER],[PURPOSE],[PASSWORD]"); strSql.Append(" ,[CURRENCY],[BLTYPE],[AMOUNT],[AMOUNTUPPER],[BAIYI],[SHIYI],[QIANWAN] "); strSql.Append(" ,[BAIWAN],[SHIWAN],[WAN],[QIAN],[BAI],[SHI],[YUAN],[JIAO],[FEN],[UNIT],[DELETEOPERATOR]"); strSql.Append(",[DELETECAUSE],[DELETETIME],[PRINTTIME],[PRINTUSER],[BANK],COMPANYNAME,[BANKACCOUNT]"); strSql.Append(",[PAYEEBANK],[PAYEEBANKACCOUNT],[PAYEEADR],[ISAUDIT],[AUDITOPERATOR],[AUDITDATE] ,[CREATEUSER]"); strSql.Append(",[CREATETIME],[MODIFIEDUSER] ,[MODIFIEDTIME],BILLSTATUS,REMARK,COMPANYID,BANKID"); strSql.Append(",(select EnumValueName from tSysEnumValue where LangId=0 and EnumTypeID=97006 and EnumValueID=ch_fee_jinzhang.BILLSTATUS) as BILLSTATUSREF"); strSql.Append(",(select ShowName from [user] where GID=ch_fee_jinzhang.CREATEUSER) as CREATEUSERREF"); strSql.Append(",(select ShowName from [user] where GID=ch_fee_jinzhang.DELETEOPERATOR) as DELOPERATORNAME"); strSql.Append(",CASE ISPRINT WHEN 1 THEN '是' ELSE '' END as ISPRINT"); strSql.Append(",CASE ISDELETE WHEN 1 THEN '是' ELSE '' END as ISDELETE"); strSql.Append(" FROM ch_fee_jinzhang where 1=1 "); 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 JINZHANGMAKETIME DESC"); } return SetData(strSql); } static public ChJinzhang GetData(string condition, string userid = "", string usercode = "", string orgcode = "") { var list = GetDataList(condition,userid,usercode,orgcode,""); if (list.Count > 0) return list[0]; return new ChJinzhang(); } 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()) { ChJinzhang data = new ChJinzhang(); #region Set DB data to Object data.GID = Convert.ToString(reader["GID"]); data.BILLNO = Convert.ToString(reader["BILLNO"]); data.STLBILLNO = Convert.ToString(reader["STLBILLNO"]); data.BLNO = Convert.ToString(reader["BLNO"]); data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]); data.JINZHANGCUSTNAME = Convert.ToString(reader["JINZHANGCUSTNAME"]); data.CURRENCY = Convert.ToString(reader["CURRENCY"]); if (reader["JINZHANGMAKETIME"] != DBNull.Value) data.JINZHANGMAKETIME = Convert.ToDateTime(reader["JINZHANGMAKETIME"]).ToString("yyyy-MM-dd"); // data.CHEQUENO = Convert.ToString(reader["CHEQUENO"]); data.MAKETIMEUPPER = Convert.ToString(reader["MAKETIMEUPPER"]); data.YEAR = Convert.ToString(reader["YEAR"]); data.MONTH = Convert.ToString(reader["MONTH"]); data.DAY = Convert.ToString(reader["DAY"]); data.YEARUPPER = Convert.ToString(reader["YEARUPPER"]); data.MONTHUPPER = Convert.ToString(reader["MONTHUPPER"]); data.DAYUPPER = Convert.ToString(reader["DAYUPPER"]); data.PURPOSE = Convert.ToString(reader["PURPOSE"]); data.PASSWORD = Convert.ToString(reader["PASSWORD"]); data.BLTYPE = Convert.ToString(reader["BLTYPE"]); if (reader["AMOUNT"] != DBNull.Value) data.AMOUNT = Convert.ToDecimal(reader["AMOUNT"]); data.AMOUNTUPPER = Convert.ToString(reader["AMOUNTUPPER"]); data.BAIYI = Convert.ToString(reader["BAIYI"]); data.SHIYI = Convert.ToString(reader["SHIYI"]); data.QIANWAN = Convert.ToString(reader["QIANWAN"]); data.BAIWAN = Convert.ToString(reader["BAIWAN"]); data.SHIWAN = Convert.ToString(reader["SHIWAN"]); data.WAN = Convert.ToString(reader["WAN"]); data.QIAN = Convert.ToString(reader["QIAN"]); data.BAI = Convert.ToString(reader["BAI"]); data.SHI = Convert.ToString(reader["SHI"]); data.YUAN = Convert.ToString(reader["YUAN"]); data.JIAO = Convert.ToString(reader["JIAO"]); data.FEN = Convert.ToString(reader["FEN"]); if (reader["ISDELETE"] != DBNull.Value) data.ISDELETE = Convert.ToString(reader["ISDELETE"]); data.DELETEOPERATOR = Convert.ToString(reader["DELETEOPERATOR"]); data.DELOPERATORNAME = Convert.ToString(reader["DELOPERATORNAME"]); if (reader["ISPRINT"] != DBNull.Value) data.ISPRINT = Convert.ToString(reader["ISPRINT"]); data.BANK = Convert.ToString(reader["BANK"]); data.COMPANYNAME = Convert.ToString(reader["COMPANYNAME"]); data.BANKACCOUNT = Convert.ToString(reader["BANKACCOUNT"]); data.PAYEEBANK = Convert.ToString(reader["PAYEEBANK"]); data.PAYEEBANKACCOUNT = Convert.ToString(reader["PAYEEBANKACCOUNT"]); data.PAYEEADR = Convert.ToString(reader["PAYEEADR"]); if (reader["ISAUDIT"] != DBNull.Value) data.ISAUDIT = Convert.ToBoolean(reader["ISAUDIT"]); data.AUDITOPERATOR = Convert.ToString(reader["AUDITOPERATOR"]); // data.APPLICANTNAME = Convert.ToString(reader["APPLICANTNAME"]); if (reader["AUDITDATE"] != DBNull.Value) data.AUDITDATE = Convert.ToString(reader["AUDITDATE"]); 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"); if (reader["BILLSTATUS"] != DBNull.Value) data.BILLSTATUS = Convert.ToInt16(reader["BILLSTATUS"]); data.BILLSTATUSREF = Convert.ToString(reader["BILLSTATUSREF"]); data.REMARK = Convert.ToString(reader["REMARK"]); data.COMPANYID = Convert.ToString(reader["COMPANYID"]); data.BANKID = Convert.ToString(reader["BANKID"]); #endregion headList.Add(data); } reader.Close(); } return headList; } #endregion public static DBResult UpdatePrint(string billno) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var cmdUpdate = db.GetSqlStringCommand( @"UPDATE ch_fee_cheque set ISPRINT=1 where BILLNO=@BILLNO"); cmdUpdate.Parameters.Clear(); db.AddInParameter(cmdUpdate, "@BILLNO", DbType.String, billno); db.ExecuteNonQuery(cmdUpdate, 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; } public static DBResult UpdateDelete(string billno,string userid) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var cmdUpdate = db.GetSqlStringCommand( @"UPDATE ch_fee_cheque set ISDELETE=1,DELETEOPERATOR=@DELETEOPERATOR,DELETETIME=@DELETETIME where BILLNO=@BILLNO"); cmdUpdate.Parameters.Clear(); db.AddInParameter(cmdUpdate, "@DELETEOPERATOR", DbType.String, userid); db.AddInParameter(cmdUpdate, "@DELETETIME", DbType.DateTime, DateTime.Now); db.AddInParameter(cmdUpdate, "@BILLNO", DbType.String, billno); db.ExecuteNonQuery(cmdUpdate, 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; } #region 提交审核和撤销审核 public static DBResult Lock(String bill) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var cmdupdate = db.GetSqlStringCommand("update ch_fee_cheque set BILLSTATUS=1 where BILLNO=@BILLNO"); cmdupdate.Parameters.Clear(); db.AddInParameter(cmdupdate, "@BILLNO", DbType.String, bill); db.ExecuteNonQuery(cmdupdate, tran); result = new DBResult(); result.Success = true; result.Message = "锁定成功"; tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "锁定错误,请重试或联系系统管理员"; return result; } } return result; } public static DBResult LockList(String bills) { var result = new DBResult(); var billList = bills.Split(','); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { foreach (var bill in billList) { var cmdupdate = db.GetSqlStringCommand("update ch_fee_cheque set BILLSTATUS=1 where BILLNO=@BILLNO"); cmdupdate.Parameters.Clear(); db.AddInParameter(cmdupdate, "@BILLNO", DbType.String, bill); db.ExecuteNonQuery(cmdupdate, tran); result = new DBResult(); result.Success = true; result.Message = "锁定成功"; } tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "锁定错误,请重试或联系系统管理员"; return result; } } return result; } public static DBResult UnLock(String bill) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var cmdupdate = db.GetSqlStringCommand("update ch_fee_cheque set BILLSTATUS=0 where BILLNO=@BILLNO"); cmdupdate.Parameters.Clear(); db.AddInParameter(cmdupdate, "@BILLNO", DbType.String, bill); db.ExecuteNonQuery(cmdupdate, tran); result = new DBResult(); result.Success = true; result.Message = "撤销锁定成功"; tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "撤销锁定错误,请重试或联系系统管理员"; return result; } } return result; } public static DBResult UnLockList(String bills) { var result = new DBResult(); var billList = bills.Split(','); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { foreach (var bill in billList) { var cmdupdate = db.GetSqlStringCommand("update ch_fee_cheque set BILLSTATUS=0 where BILLNO=@BILLNO"); cmdupdate.Parameters.Clear(); db.AddInParameter(cmdupdate, "@BILLNO", DbType.String, bill); db.ExecuteNonQuery(cmdupdate, tran); result = new DBResult(); result.Success = true; result.Message = "撤销锁定成功"; } tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "撤销锁定错误,请重试或联系系统管理员"; return result; } } return result; } #endregion public static string Amount2STR(string amount,int strindex,string curr) { var result = ""; if (strindex <= amount.Length + 3) { if (strindex >= amount.Length + 1) { if (strindex == amount.Length + 1) { result = "¥"; if (curr == "USD") result = "D"; } else if (strindex == amount.Length + 2) { result = ""; if (curr == "USD") result = "S"; } else if (strindex == amount.Length + 3) { result = ""; if (curr == "USD") result = "U"; } } else { result = amount.Substring(amount.Length - strindex, 1); } } else result = ""; return result; } #region 支票列表权限范围 public static string GetRangDAListStr(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]='modJinzhang' 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 = " OPERATOR in (select USERID from user_company where COMPANYID='" + companyid + "') and APPLICANT in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')"; } else if (visiblerange == "1") { str = " COMPANYID='" + companyid + "' "; } else if (visiblerange == "0") { str = " 1=1 "; } return str; } #endregion } }