FrmStuffInventoryOut.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  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.Tool;
  11. using Core.StlMes.Client.YdmStuffManage.Entity;
  12. using Core.Mes.Client.Comm.Control;
  13. using Core.Mes.Client.Comm.Format;
  14. using Infragistics.Win;
  15. using System.Collections;
  16. using Core.Mes.Client.Comm.Server;
  17. using Infragistics.Win.UltraWinGrid;
  18. namespace Core.StlMes.Client.YdmStuffManage
  19. {
  20. public partial class FrmStuffInventoryOut : FrmBase
  21. {
  22. public FrmStuffInventoryOut()
  23. {
  24. InitializeComponent();
  25. }
  26. private string strBand = "800802";//盘亏
  27. private string strBound = "800602";//调差类型(盘亏)
  28. private string[] arr = null;
  29. private void FrmStuffInventoryOut_Load(object sender, EventArgs e)
  30. {
  31. DateTime now = DateTime.Now;
  32. DateTime dt1 = new DateTime(now.Year, now.Month, 1);//当月第一天
  33. DateTime dt2 = dt1.AddMonths(1).AddDays(-1);//当月最后一天
  34. this.RegStartTime.Value = DateTime.Parse(dt1.ToString("yyyy-MM-dd") + " 00:00:00");
  35. this.RegEndTime.Value = DateTime.Parse(dt2.ToString("yyyy-MM-dd") + " 23:59:59");
  36. BaseMethod.InitCellPosition(ultraGrid1, new string[] { "ActWeight", "ActCount", "Dimater", "ActLen", "FixNum", "FixLen", "ActCount" });
  37. BaseMethod.InitCellPosition(ultraGrid2, new string[] { "ActWeight", "ActCount", "Dimater", "ActLen", "FixNum", "FixLen" });
  38. EntityHelper.ShowGridCaption<MatGpMEntity2>(ultraGrid1.DisplayLayout.Bands[0]);
  39. EntityHelper.ShowGridCaption<YdmGpStocktakinglistEntity>(ultraGrid2.DisplayLayout.Bands[0]);
  40. ultraGrid1.DisplayLayout.Bands[0].Columns["StocktakingRsnName"].Header.Caption = "盘亏原因";
  41. arr = BaseMethod.WarehousePermissionsStore(this.ValidDataPurviewIds, this.ob);
  42. //arr = this.ValidDataPurviewIds;
  43. InitBindColumn();
  44. }
  45. /// <summary>
  46. /// 绑定列
  47. /// </summary>
  48. private void InitBindColumn()
  49. {
  50. //材料状态
  51. this.ultraGrid1.DisplayLayout.ValueLists[0].ValueListItems.Add("80150101", "材料产出等待");
  52. this.ultraGrid1.DisplayLayout.ValueLists[0].ValueListItems.Add("80150102", "材料管理封锁");
  53. this.ultraGrid1.DisplayLayout.ValueLists[0].ValueListItems.Add("80150103", "材料质量封锁");
  54. this.ultraGrid1.DisplayLayout.ValueLists[0].ValueListItems.Add("80150104", "材料可编计划");
  55. this.ultraGrid1.DisplayLayout.ValueLists[0].ValueListItems.Add("80150105", "材料已编计划");
  56. this.ultraGrid1.DisplayLayout.ValueLists[0].ValueListItems.Add("80150106", "材料为余材");
  57. this.ultraGrid1.DisplayLayout.ValueLists[0].ValueListItems.Add("80150201", "材料产出等待(未综合判定)");
  58. this.ultraGrid1.DisplayLayout.ValueLists[0].ValueListItems.Add("80150202", "材料产出(已综合判定");
  59. this.ultraGrid1.DisplayLayout.ValueLists[0].ValueListItems.Add("80150203", "材料为余材(已综合判定)");
  60. this.ultraGrid1.DisplayLayout.ValueLists[0].ValueListItems.Add("80150204", "材料脱单余材(销售组织脱单)");
  61. this.ultraGrid1.DisplayLayout.ValueLists[0].ValueListItems.Add("80150301", "材料可编计划(发运控制)");
  62. this.ultraGrid1.DisplayLayout.ValueLists[0].ValueListItems.Add("80150302", "材料已编计划(发运控制)");
  63. this.ultraGrid1.DisplayLayout.ValueLists[0].ValueListItems.Add("80150303", "销售出厂");
  64. //材料类别
  65. this.ultraGrid1.DisplayLayout.ValueLists[1].ValueListItems.Add("801401", "在制品");
  66. this.ultraGrid1.DisplayLayout.ValueLists[1].ValueListItems.Add("801402", "成品");
  67. this.ultraGrid1.DisplayLayout.ValueLists[1].ValueListItems.Add("801403", "商品");
  68. //交库状态
  69. this.ultraGrid1.DisplayLayout.ValueLists[2].ValueListItems.Add("00", "合格");
  70. this.ultraGrid1.DisplayLayout.ValueLists[2].ValueListItems.Add("11", "待处理");
  71. this.ultraGrid1.DisplayLayout.ValueLists[2].ValueListItems.Add("22", "废品");
  72. DataTable ds = ClsLoad.GetValueListDataTable("8014", this.ob);
  73. this.ultraGrid1.DisplayLayout.Bands[0].Columns["productFlag"].ValueList = ClsLoad.GeneralValuelist(ref ds, "BASECODE", "BASENAME");
  74. string[] arr = new string[3] { "801501", "801502", "801503" };
  75. DataTable dt = ClsLoad.GetValueListDataTable(arr, this.ob);
  76. this.ultraGrid1.DisplayLayout.Bands[0].Columns["matStatus"].ValueList = ClsLoad.GeneralValuelist(ref dt, "BASECODE", "BASENAME");
  77. }
  78. /// <summary>
  79. /// 重写基类方法
  80. /// </summary>
  81. /// <param name="sender"></param>
  82. /// <param name="ToolbarKey"></param>
  83. public override void ToolBar_Click(object sender, string ToolbarKey)
  84. {
  85. switch (ToolbarKey)
  86. {
  87. case "Query":
  88. if (!CheckQuery()) return;
  89. doQueryData();
  90. break;
  91. case "Add":
  92. doAdd();
  93. break;
  94. case "Export":
  95. exportData();
  96. break;
  97. case "Close":
  98. this.Close();
  99. break;
  100. }
  101. }
  102. /// <summary>
  103. /// 查询
  104. /// </summary>
  105. private void doQueryData()
  106. {
  107. if (ultraTabControl1.SelectedTab.Key == "0")
  108. {
  109. doQueryMat();
  110. }
  111. else
  112. {
  113. doQueryStockData();
  114. }
  115. }
  116. /// <summary>
  117. /// 查询库存信息
  118. /// </summary>
  119. private void doQueryMat()
  120. {
  121. string strRegStart = "";
  122. string strRegEnd = "";
  123. string heatNo = "";
  124. string stoveNo = "";
  125. ArrayList parm = new ArrayList();
  126. if (chkRegTime.Checked)
  127. {
  128. strRegStart = RegStartTime.Value.ToString();
  129. strRegEnd = RegEndTime.Value.ToString();
  130. }
  131. if (this.checkHeatNo.Checked)
  132. {
  133. heatNo = this.txt_heatNo.Text.Trim();
  134. }
  135. if(this.chkStoveNo.Checked)
  136. {
  137. stoveNo = this.txtStoveNo.Text.Trim();
  138. }
  139. parm.Add(heatNo);
  140. parm.Add(stoveNo);
  141. List<MatGpMEntity2> listSource = EntityHelper.GetData<MatGpMEntity2>(
  142. "Core.LgMes.Server.Stuffmanage.FrmStuffInventoryOut.doQueryMat", new object[] { parm, strRegStart, strRegEnd, arr }, this.ob);
  143. MatGpMEntitybindingSource.DataSource = listSource;
  144. }
  145. /// <summary>
  146. /// 查询盘亏实绩
  147. /// </summary>
  148. private void doQueryStockData()
  149. {
  150. string strRegStart = "";
  151. string strRegEnd = "";
  152. string heatNo = "";
  153. string stoveNo = "";
  154. ArrayList parm = new ArrayList();
  155. if (chkRegTime.Checked)
  156. {
  157. strRegStart = RegStartTime.Value.ToString();
  158. strRegEnd = RegEndTime.Value.ToString();
  159. }
  160. if (this.checkHeatNo.Checked)
  161. {
  162. heatNo = this.txt_heatNo.Text.Trim();
  163. }
  164. if(chkStoveNo.Checked)
  165. {
  166. stoveNo = this.txtStoveNo.Text.Trim();
  167. }
  168. parm.Add(heatNo);
  169. parm.Add(stoveNo);
  170. List<YdmGpStocktakinglistEntity> listSource = EntityHelper.GetData<YdmGpStocktakinglistEntity>(
  171. "Core.LgMes.Server.Stuffmanage.FrmStuffInventoryOut.doQueryStock", new object[] { parm, strRegStart, strRegEnd, arr }, this.ob);
  172. YdmGpStocktakinglistEntitybindingSource.DataSource = listSource;
  173. }
  174. /// <summary>
  175. /// 盘亏
  176. /// </summary>
  177. private void doAdd()
  178. {
  179. this.ultraGrid1.UpdateData();
  180. string departId = ClsLoad.GetDepartIdBySectionId(this.UserInfo.GetDeptid(), this.ob);
  181. string departMent = ClsLoad.GetDepartBySectionId(this.UserInfo.GetDeptid(), this.ob);
  182. IQueryable<UltraGridRow> checkMagRows = this.ultraGrid1.Rows.AsQueryable().Where(" CHK = 'True'");
  183. if (checkMagRows.Count() == 0)
  184. {
  185. MessageUtil.ShowTips("请勾选需要盘亏的物料!");
  186. return;
  187. }
  188. ArrayList parmlist = new ArrayList();
  189. foreach (UltraGridRow row in checkMagRows)
  190. {
  191. if (!StringUtil.IsInt(row.Cells["ActCount"].Text.Trim()))
  192. {
  193. MessageUtil.ShowTips("盘亏支数必须为整数!");
  194. return;
  195. }
  196. if (row.Cells["StocktakingRsnName"].Text.Trim() == "")
  197. {
  198. MessageUtil.ShowTips("盘亏原因不能为空");
  199. return;
  200. }
  201. MatGpMEntity2 matZcMEntity = (MatGpMEntity2)row.ListObject;
  202. string matEntity = JSONFormat.Format(matZcMEntity);
  203. parmlist.Add(matEntity);
  204. }
  205. if (MessageUtil.ShowYesNoAndQuestion("是否盘亏?") == DialogResult.No)
  206. {
  207. return;
  208. }
  209. CoreClientParam ccp = new CoreClientParam();
  210. ccp.ServerName = "Core.LgMes.Server.Stuffmanage.FrmStuffInventoryOut";
  211. ccp.MethodName = "doAddOut";
  212. ccp.ServerParams = new object[] { parmlist, strBound,strBand, this.UserInfo.GetUserName(), this.UserInfo.GetDeptid(), this.UserInfo.GetDepartment(), departId, departMent };
  213. ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  214. if (ccp.ReturnCode != -1)
  215. {
  216. if (ccp.ReturnInfo.Equals("盘亏成功!"))
  217. {
  218. doQueryData();
  219. MessageUtil.ShowTips(ccp.ReturnInfo);
  220. }
  221. else
  222. {
  223. MessageUtil.ShowTips(ccp.ReturnInfo);
  224. }
  225. }
  226. }
  227. /// <summary>
  228. /// 导出
  229. /// </summary>
  230. private void exportData()
  231. {
  232. GridHelper.ulGridToExcel(ultraGrid2, "盘亏实绩");
  233. }
  234. /// <summary>
  235. /// 数据验证
  236. /// </summary>
  237. /// <returns></returns>
  238. private bool CheckQuery()
  239. {
  240. if (DataTimeUtil.JudgeTime(DateTime.Parse(RegStartTime.Value.ToString()), DateTime.Parse(RegEndTime.Value.ToString())) == 0)
  241. {
  242. MessageUtil.ShowTips("开始时间不能大于结束时间!");
  243. return false;
  244. }
  245. if (checkHeatNo.Checked && string.IsNullOrEmpty(this.txt_heatNo.Text.Trim()))
  246. {
  247. MessageBox.Show("请输入判定炉号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  248. return false;
  249. }
  250. return true;
  251. }
  252. private void FrmStuffInventoryOut_Shown(object sender, EventArgs e)
  253. {
  254. if (toolMenu == null) return;
  255. if (toolMenu.Toolbars[0].Tools.Exists("Export"))
  256. {
  257. toolMenu.Toolbars[0].Tools["Export"].InstanceProps.Visible = DefaultableBoolean.False;
  258. }
  259. }
  260. private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
  261. {
  262. if (toolMenu == null) return;
  263. if (ultraTabControl1.SelectedTab.Key == "0")
  264. {
  265. if (toolMenu.Toolbars[0].Tools.Exists("Export"))
  266. {
  267. toolMenu.Toolbars[0].Tools["Export"].InstanceProps.Visible = DefaultableBoolean.False;
  268. }
  269. if (toolMenu.Toolbars[0].Tools.Exists("Add"))
  270. {
  271. toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.True;
  272. }
  273. this.chkRegTime.Text = "入库时间";
  274. }
  275. else
  276. {
  277. if (toolMenu.Toolbars[0].Tools.Exists("Export"))
  278. {
  279. toolMenu.Toolbars[0].Tools["Export"].InstanceProps.Visible = DefaultableBoolean.True;
  280. }
  281. if (toolMenu.Toolbars[0].Tools.Exists("Add"))
  282. {
  283. toolMenu.Toolbars[0].Tools["Add"].InstanceProps.Visible = DefaultableBoolean.False;
  284. }
  285. this.chkRegTime.Text = "盘亏时间";
  286. }
  287. }
  288. private void checkHeatNo_CheckedChanged(object sender, EventArgs e)
  289. {
  290. this.txt_heatNo.Enabled = this.checkHeatNo.Checked;
  291. }
  292. private void chkStoveNo_CheckedChanged(object sender, EventArgs e)
  293. {
  294. this.txtStoveNo.Enabled = this.chkStoveNo.Checked;
  295. }
  296. private void txtStoveNo_KeyDown(object sender, KeyEventArgs e)
  297. {
  298. if (e.KeyValue == 13)
  299. {
  300. if (!CheckQuery()) return;
  301. doQueryData();
  302. }
  303. }
  304. private void txt_heatNo_KeyDown(object sender, KeyEventArgs e)
  305. {
  306. if (e.KeyValue == 13)
  307. {
  308. if (!CheckQuery()) return;
  309. doQueryData();
  310. }
  311. }
  312. }
  313. }