FrmBillReport.cs 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using CoreFS.CA06;
  10. using Core.Mes.Client.Comm.Control;
  11. using Core.Mes.Client.Comm.Server;
  12. using System.Collections;
  13. using Core.Mes.Client.Comm.Tool;
  14. using Infragistics.Win.UltraWinGrid;
  15. using Core.StlMes.Client.YdmPipeManage.Tool;
  16. using Infragistics.Win;
  17. namespace Core.StlMes.Client.YdmPipeManage
  18. {
  19. public partial class FrmBillReport : FrmBase
  20. {
  21. private string[] _salgPermissions;
  22. private string[] _storagerPur;
  23. public FrmBillReport()
  24. {
  25. InitializeComponent();
  26. this.IsLoadUserView = true;
  27. }
  28. private void FrmBillReport_Load(object sender, EventArgs e)
  29. {
  30. DateTime now = DateTime.Now;
  31. DateTime dt1 = new DateTime(now.Year, now.Month, 1);//当月第一天
  32. DateTime dt2 = dt1.AddMonths(1).AddDays(-1);//当月最后一天
  33. StratBillTime.Value = DateTime.Parse(dt1.ToString("yyyy-MM-dd") + " 00:00:00");
  34. EndBillTime.Value = DateTime.Parse(dt2.ToString("yyyy-MM-dd") + " 23:59:59");
  35. CloseStratTime.Value = DateTime.Parse(dt1.ToString("yyyy-MM-dd") + " 00:00:00");
  36. CloseEndTime.Value = DateTime.Parse(dt2.ToString("yyyy-MM-dd") + " 23:59:59");
  37. BaseMethod.InitMonth(cmbMonth);
  38. BaseMethod.InitYear(cmbYear);
  39. cmbMonth.Value = string.Format("{0:00}", DateTime.Now.Month);
  40. cmbYear.Value = DateTime.Now.Year.ToString();
  41. _salgPermissions = BaseMethod.InitPermissions(this.ValidDataPurviewIds, ob);
  42. _storagerPur = BaseMethod.WarehousePermissions("", this.ValidDataPurviewIds, ob);
  43. }
  44. /// <summary>
  45. /// 重写基类方法
  46. /// </summary>
  47. /// <param name="sender"></param>
  48. /// <param name="ToolbarKey"></param>
  49. public override void ToolBar_Click(object sender, string ToolbarKey)
  50. {
  51. switch (ToolbarKey)
  52. {
  53. case "Query":
  54. doQuery();
  55. break;
  56. case "Export"://导出
  57. if (ultraTabControl1.SelectedTab.Key.Equals("0"))
  58. {
  59. GridHelper.ulGridToExcel(GridBill, "提单报表子信息");
  60. }
  61. else
  62. {
  63. GridHelper.ulGridToExcel(ultraGrid1, "提单报表主信息");
  64. }
  65. break;
  66. case "Close":
  67. this.Close();
  68. break;
  69. }
  70. }
  71. /// <summary>
  72. /// 验证Checked是否勾选,显示控件可编辑 打勾表示可编辑,不打勾表示不可编辑
  73. /// </summary>
  74. /// <param name="sender"></param>
  75. /// <param name="e"></param>
  76. private void chk_CheckedChanged(object sender, EventArgs e)
  77. {
  78. if (chkBillList.Checked) { txtBillList.Enabled = true; } else { txtBillList.Enabled = false; }
  79. if (chkBillDate.Checked) { StratBillTime.Enabled = true; EndBillTime.Enabled = true; } else { StratBillTime.Enabled = false; EndBillTime.Enabled = false; }
  80. if (chkCloseDate.Checked) { CloseStratTime.Enabled = true; CloseEndTime.Enabled = true; } else { CloseStratTime.Enabled = false; CloseEndTime.Enabled = false; }
  81. if (chkOrder.Checked) { txtOrderNo.Enabled = true; } else { txtOrderNo.Enabled = false; }
  82. if (chkBillType.Checked) { cmbStatus.Enabled = true; } else { cmbStatus.Enabled = false; }
  83. if (chkSoage.Checked) { cmbSoage.Enabled = true; } else { cmbSoage.Enabled = false; }
  84. if (chkjies.Checked) { cmbJies.Enabled = true; } else { cmbJies.Enabled = false; }
  85. if (ChcTime.Checked) { cmbYear.Enabled = true; cmbMonth.Enabled = true; } else { cmbYear.Enabled = false; cmbMonth.Enabled = false; }
  86. if (chkHk.Checked) { cmbHk.Enabled = true; cmbCkf.Enabled = true; cmbYf.Enabled = true; } else { cmbHk.Enabled = false; cmbCkf.Enabled = false; cmbYf.Enabled = false; }
  87. if (chkJuno.Checked) { cmbJuNo.Enabled = true; } else { cmbJuNo.Enabled = false; }
  88. }
  89. /// <summary>
  90. /// 查询
  91. /// </summary>
  92. private void doQuery()
  93. {
  94. if (!ValidQuery()) return;
  95. ArrayList list = new ArrayList();
  96. string strStartTime = "";//开始时间
  97. string strEntTime = "";//结束时间
  98. string strStatus = "";
  99. string strBill = "";//提单号
  100. string strOrder = "";
  101. string closeStartTime = "";
  102. string closeEndTime = "";
  103. //string strHk="";
  104. //string strCkf = "";
  105. //string strYf = "";
  106. if (chkBillList.Checked)
  107. {
  108. strBill = txtBillList.Text.Trim();
  109. }
  110. if (chkBillDate.Checked)
  111. {
  112. strStartTime = StratBillTime.Value.ToString();
  113. strEntTime = EndBillTime.Value.ToString();
  114. if (DataTimeUtil.JudgeTime(DateTime.Parse(strStartTime), DateTime.Parse(strEntTime)) == 0)
  115. {
  116. MessageUtil.ShowTips("您所选择的日期区域不对,请重新选择!");
  117. return;
  118. }
  119. TimeSpan ts = Convert.ToDateTime(strEntTime) - Convert.ToDateTime(strStartTime);
  120. int sub = ts.Days;
  121. if (sub > 92)
  122. {
  123. MessageUtil.ShowTips("两个日期不能相差90天!");
  124. return;
  125. }
  126. }
  127. if(chkCloseDate.Checked)
  128. {
  129. closeStartTime = CloseStratTime.Value.ToString();
  130. closeEndTime = CloseEndTime.Value.ToString();
  131. if (DataTimeUtil.JudgeTime(DateTime.Parse(closeStartTime), DateTime.Parse(closeEndTime)) == 0)
  132. {
  133. MessageUtil.ShowTips("您所选择的日期区域不对,请重新选择!");
  134. return;
  135. }
  136. TimeSpan ts = Convert.ToDateTime(closeEndTime) - Convert.ToDateTime(closeStartTime);
  137. int sub = ts.Days;
  138. if (sub >92)
  139. {
  140. MessageUtil.ShowTips("两个日期不能相差92天!");
  141. return;
  142. }
  143. }
  144. if (chkBillType.Checked)
  145. {
  146. strStatus = cmbStatus.Value.ToString();
  147. }
  148. if (chkOrder.Checked)
  149. {
  150. strOrder = txtOrderNo.Text.Trim();
  151. }
  152. string strSoage = "";
  153. if (chkSoage.Checked)
  154. {
  155. strSoage = cmbSoage.Value.ToString();
  156. }
  157. string strJies = "";
  158. if(chkjies.Checked)
  159. {
  160. strJies=cmbJies.Value.ToString();
  161. }
  162. string beginTime = "";
  163. if (ChcTime.Checked)
  164. {
  165. beginTime = cmbYear.Text.Trim() + cmbMonth.Text.Trim();
  166. }
  167. //strHk = cmbHk.Value.ToString();
  168. //strCkf = cmbCkf.Value.ToString();
  169. //strYf=cmbYf.Value.ToString();
  170. //if (cmbStatus.Text.Trim().Equals("票据对齐"))
  171. //{
  172. // if (strHk.Equals("0") && strCkf.Equals("0") & strYf.Equals("0"))
  173. // {
  174. // MessageUtil.ShowTips("票据对齐除了000和222的状态!");
  175. // return;
  176. // }
  177. // if (strHk.Equals("2") && strCkf.Equals("2") & strYf.Equals("2"))
  178. // {
  179. // MessageUtil.ShowTips("票据对齐除了000和222的状态!");
  180. // return;
  181. // }
  182. //}
  183. bool strChkHk =false;
  184. if (chkHk.Checked)
  185. {
  186. strChkHk = true;
  187. }
  188. string juNo = "";
  189. if (chkJuno.Checked) { juNo = cmbJuNo.Text.Trim(); }
  190. if (chkBillDate.Checked && chkCloseDate.Checked)
  191. {
  192. MessageUtil.ShowTips("提单编制时间与提单关闭时间只能选择一个!"); return;
  193. }
  194. if (!chkBillDate.Checked && !chkCloseDate.Checked && strStatus.Equals("") && strBill.Equals("") && strOrder.Equals("") && !ChcTime.Checked && strJies.Equals("") && strSoage.Equals("") && juNo.Equals(""))
  195. {
  196. MessageUtil.ShowTips("请至少选择一个条件!"); return;
  197. }
  198. list.Add(strStartTime);
  199. list.Add(strEntTime);
  200. list.Add(strBill);
  201. list.Add(closeStartTime);
  202. list.Add(closeEndTime);
  203. string supplyUnit = this.CustomInfo;
  204. if (supplyUnit.Equals("BELONG_CODE")) {
  205. supplyUnit = "120501";
  206. } else if (supplyUnit.Equals("BELONG_CODE_TH")) {
  207. supplyUnit = "120504";
  208. }
  209. if (ultraTabControl1.SelectedTab.Key.Equals("0"))
  210. {
  211. list.Add(strOrder);
  212. DataTable dtBill = null;
  213. if (supplyUnit == "120501")
  214. {
  215. dtBill = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.CorePipeBillOfLadingClose.getQueryBillReport", new object[] { list, strJies, beginTime, strStatus, strChkHk, strSoage, juNo, supplyUnit, this.ValidDataPurviewIds }, ob);
  216. }
  217. else {
  218. dtBill = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.CorePipeBillOfLadingClose.getQueryBillReport", new object[] { list, strJies, beginTime, strStatus, strChkHk, strSoage, juNo, supplyUnit }, ob);
  219. }
  220. GridHelper.CopyDataToDatatable(dtBill, this.dataBill, true);
  221. BaseMethod.MergedCell(GridBill, new string[] { "BILL_NO" });
  222. foreach (UltraGridRow ugr in GridBill.Rows)
  223. {
  224. //理货在途量
  225. ugr.Cells["ActCountKc"].Value = (double.Parse(ugr.Cells["PLAN_COUNT"].Value.ToString()) - double.Parse(ugr.Cells["BEEN_COUNT"].Value.ToString())).ToString();
  226. if (double.Parse(ugr.Cells["ActCountKc"].Value.ToString())!=0.0)
  227. {
  228. ugr.Cells["ActWeightKc"].Value = (double.Parse(ugr.Cells["PLAN_WEIGHT"].Value.ToString()) - double.Parse(ugr.Cells["BEEN_WEIGHT"].Value.ToString())).ToString("f3");
  229. }
  230. else
  231. {
  232. ugr.Cells["ActWeightKc"].Value = "0.000";
  233. }
  234. ugr.Cells["ActCountZY"].Value = (double.Parse(ugr.Cells["ACT_COUNT"].Value.ToString()) - double.Parse(ugr.Cells["BEEN_COUNT"].Value.ToString())).ToString();
  235. if (double.Parse(ugr.Cells["ActCountZY"].Value.ToString())!=0.0)
  236. {
  237. ugr.Cells["ActWeightZY"].Value = (double.Parse(ugr.Cells["ACT_WEIGHT"].Value.ToString()) - double.Parse(ugr.Cells["BEEN_WEIGHT"].Value.ToString())).ToString("f3");
  238. }
  239. else
  240. {
  241. ugr.Cells["ActWeightZY"].Value = "0.000";
  242. }
  243. if (Math.Abs(double.Parse(ugr.Cells["ACT_WEIGHT_POST"].Value.ToString()) / double.Parse(ugr.Cells["BEEN_WEIGHT"].Value.ToString())) > 0.003)
  244. {
  245. ugr.Cells["ACT_WEIGHT_POST"].Appearance.BackColor = Color.FromArgb(255, 192, 128);
  246. ugr.Cells["ACT_WEIGHT_POST"].Appearance.BackHatchStyle = BackHatchStyle.None;
  247. }
  248. }
  249. }
  250. else
  251. {
  252. DataTable dtBill = null;
  253. if (supplyUnit == "120501")
  254. {
  255. dtBill = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.CorePipeBillOfLadingClose.getQueryBillMReport", new object[] { list, strJies, beginTime, strStatus, strChkHk, strSoage, supplyUnit, this.ValidDataPurviewIds }, ob);
  256. }
  257. else
  258. {
  259. dtBill = ServerHelper.GetData("com.steering.pss.ydm.pipemanage.CorePipeBillOfLadingClose.getQueryBillMReport", new object[] { list, strJies, beginTime, strStatus, strChkHk, strSoage, supplyUnit }, ob);
  260. }
  261. GridHelper.CopyDataToDatatable(dtBill, this.dataBillM, true);
  262. //BaseMethod.MergedCell(ultraGrid1, new string[] { "BILL_NO" });
  263. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  264. {
  265. //理货在途量
  266. ugr.Cells["ActCountKc"].Value = (double.Parse(ugr.Cells["PLAN_COUNT"].Value.ToString()) - double.Parse(ugr.Cells["BEEN_COUNT"].Value.ToString())).ToString();
  267. if (double.Parse(ugr.Cells["ActCountKc"].Value.ToString())!=0.0)
  268. {
  269. ugr.Cells["ActWeightKc"].Value = (double.Parse(ugr.Cells["PLAN_WEIGHT"].Value.ToString()) - double.Parse(ugr.Cells["BEEN_WEIGHT"].Value.ToString())).ToString("f3");
  270. }
  271. else { ugr.Cells["ActWeightKc"].Value = "0.000"; }
  272. //提单在途量
  273. ugr.Cells["ActCountZY"].Value = (double.Parse(ugr.Cells["ACT_COUNT"].Value.ToString()) - double.Parse(ugr.Cells["BEEN_COUNT"].Value.ToString())).ToString();
  274. if (double.Parse(ugr.Cells["ActCountZY"].Value.ToString())!=0.0)
  275. {
  276. ugr.Cells["ActWeightZY"].Value = (double.Parse(ugr.Cells["ACT_WEIGHT"].Value.ToString()) - double.Parse(ugr.Cells["BEEN_WEIGHT"].Value.ToString())).ToString("f3");
  277. }
  278. else { ugr.Cells["ActWeightZY"].Value = "0.000"; }
  279. if (Math.Abs(double.Parse(ugr.Cells["ACT_WEIGHT_POST"].Value.ToString()) / double.Parse(ugr.Cells["BEEN_WEIGHT"].Value.ToString())) > 0.003)
  280. {
  281. ugr.Cells["ACT_WEIGHT_POST"].Appearance.BackColor = Color.FromArgb(255, 192, 128);
  282. ugr.Cells["ACT_WEIGHT_POST"].Appearance.BackHatchStyle = BackHatchStyle.None;
  283. }
  284. }
  285. }
  286. }
  287. /// <summary>
  288. /// 查询时验证必填项
  289. /// </summary>
  290. /// <returns></returns>
  291. private bool ValidQuery()
  292. {
  293. if (DataTimeUtil.JudgeTime(DateTime.Parse(StratBillTime.Value.ToString()), DateTime.Parse(EndBillTime.Value.ToString())) == 0)
  294. {
  295. MessageUtil.ShowTips("您所选择的日期区域不对,请重新选择!");
  296. return false;
  297. }
  298. if (chkBillList.Checked && string.IsNullOrEmpty(txtBillList.Text.Trim()))
  299. {
  300. MessageBox.Show("请输入提货单号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  301. return false;
  302. }
  303. if (chkOrder.Checked && string.IsNullOrEmpty(txtOrderNo.Text.Trim()))
  304. {
  305. MessageBox.Show("请输入合同号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  306. return false;
  307. }
  308. if (chkBillType.Checked && string.IsNullOrEmpty(cmbStatus.Text.Trim()))
  309. {
  310. MessageBox.Show("请选择提单状态!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  311. return false;
  312. }
  313. if (chkjies.Checked && string.IsNullOrEmpty(cmbJies.Text.Trim()))
  314. {
  315. MessageBox.Show("请选择是否结算!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  316. return false;
  317. }
  318. if (chkSoage.Checked && string.IsNullOrEmpty(cmbSoage.Text.Trim()))
  319. {
  320. MessageBox.Show("请选择销售组织!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  321. return false;
  322. }
  323. if (chkJuno.Checked && string.IsNullOrEmpty(cmbJuNo.Text.Trim()))
  324. {
  325. MessageBox.Show("请输入炉号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  326. return false;
  327. }
  328. return true;
  329. }
  330. /// <summary>
  331. /// 按回车键触发查询按钮
  332. /// </summary>
  333. /// <param name="sender"></param>
  334. /// <param name="e"></param>
  335. private void ContPublic_KeyDown(object sender, KeyEventArgs e)
  336. {
  337. if (e.KeyCode == Keys.Enter)
  338. {
  339. doQuery();
  340. }
  341. }
  342. private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
  343. {
  344. if (ultraTabControl1.SelectedTab.Key.Equals("0"))
  345. {
  346. chkOrder.Visible = true;
  347. txtOrderNo.Visible = true;
  348. }
  349. else
  350. {
  351. chkOrder.Visible = false;
  352. txtOrderNo.Visible = false;
  353. }
  354. }
  355. private void cmbStatus_ValueChanged(object sender, EventArgs e)
  356. {
  357. //if (cmbStatus.Text.Trim().Equals("票据对齐"))
  358. //{
  359. // chkHk.Visible = true;
  360. // cmbHk.Visible = true;
  361. // cmbCkf.Visible = true;
  362. // cmbYf.Visible = true;
  363. //}
  364. //else
  365. //{
  366. // chkHk.Visible = false;
  367. // cmbHk.Visible = false;
  368. // cmbCkf.Visible = false;
  369. // cmbYf.Visible = false;
  370. //}
  371. }
  372. }
  373. }