YdmZcLoadVehicleMatMgt.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Data;
  6. using System.Collections;
  7. using System.ComponentModel;
  8. using System.Drawing;
  9. using System.Windows.Forms;
  10. using CoreFS.CA06;
  11. using Infragistics.Win.UltraWinGrid;
  12. namespace Core.StlMes.Client.Sale.BLL.SaleBusinessMgt.Trans
  13. {
  14. public class YdmZcLoadVehicleMatMgt : SaleBusinessMgt.BllBase.BaseBll
  15. {
  16. public YdmZcLoadVehicleMatMgt(OpeBase ob)
  17. : base(ob)
  18. {
  19. }
  20. private DataSet GetYdmZcBillM(string sqlCondition)
  21. {
  22. string sqlstr = string.Format(" select * from ydm_zc_bill_m where 1 = 1 and validflag = '1' {0}", sqlCondition);
  23. return base.ExecuteQuery(sqlstr);
  24. }
  25. private DataSet GetYdmZcLoadVehicleMat(string sqlCondition)
  26. {
  27. string sqlstr = string.Format(" select * from ydm_zc_loadvehicle_mat where 1 = 1 and validflag = '2' {0}", sqlCondition);
  28. return base.ExecuteQuery(sqlstr);
  29. }
  30. private DataSet GetYdmZcLoadvehicle(string sqlCondition)
  31. {
  32. string sqlstr = string.Format(" select * from ydm_zc_loadvehicle where 1 = 1 and validflag = '1' {0}", sqlCondition);
  33. return base.ExecuteQuery(sqlstr);
  34. }
  35. private DataSet GetSlmOrderLineDeliveryTransit(string sqlCondition)
  36. {
  37. string sqlstr = string.Format(" select * from slm_order_delivery_transit where 1 = 1 and VALIDFLAG = '1' {0}", sqlCondition);
  38. return base.ExecuteQuery(sqlstr);
  39. }
  40. public DataSet GetDistinctOrderLineDeliveryTransitByBillNo(string billno)
  41. {
  42. string sqlStr = @"select a.agency_fl,
  43. a.transit_typ TRANS_TYPE,
  44. b.order_no,b.order_seq,B.DELIVERY_NO,
  45. a.ord_pk,a.ord_ln_pk,a.ord_ln_dly_pk,a.index_seq,
  46. a.destination,
  47. a.station_no,
  48. a.station_nm,
  49. a.spcl_ln_no,
  50. a.spcl_ln_nm,
  51. a.port_no,
  52. a.port_desc,
  53. a.carrier_unit,
  54. a.receivor,c.delvry_addr,c.receiv_addr
  55. from ydm_zc_bill_m b
  56. join slm_order_delivery_transit a on b.ord_pk = a.ord_pk
  57. and b.ord_ln_pk = a.ord_ln_pk
  58. and b.ord_ln_dly_pk = a.ord_ln_dly_pk
  59. join slm_order_line_delivery c
  60. on c.ord_pk = a.ord_pk
  61. and c.ord_ln_pk = a.ord_ln_pk
  62. and c.ord_ln_dly_pk = a.ord_ln_dly_pk
  63. where b.validflag = '1'
  64. and b.loadvehicle_type = '1'
  65. and a.validflag = '1' {0} ";
  66. string sqlCondition = string.Format(" and bill_no = '{0}' ",billno);
  67. sqlStr = string.Format(sqlStr,sqlCondition);
  68. return base.ExecuteQuery(sqlStr );
  69. }
  70. /// <summary>
  71. ///
  72. /// </summary>
  73. /// <param name="ORD_PK"></param>
  74. /// <param name="ORD_LN_PK"></param>
  75. /// <param name="ORD_LN_DLY_PK"></param>
  76. /// <returns></returns>
  77. public DataSet GetSlmOrderLineDeliveryTransitByOrdPkAndOrdLnPkAndOrdLnDlvPk(string ORD_PK, string ORD_LN_PK, string ORD_LN_DLY_PK)
  78. {
  79. string sqlCondition = string.Format(" and ORD_PK ||ORD_LN_PK||ORD_LN_DLY_PK = '{0}' ", ORD_PK + ORD_LN_PK + ORD_LN_DLY_PK);
  80. return GetSlmOrderLineDeliveryTransit(sqlCondition);
  81. }
  82. /// <summary>
  83. /// 通过装车时间获取装车数据,包括已经确认和未确认
  84. /// </summary>
  85. /// <param name="dtBegin"></param>
  86. /// <param name="dtEnd"></param>
  87. /// <returns></returns>
  88. public DataSet GetYdmZcLoadvehicleByDelivy_Time(DateTime dtBegin, DateTime dtEnd)
  89. {
  90. string sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("DELIVY_TIME", dtBegin, dtEnd);
  91. return GetYdmZcLoadvehicle(sqlConditino);
  92. }
  93. /// <summary>
  94. /// 通过装车时间获取确认的装车数据
  95. /// </summary>
  96. /// <param name="dtBegin"></param>
  97. /// <param name="dtEnd"></param>
  98. /// <returns></returns>
  99. public DataSet GetAffrimYdmZcLoadvehicleByDelivy_Time(DateTime dtBegin, DateTime dtEnd)
  100. {
  101. string sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("DELIVY_TIME", dtBegin, dtEnd);
  102. sqlConditino += " and AFFIRM_FLAG = '2' ";
  103. return GetYdmZcLoadvehicle(sqlConditino);
  104. }
  105. public DataSet GetYdmZcBillMByOrderNo(string orderNo)
  106. {
  107. string sqlCondition = string.Format(" and order_no = '{0}' ",orderNo);
  108. return this.GetYdmZcBillM(sqlCondition);
  109. }
  110. public DataSet GetYdmZcBillMByCreateTime(DateTime dtBegin, DateTime dtEnd)
  111. {
  112. string sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("CREATE_TIME", dtBegin, dtEnd);
  113. return this.GetYdmZcBillM(sqlConditino);
  114. }
  115. public DataSet GetYdmZcBillMByBillNo(string billno)
  116. {
  117. string sqlCondition = string.Format(" and bill_no = '{0}' ", billno);
  118. return this.GetYdmZcBillM(sqlCondition);
  119. }
  120. public DataSet GetUnAcceptVirtulYdmZcBillM()
  121. {
  122. string sqlCondition = " and loadvehicle_type = '2' and ispreclose = '1' ";
  123. return this.GetYdmZcBillM(sqlCondition);
  124. }
  125. public DataSet GetNotClosedYdmZcBillMByBillNo(string billno)
  126. {
  127. string sqlCondition = string.Format(" and bill_no = '{0}' and (bill_status = '0' or bill_status = '1' or bill_status = '2' or bill_status = '3') ", billno);
  128. return this.GetYdmZcBillM(sqlCondition);
  129. }
  130. public Boolean IsBillNoAllClosed(string billNo)
  131. {
  132. DataSet ds = GetNotClosedYdmZcBillMByBillNo(billNo);
  133. try
  134. {
  135. return !(ds.Tables[0].Rows.Count > 0);
  136. }
  137. catch
  138. {
  139. return false;
  140. }
  141. }
  142. private string BILL_STATUS_CLOSE = "4";
  143. /// <summary>
  144. /// 实单
  145. /// </summary>
  146. /// <returns></returns>
  147. public List<string> GetClosedBillM()
  148. {
  149. List<string> listBill = new List<string>();
  150. List<string> listBillNotClosed = new List<string>();
  151. string sqlCondition = string.Format(" and loadvehicle_type = '1' and bill_status = '{0}' ", BILL_STATUS_CLOSE);
  152. DataSet ds = this.GetYdmZcBillM(sqlCondition);
  153. if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
  154. return listBill;
  155. string billNo = "";
  156. foreach (DataRow dr in ds.Tables[0].Rows)
  157. {
  158. billNo = dr[BILL_NO].ToString();
  159. if(!listBill.Contains(billNo))
  160. listBill.Add(billNo);
  161. }
  162. //foreach (DataRow dr in ds.Tables[0].Rows)
  163. //{
  164. // billNo = dr[BILL_NO].ToString();
  165. // if (listBillNotClosed.Contains(billNo))
  166. // continue;
  167. // if (!listBill.Contains(billNo))
  168. // {
  169. // if (IsBillNoAllClosed(billNo))
  170. // {
  171. // listBill.Add(billNo);
  172. // }
  173. // else
  174. // {
  175. // if (!listBillNotClosed.Contains(billNo))
  176. // {
  177. // listBillNotClosed.Add(billNo);
  178. // }
  179. // }
  180. // }
  181. //}
  182. return listBill;
  183. }
  184. public DataSet GetCanAcceptMatInfo()
  185. {
  186. List<string> closedBillNo = this.GetClosedBillM();
  187. string sqlConditon = Util.ConverObject.ConvertListStringValueToSqlCondition(BILL_NO,closedBillNo);
  188. DataSet ds = this.GetYdmZcLoadVehicleMat(sqlConditon);
  189. return ds;
  190. }
  191. public void Accept(ArrayList listbillNo,out string errMsg)
  192. {
  193. errMsg = "";
  194. }
  195. public void AcceptSignle( string billNo,out string errMsg )
  196. {
  197. errMsg = "";
  198. CoreClientParam param = base.GetCoreClientParam(_ServerName, "acceptBalaneDetail", new object[] { billNo });
  199. CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
  200. errMsg = base.GetReturnErrorInfo(result);
  201. }
  202. public void AcceptTicketBySendTicketToInvoice(string billNo,ArrayList listOutStock,String billType, String billck,
  203. String outStockCk,string transck,string person, out string errMsg)
  204. {
  205. errMsg = "";
  206. CoreClientParam param = base.GetCoreClientParam(_ServerName, "acceptBalaneDetailBySignTicket",
  207. new object[] { billNo, listOutStock,billType,billck,outStockCk,transck,person });
  208. CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
  209. errMsg = base.GetReturnErrorInfo(result);
  210. }
  211. public void RollBackTicketBySendTicketToInvoice(string billNo, String billType, String billck,
  212. String outStockCk, string transck, string person, out string errMsg)
  213. {
  214. errMsg = "";
  215. CoreClientParam param = base.GetCoreClientParam(_ServerName, "rollBackTicketsAndOutStockMnyAndTransMnyByAksplid",
  216. new object[] { billNo, billType, billck, outStockCk, transck, person });
  217. CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
  218. errMsg = base.GetReturnErrorInfo(result);
  219. }
  220. public void AffrimAline(ArrayList listbillNo, string person, out string errMsg)
  221. {
  222. errMsg = "";
  223. CoreClientParam param = base.GetCoreClientParam("core.stlmes.server.sale.service.Bill.YdmZcBillMgt", "makeTicketAline", new object[] { listbillNo, person });
  224. CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
  225. errMsg = base.GetReturnErrorInfo(result);
  226. }
  227. public void UnAffrimAline(ArrayList listbillNo, string person, out string errMsg)
  228. {
  229. errMsg = "";
  230. CoreClientParam param = base.GetCoreClientParam("core.stlmes.server.sale.service.Bill.YdmZcBillMgt", "makeTicketNoAline", new object[] { listbillNo, person });
  231. CoreClientParam result = base.fr.ExecuteNonQuery(param, CoreInvokeType.Internal);
  232. errMsg = base.GetReturnErrorInfo(result);
  233. }
  234. /// <summary>
  235. /// 获取票据对齐数据
  236. /// </summary>
  237. /// <param name="dtBegin"></param>
  238. /// <param name="dtEnd"></param>
  239. /// <returns></returns>
  240. public DataSet GetBillNoAfterCloseByBillCreateTime(DateTime dtBegin, DateTime dtEnd, DateTime date3, DateTime date4)
  241. {
  242. DataSet ds = new DataSet();
  243. string sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("a.CREATE_TIME", dtBegin, dtEnd);
  244. if (date3 != default(DateTime))
  245. {
  246. sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("a.PRINT_FLAG", date3, date4);
  247. }
  248. sqlConditino += " and (BILL_TICKET_STATUS = '0' or OUTSTOCK_TICKET_STATUS = '0' or TRANSMNY_TICKET_STATUS = '0')";
  249. string sql = string.Format(GetSqlStr(),sqlConditino);
  250. ds = base.ExecuteQuery(sql);
  251. return ds;
  252. }
  253. public DataSet GetBillNoAfterCloseByBillno(string billNo)
  254. {
  255. DataSet ds = new DataSet();
  256. string sqlConditino = string.Format(" and a.bill_no like '%'||'{0}'||'%' ",billNo);
  257. sqlConditino += " and (BILL_TICKET_STATUS = '0' or OUTSTOCK_TICKET_STATUS = '0' or TRANSMNY_TICKET_STATUS = '0')";
  258. string sql = string.Format(GetSqlStr(), sqlConditino);
  259. ds = base.ExecuteQuery(sql);
  260. return ds;
  261. }
  262. public DataSet GetAlineBillNoAfterCloseByBillCreateTime(DateTime dtBegin, DateTime dtEnd, DateTime date3, DateTime date4)
  263. {
  264. DataSet ds = new DataSet();
  265. string sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("a.CREATE_TIME", dtBegin, dtEnd);
  266. if (date3 != default(DateTime))
  267. {
  268. sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("a.PRINT_FLAG", date3, date4);
  269. }
  270. sqlConditino += " and instr(BILL_TICKET_STATUS||OUTSTOCK_TICKET_STATUS||TRANSMNY_TICKET_STATUS,'0') = 0 ";
  271. sqlConditino += " and instr(BILL_TICKET_STATUS||OUTSTOCK_TICKET_STATUS||TRANSMNY_TICKET_STATUS,'1') > 0";
  272. string sql = string.Format(GetSqlStr(), sqlConditino);
  273. ds = base.ExecuteQuery(sql);
  274. return ds;
  275. }
  276. public DataSet GetAlineBillNoAfterCloseByBillno(string billNo)
  277. {
  278. DataSet ds = new DataSet();
  279. string sqlConditino = string.Format(" and a.bill_no like '%'||'{0}'||'%' ", billNo);
  280. sqlConditino += " and instr(BILL_TICKET_STATUS||OUTSTOCK_TICKET_STATUS||TRANSMNY_TICKET_STATUS,'0') = 0 ";
  281. sqlConditino += " and instr(BILL_TICKET_STATUS||OUTSTOCK_TICKET_STATUS||TRANSMNY_TICKET_STATUS,'1') > 0";
  282. string sql = string.Format(GetSqlStr(), sqlConditino);
  283. ds = base.ExecuteQuery(sql);
  284. return ds;
  285. }
  286. public DataSet GetSendSuccessBillNoAfterCloseByBillCreateTime(DateTime dtBegin, DateTime dtEnd, DateTime date3, DateTime date4)
  287. {
  288. DataSet ds = new DataSet();
  289. string sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("a.CREATE_TIME", dtBegin, dtEnd);
  290. if (date3 != default(DateTime))
  291. {
  292. sqlConditino = Util.ConverObject.ConvertDateTimeValueToDbLanguage("a.PRINT_FLAG", date3, date4);
  293. }
  294. sqlConditino += " and (BILL_TICKET_STATUS = '2' and OUTSTOCK_TICKET_STATUS = '2' and TRANSMNY_TICKET_STATUS ='2')";
  295. string sql = string.Format(GetSqlStr(), sqlConditino);
  296. ds = base.ExecuteQuery(sql);
  297. return ds;
  298. }
  299. public DataSet GetSendSuccessBillNoAfterCloseByBillno(string billNo)
  300. {
  301. DataSet ds = new DataSet();
  302. string sqlConditino = string.Format(" and a.bill_no like '%'||'{0}'||'%' ", billNo);
  303. sqlConditino += " and (BILL_TICKET_STATUS ='2' and OUTSTOCK_TICKET_STATUS = '2' and TRANSMNY_TICKET_STATUS = '2')";
  304. string sql = string.Format(GetSqlStr(), sqlConditino);
  305. ds = base.ExecuteQuery(sql);
  306. return ds;
  307. }
  308. public DataSet GetAlineBillMateByBillNo(string billno)
  309. {
  310. DataSet ds = new DataSet();
  311. string sql = this.GetBillMateByBillNo(billno);
  312. ds = base.ExecuteQuery(sql);
  313. return ds;
  314. }
  315. public DataSet GetAlineVirtualBillMateByBillNo(string billno)
  316. {
  317. DataSet ds = new DataSet();
  318. string sql = this.GetVirtualBillInfoByBillNo(billno);
  319. ds = base.ExecuteQuery(sql);
  320. return ds;
  321. }
  322. public DataSet GetAlineTransDeliveryByBillNo(string billno)
  323. {
  324. DataSet ds = new DataSet();
  325. string sql = string.Format("select * from ydm_order_delivery_transit a where a.validflag = '1' {0} ",
  326. string.Format(" and bill_no = '{0}' ", billno));
  327. ds = base.ExecuteQuery(sql);
  328. return ds;
  329. }
  330. private string GetSqlStr()
  331. {
  332. string str = @"
  333. SELECT MIN(A.CREATE_TIME) CREATE_TIME,min(to_char(INVOICEDATE,'yyyy-mm-dd')) INVOICEDATE,
  334. min(a.management_name) management_name,
  335. min(a.sale_org_desc) sale_org_desc,
  336. min(a.loadvehicle_type) loadvehicle_type,
  337. min(a.supply_unit) supply_unit,
  338. min(a.supply_unit_desc) supply_unit_desc,
  339. MIN(A.CUSTOMER_NO) CUSTOMER_NO,
  340. MIN(A.CUSTOMER_NM) CUSTOMER_NM,
  341. MIN(A.RECEIV_NO) RECEIV_NO,
  342. MIN(A.RECEIV_NM) RECEIV_NM,
  343. MIN(B.CARRY_COMPANY_CODE),
  344. MIN(B.CARRY_COMPANY_NAME),
  345. max(a.plan_num) QUANTITY,
  346. max(a.plan_wt) WEIGHT,
  347. max(a.trans_area) TRANS_AREA,
  348. min(case
  349. when a.loadvehicle_type = '2' and a.bill_status = '4' then
  350. '二次关闭'
  351. when a.loadvehicle_type = '2' and a.bill_status >= '2' then
  352. '理货'
  353. else
  354. '未理货'
  355. end) virsts,
  356. SUM(case
  357. when a.loadvehicle_type = '2' and a.bill_status < '4' then
  358. 0
  359. else
  360. B.ACT_COUNT
  361. end) ACT_COUNT,
  362. SUM(case
  363. when a.loadvehicle_type = '2' and a.bill_status < '4' then
  364. 0
  365. else
  366. CASE
  367. WHEN NVL(B.PONDER_GROSS_WT,0) <> 0 THEN
  368. B.PONDER_GROSS_WT
  369. WHEN (NVL(B.PONDER_GROSS_WT,0) = 0) AND ((SELECT min(ORDER_UNIT) FROM SLM_ORDER_LINE WHERE ORD_LN_PK = A.ORD_LN_PK) = '吨') AND (NVL(B.SEND_NUM,0)>0) THEN
  370. B.SEND_NUM
  371. ELSE
  372. B.ACT_WEIGHT
  373. END end) ACT_WEIGHT,
  374. A.BILL_NO,
  375. SUM(B.SEND_NUM) SEND_NUM,
  376. MIN(LOADVEHICLE_TYPE) LOADVEHICLE_TYPE,
  377. MIN(CASE
  378. WHEN A.BILL_TICKET_STATUS = '0' THEN
  379. 'N'
  380. WHEN A.BILL_TICKET_STATUS = '1' THEN
  381. '已对齐'
  382. WHEN A.BILL_TICKET_STATUS = '2' THEN
  383. '发送结算'
  384. END) BILL_TICKET_STATUS,
  385. MIN(
  386. case
  387. when a.loadvehicle_type = '1' then
  388. case
  389. WHEN OUTSTOCK_TICKET_STATUS = '1' THEN
  390. '已对齐'
  391. WHEN OUTSTOCK_TICKET_STATUS = '2' THEN
  392. '发送结算'
  393. when a.extra_flag = '1' then
  394. 'N'
  395. when a.agency_fl = '0' and a.delvry_addr = 'TPCO库房' then
  396. 'OK'
  397. WHEN A.DELVRY_ADDR NOT IN ('TPCO库房车板', '指定地点', 'TPCO库房') THEN
  398. 'OK'
  399. ELSE
  400. CASE
  401. WHEN OUTSTOCK_TICKET_STATUS = '0' THEN
  402. 'N'
  403. WHEN OUTSTOCK_TICKET_STATUS = '1' THEN
  404. '已对齐'
  405. WHEN OUTSTOCK_TICKET_STATUS = '2' THEN
  406. '发送结算'
  407. END END WHEN A.LOADVEHICLE_TYPE = '2' THEN CASE
  408. WHEN A.BILL_STATUS < '4' THEN
  409. ''
  410. WHEN A.BILL_STATUS >= '4' THEN
  411. case
  412. WHEN OUTSTOCK_TICKET_STATUS = '1' THEN
  413. '已对齐'
  414. WHEN OUTSTOCK_TICKET_STATUS = '2' THEN
  415. '发送结算'
  416. when a.agency_fl = '0' and a.delvry_addr = 'TPCO库房' then
  417. 'OK'
  418. when a.extra_flag = '1' then
  419. 'N'
  420. WHEN A.DELVRY_ADDR NOT IN ('TPCO库房车板', '指定地点', 'TPCO库房') THEN
  421. 'OK'
  422. ELSE
  423. CASE
  424. WHEN OUTSTOCK_TICKET_STATUS = '0' THEN
  425. 'N'
  426. END END END END)
  427. OUTSTOCK_TICKET_STATUS,
  428. MIN(case
  429. when A.TRANSMNY_TICKET_STATUS = '2' then
  430. '发送结算'
  431. when (tr.Ord_Pk is null) then
  432. 'OK'
  433. when A.TRANSMNY_TICKET_STATUS = '1' then
  434. '已对齐'
  435. when A.TRANSMNY_TICKET_STATUS = '2' then
  436. '发送结算'
  437. when (tr.Ord_Pk is not null) then
  438. 'N'
  439. end) TRANSMNY_TICKET_STATUS,
  440. min(a.management_no) create_dept,
  441. min(bill_status) bill_status,
  442. min((SELECT BASENAME FROM COM_BASE_INFO WHERE BASECODE= a.plan_trans_type)) TRANS_TPE
  443. FROM (select MIN(A.CREATE_TIME) CREATE_TIME,
  444. min(a.loadvehicle_type) loadvehicle_type,
  445. MIN(A.CUSTOMER_NO) CUSTOMER_NO,
  446. MIN(A.CUSTOMER_NM) CUSTOMER_NM,
  447. min (a.ORD_LN_PK) ORD_LN_PK,
  448. MIN(A.RECEIV_NO) RECEIV_NO,
  449. MIN(A.RECEIV_NM) RECEIV_NM,
  450. min(a.PRINT_FLAG) INVOICEDATE,
  451. min(a.TRANSMNY_TICKET_STATUS) TRANSMNY_TICKET_STATUS,
  452. MIN(A.OUTSTOCK_TICKET_STATUS) OUTSTOCK_TICKET_STATUS,
  453. MIN(A.BILL_STATUS) BILL_STATUS,
  454. MIN(A.DELVRY_ADDR) DELVRY_ADDR,
  455. MIN(A.BILL_TICKET_STATUS) BILL_TICKET_STATUS,
  456. min(a.plan_trans_type) plan_trans_type,
  457. min(a.extra_flag) extra_flag,
  458. sum(a.plan_num) plan_num,
  459. sum(a.plan_wt) plan_wt,
  460. min(a.management_no) management_no,
  461. min(a.management_name) management_name,
  462. min(a.sale_org_desc) sale_org_desc,
  463. min(a.agency_fl) agency_fl,
  464. min(a.supply_unit) supply_unit,
  465. min(a.supply_unit_desc) supply_unit_desc,
  466. a.BILL_NO,
  467. (select listagg(t3.STORAGE_NAME,';') WITHIN GROUP(ORDER BY t3.bill_no) from (SELECT distinct t1.STORAGE_NAME,t2.bill_no FROM YDM_BS_STORAGE t1,YDM_ZC_BILL_c t2 WHERE t1.VALIDFLAG='1' and t1.storage_no=t2.storage_no)t3 where a.bill_no=t3.bill_no)trans_area
  468. from YDM_ZC_BILL_M a
  469. where 1 = 1
  470. and a.validflag = '1'
  471. {0}
  472. AND (A.BILL_STATUS >= '4' OR A.ISPRECLOSE >= '1')
  473. group by a.bill_no) A
  474. LEFT JOIN YDM_ZC_LOADVEHICLE_MAT B ON A.BILL_NO = B.BILL_NO
  475. AND B.VALIDFLAG <> '0'
  476. left join (select bill_no,
  477. min(ord_pk) ord_pk,
  478. min(ord_ln_pk) ord_ln_pk,
  479. min(ord_ln_dly_pk) ord_ln_dly_pk
  480. from ydm_order_delivery_transit
  481. group by bill_no) tr on a.bill_no = tr.bill_no
  482. GROUP BY a.BILL_NO,b.bill_no
  483. ";
  484. return str;
  485. }
  486. private string GetBillMateByBillNo(string billno)
  487. {
  488. string str = @" select a.*,
  489. case
  490. when ticketype = '无' then
  491. 0
  492. else
  493. weight *
  494. (decode(TRANS_TPE, '110501', 8.62, '110502', 19.83, 8.62))
  495. end outstockmny,
  496. case
  497. when ticketype = '无' then
  498. '自付'
  499. else
  500. 'TPCO付'
  501. end TKp
  502. from (select min(a.order_no || '/' || a.order_seq) orderno,
  503. a.JUDGE_STOVE_NO,
  504. a.batch_no,
  505. sum(a.act_count) quantity,
  506. sum(case
  507. when a.ponder_gross_wt > 0 then
  508. a.ponder_gross_wt
  509. WHEN (NVL(a.PONDER_GROSS_WT,0) <= 0) AND ((SELECT min(ORDER_UNIT) FROM SLM_ORDER_LINE WHERE ORD_LN_PK = a.ORD_LN_PK) = '吨') AND (NVL(a.SEND_NUM,0)>0) THEN
  510. a.SEND_NUM
  511. else
  512. a.act_weight
  513. end) weight,
  514. a.ord_pk,
  515. a.ord_ln_pk,
  516. a.ord_ln_dly_pk,
  517. min(b.agency_fl) agency_fl,
  518. min(b.delvry_addr) delvry_addr,
  519. min(b.plan_trans_type) TRANS_TPE,
  520. min(a.pline_name) pline_name,
  521. min(case
  522. when b.EXTRA_FLAG = '1' then
  523. '应收'
  524. when (b.delvry_addr = 'TPCO库房车板' or b.delvry_addr = '指定地点') then
  525. '报销'
  526. else
  527. '无'
  528. end
  529. ) ticketype
  530. from ydm_zc_loadvehicle_mat a
  531. join ( select min(b.agency_fl) agency_fl,
  532. min(b.delvry_addr) delvry_addr,
  533. min(b.plan_trans_type) plan_trans_type,bill_no ,
  534. min(EXTRA_FLAG) EXTRA_FLAG from
  535. ydm_zc_bill_m b group by bill_no ) b
  536. on a.bill_no = b.bill_no
  537. where 1 = 1
  538. and a.validflag <> '0'
  539. {0}
  540. group by a.bill_no,
  541. a.order_no || a.order_seq,
  542. a.judge_stove_no,
  543. a.batch_no,
  544. a.ord_pk,
  545. a.ord_ln_pk,
  546. a.ord_ln_dly_pk) a
  547. ";
  548. str = string.Format(str, string.Format(" and a.bill_no = '{0}' ",billno));
  549. return str;
  550. }
  551. private string GetTransDelivByBIllNo(string billNo)
  552. {
  553. string sqlStr = @" select B.INDEX_SEQ,
  554. B.AGENCY_FL,
  555. B.TRANSIT_TYP,
  556. B.DESTINATION,
  557. B.STATION_NM,
  558. B.SPCL_LN_NM,
  559. C.DELVRY_ADDR,
  560. c.RECEIV_ADDR,
  561. a.bill_no,
  562. b.ord_pk,
  563. b.ord_ln_pk,
  564. b.ord_ln_dly_pk
  565. from (select min(ord_pk || ord_ln_pk || ord_ln_dly_pk) ord_pk, a.bill_no
  566. from ydm_zc_bill_m a
  567. where a.validflag = '1'
  568. {0}
  569. group by a.bill_no) a
  570. join slm_order_delivery_transit b on b.ord_pk || b.ord_ln_pk ||
  571. b.ord_ln_dly_pk = a.ord_pk
  572. join slm_order_line_delivery c on c.ord_pk = b.ord_pk
  573. and c.ord_ln_pk = b.ord_ln_pk
  574. and c.ord_ln_dly_pk = b.ord_ln_dly_pk
  575. where b.validflag = '1'
  576. ";
  577. sqlStr = string.Format(sqlStr, string.Format(" and a.bill_no = '{0}' ",billNo));
  578. return sqlStr;
  579. }
  580. private string GetVirtualBillInfoByBillNo(string billno)
  581. {
  582. string str = @"
  583. select a.*,
  584. case
  585. when ticketype = '无' then
  586. 0
  587. else
  588. 0 * (decode(TRANS_TPE, '110501', 8.62, '110502', 19.83, 8.62))
  589. end outstockmny,
  590. case
  591. when ticketype = '无' then
  592. '自付'
  593. else
  594. 'TPCO付'
  595. end TKp
  596. from (select min(a.order_no || '/' || a.order_seq) orderno,
  597. a.bill_no,
  598. c.JUDGE_STOVE_NO,
  599. c.batch_no,
  600. sum(c.act_count) quantity,
  601. sum(c.act_weight) weight,
  602. a.ord_pk,
  603. a.ord_ln_pk,
  604. a.ord_ln_dly_pk,
  605. min(pline_name) pline_name,
  606. min(a.agency_fl) agency_fl,
  607. min(a.delvry_addr) delvry_addr,
  608. min(a.plan_trans_type) TRANS_TPE,
  609. min(case
  610. when a.agency_fl = '0' and a.delvry_addr = 'TPCO库房' then
  611. '无'
  612. when a.agency_fl = '1' and a.delvry_addr = 'TPCO库房' then
  613. '应收'
  614. when (a.delvry_addr = 'TPCO库房车板' or a.delvry_addr = '指定地点') then
  615. '报销'
  616. else
  617. '无'
  618. end
  619. ) ticketype
  620. from ydm_zc_bill_m a
  621. join ydm_zc_bill_c c on a.bill_no = c.bill_no
  622. and a.ord_pk=c.ord_pk
  623. and a.ord_ln_pk = c.ord_ln_pk
  624. and a.ord_ln_dly_pk = c.ord_ln_dly_pk
  625. {0}
  626. where 1 = 1
  627. and a.validflag <> '0'
  628. and a.loadvehicle_type = '2'
  629. and c.validflag = '1'
  630. -- and a.bill_no = 'THM1510260005'
  631. group by a.bill_no,
  632. a.order_no || a.order_seq,
  633. c.judge_stove_no,
  634. c.batch_no,
  635. a.ord_pk,
  636. a.ord_ln_pk,
  637. a.ord_ln_dly_pk) a
  638. ";
  639. str = string.Format(str, string.Format(" and a.bill_no = '{0}' ", billno));
  640. return str;
  641. }
  642. private string BILL_NO = "BILL_NO";
  643. private string _ServerName = "core.stlmes.server.sale.service.balance.SlmBalanceTickets";
  644. }
  645. }