PurExcDeliveryNoticeManagement.cs 104 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098
  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 Infragistics.Win.UltraWinGrid;
  10. using System.Collections;
  11. using CoreFS.CA06;using Pur.Entity;
  12. using Core.Mes.Client.Comm.Control;
  13. using Pur.Entity.ck;
  14. using com.hnshituo.pur.vo;
  15. using Core.Mes.Client.Comm.Tool;
  16. using Pur.configure;
  17. using Infragistics.Win;
  18. using Core.Mes.Client.Comm.Server;
  19. using Pur.Entity.pur_orderEntiy;
  20. using Pur.require_plan;
  21. using Pur.Entity.configureEntity;
  22. using Pur.Pop_upWindow;
  23. using Pur.PublicTools;
  24. using Pur.order;
  25. using Core.Mes.Client.Comm.Format;
  26. namespace Pur.ck
  27. {
  28. public partial class PurExcDeliveryNoticeManagement : FrmPmsBase
  29. {
  30. string strDataFlag = "0";
  31. public string basecode_pop = "";//物料大类编码
  32. public ArrayList listMatCode = new ArrayList();
  33. public ArrayList listMatName = new ArrayList();
  34. public ArrayList listOrderCol = new ArrayList();//选择的合同行
  35. public ArrayList listorder = new ArrayList();//权限控制
  36. public String suppCodeSel = "";//选择的供应商
  37. public String suppNameSel = "";//选择的供应商
  38. public PurExcDeliveryNoticeManagement()
  39. {
  40. InitializeComponent();
  41. this.IsLoadUserView = true;
  42. }
  43. /// <summary>
  44. /// 界面加载
  45. /// </summary>
  46. /// <param name="sender"></param>
  47. /// <param name="e"></param>
  48. private void PurExcDeliveryNoticeManagement_Load(object sender, EventArgs e)// 界面加载
  49. {
  50. //合同tab
  51. ck_isAllReq.Checked = false;
  52. Get_DropDownList();//加载下拉框
  53. txt_selectlocation.Visible = false;
  54. ultraGrid3.DisplayLayout.Bands[1].Columns["deliveryLocation"].EditorComponent = txt_selectlocation;
  55. //通知单tab
  56. ultraTabControl1.SelectedTab = ultraTabControl1.Tabs[0];
  57. ck_ctime.Checked = true;
  58. Ck_Etime.Checked = false;
  59. txt_createTime.Value = DateTime.Now.AddMonths(-1);
  60. txt_endTime.Value = DateTime.Now.AddDays(2);
  61. txt_CreateTimeS.Value = DateTime.Now.AddMonths(-1);
  62. txt_CreateTimeE.Value = DateTime.Now.AddDays(2);
  63. txt_PlanedShipDateE.Value = DateTime.Now.AddDays(1);
  64. txt_PlanedShipDateS.Value = DateTime.Now.AddMonths(-1);
  65. txt_PlanedShipDateE.Enabled = false;
  66. txt_PlanedShipDateS.Enabled = false;
  67. txt_Allocation_rule.SelectedIndex = 1;//交期优先
  68. //grid可编辑设置
  69. //ultraGrid1.DisplayLayout.Bands[0].Override.AllowUpdate = DefaultableBoolean.False;
  70. ultraGrid2.DisplayLayout.Bands[0].Override.AllowUpdate = DefaultableBoolean.False;
  71. ultraGrid2.DisplayLayout.Bands[1].Override.AllowUpdate = DefaultableBoolean.False;
  72. GridHelper.SetExcludeColumnsActive(ultraGrid4.DisplayLayout.Bands[0], new string[] { "CHK" });
  73. GridHelper.SetExcludeColumnsActive(ultraGrid5.DisplayLayout.Bands[0], new string[] { "CHK" });
  74. GridHelper.SetExcludeColumnsActive(ultraGrid3.DisplayLayout.Bands[0], new string[] { "CHK", "deleteuserid" });
  75. GridHelper.SetExcludeColumnsActive(ultraGrid3.DisplayLayout.Bands[1], new string[] { "CHK", "createQty", "deliveryLocation"});
  76. GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], new string[] { "CHK" });
  77. //接收方式
  78. DataTable dt5 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1101" }, this.ob);
  79. this.ultraGrid3.DisplayLayout.ValueLists.Add("checkList1");
  80. foreach (DataRow row in dt5.Rows)
  81. {
  82. if (row["validflag"].ToString().Trim() == "1")
  83. {
  84. this.ultraGrid3.DisplayLayout.ValueLists["checkList1"].ValueListItems.Add(row["baseCode"], row["baseName"].ToString());
  85. }
  86. }
  87. this.ultraGrid3.DisplayLayout.ValueLists["checkList1"].DisplayStyle = ValueListDisplayStyle.DisplayText;
  88. this.ultraGrid3.DisplayLayout.Bands[0].Columns["deleteuserid"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  89. this.ultraGrid3.DisplayLayout.Bands[0].Columns["deleteuserid"].ValueList = this.ultraGrid3.DisplayLayout.ValueLists["checkList1"];
  90. ultraExpandableGroupBox1.Expanded = false;
  91. EntityHelper.ShowGridCaption<PreTrackNoticeEntity>(ultraGrid6.DisplayLayout.Bands[0]);
  92. //加载数据权限控制参数
  93. // strDataFlag = this.execute<string>("com.hnshituo.pur.utils.service.UtilsService", "getRoleDataFlag", new object[] { UserInfo.GetUserID(), "Pur.ck.PurExcDeliveryNoticeManagement" });
  94. // ultraGrid5.Visible = false;
  95. //加载数据
  96. //Get_PurexcdeliverynoticeM(0);
  97. }
  98. /// <summary>
  99. /// toolbar初始化
  100. /// </summary>
  101. /// <param name="sender"></param>
  102. /// <param name="e"></param>
  103. private void PurExcDeliveryNoticeManagement_Shown(object sender, EventArgs e)// toolbar初始化
  104. {
  105. //if (toolMenu.Toolbars[0].Tools.Exists("doQuery")) { toolMenu.Toolbars[0].Tools["doQuery"].InstanceProps.Visible = DefaultableBoolean.True; }
  106. //if (toolMenu.Toolbars[0].Tools.Exists("doCreate")) { toolMenu.Toolbars[0].Tools["doCreate"].InstanceProps.Visible = DefaultableBoolean.False; }
  107. //if (toolMenu.Toolbars[0].Tools.Exists("cancelCreate")) { toolMenu.Toolbars[0].Tools["cancelCreate"].InstanceProps.Visible = DefaultableBoolean.True; }
  108. //if (toolMenu.Toolbars[0].Tools.Exists("doExcel")) { toolMenu.Toolbars[0].Tools["doExcel"].InstanceProps.Visible = DefaultableBoolean.True; }
  109. //if (toolMenu.Toolbars[0].Tools.Exists("doExit")) { toolMenu.Toolbars[0].Tools["doExit"].InstanceProps.Visible = DefaultableBoolean.True; }
  110. this.ToolBarItemEnable(this, "doQuery", true);
  111. this.ToolBarItemEnable(this, "doCreate", true);
  112. this.ToolBarItemEnable(this, "doCreateForce", true);
  113. this.ToolBarItemEnable(this, "cancelCreate", false);
  114. this.ToolBarItemEnable(this, "doCreateSub", false);
  115. this.ToolBarItemEnable(this, "doIssue", false);
  116. this.ToolBarItemEnable(this, "doUnIssue", false);
  117. this.ToolBarItemEnable(this, "doUpdate", false);
  118. this.ToolBarItemEnable(this, "doExit", true);
  119. }
  120. #region toolbar工具栏
  121. /// <summary>
  122. /// 菜单栏
  123. /// </summary>
  124. /// <param name="sender"></param>
  125. /// <param name="ToolbarKey"></param>
  126. public override void ToolBar_Click(object sender, string ToolbarKey)
  127. {
  128. switch (ToolbarKey)
  129. {
  130. case "doQuery": //刷新
  131. Get_PurexcdeliverynoticeM(0);//点击查询
  132. break;
  133. case "doCreate": // 编制通知单
  134. Add_PurexcdeliverynoticeM("0");
  135. break;
  136. case "doCreateForce": // 编制通知单
  137. Add_PurexcdeliverynoticeM("1");
  138. break;
  139. case "doCreateSub": // 编制送货单
  140. Add_PurexcdeliverySubM();
  141. break;
  142. case "cancelCreate": // 撤销
  143. Del_PurexcdeliverynoticeM();
  144. break;
  145. case "doIssue": // 下发
  146. doIssue();
  147. break;
  148. case "doUnIssue": // 取消下发
  149. doUnIssue();
  150. break;
  151. case "doUpdate": // 修改
  152. doUpdate();
  153. break;
  154. case "doExcel": // 导出Excel
  155. doExcel();
  156. break;
  157. case "doExit": // 退出
  158. this.Close();
  159. break;
  160. }
  161. }
  162. private void doUpdate()
  163. {
  164. PreTrackNoticeEntity preTrackNoticeEntity = new PreTrackNoticeEntity();
  165. UltraGridRow row = this.ultraGrid6.ActiveRow;
  166. ArrayList array = new ArrayList();
  167. preTrackNoticeEntity.IndexCode = row.Cells["indexCode"].Text.Trim();
  168. preTrackNoticeEntity.NoticeNo = row.Cells["noticeNo"].Text.Trim();
  169. preTrackNoticeEntity.ContractNo = row.Cells["contractNo"].Text.Trim();
  170. preTrackNoticeEntity.IndexMatterName = row.Cells["IndexMatterName"].Text.Trim();
  171. string json = JSONFormat.Format(preTrackNoticeEntity);
  172. array.Add(json);
  173. CoreClientParam ccp = new CoreClientParam();
  174. ccp.ServerName = "com.hnshituo.pur.configure.service.impl.PreTrackNoticeService";
  175. ccp.MethodName = "updateIndexName";
  176. ccp.ServerParams = new object[] { array };
  177. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  178. if (ccp.ReturnCode != -1)
  179. {
  180. MessageUtil.ShowTips("修改成功!");
  181. Get_PurexcdeliverynoticeM(0);
  182. }
  183. else
  184. {
  185. throw new Exception("服务端处理失败!");
  186. }
  187. }
  188. private void doUnIssue()
  189. {
  190. PreTrackNoticeEntity preTrackNoticeEntity = new PreTrackNoticeEntity();
  191. UltraGridRow row = this.ultraGrid6.ActiveRow;
  192. ArrayList array = new ArrayList();
  193. preTrackNoticeEntity.IndexCode = row.Cells["indexCode"].Text.Trim();
  194. preTrackNoticeEntity.NoticeNo = row.Cells["noticeNo"].Text.Trim();
  195. preTrackNoticeEntity.ContractNo = row.Cells["contractNo"].Text.Trim();
  196. preTrackNoticeEntity.UpdateManNo = "cx";
  197. preTrackNoticeEntity.UpdateManName = UserInfo.GetUserName() + "取消下发";
  198. string json = JSONFormat.Format(preTrackNoticeEntity);
  199. array.Add(json);
  200. CoreClientParam ccp = new CoreClientParam();
  201. ccp.ServerName = "com.hnshituo.pur.configure.service.impl.PreTrackNoticeService";
  202. ccp.MethodName = "delete";
  203. ccp.ServerParams = new object[] { array };
  204. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  205. if (ccp.ReturnCode != -1)
  206. {
  207. MessageUtil.ShowTips("取消下发成功!");
  208. Get_PurexcdeliverynoticeM(0);
  209. }
  210. else {
  211. throw new Exception("服务端处理失败!");
  212. }
  213. }
  214. private void doIssue()
  215. {
  216. PreTrackNoticeEntity preTrackNoticeEntity = new PreTrackNoticeEntity();
  217. UltraGridRow row = this.ultraGrid1.ActiveRow;
  218. RowsCollection rows = ultraGrid2.Rows;
  219. ArrayList array = new ArrayList();
  220. foreach (var item in rows)
  221. {
  222. preTrackNoticeEntity.IndexCode = item.Cells["noticeLineSqe"].Text.Trim();
  223. preTrackNoticeEntity.MatterNo = item.Cells["itemCode"].Text.Trim();
  224. preTrackNoticeEntity.MatterName = item.Cells["itemName"].Text.Trim();
  225. preTrackNoticeEntity.ContractNo = item.Cells["orderLineSqe"].Text.Trim();
  226. preTrackNoticeEntity.CustomerSupplierNo = row.Cells["suppCode"].Text.Trim();
  227. preTrackNoticeEntity.CustomerSupplierName = row.Cells["suppName"].Text.Trim();
  228. //preTrackNoticeEntity.ReceivingUintName = "";
  229. //preTrackNoticeEntity.ReceivingUintNo = "";
  230. preTrackNoticeEntity.MeterTypeNo = "001006001";
  231. preTrackNoticeEntity.MeterTypeName = "采购进厂";
  232. preTrackNoticeEntity.LoadPointName = row.Cells["deliveryLocation"].Text.Trim();
  233. preTrackNoticeEntity.LoadPointNo = row.Cells["deliveryLocationCode"].Text.Trim();
  234. preTrackNoticeEntity.ValueFlag = "0";
  235. preTrackNoticeEntity.CreateManNo = "cx";
  236. preTrackNoticeEntity.CreateManName = UserInfo.GetUserName();
  237. string json = JSONFormat.Format(preTrackNoticeEntity);
  238. List<PreTrackNoticeEntity> data = EntityHelper.GetData<PreTrackNoticeEntity>(
  239. "com.hnshituo.pur.configure.service.impl.PreTrackNoticeService.query",
  240. new Object[] { json }, ob);
  241. if (data.Count > 0)
  242. {
  243. MessageUtil.ShowTips(item.Cells["orderLineSqe"].Text.Trim() + "已下发!");
  244. return;
  245. }
  246. array.Add(json);
  247. }
  248. CoreClientParam ccp = new CoreClientParam();
  249. ccp.ServerName = "com.hnshituo.pur.configure.service.impl.PreTrackNoticeService";
  250. ccp.MethodName = "insert";
  251. ccp.ServerParams = new object[] { array };
  252. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  253. if (ccp.ReturnCode != -1)
  254. {
  255. MessageUtil.ShowTips("下发成功!");
  256. }
  257. else
  258. {
  259. throw new Exception("服务端处理失败!");
  260. }
  261. }
  262. private List<UltraGridRow> UltraGridGetCHKRows(UltraGrid grid, string columnName = "CHK")
  263. {
  264. grid.UpdateData();
  265. List<UltraGridRow> list = new List<UltraGridRow>();
  266. RowsCollection rows = grid.Rows;
  267. foreach (var item in rows)
  268. {
  269. try
  270. {
  271. if (Convert.ToBoolean(item.Cells[columnName].Value) == true && item.Hidden == false && item.IsFilteredOut == false)
  272. {
  273. list.Add(item);
  274. }
  275. }
  276. catch { }
  277. }
  278. return list;
  279. }
  280. /// <summary>
  281. /// 编制送货单
  282. /// </summary>
  283. private void Add_PurexcdeliverySubM()// 编制送货单
  284. {
  285. try
  286. {
  287. List<UltraGridRow> arr = UltraGridGetCHKRows(ultraGrid1);
  288. if (arr.Count <= 0)
  289. {
  290. MessageUtil.ShowTips("请选择通知单行!");
  291. return;
  292. }
  293. foreach (UltraGridRow ugr in arr)
  294. {
  295. String strNoticeId = ugr.Cells["NoticeId"].Value.ToString().Trim();
  296. if (String.IsNullOrEmpty(strNoticeId))
  297. {
  298. MessageUtil.ShowTips("选择的通知单行号:"+ strNoticeId + "为空!");
  299. return;
  300. }
  301. if (testNoticeStatus(strNoticeId, 2) == false)
  302. {
  303. continue;
  304. }
  305. ExcCreateDeliveryM frm = new ExcCreateDeliveryM(this.ob, strNoticeId);
  306. frm.ShowDialog();
  307. if (frm.Tips == 1)
  308. {
  309. Get_PurexcdeliverynoticeM(0);
  310. }
  311. }
  312. }
  313. catch (Exception e)
  314. {
  315. MessageUtil.ShowTips("操作失败:" + e);
  316. return;
  317. }
  318. }
  319. /// <summary>
  320. /// 删除
  321. /// </summary>
  322. private void Del_PurexcdeliverynoticeM()//撤销
  323. {
  324. try
  325. {
  326. UltraGridRow uge = ultraGrid1.ActiveRow;
  327. if (uge == null)
  328. {
  329. MessageUtil.ShowTips("请选择通知单行!");
  330. return;
  331. }
  332. String strNoticeId = uge.Cells["NoticeId"].Value.ToString().Trim();
  333. if (String.IsNullOrEmpty(strNoticeId))
  334. {
  335. MessageUtil.ShowTips("选择的通知单行号为空!");
  336. return;
  337. }
  338. ExcDeliveryNoticeM EdnM = new ExcDeliveryNoticeM();
  339. if (testNoticeStatus(strNoticeId,1) == false)
  340. {
  341. return;
  342. }
  343. EdnM.NoticeId = strNoticeId;
  344. EdnM.Validflag = "0";
  345. EdnM.Status = "9";
  346. EdnM.DeleteName = UserInfo.GetUserName();
  347. EdnM.DeleteUserid = UserInfo.GetUserID();
  348. EdnM.DeleteTime = DateTime.Now;
  349. if (MessageUtil.ShowYesNoAndQuestion("确定撤销发货通知单:" + EdnM.NoticeId + "?") != DialogResult.Yes)
  350. {
  351. return;
  352. }
  353. CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.ck.service.ExcDeliveryNoticeMService", "del_NoticeM", new object[] { EdnM });
  354. if (crt.Resultcode != 0)
  355. {
  356. MessageUtil.ShowTips("操作失败:" + crt.Resultmsg);
  357. return;
  358. }
  359. MessageUtil.ShowTips("操作成功!");
  360. Get_PurexcdeliverynoticeM(0);
  361. }
  362. catch (Exception e)
  363. {
  364. MessageUtil.ShowTips("操作失败:" + e);
  365. return;
  366. }
  367. }
  368. /// <summary>
  369. /// 导出发货通知单头
  370. /// </summary>
  371. private void doExcel()
  372. {
  373. try
  374. {
  375. if (ultraTabControl1.SelectedTab.Key.Equals("0"))
  376. {
  377. this.Cursor = Cursors.WaitCursor;
  378. ArrayList alUltraGrid = new ArrayList();
  379. alUltraGrid.Add(ultraGrid1);
  380. alUltraGrid.Add(ultraGrid2);
  381. ultraGrid2.DisplayLayout.Bands[1].Hidden = true;
  382. ArrayList alSheeft = new ArrayList();
  383. alSheeft.Add("发货通知单头表");
  384. alSheeft.Add("发货通知单行表");
  385. if (ultraGrid1.Rows.Count > 0)
  386. {
  387. GridHelper.ulGridToExcel(alUltraGrid, alSheeft, "发货通知单");//导出excel
  388. }
  389. }
  390. else
  391. {
  392. this.Cursor = Cursors.WaitCursor;
  393. ArrayList alUltraGrid = new ArrayList();
  394. alUltraGrid.Add(ultraGrid3);
  395. ArrayList alSheeft = new ArrayList();
  396. alSheeft.Add("合同需求关系");
  397. if (ultraGrid1.Rows.Count > 0)
  398. {
  399. GridHelper.ulGridToExcel(alUltraGrid, alSheeft, "合同需求关系");//导出excel
  400. }
  401. }
  402. }
  403. catch (Exception e)
  404. {
  405. MessageUtil.ShowTips("导出失败" + e.Message);
  406. }
  407. finally
  408. {
  409. ultraGrid2.DisplayLayout.Bands[1].Hidden = false;
  410. this.Cursor = Cursors.Default;
  411. }
  412. }//导出发货通知单头
  413. /// <summary>
  414. /// 编制发货通知
  415. /// </summary>
  416. private void Add_PurexcdeliverynoticeM(string flag)//编制
  417. {
  418. try
  419. {
  420. this.Cursor = Cursors.WaitCursor;
  421. if (listOrderCol.Count<=0)
  422. {
  423. MessageUtil.ShowTips("请勾选合同!");
  424. return;
  425. }
  426. String strOrderId = publicPms.ArrayListToString(listOrderCol);
  427. String strSuppCode = suppCodeSel;
  428. String strSuppName = suppNameSel;
  429. if (String.IsNullOrEmpty(strOrderId))
  430. {
  431. MessageUtil.ShowTips("合同号为空!");
  432. return;
  433. }
  434. if (testOrderStatus(listOrderCol) == false)
  435. {
  436. return;
  437. }
  438. if (testInPut() == false)
  439. {
  440. return;
  441. }
  442. ultraGrid3.UpdateData();
  443. //新合同编制通知单
  444. if (listOrderCol[0].ToString().StartsWith("HT"))
  445. {
  446. //验证是否编制有效数量
  447. int j = 0;
  448. //foreach (UltraGridRow uge in ultraGrid1.Rows.GetRowEnumerator(GridRowType.DataRow, null, null))
  449. foreach (UltraGridRow uge in ultraGrid3.Rows)
  450. {
  451. if (!uge.HasParent() && Convert.ToBoolean(uge.Cells["CHK"].Value) == true && Convert.ToDouble(uge.Cells["createQty"].Value) > 0)
  452. {
  453. if (Convert.ToDouble(uge.Cells["canUseQty"].Value) < Convert.ToDouble(uge.Cells["createQty"].Value))
  454. {
  455. MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "编制量不能大于可编制通知量!");
  456. return;
  457. }
  458. j = j + 1;
  459. int i = 0;
  460. foreach (UltraGridRow ugc in uge.ChildBands[0].Rows)
  461. {
  462. if (ugc.GetCellValue("Id").ToString().Trim() == "")
  463. {
  464. MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "下的第:" + ugc.Index + "个接收需求行主键为空!");
  465. return;
  466. }
  467. if (ugc.GetCellValue("mrLineId").ToString().Trim() == "")
  468. {
  469. MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "下的第:" + ugc.Index + "个接收需求行号为空!");
  470. return;
  471. }
  472. if (ugc.HasParent() && Convert.ToBoolean(ugc.Cells["CHK"].Value) == true && Convert.ToDouble(ugc.Cells["createQty"].Value) > 0)
  473. {
  474. if (Convert.ToDouble(ugc.Cells["canUseQty"].Value) < Convert.ToDouble(ugc.Cells["createQty"].Value))
  475. {
  476. MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "下的接收需求行:" + ugc.GetCellValue("mrLineId") + "编制量不能大于可编制通知量!");
  477. return;
  478. }
  479. if (ugc.GetCellValue("deliveryLocationCode").ToString().Trim() == "")
  480. {
  481. MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "下的接收需求行:" + ugc.GetCellValue("mrLineId") + "需选择交货地址!");
  482. return;
  483. }
  484. i = i + 1;
  485. }
  486. }
  487. if (i == 0)
  488. {
  489. MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "编制的需求条数为0或者未编制有效数量");
  490. return;
  491. }
  492. }
  493. }
  494. if (j == 0)
  495. {
  496. MessageUtil.ShowTips("合同行编制条数为0或者合同行未编制有效数量");
  497. return;
  498. }
  499. //准备数据并提交
  500. //按照list<需求行>和没有Id和地址的通知单头信息提交
  501. List<RequireReceive> listR = new List<RequireReceive>();
  502. foreach (UltraGridRow uge in ultraGrid3.Rows)
  503. {
  504. if (!uge.HasParent() && Convert.ToBoolean(uge.Cells["CHK"].Value) == true && Convert.ToDouble(uge.Cells["createQty"].Value) > 0)
  505. {
  506. String strOrderLineId = uge.GetCellValue("OrderLineSqe").ToString();
  507. foreach (UltraGridRow ugc in uge.ChildBands[0].Rows)
  508. {
  509. if (ugc.HasParent() && Convert.ToBoolean(ugc.Cells["CHK"].Value) == true && Convert.ToDouble(ugc.Cells["createQty"].Value) > 0)
  510. {
  511. RequireReceive Rr = new RequireReceive();
  512. Rr.Id = ugc.GetCellValue("Id").ToString().Trim();
  513. Rr.Qty = Convert.ToDouble(ugc.GetCellValue("createQty"));//记录生成数量
  514. Rr.DeliveryLocationCode = ugc.GetCellValue("deliveryLocationCode").ToString().Trim();
  515. Rr.Purtype = uge.GetCellValue("deleteuserid").ToString().Trim();
  516. DeliveryLocationDz cRt = this.execute<DeliveryLocationDz>("com.hnshituo.pur.configure.service.DeliveryLocationService", "findById", new object[] { Rr.DeliveryLocationCode });
  517. if (cRt == null)
  518. {
  519. MessageUtil.ShowTips("未发现地址:" + Rr.DeliveryLocationCode + "信息,或请重新选择地址");
  520. return;
  521. }
  522. if (cRt.IsJit == "1" )
  523. {
  524. if (Rr.Purtype != "110107")
  525. {
  526. MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "选择的为JIT交付地址,请选择JIT的接收方式");
  527. return;
  528. }
  529. }
  530. if (cRt.IsJit == "0")
  531. {
  532. if (Rr.Purtype== "110107")
  533. {
  534. MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "选择的为非JIT交付地址,请选择非JIT的接收方式");
  535. return;
  536. }
  537. }
  538. Rr.Remark = strOrderLineId;//记录所属合同行号
  539. listR.Add(Rr);
  540. }
  541. }
  542. }
  543. }
  544. ExcDeliveryNoticeM nm = new ExcDeliveryNoticeM();
  545. nm.CreateName = UserInfo.GetUserName();
  546. nm.CreateUserid = UserInfo.GetUserID();
  547. nm.CreateTime = DateTime.Now;
  548. nm.SuppCode = strSuppCode;
  549. nm.SuppName = strSuppName;
  550. nm.OrderId = strOrderId;
  551. nm.Status = "1";
  552. nm.Remark = txt_remark.Text.ToString().Trim();
  553. nm.PlanedDeliveryDate = Convert.ToDateTime(txt_MRPERIODEND.Value);//交期-止
  554. nm.PlanedShipDate = Convert.ToDateTime(txt_MRPERIODSTART.Value);//交期-起
  555. nm.DeliveryCondition = txt_deliveryCondition.Value == null ? "" : txt_deliveryCondition.Value.ToString();
  556. nm.DeliveryType = txt_deliveryType.Value == null ? "" : txt_deliveryType.Value.ToString();
  557. nm.Validflag = "1";
  558. nm.BuyerDeptCode = UserInfo.GetDeptid();
  559. if (MessageUtil.ShowYesNoAndQuestion("确定生成发货通知单?") != DialogResult.Yes)
  560. {
  561. return;
  562. }
  563. CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.ck.service.ExcDeliveryNoticeRpRService", "doInsert_Notice", new object[] { nm, listR, flag });
  564. if (crt.Resultcode != 0)
  565. {
  566. MessageUtil.ShowTips("生成失败" + crt.Resultmsg);
  567. return;
  568. }
  569. MessageUtil.ShowTips(crt.Resultmsg);
  570. Get_PurexcdeliverynoticeM(0);
  571. publicPms.doActiveSelRow(ultraGrid4, "orderId", strOrderId);
  572. }
  573. else
  574. {
  575. //验证是否编制有效数量
  576. int j = 0;
  577. foreach (UltraGridRow uge in ultraGrid3.Rows)
  578. {
  579. if (!uge.HasParent() && Convert.ToBoolean(uge.Cells["CHK"].Value) == true && Convert.ToDouble(uge.Cells["createQty"].Value) > 0)
  580. {
  581. if (Convert.ToDouble(uge.Cells["canUseQty"].Value) < Convert.ToDouble(uge.Cells["createQty"].Value))
  582. {
  583. MessageUtil.ShowTips("合同物料:" + uge.GetCellValue("itemName") + "编制量不能大于可编制通知量!");
  584. return;
  585. }
  586. j = j + 1;
  587. int i = 0;
  588. foreach (UltraGridRow ugc in uge.ChildBands[0].Rows)
  589. {
  590. if (ugc.HasParent() && Convert.ToBoolean(ugc.Cells["CHK"].Value) == true && Convert.ToDouble(ugc.Cells["createQty"].Value) > 0)
  591. {
  592. if (ugc.GetCellValue("deliveryLocationCode").ToString().Trim() == "")
  593. {
  594. MessageUtil.ShowTips("合同物料:" + uge.GetCellValue("itemName") + "请选择交付地址");
  595. return;
  596. }
  597. if (ugc.GetCellValue("DELETEUSERID").ToString().Trim() == "")
  598. {
  599. MessageUtil.ShowTips("合同物料:" + uge.GetCellValue("itemName") + "请选择需求单位");
  600. return;
  601. }
  602. i = i + 1;
  603. }
  604. }
  605. if (i == 0)
  606. {
  607. MessageUtil.ShowTips("合同物料:" + uge.GetCellValue("itemName") + "编制的需求条数为0或者未编制有效数量");
  608. return;
  609. }
  610. }
  611. }
  612. if (j == 0)
  613. {
  614. MessageUtil.ShowTips("合同行编制条数为0或者合同行未编制有效数量");
  615. return;
  616. }
  617. //准备数据并提交
  618. //按照list<需求行>和没有Id和地址的通知单头信息提交
  619. List<RequireReceive> listR = new List<RequireReceive>();
  620. foreach (UltraGridRow uge in ultraGrid3.Rows)
  621. {
  622. if (!uge.HasParent() && Convert.ToBoolean(uge.Cells["CHK"].Value) == true && Convert.ToDouble(uge.Cells["createQty"].Value) > 0)
  623. {
  624. String strOrderLineId = uge.GetCellValue("OrderLineSqe").ToString();
  625. foreach (UltraGridRow ugc in uge.ChildBands[0].Rows)
  626. {
  627. if (ugc.HasParent() && Convert.ToBoolean(ugc.Cells["CHK"].Value) == true && Convert.ToDouble(ugc.Cells["createQty"].Value) > 0)
  628. {
  629. RequireReceive Rr = new RequireReceive();
  630. Rr.Qty = Convert.ToDouble(ugc.GetCellValue("createQty"));//记录生成
  631. Rr.DeliveryLocationCode = ugc.GetCellValue("deliveryLocationCode").ToString().Trim();
  632. Rr.DeliveryLocation = ugc.GetCellValue("deliveryLocation").ToString().Trim();
  633. Rr.Remark = strOrderLineId;//记录所属合同行号
  634. Rr.ItemAttr = ugc.GetCellValue("DELETEUSERID").ToString().Trim();//需求单位
  635. Rr.Purtype = uge.GetCellValue("deleteuserid").ToString().Trim();
  636. DeliveryLocationDz cRt = this.execute<DeliveryLocationDz>("com.hnshituo.pur.configure.service.DeliveryLocationService", "findById", new object[] { Rr.DeliveryLocationCode });
  637. if (cRt == null)
  638. {
  639. MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "未发现地址:" + Rr.DeliveryLocation + "信息,或请重新选择地址");
  640. return;
  641. }
  642. if (cRt.IsJit == "1")
  643. {
  644. if (Rr.Purtype != "110107")
  645. {
  646. MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "选择的为JIT交付地址,请选择JIT的接收方式");
  647. return;
  648. }
  649. }
  650. if (cRt.IsJit == "0")
  651. {
  652. if (Rr.Purtype == "110107")
  653. {
  654. MessageUtil.ShowTips("物料:" + uge.GetCellValue("itemName") + "选择的为非JIT交付地址,请选择非JIT的接收方式");
  655. return;
  656. }
  657. }
  658. listR.Add(Rr);
  659. }
  660. }
  661. }
  662. }
  663. ExcDeliveryNoticeM nm = new ExcDeliveryNoticeM();
  664. nm.CreateName = UserInfo.GetUserName();
  665. nm.CreateUserid = UserInfo.GetUserID();
  666. nm.CreateTime = DateTime.Now;
  667. nm.SuppCode = strSuppCode;
  668. nm.SuppName = strSuppName;
  669. nm.OrderId = strOrderId;
  670. nm.Status = "1";
  671. nm.Remark = txt_remark.Text.ToString().Trim();
  672. nm.PlanedDeliveryDate = Convert.ToDateTime(txt_MRPERIODEND.Value);//交期-止
  673. nm.PlanedShipDate = Convert.ToDateTime(txt_MRPERIODSTART.Value);//交期-起
  674. nm.DeliveryCondition = txt_deliveryCondition.Value == null ? "" : txt_deliveryCondition.Value.ToString();
  675. nm.DeliveryType = txt_deliveryType.Value == null ? "" : txt_deliveryType.Value.ToString();
  676. nm.Validflag = "1";
  677. nm.BuyerDeptCode = UserInfo.GetDeptid();
  678. if (MessageUtil.ShowYesNoAndQuestion("确定生成发货通知单?") != DialogResult.Yes)
  679. {
  680. return;
  681. }
  682. CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.ck.service.ExcDeliveryNoticeRpRService", "doInsert_Notice_OldOrder", new object[] { nm, listR, flag });
  683. if (crt.Resultcode != 0)
  684. {
  685. MessageUtil.ShowTips("生成失败" + crt.Resultmsg);
  686. return;
  687. }
  688. MessageUtil.ShowTips(crt.Resultmsg);
  689. Get_PurexcdeliverynoticeM(0);
  690. publicPms.doActiveSelRow(ultraGrid4, "orderId", strOrderId);
  691. }
  692. }
  693. catch (Exception e)
  694. {
  695. Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("生成失败" + e);
  696. }
  697. finally
  698. {
  699. this.Cursor = Cursors.Default;
  700. }
  701. }
  702. /// <summary>
  703. /// 刷新
  704. /// </summary>
  705. private void Get_PurexcdeliverynoticeM(int p)//查询通知单和待生成合同
  706. {
  707. try
  708. {
  709. this.Cursor = Cursors.WaitCursor;
  710. clearInput();
  711. //加载通知单
  712. ExcDeliveryNoticeM EdnM = new ExcDeliveryNoticeM();
  713. EdnM.OrderId = txt_OrderId.Text.ToString().Trim();
  714. EdnM.NoticeId = txt_NoticeId.Text.ToString().Trim();
  715. if (ck_ctime.Checked)
  716. {
  717. if (txt_CreateTimeS.Text != "")
  718. {
  719. EdnM.CreateTime = Convert.ToDateTime(txt_CreateTimeS.Value);
  720. }
  721. if (txt_CreateTimeE.Text != "")
  722. {
  723. EdnM.DeleteTime = Convert.ToDateTime(txt_CreateTimeE.Value);
  724. }
  725. }
  726. if (Ck_Etime.Checked)
  727. {
  728. if (txt_PlanedShipDateS.Text != "")
  729. {
  730. EdnM.PlanedShipDate = Convert.ToDateTime(txt_PlanedShipDateS.Value);
  731. }
  732. if (txt_PlanedShipDateE.Text != "")
  733. {
  734. EdnM.PlanedDeliveryDate = Convert.ToDateTime(txt_PlanedShipDateE.Value);
  735. }
  736. }
  737. //初始化和撤销时加载
  738. //if (p == 0)
  739. //{
  740. // dataSet3.Clear();
  741. // //加载供应商dropdown
  742. // OrderM Odm = new OrderM();
  743. // Odm.DeleteName = "0";//待编制的
  744. // Odm.Validflag = "1";
  745. // Odm.ValidDataPurviewIds = this.ValidDataPurviewIds;//角色的数据权限
  746. // DataTable dt1 = this.execute<DataTable>("com.hnshituo.pur.order.service.OrderMService", "find_canUseOrderM", new object[] { Odm, 0, 0 });
  747. // if (dt1 != null)
  748. // {
  749. // if (dt1.Rows.Count >= 1)
  750. // {
  751. // DataView dv = new DataView(dt1);
  752. // DataTable dt_supp = dv.ToTable(true, new string[] { "suppName", "suppCode" });
  753. // publicPms.FilComboboxAdd(COP_SuppName, dt_supp, "suppCode", "suppName", "", true, "全部", "");
  754. // COP_SuppName.SelectedIndex = 0;
  755. // }
  756. // }
  757. // listorder.Clear();
  758. // foreach (DataRow row in dt1.Rows)
  759. // {
  760. // listorder.Add(row["orderId"]);
  761. // }
  762. // if (listorder.Count > 0)
  763. // {
  764. // //加载合同物料dropdown
  765. // OrderC odC = new OrderC();
  766. // odC.DeleteName = "0";//待编制合同行
  767. // odC.Validflag = "1";
  768. // odC.OrderIdCol = (String[])listorder.ToArray(typeof(string));//权限控制
  769. // DataTable dt2 = this.execute<DataTable>("com.hnshituo.pur.order.service.OrderCService", "doQueryOrderC", new object[] { odC });
  770. // if (dt2 != null)
  771. // {
  772. // if (dt2.Rows.Count >= 1)
  773. // {
  774. // DataView dv1 = new DataView(dt2);
  775. // DataTable dt_item = dv1.ToTable(true, new string[] { "itemCode", "itemName" });
  776. // GridHelper.CopyDataToDatatable(dt_item, dataTable7, true);
  777. // }
  778. // }
  779. // }
  780. //}
  781. if (ultraTabControl1.ActiveTab.Key == "1")
  782. {
  783. dataSet2.Clear();
  784. String strSuppCode = COP_SuppName.Value == null ? "" : COP_SuppName.Value.ToString().Trim();
  785. OrderM Odm1 = new OrderM();
  786. Odm1.OrderId = COP_OrderId.Text.Trim();
  787. Odm1.SuppName = txt_suppName_1.Text.Trim();
  788. //Odm1.SuppCode = strSuppCode;
  789. Odm1.DeleteName = "0";
  790. Odm1.Validflag = "1";
  791. Odm1.ValidDataPurviewIds = this.ValidDataPurviewIds;
  792. //Odm1.ItemCodeCol = (String[])listMatCode.ToArray(typeof(string));
  793. Odm1.UpdateUserid = txt_itemName_1.Text.Trim();
  794. Odm1.StartDate = Convert.ToDateTime(txt_createTime.Value);
  795. Odm1.EndDate = Convert.ToDateTime(txt_endTime.Value);
  796. DataTable dt11 = this.execute<DataTable>("com.hnshituo.pur.order.service.OrderMService", "find_canUseOrderM", new object[] { Odm1, 0, 0 });
  797. GridHelper.CopyDataToDatatable(dt11, dataTable6, true);
  798. GridHelper.RefreshAndAutoSize(ultraGrid4);
  799. }
  800. else if (ultraTabControl1.ActiveTab.Key == "0")
  801. {
  802. dataSet1.Clear();
  803. EdnM.ValidDataPurviewIds = this.ValidDataPurviewIds;
  804. EdnM.UpdateUserid = txt_ItemCode.Text.Trim();
  805. EdnM.SuppName = basecode_pop;//物料类别
  806. EdnM.UpdateName = txt_itemName2.Text.Trim();
  807. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.ck.service.ExcDeliveryNoticeMService", "find_Exc", new object[] { EdnM });
  808. GridHelper.CopyDataToDatatable(dt, dataTable1, true);
  809. GridHelper.RefreshAndAutoSize(ultraGrid1);
  810. }
  811. else if (ultraTabControl1.ActiveTab.Key == "2")
  812. {
  813. PreTrackNoticeEntity preTrackNoticeEntity = new PreTrackNoticeEntity();
  814. preTrackNoticeEntity.MatterName = ultraTextEditor1.Text.Trim();
  815. preTrackNoticeEntity.ContractNo = ultraTextEditor6.Text.Trim();
  816. preTrackNoticeEntity.CustomerSupplierName = ultraTextEditor2.Text.Trim();
  817. string json = JSONFormat.Format(preTrackNoticeEntity);
  818. string startTime = txt_startTime_n.Value.ToString("yyyy-MM-dd");
  819. string endTime = txt_endTime_n.Value.ToString("yyyy-MM-dd");
  820. List<PreTrackNoticeEntity> data = EntityHelper.GetData<PreTrackNoticeEntity>(
  821. "com.hnshituo.pur.configure.service.impl.PreTrackNoticeService.query",
  822. new Object[] { json, startTime, endTime }, ob);
  823. preTrackNoticeEntityBindingSource.DataSource = data;
  824. }
  825. }
  826. catch (Exception ex)
  827. {
  828. MessageUtil.ShowTips("加载数据异常:" + ex.Message);
  829. }
  830. finally
  831. {
  832. this.Cursor = Cursors.Default;
  833. }
  834. }
  835. #endregion
  836. #region 界面事件
  837. /// <summary>
  838. /// 激活通知单头
  839. /// </summary>
  840. /// <param name="sender"></param>
  841. /// <param name="e"></param>
  842. private void ultraGrid1_ClickCell(object sender, ClickCellEventArgs e)
  843. {
  844. getDetail();
  845. }
  846. /// <summary>
  847. /// 获取查询合同集合
  848. /// </summary>
  849. /// <param name="sender"></param>
  850. /// <param name="e"></param>
  851. private void ultraGrid4_CellChange(object sender, CellEventArgs e)
  852. {
  853. try
  854. {
  855. if (e.Cell.Column.Key == "CHK")
  856. {
  857. clearInput();
  858. dataTable5.Clear();
  859. dataTable4.Clear();
  860. listOrderCol.Clear();
  861. suppCodeSel = "";
  862. suppNameSel = "";
  863. ultraGrid4.UpdateData();
  864. int i = 0;
  865. foreach (UltraGridRow row in ultraGrid4.Rows)
  866. {
  867. if (Convert.ToBoolean(row.GetCellValue("CHK")) == true)
  868. {
  869. String strSuppCode = row.Cells["suppCode"].Value.ToString();
  870. String strSuppName = row.Cells["suppName"].Value.ToString();
  871. String strOrderId = row.Cells["orderId"].Value.ToString();
  872. if (!String.IsNullOrEmpty(strSuppCode))
  873. {
  874. if (i == 0)
  875. {
  876. suppCodeSel = strSuppCode;
  877. suppNameSel=strSuppName;
  878. }
  879. else
  880. {
  881. if (suppCodeSel != strSuppCode)
  882. {
  883. MessageUtil.ShowTips("请选择相同供应商的合同编制发货通知单!");
  884. e.Cell.Row.Cells["CHK"].Value = !Convert.ToBoolean(e.Cell.Row.GetCellValue("CHK"));
  885. return;
  886. }
  887. }
  888. //判断是否为同类合同
  889. if (i != 0)
  890. {
  891. if (strOrderId.StartsWith("HT") != listOrderCol[0].ToString().StartsWith("HT"))
  892. {
  893. MessageUtil.ShowTips("新旧合同不能混合编制通知单! 备注:HT开头的合同编号为新合同");
  894. return;
  895. }
  896. }
  897. listOrderCol.Add(strOrderId);
  898. i = i + 1;
  899. }
  900. }
  901. }
  902. if (this.ultraGrid4.Rows.AsQueryable()
  903. .Where(q => Convert.ToBoolean(q.GetCellValue("CHK")) == true
  904. && q.GetCellValue("OrderType").Equals("废钢采购(供应部)"))
  905. .GroupBy(a => a.GetCellValue("OrderId"))
  906. .Count() > 1)
  907. {
  908. MessageUtil.ShowTips("废钢值允许单个合同进行编制!");
  909. e.Cell.Row.Cells["CHK"].Value = !Convert.ToBoolean(e.Cell.Row.GetCellValue("CHK"));
  910. return;
  911. }
  912. txt_supp.Text = suppNameSel + "(" + suppCodeSel + ")";
  913. if (listOrderCol.Count > 0)
  914. {
  915. getOrderCAndCD(true);
  916. OrderM orderM = this.execute<OrderM>("com.hnshituo.pur.order.service.OrderMService", "findById", new object[] { listOrderCol[0]});
  917. txt_deliveryCondition.Value = orderM.DeliveryCondition;
  918. txt_deliveryType.Value = orderM.DeliveryType;
  919. }
  920. }
  921. }
  922. catch (Exception ex)
  923. {
  924. MessageUtil.ShowTips("查询送货单行信息失败:" + ex.Message);
  925. }
  926. }
  927. /// <summary>
  928. /// 物料大类弹窗
  929. /// </summary>
  930. /// <param name="sender"></param>
  931. /// <param name="e"></param>
  932. private void Basename_pop_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)//物料大类弹窗
  933. {
  934. FrmMatClassPop_ups PopMat = new FrmMatClassPop_ups(this.ob);
  935. PopMat.ShowDialog();
  936. if (PopMat.Basecode == null)
  937. return;
  938. Basename_pop.Text = PopMat.Basename;
  939. basecode_pop = PopMat.Basecode;
  940. }
  941. /// <summary>
  942. /// 物料编码弹窗
  943. /// </summary>
  944. /// <param name="sender"></param>
  945. /// <param name="e"></param>
  946. private void txt_ItemName_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)// 物料编码
  947. {
  948. ultraPopupControlContainer1.Show(ultraGroupBox7.PointToScreen(new Point(txt_itemName.Location.X, txt_itemName.Location.Y + 20)));
  949. //if (ultraGrid5.Visible == false)
  950. //{
  951. // ultraGrid5.Visible = true;
  952. //}
  953. //else
  954. //{
  955. // ultraGrid5.Visible = false;
  956. //}
  957. }
  958. /// <summary>
  959. /// 供应商弹窗
  960. /// </summary>
  961. /// <param name="sender"></param>
  962. /// <param name="e"></param>
  963. private void COP_SuppName_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)// 供应商弹窗
  964. {
  965. Supp Sp = new Supp();
  966. Sp.Validflag = "1";
  967. //DataTable dt = this.execute<DataTable>("com.hnshituo.pur.configure.service.SuppService", "find", new object[] { Sp, 0, 0 });
  968. frmSuppSel Sky = new frmSuppSel(this.ob);
  969. Sky.ShowDialog();
  970. if (Sky.strSUPP_CODE == null)
  971. return;
  972. COP_SuppName.Text = Sky.strSUPP_NAME.ToString().Trim();
  973. }
  974. /// <summary>
  975. /// 通知单创建时间控制
  976. /// </summary>
  977. /// <param name="sender"></param>
  978. /// <param name="e"></param>
  979. private void ck_ctime_CheckedChanged(object sender, EventArgs e)// 通知单创建时间控制
  980. {
  981. txt_CreateTimeS.Enabled = ck_ctime.Checked;
  982. txt_CreateTimeE.Enabled = ck_ctime.Checked;
  983. }
  984. /// <summary>
  985. /// 通知单发货时间控制
  986. /// </summary>
  987. /// <param name="sender"></param>
  988. /// <param name="e"></param>
  989. private void Ck_Etime_CheckedChanged(object sender, EventArgs e)// 通知单发货时间控制
  990. {
  991. txt_PlanedShipDateE.Enabled = Ck_Etime.Checked;
  992. txt_PlanedShipDateS.Enabled = Ck_Etime.Checked;
  993. }
  994. /// <summary>
  995. /// 控制交货行输入
  996. /// </summary>
  997. /// <param name="sender"></param>
  998. /// <param name="e"></param>
  999. private void ultraGrid3_CellChange(object sender, CellEventArgs e)//控制合同行和需求行编制行为
  1000. {
  1001. if(e.Cell.Row.HasParent())
  1002. {
  1003. //新合同
  1004. if (listOrderCol[0].ToString().StartsWith("HT"))
  1005. {
  1006. if (e.Cell.Column.Key == "CHK" && e.Cell.Row.HasParent())
  1007. {
  1008. ultraGrid3.UpdateData();
  1009. double sumCreateQty = 0;
  1010. foreach (UltraGridRow row in e.Cell.Row.ParentRow.ChildBands[0].Rows)
  1011. {
  1012. if (Convert.ToBoolean(row.Cells["CHK"].Value) == true)
  1013. {
  1014. sumCreateQty = sumCreateQty + Convert.ToDouble(row.Cells["createQty"].Value);
  1015. }
  1016. }
  1017. double maxCanUseQty_order = Convert.ToDouble(e.Cell.Row.ParentRow.Cells["canUseQty"].Value);
  1018. if (maxCanUseQty_order < sumCreateQty)
  1019. {
  1020. MessageUtil.ShowTips("已超过该合同物料的最大可编制通知量!");
  1021. e.Cell.Value = false;
  1022. }
  1023. else
  1024. {
  1025. e.Cell.Row.ParentRow.Cells["createQty"].Value = sumCreateQty;
  1026. }
  1027. }
  1028. else if (e.Cell.Column.Key == "createQty")
  1029. {
  1030. double oldQty = Convert.ToDouble(e.Cell.Value);
  1031. ultraGrid3.UpdateData();
  1032. double newQty = Convert.ToDouble(e.Cell.Value);
  1033. double maxCanUseQty_Req = Convert.ToDouble(e.Cell.Row.Cells["canUseQty"].Value);
  1034. if (newQty > maxCanUseQty_Req)
  1035. {
  1036. MessageUtil.ShowTips("已超过该送货地址的最大可编制通知量!");
  1037. e.Cell.Value = oldQty;
  1038. return;
  1039. }
  1040. double sumCreateQty = 0;
  1041. foreach (UltraGridRow row in e.Cell.Row.ParentRow.ChildBands[0].Rows)
  1042. {
  1043. if (Convert.ToBoolean(row.Cells["CHK"].Value) == true)
  1044. {
  1045. sumCreateQty = sumCreateQty + Convert.ToDouble(row.Cells["createQty"].Value);
  1046. }
  1047. }
  1048. double maxCanUseQty_order = Convert.ToDouble(e.Cell.Row.ParentRow.Cells["canUseQty"].Value);
  1049. if (maxCanUseQty_order < sumCreateQty)
  1050. {
  1051. MessageUtil.ShowTips("已超过合同可编制通知量!");
  1052. e.Cell.Value = oldQty;
  1053. }
  1054. else
  1055. {
  1056. e.Cell.Row.ParentRow.Cells["createQty"].Value = sumCreateQty;
  1057. }
  1058. }
  1059. }
  1060. //旧合同
  1061. else
  1062. {
  1063. if (e.Cell.Column.Key == "CHK" && e.Cell.Row.HasParent())
  1064. {
  1065. ultraGrid3.UpdateData();
  1066. double sumCreateQty = 0;
  1067. foreach (UltraGridRow row in e.Cell.Row.ParentRow.ChildBands[0].Rows)
  1068. {
  1069. if (Convert.ToBoolean(row.Cells["CHK"].Value) == true)
  1070. {
  1071. sumCreateQty = sumCreateQty + Convert.ToDouble(row.Cells["createQty"].Value == DBNull.Value ? 0 : row.Cells["createQty"].Value);
  1072. }
  1073. }
  1074. double maxCanUseQty_order = Convert.ToDouble(e.Cell.Row.ParentRow.Cells["canUseQty"].Value);
  1075. if (maxCanUseQty_order < sumCreateQty)
  1076. {
  1077. MessageUtil.ShowTips("已超过该合同物料的最大可编制通知量!");
  1078. e.Cell.Value = false;
  1079. }
  1080. else
  1081. {
  1082. e.Cell.Row.ParentRow.Cells["createQty"].Value = sumCreateQty;
  1083. }
  1084. }
  1085. else if (e.Cell.Column.Key == "createQty")
  1086. {
  1087. double oldQty = Convert.ToDouble(e.Cell.Value == DBNull.Value ? 0 : e.Cell.Value);
  1088. ultraGrid3.UpdateData();
  1089. double sumCreateQty = 0;
  1090. foreach (UltraGridRow row in e.Cell.Row.ParentRow.ChildBands[0].Rows)
  1091. {
  1092. if (Convert.ToBoolean(row.Cells["CHK"].Value) == true)
  1093. {
  1094. sumCreateQty = sumCreateQty + Convert.ToDouble(row.Cells["createQty"].Value == DBNull.Value ? 0 : row.Cells["createQty"].Value);
  1095. }
  1096. }
  1097. double maxCanUseQty_order = Convert.ToDouble(e.Cell.Row.ParentRow.Cells["canUseQty"].Value);
  1098. if (maxCanUseQty_order < sumCreateQty)
  1099. {
  1100. MessageUtil.ShowTips("已超过合同可编制通知量!");
  1101. e.Cell.Value = oldQty;
  1102. }
  1103. else
  1104. {
  1105. e.Cell.Row.ParentRow.Cells["createQty"].Value = sumCreateQty;
  1106. }
  1107. }
  1108. }
  1109. }
  1110. e.Cell.Row.Activated = true;
  1111. }
  1112. /// <summary>
  1113. /// 合同行刷选
  1114. /// </summary>
  1115. /// <param name="sender"></param>
  1116. /// <param name="e"></param>
  1117. private void btn_orderSelect_Click(object sender, EventArgs e)// 合同行刷选
  1118. {
  1119. getOrderCAndCD(false);
  1120. }
  1121. /// <summary>
  1122. /// tab控制toolbar
  1123. /// </summary>
  1124. /// <param name="sender"></param>
  1125. /// <param name="e"></param>
  1126. private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)// tab控制toolbar
  1127. {
  1128. if (toolMenu == null) return;
  1129. if (e.Tab.TabControl.SelectedTab.Key.Equals("0"))
  1130. {
  1131. //if (toolMenu.Toolbars[0].Tools.Exists("doQuery")) { toolMenu.Toolbars[0].Tools["doQuery"].InstanceProps.Visible = DefaultableBoolean.True; }
  1132. //if (toolMenu.Toolbars[0].Tools.Exists("doCreate")) { toolMenu.Toolbars[0].Tools["doCreate"].InstanceProps.Visible = DefaultableBoolean.False; }
  1133. //if (toolMenu.Toolbars[0].Tools.Exists("cancelCreate")) { toolMenu.Toolbars[0].Tools["cancelCreate"].InstanceProps.Visible = DefaultableBoolean.True; }
  1134. //if (toolMenu.Toolbars[0].Tools.Exists("doExcel")) { toolMenu.Toolbars[0].Tools["doExcel"].InstanceProps.Visible = DefaultableBoolean.True; }
  1135. //if (toolMenu.Toolbars[0].Tools.Exists("doExit")) { toolMenu.Toolbars[0].Tools["doExit"].InstanceProps.Visible = DefaultableBoolean.True; }
  1136. this.ToolBarItemEnable(this, "doQuery", true);
  1137. this.ToolBarItemEnable(this, "doCreate", false);
  1138. this.ToolBarItemEnable(this, "doCreateForce", false);
  1139. this.ToolBarItemEnable(this, "cancelCreate", true);
  1140. this.ToolBarItemEnable(this, "doCreateSub", true);
  1141. this.ToolBarItemEnable(this, "doIssue", true);
  1142. this.ToolBarItemEnable(this, "doUnIssue", false);
  1143. this.ToolBarItemEnable(this, "doUpdate", false);
  1144. this.ToolBarItemEnable(this, "doExcel", true);
  1145. this.ToolBarItemEnable(this, "doExit", true);
  1146. }
  1147. else if (e.Tab.TabControl.SelectedTab.Key.Equals("1"))
  1148. {
  1149. //if (toolMenu.Toolbars[0].Tools.Exists("doQuery")) { toolMenu.Toolbars[0].Tools["doQuery"].InstanceProps.Visible = DefaultableBoolean.True; }
  1150. //if (toolMenu.Toolbars[0].Tools.Exists("doCreate")) { toolMenu.Toolbars[0].Tools["doCreate"].InstanceProps.Visible = DefaultableBoolean.True; }
  1151. //if (toolMenu.Toolbars[0].Tools.Exists("cancelCreate")) { toolMenu.Toolbars[0].Tools["cancelCreate"].InstanceProps.Visible = DefaultableBoolean.False; }
  1152. //if (toolMenu.Toolbars[0].Tools.Exists("doExcel")) { toolMenu.Toolbars[0].Tools["doExcel"].InstanceProps.Visible = DefaultableBoolean.False; }
  1153. //if (toolMenu.Toolbars[0].Tools.Exists("doExit")) { toolMenu.Toolbars[0].Tools["doExit"].InstanceProps.Visible = DefaultableBoolean.True; }
  1154. this.ToolBarItemEnable(this, "doQuery", true);
  1155. this.ToolBarItemEnable(this, "doCreate", true);
  1156. this.ToolBarItemEnable(this, "doCreateForce", true);
  1157. this.ToolBarItemEnable(this, "cancelCreate", false);
  1158. this.ToolBarItemEnable(this, "doCreateSub", false);
  1159. this.ToolBarItemEnable(this, "doIssue", false);
  1160. this.ToolBarItemEnable(this, "doUnIssue", false);
  1161. this.ToolBarItemEnable(this, "doUpdate", false);
  1162. this.ToolBarItemEnable(this, "doExcel", true);
  1163. this.ToolBarItemEnable(this, "doExit", true);
  1164. }
  1165. else if (e.Tab.TabControl.SelectedTab.Key.Equals("2"))
  1166. {
  1167. this.ToolBarItemEnable(this, "doQuery", true);
  1168. this.ToolBarItemEnable(this, "doCreate", false);
  1169. this.ToolBarItemEnable(this, "doCreateForce", false);
  1170. this.ToolBarItemEnable(this, "cancelCreate", false);
  1171. this.ToolBarItemEnable(this, "doCreateSub", false);
  1172. this.ToolBarItemEnable(this, "doIssue", false);
  1173. this.ToolBarItemEnable(this, "doUnIssue", true);
  1174. this.ToolBarItemEnable(this, "doUpdate", true);
  1175. this.ToolBarItemEnable(this, "doExcel", false);
  1176. this.ToolBarItemEnable(this, "doExit", true);
  1177. }
  1178. }
  1179. /// <summary>
  1180. /// 交付地址选择
  1181. /// </summary>
  1182. /// <param name="sender"></param>
  1183. /// <param name="e"></param>
  1184. private void txt_selectlocation_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  1185. {
  1186. ultraGrid3.UpdateData();
  1187. UltraGridRow row = ultraGrid3.ActiveRow.ParentRow;
  1188. UltraGridRow row1 = ultraGrid3.ActiveRow;
  1189. String strReceiveType = row.GetCellValue("deleteuserid").ToString().Trim();
  1190. String isJit = strReceiveType == "110107" ? "1" : "0";
  1191. FrmPop_upDeliveryLocation frm = new FrmPop_upDeliveryLocation(this.ob, "0", isJit);
  1192. frm.ShowDialog();
  1193. if (frm.tips == "1")
  1194. {
  1195. if (!String.IsNullOrEmpty(frm.DeliveryLocationCode) && !String.IsNullOrEmpty(frm.DeliveryLocation))
  1196. {
  1197. row1.Cells["deliveryLocationCode"].Value = frm.DeliveryLocationCode;
  1198. row1.Cells["deliveryLocation"].Value = frm.DeliveryLocation;
  1199. }
  1200. }
  1201. }
  1202. /// <summary>
  1203. /// 需求部门选择
  1204. /// </summary>
  1205. /// <param name="sender"></param>
  1206. /// <param name="e"></param>
  1207. private void txt_selectDept_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  1208. {
  1209. frmdepartment frm = new frmdepartment(this.ob);
  1210. // frm.StartPosition = FormStartPosition.Manual;
  1211. // frm.Location = publicPms.getShowLocation(frm);
  1212. frm.ShowDialog();
  1213. String strdeptId = frm.BuyerUnitCode;
  1214. String strDeptName = frm.Fulltext;
  1215. if (!String.IsNullOrEmpty(strdeptId) && !String.IsNullOrEmpty(strDeptName))
  1216. {
  1217. if (ultraGrid3.ActiveRow == null)
  1218. {
  1219. return;
  1220. }
  1221. else
  1222. {
  1223. UltraGridRow row = ultraGrid3.ActiveRow;
  1224. row.Cells["DELETEUSERID"].Value = strdeptId;
  1225. row.Cells["DELETENAME"].Value = strDeptName;
  1226. }
  1227. }
  1228. }
  1229. /// <summary>
  1230. /// 选择物料
  1231. /// </summary>
  1232. /// <param name="sender"></param>
  1233. /// <param name="e"></param>
  1234. private void ultraGrid5_CellChange(object sender, CellEventArgs e)
  1235. {
  1236. if (e.Cell.Column.Key == "CHK")
  1237. {
  1238. refreshSelectMat();
  1239. }
  1240. }
  1241. /// <summary>
  1242. /// 头事件
  1243. /// </summary>
  1244. /// <param name="sender"></param>
  1245. /// <param name="e"></param>
  1246. private void ultraGrid5_AfterHeaderCheckStateChanged(object sender, AfterHeaderCheckStateChangedEventArgs e)
  1247. {
  1248. if (e.Column.Key == "CHK")
  1249. {
  1250. refreshSelectMat();
  1251. }
  1252. }
  1253. /// <summary>
  1254. /// 批量添加部门
  1255. /// </summary>
  1256. /// <param name="sender"></param>
  1257. /// <param name="e"></param>
  1258. private void req_dept_batch_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  1259. {
  1260. frmdepartment frm = new frmdepartment(this.ob);
  1261. //frm.StartPosition = FormStartPosition.Manual;
  1262. //frm.Location = publicPms.getShowLocation(frm);
  1263. frm.ShowDialog();
  1264. String strdeptId = frm.BuyerUnitCode;
  1265. String strDeptName = frm.Fulltext;
  1266. if (!String.IsNullOrEmpty(strdeptId) && !String.IsNullOrEmpty(strDeptName))
  1267. {
  1268. req_dept_batch.Text = strDeptName;
  1269. txt_dept_batch_id.Text = strdeptId;
  1270. }
  1271. }
  1272. //批量添加地址
  1273. private void req_Location_batch_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
  1274. {
  1275. FrmPop_upDeliveryLocation frm = new FrmPop_upDeliveryLocation(this.ob, "0","");
  1276. frm.ShowDialog();
  1277. if (frm.tips == "1")
  1278. {
  1279. if (!String.IsNullOrEmpty(frm.DeliveryLocationCode) && !String.IsNullOrEmpty(frm.DeliveryLocation))
  1280. {
  1281. req_Location_batch.Text= frm.DeliveryLocation;
  1282. txt_locaton_batch_id.Text = frm.DeliveryLocationCode;
  1283. }
  1284. }
  1285. }
  1286. //添加部门和地址按钮
  1287. private void btn_dept_locaton_add_Click(object sender, EventArgs e)
  1288. {
  1289. String dept_batch=req_dept_batch.Text.Trim();
  1290. String locaton_batch=req_Location_batch.Text.Trim();
  1291. String dept_id_batch=txt_dept_batch_id.Text.Trim();
  1292. String location_id_batch=txt_locaton_batch_id.Text.Trim();
  1293. if (String.IsNullOrEmpty(locaton_batch) ||String.IsNullOrEmpty(location_id_batch))
  1294. {
  1295. MessageUtil.ShowTips("交付地址编码和名称都不能为空");
  1296. return;
  1297. }
  1298. //旧合同
  1299. if (!listOrderCol[0].ToString().StartsWith("HT"))
  1300. {
  1301. if (String.IsNullOrEmpty(dept_batch)||String.IsNullOrEmpty(dept_id_batch))
  1302. {
  1303. MessageUtil.ShowTips("需求部门编码和名称都不能为空");
  1304. return;
  1305. }
  1306. }
  1307. ultraGrid3.UpdateData();
  1308. foreach (UltraGridRow row in ultraGrid3.Rows)
  1309. {
  1310. String orderLineSqe = row.GetCellValue("OrderLineSqe").ToString().Trim();
  1311. if (!row.HasParent() && Convert.ToBoolean(row.Cells["CHK"].Value) == true)
  1312. {
  1313. foreach (UltraGridRow ugc in row.ChildBands[0].Rows)
  1314. {
  1315. if (ugc.HasParent() && Convert.ToBoolean(ugc.Cells["CHK"].Value) == true)
  1316. {
  1317. //旧合同
  1318. if (!listOrderCol[0].ToString().StartsWith("HT"))
  1319. {
  1320. if (!String.IsNullOrEmpty(ugc.Cells["DELETEUSERID"].Value.ToString()))
  1321. {
  1322. if (MessageUtil.ShowYesNoAndQuestion("合同行:" + orderLineSqe + "第" + ugc.Index+1 + "个需求记录已存在需求单位是否覆盖?") != DialogResult.Yes)
  1323. {
  1324. ;
  1325. }
  1326. else
  1327. {
  1328. ugc.Cells["DELETEUSERID"].Value = dept_id_batch;
  1329. ugc.Cells["DELETENAME"].Value = dept_batch;
  1330. }
  1331. }
  1332. //旧合同+新合同
  1333. else
  1334. {
  1335. ugc.Cells["DELETEUSERID"].Value = dept_id_batch;
  1336. ugc.Cells["DELETENAME"].Value = dept_batch;
  1337. }
  1338. }
  1339. if (!String.IsNullOrEmpty(ugc.Cells["deliveryLocationCode"].Value.ToString()))
  1340. {
  1341. if (MessageUtil.ShowYesNoAndQuestion("合同行:" + orderLineSqe + " 下第" + ugc.Index+1 + "个需求记录已存在交付地址是否覆盖?") != DialogResult.Yes)
  1342. {
  1343. ;
  1344. }
  1345. else
  1346. {
  1347. ugc.Cells["deliveryLocationCode"].Value = location_id_batch;
  1348. ugc.Cells["deliveryLocation"].Value = locaton_batch;
  1349. }
  1350. }
  1351. else
  1352. {
  1353. ugc.Cells["deliveryLocationCode"].Value = location_id_batch;
  1354. ugc.Cells["deliveryLocation"].Value = locaton_batch;
  1355. }
  1356. }
  1357. }
  1358. }
  1359. }
  1360. }
  1361. #endregion
  1362. #region 公共函数
  1363. /// <summary>
  1364. /// 测试通知单状态
  1365. /// </summary>
  1366. /// <param name="strNoticeId"></param>
  1367. /// <returns></returns>
  1368. private bool testNoticeStatus(string strNoticeId,int p)
  1369. {
  1370. if (String.IsNullOrEmpty(strNoticeId))
  1371. {
  1372. MessageUtil.ShowTips("通知单号为空!");
  1373. return false;
  1374. }
  1375. ExcDeliveryNoticeM noticeM = this.execute<ExcDeliveryNoticeM>("com.hnshituo.pur.ck.service.ExcDeliveryNoticeMService", "findById", new object[] { strNoticeId });
  1376. if (noticeM == null)
  1377. {
  1378. MessageUtil.ShowTips("未发现通知单:" + strNoticeId + "信息记录!");
  1379. return false;
  1380. }
  1381. if (noticeM.Validflag != "1")
  1382. {
  1383. MessageUtil.ShowTips("通知单:" + strNoticeId + "信息记录可能已作废,或请刷新界面重新操作!");
  1384. return false;
  1385. }
  1386. if (p == 1)
  1387. {
  1388. if (noticeM.Status != "1")
  1389. {
  1390. MessageUtil.ShowTips("非“待送货”状态,无法删除!");
  1391. return false;
  1392. }
  1393. ExcDeliveryNoticeC noticeC = new ExcDeliveryNoticeC();
  1394. noticeC.NoticeId = strNoticeId;
  1395. noticeC.Validflag = "1";
  1396. List<ExcDeliveryNoticeC> listc = this.execute<List<ExcDeliveryNoticeC>>("com.hnshituo.pur.ck.service.ExcDeliveryNoticeCService", "find", new object[] { noticeC, 0, 0 });
  1397. foreach (ExcDeliveryNoticeC nc in listc)
  1398. {
  1399. if (nc.Status != "1")
  1400. {
  1401. MessageUtil.ShowTips("通知单行:" + nc.NoticeLineSqe + "非“待编制”状态,无法删除!");
  1402. return false;
  1403. }
  1404. if (nc.CreatedQty != null)
  1405. {
  1406. if (nc.CreatedQty > 0)
  1407. {
  1408. MessageUtil.ShowTips("通知单行:" + nc.NoticeLineSqe + "已编制送货单,无法删除!");
  1409. return false;
  1410. }
  1411. }
  1412. }
  1413. }
  1414. else if (p == 2)
  1415. {
  1416. if (noticeM.Status != "1" && noticeM.Status != "2")
  1417. {
  1418. MessageUtil.ShowTips("通知单:" + strNoticeId + "已编制完成!");
  1419. return false;
  1420. }
  1421. }
  1422. else
  1423. {
  1424. MessageUtil.ShowTips("未知参数!");
  1425. return false;
  1426. }
  1427. return true;
  1428. }
  1429. //验证合同
  1430. private bool testOrderStatus(ArrayList listOrder)
  1431. {
  1432. foreach (String strOrderId in listOrder)
  1433. {
  1434. if (String.IsNullOrEmpty(strOrderId))
  1435. {
  1436. MessageUtil.ShowTips("合同编号为空!");
  1437. return false;
  1438. }
  1439. OrderM Omg = this.execute<OrderM>("com.hnshituo.pur.order.service.OrderMService", "findById", new object[] { strOrderId });
  1440. if (Omg == null)
  1441. {
  1442. MessageUtil.ShowTips("未发现合同【" + strOrderId + "】的信息记录,可能已作废,或请刷新界面重新操作!");
  1443. return false;
  1444. }
  1445. //if (Omg.CreateUserid != UserInfo.GetUserID())
  1446. //{
  1447. // MessageUtil.ShowWarning("非提报该合同本人,无权限进行操作,或请刷新后再操作!");
  1448. // return false;
  1449. //}
  1450. if (Omg.Validflag != "1")
  1451. {
  1452. MessageUtil.ShowWarning("合同【" + strOrderId + "】可能已作废,或请刷新界面重新操作!");
  1453. return false;
  1454. }
  1455. }
  1456. return true;
  1457. }
  1458. //请空通知单头编辑数据
  1459. private void clearInput()
  1460. {
  1461. txt_supp.Clear();
  1462. txt_MRPERIODEND.Value = DateTime.Now;
  1463. txt_MRPERIODSTART.Value = DateTime.Now;
  1464. txt_remark.Clear();
  1465. }
  1466. //验证编制通知单数据的有效性
  1467. private bool testInPut()
  1468. {
  1469. //验证头信息
  1470. if (String.IsNullOrEmpty(txt_supp.Text))
  1471. {
  1472. MessageUtil.ShowTips("供应商不能为空!");
  1473. txt_supp.Focus();
  1474. return false;
  1475. }
  1476. if (String.IsNullOrEmpty(suppNameSel))
  1477. {
  1478. MessageUtil.ShowTips("供应商不能为空!");
  1479. txt_supp.Focus();
  1480. return false;
  1481. }
  1482. if (String.IsNullOrEmpty(suppCodeSel))
  1483. {
  1484. MessageUtil.ShowTips("供应商不能为空!");
  1485. txt_supp.Focus();
  1486. return false;
  1487. }
  1488. //验证交期
  1489. if (String.IsNullOrEmpty(txt_MRPERIODEND.Text))
  1490. {
  1491. MessageUtil.ShowTips("通知单要求交期-止不能为空!");
  1492. txt_MRPERIODEND.Focus();
  1493. return false;
  1494. }
  1495. if (String.IsNullOrEmpty(txt_MRPERIODSTART.Text))
  1496. {
  1497. MessageUtil.ShowTips("通知单要求交期-起不能为空!");
  1498. txt_MRPERIODSTART.Focus();
  1499. return false;
  1500. }
  1501. if (Convert.ToDateTime(txt_MRPERIODEND.Value) <= Convert.ToDateTime(txt_MRPERIODSTART.Value))
  1502. {
  1503. MessageUtil.ShowTips("要求交期-止不能小于要求交期-起!");
  1504. txt_MRPERIODSTART.Focus();
  1505. return false;
  1506. }
  1507. if (Convert.ToDateTime(txt_MRPERIODEND.Value) <= DateTime.Now)
  1508. {
  1509. MessageUtil.ShowTips("要求交期-止不能小于当前时间!");
  1510. txt_MRPERIODEND.Focus();
  1511. return false;
  1512. }
  1513. return true;
  1514. }
  1515. /// <summary>
  1516. /// 加载合同类别
  1517. /// </summary>
  1518. private void Get_DropDownList()//加载合同类别
  1519. {
  1520. //DataTable dt1 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1200" }, this.ob);
  1521. //CkClassCommon.FilComboboxAdd(COP_OrderType, dt1, "baseCode", "baseName", "validflag NOT in ('0')", true, "全部", "");
  1522. //COP_OrderType.SelectedIndex = 0;
  1523. //加载运输条件
  1524. DataTable dt6 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1105" }, this.ob);
  1525. publicPms.FilComboboxAdd(txt_deliveryCondition, dt6, "baseCode", "baseName", "validflag NOT in ('0')", true, "/", "");
  1526. txt_deliveryCondition.SelectedIndex = 0;
  1527. //加载运输方式
  1528. DataTable dt7 = ServerHelper.GetData("com.hnshituo.pur.configure.service.impl.CoreBaseInfoNew.doQuery", new Object[] { "1102" }, this.ob);
  1529. publicPms.FilComboboxAdd(txt_deliveryType, dt7, "baseCode", "baseName", "validflag NOT in ('0')", true, "/", "");
  1530. txt_deliveryType.SelectedIndex = 0;
  1531. }
  1532. /// <summary>
  1533. /// 查询可编制数据
  1534. /// </summary>
  1535. /// <param name="tips">是否初始化地址条件</param>
  1536. private void getOrderCAndCD(bool tips)//查询可编制数据
  1537. {
  1538. try
  1539. {
  1540. ultraGrid4.UpdateData();
  1541. this.Cursor = Cursors.WaitCursor;
  1542. dataTable5.Clear();
  1543. dataTable4.Clear();
  1544. //最早要求到货时间
  1545. int times = 0;
  1546. DateTime deliveryTime = DateTime.Now;
  1547. DateTime tempEndDate = DateTime.Now;
  1548. OrderC odC = new OrderC();
  1549. odC.Validflag = "1";
  1550. if (listOrderCol.Count <= 0)
  1551. {
  1552. MessageUtil.ShowTips("请选择合同头");
  1553. return;
  1554. }
  1555. odC.OrderIdCol = (String[])listOrderCol.ToArray(typeof(String));
  1556. //odC.ItemCodeCol = (String[])listMatCode.ToArray(typeof(String));
  1557. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.order.service.OrderCService", "doQueryOrderC", new object[] { odC });
  1558. GridHelper.CopyDataToDatatable(dt, dataTable4, true);
  1559. //publicPms.ShowExcludeColumns(ultraGrid3.DisplayLayout.Bands[1], new string[] {});
  1560. //判断是旧合同生成和新合同生成
  1561. if (!listOrderCol[0].ToString().StartsWith("HT"))
  1562. {
  1563. foreach (Object orderIds in listOrderCol)
  1564. {
  1565. if (orderIds.ToString().StartsWith("HT"))
  1566. {
  1567. MessageUtil.ShowTips("新旧合同不能混合操作");
  1568. return;
  1569. }
  1570. }
  1571. ultraGrid3.DisplayLayout.Bands[1].Override.AllowAddNew = AllowAddNew.TemplateOnBottom;
  1572. ultraGrid3.DisplayLayout.Bands[1].Columns["DELETENAME"].CellActivation = Activation.ActivateOnly;
  1573. publicPms.HideExcludeColumns(ultraGrid3.DisplayLayout.Bands[1], new string[] { "CHK", "DELETENAME", "createQty", "deliveryLocation" });
  1574. foreach (UltraGridRow row in ultraGrid3.Rows)
  1575. {
  1576. double maxCanUseQty_order = Convert.ToDouble(row.GetCellValue("QTY")) - Convert.ToDouble(row.GetCellValue("CREATEDNOTICEQTY"));//合同可编制
  1577. if (maxCanUseQty_order < 0)
  1578. {
  1579. MessageUtil.ShowTips("物料:" + row.GetCellValue("itemName") + "数据异常,累计通知量大于合同量!");
  1580. return;
  1581. }
  1582. row.Cells["canUseQty"].Value = maxCanUseQty_order;
  1583. }
  1584. req_dept_batch.Enabled = true;
  1585. return;
  1586. }
  1587. req_dept_batch.Enabled = false;
  1588. req_dept_batch.Clear();
  1589. txt_dept_batch_id.Text = "";
  1590. ultraGrid3.DisplayLayout.Bands[1].Columns["DELETENAME"].CellActivation = Activation.Disabled;
  1591. publicPms.HideExcludeColumns(ultraGrid3.DisplayLayout.Bands[1], new string[] { "CHK", "DELETENAME", "createQty", "deliveryLocation", "purtype", "itemDescE", "LASTDELIVERYDATE", "mrId", "oriQty", "qtyPur", "remark" });
  1592. foreach (DataRow rows in dt.Rows)
  1593. {
  1594. if (String.IsNullOrEmpty(rows["purLineId"].ToString()))
  1595. {
  1596. MessageUtil.ShowTips("物料:" + rows["itemName"].ToString() + "采购计划行号为空,无法查询到关联的需求计划行");
  1597. return;
  1598. }
  1599. //计算最大的最早的到货时间
  1600. if (String.IsNullOrEmpty(rows["EndDate"].ToString()))
  1601. {
  1602. MessageUtil.ShowTips("物料:" + rows["itemName"].ToString() + "要求到货时间为空!");
  1603. }
  1604. tempEndDate = Convert.ToDateTime(rows["EndDate"]);
  1605. if (times != 0)
  1606. {
  1607. if (tempEndDate < deliveryTime)
  1608. {
  1609. deliveryTime = tempEndDate;
  1610. }
  1611. }
  1612. else
  1613. {
  1614. deliveryTime = tempEndDate;
  1615. }
  1616. times = times + 1;
  1617. }
  1618. RequireReceive rr = new RequireReceive();
  1619. //rr.ItemCodeCol = odC.ItemCodeCol;
  1620. rr.OrderIdCol = odC.OrderIdCol;
  1621. rr.DeliveryLocationCode=txt_deliveryLocation.SelectedIndex == -1 ? "" : txt_deliveryLocation.Value.ToString().Trim();
  1622. if (!ck_isAllReq.Checked)
  1623. {
  1624. rr.DeleteName="2";//查可编制的
  1625. }
  1626. //加载接收需求计划表---所有预采和普采的都在里面
  1627. DataTable dt1 = this.execute<DataTable>("com.hnshituo.pur.requireplan.service.RequireReceiveService", "getRR_forOrder", new object[] { rr });
  1628. foreach (DataRow row2 in dt1.Rows)
  1629. {
  1630. row2["itemDescE"] = Convert.ToDateTime(row2["itemDescE"]).ToString("yyyy/MM");
  1631. }
  1632. GridHelper.CopyDataToDatatable(dt1, dataTable5, true);
  1633. ultraGrid3.DisplayLayout.Bands[1].Override.AllowAddNew = AllowAddNew.No;
  1634. //初始化选择接收需求行
  1635. foreach (UltraGridRow row in ultraGrid3.Rows)
  1636. {
  1637. double maxCanUseQty_order = Convert.ToDouble(row.GetCellValue("QTY")) - Convert.ToDouble(row.GetCellValue("CREATEDNOTICEQTY"));//合同可编制
  1638. double maxCanUseQty_temp = maxCanUseQty_order;
  1639. double maxNeedQty_JitReq = 0;//JIT需求量
  1640. int maxNeedNum_JitReq=0;//JIT需求个数
  1641. if (maxCanUseQty_order < 0)
  1642. {
  1643. MessageUtil.ShowTips("物料:" + row.GetCellValue("itemName") + "数据异常,累计通知量大于合同量!");
  1644. return;
  1645. }
  1646. row.Cells["canUseQty"].Value = maxCanUseQty_order;
  1647. //----------------------------------------------------------------分配方案1:交期优先分配--------------------------------------------------------------------
  1648. if (txt_Allocation_rule.SelectedIndex == 1)
  1649. {
  1650. //条件
  1651. //1:需求的编制量----不能大于需求的可编制量
  1652. //2:合同行的编制量----不能大于合同的可编制量
  1653. //实现流程
  1654. //1:计算合同最大可编制
  1655. //2:循环分配需求
  1656. if (row.HasChild())
  1657. {
  1658. foreach (UltraGridRow row1 in row.ChildBands[0].Rows)
  1659. {
  1660. double maxCanUseQty_Req = Convert.ToDouble(row1.GetCellValue("Qty")) - Convert.ToDouble(row1.GetCellValue("qtyNoticed"));//需求可编制
  1661. row1.Cells["canUseQty"].Value = maxCanUseQty_Req;
  1662. row1.Cells["createQty"].Value = 0;
  1663. if (maxCanUseQty_Req > 0)//需求可编制量只能大于0
  1664. {
  1665. if (maxCanUseQty_temp > 0)
  1666. {
  1667. row1.Cells["CHK"].Value = true;
  1668. row1.Cells["CHK"].Activation = Activation.AllowEdit;
  1669. //row1.Appearance.BackColor = Color.White;
  1670. if (maxCanUseQty_Req <= maxCanUseQty_temp)//需求可编制量少于合同可编制量----》需求可编制量全部编制,合同可编制量减少
  1671. {
  1672. row1.Cells["createQty"].Value = maxCanUseQty_Req;
  1673. maxCanUseQty_temp = maxCanUseQty_temp - maxCanUseQty_Req;
  1674. }
  1675. else//需求可编制量大于合同可编制量----》需求可编制量部分编制,合同可编制量全部用完
  1676. {
  1677. row1.Cells["createQty"].Value = maxCanUseQty_temp;
  1678. maxCanUseQty_temp = 0;
  1679. }
  1680. }
  1681. else
  1682. {
  1683. //row1.Cells["CHK"].Value = false;
  1684. //row1.Cells["CHK"].Activation = Activation.Disabled;
  1685. //row1.Appearance.BackColor = Color.WhiteSmoke;
  1686. row1.Cells["CHK"].Value = true;
  1687. row1.Cells["CHK"].Activation = Activation.AllowEdit;
  1688. //row1.Appearance.BackColor = Color.White;
  1689. }
  1690. }
  1691. else if (maxCanUseQty_Req == 0)
  1692. {
  1693. row1.Cells["CHK"].Value = false;
  1694. row1.Cells["CHK"].Activation = Activation.Disabled;
  1695. //row1.Appearance.BackColor = Color.WhiteSmoke;
  1696. }
  1697. else
  1698. {
  1699. MessageUtil.ShowTips("接收需求行:" + row1.GetCellValue("mrLineId") + "数据异常,已通知通知量大于核准量!");
  1700. row1.Cells["CHK"].Value = false;
  1701. row1.Cells["CHK"].Activation = Activation.Disabled;
  1702. //row1.Appearance.BackColor = Color.WhiteSmoke;
  1703. }
  1704. }
  1705. }
  1706. if (maxCanUseQty_order > maxCanUseQty_temp)
  1707. {
  1708. row.Cells["createQty"].Value = maxCanUseQty_order - maxCanUseQty_temp;
  1709. row.Cells["CHK"].Value = true;
  1710. row.Cells["CHK"].Activation = Activation.AllowEdit;
  1711. //row.Appearance.BackColor = Color.LightCyan;
  1712. }
  1713. else
  1714. {
  1715. row.Cells["createQty"].Value = 0;
  1716. row.Cells["CHK"].Value = false;
  1717. row.Cells["CHK"].Activation = Activation.Disabled;
  1718. //row.Appearance.BackColor = Color.WhiteSmoke;
  1719. }
  1720. }
  1721. else if (txt_Allocation_rule.SelectedIndex == 0)
  1722. {
  1723. //----------------------------------------------------------------分配方案2:优先满足JIT,JIT平均分配-------------------------------------------------------------------
  1724. //条件
  1725. //1:需求的编制量----不能大于需求的可编制量
  1726. //2:合同行的编制量----不能大于合同的可编制量
  1727. //实现流程
  1728. //1:计算合同最大可编制
  1729. //2:计算JIT需求最大可编制量和个数
  1730. //3:平均分配JIT需求(1:,2:)
  1731. //4:其它待定
  1732. if (row.HasChild())
  1733. {
  1734. //计算JIT需求总量
  1735. foreach (UltraGridRow row1 in row.ChildBands[0].Rows)
  1736. {
  1737. double maxCanUseQty_Req = Convert.ToDouble(row1.GetCellValue("Qty")) - Convert.ToDouble(row1.GetCellValue("qtyNoticed"));//需求可编制
  1738. if (maxCanUseQty_Req <= 0)
  1739. {
  1740. maxCanUseQty_Req = 0;
  1741. row1.Cells["CHK"].Value = false;
  1742. row1.Cells["CHK"].Activation = Activation.Disabled;
  1743. //row1.Appearance.BackColor = Color.WhiteSmoke;
  1744. if (maxCanUseQty_Req < 0)
  1745. {
  1746. MessageUtil.ShowTips("接收需求行:" + row1.GetCellValue("mrLineId") + "数据异常,已通知通知量大于核准量!");
  1747. }
  1748. }
  1749. row1.Cells["canUseQty"].Value = maxCanUseQty_Req;//需求可编制
  1750. row1.Cells["createQty"].Value = 0;//默认需求编制量
  1751. if (row1.GetCellValue("DELIVERYLOCATIONFLAG").ToString().Trim() == "是")
  1752. {
  1753. maxNeedQty_JitReq = maxNeedQty_JitReq + maxCanUseQty_Req;
  1754. maxNeedNum_JitReq=maxNeedNum_JitReq+1;
  1755. }
  1756. }
  1757. //执行分配1---JIT需求小于合同需求---满足所有JIT需求
  1758. if (maxCanUseQty_order > maxNeedQty_JitReq)
  1759. {
  1760. foreach (UltraGridRow row1 in row.ChildBands[0].Rows)
  1761. {
  1762. if (maxCanUseQty_temp > 0)
  1763. {
  1764. if (row1.GetCellValue("DELIVERYLOCATIONFLAG").ToString().Trim() == "是")
  1765. {
  1766. row1.Cells["CHK"].Value = true;
  1767. row1.Cells["CHK"].Activation = Activation.AllowEdit;
  1768. // row1.Appearance.BackColor = Color.White;
  1769. double maxCanUseQty_Req = Convert.ToDouble(row1.Cells["canUseQty"].Value);
  1770. row1.Cells["createQty"].Value = maxCanUseQty_Req;
  1771. maxCanUseQty_temp = maxCanUseQty_temp - maxCanUseQty_Req;
  1772. }
  1773. else
  1774. {
  1775. row1.Cells["CHK"].Value = true;
  1776. row1.Cells["CHK"].Activation = Activation.AllowEdit;
  1777. // row1.Appearance.BackColor = Color.White;
  1778. double maxCanUseQty_Req = Convert.ToDouble(row1.Cells["canUseQty"].Value);
  1779. if (maxCanUseQty_Req <= maxCanUseQty_temp)//需求可编制量少于合同可编制量----》需求可编制量全部编制,合同可编制量减少
  1780. {
  1781. row1.Cells["createQty"].Value = maxCanUseQty_Req;
  1782. maxCanUseQty_temp = maxCanUseQty_temp - maxCanUseQty_Req;
  1783. }
  1784. else//需求可编制量大于合同可编制量----》需求可编制量部分编制,合同可编制量全部用完
  1785. {
  1786. row1.Cells["createQty"].Value = maxCanUseQty_temp;
  1787. maxCanUseQty_temp = 0;
  1788. }
  1789. }
  1790. }
  1791. else
  1792. {
  1793. row1.Cells["CHK"].Value = false;
  1794. row1.Cells["CHK"].Activation = Activation.AllowEdit;
  1795. //row1.Appearance.BackColor = Color.White;
  1796. }
  1797. }
  1798. }
  1799. //执行分配2---JIT需求大于等于合同需求-----直接执行平均分配
  1800. else
  1801. {
  1802. foreach (UltraGridRow row1 in row.ChildBands[0].Rows)
  1803. {
  1804. if (maxCanUseQty_temp > 0)
  1805. {
  1806. if (row1.GetCellValue("DELIVERYLOCATIONFLAG").ToString().Trim() == "是")
  1807. {
  1808. double averageQty = 0;
  1809. if (maxNeedNum_JitReq <= 1)//默认不取整数
  1810. {
  1811. averageQty = maxCanUseQty_temp;
  1812. }
  1813. else
  1814. {
  1815. averageQty = (int)(maxCanUseQty_temp / maxNeedNum_JitReq);//截取整数
  1816. }
  1817. row1.Cells["CHK"].Value = true;
  1818. row1.Cells["CHK"].Activation = Activation.AllowEdit;
  1819. double maxCanUseQty_Req = Convert.ToDouble(row1.Cells["canUseQty"].Value);
  1820. if (maxCanUseQty_Req < averageQty)
  1821. {
  1822. row1.Cells["createQty"].Value = maxCanUseQty_Req;
  1823. maxCanUseQty_temp = maxCanUseQty_temp - maxCanUseQty_Req;
  1824. }
  1825. else
  1826. {
  1827. //row1.Appearance.BackColor = Color.White;
  1828. row1.Cells["createQty"].Value = averageQty;
  1829. maxCanUseQty_temp = maxCanUseQty_temp - averageQty;
  1830. }
  1831. maxNeedNum_JitReq = maxNeedNum_JitReq - 1;
  1832. }
  1833. else
  1834. {
  1835. row1.Cells["CHK"].Value = true;
  1836. row1.Cells["CHK"].Activation = Activation.AllowEdit;
  1837. // row1.Appearance.BackColor = Color.White;
  1838. double maxCanUseQty_Req = Convert.ToDouble(row1.Cells["canUseQty"].Value);
  1839. if (maxCanUseQty_Req <= maxCanUseQty_temp)//需求可编制量少于合同可编制量----》需求可编制量全部编制,合同可编制量减少
  1840. {
  1841. row1.Cells["createQty"].Value = maxCanUseQty_Req;
  1842. maxCanUseQty_temp = maxCanUseQty_temp - maxCanUseQty_Req;
  1843. }
  1844. else//需求可编制量大于合同可编制量----》需求可编制量部分编制,合同可编制量全部用完
  1845. {
  1846. row1.Cells["createQty"].Value = maxCanUseQty_temp;
  1847. maxCanUseQty_temp = 0;
  1848. }
  1849. }
  1850. }
  1851. else
  1852. {
  1853. //row1.Cells["CHK"].Value = false;
  1854. //row1.Cells["CHK"].Activation = Activation.Disabled;
  1855. //row1.Appearance.BackColor = Color.WhiteSmoke;
  1856. row1.Cells["CHK"].Value = false;
  1857. row1.Cells["CHK"].Activation = Activation.AllowEdit;
  1858. // row1.Appearance.BackColor = Color.White;
  1859. }
  1860. }
  1861. }
  1862. }
  1863. if (maxCanUseQty_order > maxCanUseQty_temp)
  1864. {
  1865. row.Cells["createQty"].Value = maxCanUseQty_order - maxCanUseQty_temp;
  1866. row.Cells["CHK"].Value = true;
  1867. row.Cells["CHK"].Activation = Activation.AllowEdit;
  1868. // row.Appearance.BackColor = Color.LightCyan;
  1869. }
  1870. else
  1871. {
  1872. row.Cells["createQty"].Value = 0;
  1873. row.Cells["CHK"].Value = false;
  1874. row.Cells["CHK"].Activation = Activation.Disabled;
  1875. // row.Appearance.BackColor = Color.WhiteSmoke;
  1876. }
  1877. }
  1878. else
  1879. {
  1880. MessageUtil.ShowTips("请选择需求分配方案!");
  1881. return;
  1882. }
  1883. }
  1884. GridHelper.RefreshAndAutoSize(ultraGrid3);
  1885. //统计地址与初始化头编辑区
  1886. if (tips == true)
  1887. {
  1888. //初始化头编辑区
  1889. if (deliveryTime > DateTime.Now)
  1890. {
  1891. txt_MRPERIODEND.Value = deliveryTime;
  1892. }
  1893. else
  1894. {
  1895. txt_MRPERIODEND.Value = DateTime.Now.AddDays(1);
  1896. }
  1897. //txt_supp.Text = strSuppName + "(" + strSuppCode + ")";
  1898. //初始化查询区域
  1899. DataTable dttest = dt1.Copy();
  1900. for (int i = 0; i < dttest.Rows.Count; i++)
  1901. {
  1902. String StrLocationCode = dttest.Rows[i]["deliveryLocationCode"].ToString().Trim();
  1903. int cou = 0;
  1904. for (int j = dt1.Rows.Count - 1; j >= 0; j--)
  1905. {
  1906. //DataRow rowt = dt.Rows[j];
  1907. if (dt1.Rows[j]["deliveryLocationCode"].ToString().Trim() == StrLocationCode)
  1908. {
  1909. cou = cou + 1;
  1910. if (cou == 1)
  1911. {
  1912. //rowt = dt.Rows[j];
  1913. }
  1914. if (cou >= 2)
  1915. {
  1916. dt1.Rows.RemoveAt(j);
  1917. }
  1918. }
  1919. }
  1920. }
  1921. CkClassCommon.FilComboboxAdd(txt_deliveryLocation, dt1, "deliveryLocationCode", "deliveryLocation", "validflag NOT in ('0')", true, "全部", "");
  1922. txt_deliveryLocation.SelectedIndex = 0;
  1923. }
  1924. }
  1925. catch (Exception ex)
  1926. {
  1927. MessageUtil.ShowTips("获取该合同可编制数据失败:" + ex);
  1928. }
  1929. finally
  1930. {
  1931. this.Cursor = Cursors.Default;
  1932. }
  1933. }
  1934. /// <summary>
  1935. /// 获取合同行和需求行信息
  1936. /// </summary>
  1937. private void getDetail()// 获取通知单和需求行信息
  1938. {
  1939. try
  1940. {
  1941. UltraGridRow uge = ultraGrid1.ActiveRow;
  1942. if (uge == null)
  1943. {
  1944. return;
  1945. }
  1946. dataTable3.Clear();
  1947. dataTable2.Clear();
  1948. ExcDeliveryNoticeC EdnC = new ExcDeliveryNoticeC();
  1949. EdnC.NoticeId = uge.Cells["NoticeId"].Value.ToString();
  1950. EdnC.Validflag = "1";
  1951. DataTable dt = this.execute<DataTable>("com.hnshituo.pur.ck.service.ExcDeliveryNoticeCService", "find_EdnC", new object[] { EdnC });
  1952. GridHelper.CopyDataToDatatable(dt, dataTable2, true);
  1953. Hashtable map = new Hashtable();
  1954. map.Add("noticeId", uge.Cells["NoticeId"].Value.ToString());
  1955. DataTable dt1 = this.execute<DataTable>("com.hnshituo.pur.ck.service.ExcDeliveryNoticeRpRService", "doQueryList", new object[] { map });
  1956. foreach (DataRow row in dt1.Rows)
  1957. {
  1958. row["planedMouth"] = Convert.ToDateTime(row["planedMouth"]).ToString("yyyy/MM");
  1959. }
  1960. GridHelper.CopyDataToDatatable(dt1, dataTable3, true);
  1961. GridHelper.RefreshAndAutoSize(ultraGrid2);
  1962. }
  1963. catch (Exception ex)
  1964. {
  1965. MessageUtil.ShowTips("加载通知单行数据异常!" + ex.Message);
  1966. }
  1967. }
  1968. /// <summary>
  1969. /// 选择物料事件
  1970. /// </summary>
  1971. private void refreshSelectMat()
  1972. {
  1973. ultraGrid5.UpdateData();
  1974. listMatCode.Clear();
  1975. listMatName.Clear();
  1976. foreach (UltraGridRow row in ultraGrid5.Rows)
  1977. {
  1978. if (Convert.ToBoolean(row.GetCellValue("CHK")) == true)
  1979. {
  1980. String strItemCode = row.GetCellValue("itemCode").ToString().Trim();
  1981. String strItemName = row.GetCellValue("itemName").ToString().Trim();
  1982. listMatCode.Add(strItemCode);
  1983. listMatName.Add(strItemName);
  1984. }
  1985. }
  1986. if (listMatCode.Count >= 0)
  1987. {
  1988. String[] ls = (String[])listMatName.ToArray(typeof(string));
  1989. String str1 = String.Join(";", ls);
  1990. txt_itemName.Text = str1;
  1991. }
  1992. else
  1993. {
  1994. txt_itemName.Text = "";
  1995. }
  1996. }
  1997. #endregion
  1998. private void COP_SuppName_ValueChanged(object sender, EventArgs e)
  1999. {
  2000. if(COP_SuppName.SelectedIndex==-1)
  2001. {
  2002. return;
  2003. }
  2004. dataTable7.Clear();
  2005. String strSuppCode = COP_SuppName.Value.ToString().Trim();
  2006. //加载合同物料dropdown
  2007. String[] array = (String[])listorder.ToArray(typeof(string));
  2008. OrderC odC = new OrderC();
  2009. odC.DeleteName = "0";//待编制合同行
  2010. odC.Validflag = "1";
  2011. if (String.IsNullOrEmpty(strSuppCode))
  2012. {
  2013. odC.OrderIdCol = array;//权限控制
  2014. }
  2015. else
  2016. {
  2017. odC.SuppCode = strSuppCode;
  2018. }
  2019. DataTable dt2 = this.execute<DataTable>("com.hnshituo.pur.order.service.OrderCService", "doQueryOrderC", new object[] { odC });
  2020. DataView dv1 = new DataView(dt2);
  2021. DataTable dt_item = dv1.ToTable(true, new string[] { "itemCode", "itemName" });
  2022. GridHelper.CopyDataToDatatable(dt_item, dataTable7, true);
  2023. }
  2024. }
  2025. }