using System; using System.Data; using System.Collections.Generic; using System.Text; using DSWeb.MvcShipping.Models.MsInfoClient; using DSWeb.MvcShipping.Models.MsInfoClientContact; using DSWeb.MvcShipping.Models.MsInfoContract; using DSWeb.MvcShipping.Models.MsInfoShipper; using DSWeb.MvcShipping.Models.MsCompanysDept; using Microsoft.Practices.EnterpriseLibrary.Data; using DSWeb.Areas.CommMng.Models; using HcUtility.Comm; using DSWeb.TruckMng.Comm.Cookie; using DSWeb.EntityDA; using DSWeb.Areas.TruckMng.Models; using System.Web; using System.Data.SqlClient; using System.IO; using WebSqlHelper; using DSWeb.Areas.CommMng.DAL; using System.Text.RegularExpressions; using System.Linq; using System.Data.Common; using DSWeb.MvcShipping.DAL.MsSysParamSet; namespace DSWeb.MvcShipping.DAL.MsInfoClient { public class MsInfoClientDAL { #region BillNoSet static public List GetDataList(int start, int limit, string strCondition, string userid, string usercode, string companyid, string sort = 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 * from (SELECT row_number() over ("); var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { sortstring = sortstring.Replace("ACCREMARK", " (SELECT TOP 1 REMARK FROM Info_Client_ACCDATE WHERE LINKGID=info_client.GID order by BGNDATE DESC) "); sortstring = sortstring.Replace("ACCTYPE", " (SELECT TOP 1 ACCTYPE FROM Info_Client_ACCDATE WHERE LINKGID=info_client.GID ORDER BY MODIFIEDTIME DESC) "); sortstring = sortstring.Replace("ACCMONTH", " (SELECT TOP 1 ACCMONTH FROM Info_Client_ACCDATE WHERE LINKGID=info_client.GID ORDER BY MODIFIEDTIME DESC) "); sortstring = sortstring.Replace("ALLOWAMOUNT", " (SELECT TOP 1 ALLOWAMOUNT FROM Info_Client_ACCDATE WHERE LINKGID=info_client.GID ORDER BY MODIFIEDTIME DESC) "); sortstring = sortstring.Replace("BLSTATUSREF", " BLSTATUS "); strSql.Append(" order by " + sortstring); } else { strSql.Append(" order by CODENAME desc"); } strSql.Append(@") as num , "); strSql.Append("[GID],[CODENAME],[SHORTNAME],[DESCRIPTION],[EnFullName],[STATUS],[ADDR],[EMAIL],[WEB]"); strSql.Append(",(SELECT TOP 1 ACCTYPE FROM Info_Client_ACCDATE WHERE ENDDATE>=GETDATE() AND LINKGID=info_client.GID ORDER BY MODIFIEDTIME DESC) ACCTYPE,(SELECT TOP 1 ACCDAYS FROM Info_Client_ACCDATE WHERE LINKGID=info_client.GID ORDER BY MODIFIEDTIME DESC) ACCDAYS"); strSql.Append(",[TEL],[FAX],[CHIEF],[SALE],[OP],[DOC],CUSTSERVICE,[ISCARRIER],[ISBOOKING],[ISYARD],[ISTRUCK],[ISCONTROLLER]"); strSql.Append(",[ISCUSTOM],[ISAGENT],[ISAGENTCN],[ISEXPRESS],[ISAIRLINES],[ISSHIPPER],[ISCONSIGNEE],[ISNOTIFYPARTY]"); strSql.Append(",[ISWAREHOUSE],[COUNTRY],[PROVINCE],[CITY],[CORPID],[BLCONTENT],[ISSTOP],[BillRises1],[BillRises2],INVBANK,INVADDRTEL"); strSql.Append(",[USDBillRises],[RMBBillRises],[USDMaxAmountCredit],[RMBMaxAmountCredit],[MaxAmountCredit],[STLNAME]"); strSql.Append(",[OPNAME],[OPTIME],[REMARK],[USDExchangeRate],[STLDATE],[STLFIRSTHALFDATE],[STLMIDDLEDATE],[STLDATEPJ]"); strSql.Append(",[LEVEL],[LOGINNAME],[LOGINPASSWORD],[QQ],[MSN],[MODIFIEDUSER],[MODIFIEDTIME],[ISWHARF],[ISSHIPPINGAGENT]"); strSql.Append(",[FARCODE],[FAPCODE],[ISINSURE],[ISLEASING],[ISTRADINGAGENCY],[ISOTHER],[OTHERS],[UNITPRICE],[REGISTRATIONNO]"); strSql.Append(",[ORDERNO],[ISENTERP],[TAXNO],[EDICODE],[EDICODE2],[EDICODE3],[ORGANIZATIONCODE],CODENAME + '-' + SHORTNAME AS CodeAndName"); strSql.Append(",PCORPNAME,InspectionNo,[ISSHIPAGENCY],ISSP,FEEFRT,BSSOURCE,BLSTATUS,SALECORPID,TICHENG,FENCHENG,TICHENGCANYU"); strSql.Append(",(select EnumValueName from tSysEnumValue where enumtypeid=99024 and enumvalueid=blstatus) BLSTATUSREF"); strSql.Append(",RCVMode,[CUSTTYPE],[CUSTGUIMO],[CUSTCLASS],[QUALIFICATION],[REGDATE],[CARGOL],[PRODUCT],[EXPREGION],[CARRIERLIST],[CTNTYPE],[CUSTNUM],[NATURE]"); strSql.Append(",(SELECT TOP 1 REMARK FROM Info_Client_ACCDATE WHERE ENDDATE>=GETDATE() AND LINKGID=info_client.GID order by BGNDATE DESC) ACCREMARK"); strSql.Append(",(SELECT TOP 1 ACCMONTH FROM Info_Client_ACCDATE WHERE ENDDATE>=GETDATE() AND LINKGID=info_client.GID ORDER BY MODIFIEDTIME DESC) ACCMONTH"); strSql.Append(",(SELECT TOP 1 ALLOWAMOUNT FROM Info_Client_ACCDATE WHERE ENDDATE>=GETDATE() AND LINKGID=info_client.GID ORDER BY MODIFIEDTIME DESC) ALLOWAMOUNT"); strSql.Append(",case WHEN BLSTATUS=0 THEN '合作客户' else '潜在客户' end CUSTPROP,SALEDEPT,OFFICEADDR,ISNOTPR,PSCUST,ISHPS,ISFANGDAN,FIRSTOP,AFTEROP"); strSql.Append(",(select showname from [user] where gid=info_client.MODIFIEDUSER) MODIFIEDUSERREF "); strSql.Append(" from info_client where 1=1 "); var InfoClintBlstatus = MsSysParamSetDAL.GetData("PARAMNAME='InfoClintBlstatus'"); if (InfoClintBlstatus.PARAMVALUE != "") { if (InfoClintBlstatus.PARAMVALUE == "1") { var modCrmClientVisible = MsBaseInfoDAL.MsBaseInfoDAL.GetUserModuleEnable("modCrmClientVisible", userid); if (modCrmClientVisible) { } else { strSql.Append(" and (OPNAME='" + usercode + "' or (ISNULL(BLSTATUS,1)=0)) "); } } } //20210409 裕龙仓储项目需求 //往来单位启用权限范围 //user所能看到的往来单位列表 也受 info_client_range当中针对userid的权限限制 //未作指定的单位全都能看 //指定过userid的单位 只有指定的人才能看到 //高级管理员任何时候不受限制 var InfoClintRange = MsSysParamSetDAL.GetData("PARAMNAME='ISENABLECUSTRANGE'"); if (InfoClintRange.PARAMVALUE != "") { if (InfoClintRange.PARAMVALUE == "1" && userid!= "1BEC90E1-9780-472F-90C2-0C6390C044A4") { strSql.Append("and (not exists(select 1 from info_client_range where SHORTNAME=info_Client.SHORTNAME )"); strSql.Append(" or exists(select 1 from info_client_range where SHORTNAME=info_Client.SHORTNAME and userid='" + userid + "'))"); } } if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } strSql.Append(@")as t "); strSql.Append(string.Format("where t.num>{0} and t.num<={1} order by t.num ", start, start + limit)); // return SetData(strSql, userid); } static public List GetDataListAll(string strCondition, string userid, string usercode, string companyid, string sort = 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],[CODENAME],[SHORTNAME],[DESCRIPTION],[EnFullName],[STATUS],[ADDR],[EMAIL],[WEB],(SELECT TOP 1 ACCTYPE FROM Info_Client_ACCDATE WHERE LINKGID=info_client.GID ORDER BY MODIFIEDTIME DESC) ACCTYPE,(SELECT TOP 1 ACCDAYS FROM Info_Client_ACCDATE WHERE LINKGID=info_client.GID ORDER BY MODIFIEDTIME DESC) ACCDAYS"); strSql.Append(",[TEL],[FAX],[CHIEF],[SALE],[OP],[DOC],CUSTSERVICE,[ISCARRIER],[ISBOOKING],[ISYARD],[ISTRUCK],[ISCONTROLLER]"); strSql.Append(",[ISCUSTOM],[ISAGENT],[ISAGENTCN],[ISEXPRESS],[ISAIRLINES],[ISSHIPPER],[ISCONSIGNEE],[ISNOTIFYPARTY]"); strSql.Append(",[ISWAREHOUSE],[COUNTRY],[PROVINCE],[CITY],[CORPID],[BLCONTENT],[ISSTOP],[BillRises1],[BillRises2],INVBANK,INVADDRTEL"); strSql.Append(",[USDBillRises],[RMBBillRises],[USDMaxAmountCredit],[RMBMaxAmountCredit],[MaxAmountCredit],[STLNAME]"); strSql.Append(",[OPNAME],[OPTIME],[REMARK],[USDExchangeRate],[STLDATE],[STLFIRSTHALFDATE],[STLMIDDLEDATE],[STLDATEPJ]"); strSql.Append(",[LEVEL],[LOGINNAME],[LOGINPASSWORD],[QQ],[MSN],[MODIFIEDUSER],[MODIFIEDTIME],[ISWHARF],[ISSHIPPINGAGENT]"); strSql.Append(",[FARCODE],[FAPCODE],[ISINSURE],[ISLEASING],[ISTRADINGAGENCY],[ISOTHER],[OTHERS],[UNITPRICE],[REGISTRATIONNO]"); strSql.Append(",[ORDERNO],[ISENTERP],[TAXNO],[EDICODE],[EDICODE2],[EDICODE3],[ORGANIZATIONCODE],CODENAME + '-' + SHORTNAME AS CodeAndName"); strSql.Append(",PCORPNAME,InspectionNo,[ISSHIPAGENCY],ISSP,FEEFRT,BSSOURCE,BLSTATUS,SALECORPID,TICHENG,FENCHENG,TICHENGCANYU"); strSql.Append(",(select EnumValueName from tSysEnumValue where enumtypeid=99024 and enumvalueid=blstatus) BLSTATUSREF"); strSql.Append(",RCVMode,[CUSTTYPE],[CUSTGUIMO],[CUSTCLASS],[QUALIFICATION],[REGDATE],[CARGOL],[PRODUCT],[EXPREGION],[CARRIERLIST],[CTNTYPE],[CUSTNUM],[NATURE]"); strSql.Append(",(SELECT TOP 1 REMARK FROM Info_Client_ACCDATE WHERE LINKGID=info_client.GID order by BGNDATE DESC) ACCREMARK"); strSql.Append(",(SELECT TOP 1 ACCMONTH FROM Info_Client_ACCDATE WHERE LINKGID=info_client.GID ORDER BY MODIFIEDTIME DESC) ACCMONTH"); strSql.Append(",(SELECT TOP 1 ALLOWAMOUNT FROM Info_Client_ACCDATE WHERE LINKGID=info_client.GID ORDER BY MODIFIEDTIME DESC) ALLOWAMOUNT"); strSql.Append(",case WHEN BLSTATUS=0 THEN '合作客户' else '潜在客户' end CUSTPROP,SALEDEPT,OFFICEADDR,ISNOTPR,PSCUST,ISHPS,ISFANGDAN,FIRSTOP,AFTEROP"); strSql.Append(",(select showname from [user] where gid=info_client.MODIFIEDUSER) MODIFIEDUSERREF "); strSql.Append(" from info_client 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 CODENAME desc"); } return SetData(strSql); } public static int getTotalCount(string strCondition, string userid, string usercode, string companyid) { var rangstr = GetRangDAStr("index", userid, usercode, companyid); if (!string.IsNullOrEmpty(rangstr)) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = strCondition + " and " + rangstr; } else { strCondition = rangstr; } } StringBuilder strSql = new StringBuilder(); strSql.Append("select count(*) "); strSql.Append(" from info_client where 1=1 "); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } int cnt = 0; Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { cnt = Convert.ToInt32(reader[0]); } } return cnt; } static public string GetDataListStr(string strCondition, string userid, string usercode, string companyid, string sort = 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],[CODENAME],[SHORTNAME],[DESCRIPTION],[EnFullName],[STATUS],[ADDR],[EMAIL],[WEB],(SELECT TOP 1 ACCTYPE FROM Info_Client_ACCDATE WHERE LINKGID=info_client.GID ORDER BY MODIFIEDTIME DESC) ACCTYPE,(SELECT TOP 1 ACCDAYS FROM Info_Client_ACCDATE WHERE LINKGID=info_client.GID ORDER BY MODIFIEDTIME DESC) ACCDAYS"); strSql.Append(",[TEL],[FAX],[CHIEF],[SALE],[OP],[DOC],CUSTSERVICE,[ISCARRIER],[ISBOOKING],[ISYARD],[ISTRUCK],[ISCONTROLLER]"); strSql.Append(",[ISCUSTOM],[ISAGENT],[ISAGENTCN],[ISEXPRESS],[ISAIRLINES],[ISSHIPPER],[ISCONSIGNEE],[ISNOTIFYPARTY]"); strSql.Append(",[ISWAREHOUSE],[COUNTRY],[PROVINCE],[CITY],[CORPID],[BLCONTENT],[ISSTOP],[BillRises1],[BillRises2],INVBANK,INVADDRTEL"); strSql.Append(",[USDBillRises],[RMBBillRises],[USDMaxAmountCredit],[RMBMaxAmountCredit],[MaxAmountCredit],[STLNAME]"); strSql.Append(",[OPNAME],[OPTIME],[REMARK],[USDExchangeRate],[STLDATE],[STLFIRSTHALFDATE],[STLMIDDLEDATE],[STLDATEPJ]"); strSql.Append(",[LEVEL],[LOGINNAME],[LOGINPASSWORD],[QQ],[MSN],[MODIFIEDUSER],[MODIFIEDTIME],[ISWHARF],[ISSHIPPINGAGENT]"); strSql.Append(",[FARCODE],[FAPCODE],[ISINSURE],[ISLEASING],[ISTRADINGAGENCY],[ISOTHER],[OTHERS],[UNITPRICE],[REGISTRATIONNO]"); strSql.Append(",[ORDERNO],[ISENTERP],[TAXNO],[EDICODE],[EDICODE2],[EDICODE3],[ORGANIZATIONCODE],CODENAME + '-' + SHORTNAME AS CodeAndName"); strSql.Append(",PCORPNAME,InspectionNo,[ISSHIPAGENCY],ISSP,FEEFRT,BSSOURCE,BLSTATUS,SALECORPID,TICHENG,FENCHENG,TICHENGCANYU"); strSql.Append(",(select EnumValueName from tSysEnumValue where enumtypeid=99024 and enumvalueid=blstatus) BLSTATUSREF"); strSql.Append(",RCVMode,[CUSTTYPE],[CUSTGUIMO],[CUSTCLASS],[QUALIFICATION],[REGDATE],[CARGOL],[PRODUCT],[EXPREGION],[CARRIERLIST],[CTNTYPE],[CUSTNUM],[NATURE]"); strSql.Append(",(SELECT TOP 1 REMARK FROM Info_Client_ACCDATE WHERE LINKGID=info_client.GID order by BGNDATE DESC) ACCREMARK"); strSql.Append(",(SELECT TOP 1 ACCMONTH FROM Info_Client_ACCDATE WHERE LINKGID=info_client.GID ORDER BY MODIFIEDTIME DESC) ACCMONTH"); strSql.Append(",(SELECT TOP 1 ALLOWAMOUNT FROM Info_Client_ACCDATE WHERE LINKGID=info_client.GID ORDER BY MODIFIEDTIME DESC) ALLOWAMOUNT"); strSql.Append(",case WHEN BLSTATUS=0 THEN '合作客户' else '潜在客户' end CUSTPROP,SALEDEPT,OFFICEADDR,ISNOTPR,PSCUST,ISHPS,ISFANGDAN,FIRSTOP,AFTEROP"); strSql.Append(",(select showname from [user] where gid=info_client.MODIFIEDUSER) MODIFIEDUSERREF "); strSql.Append(" from info_client 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 CODENAME "); } return strSql.ToString(); } static public MsClient GetData(string condition) { var strSql = new StringBuilder(); strSql.Append("SELECT [GID],[CODENAME],[SHORTNAME],[DESCRIPTION],[EnFullName],[STATUS],[ADDR],[EMAIL],[WEB]"); strSql.Append(",[TEL],[FAX],[CHIEF],[SALE],[OP],[DOC],CUSTSERVICE,[ISCARRIER],[ISBOOKING],[ISYARD],[ISTRUCK],[ISCONTROLLER]"); strSql.Append(",[ISCUSTOM],[ISAGENT],[ISAGENTCN],[ISEXPRESS],[ISAIRLINES],[ISSHIPPER],[ISCONSIGNEE],[ISNOTIFYPARTY]"); strSql.Append(",[ISWAREHOUSE],[COUNTRY],[PROVINCE],[CITY],[CORPID],[BLCONTENT],[ISSTOP],[BillRises1],[BillRises2],INVBANK,INVADDRTEL"); strSql.Append(",[USDBillRises],[RMBBillRises],[USDMaxAmountCredit],[RMBMaxAmountCredit],[MaxAmountCredit],[STLNAME]"); strSql.Append(",[OPNAME],[OPTIME],[REMARK],[USDExchangeRate],[STLDATE],[STLFIRSTHALFDATE],[STLMIDDLEDATE],[STLDATEPJ]"); strSql.Append(",[LEVEL],[LOGINNAME],[LOGINPASSWORD],[QQ],[MSN],[MODIFIEDUSER],[MODIFIEDTIME],[ISWHARF],[ISSHIPPINGAGENT]"); strSql.Append(",[FARCODE],[FAPCODE],[ISINSURE],[ISLEASING],[ISTRADINGAGENCY],[ISOTHER],[OTHERS],[UNITPRICE],[REGISTRATIONNO]"); strSql.Append(",[ORDERNO],[ISENTERP],[TAXNO],[EDICODE],[EDICODE2],[EDICODE3],[ORGANIZATIONCODE],CODENAME + '-' + SHORTNAME AS CodeAndName"); strSql.Append(",PCORPNAME,InspectionNo,ISSHIPAGENCY,ISSP,FEEFRT,BSSOURCE,BLSTATUS,SALECORPID,TICHENG,FENCHENG,TICHENGCANYU"); strSql.Append(",(select EnumValueName from tSysEnumValue where enumtypeid=99024 and enumvalueid=blstatus) BLSTATUSREF"); strSql.Append(",RCVMode,'' ACCREMARK,'' ACCMONTH,'' ALLOWAMOUNT"); strSql.Append(",[CUSTTYPE],[CUSTGUIMO],[CUSTCLASS],[QUALIFICATION],[REGDATE],[CARGOL],[PRODUCT],[EXPREGION],[CARRIERLIST],[CTNTYPE],[CUSTNUM],[NATURE]"); strSql.Append(",case WHEN BLSTATUS=0 THEN '合作客户' else '潜在客户' end CUSTPROP,SALEDEPT,OFFICEADDR,ISNOTPR,PSCUST,ISHPS,ISFANGDAN,FIRSTOP,AFTEROP"); strSql.Append(",(select showname from [user] where gid=info_client.MODIFIEDUSER) MODIFIEDUSERREF "); strSql.Append(" from info_client where 1=1 "); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" and " + condition); } var list = SetData(strSql); if (list.Count > 0) return list[0]; return new MsClient(); } private static List SetData(StringBuilder strSql,string USERID="") { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); var contractrangstr = ""; var ContractList = GetContractDataList("", null, USERID); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { MsClient data = new MsClient(); #region Set DB data to Object reader.GetSchemaTable().DefaultView.RowFilter = "ColumnName= 'ACCTYPE'"; if (reader.GetSchemaTable().DefaultView.Count > 0) { data.ACCTYPE = Convert.ToString(reader["ACCTYPE"]); data.ACCDAYS = Convert.ToString(reader["ACCDAYS"]); data.ACCMONTH = Convert.ToString(reader["ACCMONTH"]); if (data.ACCTYPE == "") data.ACCTYPE = "现结买单"; data.ALLOWAMOUNT = Convert.ToString(reader["ALLOWAMOUNT"]); } data.GID = Convert.ToString(reader["GID"]); data.PCORPNAME = Convert.ToString(reader["PCORPNAME"]); data.CODENAME = Convert.ToString(reader["CODENAME"]); data.SHORTNAME = Convert.ToString(reader["SHORTNAME"]); data.CodeAndName = Convert.ToString(reader["CodeAndName"]); data.DESCRIPTION = Convert.ToString(reader["DESCRIPTION"]); data.ENFULLNAME = Convert.ToString(reader["ENFULLNAME"]); data.STATUS = Convert.ToInt16(reader["STATUS"]); data.ADDR = Convert.ToString(reader["ADDR"]); data.EMAIL = Convert.ToString(reader["EMAIL"]); data.WEB = Convert.ToString(reader["WEB"]); data.TEL = Convert.ToString(reader["TEL"]); data.FAX = Convert.ToString(reader["FAX"]); data.CHIEF = Convert.ToString(reader["CHIEF"]); data.OP = Convert.ToString(reader["OP"]); data.DOC = Convert.ToString(reader["DOC"]); data.SALE = Convert.ToString(reader["SALE"]); data.CUSTSERVICE = Convert.ToString(reader["CUSTSERVICE"]); data.OPNAME = Convert.ToString(reader["OPNAME"]); data.OPTIME = Convert.ToString(reader["OPTIME"]); data.CORPID = Convert.ToString(reader["CORPID"]); data.SALECORPID = Convert.ToString(reader["SALECORPID"]); data.OTHERS = Convert.ToString(reader["OTHERS"]); if (reader["STATUS"] != DBNull.Value) data.STATUS = Convert.ToInt16(reader["STATUS"]);//状态1 data.COUNTRY = Convert.ToString(reader["COUNTRY"]); data.PROVINCE = Convert.ToString(reader["PROVINCE"]); data.CITY = Convert.ToString(reader["CITY"]); data.BLCONTENT = Convert.ToString(reader["BLCONTENT"]); data.BILLRISES1 = Convert.ToString(reader["BILLRISES1"]); data.BILLRISES2 = Convert.ToString(reader["BILLRISES2"]); data.INVBANK = Convert.ToString(reader["INVBANK"]); data.INVADDRTEL = Convert.ToString(reader["INVADDRTEL"]); data.RMBBILLRISES = Convert.ToString(reader["RMBBILLRISES"]); data.USDBILLRISES = Convert.ToString(reader["USDBILLRISES"]); if (reader["USDMAXAMOUNTCREDIT"] != DBNull.Value) data.USDMAXAMOUNTCREDIT = Convert.ToDecimal(reader["USDMAXAMOUNTCREDIT"]);//状态1 if (reader["RMBMAXAMOUNTCREDIT"] != DBNull.Value) data.RMBMAXAMOUNTCREDIT = Convert.ToDecimal(reader["RMBMAXAMOUNTCREDIT"]);//状态1 if (reader["MAXAMOUNTCREDIT"] != DBNull.Value) data.MAXAMOUNTCREDIT = Convert.ToDecimal(reader["MAXAMOUNTCREDIT"]);//状态1 data.STLNAME = Convert.ToString(reader["STLNAME"]); data.REMARK = Convert.ToString(reader["REMARK"]); data.ACCREMARK = Convert.ToString(reader["ACCREMARK"]); data.STLDATE = Convert.ToString(reader["STLDATE"]); if (reader["USDEXCHANGERATE"] != DBNull.Value) data.USDEXCHANGERATE = Convert.ToDecimal(reader["USDEXCHANGERATE"]);//状态1 data.STLFIRSTHALFDATE = Convert.ToString(reader["STLFIRSTHALFDATE"]); data.STLMIDDLEDATE = Convert.ToString(reader["STLMIDDLEDATE"]); data.STLDATEPJ = Convert.ToString(reader["STLDATEPJ"]); data.LEVEL = Convert.ToString(reader["LEVEL"]); data.LOGINNAME = Convert.ToString(reader["LOGINNAME"]); data.LOGINPASSWORD = Convert.ToString(reader["LOGINPASSWORD"]); data.QQ = Convert.ToString(reader["QQ"]); data.MSN = Convert.ToString(reader["MSN"]); data.FARCODE = Convert.ToString(reader["FARCODE"]); data.FAPCODE = Convert.ToString(reader["FAPCODE"]); data.UNITPRICE = Convert.ToString(reader["UNITPRICE"]); data.REGISTRATIONNO = Convert.ToString(reader["REGISTRATIONNO"]); data.TAXNO = Convert.ToString(reader["TAXNO"]); data.InspectionNo = Convert.ToString(reader["InspectionNo"]); data.EDICODE = Convert.ToString(reader["EDICODE"]); data.EDICODE2 = Convert.ToString(reader["EDICODE2"]); data.EDICODE3 = Convert.ToString(reader["EDICODE3"]); data.ORGANIZATIONCODE = Convert.ToString(reader["ORGANIZATIONCODE"]); data.ORDERNO = Convert.ToString(reader["ORDERNO"]); if (reader["ISCARRIER"] != DBNull.Value) data.ISCARRIER = Convert.ToBoolean(reader["ISCARRIER"]);//状态 if (reader["ISBOOKING"] != DBNull.Value) data.ISBOOKING = Convert.ToBoolean(reader["ISBOOKING"]);//状态 if (reader["ISYARD"] != DBNull.Value) data.ISYARD = Convert.ToBoolean(reader["ISYARD"]);//状态 if (reader["ISTRUCK"] != DBNull.Value) data.ISTRUCK = Convert.ToBoolean(reader["ISTRUCK"]);//状态 if (reader["ISCONTROLLER"] != DBNull.Value) data.ISCONTROLLER = Convert.ToBoolean(reader["ISCONTROLLER"]);//状态 if (reader["ISCUSTOM"] != DBNull.Value) data.ISCUSTOM = Convert.ToBoolean(reader["ISCUSTOM"]);//状态 if (reader["ISAGENT"] != DBNull.Value) data.ISAGENT = Convert.ToBoolean(reader["ISAGENT"]);//状态 if (reader["ISAGENTCN"] != DBNull.Value) data.ISAGENTCN = Convert.ToBoolean(reader["ISAGENTCN"]);//状态 if (reader["ISEXPRESS"] != DBNull.Value) data.ISEXPRESS = Convert.ToBoolean(reader["ISEXPRESS"]);//状态 if (reader["ISAIRLINES"] != DBNull.Value) data.ISAIRLINES = Convert.ToBoolean(reader["ISAIRLINES"]);//状态 if (reader["ISSHIPPER"] != DBNull.Value) data.ISSHIPPER = Convert.ToBoolean(reader["ISSHIPPER"]);//状态 if (reader["ISCONSIGNEE"] != DBNull.Value) data.ISCONSIGNEE = Convert.ToBoolean(reader["ISCONSIGNEE"]);//状态 if (reader["ISNOTIFYPARTY"] != DBNull.Value) data.ISNOTIFYPARTY = Convert.ToBoolean(reader["ISNOTIFYPARTY"]);//状态 if (reader["ISWAREHOUSE"] != DBNull.Value) data.ISWAREHOUSE = Convert.ToBoolean(reader["ISWAREHOUSE"]);//状态 if (reader["ISINSURE"] != DBNull.Value) data.ISINSURE = Convert.ToBoolean(reader["ISINSURE"]);//状态 if (reader["ISLEASING"] != DBNull.Value) data.ISLEASING = Convert.ToBoolean(reader["ISLEASING"]);//状态 if (reader["ISTRADINGAGENCY"] != DBNull.Value) data.ISTRADINGAGENCY = Convert.ToBoolean(reader["ISTRADINGAGENCY"]);//状 if (reader["ISOTHER"] != DBNull.Value) data.ISOTHER = Convert.ToBoolean(reader["ISOTHER"]);//状 if (reader["ISENTERP"] != DBNull.Value) data.ISENTERP = Convert.ToBoolean(reader["ISENTERP"]);//状 if (reader["ISSTOP"] != DBNull.Value) data.ISSTOP = Convert.ToBoolean(reader["ISSTOP"]);//状态1 if (reader["ISSHIPAGENCY"] != DBNull.Value) data.ISSHIPAGENCY = Convert.ToBoolean(reader["ISSHIPAGENCY"]);//状 data.BLSTATUSREF = Convert.ToString(reader["BLSTATUSREF"]); if (reader["ISSP"] != DBNull.Value) data.ISSP = Convert.ToBoolean(reader["ISSP"]);//状 data.FEEFRT = Convert.ToString(reader["FEEFRT"]); data.RCVMode = Convert.ToString(reader["RCVMode"]); data.BSSOURCE = Convert.ToString(reader["BSSOURCE"]); if (reader["TICHENG"] != DBNull.Value) data.TICHENG = Convert.ToString(reader["TICHENG"]);//提成 if (reader["FENCHENG"] != DBNull.Value) data.FENCHENG = Convert.ToString(reader["FENCHENG"]);//分成 data.TICHENGCANYU = Convert.ToString(reader["TICHENGCANYU"]);//分成 data.CUSTTYPE = Convert.ToString(reader["CUSTTYPE"]);//分成 data.CUSTGUIMO = Convert.ToString(reader["CUSTGUIMO"]);//分成 data.CUSTCLASS = Convert.ToString(reader["CUSTCLASS"]);//分成 data.QUALIFICATION = Convert.ToString(reader["QUALIFICATION"]);//分成 data.REGDATE = Convert.ToString(reader["REGDATE"]);//分成 data.CARGOL = Convert.ToString(reader["CARGOL"]);//分成 data.PRODUCT = Convert.ToString(reader["PRODUCT"]);//分成 data.EXPREGION = Convert.ToString(reader["EXPREGION"]);//分成 data.CARRIERLIST = Convert.ToString(reader["CARRIERLIST"]);//分成 data.CTNTYPE = Convert.ToString(reader["CTNTYPE"]);//分成 data.CUSTNUM = Convert.ToString(reader["CUSTNUM"]);//分成 data.NATURE = Convert.ToString(reader["NATURE"]);//分成 data.CUSTPROP = Convert.ToString(reader["CUSTPROP"]);//客户属性 data.MODIFIEDUSERREF = Convert.ToString(reader["MODIFIEDUSERREF"]); if (reader["MODIFIEDTIME"] != DBNull.Value) data.MODIFIEDTIME = Convert.ToDateTime(reader["MODIFIEDTIME"]).ToString("yyyy-MM-dd HH:mm:ss"); if (reader["ISNOTPR"] != DBNull.Value) data.ISNOTPR = Convert.ToBoolean(reader["ISNOTPR"]);//不核算利润 data.SALEDEPT = Convert.ToString(reader["SALEDEPT"]);//核算部门 data.OFFICEADDR = Convert.ToString(reader["OFFICEADDR"]);//办公地点 data.PSCUST = Convert.ToString(reader["PSCUST"]);//办公地点 if (reader["ISHPS"] != DBNull.Value) data.ISHPS = Convert.ToBoolean(reader["ISHPS"]); if (reader["ISFANGDAN"] != DBNull.Value) data.ISFANGDAN = Convert.ToBoolean(reader["ISFANGDAN"]); data.FIRSTOP = Convert.ToString(reader["FIRSTOP"]); data.AFTEROP = Convert.ToString(reader["AFTEROP"]); #endregion data.SetContractStatus(ContractList); headList.Add(data); } reader.Close(); } return headList; } #endregion #region 联系人 static public List GetContactDataList(string strCondition,string sort = null,string USERID="1") { var strSql = new StringBuilder(); strSql.Append("SELECT [GID],[LINKID],[CODENAME],[SHOWNAME],[ADDR],[EMAIL],[TEL],QQ,[FAX],[MOBILE]"); strSql.Append(",[ISFINANCIALSTAFF],[ISOPERATOR],[ISSALEMAN],[ISOTHER],[ISINSURANCE],[CREATEUSER],[CREATETIME]"); strSql.Append(" ,[ISSTOP],[ISDELETED],[REMARK],[ANNIVERSARY2],[AREMARK2],[BIRTHDAY],[ANNIVERSARY1] "); strSql.Append(" ,[AREMARK1],[ISBIRTHDAY],[ISANNIVERSARY1],[ISANNIVERSARY2],[BIRTHDAYDAY],[ANNIVERSARYDAY1]"); strSql.Append(" ,[ANNIVERSARYDAY2],[JOB],[SEX],[AGE],[MARRY],[CHILDREN],[HOBBIES],ISDUI"); strSql.Append(",(select filename from info_files where pid=info_client_contact.gid) PICURL,LOGINNAME,LOGINPASSWORD"); strSql.Append(" from info_client_contact where 1=1 "); var rangstr = ""; if (USERID == "1") rangstr = "1=2"; else { rangstr=BasicDataRefDAL.GetVisableRange("modInfoClinet_info", USERID, "", "CREATEUSER"); } if (!string.IsNullOrEmpty(rangstr)) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = strCondition + " and " + rangstr; } else { strCondition = rangstr; } } 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 CODENAME"); } return SetContactData(strSql); } static public MsClientContact GetContactData(string condition,string userid) { MsClientContact data = null; var list = GetContactDataList(condition,"", userid); if (list.Count > 0) data = list[0]; if (data == null) { data = new MsClientContact(); } return data; } private static List SetContactData(StringBuilder strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { MsClientContact data = new MsClientContact(); #region Set DB data to Object data.GID = Convert.ToString(reader["GID"]); data.LINKID = Convert.ToString(reader["LINKID"]); data.CODENAME = Convert.ToString(reader["CODENAME"]); data.SHOWNAME = Convert.ToString(reader["SHOWNAME"]); data.ADDR = Convert.ToString(reader["ADDR"]); data.EMAIL = Convert.ToString(reader["EMAIL"]); data.MOBILE = Convert.ToString(reader["MOBILE"]); data.TEL = Convert.ToString(reader["TEL"]); data.QQ = Convert.ToString(reader["QQ"]); data.FAX = Convert.ToString(reader["FAX"]); data.JOB = Convert.ToString(reader["JOB"]); data.SEX = Convert.ToString(reader["SEX"]); data.AGE = Convert.ToString(reader["AGE"]); data.MARRY = Convert.ToString(reader["MARRY"]); data.CHILDREN = Convert.ToString(reader["CHILDREN"]); data.HOBBIES = Convert.ToString(reader["HOBBIES"]); if (reader["ISFINANCIALSTAFF"] != DBNull.Value) data.ISFINANCIALSTAFF = Convert.ToBoolean(reader["ISFINANCIALSTAFF"]);//状态1 if (reader["ISOPERATOR"] != DBNull.Value) data.ISOPERATOR = Convert.ToBoolean(reader["ISOPERATOR"]);//状态1 if (reader["ISSALEMAN"] != DBNull.Value) data.ISSALEMAN = Convert.ToBoolean(reader["ISSALEMAN"]);//状态1 if (reader["ISSTOP"] != DBNull.Value) data.ISSTOP = Convert.ToBoolean(reader["ISSTOP"]);//状态1 if (reader["ISINSURANCE"] != DBNull.Value) data.ISINSURANCE = Convert.ToBoolean(reader["ISINSURANCE"]);//状态1 if (reader["ISDUI"] != DBNull.Value) data.ISDUI = Convert.ToBoolean(reader["ISDUI"]);//状态1 data.REMARK = Convert.ToString(reader["REMARK"]); data.BIRTHDAY = Convert.ToString(reader["BIRTHDAY"]); data.LOGINNAME = Convert.ToString(reader["LOGINNAME"]); data.LOGINPASSWORD = Convert.ToString(reader["LOGINPASSWORD"]); if (reader["ISBIRTHDAY"] != DBNull.Value) data.ISBIRTHDAY = Convert.ToBoolean(reader["ISBIRTHDAY"]);//状态1 if (reader["BIRTHDAYDAY"] != DBNull.Value) data.BIRTHDAYDAY = Convert.ToInt16(reader["BIRTHDAYDAY"]);//状态1 data.ANNIVERSARY1 = Convert.ToString(reader["ANNIVERSARY1"]); if (reader["ISANNIVERSARY1"] != DBNull.Value) data.ISANNIVERSARY1 = Convert.ToBoolean(reader["ISANNIVERSARY1"]);//状态1 if (reader["ANNIVERSARYDAY1"] != DBNull.Value) data.ANNIVERSARYDAY1 = Convert.ToInt16(reader["ANNIVERSARYDAY1"]);//状态1 data.ANNIVERSARY2 = Convert.ToString(reader["ANNIVERSARY2"]); if (reader["ISANNIVERSARY2"] != DBNull.Value) data.ISANNIVERSARY2 = Convert.ToBoolean(reader["ISANNIVERSARY2"]);//状态1 if (reader["ANNIVERSARYDAY2"] != DBNull.Value) data.ANNIVERSARYDAY2 = Convert.ToInt16(reader["ANNIVERSARYDAY2"]);//状态1 data.PICURL = Convert.ToString(reader["PICURL"]); data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]); #endregion headList.Add(data); } reader.Close(); } return headList; } public static DBResult SaveContactDetail(string linkid,List bodyList, 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 cmdInsert = db.GetSqlStringCommand( @"insert into info_client_contact ([GID],[LINKID],[CODENAME],[SHOWNAME],[ADDR],[EMAIL],[TEL],QQ,[FAX],[MOBILE] ,[ISFINANCIALSTAFF],[ISOPERATOR],[ISSALEMAN],[ISOTHER],[CREATEUSER],[CREATETIME],[ISSTOP],[REMARK],[ANNIVERSARY2], [AREMARK2],[BIRTHDAY],[ANNIVERSARY1],[AREMARK1],[ISBIRTHDAY],[ISANNIVERSARY1],[ISANNIVERSARY2],[BIRTHDAYDAY],[ANNIVERSARYDAY1] ,[ANNIVERSARYDAY2],[JOB],[SEX],[AGE],[MARRY],[CHILDREN],[HOBBIES],MODIFIEDUSER,MODIFIEDTIME) values (@GID,@LINKID,@CODENAME,@SHOWNAME,@ADDR,@EMAIL,@TEL,@QQ,@FAX,@MOBILE ,@ISFINANCIALSTAFF,@ISOPERATOR,@ISSALEMAN,@ISOTHER,@CREATEUSER,@CREATETIME,@ISSTOP,@REMARK,@ANNIVERSARY2, @AREMARK2,@BIRTHDAY,@ANNIVERSARY1,@AREMARK1,@ISBIRTHDAY,@ISANNIVERSARY1,@ISANNIVERSARY2,@BIRTHDAYDAY,@ANNIVERSARYDAY1 ,@ANNIVERSARYDAY2,@JOB,@SEX,@AGE,@MARRY,@CHILDREN,@HOBBIES,@MODIFIEDUSER,@MODIFIEDTIME) "); var cmdUpdate = db.GetSqlStringCommand( @"update info_client_contact set LINKID=@LINKID,CODENAME=@CODENAME,SHOWNAME=@SHOWNAME,ADDR=@ADDR,EMAIL=@EMAIL,TEL=@TEL,QQ=@QQ,FAX=@FAX,MOBILE=@MOBILE ,ISFINANCIALSTAFF=@ISFINANCIALSTAFF,ISOPERATOR=@ISOPERATOR,ISSALEMAN=@ISSALEMAN,ISOTHER=@ISOTHER,CREATEUSER=@CREATEUSER,CREATETIME=@CREATETIME ,ISSTOP@ISSTOP,REMARK=@REMARK,ANNIVERSARY2=@ANNIVERSARY2,AREMARK2=@AREMARK2,BIRTHDAY=@BIRTHDAY,ANNIVERSARY1=@ANNIVERSARY1 ,AREMARK1=@AREMARK1,ISBIRTHDAY=@ISBIRTHDAY,ISANNIVERSARY1=@ISANNIVERSARY1,ISANNIVERSARY2=@ISANNIVERSARY2,BIRTHDAYDAY=@BIRTHDAYDAY, ANNIVERSARYDAY1=@ANNIVERSARYDAY1,ANNIVERSARYDAY2=@ANNIVERSARYDAY2,JOB=@JOB,SEX=@SEX,AGE=@AGE,MARRY=@MARRY,CHILDREN=@CHILDREN,HOBBIES=@HOBBIES ,MODIFIEDUSER=@MODIFIEDUSER,MODIFIEDTIME=@MODIFIEDTIME where GID=@GID "); if (bodyList != null) { foreach (var enumValue in bodyList) { if (enumValue.GID == "*" || enumValue.GID == "") { cmdInsert.Parameters.Clear(); db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString()); db.AddInParameter(cmdInsert, "@LINKID", DbType.String, linkid); db.AddInParameter(cmdInsert, "@CODENAME", DbType.String, enumValue.CODENAME); db.AddInParameter(cmdInsert, "@SHOWNAME", DbType.String, enumValue.SHOWNAME); db.AddInParameter(cmdInsert, "@ADDR", DbType.String, enumValue.ADDR); db.AddInParameter(cmdInsert, "@EMAIL", DbType.String, enumValue.EMAIL); db.AddInParameter(cmdInsert, "@TEL", DbType.String, enumValue.TEL); db.AddInParameter(cmdInsert, "@QQ", DbType.String, enumValue.QQ); db.AddInParameter(cmdInsert, "@FAX", DbType.String, enumValue.FAX); db.AddInParameter(cmdInsert, "@MOBILE", DbType.String, enumValue.MOBILE); db.AddInParameter(cmdInsert, "@ISFINANCIALSTAFF", DbType.Boolean, enumValue.ISFINANCIALSTAFF); db.AddInParameter(cmdInsert, "@ISOPERATOR", DbType.Boolean, enumValue.ISOPERATOR); db.AddInParameter(cmdInsert, "@ISSALEMAN", DbType.Boolean, enumValue.ISSALEMAN); db.AddInParameter(cmdInsert, "@ISOTHER", DbType.Boolean, enumValue.ISOTHER); db.AddInParameter(cmdInsert, "@CREATEUSER", DbType.String, userid); db.AddInParameter(cmdInsert, "@CREATETIME", DbType.String, DateTime.Now.ToString("yyyy-MM-dd")); db.AddInParameter(cmdInsert, "@ISSTOP", DbType.Boolean, enumValue.ISSTOP); db.AddInParameter(cmdInsert, "@REMARK", DbType.String, enumValue.REMARK); db.AddInParameter(cmdInsert, "@ANNIVERSARY2", DbType.String, enumValue.ANNIVERSARY2); db.AddInParameter(cmdInsert, "@AREMARK2", DbType.String, enumValue.AREMARK2); db.AddInParameter(cmdInsert, "@BIRTHDAY", DbType.String, enumValue.BIRTHDAY); db.AddInParameter(cmdInsert, "@ANNIVERSARY1", DbType.String, enumValue.ANNIVERSARY1); db.AddInParameter(cmdInsert, "@AREMARK1", DbType.String, enumValue.AREMARK1); db.AddInParameter(cmdInsert, "@ISBIRTHDAY", DbType.Boolean, enumValue.ISBIRTHDAY); db.AddInParameter(cmdInsert, "@ISANNIVERSARY1", DbType.Boolean, enumValue.ISANNIVERSARY1); db.AddInParameter(cmdInsert, "@ISANNIVERSARY2", DbType.Boolean, enumValue.ISANNIVERSARY2); db.AddInParameter(cmdInsert, "@BIRTHDAYDAY", DbType.Int16, enumValue.BIRTHDAYDAY); db.AddInParameter(cmdInsert, "@ANNIVERSARYDAY1", DbType.Int16, enumValue.ANNIVERSARYDAY1); db.AddInParameter(cmdInsert, "@ANNIVERSARYDAY2", DbType.Int16, enumValue.ANNIVERSARYDAY2); db.AddInParameter(cmdInsert, "@JOB", DbType.String, enumValue.JOB); db.AddInParameter(cmdInsert, "@SEX", DbType.String, enumValue.SEX); db.AddInParameter(cmdInsert, "@AGE", DbType.String, enumValue.AGE); db.AddInParameter(cmdInsert, "@MARRY", DbType.String, enumValue.MARRY); db.AddInParameter(cmdInsert, "@CHILDREN", DbType.String, enumValue.CHILDREN); db.AddInParameter(cmdInsert, "@HOBBIES", DbType.String, enumValue.HOBBIES); db.AddInParameter(cmdInsert, "@MODIFIEDUSER", DbType.String, userid); db.AddInParameter(cmdInsert, "@MODIFIEDTIME", DbType.String, DateTime.Now.ToString("yyyy-MM-dd")); db.ExecuteNonQuery(cmdInsert, tran); } else { cmdUpdate.Parameters.Clear(); db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID); db.AddInParameter(cmdUpdate, "@LINKID", DbType.String, enumValue.LINKID); db.AddInParameter(cmdUpdate, "@CODENAME", DbType.String, enumValue.CODENAME); db.AddInParameter(cmdUpdate, "@SHOWNAME", DbType.String, enumValue.SHOWNAME); db.AddInParameter(cmdUpdate, "@ADDR", DbType.String, enumValue.ADDR); db.AddInParameter(cmdUpdate, "@EMAIL", DbType.String, enumValue.EMAIL); db.AddInParameter(cmdUpdate, "@TEL", DbType.String, enumValue.TEL); db.AddInParameter(cmdUpdate, "@QQ", DbType.String, enumValue.QQ); db.AddInParameter(cmdUpdate, "@FAX", DbType.String, enumValue.FAX); db.AddInParameter(cmdUpdate, "@MOBILE", DbType.String, enumValue.MOBILE); db.AddInParameter(cmdUpdate, "@ISFINANCIALSTAFF", DbType.Boolean, enumValue.ISFINANCIALSTAFF); db.AddInParameter(cmdUpdate, "@ISOPERATOR", DbType.Boolean, enumValue.ISOPERATOR); db.AddInParameter(cmdUpdate, "@ISSALEMAN", DbType.Boolean, enumValue.ISSALEMAN); db.AddInParameter(cmdUpdate, "@ISOTHER", DbType.Boolean, enumValue.ISOTHER); db.AddInParameter(cmdUpdate, "@CREATEUSER", DbType.String, userid); db.AddInParameter(cmdUpdate, "@CREATETIME", DbType.String, DateTime.Now.ToString("yyyy-MM-dd")); db.AddInParameter(cmdUpdate, "@ISSTOP", DbType.Boolean, enumValue.ISSTOP); db.AddInParameter(cmdUpdate, "@REMARK", DbType.String, enumValue.REMARK); db.AddInParameter(cmdUpdate, "@ANNIVERSARY2", DbType.String, enumValue.ANNIVERSARY2); db.AddInParameter(cmdUpdate, "@AREMARK2", DbType.String, enumValue.AREMARK2); db.AddInParameter(cmdUpdate, "@BIRTHDAY", DbType.String, enumValue.BIRTHDAY); db.AddInParameter(cmdUpdate, "@ANNIVERSARY1", DbType.String, enumValue.ANNIVERSARY1); db.AddInParameter(cmdUpdate, "@AREMARK1", DbType.String, enumValue.AREMARK1); db.AddInParameter(cmdUpdate, "@ISBIRTHDAY", DbType.Boolean, enumValue.ISBIRTHDAY); db.AddInParameter(cmdUpdate, "@ISANNIVERSARY1", DbType.Boolean, enumValue.ISANNIVERSARY1); db.AddInParameter(cmdUpdate, "@ISANNIVERSARY2", DbType.Boolean, enumValue.ISANNIVERSARY2); db.AddInParameter(cmdUpdate, "@BIRTHDAYDAY", DbType.Int16, enumValue.BIRTHDAYDAY); db.AddInParameter(cmdUpdate, "@ANNIVERSARYDAY1", DbType.Int16, enumValue.ANNIVERSARYDAY1); db.AddInParameter(cmdUpdate, "@ANNIVERSARYDAY2", DbType.Int16, enumValue.ANNIVERSARYDAY2); db.AddInParameter(cmdUpdate, "@JOB", DbType.String, enumValue.JOB); db.AddInParameter(cmdUpdate, "@SEX", DbType.String, enumValue.SEX); db.AddInParameter(cmdUpdate, "@AGE", DbType.String, enumValue.AGE); db.AddInParameter(cmdUpdate, "@MARRY", DbType.String, enumValue.MARRY); db.AddInParameter(cmdUpdate, "@CHILDREN", DbType.String, enumValue.HOBBIES); db.AddInParameter(cmdUpdate, "@MODIFIEDUSER", DbType.String, userid); db.AddInParameter(cmdUpdate, "@MODIFIEDTIME", DbType.String, DateTime.Now.ToString("yyyy-MM-dd")); 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; } #endregion #region 合同 static public List GetContractDataList(string strCondition, string sort = null,string USERID="1") { var strSql = new StringBuilder(); strSql.Append("SELECT [GID],LINKID,[CONTRACTNO],CONTRACTNAME,[SIGNINGDATE],[STARTDATE],"); strSql.Append("[CANCELDATE],[CHIEF],[REMARK],[CORPID],[CREATEUSER],[CREATETIME],[DEPTGID]"); strSql.Append(",(select ShowName from [user] where GID=info_client_contract.CREATEUSER) as CREATEUSERREF"); strSql.Append(",(select SHORTNAME from info_client where GID=info_client_contract.LINKID) as CUSTNAME"); strSql.Append(" from info_client_contract where 1=1 "); var rangstr = ""; if (USERID == "1") rangstr = "1=2"; else { rangstr = BasicDataRefDAL.GetVisableRange("modInfoClinet_info", USERID, "", "CREATEUSER","DEPTGID"); } if (!string.IsNullOrEmpty(rangstr)) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = strCondition + " and " + rangstr; } else { strCondition = rangstr; } } 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 SIGNINGDATE DESC"); } return SetContractData(strSql); } static public MsInfoContract GetContractData(string condition,string userid) { MsInfoContract data = null; var list = GetContractDataList(condition,"",userid); if (list.Count > 0) data = list[0]; if (data == null) { data = new MsInfoContract(); } return data; } private static List SetContractData(StringBuilder strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { MsInfoContract data = new MsInfoContract(); #region Set DB data to Object data.GID = Convert.ToString(reader["GID"]); data.LINKID = Convert.ToString(reader["LINKID"]); data.CONTRACTNO = Convert.ToString(reader["CONTRACTNO"]); data.CONTRACTNAME = Convert.ToString(reader["CONTRACTNAME"]); data.CUSTNAME = Convert.ToString(reader["CUSTNAME"]); if (reader["SIGNINGDATE"] != DBNull.Value) data.SIGNINGDATE = Convert.ToDateTime(reader["SIGNINGDATE"]).ToString("yyyy-MM-dd");//预抵日期 if (reader["STARTDATE"] != DBNull.Value) data.STARTDATE = Convert.ToDateTime(reader["STARTDATE"]).ToString("yyyy-MM-dd");//预抵日期 if (reader["CANCELDATE"] != DBNull.Value) data.CANCELDATE = Convert.ToDateTime(reader["CANCELDATE"]).ToString("yyyy-MM-dd");//预抵日期 data.CHIEF = Convert.ToString(reader["CHIEF"]); data.REMARK = Convert.ToString(reader["REMARK"]); data.CORPID = Convert.ToString(reader["CORPID"]); data.DEPTGID = Convert.ToString(reader["DEPTGID"]); data.CREATETIME = Convert.ToString(reader["CREATETIME"]); data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]); data.CREATEUSERREF = Convert.ToString(reader["CREATEUSERREF"]); #endregion headList.Add(data); } reader.Close(); } return headList; } #endregion #region PS比例 static public List GetPSDataList(string strCondition, string sort = null) { var strSql = new StringBuilder(); strSql.Append("SELECT [GID],LINKGID,[CUSTNAME],SALEDEPT,[PS],[REMARK]"); strSql.Append(" from Info_Client_PS 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 SALEDEPT DESC"); } return SetPSData(strSql); } static public ClientPS GetPSData(string condition) { ClientPS data = null; var list = GetPSDataList(condition, ""); if (list.Count > 0) data = list[0]; if (data == null) { data = new ClientPS(); } return data; } private static List SetPSData(StringBuilder strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { ClientPS data = new ClientPS(); #region Set DB data to Object data.GID = Convert.ToString(reader["GID"]); data.LINKGID = Convert.ToString(reader["LINKGID"]); data.CUSTNAME = Convert.ToString(reader["CUSTNAME"]); if (reader["PS"] != DBNull.Value) data.PS = Convert.ToDecimal(reader["PS"]);//预抵日期 data.SALEDEPT = Convert.ToString(reader["SALEDEPT"]); data.REMARK = Convert.ToString(reader["REMARK"]); #endregion headList.Add(data); } reader.Close(); } return headList; } public static DBResult SaveCustPS(MsClient headData, List bodyList, string userid) { 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 Info_Client_PS where LINKGID='" + headData.GID + "'"); db.ExecuteNonQuery(cmdDelete, tran); var cmdInsert = db.GetSqlStringCommand( @"insert into Info_Client_PS (GID,LINKGID,CUSTNAME,PS,SALEDEPT,REMARK,MODIFIEDUSER,MODIFIEDTIME) values (@GID,@LINKGID,@CUSTNAME,@PS,@SALEDEPT,@REMARK,@MODIFIEDUSER,@MODIFIEDTIME) "); if (bodyList != null) { foreach (var enumValue in bodyList) { cmdInsert.Parameters.Clear(); db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString()); db.AddInParameter(cmdInsert, "@LINKGID", DbType.String, headData.GID); db.AddInParameter(cmdInsert, "@CUSTNAME", DbType.String, headData.SHORTNAME); db.AddInParameter(cmdInsert, "@PS", DbType.Decimal, enumValue.PS); db.AddInParameter(cmdInsert, "@SALEDEPT", DbType.String, enumValue.SALEDEPT); db.AddInParameter(cmdInsert, "@REMARK", DbType.String, enumValue.REMARK); db.AddInParameter(cmdInsert, "@MODIFIEDUSER", DbType.String, userid); db.AddInParameter(cmdInsert, "@MODIFIEDTIME", DbType.String, DateTime.Now.ToString()); db.ExecuteNonQuery(cmdInsert, tran); } } tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "保存出现错误,请重试或联系系统管理员"; return result; } } result.Success = true; result.Message = "保存成功"; return result; } #endregion #region 开票信息 static public List GetINVDataList(string strCondition, string sort = null) { var strSql = new StringBuilder(); strSql.Append("SELECT *"); strSql.Append(" from info_client_inv 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 INVOICECUSTNAME DESC"); } return SetINVData(strSql); } static public ClientINV GetINVData(string condition) { ClientINV data = null; var list = GetINVDataList(condition, ""); if (list.Count > 0) data = list[0]; if (data == null) { data = new ClientINV(); } return data; } static public List GetAllINVDataList(string strCondition, string sort = null) { var strSql = new StringBuilder(); strSql.Append("SELECT *"); strSql.Append(" from V_CUST_INV 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 INVOICECUSTNAME DESC"); } return SetINVData(strSql); } private static List SetINVData(StringBuilder strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { ClientINV data = new ClientINV(); #region Set DB data to Object data.GID = Convert.ToString(reader["GID"]); data.LINKGID = Convert.ToString(reader["LINKGID"]); data.CUSTNAME = Convert.ToString(reader["CUSTNAME"]); data.INVOICECUSTNAME = Convert.ToString(reader["INVOICECUSTNAME"]); data.CUSTRATENO = Convert.ToString(reader["CUSTRATENO"]); data.CUSTADDRTEL = Convert.ToString(reader["CUSTADDRTEL"]); data.CUSTBANK = Convert.ToString(reader["CUSTBANK"]); data.CUSTUSDBANK = Convert.ToString(reader["CUSTUSDBANK"]); data.REMARK = Convert.ToString(reader["REMARK"]); data.EMAIL = Convert.ToString(reader["EMAIL"]); #endregion headList.Add(data); } reader.Close(); } return headList; } public static DBResult SaveCustINV(MsClient headData, List bodyList, string userid) { 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 Info_Client_INV where LINKGID='" + headData.GID + "'"); db.ExecuteNonQuery(cmdDelete, tran); var cmdInsert = db.GetSqlStringCommand( @"insert into Info_Client_INV (GID,LINKGID,CUSTNAME,INVOICECUSTNAME,CUSTRATENO,CUSTADDRTEL,CUSTBANK,CUSTUSDBANK,REMARK,MODIFIEDUSER,MODIFIEDTIME,EMAIL) values (@GID,@LINKGID,@CUSTNAME,@INVOICECUSTNAME,@CUSTRATENO,@CUSTADDRTEL,@CUSTBANK,@CUSTUSDBANK,@REMARK,@MODIFIEDUSER,@MODIFIEDTIME,@EMAIL) "); if (bodyList != null) { foreach (var enumValue in bodyList) { cmdInsert.Parameters.Clear(); db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString()); db.AddInParameter(cmdInsert, "@LINKGID", DbType.String, headData.GID); db.AddInParameter(cmdInsert, "@CUSTNAME", DbType.String, headData.SHORTNAME); db.AddInParameter(cmdInsert, "@INVOICECUSTNAME", DbType.String, enumValue.INVOICECUSTNAME); db.AddInParameter(cmdInsert, "@CUSTRATENO", DbType.String, enumValue.CUSTRATENO); db.AddInParameter(cmdInsert, "@CUSTADDRTEL", DbType.String, enumValue.CUSTADDRTEL); db.AddInParameter(cmdInsert, "@CUSTBANK", DbType.String, enumValue.CUSTBANK); db.AddInParameter(cmdInsert, "@CUSTUSDBANK", DbType.String, enumValue.CUSTUSDBANK); db.AddInParameter(cmdInsert, "@REMARK", DbType.String, enumValue.REMARK); db.AddInParameter(cmdInsert, "@MODIFIEDUSER", DbType.String, userid); db.AddInParameter(cmdInsert, "@MODIFIEDTIME", DbType.String, DateTime.Now.ToString()); db.AddInParameter(cmdInsert, "@EMAIL", DbType.String, enumValue.EMAIL); db.ExecuteNonQuery(cmdInsert, tran); } } tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "保存出现错误,请重试或联系系统管理员"; return result; } } result.Success = true; result.Message = "保存成功"; return result; } #endregion public static DBResult SaveCustFee(MsClient headData, List bodyList, string userid) { 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 cust_fee_templatedetail where CUSTOMERNAME='" + headData.SHORTNAME + "'"); db.ExecuteNonQuery(cmdDelete, tran); var cmdInsert = db.GetSqlStringCommand( @"insert into cust_fee_templatedetail (GID,FEENAME,CUSTOMERNAME,UNIT,CURRENCY,UNITPRICE,REMARK,CREATEUSER,CREATETIME,EXCHANGERATE,ISCTN,ISINVOICE,ISADVANCEDPAY,FEEFRT,TAXRATE,TAX,FEETYPE) values (@GID,@FEENAME,@CUSTOMERNAME,@UNIT,@CURRENCY,@UNITPRICE,@REMARK,@CREATEUSER,@CREATETIME,@EXCHANGERATE,@ISCTN,@ISINVOICE,@ISADVANCEDPAY,@FEEFRT,@TAXRATE,@TAX,@FEETYPE) "); if (bodyList != null) { foreach (var enumValue in bodyList) { cmdInsert.Parameters.Clear(); db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString()); db.AddInParameter(cmdInsert, "@FEENAME", DbType.String, enumValue.FEENAME); db.AddInParameter(cmdInsert, "@CUSTOMERNAME", DbType.String, headData.SHORTNAME); db.AddInParameter(cmdInsert, "@UNIT", DbType.String, enumValue.UNIT); db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, enumValue.CURRENCY); db.AddInParameter(cmdInsert, "@UNITPRICE", DbType.Decimal, enumValue.UNITPRICE); db.AddInParameter(cmdInsert, "@REMARK", DbType.String, enumValue.REMARK); db.AddInParameter(cmdInsert, "@CREATEUSER", DbType.String, userid); db.AddInParameter(cmdInsert, "@CREATETIME", DbType.String, DateTime.Now.ToString()); db.AddInParameter(cmdInsert, "@EXCHANGERATE", DbType.Decimal, enumValue.EXCHANGERATE); db.AddInParameter(cmdInsert, "@ISCTN", DbType.Boolean, enumValue.ISCTN); db.AddInParameter(cmdInsert, "@ISINVOICE", DbType.Boolean, enumValue.ISINVOICE); db.AddInParameter(cmdInsert, "@ISADVANCEDPAY", DbType.Boolean, enumValue.ISADVANCEDPAY); db.AddInParameter(cmdInsert, "@FEEFRT", DbType.String, enumValue.FEEFRT); db.AddInParameter(cmdInsert, "@TAXRATE", DbType.Decimal, enumValue.TAXRATE); db.AddInParameter(cmdInsert, "@TAX", DbType.Decimal, enumValue.TAX); db.AddInParameter(cmdInsert, "@FEETYPE", DbType.Decimal, enumValue.FEETYPE); db.ExecuteNonQuery(cmdInsert, tran); } } tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "保存出现错误,请重试或联系系统管理员"; return result; } } result.Success = true; result.Message = "保存成功"; return result; } static public DBResult CreateHangXinCust(string filename) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); var cmdDelete = db.GetSqlStringCommand("delete from tmp_hangxincust "); db.ExecuteNonQuery(cmdDelete, tran); try { FileStream fs = new FileStream(filename, FileMode.Open); StreamReader sr = new StreamReader(fs, System.Text.Encoding.GetEncoding("gb2312")); string line; int linecount = 0; while ((line = sr.ReadLine()) != null) { if (linecount < 3) { linecount++; continue; } linecount++; string[] custlist = Regex.Split(line, "~~", RegexOptions.IgnoreCase); if (custlist.Length > 5) { var cmdInsert = db.GetSqlStringCommand( @"insert into tmp_hangxincust (NO,CUSTNAME,TAXNO,ADDRTEL,BANK,SORT) values (@NO,@CUSTNAME,@TAXNO,@ADDRTEL,@BANK,@SORT) "); cmdInsert.Parameters.Clear(); db.AddInParameter(cmdInsert, "@NO", DbType.String, custlist[0]); db.AddInParameter(cmdInsert, "@CUSTNAME", DbType.String, custlist[1]); db.AddInParameter(cmdInsert, "@TAXNO", DbType.String, custlist[3]); db.AddInParameter(cmdInsert, "@ADDRTEL", DbType.String, custlist[4]); db.AddInParameter(cmdInsert, "@BANK", DbType.String, custlist[5]); db.AddInParameter(cmdInsert, "@SORT", DbType.Int32, linecount); db.ExecuteNonQuery(cmdInsert, tran); } } tran.Commit(); } catch (Exception e) { tran.Rollback(); result.Success = false; result.Message = "保存出现错误,请重试或联系系统管理员"+e.Message; return result; } } result.Success = true; result.Message = "保存成功"; return result; } public static DBResult SaveHangXinCust(List boday, String USERID) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { if (boday != null) { var cmdUpdate = db.GetSqlStringCommand( @"update tmp_hangxincust set SHORTNAME=@SHORTNAME WHERE GID=@GID "); foreach (var enumValue in boday) { cmdUpdate.Parameters.Clear(); db.AddInParameter(cmdUpdate, "@SHORTNAME", DbType.String, enumValue.SHORTNAME); db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID); 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 UpdateHangXinCust(List boday, String USERID) { var result = new DBResult(); var errostr = ""; Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); var shortname = ""; try { if (boday != null) { var cmdUpdate = db.GetSqlStringCommand( @"update info_client set BILLRISES1=@BILLRISES1,INVADDRTEL=@INVADDRTEL,TAXNO=@TAXNO WHERE SHORTNAME=@SHORTNAME "); var cmdInsert = db.GetSqlStringCommand( @"insert into info_client_bank (GID,LINKID,CODENAME,CURRENCY,BANKNAME,ACCOUNT,[REMARK],FINANCESOFTCODE,CREATEUSER,CREATETIME,ACCOUNTNAME) SELECT NEWID(),GID,'','RMB',@BANKNAME,@ACCOUNT,'','',@CREATEUSER,GETDATE(),@ACCOUNTNAME FROM INFO_CLIENT WHERE SHORTNAME=@SHORTNAME "); foreach (var enumValue in boday) { if (enumValue.SHORTNAME != "") { shortname = enumValue.SHORTNAME; cmdUpdate.Parameters.Clear(); db.AddInParameter(cmdUpdate, "@BILLRISES1", DbType.String, enumValue.CUSTNAME); db.AddInParameter(cmdUpdate, "@INVADDRTEL", DbType.String, enumValue.ADDRTEL); db.AddInParameter(cmdUpdate, "@TAXNO", DbType.String, enumValue.TAXNO); db.AddInParameter(cmdUpdate, "@SHORTNAME", DbType.String, enumValue.SHORTNAME); db.ExecuteNonQuery(cmdUpdate, tran); var BANKSTR = enumValue.BANK; if (BANKSTR != "") { BANKSTR = BANKSTR.Replace(" ", ""); BANKSTR = BANKSTR.Replace("-", ""); Regex r = new Regex(@"\d+"); try { var ms = r.Matches(BANKSTR); var bankaccount = ms.OfType().Last().ToString(); var bankname = BANKSTR.Replace(bankaccount, "").Trim(); var banklist = GetBankList(" LINKID in (select GID FROM INFO_CLIENT WHERE SHORTNAME='" + enumValue.SHORTNAME + "') and BANKNAME='" + bankname + "' and ACCOUNT='" + bankaccount + "'", "1", "BANKNAME", tran); if (banklist.Count == 0) { cmdInsert.Parameters.Clear(); db.AddInParameter(cmdInsert, "@BANKNAME", DbType.String, bankname); db.AddInParameter(cmdInsert, "@ACCOUNT", DbType.String, bankaccount); db.AddInParameter(cmdInsert, "@CREATEUSER", DbType.String, USERID); db.AddInParameter(cmdInsert, "@ACCOUNTNAME", DbType.String, enumValue.CUSTNAME); db.AddInParameter(cmdInsert, "@SHORTNAME", DbType.String, enumValue.SHORTNAME); db.ExecuteNonQuery(cmdInsert, tran); } } catch (Exception e) { errostr = errostr + e.Message; } } } } } result = new DBResult(); result.Success = true; result.Message = "设置完成"; tran.Commit(); } catch (Exception e) { tran.Rollback(); result.Success = false; result.Message = "设置出现错误,请重试或联系系统管理员 "+ shortname + e.Message; return result; } } result.Success = true; result.Message = "设置完成"+ errostr; return result; } public static string GetBankNo(string str) { string resultstr = ""; str = str.Replace(" ", ""); str = str.Replace("-", ""); Regex r = new Regex(@"\d+"); var ms = r.Matches(str); resultstr = ms.OfType().Last().ToString(); return resultstr; } #region 客户部门 static public List GetDeptList(string strCondition, string sort = null) { var strSql = new StringBuilder(); strSql.Append("SELECT * from info_client_dept 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 DEPTNO,MODIFIEDTIME"); } return SetDeptData(strSql); } static public MsCompanysDept GetDeptData(string condition) { var strSql = new StringBuilder(); strSql.Append("SELECT * from info_client_dept where 1=1"); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" and " + condition); } var list = SetDeptData(strSql); if (list.Count > 0) return list[0]; return new MsCompanysDept(); } private static List SetDeptData(StringBuilder strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { MsCompanysDept data = new MsCompanysDept(); #region Set DB data to Object data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//惟一编号 data.LINKID = (reader["LINKID"] == null ? "" : Convert.ToString(reader["LINKID"]));//公司关联id data.DEPTNO = (reader["DEPTNO"] == null ? "" : Convert.ToString(reader["DEPTNO"]));//代码 data.DEPTNAME = (reader["DEPTNAME"] == null ? "" : Convert.ToString(reader["DEPTNAME"]));//名称 data.FINANCESOFTCODE = (reader["FINANCESOFTCODE"] == null ? "" : Convert.ToString(reader["FINANCESOFTCODE"]));//FINANCESOFTCODE data.MANAGE1 = (reader["MANAGE1"] == null ? "" : Convert.ToString(reader["MANAGE1"]));//经理 data.MANAGE2 = (reader["MANAGE2"] == null ? "" : Convert.ToString(reader["MANAGE2"]));//副经理 data.REMARK = (reader["REMARK"] == null ? "" : Convert.ToString(reader["REMARK"]));//备注 data.CREATEUSER = (reader["CREATEUSER"] == null ? "" : Convert.ToString(reader["CREATEUSER"]));//CREATEUSER if (data.CREATETIME != null) data.CREATETIME = Convert.ToDateTime(reader["CREATETIME"]);//创建时间 data.MODIFIEDUSER = (reader["MODIFIEDUSER"] == null ? "" : Convert.ToString(reader["MODIFIEDUSER"]));//更改操作人gid if (data.MODIFIEDTIME != null) data.MODIFIEDTIME = Convert.ToDateTime(reader["MODIFIEDTIME"]);//更改操作时间 #endregion headList.Add(data); } reader.Close(); } return headList; } #endregion #region 银行信息 static public List GetBankList(string strCondition,string isedit="0", string sort = null,DbTransaction tran=null) { var strSql = new StringBuilder(); strSql.Append("SELECT * ,(SELECT SHORTNAME FROM info_client where GID=info_client_bank.LINKID) CUSTNAME"); strSql.Append(",BANKNAME + '-' + ACCOUNTNAME AS ACCOUNTNAMEREF"); strSql.Append(",BANKNAME + ' ' + ACCOUNT AS BANKACCOUNT"); strSql.Append(",(select country from code_country where countryid=info_client_bank.countryid) country"); strSql.Append(",ISINVDEF,(CASE WHEN ISINVDEF='1' THEN '是' ELSE '否' END) ISINVDEFREF"); strSql.Append(" from info_client_bank 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 CODENAME"); } return SetBankData(strSql,isedit, tran); } static public MsClientAccount GetBankData(string condition) { var strSql = new StringBuilder(); strSql.Append("SELECT * ,(SELECT SHORTNAME FROM info_client where GID=info_client_bank.LINKID) CUSTNAME"); strSql.Append(",BANKNAME + '-' + ACCOUNTNAME AS ACCOUNTNAMEREF"); strSql.Append(",BANKNAME + ' ' + ACCOUNT AS BANKACCOUNT"); strSql.Append(",(select country from code_country where countryid=info_client_bank.countryid) country"); strSql.Append(",ISINVDEF,(CASE WHEN ISINVDEF='1' THEN '是' ELSE '否' END) ISINVDEFREF"); //strSql.Append(",(select country from code_country where countryid=info_client_bank.countryid),0,(charindex('(',(select country from code_country where countryid=info_client_bank.countryid))) ) country"); strSql.Append(" from info_client_bank where 1=1"); if (!string.IsNullOrEmpty(condition)) { strSql.Append(" and " + condition); } var list = SetBankData(strSql,"1"); if (list.Count > 0) return list[0]; return new MsClientAccount(); } private static List SetBankData(StringBuilder strSql,string isedit, DbTransaction tran = null) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); if (tran == null) { using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { MsClientAccount data = new MsClientAccount(); #region Set DB data to Object data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//GID data.LINKID = (reader["LINKID"] == null ? "" : Convert.ToString(reader["LINKID"]));//公司关联id data.CODENAME = (reader["CODENAME"] == null ? "" : Convert.ToString(reader["CODENAME"]));//CODENAME data.CURRENCY = (reader["CURRENCY"] == null ? "" : Convert.ToString(reader["CURRENCY"]));//CURRENCY data.BANKNAME = (reader["BANKNAME"] == null ? "" : Convert.ToString(reader["BANKNAME"]));//BANKNAME data.ACCOUNT = (reader["ACCOUNT"] == null ? "" : Convert.ToString(reader["ACCOUNT"]));//ACCOUNT data.ACCOUNTNAME = (reader["ACCOUNTNAME"] == null ? "" : Convert.ToString(reader["ACCOUNTNAME"]));//ACCOUNT data.SUBJECTCODE = (reader["SUBJECTCODE"] == null ? "" : Convert.ToString(reader["SUBJECTCODE"]));//银行账户 data.REMARK = (reader["REMARK"] == null ? "" : Convert.ToString(reader["REMARK"]));//REMARK data.FINANCESOFTCODE = (reader["FINANCESOFTCODE"] == null ? "" : Convert.ToString(reader["FINANCESOFTCODE"]));//FINANCESOFTCODE data.CREATEUSER = (reader["CREATEUSER"] == null ? "" : Convert.ToString(reader["CREATEUSER"]));//CREATEUSER if (reader["CREATETIME"] != DBNull.Value) data.CREATETIME = Convert.ToString(reader["CREATETIME"]);//创建时间 data.CUSTNAME = Convert.ToString(reader["CUSTNAME"]);//创建时间 data.ACCOUNTNAMEREF = Convert.ToString(reader["ACCOUNTNAMEREF"]);//创建时间 data.SWIFT = Convert.ToString(reader["SWIFT"]); data.BANKAGENTNAME = Convert.ToString(reader["BANKAGENTNAME"]); data.BANKADDR = Convert.ToString(reader["BANKADDR"]); data.BANKACNO = Convert.ToString(reader["BANKACNO"]); data.COUNTRYID = Convert.ToString(reader["COUNTRYID"]); data.COUNTRY = Convert.ToString(reader["COUNTRY"]); data.BANKNAME_ACCOUNT = Convert.ToString(reader["BANKACCOUNT"]); data.ISINVDEF = Convert.ToString(reader["ISINVDEF"]); data.ISINVDEFREF = Convert.ToString(reader["ISINVDEFREF"]); #endregion headList.Add(data); } reader.Close(); } } else { using (IDataReader reader = db.ExecuteReader(tran,CommandType.Text, strSql.ToString())) { while (reader.Read()) { MsClientAccount data = new MsClientAccount(); #region Set DB data to Object data.GID = (reader["GID"] == null ? "" : Convert.ToString(reader["GID"]));//GID data.LINKID = (reader["LINKID"] == null ? "" : Convert.ToString(reader["LINKID"]));//公司关联id data.CODENAME = (reader["CODENAME"] == null ? "" : Convert.ToString(reader["CODENAME"]));//CODENAME data.CURRENCY = (reader["CURRENCY"] == null ? "" : Convert.ToString(reader["CURRENCY"]));//CURRENCY data.BANKNAME = (reader["BANKNAME"] == null ? "" : Convert.ToString(reader["BANKNAME"]));//BANKNAME data.ACCOUNT = (reader["ACCOUNT"] == null ? "" : Convert.ToString(reader["ACCOUNT"]));//ACCOUNT data.ACCOUNTNAME = (reader["ACCOUNTNAME"] == null ? "" : Convert.ToString(reader["ACCOUNTNAME"]));//ACCOUNT data.SUBJECTCODE = (reader["SUBJECTCODE"] == null ? "" : Convert.ToString(reader["SUBJECTCODE"]));//银行账户 data.REMARK = (reader["REMARK"] == null ? "" : Convert.ToString(reader["REMARK"]));//REMARK data.FINANCESOFTCODE = (reader["FINANCESOFTCODE"] == null ? "" : Convert.ToString(reader["FINANCESOFTCODE"]));//FINANCESOFTCODE data.CREATEUSER = (reader["CREATEUSER"] == null ? "" : Convert.ToString(reader["CREATEUSER"]));//CREATEUSER if (reader["CREATETIME"] != DBNull.Value) data.CREATETIME = Convert.ToString(reader["CREATETIME"]);//创建时间 data.CUSTNAME = Convert.ToString(reader["CUSTNAME"]);//创建时间 data.ACCOUNTNAMEREF = Convert.ToString(reader["ACCOUNTNAMEREF"]);//创建时间 data.SWIFT = Convert.ToString(reader["SWIFT"]); data.BANKAGENTNAME = Convert.ToString(reader["BANKAGENTNAME"]); data.BANKADDR = Convert.ToString(reader["BANKADDR"]); data.BANKACNO = Convert.ToString(reader["BANKACNO"]); data.COUNTRYID = Convert.ToString(reader["COUNTRYID"]); data.COUNTRY = Convert.ToString(reader["COUNTRY"]); data.BANKNAME_ACCOUNT = Convert.ToString(reader["BANKACCOUNT"]); data.ISINVDEF = Convert.ToString(reader["ISINVDEF"]); data.ISINVDEFREF = Convert.ToString(reader["ISINVDEFREF"]); #endregion headList.Add(data); } reader.Close(); } } if (isedit != "1") { MsClientAccount adata = new MsClientAccount(); #region Set DB data to Object adata.GID = "";//GID adata.LINKID = "";//公司关联id adata.CODENAME = "";//CODENAME adata.CURRENCY = "";//CURRENCY adata.BANKNAME = "";//BANKNAME adata.ACCOUNT = "";//ACCOUNT adata.ACCOUNTNAME = "";//ACCOUNT adata.SUBJECTCODE = "";//银行账户 adata.REMARK = "";//REMARK adata.FINANCESOFTCODE = "";//FINANCESOFTCODE adata.CREATEUSER = "";//CREATEUSER adata.CUSTNAME = "";//创建时间 adata.ACCOUNTNAMEREF = "";//创建时间 adata.BANKNAME_ACCOUNT = ""; adata.ISINVDEF ="0"; adata.ISINVDEFREF ="否"; #endregion headList.Add(adata); } return headList; } public static DBResult SaveBank(string GID, List bodyList, 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 info_client_bank (GID,LINKID,CODENAME,CURRENCY,BANKNAME,ACCOUNT,[REMARK],FINANCESOFTCODE,CREATEUSER,CREATETIME,ACCOUNTNAME,ISINVDEF) values (@GID,@LINKID,@CODENAME,@CURRENCY,@BANKNAME,@ACCOUNT,@REMARK,@FINANCESOFTCODE,@CREATEUSER,@CREATETIME,@ACCOUNTNAME,@ISINVDEF) "); var cmdUpdate = db.GetSqlStringCommand( @"update info_client_bank set CODENAME=@CODENAME,CURRENCY=@CURRENCY,BANKNAME=@BANKNAME,ACCOUNT=@ACCOUNT,REMARK=@REMARK,FINANCESOFTCODE=@FINANCESOFTCODE ,ACCOUNTNAME=@ACCOUNTNAME,ISINVDEF=@ISINVDEF where GID=@GID "); if (bodyList != null) { foreach (var enumValue in bodyList) { if (enumValue.LINKID == "*" || enumValue.LINKID == "") { cmdInsert.Parameters.Clear(); db.AddInParameter(cmdInsert, "@GID", DbType.String, enumValue.GID); db.AddInParameter(cmdInsert, "@LINKID", DbType.String,GID); db.AddInParameter(cmdInsert, "@CODENAME", DbType.String, enumValue.CODENAME); db.AddInParameter(cmdInsert, "@CURRENCY", DbType.String, enumValue.CURRENCY); db.AddInParameter(cmdInsert, "@BANKNAME", DbType.String, enumValue.BANKNAME); db.AddInParameter(cmdInsert, "@ACCOUNT", DbType.String, enumValue.ACCOUNT); db.AddInParameter(cmdInsert, "@REMARK", DbType.String, enumValue.REMARK); db.AddInParameter(cmdInsert, "@FINANCESOFTCODE", DbType.String, enumValue.FINANCESOFTCODE); db.AddInParameter(cmdInsert, "@CREATEUSER", DbType.String, userid); db.AddInParameter(cmdInsert, "@CREATETIME", DbType.String, DateTime.Now.ToString()); db.AddInParameter(cmdInsert, "@ACCOUNTNAME", DbType.String, enumValue.ACCOUNTNAME); db.AddInParameter(cmdInsert, "@ISINVDEF", DbType.String, enumValue.ISINVDEF); db.ExecuteNonQuery(cmdInsert, tran); } else { cmdUpdate.Parameters.Clear(); db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID); db.AddInParameter(cmdUpdate, "@CODENAME", DbType.String, enumValue.CODENAME); db.AddInParameter(cmdUpdate, "@CURRENCY", DbType.String, enumValue.CURRENCY); db.AddInParameter(cmdUpdate, "@BANKNAME", DbType.String, enumValue.BANKNAME); db.AddInParameter(cmdUpdate, "@ACCOUNT", DbType.String, enumValue.ACCOUNT); db.AddInParameter(cmdUpdate, "@REMARK", DbType.String, enumValue.REMARK); db.AddInParameter(cmdUpdate, "@FINANCESOFTCODE", DbType.String, enumValue.FINANCESOFTCODE); db.AddInParameter(cmdUpdate, "@ACCOUNTNAME", DbType.String, enumValue.ACCOUNTNAME); db.AddInParameter(cmdUpdate, "@ISINVDEF", DbType.String, enumValue.ISINVDEF); 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; } #endregion #region 收发货人信息 static public List GetShipperDataList(string strCondition) { var strSql = new StringBuilder(); strSql.Append("SELECT shipperID,[codename],[SHORTNAME],[shipperdetail]"); strSql.Append(",[shippertype],[LOADADDRESS],[DELIVERADDRESS] ,[ISPUBLIC],SERVICECONTRACTNO,COUNTRY,ATTN,TEL,EMAIL,CORPID "); strSql.Append(",(select SHORTNAME from info_client where CODENAME=info_shipper.codename) AS CUSTOMERNAME "); strSql.Append(" from info_shipper where 1=1 "); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } strSql.Append(" order by shipperID"); return SetShipperData(strSql); } static public MsInfoShipper GetShipperData(string condition) { MsInfoShipper data = null; var list = GetShipperDataList(condition); if (list.Count > 0) data = list[0]; if (data == null) { data = new MsInfoShipper(); } return data; } private static List SetShipperData(StringBuilder strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { MsInfoShipper data = new MsInfoShipper(); #region Set DB data to Object data.SHIPPERID = Convert.ToString(reader["SHIPPERID"]); data.CODENAME = Convert.ToString(reader["CODENAME"]); data.SHORTNAME = Convert.ToString(reader["SHORTNAME"]); data.SHIPPERDETAIL = Convert.ToString(reader["SHIPPERDETAIL"]); if (reader["SHIPPERTYPE"] != DBNull.Value) data.SHIPPERTYPE = Convert.ToInt16(reader["SHIPPERTYPE"]); if (reader["ISPUBLIC"] != DBNull.Value) data.ISPUBLIC = Convert.ToBoolean(reader["ISPUBLIC"]); data.SHIPPERDETAIL = Convert.ToString(reader["SHIPPERDETAIL"]); data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]); if (reader["SERVICECONTRACTNO"] != DBNull.Value) data.SERVICECONTRACTNO = Convert.ToString(reader["SERVICECONTRACTNO"]); data.CORPID = Convert.ToString(reader["CORPID"]); data.COUNTRY = Convert.ToString(reader["COUNTRY"]); data.ATTN = Convert.ToString(reader["ATTN"]); data.TEL = Convert.ToString(reader["TEL"]); data.EMAIL = Convert.ToString(reader["EMAIL"]); #endregion headList.Add(data); } reader.Close(); } return headList; } #endregion #region 网上用户信息 static public List GetShipperAllDataList(string strCondition) { var strSql = new StringBuilder(); strSql.Append("SELECT shipperID,[codename],[SHORTNAME],[shipperdetail]"); strSql.Append(",[shippertype],[LOADADDRESS],[DELIVERADDRESS] ,[ISPUBLIC],SERVICECONTRACTNO,COUNTRY,ATTN,TEL,EMAIL,CORPID "); strSql.Append(",(select SHORTNAME from info_client where CODENAME=v_info_shipper.codename) AS CUSTOMERNAME "); strSql.Append(" from v_info_shipper where 1=1 "); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } strSql.Append(" order by shipperID"); return SetShipperData(strSql); } static public List GetWebUserDataList(string strCondition) { var strSql = new StringBuilder(); strSql.Append("SELECT GID,CUSTNAME,LOGINNAME,LOGINPASSWORD,REMARK,ISSTOP,CREATEUSER,CREATETIME,MODIFIEDUSER,MODIFIEDTIME"); strSql.Append(",(select ShowName from [user] where GID=info_client_web_user.CREATEUSER) as CREATEUSERREF"); strSql.Append(" from info_client_web_user where 1=1 "); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } strSql.Append(" order by CUSTNAME"); return SetWebUserData(strSql); } static public MsInfoClientWebUser SetWebUserData(string condition) { MsInfoClientWebUser data = null; var list = GetWebUserDataList(condition); if (list.Count > 0) data = list[0]; if (data == null) { data = new MsInfoClientWebUser(); } return data; } private static List SetWebUserData(StringBuilder strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { MsInfoClientWebUser data = new MsInfoClientWebUser(); #region Set DB data to Object data.GID = Convert.ToString(reader["GID"]); data.CUSTNAME = Convert.ToString(reader["CUSTNAME"]); data.LOGINNAME = Convert.ToString(reader["LOGINNAME"]); data.LOGINPASSWORD = Convert.ToString(reader["LOGINPASSWORD"]); if (reader["ISSTOP"] != DBNull.Value) data.ISSTOP = Convert.ToBoolean(reader["ISSTOP"]); data.REMARK = Convert.ToString(reader["REMARK"]); if (reader["CREATETIME"] != DBNull.Value) data.CREATETIME = Convert.ToDateTime(reader["CREATETIME"]).ToString("yyyy-MM-dd hh:mm:ss"); data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]); data.CREATEUSERREF = Convert.ToString(reader["CREATEUSERREF"]); data.MODIFIEDUSER = Convert.ToString(reader["MODIFIEDUSER"]); data.MODIFIEDTIME = Convert.ToString(reader["MODIFIEDTIME"]); #endregion headList.Add(data); } reader.Close(); } return headList; } #endregion #region 权限范围 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]='modExchangesUnit' 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 = "1=2"; } else if (visiblerange == "3") { str = " OPNAME='" + username + "' or SALE='" + username + "' or DOC='" + username + "'or OP='" + username + "' "; } else if (visiblerange == "2") { if (tb == "index") { var rangeDa = new RangeDA(); var deptname = rangeDa.GetDEPTNAME(userid); var userstr = new StringBuilder(); userstr.Append(" select SHOWNAME from [user] where GID in (select USERID from user_company where COMPANYID='" + companyid + "') and GID in (select userid from user_baseinfo where DEPTNAME='" + deptname + "')"); Database userdb = DatabaseFactory.CreateDatabase(); using (IDataReader reader = userdb.ExecuteReader(CommandType.Text, userstr.ToString())) { str = ""; while (reader.Read()) { if (str == "") { str = " OPNAME='" + Convert.ToString(reader["SHOWNAME"]) + "' or SALE='" + Convert.ToString(reader["SHOWNAME"]) + "' or DOC='" + Convert.ToString(reader["SHOWNAME"]) + "' or OP='" + Convert.ToString(reader["SHOWNAME"]) + "' "; } else { str = str + " or OPNAME='" + Convert.ToString(reader["SHOWNAME"]) + "' or SALE='" + Convert.ToString(reader["SHOWNAME"]) + "' or DOC='" + Convert.ToString(reader["SHOWNAME"]) + "' or OP='" + Convert.ToString(reader["SHOWNAME"]) + "' "; }; } reader.Close(); } } else { str = " UPPER(Corpid)='" + companyid + "'"; } } else if (visiblerange == "1") { str = " UPPER(Corpid)='" + companyid + "'"; } if (str != "") { str = "(" + str + ")"; } return str; } #endregion #region 客户权限范围 public static DBResult InsertClientRange(List bodyList, string op,string seltype,string userid) { var result = new DBResult(); if (bodyList != null) { Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { foreach (var enumValue in bodyList) { if (seltype == "2") { var cmddeletefeedo = db.GetSqlStringCommand("insert into info_client_range select newid(),'" + enumValue.SHORTNAME + "',u.userid,'" + userid + "',GETDATE() from VW_user u where USERID IN (" + op + ") AND USERID NOT IN (SELECT USERID FROM info_client_range WHERE SHORTNAME='" + enumValue.SHORTNAME + "') "); db.ExecuteNonQuery(cmddeletefeedo, tran); } else if (seltype == "1") { var cmddeletefeedo = db.GetSqlStringCommand("insert into info_client_range select newid(),'" + enumValue.SHORTNAME + "',u.userid,'" + userid + "',GETDATE() from VW_user u where deptgid IN (" + op + ") AND USERID NOT IN (SELECT USERID FROM info_client_range WHERE SHORTNAME='" + enumValue.SHORTNAME + "') "); db.ExecuteNonQuery(cmddeletefeedo, tran); } else if (seltype == "0") { var cmddeletefeedo = db.GetSqlStringCommand("insert into info_client_range select newid(),'" + enumValue.SHORTNAME + "',u.userid,'" + userid + "',GETDATE() from VW_user u where COMPANYID IN (" + op + ") AND USERID NOT IN (SELECT USERID FROM info_client_range WHERE SHORTNAME='" + enumValue.SHORTNAME + "') "); db.ExecuteNonQuery(cmddeletefeedo, 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 DelClientRange(List bodyList, string op, string seltype, string userid) { var result = new DBResult(); if (bodyList != null) { Database db = DatabaseFactory.CreateDatabase(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { foreach (var enumValue in bodyList) { if (seltype == "2") { var cmddeletefeedo = db.GetSqlStringCommand("delete from info_client_range where USERID IN (" + op + ") and SHORTNAME='"+enumValue.SHORTNAME+"' "); db.ExecuteNonQuery(cmddeletefeedo, tran); } else if (seltype == "1") { var cmddeletefeedo = db.GetSqlStringCommand("delete from info_client_range where userid in (select userid from VW_user where deptgid IN (" + op + ")) and SHORTNAME='" + enumValue.SHORTNAME + "' "); db.ExecuteNonQuery(cmddeletefeedo, tran); } else if (seltype == "0") { var cmddeletefeedo = db.GetSqlStringCommand("delete from info_client_range where userid in (select userid from VW_user where companyid IN (" + op + ")) and SHORTNAME='" + enumValue.SHORTNAME + "' "); db.ExecuteNonQuery(cmddeletefeedo, 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 static public int GetRdCount(string strCondition) { var strSql = new StringBuilder(); strSql.Append("SELECT Count(GID) AS CT from info_client (NOLOCK) "); if (strCondition.Trim() != String.Empty) { strSql.Append(" where " + strCondition); } var ct = 0; Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { ct = Convert.ToInt16(reader["CT"]); } reader.Close(); } return ct; } static public string GetMaxNum() { var strSql = new StringBuilder(); strSql.Append("select ISNULL(max(cast(CUSTNUM as int)),0) as maxxh from info_client(NOLOCK) "); var ct = 0; Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { ct = Convert.ToInt16(reader["maxxh"]); } reader.Close(); } ct = ct + 1; var custnum = ct.ToString(); if (custnum.Length < 7) { while (custnum.Length < 7) { custnum = "0" + custnum; } } return custnum; } static public int GetShipperRdCount(string strCondition) { var strSql = new StringBuilder(); strSql.Append("SELECT Count(info_shipper) AS CT from info_shipper (NOLOCK) "); if (strCondition.Trim() != String.Empty) { strSql.Append(" where " + strCondition); } var ct = 0; Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { ct = Convert.ToInt16(reader["CT"]); } reader.Close(); } return ct; } static public int GetFeeTemplateCount(string strCondition) { var strSql = new StringBuilder(); strSql.Append("SELECT Count(GID) AS CT from Cust_Truck_feetemplate (NOLOCK) "); if (strCondition.Trim() != String.Empty) { strSql.Append(" where " + strCondition); } var ct = 0; Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { ct = Convert.ToInt16(reader["CT"]); } reader.Close(); } return ct; } static public bool ISCUSTUSE(string CUSTNAME) { var strSql = new StringBuilder(); strSql.Append("SELECT Count(CUSTNAME) AS CT from v_all_client (NOLOCK) where CUSTNAME='" + CUSTNAME + "'"); var ct = 0; Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { ct = Convert.ToInt16(reader["CT"]); } reader.Close(); } if (ct > 0) return true; else return false; } public static DBResult UpdateEmail(string userid, string email) { var result = new DBResult(); Database db = DatabaseFactory.CreateDatabase("SHIPPINGBOX"); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { var cmdUpdate = db.GetSqlStringCommand( @" Update UserInfo set email=@Email where mobile=@Mobile "); cmdUpdate.Parameters.Clear(); db.AddInParameter(cmdUpdate, "@Email", DbType.String, email); db.AddInParameter(cmdUpdate, "@Mobile", DbType.String, userid); 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; } public static DBResult UpdateCust(string gid, string shortname,string codename) { 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 info_client set CODENAME=@CODENAME,SHORTNAME=@SHORTNAME where GID=@GID "); cmdUpdate.Parameters.Clear(); db.AddInParameter(cmdUpdate, "@CODENAME", DbType.String, codename); db.AddInParameter(cmdUpdate, "@SHORTNAME", DbType.String, shortname); db.AddInParameter(cmdUpdate, "@GID", DbType.String, 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; } #region BillNoSet static public List GetClientGroupList(string strCondition) { var strSql = new StringBuilder(); strSql.Append("SELECT [CODENAME],[SHORTNAME],CODENAME + '-' + SHORTNAME AS CodeAndName,PCORPNAME"); strSql.Append(" from info_client where 1=1 "); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" and " + strCondition); } return SetClientGroupData(strSql); } static public MsInfoClentGroup GetClientGroupData(string condition) { MsInfoClentGroup data = null; var list = GetClientGroupList(condition); if (list.Count > 0) data = list[0]; if (data == null) { data = new MsInfoClentGroup(); } return data; } private static List SetClientGroupData(StringBuilder strSql) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { MsInfoClentGroup data = new MsInfoClentGroup(); #region Set DB data to Object data.PCORPNAME = Convert.ToString(reader["PCORPNAME"]); data.CODENAME = Convert.ToString(reader["CODENAME"]); data.SHORTNAME = Convert.ToString(reader["SHORTNAME"]); data.CodeAndName = Convert.ToString(reader["CodeAndName"]); #endregion headList.Add(data); } reader.Close(); } return headList; } #endregion #region 账期列表 public static DBResult SaveAccDateDetail(MsInfoContract headData, List bodyList, 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 Info_Client_ACCDATE (GID,LINKGID,CONTRACTGID,BGNDATE,ENDDATE,OPLBNAME,SALE,ACCTYPE,ACCSTARTDATE,ACCMONTH,ACCDAYS,ALLOWAMOUNT,REMARK,MODIFIEDUSER,MODIFIEDTIME,BSSOURCE,COMMISSIONRATE,CARRIER,STLREMARK) values (@GID,@LINKGID,@CONTRACTGID,@BGNDATE,@ENDDATE,@OPLBNAME,@SALE,@ACCTYPE,@ACCSTARTDATE,@ACCMONTH,@ACCDAYS,@ALLOWAMOUNT,@REMARK,@MODIFIEDUSER,@MODIFIEDTIME,@BSSOURCE,@COMMISSIONRATE,@CARRIER,@STLREMARK) "); var cmdUpdate = db.GetSqlStringCommand( @"update Info_Client_ACCDATE set BGNDATE=@BGNDATE,ENDDATE=@ENDDATE,OPLBNAME=@OPLBNAME,SALE=@SALE,ACCTYPE=@ACCTYPE,ACCSTARTDATE=@ACCSTARTDATE,ACCMONTH=@ACCMONTH,ACCDAYS=@ACCDAYS,ALLOWAMOUNT=@ALLOWAMOUNT,REMARK=@REMARK, MODIFIEDUSER=@MODIFIEDUSER,MODIFIEDTIME=@MODIFIEDTIME,BSSOURCE=@BSSOURCE,COMMISSIONRATE=@COMMISSIONRATE,CARRIER=@CARRIER,STLREMARK=@STLREMARK where GID=@GID "); if (bodyList != null) { foreach (var enumValue in bodyList) { if (enumValue.COMMISSIONRATE == "" || enumValue.COMMISSIONRATE == null) enumValue.COMMISSIONRATE = "0"; if (enumValue.CONTRACTGID == "*" || enumValue.CONTRACTGID == "") { cmdInsert.Parameters.Clear(); db.AddInParameter(cmdInsert, "@GID", DbType.String, Guid.NewGuid().ToString()); db.AddInParameter(cmdInsert, "@CONTRACTGID", DbType.String, headData.GID); db.AddInParameter(cmdInsert, "@LINKGID", DbType.String, headData.LINKID); db.AddInParameter(cmdInsert, "@BGNDATE", DbType.String, enumValue.BGNDATE); db.AddInParameter(cmdInsert, "@ENDDATE", DbType.String, enumValue.ENDDATE); db.AddInParameter(cmdInsert, "@OPLBNAME", DbType.String, enumValue.OPLBNAME); db.AddInParameter(cmdInsert, "@SALE", DbType.String, enumValue.SALE); db.AddInParameter(cmdInsert, "@BSSOURCE", DbType.String, enumValue.BSSOURCE); db.AddInParameter(cmdInsert, "@COMMISSIONRATE", DbType.Decimal,Convert.ToDecimal(enumValue.COMMISSIONRATE)); db.AddInParameter(cmdInsert, "@ACCTYPE", DbType.String, enumValue.ACCTYPE); db.AddInParameter(cmdInsert, "@ACCSTARTDATE", DbType.String, enumValue.ACCSTARTDATE); db.AddInParameter(cmdInsert, "@ACCMONTH", DbType.String, enumValue.ACCMONTH); db.AddInParameter(cmdInsert, "@ACCDAYS", DbType.String, enumValue.ACCDAYS); db.AddInParameter(cmdInsert, "@ALLOWAMOUNT", DbType.String, enumValue.ALLOWAMOUNT); db.AddInParameter(cmdInsert, "@REMARK", DbType.String, enumValue.REMARK); db.AddInParameter(cmdInsert, "@CARRIER", DbType.String, enumValue.CARRIER); db.AddInParameter(cmdInsert, "@STLREMARK", DbType.String, enumValue.STLREMARK); db.AddInParameter(cmdInsert, "@MODIFIEDUSER", DbType.String, userid); db.AddInParameter(cmdInsert, "@MODIFIEDTIME", DbType.String, DateTime.Now.ToString()); db.ExecuteNonQuery(cmdInsert, tran); } else { cmdUpdate.Parameters.Clear(); db.AddInParameter(cmdUpdate, "@GID", DbType.String, enumValue.GID); db.AddInParameter(cmdInsert, "@LINKGID", DbType.String, headData.LINKID); db.AddInParameter(cmdUpdate, "@BGNDATE", DbType.String, enumValue.BGNDATE); db.AddInParameter(cmdUpdate, "@ENDDATE", DbType.String, enumValue.ENDDATE); db.AddInParameter(cmdUpdate, "@OPLBNAME", DbType.String, enumValue.OPLBNAME); db.AddInParameter(cmdUpdate, "@SALE", DbType.String, enumValue.SALE); db.AddInParameter(cmdUpdate, "@BSSOURCE", DbType.String, enumValue.BSSOURCE); db.AddInParameter(cmdUpdate, "@COMMISSIONRATE", DbType.Decimal, Convert.ToDecimal(enumValue.COMMISSIONRATE)); db.AddInParameter(cmdUpdate, "@ACCTYPE", DbType.String, enumValue.ACCTYPE); db.AddInParameter(cmdUpdate, "@ACCSTARTDATE", DbType.String, enumValue.ACCSTARTDATE); db.AddInParameter(cmdUpdate, "@ACCMONTH", DbType.String, enumValue.ACCMONTH); db.AddInParameter(cmdUpdate, "@ACCDAYS", DbType.String, enumValue.ACCDAYS); db.AddInParameter(cmdUpdate, "@ALLOWAMOUNT", DbType.String, enumValue.ALLOWAMOUNT); db.AddInParameter(cmdUpdate, "@REMARK", DbType.String, enumValue.REMARK); db.AddInParameter(cmdUpdate, "@CARRIER", DbType.String, enumValue.CARRIER); db.AddInParameter(cmdUpdate, "@STLREMARK", DbType.String, enumValue.STLREMARK); db.AddInParameter(cmdUpdate, "@MODIFIEDUSER", DbType.String, userid); db.AddInParameter(cmdUpdate, "@MODIFIEDTIME", DbType.String, DateTime.Now.ToString()); db.ExecuteNonQuery(cmdUpdate, tran); } } } tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "保存出现错误,请重试或联系系统管理员"; return result; } } result.Success = true; result.Message = "保存成功"; return result; } static public List GetACCDATEList ( string strCondition ) { var strSql = new StringBuilder(); strSql.Append(" SELECT GID,LINKGID,dbo.trimdate(BGNDATE) BGNDATE,dbo.trimdate(ENDDATE) ENDDATE,OPLBNAME,CARRIER,STLREMARK "); strSql.Append(" ,SALE,ACCTYPE,ACCSTARTDATE,ACCMONTH,ACCDAYS,ALLOWAMOUNT,MODIFIEDUSER,MODIFIEDUSER,dbo.GetUSER(MODIFIEDUSER) MODIFIEDUSERREF,MODIFIEDTIME,REMARK,CONTRACTGID,BSSOURCE,COMMISSIONRATE "); strSql.Append(" from Info_Client_ACCDATE "); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" where " + strCondition); } return SetACCDATEData(strSql); } private static List SetACCDATEData ( StringBuilder strSql ) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { Info_Client_ACCDATEmb data = new Info_Client_ACCDATEmb(); #region Set DB data to Object data.GID = Convert.ToString(reader["GID"]); data.LINKGID = Convert.ToString(reader["LINKGID"]); data.CONTRACTGID = Convert.ToString(reader["CONTRACTGID"]); data.BGNDATE = Convert.ToString(reader["BGNDATE"]); data.ENDDATE = Convert.ToString(reader["ENDDATE"]); data.OPLBNAME = Convert.ToString(reader["OPLBNAME"]); data.SALE = Convert.ToString(reader["SALE"]); data.BSSOURCE = Convert.ToString(reader["BSSOURCE"]); if (reader["COMMISSIONRATE"] != DBNull.Value) data.COMMISSIONRATE = Convert.ToString(reader["COMMISSIONRATE"]);//状态1 data.ACCTYPE = Convert.ToString(reader["ACCTYPE"]); data.ACCSTARTDATE = Convert.ToString(reader["ACCSTARTDATE"]); data.ACCMONTH = Convert.ToString(reader["ACCMONTH"]); data.ACCDAYS = Convert.ToString(reader["ACCDAYS"]); data.ALLOWAMOUNT = Convert.ToString(reader["ALLOWAMOUNT"]); data.MODIFIEDUSER = Convert.ToString(reader["MODIFIEDUSER"]); data.MODIFIEDUSERREF = Convert.ToString(reader["MODIFIEDUSERREF"]); data.MODIFIEDTIME = Convert.ToString(reader["MODIFIEDTIME"]); data.REMARK = Convert.ToString(reader["REMARK"]); data.CARRIER = Convert.ToString(reader["CARRIER"]); data.STLREMARK = Convert.ToString(reader["STLREMARK"]); #endregion headList.Add(data); } reader.Close(); } return headList; } #endregion #region 固定费用维护 static public List GetGDFYWHList(string strCondition, string sort = null) { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append("GID,FEENAME,CUSTOMERNAME,UNIT"); strSql.Append(",CURRENCY,UNITPRICE,REMARK,CREATEUSER,CREATETIME,EXCHANGERATE,ISCTN,TAXRATE,TAX"); strSql.Append(",(case ISCTN when 1 then '是' else '否' end) as ISCTNREF,ISINVOICE,ISADVANCEDPAY,FEEFRT,FEETYPE,(case FEETYPE when 1 then '应收' else '应付' end) as FEETYPEREF "); strSql.Append(" from cust_fee_templatedetail "); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" where " + strCondition); } var sortstring = DatasetSort.Getsortstring(sort); if (!string.IsNullOrEmpty(sortstring)) { strSql.Append(" order by " + sortstring); } return SetBodyData(strSql); } private static List SetBodyData(StringBuilder strSql) { var bodyList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { Info_Client_GDFYWHmb data = new Info_Client_GDFYWHmb(); #region Set DB data to Object data.GID = Convert.ToString(reader["GID"]); if (reader["UNITPRICE"] != DBNull.Value) data.UNITPRICE = Convert.ToDecimal(reader["UNITPRICE"]); if (reader["EXCHANGERATE"] != DBNull.Value) data.EXCHANGERATE = Convert.ToDecimal(reader["EXCHANGERATE"]); if (reader["TAXRATE"] != DBNull.Value) data.TAXRATE = Convert.ToDecimal(reader["TAXRATE"]); if (reader["TAX"] != DBNull.Value) data.TAX = Convert.ToDecimal(reader["TAX"]); data.FEENAME = Convert.ToString(reader["FEENAME"]); data.CUSTOMERNAME = Convert.ToString(reader["CUSTOMERNAME"]); data.UNIT = Convert.ToString(reader["UNIT"]); data.CURRENCY = Convert.ToString(reader["CURRENCY"]); data.REMARK = Convert.ToString(reader["REMARK"]); data.FEEFRT = Convert.ToString(reader["FEEFRT"]); data.CREATEUSER = Convert.ToString(reader["CREATEUSER"]); data.CREATETIME = Convert.ToString(reader["CREATETIME"]); if (reader["ISCTN"] != DBNull.Value) data.ISCTN = Convert.ToBoolean(reader["ISCTN"]); data.ISCTNREF = Convert.ToString(reader["ISCTNREF"]); if (reader["ISINVOICE"] != DBNull.Value) data.ISINVOICE = Convert.ToBoolean(reader["ISINVOICE"]); if (reader["ISADVANCEDPAY"] != DBNull.Value) data.ISADVANCEDPAY = Convert.ToBoolean(reader["ISADVANCEDPAY"]); if (reader["FEETYPE"] != DBNull.Value) data.FEETYPE = Convert.ToInt16(reader["FEETYPE"]); data.FEETYPEREF = Convert.ToString(reader["FEETYPEREF"]); #endregion bodyList.Add(data); } reader.Close(); } return bodyList; } #endregion #region 获得结算日期 static public STLDATEmb GetSTLDATE ( string CUSTOMERNAME,string OPLBNAME,string BUSDATE,string SALE,string CARRIER="" ) { var strcondition=new StringBuilder(); strcondition.Append(" LINKGID=(SELECT GID from info_client where Shortname='" + CUSTOMERNAME + "') and Convert(datetime,'" + BUSDATE + "') between BGNDATE and ENDDATE and (OPLBNAME='" + OPLBNAME + "' or ISNULL(OPLBNAME,'')='') "); if (!string.IsNullOrEmpty(SALE)) { strcondition.Append(" and (isnull(SALE,'')='" + SALE + "' or isnull(SALE,'')='') "); } else { strcondition.Append(" and isnull(SALE,'')='' "); } if (!string.IsNullOrEmpty(CARRIER)) { strcondition.Append(" and (isnull(CARRIER,'')='" + SALE + "' or isnull(CARRIER,'')='') "); } else { strcondition.Append(" and isnull(CARRIER,'')='' "); } strcondition.Append(" order by SALE desc,CARRIER desc,BGNDATE ASC "); var ClientACCDATEList = GetACCDATEList(strcondition.ToString()); if (ClientACCDATEList.Count==0){ var _r=new STLDATEmb(); _r.STLDATE=BUSDATE; _r.STLNAME = ""; _r.BSSOURCE = ""; _r.ALLOWAMOUNT = 0; return _r; }else{ var CA = ClientACCDATEList[0]; var _r = new STLDATEmb(); _r.STLNAME = CA.ACCTYPE; _r.BSSOURCE = CA.BSSOURCE; _r.ALLOWAMOUNT =Convert.ToDecimal(CA.ALLOWAMOUNT); if (CA.ACCSTARTDATE == "INVDATE") { _r.STLDATE = BUSDATE; return _r; } if (CA.ACCTYPE == "月结") { //延迟月份 指定日 var Date_0=Convert.ToDateTime(BUSDATE); var year_0 =Date_0.Year; var month_0=Date_0.Month; var day_0 = Date_0.Day; var month = Convert.ToInt32(CA.ACCMONTH); if (month<=0) month=1; //var tmonth = Convert.ToInt32((Math.Ceiling(Convert.ToDecimal(month_0 / month)) + 1) * month ); //if (tmonth > 12) { // var years = Convert.ToDouble(tmonth / 12); // tmonth = tmonth % 12; // year_0=year_0+Convert.ToInt32( Math.Floor(years)); //} var day = Convert.ToInt32(CA.ACCDAYS); //var d = new DateTime(); var d = Date_0.AddMonths(month); if (day > 28) { d = new DateTime(d.Year, d.Month, 1).AddMonths(1).AddDays(-1); // d = Convert.ToDateTime(d).AddMonths(1).AddDays(-1); }else{ if (day == 0) { d = Date_0.AddMonths(month); }else d = new DateTime(d.Year, d.Month, day); } _r.STLDATE = d.ToShortDateString(); return _r; }else if (CA.ACCTYPE == "约定天数")// CA.ACCTYPE == "固定期限"|| { var month = Convert.ToInt32(CA.ACCMONTH); var Date = Convert.ToDateTime(BUSDATE);//.AddMonths(month); Date = Date.AddDays(Convert.ToInt32(CA.ACCDAYS)); _r.STLDATE = Date.ToShortDateString(); return _r; } else if (CA.ACCTYPE == "旬结")// CA.ACCTYPE == "固定期限"|| { var month = Convert.ToInt32(CA.ACCMONTH); var Date = Convert.ToDateTime(BUSDATE);//.AddMonths(month); Date = Date.AddDays(Convert.ToInt32(10)); _r.STLDATE = Date.ToShortDateString(); return _r; } else if (CA.ACCTYPE == "半月结") { var _busdate = Convert.ToDateTime(BUSDATE); var Date = Convert.ToDateTime(BUSDATE); if (_busdate.Day < 16) { var TMPDAYS =Convert.ToInt32(CA.ACCDAYS); if (Convert.ToInt32(CA.ACCDAYS) > 28) { var tmpdate= new DateTime(_busdate.Year, _busdate.Month,1); tmpdate = tmpdate.AddMonths(1).AddDays(-1); if (tmpdate.Day < Convert.ToInt32(CA.ACCDAYS)) TMPDAYS = tmpdate.Day; } Date = new DateTime(_busdate.Year, _busdate.Month, TMPDAYS); } else { var TMPDAYS = Convert.ToInt32(CA.ACCMONTH); if (Convert.ToInt32(CA.ACCDAYS) > 28) { var tmpdate = new DateTime(_busdate.Year, _busdate.Month, 1); tmpdate = tmpdate.AddMonths(2).AddDays(-1); if (tmpdate.Day < Convert.ToInt32(CA.ACCMONTH)) TMPDAYS = tmpdate.Day; } Date = new DateTime(_busdate.Year, _busdate.Month, TMPDAYS); Date = Date.AddMonths(1); } _r.STLDATE = Date.ToShortDateString(); return _r; } else if (CA.ACCTYPE == "季结") { var _busdate = Convert.ToDateTime(BUSDATE); var Date = _busdate.AddDays(Convert.ToInt32(Convert.ToInt16(CA.ACCMONTH)*90)); _r.STLDATE = Date.ToShortDateString(); return _r; } else { _r.STLDATE = BUSDATE; return _r; } /*if (CA.ACCTYPE == "约定天数") { }*/ } } #endregion #region 获得账期天数 static public STLDATEmb GetSTLDAYS ( string CUSTOMERNAME, string OPLBNAME, string BUSDATE, string SALE ) { var strcondition = new StringBuilder(); strcondition.Append(" LINKGID=(SELECT GID from info_client where Shortname='" + CUSTOMERNAME + "') and Convert(datetime,(dbo.trimdate(BGNDATE)+' 00:00:00'))<=Convert(datetime,'" + BUSDATE + "') " + " and Convert(datetime,(dbo.trimdate(ENDDATE)+' 23:59:59'))>=Convert(datetime,'" + BUSDATE + "') and OPLBNAME='" + OPLBNAME + "' "); if (!string.IsNullOrEmpty(SALE)) { strcondition.Append(" and SALE='" + SALE + "' "); } strcondition.Append(" order by BGNDATE "); var ClientACCDATEList = GetACCDATEList(strcondition.ToString()); if (ClientACCDATEList.Count == 0) { var _r = new STLDATEmb(); _r.STLDATE = BUSDATE; _r.STLNAME = ""; return _r; } else { var CA = ClientACCDATEList[0]; var _r = new STLDATEmb(); _r.STLNAME = CA.ACCTYPE; if (CA.ACCTYPE == "月结") { //延迟月份 指定日 var Date_0 = Convert.ToDateTime(BUSDATE); var year_0 = Date_0.Year; var month_0 = Date_0.Month; var month = Convert.ToInt32(CA.ACCMONTH); if (month <= 0) month = 1; var tmonth = Convert.ToInt32((Math.Ceiling(Convert.ToDecimal(month_0 / month)) + 1) * month); if (tmonth > 12) { tmonth = tmonth % 12; var years = Convert.ToDouble(year_0 / 12); year_0 = year_0 + Convert.ToInt32(Math.Floor(years)); } var day = Convert.ToInt32(CA.ACCDAYS); var d = new DateTime(); if (day > 28) { var Date = new DateTime(year_0, tmonth, 1); d = Convert.ToDateTime(Date).AddMonths(1).AddDays(-1); } else { d = new DateTime(year_0, tmonth, day); } DateTime d1 = Convert.ToDateTime(BUSDATE); DateTime d2 = Convert.ToDateTime(d.ToShortDateString()); TimeSpan d3 = d2.Subtract(d1); _r.STLDAYS = d3.Days.ToString(); return _r; } else if (CA.ACCTYPE == "约定天数")// CA.ACCTYPE == "固定期限"|| { var month = Convert.ToInt32(CA.ACCMONTH); var Date = Convert.ToDateTime(BUSDATE);//.AddMonths(month); Date = Date.AddDays(Convert.ToInt32(CA.ACCDAYS)); _r.STLDATE = Date.ToShortDateString(); DateTime d1 = Convert.ToDateTime(BUSDATE); DateTime d2 = Convert.ToDateTime(Date.ToShortDateString()); TimeSpan d3 = d2.Subtract(d1); _r.STLDAYS = d3.Days.ToString(); return _r; } else if (CA.ACCTYPE == "半月结") { var _busdate = Convert.ToDateTime(BUSDATE); var Date = Convert.ToDateTime(BUSDATE); if (_busdate.Day < 16) { Date = new DateTime(_busdate.Year, _busdate.Month, Convert.ToInt32(CA.ACCDAYS)); } else { Date = new DateTime(_busdate.Year, _busdate.Month, Convert.ToInt32(CA.ACCMONTH)); Date = Date.AddMonths(1); } _r.STLDATE = Date.ToShortDateString(); DateTime d1 = Convert.ToDateTime(BUSDATE); DateTime d2 = Convert.ToDateTime(Date.ToShortDateString()); TimeSpan d3 = d2.Subtract(d1); _r.STLDAYS = d3.Days.ToString(); return _r; } else { _r.STLDATE = BUSDATE; return _r; } /*if (CA.ACCTYPE == "约定天数") { }*/ } } #endregion #region 往来单位审核 public static DBResult IC_Start ( List _List, string USERID ) //申请签入 { var WorkFlowName = "MsInfoClient_Audit"; Database db = DatabaseFactory.CreateDatabase(); var result = new DBResult(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { foreach (var _bill in _List) { Resultmb WorkResult = WorkFlowDAL.WorkFlowStart(WorkFlowName, _bill.GID, USERID,_bill.SHORTNAME, _bill.GID,""); if (WorkResult.Success == true) { if (WorkResult.islast != true) { var cmdupdate = db.GetSqlStringCommand("update Info_client set BLSTATUS=2 where GID=@GID and BLSTATUS in(1,6) "); cmdupdate.Parameters.Clear(); //db.AddInParameter(cmdupdate, "@AUDITDATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); db.AddInParameter(cmdupdate, "@GID", DbType.String, _bill.GID); db.ExecuteNonQuery(cmdupdate, tran); } else { var cmdupdate = db.GetSqlStringCommand("update Info_client set BLSTATUS=0 where GID=@GID and BLSTATUS in(1,6) "); cmdupdate.Parameters.Clear(); //db.AddInParameter(cmdupdate, "@AUDITDATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); db.AddInParameter(cmdupdate, "@GID", DbType.String, _bill.GID); db.ExecuteNonQuery(cmdupdate, tran); } } else { result.Success = false; result.Message = "提交错误!"; } } 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 IC_back ( List _List, string USERID ) //申请签入_撤回 { var WorkFlowName = "MsInfoClient_Audit"; Database db = DatabaseFactory.CreateDatabase(); var result = new DBResult(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { foreach (var _bill in _List) { Resultmb WorkResult = WorkFlowDAL.WorkFlowReset(WorkFlowName, _bill.GID, USERID); if (WorkResult.Success == true) { var cmdupdate = db.GetSqlStringCommand("update Info_Client set BLSTATUS=1 where GID=@GID and BLSTATUS=2 "); cmdupdate.Parameters.Clear(); //db.AddInParameter(cmdupdate, "@AUDITDATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); db.AddInParameter(cmdupdate, "@GID", DbType.String, _bill.GID); db.ExecuteNonQuery(cmdupdate, tran); } else { result.Success = false; result.Message = "提交错误!"; } } 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 IC_Auditback ( List _List, string USERID ) //申请签入_驳回 { var WorkFlowName = "MsInfoClient_Audit"; Database db = DatabaseFactory.CreateDatabase(); var result = new DBResult(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { foreach (var _bill in _List) { Resultmb WorkResult = WorkFlowDAL.DeleteWorkFlowDo(WorkFlowName, _bill.GID, USERID, ""); if (WorkResult.Success == true) { var cmdupdate = db.GetSqlStringCommand("update Info_client set BLSTATUS=6 where GID=@GID and BLSTATUS in (2,0) "); cmdupdate.Parameters.Clear(); //db.AddInParameter(cmdupdate, "@AUDITDATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); db.AddInParameter(cmdupdate, "@GID", DbType.String, _bill.GID); db.ExecuteNonQuery(cmdupdate, tran); } else { result.Success = false; result.Message = "提交错误!"; } } 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 IC_Audit ( List _List, string USERID ) //申请签入_驳回 { var WorkFlowName = "MsInfoClient_Audit"; Database db = DatabaseFactory.CreateDatabase(); var result = new DBResult(); using (var conn = db.CreateConnection()) { conn.Open(); var tran = conn.BeginTransaction(); try { foreach (var _bill in _List) { Resultmb WorkResult = WorkFlowDAL.InsertWorkFlowDo(WorkFlowName, _bill.GID, USERID,_bill.SHORTNAME); if (WorkResult.Success == true) { if (WorkResult.islast == true) { var cmdupdate = db.GetSqlStringCommand("update Info_Client set BLSTATUS=0 where GID=@GID and BLSTATUS =2 "); cmdupdate.Parameters.Clear(); //db.AddInParameter(cmdupdate, "@AUDITDATE", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); db.AddInParameter(cmdupdate, "@GID", DbType.String, _bill.GID); db.ExecuteNonQuery(cmdupdate, tran); } else { } } else { result.Success = false; result.Message = "提交错误!"; } } result = new DBResult(); result.Success = true; result.Message = "提交成功"; tran.Commit(); } catch (Exception) { tran.Rollback(); result.Success = false; result.Message = "提交错误,请重试或联系系统管理员"; //return result; } } return result; } #endregion #region 往来单位图片 static public List GetImgList(string strCondition, string sort = null,string USERID="1") { var strSql = new StringBuilder(); var rangstr = ""; if (USERID == "1") rangstr = "1=2"; else { rangstr = BasicDataRefDAL.GetVisableRange("modInfoClinet_info", USERID, "", "CREATEUSER"); } if (!string.IsNullOrEmpty(rangstr)) { if (!string.IsNullOrEmpty(strCondition)) { strCondition = strCondition + " and " + rangstr; } else { strCondition = rangstr; } } 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 NAME "); } return SetImgData(strSql); } private static List SetImgData(StringBuilder strSql)//, List fieldlist { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); string sql = MsInfoClientImgmb.getSQL() + strSql; using (IDataReader reader = db.ExecuteReader(CommandType.Text, sql)) { while (reader.Read()) { ////根据字段名设定同名属性值 MsInfoClientImgmb data = new MsInfoClientImgmb(); data.SetExtendValue(reader); data.SetValue("INDATABASE_OLD", data.GetValue("INDATABASE")); headList.Add(data); } reader.Close(); } return headList; } #endregion #region 参照部分 #region FileList static public List GetUpLoadFileList ( string strCondition ) { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append("GID,PID,FILENAME,FILETYPE,IMGFILE,UPLOADEMPLY,UPLOADDATE,FILEPATH"); strSql.Append(" from info_files "); if (!string.IsNullOrEmpty(strCondition)) { strSql.Append(" where " + strCondition); } return SetUpLoadFileData(strSql); } private static List SetUpLoadFileData ( StringBuilder strSql ) { var headList = new List(); Database db = DatabaseFactory.CreateDatabase(); using (IDataReader reader = db.ExecuteReader(CommandType.Text, strSql.ToString())) { while (reader.Read()) { MsUpLoadFile data = new MsUpLoadFile(); #region Set DB data to Object data.GID = Convert.ToString(reader["GID"]); data.PID = Convert.ToString(reader["PID"]); data.UPLOADEMPLY = Convert.ToString(reader["UPLOADEMPLY"]); data.UPLOADDATE = Convert.ToString(reader["UPLOADDATE"]); data.FILETYPE = Convert.ToString(reader["FILETYPE"]); data.FILENAME = Convert.ToString(reader["FILENAME"]); data.FILEPATH = Convert.ToString(reader["FILEPATH"]); #endregion headList.Add(data); } reader.Close(); } return headList; } #endregion public static bool UpdateFileData ( HttpRequestBase request, string filename,string Path, string GID, out string msg ) { var isSucess = false; msg = ""; Stream stream = new FileStream(filename, FileMode.Open); byte[] data = new byte[stream.Length]; stream.Read(data, 0, data.Length); stream.Close(); using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction)) { try { const string insertSql = @" delete from info_files where PID=@PID0 "+ " insert info_files (GID,PID,UPLOADEMPLY,UPLOADDATE,FILENAME,FILETYPE,IMGFILE) "+ " VALUES(@GID,@PID,@UPLOADEMPLY,@UPLOADDATE,@FILENAME,@FILETYPE,@Image) "; SqlParameter[] insertParms = new SqlParameter[] { new SqlParameter("@GID",SqlDbType.VarChar), new SqlParameter("@PID",SqlDbType.VarChar), new SqlParameter("@UPLOADEMPLY",SqlDbType.VarChar), new SqlParameter("@UPLOADDATE",SqlDbType.VarChar), new SqlParameter("@FILENAME",SqlDbType.VarChar), new SqlParameter("@FILETYPE",SqlDbType.VarChar), new SqlParameter("@PID0",SqlDbType.VarChar), new SqlParameter("@Image",SqlDbType.Image) }; insertParms[0].Value = Guid.NewGuid().ToString(); insertParms[1].Value = GID; insertParms[2].Value = CookieConfig.GetCookie_UserName(request); insertParms[3].Value = DateTime.Now.ToString(); insertParms[4].Value = Path; insertParms[5].Value = "结算单位联系人签名"; insertParms[6].Value = GID; insertParms[7].Value = data; SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, insertSql, insertParms); sqlTran.Commit(); isSucess = true;//状态为1表示插入成功 } catch (Exception execError) { isSucess = false;//有异常,插入失败 sqlTran.Rollback(); msg = execError.Message; } finally { SqlHelper.CloseConnection(); } } return isSucess; } static public int SaveFileList ( IList tempFileEntities, string tempBSNO ) { int iResult = 0; const string SQL_INSERT = @"insert info_files (GID,PID,UPLOADEMPLY,UPLOADDATE,FILENAME,FILETYPE) VALUES(@GID,@PID,@UPLOADEMPLY,@UPLOADDATE,@FILENAME,@FILETYPE) "; const string SQL_UPDATE = @"update info_files SET FILENAME=@FILENAME where GID=@GID"; using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction)) { try { foreach (MsUpLoadFile fileEntity in tempFileEntities) { if (fileEntity.PID == "*" || fileEntity.PID == "") { SqlParameter[] insertParms = new SqlParameter[] { new SqlParameter("@GID",SqlDbType.VarChar), new SqlParameter("@PID",SqlDbType.VarChar), new SqlParameter("@UPLOADEMPLY",SqlDbType.VarChar), new SqlParameter("@UPLOADDATE",SqlDbType.VarChar), new SqlParameter("@FILENAME",SqlDbType.VarChar), new SqlParameter("@FILETYPE",SqlDbType.VarChar) }; insertParms[0].Value = fileEntity.GID; insertParms[1].Value = tempBSNO; insertParms[2].Value = fileEntity.UPLOADEMPLY; insertParms[3].Value = fileEntity.UPLOADDATE; insertParms[4].Value = fileEntity.FILENAME; insertParms[5].Value = fileEntity.FILETYPE; SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, SQL_INSERT, insertParms); } else { SqlParameter[] updateParms = new SqlParameter[] { new SqlParameter("@FILENAME",SqlDbType.VarChar) }; updateParms[0].Value = fileEntity.GID; updateParms[1].Value = tempBSNO; updateParms[2].Value = fileEntity.UPLOADEMPLY; updateParms[3].Value = fileEntity.UPLOADDATE; updateParms[4].Value = fileEntity.FILENAME; SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, SQL_UPDATE, updateParms); } } sqlTran.Commit(); iResult = 1;//状态为1表示插入成功 } catch (Exception execError) { iResult = -1;//有异常,插入失败 sqlTran.Rollback(); iResult = -2;//插入异常,事务已回滚成功 throw execError; } finally { SqlHelper.CloseConnection(); } } return iResult; } static public int DeleteUploadFile ( string tempGId ) { int iResult = 0; using (SqlTransaction sqlTran = SqlHelper.BeginTransaction(SqlHelper.ConnectionStringLocalTransaction)) { try { var strSql = new StringBuilder(); strSql.Append("Delete from info_files where "); strSql.Append(" GId in (" + tempGId + ")"); SqlHelper.ExecuteNonQuery(sqlTran, CommandType.Text, strSql.ToString()); sqlTran.Commit(); iResult = 1;//状态为1表示插入成功 } catch (Exception execError) { iResult = -1;//有异常,插入失败 sqlTran.Rollback(); iResult = -2;//插入异常,事务已回滚成功 throw execError; } finally { SqlHelper.CloseConnection(); } } return iResult; } #endregion } }