frmOrderPriceQueryTh.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  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.StlMes.Client.SaleOrder;
  11. using System.Collections;
  12. using Core.Mes.Client.Comm.Control;
  13. using Core.StlMes.Client.SaleComm;
  14. using Infragistics.Win.UltraWinGrid;
  15. using Core.Mes.Client.Comm.Tool;
  16. using Core.Mes.Client.Comm.Server;
  17. using Core.StlMes.Client.SaleOrder.ReviewForm;
  18. using Core.StlMes.Client.SaleOrder.Dialog;
  19. using Core.Mes.Client.Comm;
  20. using Infragistics.Win;
  21. using System.Text.RegularExpressions;
  22. namespace Core.StlMes.Client.SaleOrder
  23. {
  24. public partial class frmOrderPriceQueryTh : FrmBase
  25. {
  26. public frmOrderPriceQueryTh()
  27. {
  28. InitializeComponent();
  29. this.IsLoadUserView = true;
  30. }
  31. private void frmOrderInsidePrice_Load(object sender, EventArgs e)
  32. {
  33. DateTime Today = DateTime.Now;
  34. this.date_starte.DateTime = Today.Date.AddMonths(-1);
  35. this.date_end.DateTime = DateTime.Today;
  36. ValueList list = new ValueList();
  37. Infragistics.Win.ValueListItem[] items = new Infragistics.Win.ValueListItem[] {
  38. new Infragistics.Win.ValueListItem("0", "元"),
  39. new Infragistics.Win.ValueListItem("1", "‰"),
  40. };
  41. //设置下拉框等高
  42. foreach (Infragistics.Win.ValueListItem item in items)
  43. {
  44. if (Regex.IsMatch(item.DisplayText.ToString2(), @"[\u4e00-\u9fa5]+"))
  45. {
  46. item.Appearance.FontData.SizeInPoints = 9.0F;
  47. }
  48. else
  49. {
  50. item.Appearance.FontData.SizeInPoints = 10.5F;
  51. }
  52. }
  53. list.ValueListItems.AddRange(items);
  54. efforder_seq.DisplayLayout.Bands[0].Columns["PRICE_UNIT"].ValueList = list;
  55. GridHelper.SetAllColumnsActive(this.gffect_oder);
  56. GridHelper.SetColumnsActivateAndColor(efforder_seq.Rows.Band);
  57. }
  58. public override void ToolBar_Click(object sender, string ToolbarKey)
  59. {
  60. switch (ToolbarKey)
  61. {
  62. case "doQuery":
  63. doQuery();
  64. break;
  65. //case "doSavePrice":
  66. // doSavePrice();
  67. // break;
  68. case "doClose":
  69. this.Close();
  70. break;
  71. }
  72. }
  73. private void doSavePrice()
  74. {
  75. if (gffect_oder.ActiveRow == null)
  76. return;
  77. string ordPk = gffect_oder.ActiveRow.Cells["ORD_PK"].Value.ToString();
  78. ArrayList parm = new ArrayList();
  79. foreach (UltraGridRow row in efforder_seq.Rows)
  80. {
  81. double price = 0;
  82. if (!double.TryParse(row.Cells["BALNCE_PRICE_ORG"].Value.ToString(), out price))
  83. {
  84. MessageUtil.ShowTips("内部结算价填写错误或未填写");
  85. return;
  86. }
  87. ArrayList list = new ArrayList();
  88. list.Add(row.Cells["BALNCE_PRICE_ORG"].Value.ToString());
  89. list.Add(row.Cells["ORD_LN_PK"].Value.ToString());
  90. parm.Add(list);
  91. }
  92. CoreClientParam ccp = new CoreClientParam();
  93. ccp.ServerName = "com.steering.pss.sale.order.frmOrderEffect";
  94. ccp.MethodName = "saveInsidePrice";
  95. ccp.ServerParams = new object[] { parm };
  96. ccp.IfShowErrMsg = false;
  97. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  98. if (ccp != null)
  99. {
  100. if (ccp.ReturnCode == -1)
  101. {
  102. MessageUtil.ShowWarning(ccp.ReturnInfo);
  103. return;
  104. }
  105. MessageUtil.ShowTips("保存成功!");
  106. doQuery();
  107. foreach (UltraGridRow row in gffect_oder.Rows)
  108. {
  109. if (ordPk.Equals(row.Cells["ORD_PK"].Value.ToString()))
  110. {
  111. row.Activate();
  112. break;
  113. }
  114. }
  115. }
  116. }
  117. public void doQuery()
  118. {
  119. //签约时间
  120. string date = "";
  121. String orderStart = "";
  122. String orderEnd = "";
  123. if (che_date.Checked)
  124. {
  125. orderStart = Convert.ToDateTime(date_starte.Value).ToString("yyyy-MM-dd") + " 00:00:01";
  126. orderEnd = Convert.ToDateTime(date_end.Value).ToString("yyyy-MM-dd") + " 23:59:59";
  127. }
  128. else
  129. {
  130. orderStart = "1000-01-01 00:00:01";
  131. orderEnd = "9999-12-31 23:59:59";
  132. }
  133. //合同号
  134. string order = "";
  135. if (ord_no.Checked)
  136. order = orde_cho.Text.Trim();
  137. DataTable dt = Globals.GetData("com.steering.pss.sale.order.frmOrderEffect.CoreOrderPriceQueryTh", new Object[] { order,orderStart, orderEnd }, this.ob);
  138. gffect_oder.DataSource = dt;
  139. //列自适应
  140. GridHelper.RefreshAndAutoSizeExceptColumns(gffect_oder, new UltraGridColumn[] { });
  141. }
  142. private void che_date_CheckedChanged(object sender, EventArgs e)
  143. {
  144. date_starte.Enabled = che_date.Checked;
  145. date_end.Enabled = che_date.Checked;
  146. }
  147. private void ord_no_CheckedChanged(object sender, EventArgs e)
  148. {
  149. orde_cho.Enabled = ord_no.Checked;
  150. }
  151. private void gffect_oder_AfterRowActivate(object sender, EventArgs e)
  152. {
  153. UltraGridRow ugr = gffect_oder.ActiveRow;
  154. if (ugr == null)
  155. return;
  156. this.doQueryeffect(gffect_oder.ActiveRow.Cells["ORD_PK"].Text);
  157. this.doQueryeffect_mol(gffect_oder.ActiveRow.Cells["ORDER_MODEL_NO"].Value.ToString());
  158. this.queryPriceInfo(gffect_oder.ActiveRow.Cells["ORD_PK"].Text);
  159. }
  160. private void queryPriceInfo(string ordPk)
  161. {
  162. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.frmOrderEffect.queryPriceInfo", new object[] { ordPk }, this.ob);
  163. if (dt != null && dt.Rows.Count > 0)
  164. {
  165. txtPrice.Text = dt.Rows[0][0].ToString();
  166. }
  167. }
  168. private void doQueryeffect_mol(string ordermodel)
  169. {
  170. DataTable dt = Globals.GetData("com.steering.pss.sale.order.frmOrderEffect.CoreOrderEffectinfo", new Object[] { ordermodel }, this.ob);
  171. efforder_mol.DataSource = dt;
  172. //列自适应
  173. GridHelper.RefreshAndAutoSizeExceptColumns(efforder_mol, new UltraGridColumn[] {
  174. });
  175. }
  176. private void doQueryeffect(string order)
  177. {
  178. DataTable dt = Globals.GetData("com.steering.pss.sale.order.frmOrderEffect.CoreOrderInsideSqeQuery", new Object[] { order }, this.ob);
  179. GridHelper.CopyDataToDatatable(ref dt, ref this.orderLineDt, true);
  180. //列自适应
  181. GridHelper.RefreshAndAutoSizeExceptColumns(efforder_seq, new UltraGridColumn[] { });
  182. }
  183. private void gffect_oder_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  184. {
  185. string acustom = gffect_oder.ActiveCell.Value.ToString();
  186. dlgBuyerInfo spt = new dlgBuyerInfo();
  187. spt.oPbd = this.ob;
  188. spt.customer = acustom;
  189. spt.FilePath = "checker";
  190. spt.ShowDialog();
  191. }
  192. private void efforder_seq_AfterRowActivate(object sender, EventArgs e)
  193. {
  194. if (efforder_seq.ActiveRow != null)
  195. {
  196. //DataRow orderLine = dataSet1.Tables["orderLineDt"].Rows[efforder_seq.ActiveRow.Index];
  197. //ctrlOrderLineChild1.loadOrderLineChild(this.ob, orderLine);
  198. }
  199. }
  200. private void orde_cho_KeyPress(object sender, KeyPressEventArgs e)
  201. {
  202. if (e.KeyChar == 13)
  203. doQuery();
  204. }
  205. private void efforder_seq_CellDataError(object sender, CellDataErrorEventArgs e)
  206. {
  207. e.RaiseErrorEvent = false; // 阻止弹出错误提示窗口
  208. e.RestoreOriginalValue = true; // 恢复原始值
  209. e.StayInEditMode = true; // 继续保留在编辑模式
  210. }
  211. private void efforder_seq_CellChange(object sender, CellEventArgs e)
  212. {
  213. try
  214. {
  215. efforder_seq.UpdateData();
  216. }
  217. catch { }
  218. //if (e.Cell.Column.Key.Equals("INSIDE_PRICE")&& !Convert.ToBoolean(e.Cell.Row.Cells["CHK"].Value))
  219. //{
  220. // if (e.Cell.Value.ToString() == "")
  221. // return;
  222. // int rCount = e.Cell.Row.Index;
  223. // for (int i = rCount + 1; i < efforder_seq.Rows.Count; i++)
  224. // {
  225. // UltraGridRow row = efforder_seq.Rows[i];
  226. // if (!Convert.ToBoolean(row.Cells["CHK"].Value))
  227. // row.Cells["INSIDE_PRICE"].Value = e.Cell.Value;
  228. // }
  229. //}
  230. //else if (e.Cell.Column.Key.Equals("PRICE_UNIT") )
  231. //{
  232. // if (e.Cell.Value.ToString() == "")
  233. // return;
  234. // int rCount = e.Cell.Row.Index;
  235. // for (int i = rCount + 1; i < efforder_seq.Rows.Count; i++)
  236. // {
  237. // UltraGridRow row = efforder_seq.Rows[i];
  238. // row.Cells["PRICE_UNIT"].Value = e.Cell.Value;
  239. // }
  240. //}
  241. if (e.Cell.Column.Key.Equals("INSIDE_PRICE") || e.Cell.Column.Key.Equals("PRICE_UNIT"))
  242. {
  243. double insidePrice = 0;
  244. double balancePrice = 0;
  245. UltraGridRow row = efforder_seq.ActiveRow;
  246. if (!double.TryParse(row.Cells["INSIDE_PRICE"].Value.ToString(), out insidePrice))
  247. return;
  248. if (!double.TryParse(row.Cells["BALNCE_PRICE"].Value.ToString(), out balancePrice))
  249. return;
  250. if (row.Cells["PRICE_UNIT"].Value.ToString() == "0")
  251. {
  252. row.Cells["BALNCE_PRICE_ORG"].Value = Math.Round(balancePrice - insidePrice, 2);
  253. }
  254. else if (row.Cells["PRICE_UNIT"].Value.ToString() == "1")
  255. {
  256. row.Cells["BALNCE_PRICE_ORG"].Value = Math.Round(balancePrice * (1000 - insidePrice) / 1000, 2);
  257. }
  258. else
  259. {
  260. return;
  261. }
  262. }
  263. }
  264. }
  265. }