FrmBlanceMana.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  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;using Pur.Entity;
  10. using Pur.Entity.balanceEntity;
  11. using Core.Mes.Client.Comm.Control;
  12. using com.hnshituo.pur.vo;
  13. using Core.Mes.Client.Comm.Tool;
  14. using System.Collections;
  15. using Infragistics.Win;
  16. using Pur.Entity;
  17. namespace Pur.balance
  18. {
  19. public partial class FrmBlanceMana : FrmPmsBase
  20. {
  21. public FrmBlanceMana()
  22. {
  23. InitializeComponent();
  24. bandListValue();
  25. txt_CreateTimeStart.Value = ((DateTime)txt_CreateTimeStart.Value).AddMonths(-1);//将查询的截止日期加一天
  26. GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], "Check");
  27. ultraGrid2.DisplayLayout.Bands[0].Override.AllowUpdate = DefaultableBoolean.False;
  28. }
  29. /// <summary>
  30. /// toolbar工具栏加载
  31. /// </summary>
  32. /// <param name="sender"></param>
  33. /// <param name="ToolBarKey"></param>
  34. public override void ToolBar_Click(object sender, string ToolbarKey)
  35. {
  36. switch (ToolbarKey)
  37. {
  38. case "Query":
  39. getBalanceM();
  40. break;
  41. case "Update":
  42. //UpdPUR_MAT();
  43. break;
  44. case "DeleteBalanceM":
  45. if (ultraGrid1.ActiveRow != null)
  46. {
  47. DeleteBalanceM(ultraGrid1.ActiveRow.Cells["BALANCEID"].Value.ToString());
  48. }
  49. break;
  50. case "DeleteBalanceC":
  51. if (ultraGrid2.ActiveRow != null)
  52. {
  53. DeleteBalanceC(ultraGrid2.ActiveRow.Cells["ID"].Value.ToString());
  54. }
  55. break;
  56. case "DeleteBalanceCD":
  57. if (ultraTabControl1.SelectedTab.Key == "0")
  58. {
  59. if (ultraGrid3.ActiveRow != null)
  60. {
  61. DeleteBalanceCD(ultraGrid3.ActiveRow.Cells["ID"].Value.ToString());
  62. }
  63. }
  64. else if (ultraTabControl1.SelectedTab.Key == "1")
  65. {
  66. if (ultraGrid4.ActiveRow != null)
  67. {
  68. DeleteBalanceCD(ultraGrid4.ActiveRow.Cells["ID"].Value.ToString());
  69. }
  70. }
  71. else if (ultraTabControl1.SelectedTab.Key == "2")
  72. {
  73. if (ultraGrid5.ActiveRow != null)
  74. {
  75. DeleteBalanceCD(ultraGrid5.ActiveRow.Cells["ID"].Value.ToString());
  76. }
  77. }
  78. break;
  79. case "getBalanceRegM":
  80. getBalanceRegM();//生成报销登记单
  81. break;
  82. }
  83. }
  84. /// <summary>
  85. /// 绑定grid下拉框
  86. /// </summary>
  87. private void bandListValue()
  88. {
  89. //参考结算标准类别
  90. Infragistics.Win.ValueList valueList3 = new Infragistics.Win.ValueList();
  91. valueList3.ValueListItems.Add("1", "基准计价");
  92. valueList3.ValueListItems.Add("2", "成分计价");
  93. valueList3.ValueListItems.Add("3", "批量计价");
  94. //设置默认选项
  95. if (valueList3.ValueListItems.Count > 0)
  96. {
  97. valueList3.SelectedIndex = 0;
  98. }
  99. Infragistics.Win.ValueList valueList4 = new Infragistics.Win.ValueList();
  100. valueList4.ValueListItems.Add("1", "基准计价");
  101. valueList4.ValueListItems.Add("2", "成分计价");
  102. valueList4.ValueListItems.Add("3", "批量计价");
  103. //设置默认选项
  104. if (valueList4.ValueListItems.Count > 0)
  105. {
  106. valueList4.SelectedIndex = 0;
  107. }
  108. Infragistics.Win.ValueList valueList5 = new Infragistics.Win.ValueList();
  109. valueList5.ValueListItems.Add("1", "基准计价");
  110. valueList5.ValueListItems.Add("2", "成分计价");
  111. valueList5.ValueListItems.Add("3", "批量计价");
  112. //设置默认选项
  113. if (valueList5.ValueListItems.Count > 0)
  114. {
  115. valueList5.SelectedIndex = 0;
  116. }
  117. ultraGrid3.DisplayLayout.Bands[0].Columns["REFSTANDARDMTYPE"].ValueList = valueList3;
  118. ultraGrid4.DisplayLayout.Bands[0].Columns["REFSTANDARDMTYPE"].ValueList = valueList4;
  119. ultraGrid5.DisplayLayout.Bands[0].Columns["REFSTANDARDMTYPE"].ValueList = valueList5;
  120. }
  121. /// <summary>
  122. /// 获取结算单信息
  123. /// </summary>
  124. private void getBalanceM()
  125. {
  126. PurBalanceBillMEntity entity = getEnSelContion();
  127. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.balance.service.BalanceBillMService", "getBalanceM", new object[] { entity });
  128. //按创建时间降序
  129. if (dt.Rows.Count != 0)
  130. {
  131. dt.DefaultView.Sort = "CREATETIME DESC";
  132. dt = dt.DefaultView.ToTable();
  133. }
  134. GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true);//结算信息
  135. if (dt.Rows.Count < 1)
  136. {
  137. dataTable2.Rows.Clear();
  138. dataTable3.Rows.Clear();
  139. dataTable4.Rows.Clear();
  140. dataTable5.Rows.Clear();
  141. }
  142. }
  143. /// <summary>
  144. /// 查询结算单详表
  145. /// </summary>
  146. /// <param name="strBalanceId"></param>
  147. private void getBalanceC(string strBalanceId)
  148. {
  149. PurBalanceBillCEntity pbbcEntity = new PurBalanceBillCEntity();
  150. pbbcEntity.BalanceId = strBalanceId;
  151. pbbcEntity.Validflag = "1";
  152. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.balance.service.BalanceBillCService", "find", new object[] { pbbcEntity, 0, 0 });
  153. GridHelper.CopyDataToDatatable(ref dt, ref dataTable5, true);//结算信息
  154. if (dt.Rows.Count < 1)
  155. {
  156. dataTable2.Rows.Clear();
  157. dataTable3.Rows.Clear();
  158. dataTable4.Rows.Clear();
  159. }
  160. }
  161. /// <summary>
  162. /// 查询结算单详表明细
  163. /// </summary>
  164. /// <param name="strBalanceId"></param>
  165. private void getBalanceCD(string strBalanceId, string strBalanceCId)
  166. {
  167. PurBalanceBillCDEntity pbbcdEntity = new PurBalanceBillCDEntity();
  168. pbbcdEntity.BalanceId = strBalanceId;
  169. pbbcdEntity.BalanceCId = strBalanceCId;
  170. pbbcdEntity.Type = "3";//数量
  171. pbbcdEntity.Validflag = "1";
  172. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.balance.service.BalanceBillCDService", "find", new object[] { pbbcdEntity, 0, 0 });
  173. GridHelper.CopyDataToDatatable(ref dt, ref dataTable2, true);//数量
  174. pbbcdEntity.Type = "2";//单价
  175. dt = this.execute<DataTable>("com.hnshituo.pur.balance.service.BalanceBillCDService", "find", new object[] { pbbcdEntity, 0, 0 });
  176. GridHelper.CopyDataToDatatable(ref dt, ref dataTable3, true);//单价
  177. pbbcdEntity.Type = "4";//金额
  178. dt = this.execute<DataTable>("com.hnshituo.pur.balance.service.BalanceBillCDService", "find", new object[] { pbbcdEntity, 0, 0 });
  179. GridHelper.CopyDataToDatatable(ref dt, ref dataTable4, true);//金额
  180. }
  181. /// <summary>
  182. /// 删除结算单主表
  183. /// </summary>
  184. /// <param name="strBalanceId"></param>
  185. private void DeleteBalanceM(string strBalanceId)
  186. {
  187. if (MessageUtil.ShowYesNoAndQuestion("确定要删除结算单【" + strBalanceId + "】吗") == DialogResult.Yes)
  188. {
  189. CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.balance.service.BalanceBillMService", "DeleteBalanceM", new object[] { strBalanceId, UserInfo.GetUserName(), UserInfo.GetUserID() });
  190. if (crt.Resultcode != 0)
  191. {
  192. MessageUtil.ShowTips("删除结算单失败 " + crt.Resultmsg);
  193. return;
  194. }
  195. MessageUtil.ShowTips("删除结算单成功!");
  196. getBalanceM();
  197. }
  198. }
  199. /// <summary>
  200. /// 删除结算单行表
  201. /// </summary>
  202. /// <param name="strBalanceId"></param>
  203. private void DeleteBalanceC(string strBalanceCId)
  204. {
  205. if (MessageUtil.ShowYesNoAndQuestion("确定要删除结算单行号【" + strBalanceCId + "】吗") == DialogResult.Yes)
  206. {
  207. CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.balance.service.BalanceBillMService", "DeleteBalanceC", new object[] { strBalanceCId, UserInfo.GetUserName(), UserInfo.GetUserID() });
  208. if (crt.Resultcode != 0)
  209. {
  210. MessageUtil.ShowTips("删除结算行失败 " + crt.Resultmsg);
  211. return;
  212. }
  213. MessageUtil.ShowTips("删除结算行成功!");
  214. getBalanceC(ultraGrid1.ActiveRow.Cells["BALANCEID"].Value.ToString());
  215. }
  216. }
  217. /// <summary>
  218. /// 删除结算单明细说明表
  219. /// </summary>
  220. /// <param name="strBalanceId"></param>
  221. private void DeleteBalanceCD(string strBalanceCDId)
  222. {
  223. if (MessageUtil.ShowYesNoAndQuestion("删除结算明细说明【" + strBalanceCDId + "】吗") == DialogResult.Yes)
  224. {
  225. PurBalanceBillCDEntity pbbcd = new PurBalanceBillCDEntity();
  226. pbbcd.Id = strBalanceCDId;
  227. pbbcd.Validflag = "0";
  228. pbbcd.DeleteName = UserInfo.GetUserName();
  229. pbbcd.DeleteUserid = UserInfo.GetUserID();
  230. CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.balance.service.BalanceBillCDService", "doUpdate", new object[] { pbbcd });
  231. if (crt.Resultcode != 0)
  232. {
  233. MessageUtil.ShowTips("删除结算明细说明行失败 " + crt.Resultmsg);
  234. return;
  235. }
  236. MessageUtil.ShowTips("删除结算明细说明行成功!");
  237. getBalanceCD(ultraGrid1.ActiveRow.Cells["BALANCEID"].Value.ToString(), ultraGrid2.ActiveRow.Cells["ID"].Value.ToString());
  238. }
  239. }
  240. /// <summary>
  241. /// 获取查询条件
  242. /// </summary>
  243. /// <returns></returns>
  244. private PurBalanceBillMEntity getEnSelContion()
  245. {
  246. PurBalanceBillMEntity entity = new PurBalanceBillMEntity();
  247. if (txt_STATUS.Value != null && txt_STATUS.Value.ToString() != "")
  248. {
  249. entity.Status = txt_STATUS.Value.ToString();//状态
  250. }
  251. if (txt_BALANCE_ID.Text != "")
  252. {
  253. entity.BalanceId = txt_BALANCE_ID.Text;//结算单号
  254. }
  255. if (txt_SUPP_NAME.Text != null)
  256. {
  257. entity.SuppName = txt_SUPP_NAME.Text;//供应商名称
  258. }
  259. if (txt_CreateTimeStart.Value != null)
  260. {
  261. entity.CreateTime = (DateTime)txt_CreateTimeStart.Value;//起始时间
  262. }
  263. else
  264. {
  265. entity.CreateTime = DateTime.MinValue;
  266. }
  267. if (txt_CreateTimeEnd.Value != null)
  268. {
  269. entity.UpdateTime = (DateTime)txt_CreateTimeEnd.Value;//结束时间
  270. }
  271. else
  272. {
  273. entity.UpdateTime = DateTime.MaxValue;
  274. }
  275. entity.Validflag = "1";//状态
  276. return entity;
  277. }
  278. /// <summary>
  279. /// 结算单主表激活行事件
  280. /// </summary>
  281. /// <param name="sender"></param>
  282. /// <param name="e"></param>
  283. private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
  284. {
  285. getBalanceC(ultraGrid1.ActiveRow.Cells["BALANCEID"].Value.ToString());
  286. }
  287. /// <summary>
  288. /// 结算单行表激活行事件
  289. /// </summary>
  290. /// <param name="sender"></param>
  291. /// <param name="e"></param>
  292. private void ultraGrid2_AfterRowActivate(object sender, EventArgs e)
  293. {
  294. getBalanceCD(ultraGrid1.ActiveRow.Cells["BALANCEID"].Value.ToString(), ultraGrid2.ActiveRow.Cells["ID"].Value.ToString());
  295. }
  296. /// <summary>
  297. /// 生成报销登记单
  298. /// </summary>
  299. private void getBalanceRegM()
  300. {
  301. ultraGrid1.UpdateData();
  302. ArrayList al_BalanceId=new ArrayList();
  303. ArrayList al_SUPPCODE=new ArrayList();//保存供应商,判定不能选择同一个供应商的结算单
  304. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  305. {
  306. if ((Boolean)ultraGrid1.Rows[i].Cells["Check"].Value)
  307. {
  308. al_BalanceId.Add(ultraGrid1.Rows[i].Cells["BALANCEID"].Value.ToString());
  309. if (!al_SUPPCODE.Contains(ultraGrid1.Rows[i].Cells["SUPPCODE"].Value.ToString()) && al_SUPPCODE.Count>0)
  310. {
  311. MessageUtil.ShowTips("请选择同一个供应商的结算单");
  312. return;
  313. }
  314. else
  315. {
  316. al_SUPPCODE.Add(ultraGrid1.Rows[i].Cells["SUPPCODE"].Value.ToString());
  317. }
  318. }
  319. }
  320. if (al_BalanceId.Count < 1)
  321. {
  322. MessageUtil.ShowTips("请勾选结算单");
  323. return;
  324. }
  325. FrmPop_BalanceRegM frm = new FrmPop_BalanceRegM(al_BalanceId, this.ob);
  326. frm.ShowDialog();
  327. }
  328. }
  329. }