|
|
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;
|
|
|
using DSWeb.Common.DB;
|
|
|
using DSWeb.MvcShipping.Helper;
|
|
|
using DSWeb.SoftMng.Model;
|
|
|
using DSWeb.SysMng.DAL.SysRoleTaskQuery;
|
|
|
using javax.xml.crypto;
|
|
|
using System.Web.UI.WebControls;
|
|
|
using com.sun.org.apache.xml.@internal.resolver.helpers;
|
|
|
using MimeKit;
|
|
|
using DSWeb.MvcShipping.Models.WMSNew;
|
|
|
using NPOI.SS.Formula.Functions;
|
|
|
using System.Data.Entity.Migrations;
|
|
|
using DSWeb.MvcShipping.Models.MsChFee;
|
|
|
using NPOI.OpenXmlFormats.Dml;
|
|
|
using DSWeb.Areas.OA.Models.ChfeeList;
|
|
|
using DSWeb.Areas.MvcShipping.Helper;
|
|
|
using Quartz.Util;
|
|
|
|
|
|
namespace DSWeb.MvcShipping.DAL.MsInfoClient
|
|
|
{
|
|
|
public class MsInfoClientDAL: IGetTotalCount
|
|
|
{
|
|
|
#region BillNoSet
|
|
|
|
|
|
static public List<MsClient> GetDataList(int start, int limit, string strCondition, string userid, string username, string companyid, string sort = null)
|
|
|
{
|
|
|
|
|
|
SysRoleTaskQueryDAL.SaveQuery(userid, "modExchangesUnit", "formInfoClientIndex", strCondition);
|
|
|
|
|
|
var rangstr = GetRangDAStr("index", userid, username, 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],[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");
|
|
|
strSql.Append(",(select showname from [user] where gid=info_client.MODIFIEDUSER) MODIFIEDUSERREF ");
|
|
|
strSql.Append(",RANGETYPE ");
|
|
|
strSql.Append(" from info_client WITH (NOLOCK) where 1=1 ");
|
|
|
|
|
|
|
|
|
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<MsClient> 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],[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");
|
|
|
strSql.Append(",(select showname from [user] where gid=info_client.MODIFIEDUSER) MODIFIEDUSERREF ");
|
|
|
strSql.Append(",RANGETYPE ");
|
|
|
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 WITH (NOLOCK) 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;
|
|
|
}
|
|
|
|
|
|
public int GetTotalCount(string strCondition, string userid, string usercode, string companyid)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
return getTotalCount(strCondition, userid, usercode, companyid);
|
|
|
}
|
|
|
catch (Exception e) {
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
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],[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");
|
|
|
strSql.Append(",(select showname from [user] where gid=info_client.MODIFIEDUSER) MODIFIEDUSERREF ");
|
|
|
strSql.Append(",RANGETYPE,''CONTRACTDATE, '' CONTRACTSTATUS");
|
|
|
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],[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");
|
|
|
strSql.Append(",(select showname from [user] where gid=info_client.MODIFIEDUSER) MODIFIEDUSERREF ");
|
|
|
strSql.Append(",RANGETYPE ");
|
|
|
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<MsClient> SetData(StringBuilder strSql,string USERID="")
|
|
|
{
|
|
|
var headList = new List<MsClient>();
|
|
|
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.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");
|
|
|
|
|
|
data.RANGETYPE = Convert.ToString(reader["RANGETYPE"]);
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
data.SetContractStatus(ContractList);
|
|
|
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 联系人
|
|
|
|
|
|
static public List<MsClientContact> 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");
|
|
|
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<MsClientContact> SetContactData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<MsClientContact>();
|
|
|
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"]);
|
|
|
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<MsClientContact> 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])
|
|
|
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) ");
|
|
|
|
|
|
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
|
|
|
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.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.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<MsInfoContract> 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<MsInfoContract> SetContractData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<MsInfoContract>();
|
|
|
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
|
|
|
|
|
|
public static DBResult SaveCustFee(MsClient headData, List<Info_Client_GDFYWHmb> 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)
|
|
|
values (@GID,@FEENAME,@CUSTOMERNAME,@UNIT,@CURRENCY,@UNITPRICE,@REMARK,@CREATEUSER,@CREATETIME,@EXCHANGERATE,@ISCTN,@ISINVOICE,@ISADVANCEDPAY,@FEEFRT,@TAXRATE,@TAX) ");
|
|
|
|
|
|
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.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<MsHangXinCust> 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<MsHangXinCust> 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<System.Text.RegularExpressions.Match>().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<System.Text.RegularExpressions.Match>().Last().ToString();
|
|
|
|
|
|
return resultstr;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
#region 客户部门
|
|
|
static public List<MsCompanysDept> 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<MsCompanysDept> SetDeptData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<MsCompanysDept>();
|
|
|
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<MsClientAccount> 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<MsClientAccount> SetBankData(StringBuilder strSql,string isedit, DbTransaction tran = null)
|
|
|
{
|
|
|
var headList = new List<MsClientAccount>();
|
|
|
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<MsClientAccount> 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<MsInfoShipper> 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<MsInfoShipper> SetShipperData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<MsInfoShipper>();
|
|
|
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 权限范围
|
|
|
|
|
|
/// <summary>
|
|
|
/// 该算法改为只限制销售
|
|
|
///
|
|
|
/// </summary>
|
|
|
/// <param name="tb"></param>
|
|
|
/// <param name="userid"></param>
|
|
|
/// <param name="username"></param>
|
|
|
/// <param name="companyid"></param>
|
|
|
/// <returns></returns>
|
|
|
public static string GetRangDAStr(string tb, string userid, string username, string companyid)
|
|
|
{
|
|
|
string str = "";// ISNULL(BLSTATUS,1)=0 and RANGETYPE='集团'
|
|
|
|
|
|
|
|
|
var cdc = new CommonDataContext();
|
|
|
var userinfo = cdc.VW_user_all.FirstOrDefault(x => x.USERID == userid);
|
|
|
|
|
|
if (userinfo == null) return (" 1=2 ");
|
|
|
if (userinfo != null && userinfo.ISSALEMAN== "true") {
|
|
|
//是销售 看不到录入人 不是自己且不为空的 Rangetype=个人 的往来单位
|
|
|
//str = $" (RANGETYPE='集团' or (RANGETYPE='个人' and (OPNAME='{username}' or SALE='{username}')))";//or isnull(OPNAME,'')=''
|
|
|
|
|
|
//20220901 又改成 如果查询者是销售 则受用户权限控制
|
|
|
//strSql.Append($" and ((RANGETYPE='个人' and (SHORTNAME in (SELECT SHORTNAME from info_client_range where USERID='" + userid + "' )) ) or RANGETYPE='集团' ) ");
|
|
|
//str = $" (RANGETYPE='集团' or (RANGETYPE='个人' and (SHORTNAME in (SELECT SHORTNAME from info_client_range where USERID='" + userid + "' ))))";
|
|
|
str = $" ((RANGETYPE = '个人' and exists(select 1 from info_client_range where info_client_range.SHORTNAME = info_Client.SHORTNAME and USERID = '" + userid + $"')) or (SALE='{username}') or (OPNAME='{username}' or OPNAME in(select SHOWNAME from [user] where codename='{username}')) or RANGETYPE = '集团' )";
|
|
|
|
|
|
}
|
|
|
|
|
|
return str;
|
|
|
/*
|
|
|
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 + "'";
|
|
|
}
|
|
|
|
|
|
|
|
|
//20220823 增加对 info_client.TANGETYPE 的查询支持
|
|
|
//info_client.TANGETYPE='集团' 则都可以查看
|
|
|
|
|
|
var InfoClintBlstatus = MsSysParamSetDAL.GetData("PARAMNAME='InfoClintBlstatus'");
|
|
|
if (InfoClintBlstatus.PARAMVALUE != "")
|
|
|
{
|
|
|
if (InfoClintBlstatus.PARAMVALUE == "1")
|
|
|
{
|
|
|
var modCrmClientVisible = MsBaseInfoDAL.MsBaseInfoDAL.GetUserModuleEnable("modCrmClientVisible", userid);
|
|
|
if (modCrmClientVisible)
|
|
|
{
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (str != "") str += (" and ");
|
|
|
str += (" (OPNAME='" + username + "' or (ISNULL(BLSTATUS,1)=0)) ");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (str != "")
|
|
|
{
|
|
|
|
|
|
str = "((" + str + ") or RANGETYPE='集团')";
|
|
|
}
|
|
|
|
|
|
return str;
|
|
|
*/
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 客户权限范围
|
|
|
/// <summary>
|
|
|
/// 2个人 1部门 0分公司
|
|
|
/// </summary>
|
|
|
/// <param name="bodyList"></param>
|
|
|
/// <param name="op"></param>
|
|
|
/// <param name="seltype"></param>
|
|
|
/// <param name="userid"></param>
|
|
|
/// <returns></returns>
|
|
|
public static DBResult InsertClientRange(List<MsClient> 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;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 删除人员、公司权限
|
|
|
/// seltype= 2:op是userid列表,3全部,1按部门,0按公司
|
|
|
/// </summary>
|
|
|
/// <param name="bodyList"></param>
|
|
|
/// <param name="op"></param>
|
|
|
/// <param name="seltype"></param>
|
|
|
/// <param name="userid"></param>
|
|
|
/// <returns></returns>
|
|
|
public static DBResult DelClientRange(List<MsClient> 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);
|
|
|
}
|
|
|
else if (seltype == "3")
|
|
|
{
|
|
|
var cmddeletefeedo = db.GetSqlStringCommand("delete 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;
|
|
|
}
|
|
|
|
|
|
|
|
|
#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<MsInfoClentGroup> 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<MsInfoClentGroup> SetClientGroupData(StringBuilder strSql)
|
|
|
{
|
|
|
var headList = new List<MsInfoClentGroup>();
|
|
|
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<Info_Client_ACCDATEmb> 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)
|
|
|
values (@GID,@LINKGID,@CONTRACTGID,@BGNDATE,@ENDDATE,@OPLBNAME,@SALE,@ACCTYPE,@ACCSTARTDATE,@ACCMONTH,@ACCDAYS,@ALLOWAMOUNT,@REMARK,@MODIFIEDUSER,@MODIFIEDTIME,@BSSOURCE,@COMMISSIONRATE) ");
|
|
|
|
|
|
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 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, "@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, "@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<Info_Client_ACCDATEmb> GetACCDATEList ( string strCondition )
|
|
|
{
|
|
|
|
|
|
var strSql = new StringBuilder();
|
|
|
strSql.Append(" SELECT GID,LINKGID,dbo.trimdate(BGNDATE) BGNDATE,dbo.trimdate(ENDDATE) ENDDATE,OPLBNAME ");
|
|
|
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<Info_Client_ACCDATEmb> SetACCDATEData ( StringBuilder strSql )
|
|
|
{
|
|
|
var headList = new List<Info_Client_ACCDATEmb>();
|
|
|
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"]);
|
|
|
#endregion
|
|
|
headList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
return headList;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 固定费用维护
|
|
|
static public List<Info_Client_GDFYWHmb> 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 ");
|
|
|
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<Info_Client_GDFYWHmb> SetBodyData(StringBuilder strSql)
|
|
|
{
|
|
|
var bodyList = new List<Info_Client_GDFYWHmb>();
|
|
|
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"]);
|
|
|
#endregion
|
|
|
|
|
|
bodyList.Add(data);
|
|
|
}
|
|
|
reader.Close();
|
|
|
}
|
|
|
|
|
|
return bodyList;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 获得结算日期
|
|
|
static public STLDATEmb GetSTLDATE ( 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,'" + 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,'')='' ");
|
|
|
}
|
|
|
strcondition.Append(" order by SALE desc,BGNDATE ASC ");
|
|
|
|
|
|
var ClientACCDATEList = GetACCDATEList(strcondition.ToString());
|
|
|
if (ClientACCDATEList.Count==0){
|
|
|
var _r=new STLDATEmb();
|
|
|
_r.STLDATE=BUSDATE;
|
|
|
_r.STLNAME = "";
|
|
|
_r.BSSOURCE = "";
|
|
|
return _r;
|
|
|
}else{
|
|
|
var CA = ClientACCDATEList[0];
|
|
|
|
|
|
var _r = new STLDATEmb();
|
|
|
_r.STLNAME = CA.ACCTYPE;
|
|
|
_r.BSSOURCE = CA.BSSOURCE;
|
|
|
|
|
|
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 根据业务BSNO,判断该客户该业务当前属于何种账期类型。如无账期信息,或者有但是没有找到,则返回一条acctype=票结 的查询结果
|
|
|
|
|
|
/// <summary>
|
|
|
/// 根据业务BSNO,判断该客户该业务当前属于何种账期类型(日期用ETD)。如无账期信息,或者有但是没有找到,则返回一条acctype=票结 的查询结果
|
|
|
/// 如果实际上有多条满足条件,则会返回其中的某一条
|
|
|
/// </summary>
|
|
|
/// <param name="BSNO"></param>
|
|
|
/// <returns></returns>
|
|
|
public static Info_Client_ACCDATE_mb GetCustAccdate(string BSNO)
|
|
|
{
|
|
|
var result = new Info_Client_ACCDATE_mb();
|
|
|
result.ACCTYPE = "票结";
|
|
|
var cdc = new CommonDataContext();
|
|
|
|
|
|
var bs = cdc.v_op_bs.FirstOrDefault(x => x.BSNO == BSNO);
|
|
|
if (bs == null || string.IsNullOrWhiteSpace(bs.CUSTOMERNAME))
|
|
|
{
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
var cust = cdc.info_client.FirstOrDefault(x => x.SHORTNAME == bs.CUSTOMERNAME);
|
|
|
|
|
|
var accdatainfoList = cdc.Info_Client_ACCDATE.Where(x => x.LINKGID == cust.GID).ToList();
|
|
|
|
|
|
if (accdatainfoList == null || accdatainfoList.Count == 0)
|
|
|
{
|
|
|
return result;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//账期信息有三个维度 sale oplbname 有效期
|
|
|
//优先找全部符合的 如无则寻找有销售无oplbname的
|
|
|
//如无则寻找有oplbname无销售的
|
|
|
//如无则寻找没有销售没有业务类型只有有效期的
|
|
|
//
|
|
|
//1首先按 sale oplbname 有效期 找
|
|
|
foreach (var 账期item in accdatainfoList)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
//1首先按 sale oplbname 有效期 找
|
|
|
if (账期item.OPLBNAME != bs.OPLBNAME || 账期item.SALE != bs.SALE) continue;
|
|
|
|
|
|
var settledate = Convert.ToDateTime(bs.ETD);
|
|
|
var startdate = Convert.ToDateTime(账期item.BGNDATE);
|
|
|
var enddate = Convert.ToDateTime(账期item.ENDDATE);
|
|
|
if (startdate <= settledate && enddate >= settledate)
|
|
|
{
|
|
|
result = 账期item;
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
////2按sale找
|
|
|
foreach (var 账期item in accdatainfoList)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
//2按sale找
|
|
|
if (账期item.SALE != bs.SALE) continue;
|
|
|
|
|
|
var settledate = Convert.ToDateTime(bs.ETD);
|
|
|
var startdate = Convert.ToDateTime(账期item.BGNDATE);
|
|
|
var enddate = Convert.ToDateTime(账期item.ENDDATE);
|
|
|
if (startdate <= settledate && enddate >= settledate)
|
|
|
{
|
|
|
result = 账期item;
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//3按业务类型找
|
|
|
foreach (var 账期item in accdatainfoList)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
//3按业务类型找
|
|
|
if (账期item.OPLBNAME != bs.OPLBNAME) continue;
|
|
|
|
|
|
var settledate = Convert.ToDateTime(bs.ETD);
|
|
|
var startdate = Convert.ToDateTime(账期item.BGNDATE);
|
|
|
var enddate = Convert.ToDateTime(账期item.ENDDATE);
|
|
|
if (startdate <= settledate && enddate >= settledate)
|
|
|
{
|
|
|
result = 账期item;
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
//4按指定业务类型和销售没找到 找业务类型空白的
|
|
|
foreach (var 账期item in accdatainfoList)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
//找业务类型空白的
|
|
|
if (!string.IsNullOrWhiteSpace(账期item.OPLBNAME))
|
|
|
continue;
|
|
|
|
|
|
var settledate = Convert.ToDateTime(bs.ETD);
|
|
|
var startdate = Convert.ToDateTime(账期item.BGNDATE);
|
|
|
var enddate = Convert.ToDateTime(账期item.ENDDATE);
|
|
|
if (startdate <= settledate && enddate >= settledate)
|
|
|
{
|
|
|
result = 账期item;
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
if (result.ACCTYPE == "") result.ACCTYPE = "票结";
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
public static string GetCustAcctype(string BSNO) {
|
|
|
var accdate = GetCustAccdate(BSNO);
|
|
|
|
|
|
return accdate.ACCTYPE;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
#region 往来单位审核
|
|
|
public static DBResult IC_Start ( List<MsClient> _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 = $"提交错误![{WorkResult.Message}]";
|
|
|
tran.Rollback();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
var r2 = MsInfoClientDAL.SetRange(_List, USERID);
|
|
|
|
|
|
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<MsClient> _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<MsClient> _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<MsClient> _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<MsInfoClientImgmb> 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<MsInfoClientImgmb> SetImgData(StringBuilder strSql)//, List<HcUtility.Core.Fieldmb> fieldlist
|
|
|
{
|
|
|
var headList = new List<MsInfoClientImgmb>();
|
|
|
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 独立版本功能 设定往来单位权限
|
|
|
public static DBResult SetRange(string RANGETYPE, string data,string USERID)
|
|
|
|
|
|
{
|
|
|
//1集团 2分公司 3个人
|
|
|
//1集团 即清空所有往来单位人员权限
|
|
|
//2分公司 效果为选中所有该往来单位录入人的本公司人员
|
|
|
//3个人 效果为选中录入人本人 和他所在公司的操作部、财务
|
|
|
|
|
|
var dataList = JsonConvert.Deserialize<List<MsClient>>(data);
|
|
|
var result = new DBResult();
|
|
|
|
|
|
//op为一串用逗号隔开的带单引号userid 形如 'aaaaa','bbbbb'
|
|
|
var op = "";
|
|
|
var seltype = "2";
|
|
|
var cdc = new CommonDataContext();
|
|
|
|
|
|
if (RANGETYPE == "1")
|
|
|
{
|
|
|
result = MsInfoClientDAL.DelClientRange(dataList, op, "3", USERID);
|
|
|
/// //1集团 2分公司 3个人
|
|
|
DoSetRangeType(dataList, "集团");
|
|
|
|
|
|
}
|
|
|
if (RANGETYPE == "2")
|
|
|
{
|
|
|
result = MsInfoClientDAL.DelClientRange(dataList, op, "3", USERID);
|
|
|
//获取本公司的所有人gid
|
|
|
var 本公司人员 = new List<VW_user_all_md>();
|
|
|
foreach (var item in dataList)
|
|
|
{
|
|
|
本公司人员 = cdc.VW_user_all.Where(x => x.COMPANYID == item.CORPID).ToList();
|
|
|
op = GetUseridStr(本公司人员);
|
|
|
|
|
|
var templist = dataList.Where(x => x.GID == item.GID).ToList();
|
|
|
|
|
|
result = MsInfoClientDAL.InsertClientRange(templist, op, seltype, USERID);
|
|
|
|
|
|
if (!result.Success) return result;
|
|
|
}
|
|
|
DoSetRangeType(dataList, "分公司");
|
|
|
//SetInfoclientLogic_range(dataList, RANGETYPE);
|
|
|
}
|
|
|
if (RANGETYPE == "3")
|
|
|
{
|
|
|
//20230823 改为不删除当前人员权限
|
|
|
//result = MsInfoClientDAL.DelClientRange(dataList, op, "3", USERID);
|
|
|
|
|
|
//获取本公司非销售人员
|
|
|
//user_userattribute.userid属于本公司 且attri 3C91140E-6FB6-4B5A-B5AB-30E59E3CBBED
|
|
|
//var 本公司人员 = new List<VW_user_md>();
|
|
|
foreach (var item in dataList)
|
|
|
{
|
|
|
//本公司人员 = cdc.VW_user_all.Where(x => x.COMPANYID == item.CORPID).ToList();
|
|
|
//改为所有公司的所有销售人员
|
|
|
var 本人 = cdc.VW_user_all.FirstOrDefault(x => x.SHOWNAME == item.OPNAME);
|
|
|
|
|
|
var 往来单位销售 = cdc.VW_user_all.FirstOrDefault(x => x.SHOWNAME == item.SALE);
|
|
|
|
|
|
var 全部人员 = cdc.VW_user_all.Where(x => x.USERID!= 本人.USERID).ToList();
|
|
|
op = 获取非销售人员str(全部人员);
|
|
|
|
|
|
|
|
|
if (op != "") op += ",";
|
|
|
op += $"'{本人.USERID}'";
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(往来单位销售.USERID))
|
|
|
{
|
|
|
op += $",'{往来单位销售.USERID}'";
|
|
|
}
|
|
|
//20230823 改为不删除当前人员权限
|
|
|
result = MsInfoClientDAL.DelClientRange(dataList, op, "2", USERID);
|
|
|
|
|
|
//2个人1部门0分公司
|
|
|
result = MsInfoClientDAL.InsertClientRange(dataList, op, seltype, USERID);
|
|
|
if (!result.Success) return result;
|
|
|
}
|
|
|
DoSetRangeType(dataList, "个人");
|
|
|
//SetInfoclientLogic_range(dataList, RANGETYPE);
|
|
|
}
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
public static DBResult SetRange(string data, string USERID)
|
|
|
|
|
|
{
|
|
|
//1集团 2分公司 3个人
|
|
|
//1集团 即清空所有往来单位人员权限
|
|
|
//2分公司 效果为选中所有该往来单位录入人的本公司人员
|
|
|
//3个人 效果为选中录入人本人 和他所在公司的操作部、财务
|
|
|
|
|
|
var dataList = JsonConvert.Deserialize<List<MsClient>>(data);
|
|
|
var result = SetRange(dataList, USERID);
|
|
|
|
|
|
//var result = new DBResult();
|
|
|
|
|
|
////op为一串用逗号隔开的带单引号userid 形如 'aaaaa','bbbbb'
|
|
|
//var op = "";
|
|
|
//var seltype = "2";
|
|
|
//var cdc = new CommonDataContext();
|
|
|
|
|
|
//var 集团List = new List<MsClient>();
|
|
|
//var 个人List = new List<MsClient>();
|
|
|
//foreach (var item in dataList)
|
|
|
//{
|
|
|
// if (item.RANGETYPE == "集团")
|
|
|
// {
|
|
|
// 集团List.Add(item);
|
|
|
// }
|
|
|
// if (item.RANGETYPE == "个人")
|
|
|
// {
|
|
|
// 个人List.Add(item);
|
|
|
// }
|
|
|
//}
|
|
|
|
|
|
|
|
|
//if (集团List != null && 集团List.Count > 0)
|
|
|
//{
|
|
|
// result = MsInfoClientDAL.DelClientRange(集团List, op, "3", USERID);
|
|
|
// /// //1集团 2分公司 3个人
|
|
|
// //DoSetRangeType(dataList, "集团");
|
|
|
//}
|
|
|
|
|
|
|
|
|
//if (个人List != null && 个人List.Count > 0)
|
|
|
//{
|
|
|
// {
|
|
|
// result = MsInfoClientDAL.DelClientRange(个人List, op, "3", USERID);
|
|
|
|
|
|
// //获取本公司非销售人员
|
|
|
// //user_userattribute.userid属于本公司 且attri 3C91140E-6FB6-4B5A-B5AB-30E59E3CBBED
|
|
|
// //var 本公司人员 = new List<VW_user_md>();
|
|
|
// foreach (var item in 个人List)
|
|
|
// {
|
|
|
// //本公司人员 = cdc.VW_user_all.Where(x => x.COMPANYID == item.CORPID).ToList();
|
|
|
// //改为所有公司的所有销售人员
|
|
|
// var 本人 = cdc.VW_user_all.FirstOrDefault(x => x.SHOWNAME == item.OPNAME);
|
|
|
|
|
|
// var 全部人员 = cdc.VW_user_all.Where(x => x.USERID != 本人.USERID).ToList();
|
|
|
// op = 获取非销售人员str(全部人员);
|
|
|
|
|
|
|
|
|
// if (op != "") op += ",";
|
|
|
// op += $"'{本人.USERID}'";
|
|
|
// result = MsInfoClientDAL.InsertClientRange(个人List, op, "2", USERID);
|
|
|
// if (!result.Success) return result;
|
|
|
// }
|
|
|
// //DoSetRangeType(dataList, "个人");
|
|
|
// //SetInfoclientLogic_range(dataList, RANGETYPE);
|
|
|
// }
|
|
|
//}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public static DBResult SetRange(List<MsClient> dataList, string USERID)
|
|
|
|
|
|
{
|
|
|
//1集团 2分公司 3个人
|
|
|
//1集团 即清空所有往来单位人员权限
|
|
|
//2分公司 效果为选中所有该往来单位录入人的本公司人员
|
|
|
//3个人 效果为选中录入人本人 和他所在公司的操作部、财务
|
|
|
|
|
|
//var dataList = JsonConvert.Deserialize<List<MsClient>>(data);
|
|
|
var result = new DBResult();
|
|
|
|
|
|
//op为一串用逗号隔开的带单引号userid 形如 'aaaaa','bbbbb'
|
|
|
var op = "";
|
|
|
var seltype = "2";
|
|
|
var cdc = new CommonDataContext();
|
|
|
|
|
|
var 集团List = new List<MsClient>();
|
|
|
var 个人List = new List<MsClient>();
|
|
|
foreach (var item in dataList)
|
|
|
{
|
|
|
if (item.RANGETYPE == "集团")
|
|
|
{
|
|
|
集团List.Add(item);
|
|
|
}
|
|
|
if (item.RANGETYPE == "个人")
|
|
|
{
|
|
|
个人List.Add(item);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
if (集团List != null && 集团List.Count > 0)
|
|
|
{
|
|
|
result = MsInfoClientDAL.DelClientRange(集团List, op, "3", USERID);
|
|
|
/// //1集团 2分公司 3个人
|
|
|
//DoSetRangeType(dataList, "集团");
|
|
|
}
|
|
|
|
|
|
|
|
|
if (个人List != null && 个人List.Count > 0)
|
|
|
{
|
|
|
{
|
|
|
|
|
|
|
|
|
//获取本公司非销售人员
|
|
|
//user_userattribute.userid属于本公司 且attri 3C91140E-6FB6-4B5A-B5AB-30E59E3CBBED
|
|
|
//var 本公司人员 = new List<VW_user_md>();
|
|
|
foreach (var item in 个人List)
|
|
|
{
|
|
|
//本公司人员 = cdc.VW_user_all.Where(x => x.COMPANYID == item.CORPID).ToList();
|
|
|
//改为所有公司的所有销售人员
|
|
|
var 本人 = cdc.VW_user_all.FirstOrDefault(x => x.SHOWNAME == item.OPNAME);
|
|
|
var 往来单位销售 = cdc.VW_user_all.FirstOrDefault(x => x.SHOWNAME == item.SALE);
|
|
|
|
|
|
var 全部人员 = cdc.VW_user_all.Where(x => x.USERID != 本人.USERID).ToList();
|
|
|
op = 获取非销售人员str(全部人员);
|
|
|
|
|
|
|
|
|
if (op != "") op += ",";
|
|
|
op += $"'{本人.USERID}'";
|
|
|
if (!string.IsNullOrWhiteSpace(往来单位销售.USERID))
|
|
|
{
|
|
|
op += $",'{往来单位销售.USERID}'";
|
|
|
}
|
|
|
|
|
|
result = MsInfoClientDAL.DelClientRange(个人List, op, "2", USERID);
|
|
|
|
|
|
result = MsInfoClientDAL.InsertClientRange(个人List, op, "2", USERID);
|
|
|
if (!result.Success) return result;
|
|
|
}
|
|
|
//DoSetRangeType(dataList, "个人");
|
|
|
//SetInfoclientLogic_range(dataList, RANGETYPE);
|
|
|
}
|
|
|
}
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
private static void DoSetRangeType(List<MsClient> dataList,string RANGETYPE) {
|
|
|
var GIDList = dataList.Select(s => s.GID).ToList();
|
|
|
|
|
|
var GIDListStr = "";
|
|
|
foreach (var gid in GIDList)
|
|
|
{
|
|
|
if (GIDListStr != "") GIDListStr += ",";
|
|
|
GIDListStr += "'" + gid + "'";
|
|
|
}
|
|
|
|
|
|
var _r = BasicDataRefDAL.ExecSql(" UPDATE info_client set RANGETYPE='"+ RANGETYPE + "' where GID in(" + GIDListStr + ")");
|
|
|
|
|
|
}
|
|
|
|
|
|
private static string GetUseridStr(List<VW_user_all_md> vwuserlist)
|
|
|
{
|
|
|
var result = "";
|
|
|
foreach (var user in vwuserlist)
|
|
|
{
|
|
|
if (result != "") result += ",";
|
|
|
result += $"'{user.USERID}'";
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
private static string 获取非销售人员str(List<VW_user_all_md> vwuserlist)
|
|
|
{
|
|
|
var cdc = new CommonDataContext();
|
|
|
|
|
|
var useridlist = vwuserlist.Select(s => s.USERID).ToList();
|
|
|
|
|
|
var 非销售List = cdc.user_userattribute.Where(x => useridlist.Contains(x.USERID) && x.ATTRIBUTEID == "3C91140E-6FB6-4B5A-B5AB-30E59E3CBBED" && x.VALUE == "false").ToList();
|
|
|
|
|
|
var 非销售UseridList = 非销售List.Select(s => s.USERID).ToList();
|
|
|
|
|
|
var result = "";
|
|
|
foreach (var userid in 非销售UseridList)
|
|
|
{
|
|
|
if (result != "") result += ",";
|
|
|
result += $"'{userid}'";
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
private static void SetInfoclientLogic_range(List<MsClient> MsClients, string RANGETYPE) {
|
|
|
foreach (var client in MsClients) {
|
|
|
var logicinfo= new Dictionary<string, string>();
|
|
|
logicinfo.Add("权限范围", RANGETYPE);
|
|
|
BasicDataRefDAL.SaveLogicInfo(client.GID, "权限范围", logicinfo);
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
#region 参照部分
|
|
|
|
|
|
#region FileList
|
|
|
static public List<MsUpLoadFile> 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<MsUpLoadFile> SetUpLoadFileData ( StringBuilder strSql )
|
|
|
{
|
|
|
var headList = new List<MsUpLoadFile>();
|
|
|
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<MsUpLoadFile> 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
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
public class InfoClientLimitDAL
|
|
|
{
|
|
|
public static DBResult DoSave(string InfoClientId,string data)
|
|
|
{
|
|
|
var headList = JsonConvert.Deserialize<List<Info_Client_Limit_md>>(data);
|
|
|
var result = new DBResult();
|
|
|
try
|
|
|
{
|
|
|
var cdc = new CommonDataContext();
|
|
|
|
|
|
|
|
|
|
|
|
if (headList == null || headList.Count == 0)
|
|
|
{
|
|
|
DoSet(InfoClientId);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
var currHeadList = cdc.Info_Client_Limit.Where(x => x.InfoClientId == InfoClientId).ToList();
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var head in headList)
|
|
|
{
|
|
|
var _count = BasicDataRefDAL.GetExist("info_client_limit_change", " pid='" + head.GID + "' ");
|
|
|
var currHead = currHeadList.FirstOrDefault(x => x.GID == head.GID);
|
|
|
if (currHead.TOTALLIMIT == head.TOTALLIMIT)
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
if (_count == 0)
|
|
|
{
|
|
|
//无原有变动日志 直接修改
|
|
|
currHead.TOTALLIMIT = head.TOTALLIMIT;
|
|
|
currHead.REMAINLIMIT = head.TOTALLIMIT;
|
|
|
cdc.Info_Client_Limit.AddOrUpdate(currHead);
|
|
|
|
|
|
}
|
|
|
else {
|
|
|
//需判断原有值,计算差值,并反应到所有日志记录
|
|
|
var addLimit = head.TOTALLIMIT - currHead.TOTALLIMIT;
|
|
|
|
|
|
var currbodyList = cdc.Info_Client_Limit_Change.Where(x => x.Pid == head.GID).ToList();
|
|
|
|
|
|
currHead.TOTALLIMIT = head.TOTALLIMIT;
|
|
|
currHead.REMAINLIMIT = currHead.REMAINLIMIT+ addLimit;
|
|
|
cdc.Info_Client_Limit.AddOrUpdate(currHead);
|
|
|
|
|
|
foreach (var body in currbodyList) {
|
|
|
body.AMOUNT2 += addLimit;
|
|
|
body.AMOUNT3 += addLimit;
|
|
|
}
|
|
|
}
|
|
|
cdc.SaveChanges();
|
|
|
}
|
|
|
}
|
|
|
result.OK();
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
|
|
|
result.SetErrorInfo(ex.Message);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public static DBResult DoSet(string GID) {
|
|
|
var result = new DBResult();
|
|
|
var cdc = new CommonDataContext();
|
|
|
var _list = cdc.info_client.Where(x => x.GID == GID).ToList();
|
|
|
if (_list == null || _list.Count == 0)
|
|
|
{
|
|
|
|
|
|
}
|
|
|
else {
|
|
|
var companyList = cdc.company.Where(x => 1 == 1).ToList();
|
|
|
|
|
|
//var currHeadList = cdc.Info_Client_Limit.Where(x => x.InfoClientId == GID).ToList();
|
|
|
|
|
|
foreach (var company in companyList)
|
|
|
{
|
|
|
DoSet(GID, company.GID);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
private static DBResult DoSet(string InfoClientId,string SALECORPID)
|
|
|
{
|
|
|
|
|
|
var result = new DBResult();
|
|
|
try
|
|
|
{
|
|
|
var cdc = new CommonDataContext();
|
|
|
|
|
|
var _list = cdc.Info_Client_Limit.Where(x => x.InfoClientId == InfoClientId && x.SALECORPID== SALECORPID).ToList();
|
|
|
|
|
|
if (_list == null || _list.Count == 0)
|
|
|
{
|
|
|
var infoclient = cdc.info_client.First(x => x.GID == InfoClientId);
|
|
|
var newhead = new Info_Client_Limit_md();
|
|
|
newhead.GID = Guid.NewGuid().ToString();
|
|
|
|
|
|
newhead.SALECORPID = SALECORPID;
|
|
|
newhead.InfoClientId = InfoClientId;
|
|
|
newhead.CUSTOMERNAME = infoclient.SHORTNAME;
|
|
|
newhead.PCORPNAME = "";
|
|
|
newhead.TOTALLIMIT = 0;
|
|
|
newhead.CURRENTDEBT = 0;
|
|
|
newhead.REMAINLIMIT = 0;
|
|
|
cdc.Info_Client_Limit.Add(newhead);
|
|
|
cdc.SaveChanges();
|
|
|
}
|
|
|
//else
|
|
|
//{
|
|
|
// //已有更新
|
|
|
// var head = _list[0];
|
|
|
// head.PCORPNAME = PCORPNAME;
|
|
|
// head.TOTALLIMIT = TOTALLIMIT;
|
|
|
// cdc.Info_Client_Limit.AddOrUpdate(head);
|
|
|
// cdc.SaveChanges();
|
|
|
//}
|
|
|
result.OK();
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
result.SetErrorInfo(ex.Message);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
public static DBResult GetHeadList(string GID)
|
|
|
{
|
|
|
|
|
|
var result = new DBResult();
|
|
|
try
|
|
|
{
|
|
|
var cdc = new CommonDataContext();
|
|
|
var head = new Info_Client_Limit_md();
|
|
|
var _list = cdc.Info_Client_Limit.Where(x => x.InfoClientId == GID).ToList();
|
|
|
|
|
|
if (_list == null || _list.Count == 0)
|
|
|
{
|
|
|
DoSet(GID);
|
|
|
return GetHeadList(GID);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
result.OK("", _list);
|
|
|
result.totalCount= _list.Count;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
|
|
|
result.SetErrorInfo(ex.Message);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public static DBResult GetBodyList(int start, int limit, string GID,string condition)
|
|
|
{
|
|
|
|
|
|
var result = new DBResult();
|
|
|
try
|
|
|
{
|
|
|
var cdc = new CommonDataContext();
|
|
|
|
|
|
Dictionary<string, string> dictionary = JsonConvert.Deserialize<Dictionary<string, string>>(condition);
|
|
|
|
|
|
var data = new List<Info_Client_Limit_Change_md>();
|
|
|
var alldata = 0;
|
|
|
|
|
|
QueryCollection queries = new QueryCollection();
|
|
|
|
|
|
if (dictionary != null && dictionary.Count>0)
|
|
|
{
|
|
|
if (dictionary.ContainsKey("CUSTNO") && !string.IsNullOrWhiteSpace(dictionary["CUSTNO"]))
|
|
|
{
|
|
|
queries.Add(new Query { Name = "CUSTNO", Operator = Query.Operators.Contains, Value = dictionary["CUSTNO"] });
|
|
|
}
|
|
|
if (dictionary.ContainsKey("BILLNO") && !string.IsNullOrWhiteSpace(dictionary["BILLNO"]))
|
|
|
{
|
|
|
queries.Add(new Query { Name = "BILLNO", Operator = Query.Operators.Contains, Value = dictionary["BILLNO"] });
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
queries.Add(new Query { Name = "Id", Operator = Query.Operators.GreaterThan, Value = 0 });
|
|
|
}
|
|
|
|
|
|
//alldata = cdc.Info_Client_Limit_Change.Where(x => x.Pid == GID ).Count();
|
|
|
|
|
|
//data = cdc.Info_Client_Limit_Change
|
|
|
// .Where(x => x.Pid == GID)
|
|
|
// .OrderBy(o => o.Id)
|
|
|
// .Skip(start).Take(limit).ToList();
|
|
|
alldata = cdc.Info_Client_Limit_Change
|
|
|
.Where(x => x.Pid == GID)
|
|
|
.Where(queries.AsExpression<Info_Client_Limit_Change_md>())
|
|
|
.Count();
|
|
|
|
|
|
data = cdc.Info_Client_Limit_Change
|
|
|
.Where(x => x.Pid == GID)
|
|
|
.Where(queries.AsExpression<Info_Client_Limit_Change_md>())
|
|
|
.OrderBy(o => o.Id)
|
|
|
.Skip(start).Take(limit).ToList();
|
|
|
|
|
|
|
|
|
result.OK("", data);
|
|
|
result.totalCount = alldata;
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
|
|
|
result.SetErrorInfo(ex.Message);
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 用于查询和使用往来单位的欠费
|
|
|
/// </summary>
|
|
|
public class InfoClientLimitHelper
|
|
|
{
|
|
|
private Info_Client_Limit_md Head { get; set; }
|
|
|
|
|
|
private v_op_bill_mb Bill { get; set; }
|
|
|
|
|
|
private string CHANGEUSER { get; set; }
|
|
|
|
|
|
private List<Info_Client_Limit_Change_md> ChangeDetail { get; set; }
|
|
|
|
|
|
public InfoClientLimitHelper() { }
|
|
|
|
|
|
public bool canuse() {
|
|
|
if (Head != null && Head.GID != null && Head.GID != "")
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
else {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private CommonDataContext cdc { get; set; }
|
|
|
/// <summary>
|
|
|
/// 传入往来单位GID或往来单位shortname
|
|
|
/// </summary>
|
|
|
/// <param name="GID"></param>
|
|
|
public InfoClientLimitHelper(string SALECORPID, string InfoClientId,string USERNAME)
|
|
|
{
|
|
|
cdc = new CommonDataContext();
|
|
|
|
|
|
Head = cdc.Info_Client_Limit.FirstOrDefault(x => x.SALECORPID== SALECORPID &&( x.GID == InfoClientId || x.CUSTOMERNAME == InfoClientId));
|
|
|
|
|
|
CHANGEUSER = USERNAME;
|
|
|
|
|
|
NewChange = new List<Info_Client_Limit_Change_md>();
|
|
|
//if (canuse()) {
|
|
|
// ChangeDetail = cdc.Info_Client_Limit_Change.Where(x=>x.Pid== Head.GID).OrderBy(x=>x.Id).ToList();
|
|
|
//}
|
|
|
|
|
|
}
|
|
|
|
|
|
public InfoClientLimitHelper(string BSNO, string USERNAME)
|
|
|
{
|
|
|
cdc = new CommonDataContext();
|
|
|
|
|
|
Bill = cdc.v_op_bill.FirstOrDefault(x => x.BSNO == BSNO);
|
|
|
|
|
|
Head = cdc.Info_Client_Limit.FirstOrDefault(x => x.SALECORPID == Bill.SALECORPID && ( x.CUSTOMERNAME == Bill.CUSTOMERNAME));
|
|
|
|
|
|
CHANGEUSER = USERNAME;
|
|
|
|
|
|
NewChange = new List<Info_Client_Limit_Change_md>();
|
|
|
//if (canuse()) {
|
|
|
// ChangeDetail = cdc.Info_Client_Limit_Change.Where(x=>x.Pid== Head.GID).OrderBy(x=>x.Id).ToList();
|
|
|
//}
|
|
|
}
|
|
|
|
|
|
public DBResult CanCheckOut() {
|
|
|
|
|
|
var result = new DBResult();
|
|
|
|
|
|
if (Bill == null || string.IsNullOrWhiteSpace(Bill.BSNO)) {
|
|
|
result.SetErrorInfo("没有找到业务");
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
var billfee = cdc.ch_fee.Where(x => x.BSNO == Bill.BSNO && x.FEETYPE==1).ToList();
|
|
|
|
|
|
if (billfee == null || billfee.Count == 0) {
|
|
|
result.OK();
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
var 欠费 = billfee.Sum(s => ((s.AMOUNT - s.SETTLEMENT) * s.EXCHANGERATE));
|
|
|
|
|
|
if (欠费 > Head.REMAINLIMIT)
|
|
|
{
|
|
|
result.SetErrorInfo($"本业务有未收款共[{欠费}RMB],委托单位[{Head.CUSTOMERNAME}]的欠费放单额度 {Head.TOTALLIMIT},目前剩余 {Head.REMAINLIMIT},不能放货.");
|
|
|
return result;
|
|
|
}
|
|
|
else {
|
|
|
result.OK();
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private void FrashHead()
|
|
|
{
|
|
|
Head = cdc.Info_Client_Limit.FirstOrDefault(x => x.GID == Head.GID );
|
|
|
}
|
|
|
|
|
|
private void GetDetail(bool getnow=false) {
|
|
|
if (canuse())
|
|
|
{
|
|
|
if (getnow == false)
|
|
|
{
|
|
|
if (ChangeDetail == null || ChangeDetail.Count == 0)
|
|
|
ChangeDetail = cdc.Info_Client_Limit_Change.Where(x => x.Pid == Head.GID).OrderBy(x => x.Id).ToList();
|
|
|
}
|
|
|
else {
|
|
|
ChangeDetail = cdc.Info_Client_Limit_Change.Where(x => x.Pid == Head.GID).OrderBy(x => x.Id).ToList();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private Info_Client_Limit_Change_md GetLastDetail(bool getnow = false)
|
|
|
{
|
|
|
var result = new Info_Client_Limit_Change_md();
|
|
|
if (canuse())
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
var lastlist = cdc.Info_Client_Limit_Change.Where(x => x.Pid == Head.GID).OrderByDescending(x => x.Id).Skip(0).Take(1).ToList();
|
|
|
result = lastlist[0];
|
|
|
}
|
|
|
catch (Exception e) {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
//类行为: 外部行为 1查询额度 2查询变动日志 2添加变动记录
|
|
|
|
|
|
public Info_Client_Limit_md GetLimit() {
|
|
|
return Head;
|
|
|
}
|
|
|
|
|
|
public List<Info_Client_Limit_Change_md> GetLimitChange()
|
|
|
{
|
|
|
GetDetail(true);
|
|
|
return ChangeDetail;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
///
|
|
|
/// </summary>
|
|
|
/// <param name="CUSTOMERNAME"></param>
|
|
|
/// <param name="CHANGETYPE">1扣除 2加</param>
|
|
|
/// <param name="CHANGEOPLBNAME"></param>
|
|
|
/// <param name="CHANGEUSER"></param>
|
|
|
/// <param name="FEEID"></param>
|
|
|
/// <param name="FEEDOID"></param>
|
|
|
/// <param name="BSNO"></param>
|
|
|
/// <param name="BILLNO"></param>
|
|
|
/// <param name="CUSTNO"></param>
|
|
|
/// <param name="CHANGEAMOUNT"></param>
|
|
|
/// <returns></returns>
|
|
|
private Info_Client_Limit_Change_md GetNewChange(string SALECORPID, string CUSTOMERNAME,int CHANGETYPE, string CHANGEOPLBNAME,string CHANGEUSER
|
|
|
,string FEEID,string FEEDOID,string BSNO,string BILLNO,string CUSTNO,decimal CHANGEAMOUNT)
|
|
|
{
|
|
|
var result = new Info_Client_Limit_Change_md();
|
|
|
result.Pid = Head.GID;
|
|
|
result.SALECORPID = SALECORPID;
|
|
|
result.PCORPNAME = Head.PCORPNAME;
|
|
|
result.CUSTOMERNAME = CUSTOMERNAME;
|
|
|
result.CHANGETYPE = CHANGETYPE;
|
|
|
result.CHANGEOPLBNAME = CHANGEOPLBNAME;
|
|
|
result.CHANGEUSER = CHANGEUSER;
|
|
|
result.CREATEDATE = DateTime.Now;
|
|
|
result.FEEID = FEEID;
|
|
|
result.FEEDOID = FEEDOID;
|
|
|
result.BSNO = BSNO;
|
|
|
result.BILLNO = BILLNO;
|
|
|
result.CUSTNO = CUSTNO;
|
|
|
result.CHANGEAMOUNT = CHANGEAMOUNT;
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
private List<Info_Client_Limit_Change_md> NewChange { get; set; }
|
|
|
|
|
|
private void DoSave() {
|
|
|
cdc.Info_Client_Limit.AddOrUpdate(Head);
|
|
|
if (NewChange != null && NewChange.Count > 0) {
|
|
|
cdc.Info_Client_Limit_Change.AddRange(NewChange);
|
|
|
}
|
|
|
cdc.SaveChanges();
|
|
|
NewChange.Clear();
|
|
|
}
|
|
|
|
|
|
private void AddChange(Info_Client_Limit_Change_md changeitem)
|
|
|
{
|
|
|
//GetDetail(true);
|
|
|
var lastchange = GetLastDetail();
|
|
|
if (lastchange == null || lastchange.AMOUNT3==null)
|
|
|
{
|
|
|
lastchange.AMOUNT3 = Head.TOTALLIMIT;
|
|
|
}
|
|
|
|
|
|
|
|
|
changeitem.AMOUNT2 = lastchange.AMOUNT3;
|
|
|
if (changeitem.CHANGETYPE == 1) {
|
|
|
//扣减额度
|
|
|
changeitem.AMOUNT3 = changeitem.AMOUNT2 - changeitem.CHANGEAMOUNT;
|
|
|
Head.CURRENTDEBT += changeitem.CHANGEAMOUNT;
|
|
|
Head.REMAINLIMIT -= changeitem.CHANGEAMOUNT;
|
|
|
}
|
|
|
if (changeitem.CHANGETYPE == 2)
|
|
|
{
|
|
|
//恢复额度
|
|
|
changeitem.AMOUNT3 = changeitem.AMOUNT2 + changeitem.CHANGEAMOUNT;
|
|
|
Head.CURRENTDEBT -= changeitem.CHANGEAMOUNT;
|
|
|
Head.REMAINLIMIT += changeitem.CHANGEAMOUNT;
|
|
|
}
|
|
|
NewChange.Add(changeitem);
|
|
|
}
|
|
|
|
|
|
|
|
|
public void 票结直接放单(string BSNO)
|
|
|
{
|
|
|
直接放单("直接放单_票结", BSNO);
|
|
|
}
|
|
|
public void 月结直接放单(string BSNO)
|
|
|
{
|
|
|
直接放单("直接放单_月结", BSNO);
|
|
|
}
|
|
|
|
|
|
public void 特放申请放单(string BSNO)
|
|
|
{
|
|
|
直接放单("特放申请放单", BSNO);
|
|
|
}
|
|
|
|
|
|
public void 直接放单(string BSNO)
|
|
|
{
|
|
|
直接放单("直接放单", BSNO);
|
|
|
}
|
|
|
//1直接放单(票结,有欠款,ATD不是最晚,《未超额度》;
|
|
|
//月结,有欠款,欠费不超期,《未超额度》
|
|
|
//通过特殊放单 )扣额度
|
|
|
//2收费结算 加额度
|
|
|
//3取消放单 加额度(1的逆运算,同样插入一条加额度的变动)
|
|
|
//4取消结算 扣额度(3的逆运算,同样插入一条扣额度的变动)
|
|
|
/// <summary>
|
|
|
///
|
|
|
/// </summary>
|
|
|
public void 直接放单(string CHANGEOPLBNAME,string BSNO)
|
|
|
{
|
|
|
var CHANGETYPE = 1;
|
|
|
|
|
|
var BSNOList = new List<string> { BSNO };
|
|
|
|
|
|
var amend = cdc.op_amend.Where(x => x.PARENTID == BSNO).ToList();
|
|
|
|
|
|
if (amend != null && amend.Count > 0) {
|
|
|
BSNOList.AddRange(amend.Select(s => s.BSNO));
|
|
|
}
|
|
|
|
|
|
var feehead = cdc.v_op_bill.Where(x => BSNOList.Contains(x.BSNO)).ToList();
|
|
|
|
|
|
var FeeList = cdc.ch_fee.Where(x => BSNOList.Contains(x.BSNO) && x.FEETYPE == 1 && x.SETTLEMENT < x.AMOUNT).ToList();
|
|
|
|
|
|
if (FeeList == null || FeeList.Count == 0) return;
|
|
|
|
|
|
foreach (var item in FeeList)
|
|
|
{
|
|
|
var bill = feehead.FirstOrDefault(x => x.BSNO == item.BSNO);
|
|
|
var changeamount = (item.AMOUNT - item.SETTLEMENT) * item.EXCHANGERATE;
|
|
|
var change = GetNewChange(bill.SALECORPID, item.CUSTOMERNAME, CHANGETYPE, CHANGEOPLBNAME, CHANGEUSER
|
|
|
, item.GID, "", item.BSNO, "", bill.CUSTNO, (decimal)changeamount);
|
|
|
AddChange(change);
|
|
|
}
|
|
|
|
|
|
DoSave();
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void 取消放单通知(string BSNO)
|
|
|
{
|
|
|
var CHANGEOPLBNAME = "取消放单通知";
|
|
|
var CHANGETYPE = 2;
|
|
|
|
|
|
var BSNOList = new List<string> { BSNO };
|
|
|
|
|
|
var amend = cdc.op_amend.Where(x => x.PARENTID == BSNO).ToList();
|
|
|
|
|
|
if (amend != null && amend.Count > 0)
|
|
|
{
|
|
|
BSNOList.AddRange(amend.Select(s => s.BSNO));
|
|
|
}
|
|
|
|
|
|
var feehead = cdc.v_op_bill.Where(x => BSNOList.Contains(x.BSNO)).ToList();
|
|
|
|
|
|
var FeeList = cdc.ch_fee.Where(x => BSNOList.Contains(x.BSNO) && x.FEETYPE == 1 && x.SETTLEMENT < x.AMOUNT).ToList();
|
|
|
|
|
|
if (FeeList == null || FeeList.Count == 0) return;
|
|
|
|
|
|
var feeidList = FeeList.Select(s => s.GID).ToList();
|
|
|
|
|
|
var 这些费用产生的客户余额变动日志 = cdc.Info_Client_Limit_Change.Where(x => feeidList.Contains(x.FEEID)).ToList();
|
|
|
|
|
|
|
|
|
foreach (var item in FeeList)
|
|
|
{
|
|
|
if (!这些费用产生的客户余额变动日志.Exists(x => x.FEEID == item.GID)) {
|
|
|
continue;
|
|
|
}
|
|
|
var bill = feehead.FirstOrDefault(x => x.BSNO == item.BSNO);
|
|
|
var changeamount = (item.AMOUNT - item.SETTLEMENT) * item.EXCHANGERATE;
|
|
|
var change = GetNewChange(bill.SALECORPID, item.CUSTOMERNAME, CHANGETYPE, CHANGEOPLBNAME, CHANGEUSER
|
|
|
, item.GID, "", item.BSNO, "", bill.CUSTNO, (decimal)changeamount);
|
|
|
AddChange(change);
|
|
|
}
|
|
|
|
|
|
DoSave();
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 收费结算
|
|
|
/// </summary>
|
|
|
/// <param name="chfeedo"></param>
|
|
|
public void 收费结算(List<ch_fee_do_md> chfeedoList,List<v_op_bill_mb> BillList,List<ch_fee_md> feeList) {
|
|
|
|
|
|
var feeidList = chfeedoList.Select(s => s.FEEID).ToList();
|
|
|
|
|
|
var 这些费用产生的客户余额变动日志 = cdc.Info_Client_Limit_Change.Where(x => feeidList.Contains(x.FEEID)).ToList();
|
|
|
|
|
|
var bsnoList = chfeedoList.Select(s => s.BSNO).ToList();
|
|
|
var feeheadList = cdc.v_op_bill.Where(x => bsnoList.Contains(x.BSNO)).ToList();
|
|
|
|
|
|
foreach (var chfeedo in chfeedoList)
|
|
|
{
|
|
|
if (!这些费用产生的客户余额变动日志.Exists(x => x.FEEID == chfeedo.FEEID))
|
|
|
continue;
|
|
|
var _bill = BillList.First(x => x.BSNO == chfeedo.BSNO);
|
|
|
var _fee = feeList.First(x => x.GID == chfeedo.FEEID);
|
|
|
var _feehead = feeheadList.First(x => x.BSNO == chfeedo.BSNO);
|
|
|
var changeamount = chfeedo.AMOUNT * _fee.EXCHANGERATE;
|
|
|
var change = GetNewChange(_feehead.SALECORPID, _fee.CUSTOMERNAME,2, "收费结算", CHANGEUSER
|
|
|
, chfeedo.FEEID, chfeedo.GID, chfeedo.BSNO, chfeedo.BILLNO, _bill.CUSTNO, (decimal)changeamount);
|
|
|
AddChange(change);
|
|
|
}
|
|
|
DoSave();
|
|
|
}
|
|
|
|
|
|
public void 取消收费结算(List<ch_fee_do_md> chfeedoList, List<v_op_bill_mb> BillList, List<ch_fee_md> feeList)
|
|
|
{
|
|
|
var feeidList = chfeedoList.Select(s => s.FEEID).ToList();
|
|
|
|
|
|
var 这些费用产生的客户余额变动日志 = cdc.Info_Client_Limit_Change.Where(x => feeidList.Contains(x.FEEID)).ToList();
|
|
|
|
|
|
var bsnoList = chfeedoList.Select(s => s.BSNO).ToList();
|
|
|
var feeheadList = cdc.v_op_bill.Where(x => bsnoList.Contains(x.BSNO)).ToList();
|
|
|
|
|
|
|
|
|
foreach (var chfeedo in chfeedoList)
|
|
|
{
|
|
|
if (!这些费用产生的客户余额变动日志.Exists(x => x.FEEID == chfeedo.FEEID))
|
|
|
continue;
|
|
|
var _bill = BillList.First(x => x.BSNO == chfeedo.BSNO);
|
|
|
var _fee = feeList.First(x => x.GID == chfeedo.FEEID);
|
|
|
var _feehead = feeheadList.First(x => x.BSNO == chfeedo.BSNO);
|
|
|
var changeamount = chfeedo.AMOUNT * _fee.EXCHANGERATE;
|
|
|
var change = GetNewChange(_feehead.SALECORPID, _fee.CUSTOMERNAME, 1, "取消收费结算", CHANGEUSER
|
|
|
, chfeedo.FEEID, chfeedo.GID, chfeedo.BSNO, chfeedo.BILLNO, _bill.CUSTNO, (decimal)changeamount);
|
|
|
AddChange(change);
|
|
|
}
|
|
|
DoSave();
|
|
|
}
|
|
|
|
|
|
private class 业务中委托单位与所属分部关系 {
|
|
|
public string SALECORPID { get; set; }
|
|
|
public string CUSTOMERNAME { get; set; }
|
|
|
|
|
|
public 业务中委托单位与所属分部关系() { }
|
|
|
|
|
|
public 业务中委托单位与所属分部关系(string a, string b) {
|
|
|
SALECORPID = a;
|
|
|
CUSTOMERNAME = b;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
///
|
|
|
/// </summary>
|
|
|
/// <param name="BILLNO"></param>
|
|
|
/// <param name="BILLTYPE"></param>
|
|
|
/// <param name="USERNAME"></param>
|
|
|
/// <param name="CHANGETYPE">2收费结算,1取消收费结算</param>
|
|
|
public static void 处理结算单更改欠款额度(string BILLNO, int BILLTYPE,string USERNAME,int CHANGETYPE)
|
|
|
{
|
|
|
if (BILLTYPE == 2) return;
|
|
|
|
|
|
var _cdc = new CommonDataContext();
|
|
|
//查找收费结算的ch_fee_do
|
|
|
var feedoList = _cdc.ch_fee_do.Where(x => x.BILLNO == BILLNO).ToList();
|
|
|
|
|
|
if (feedoList == null || feedoList.Count == 0) return;
|
|
|
|
|
|
var bsnoList = feedoList.Select(s => s.BSNO).ToList();
|
|
|
var billList = _cdc.v_op_bill.Where(x => bsnoList.Contains(x.BSNO)).ToList();
|
|
|
|
|
|
var feeidList = feedoList.Select(s => s.FEEID).ToList();
|
|
|
var feeList = _cdc.ch_fee.Where(x => feeidList.Contains(x.GID)).ToList();
|
|
|
|
|
|
var billinfoList = new List<业务中委托单位与所属分部关系>();
|
|
|
|
|
|
void addbillinfo(string SALECORPID, string CUSTOMERNAME)
|
|
|
{
|
|
|
if (billinfoList == null) billinfoList = new List<业务中委托单位与所属分部关系>();
|
|
|
|
|
|
if (billinfoList.Exists(x => x.SALECORPID == SALECORPID && x.CUSTOMERNAME == CUSTOMERNAME))
|
|
|
{
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
billinfoList.Add(new 业务中委托单位与所属分部关系(SALECORPID, CUSTOMERNAME));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
foreach (var bill in billList) {
|
|
|
addbillinfo(bill.SALECORPID, bill.CUSTOMERNAME);
|
|
|
}
|
|
|
|
|
|
foreach (var billinfo in billinfoList) {
|
|
|
|
|
|
var helper = new InfoClientLimitHelper(billinfo.SALECORPID,billinfo.CUSTOMERNAME, USERNAME);
|
|
|
|
|
|
var _billList = billList.Where(x => x.SALECORPID == billinfo.SALECORPID && x.CUSTOMERNAME== billinfo.CUSTOMERNAME).ToList();
|
|
|
var dolist = feedoList.Where(x => _billList.Select(s => s.BSNO).Contains(x.BSNO)).ToList();
|
|
|
if (CHANGETYPE == 2)
|
|
|
helper.收费结算(dolist, _billList, feeList);
|
|
|
if (CHANGETYPE == 1)
|
|
|
helper.取消收费结算(dolist, _billList, feeList);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//public static void 取消结算单扣除欠款额度(string BILLNO, string USERNAME)
|
|
|
//{
|
|
|
// //if (BILLTYPE == 2) return;
|
|
|
// var _cdc = new CommonDataContext();
|
|
|
// //查找收费结算的ch_fee_do
|
|
|
// var feedoList = _cdc.ch_fee_do.Where(x => x.BILLNO == BILLNO).ToList();
|
|
|
|
|
|
// if (feedoList == null || feedoList.Count == 0) return;
|
|
|
|
|
|
// var bsnoList = feedoList.Select(s => s.BSNO).ToList();
|
|
|
// var billList = _cdc.v_op_bill.Where(x => bsnoList.Contains(x.BSNO)).ToList();
|
|
|
|
|
|
// var feeidList = feedoList.Select(s => s.FEEID).ToList();
|
|
|
// var feeList = _cdc.ch_fee.Where(x => feeidList.Contains(x.GID)).ToList();
|
|
|
|
|
|
// var 委托单位简称List = billList.Select(s => s.CUSTOMERNAME).Distinct().ToList();
|
|
|
|
|
|
// var 委托单位List = _cdc.info_client.Where(x => 委托单位简称List.Contains(x.SHORTNAME)).ToList();
|
|
|
|
|
|
// foreach (var 委托单位 in 委托单位List)
|
|
|
// {
|
|
|
// var helper = new InfoClientLimitHelper(委托单位.SHORTNAME, USERNAME);
|
|
|
|
|
|
// var _billList = billList.Where(x => x.CUSTOMERNAME == 委托单位.SHORTNAME).ToList();
|
|
|
// var dolist = feedoList.Where(x => _billList.Select(s => s.BSNO).Contains(x.BSNO)).ToList();
|
|
|
// helper.取消收费结算(dolist, 委托单位, _billList, feeList);
|
|
|
// }
|
|
|
|
|
|
//}
|
|
|
}
|
|
|
}
|
|
|
|