SlmBaseCustomberBll.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Data;
  6. using CoreFS.CA06;
  7. using System.ComponentModel;
  8. using System.Drawing;
  9. using System.Windows.Forms;
  10. using Infragistics.Win.UltraWinGrid;
  11. using System.Collections;
  12. using ColumnDefine = Core.StlMes.Client.Sale.Common.TbColumnDefine.TbColumnDefine;
  13. namespace Core.StlMes.Client.Sale.BLL.SaleBusinessMgt.BaseData
  14. {
  15. public class SlmBaseCustomberBll : SaleBusinessMgt.BllBase.BaseBll
  16. {
  17. public SlmBaseCustomberBll(OpeBase ob)
  18. : base(ob)
  19. {
  20. }
  21. /// <summary>
  22. /// 查询入口
  23. /// </summary>
  24. /// <param name="sqlCondition"></param>
  25. /// <returns></returns>
  26. private DataSet GetSlmBaseCustomer(string sqlCondition)
  27. {
  28. string sqlStr = string.Format(SqlCollection.BaseData._QUERYSLMBASECUSTOMER, sqlCondition, base.DateTimeTocharFormat);
  29. return base.ExecuteQuery(sqlStr);
  30. }
  31. private DataSet GetSlmBaseCustUnit(string sqlCondition)
  32. {
  33. string sqlStr = string.Format(SqlCollection.BaseData._QUERYSLMBASECUSTMUNITIF, sqlCondition, base.DateTimeTocharFormat);
  34. return base.ExecuteQuery(sqlStr);
  35. }
  36. private DataSet GetSlmBaseCustFreight(string sqlCondition)
  37. {
  38. string sqlStr = string.Format(SqlCollection.BaseData._QUERYSLMBASECUSTFERINFO, sqlCondition, base.DateTimeTocharFormat);
  39. return base.ExecuteQuery(sqlStr);
  40. }
  41. /// <summary>
  42. /// 通过子公司查找所有的客户信息
  43. /// </summary>
  44. /// <param name="sale_org"></param>
  45. /// <returns></returns>
  46. public DataSet GetSlmBaseCustomerByForecorpCode(string forecorpCode)
  47. {
  48. string sqlCondition = string.Format(" and forecorpcode = '{0}' ", forecorpCode);
  49. return GetSlmBaseCustomer(sqlCondition);
  50. }
  51. /// <summary>
  52. /// 查询有效客户基础信息
  53. /// </summary>
  54. /// <param name="validflag"></param>
  55. /// <returns></returns>
  56. public DataSet GetValidSlmBaseCustomber()
  57. {
  58. string sqlCondition = string.Format(" and validflag ='{0}'", "1");
  59. return GetSlmBaseCustomer(sqlCondition);
  60. }
  61. /// <summary>
  62. /// 查询无效客户基础信息
  63. /// </summary>
  64. /// <param name="validflag"></param>
  65. /// <returns></returns>
  66. public DataSet GetNotValidSlmBaseCustomber()
  67. {
  68. string sqlCondition = string.Format(" and validflag ='{0}'", "0");
  69. return GetSlmBaseCustomer(sqlCondition);
  70. }
  71. /// <summary>
  72. /// 根据客户编号查询客户基础信息
  73. /// </summary>
  74. /// <param name="customerNo"></param>
  75. /// <returns></returns>
  76. public DataSet GetSlmBaseCustomberByCustNo(string customerNo)
  77. {
  78. string sqlCondition = string.Format(" and customer_no = '{0}'",customerNo);
  79. return GetSlmBaseCustomer(sqlCondition);
  80. }
  81. /// <summary>
  82. /// 获取所有客户信息,包括有效和无效的
  83. /// </summary>
  84. /// <returns></returns>
  85. public DataSet GetSlmBaseCustomberAll()
  86. {
  87. return GetSlmBaseCustomer("");
  88. }
  89. /// <summary>
  90. /// 通过销售组合和客户编码获取客户信息
  91. /// </summary>
  92. /// <param name="sale_org"></param>
  93. /// <param name="customer_no"></param>
  94. /// <returns></returns>
  95. public DataSet GetGetSlmBaseCustomerInfoByForeCorpCodeAndCustomerNo(string forecorpcode, string customer_no)
  96. {
  97. string sqlCondition = string.Format(" and forecorpcode = '{0}' and customer_no = '{1}' ", forecorpcode, customer_no);
  98. return GetSlmBaseCustomer(sqlCondition);
  99. }
  100. /// <summary>
  101. /// 通过客户编号查询客户扩展信息
  102. /// </summary>
  103. /// <param name="CustmNo"></param>
  104. /// <returns></returns>
  105. public DataSet GetSlmBaseCustmNuitByCustmNo(string CustmNo)
  106. {
  107. string sqlCondition = string.Format(" and customer_no = '{0}'", CustmNo);
  108. return GetSlmBaseCustUnit(sqlCondition);
  109. }
  110. /// <summary>
  111. /// 根据客户编码查询货运信息
  112. /// </summary>
  113. /// <param name="CustmNo"></param>
  114. /// <returns></returns>
  115. public DataSet GetSlmBaseCustmFreightByCustNo(string CustmNo)
  116. {
  117. string sqlCondition = " and customer_no = '"+CustmNo+"'";
  118. return GetSlmBaseCustFreight(sqlCondition);
  119. }
  120. /// <summary>
  121. /// 查询所有货运信息
  122. /// </summary>
  123. /// <returns></returns>
  124. public DataSet GetSlmBaseCustmFreightAll()
  125. {
  126. return GetSlmBaseCustFreight("");
  127. }
  128. /// <summary>
  129. /// 查询到站下拉框信息
  130. /// </summary>
  131. /// <returns></returns>
  132. public DataSet SelectFreightColumn()
  133. {
  134. string sql = "select station_no,station_nm from slm_base_station where station_nm != 'null' or station_nm != ''";
  135. return base.ExecuteQuery(sql);
  136. }
  137. /// <summary>
  138. /// 查询汽运下拉框
  139. /// </summary>
  140. /// <returns></returns>
  141. public DataSet SelectLoadDockColumn()
  142. {
  143. string sql = "select station_no,loaddock from slm_base_station where loaddock is not null";
  144. return base.ExecuteQuery(sql);
  145. }
  146. /// <summary>
  147. /// 查询船运下拉框
  148. /// </summary>
  149. /// <returns></returns>
  150. public DataSet SelectUnLoadDockColumn()
  151. {
  152. string sql = "select station_no,unloaddock from slm_base_station where loaddock is not null";
  153. return base.ExecuteQuery(sql);
  154. }
  155. /// <summary>
  156. /// 新增客户基础信息
  157. /// </summary>
  158. /// <param name="cust"></param>
  159. /// <param name="errMsg"></param>
  160. public void Insert(Hashtable hs,out string errMsg)
  161. {
  162. errMsg = "";
  163. hs.Add(ColumnDefine.SLM_BASE_CUSTOMER.CUSTOMER_NO, GetSlmBaseCustomberCode());
  164. CoreClientParam param = base.GetCoreClientParam(_ServerName, "insert", new object[] { hs });
  165. CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
  166. errMsg = base.GetReturnErrorInfo(result);
  167. }
  168. /// <summary>
  169. /// 新增扩展信息
  170. /// </summary>
  171. /// <param name="hs"></param>
  172. /// <param name="errMsg"></param>
  173. public void CustmUnitInsert(Hashtable hs, out string errMsg)
  174. {
  175. errMsg = "";
  176. hs.Add(ColumnDefine.SLM_BASE_CUSTM_UNIT.CUST_SEQ, GetSlmBaseCustmUnitInfoCode());
  177. CoreClientParam param = base.GetCoreClientParam(_ServerName, "custUnitInsert", new object[] { hs });
  178. CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
  179. errMsg = base.GetReturnErrorInfo(result);
  180. }
  181. /// <summary>
  182. /// 新增货运信息
  183. /// </summary>
  184. /// <param name="hs"></param>
  185. /// <param name="errMsg"></param>
  186. public void FreightInfoInsert(Hashtable hs, out string errMsg)
  187. {
  188. errMsg = "";
  189. hs.Add(ColumnDefine.SLM_BASE_CUSTM_FREIGHT.FREIGHT_NO, GetSlmBaseCustFreightInfoCode());
  190. CoreClientParam param = base.GetCoreClientParam(_ServerName, "freightInsert", new object[] { hs });
  191. CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
  192. errMsg = base.GetReturnErrorInfo(result);
  193. }
  194. /// <summary>
  195. /// 扩展信息删除
  196. /// </summary>
  197. /// <param name="custSeq"></param>
  198. public void CustUnitDelete(string custSeq,out string errMsg)
  199. {
  200. errMsg = "";
  201. CoreClientParam param = base.GetCoreClientParam(_ServerName, "custUnitDelete", new object[] { custSeq });
  202. CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
  203. errMsg = base.GetReturnErrorInfo(result);
  204. }
  205. /// <summary>
  206. /// 货运信息删除
  207. /// </summary>
  208. /// <param name="freigtNo"></param>
  209. /// <param name="errMsg"></param>
  210. public void FreightDelete(string freigtNo, out string errMsg)
  211. {
  212. errMsg = "";
  213. CoreClientParam param = base.GetCoreClientParam(_ServerName, "freightDelete", new object[] { freigtNo });
  214. CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
  215. errMsg = base.GetReturnErrorInfo(result);
  216. }
  217. /// <summary>
  218. /// 扩展信息修改
  219. /// </summary>
  220. /// <param name="hs"></param>
  221. /// <param name="errMsg"></param>
  222. public void CustmUnitUpdate(Hashtable hs, out string errMsg)
  223. {
  224. errMsg = "";
  225. CoreClientParam param = base.GetCoreClientParam(_ServerName, "custUnitUpdate", new object[] { hs });
  226. CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
  227. errMsg = base.GetReturnErrorInfo(result);
  228. }
  229. /// <summary>
  230. /// 货运信息修改
  231. /// </summary>
  232. /// <param name="hs"></param>
  233. /// <param name="errMsg"></param>
  234. public void FreightUpdate(Hashtable hs, out string errMsg)
  235. {
  236. errMsg = "";
  237. CoreClientParam param = base.GetCoreClientParam(_ServerName, "freightUpdate", new object[] { hs });
  238. CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
  239. errMsg = base.GetReturnErrorInfo(result);
  240. }
  241. /// <summary>
  242. /// 客户等级修改
  243. /// </summary>
  244. /// <param name="custNo"></param>
  245. /// <param name="custlev"></param>
  246. /// <param name="errMsg"></param>
  247. public void CustLveUpdate(string custNo, string custlev, out string errMsg)
  248. {
  249. errMsg = "";
  250. CoreClientParam param = base.GetCoreClientParam(_ServerName, "custLevUpdate", new object[] { custNo, custlev });
  251. CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
  252. errMsg = base.GetReturnErrorInfo(result);
  253. }
  254. /// <summary>
  255. /// 删除客户基础信息
  256. /// </summary>
  257. /// <param name="customer_no"></param>
  258. /// <param name="deleteName"></param>
  259. public void Delete(string customer_no, string deleteName,out string errMsg)
  260. {
  261. errMsg = "";
  262. CoreClientParam param = base.GetCoreClientParam(_ServerName, "delete", new object[] { customer_no, deleteName });
  263. CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
  264. errMsg = base.GetReturnErrorInfo(result);
  265. }
  266. /// <summary>
  267. /// 取消删除
  268. /// </summary>
  269. /// <param name="customer_no"></param>
  270. public void unDelete(string customer_no,out string errMsg)
  271. {
  272. errMsg = "";
  273. CoreClientParam param = base.GetCoreClientParam(_ServerName, "unDelete", new object[] { customer_no });
  274. CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
  275. if (result.ReturnInfo == Network_error)
  276. {
  277. result.ReturnInfo = "";
  278. }
  279. errMsg = base.GetReturnErrorInfo(result);
  280. }
  281. /// <summary>
  282. /// 修改客户基础信息
  283. /// </summary>
  284. /// <param name="cust"></param>
  285. /// <param name="errMsg"></param>
  286. public void Update(Hashtable ht,string nowCustomerNm ,out string errMsg)
  287. {
  288. errMsg = "";
  289. CoreClientParam param = base.GetCoreClientParam(_ServerName, "update", new object[] { ht, nowCustomerNm });
  290. CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
  291. errMsg = base.GetReturnErrorInfo(result);
  292. }
  293. /// <summary>
  294. /// 获取数据行数
  295. /// </summary>
  296. /// <returns></returns>
  297. private double GetCoutOfSlmBaseCustomber()
  298. {
  299. string sqlStr = "select count(1) from slm_base_customer ";
  300. DataSet ds = base.ExecuteQuery(sqlStr);
  301. if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
  302. return 0;
  303. return Util.ConverObject.ConvertToDouble(ds.Tables[0].Rows[0][0]);
  304. }
  305. /// <summary>
  306. /// 自动生成客户编码
  307. /// </summary>
  308. /// <returns></returns>
  309. private string GetSlmBaseCustomberCode()
  310. {
  311. string customberno = "";
  312. string sqlStr = @"select * "+
  313. "from (select lpad(l || '', 6, 0) customberno, a.customer_no, rownum rn " +
  314. "from (select level - 1 l from dual connect by level < {0}) b "+
  315. "left join slm_base_customer a on a.customer_no = " +
  316. "lpad(b.l || '', 6, 0) "+
  317. "where a.customer_no is null " +
  318. "order by b.l) "+
  319. "where rn = 1";
  320. sqlStr = string.Format(sqlStr, GetCoutOfSlmBaseCustomber() + 100);
  321. DataSet ds = base.ExecuteQuery(sqlStr);
  322. try
  323. {
  324. if (ds.Tables[0].Rows.Count == 0)
  325. customberno = "000001";
  326. else
  327. customberno = ds.Tables[0].Rows[0]["CUSTOMBERNO"].ToString();
  328. }
  329. catch
  330. {
  331. }
  332. return customberno;
  333. }
  334. /// <summary>
  335. /// 获取数据行数
  336. /// </summary>
  337. /// <returns></returns>
  338. private double GetCoutOfSlmBaseCustmUnitInfo()
  339. {
  340. string sqlStr = "select count(1) from slm_base_custm_unit ";
  341. DataSet ds = base.ExecuteQuery(sqlStr);
  342. if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
  343. return 0;
  344. return Util.ConverObject.ConvertToDouble(ds.Tables[0].Rows[0][0]);
  345. }
  346. /// <summary>
  347. /// 自动生成客户编码
  348. /// </summary>
  349. /// <returns></returns>
  350. private string GetSlmBaseCustmUnitInfoCode()
  351. {
  352. string customberno = "";
  353. string sqlStr = @"select * " +
  354. "from (select lpad(l || '', 6, 0) customberno, a.cust_seq, rownum rn " +
  355. "from (select level - 1 l from dual connect by level < {0}) b " +
  356. "left join slm_base_custm_unit a on a.cust_seq = " +
  357. "lpad(b.l || '', 6, 0) " +
  358. "where a.cust_seq is null " +
  359. "order by b.l) " +
  360. "where rn = 1";
  361. sqlStr = string.Format(sqlStr, GetCoutOfSlmBaseCustmUnitInfo() + 100);
  362. DataSet ds = base.ExecuteQuery(sqlStr);
  363. try
  364. {
  365. if (ds.Tables[0].Rows.Count == 0)
  366. customberno = "000001";
  367. else
  368. customberno = ds.Tables[0].Rows[0]["CUSTOMBERNO"].ToString();
  369. }
  370. catch
  371. {
  372. }
  373. return customberno;
  374. }
  375. /// <summary>
  376. /// 获取数据行数
  377. /// </summary>
  378. /// <returns></returns>
  379. private double GetSlmFreightCount()
  380. {
  381. string sqlStr = "select count(1) from slm_base_custm_freight ";
  382. DataSet ds = base.ExecuteQuery(sqlStr);
  383. if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
  384. return 0;
  385. return Util.ConverObject.ConvertToDouble(ds.Tables[0].Rows[0][0]);
  386. }
  387. /// <summary>
  388. /// 自动生成客户编码
  389. /// </summary>
  390. /// <returns></returns>
  391. private string GetSlmBaseCustFreightInfoCode()
  392. {
  393. string customberno = "";
  394. string sqlStr = @"select * " +
  395. "from (select lpad(l || '', 6, 0) customberno, a.freight_no, rownum rn " +
  396. "from (select level - 1 l from dual connect by level < {0}) b " +
  397. "left join slm_base_custm_freight a on a.freight_no = " +
  398. "lpad(b.l || '', 6, 0) " +
  399. "where a.freight_no is null " +
  400. "order by b.l) " +
  401. "where rn = 1";
  402. sqlStr = string.Format(sqlStr, GetSlmFreightCount() + 100);
  403. DataSet ds = base.ExecuteQuery(sqlStr);
  404. try
  405. {
  406. if (ds.Tables[0].Rows.Count == 0)
  407. customberno = "000001";
  408. else
  409. customberno = ds.Tables[0].Rows[0]["CUSTOMBERNO"].ToString();
  410. }
  411. catch
  412. {
  413. }
  414. return customberno;
  415. }
  416. protected const string Network_error = "错误:网络错误";
  417. private string _ServerName = "core.stlmes.server.sale.service.basedata.SlmBaseCustomber";
  418. }
  419. }