FrmCkStoreRed.cs 64 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377
  1. using Core.Mes.Client.Comm.Control;
  2. using Core.Mes.Client.Comm.Tool;
  3. using Infragistics.Win.UltraWinGrid;
  4. using Pur.Entity;
  5. using Pur.PublicTools;
  6. using System;
  7. using System.Collections;
  8. using System.Collections.Generic;
  9. using System.ComponentModel;
  10. using System.Data;
  11. using System.Drawing;
  12. using System.Linq;
  13. using System.Text;
  14. using System.Windows.Forms;
  15. using com.hnshituo.pur.vo;
  16. using Core.Mes.Client.Comm.Server;
  17. using Pur.require_plan;
  18. namespace Pur.ck
  19. {
  20. public partial class FrmCkStoreRed : FrmPmsBase
  21. {
  22. public FrmCkStoreRed()
  23. {
  24. InitializeComponent();
  25. }
  26. //填写库存量
  27. protected override void OnLoad(EventArgs e)
  28. {
  29. base.OnLoad(e);
  30. //ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;//不默认加载筛选条件框
  31. ultraGrid1_1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  32. ultraGrid2_1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  33. //ultraGrid3.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  34. }
  35. private void FrmCkStoreRed_Load(object sender, EventArgs e)
  36. {
  37. InitColumns();
  38. ChangeStyle();
  39. SetSumCount();
  40. }
  41. private void InitColumns()
  42. {
  43. string[] arrColumns = new string[] { "CHK", "IN_STOCK_NO", "INV_PHYSIC", "INV_POS", "ORDER_ID", "ORDER_LINE_SQE", "PRINT_CODE", "SUPP_CODE", "SUPP_NAME", "ITEM_CLASS", "ITEM_CODE", "ITEM_NAME", "ITEM_UOM", "ITEM_UOM_CONEFFICIENT", "BUY_PRICE", "BUY_QTY", "WEIGHT_UNIT", "INV_PRICE", "INV_QTY", "INV_AMT", "RED_QTY", "DEAL_REMARK", "IS_RED" };
  44. string[] arrColumnsCaption = new string[] { "选择", "入库单号", "库区", "库位", "合同号", "合同行号", "打印编号", "供应商", "供应商", "物料中类", "物料编码", "物料名称", "采购单位", "转换系数", "采购单价", "采购数量/折基量", "库存单位", "库存单价", "库存数量", "总价", "红冲量", "红冲原因", "是否红冲" };
  45. //PublicPur.InitColumns(arrColumns, arrColumnsCaption, dataTable1, ultraGrid1, new string[] { "CHK", "INV_PHYSIC", "INV_POS", "ORDER_ID", "SUPP_CODE", "ITEM_CLASS", "ITEM_CODE", "RED_QTY", "DEAL_REMARK", "IS_RED" }, false, null);//new string[] { "RED_QTY" }
  46. PublicPur.InitColumns(arrColumns, arrColumnsCaption, dataTable1, ultraGrid1, new string[] { "INV_PHYSIC", "INV_POS", "ORDER_ID", "SUPP_CODE", "ITEM_CLASS", "ITEM_CODE", "RED_QTY", "DEAL_REMARK", "IS_RED" }, false, new string[] { "CHK"});//new string[] { "RED_QTY" }
  47. //BUY_QTY 采购数量
  48. string[] arrColumnsDetail = new string[] { "CHK", "INV_POS_ID", "INV_ID", "IN_STOCK_NO", "ORDER_ID", "ORDER_LINE_SQE", "SUPP_CODE", "SUPP_NAME", "STATUS", "MR_LINE_ID", "REFE_ID", "REF_TYPE", "DELIVER_SHEET_ID", "DELIVER_ADDRESS", "INV_PHYSIC", "INV_POS", "ITEM_UNIQUE", "ITEM_CLASS", "ITEM_CODE", "ITEM_DESC", "ITEM_DESC_E", "ITEM_NAME", "BATCH_NO", "START_QTY", "ITEM_UOM", "ITEM_UOM_CONEFFICIENT", "BUY_PRICE", "BUY_PRICE_TAX", "BUY_QTY", "WEIGHT_UNIT", "INV_PRICE", "INV_QTY", "BUG_PRICE", "INV_AMT", "STORE_QTY", "RED_QTY", "DEAL_REMARK", "COST_CENTER", "USE_ORG_ID", "USE_ORG_NAME" };
  49. string[] arrColumnsCaptionDetail = new string[] { "选择", "主键", "库存记录号", "单号", "合同号", "合同行号", "供应商代码", "供应商", "状态", "领用计划行号", "参考单号", "参考单类别", "送货单号", "送货地址", "库区", "库位", "物料唯一码", "物料大类", "物料编码", "物料描述", "物料英文名称", "物料名称", "批次号", "原始量", "采购单位", "转换系数", "采购单价", "含税采购单价", "采购数量/折基量", "库存单位", "库存单价", "库存数量", "计划价", "总价", "在库量", "红冲量", "红冲原因", "成本中心", "领用单位", "领用单位" };
  50. PublicPur.InitColumns(arrColumnsDetail, arrColumnsCaptionDetail, dataTable1_1, ultraGrid1_1, new string[] { "CHK", "BUY_PRICE", "BUY_QTY", "INV_PRICE", "INV_QTY", "INV_AMT", "STORE_QTY", "RED_QTY", "DEAL_REMARK" }, true, new string[] { "CHK", "RED_QTY", "DEAL_REMARK" });
  51. //string[] arrColumnsOut = new string[] { "CHK", "INV_PHYSIC", "INV_POS", "ORDER_ID", "ORDER_LINE_SQE", "OUT_STOCK_NO", "PRINT_CODE", "SUPP_CODE", "SUPP_NAME", "ITEM_CLASS", "ITEM_CODE", "ITEM_NAME", "ITEM_UOM", "ITEM_UOM_CONEFFICIENT", "BUY_PRICE", "BUY_QTY", "WEIGHT_UNIT", "INV_PRICE", "INV_QTY", "INV_AMT", "RED_QTY", "DEAL_REMARK" };
  52. //string[] arrColumnsCaptionOut = new string[] { "选择", "库区", "库位", "合同号", "合同行号", "出库单号", "打印编号", "供应商", "供应商", "物料中类", "物料编码", "物料名称", "采购单位", "转换系数", "采购单价", "采购数量", "库存单位", "库存单价", "出库数量", "总价", "红冲量", "红冲原因" };
  53. //出库记录
  54. PublicPur.InitColumns(arrColumns, arrColumnsCaption, dataTable2, ultraGrid2, new string[] { "CHK", "INV_PHYSIC", "INV_POS", "ORDER_ID", "ORDER_LINE_SQE", "SUPP_CODE", "SUPP_NAME", "ITEM_CLASS", "ITEM_CODE", "BUY_QTY", "DEAL_REMARK", "IS_RED" }, false, null);
  55. PublicPur.InitColumns(arrColumnsDetail, arrColumnsCaptionDetail, dataTable2_1, ultraGrid2_1, new string[] { "CHK", "ORDER_LINE_SQE", "SUPP_NAME", "INV_PRICE", "INV_QTY", "INV_AMT", "STORE_QTY", "RED_QTY", "DEAL_REMARK" }, true, new string[] { "CHK", "RED_QTY", "DEAL_REMARK" });
  56. string[] arrColumnsRecord = new string[] { "CHK", "STOCKTAKING_DOC", "STOCKTAKING_TYPE_NAME", "INV_PHYSIC", "INV_POS", "ORDER_ID", "ORDER_LINE_SQE", "IN_STOCK_NO", "STOCK_NO", "SUPP_CODE", "SUPP_NAME", "ITEM_CLASS", "ITEM_CODE", "ITEM_NAME", "ITEM_UOM", "ITEM_UOM_CONEFFICIENT", "BUY_PRICE", "BUY_QTY", "WEIGHT_UNIT", "INV_PRICE", "INV_QTY", "INV_AMT", "RED_QTY", "DEAL_REMARK", "CREATE_NAME", "CREATE_TIME_", "IS_RED" };//STOCKTAKING_RSN_NAME
  57. string[] arrColumnsCaptionRecord = new string[] { "选择","红冲记录号", "红冲类型", "库区", "库位", "合同号", "合同行号", "原出入库单号", "新单号", "供应商", "供应商", "物料中类", "物料编码", "物料名称", "采购单位", "转换系数", "采购单价", "采购数量/折基量", "库存单位", "库存单价", "库存数量", "总价", "红冲量", "红冲原因", "红冲人", "红冲时间" ,"是否打印"};
  58. PublicPur.InitColumns(arrColumnsRecord, arrColumnsCaptionRecord, dataTable3, ultraGrid3, new string[] { "INV_PHYSIC", "INV_POS", "ORDER_ID", "SUPP_CODE", "ITEM_CLASS", "ITEM_CODE", "BUY_PRICE", "BUY_QTY", "INV_QTY", "INV_AMT", "IS_RED" }, false, new string[] { "CHK" });//一般情况下后边是null,chk能勾上所以
  59. dataTable2.Columns["IN_STOCK_NO"].Caption = "出库单号";
  60. dataTable2.Columns["INV_QTY"].Caption = "出库数量";
  61. dataTable2_1.Columns["INV_QTY"].Caption = "出库数量";
  62. }
  63. //显示位数
  64. private void ChangeStyle()
  65. {
  66. PublicPur.InitCellPositionRight(new UltraGrid[] { ultraGrid1, ultraGrid1_1, ultraGrid2, ultraGrid2_1, ultraGrid3 }, new string[] { "ITEM_UOM_CONEFFICIENT", "BUY_PRICE", "BUY_QTY", "INV_PRICE", "INV_QTY", "INV_AMT", "STORE_QTY", "RED_QTY" });
  67. PublicPur.InitColumnShowLength(new UltraGrid[] { ultraGrid1, ultraGrid1_1, ultraGrid2, ultraGrid2_1, ultraGrid3 }, 0, new string[] { "BUY_QTY", "INV_QTY", "STORE_QTY", "RED_QTY" }, 4, false);
  68. PublicPur.InitColumnShowLength(new UltraGrid[] { ultraGrid1, ultraGrid1_1, ultraGrid2, ultraGrid2_1, ultraGrid3 }, 0, new string[] { "BUY_PRICE", "INV_PRICE", "INV_AMT" }, 2, false);
  69. PublicPur.InitColumnShowLength(new UltraGrid[] { ultraGrid1, ultraGrid1_1, ultraGrid2, ultraGrid2_1, ultraGrid3 }, 0, new string[] { "ITEM_UOM_CONEFFICIENT" }, 6, false);
  70. }
  71. //设置统计风格
  72. private void SetSumCount()
  73. {
  74. UltraGridBand GridBand = this.ultraGrid3.DisplayLayout.Bands[0];//this.ultraGrid3.Rows.Band
  75. PublicPur.SetupSummaryHeade(new String[] { "Count", "Sum" }, new String[] { "共{0}条", "{0}" }, new string[] { "STOCKTAKING_DOC", "RED_QTY" }, GridBand, SummaryDisplayAreas.TopFixed);
  76. }
  77. //菜单按钮事件
  78. public override void ToolBar_Click(object sender, string ToolbarKey)
  79. {
  80. switch (ToolbarKey)
  81. {
  82. case "Query":
  83. if (ultraTabControl1.SelectedTab.Index == 0)
  84. {
  85. QueryCkInBillRecord();//查询入库记录
  86. }
  87. else if (ultraTabControl1.SelectedTab.Index == 1)
  88. {
  89. QueryCkOutBillRecord();
  90. }
  91. else if (ultraTabControl1.SelectedTab.Index == 2)
  92. {
  93. QueryCkStoreRedRecord();//查询红冲记录
  94. }
  95. break;
  96. case "Carry"://确认红冲
  97. if (ultraTabControl1.SelectedTab.Index == 0)
  98. {
  99. ConfirmCkInBillStoreRed();
  100. }
  101. else if (ultraTabControl1.SelectedTab.Index == 1)
  102. {
  103. ConfirmCkOutBillStoreRed();
  104. }
  105. break;
  106. case "Cancel"://取消红冲
  107. CancelCkOutInCarryRecord();
  108. break;
  109. case "Print"://红冲打印
  110. CkOutInCarryRecordPrint();
  111. break;
  112. case "Close":
  113. if (MessageUtil.ShowYesNoAndQuestion("是否确认关闭页面?") == DialogResult.Yes)
  114. {
  115. this.Close();
  116. }
  117. break;
  118. }
  119. }
  120. private void CkOutInCarryRecordPrint()
  121. {
  122. try
  123. {
  124. string record = "";
  125. if (ultraTabControl1.SelectedTab.Index != 2)
  126. {
  127. return;
  128. }
  129. ultraGrid3.UpdateData();
  130. DataRow[] arr = dataTable3.Select("CHK = 'True'");
  131. this.Cursor = Cursors.WaitCursor;
  132. //UltraGridRow ugr = ultraGrid2.ActiveRow;
  133. if (arr.Length==0)
  134. {
  135. MessageUtil.ShowWarning("请选择您要打印的红冲记录!");
  136. return;
  137. }
  138. else
  139. {
  140. foreach(DataRow dr in arr)
  141. {
  142. if (record == "" || record == null)
  143. {
  144. record = dr["STOCKTAKING_DOC"].ToString();
  145. }
  146. else
  147. {
  148. record = record + "','" + dr["STOCKTAKING_DOC"].ToString();
  149. }
  150. }
  151. }
  152. string strurl = "";
  153. //if (ob.MainUrl.StartsWith("http://127.0.0.1"))
  154. //{
  155. strurl = "http://localhost:8075/webroot/decision/view/report?viewlet=rpt_OutBill_redDev.cpt&op=view" + "&STOCKDOC=" + record;
  156. //}
  157. //else
  158. //{
  159. //strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=rpt_OutBill_redDev.cpt&op=view" + "&abc=" + abc;
  160. //}
  161. comm.printReport(this.ob, strurl, "红冲记录打印");
  162. if (MessageUtil.ShowYesNoAndQuestion("是否确认打印?") == DialogResult.Yes)
  163. {
  164. foreach(DataRow dr in arr)
  165. {
  166. dr["IS_RED"] = "1";
  167. }
  168. ChangeColor(ultraGrid3);
  169. }
  170. }
  171. finally
  172. {
  173. this.Cursor = Cursors.Default;
  174. }
  175. }
  176. private void ChangeColor(UltraGrid ug)
  177. {
  178. foreach (UltraGridRow ur in ug.Rows)
  179. {
  180. if (ur.Cells["IS_RED"].Text.Trim() != "0")
  181. {
  182. ur.Appearance.ForeColor = Color.Red;
  183. }
  184. }
  185. }
  186. private void QueryCkInBillRecord()
  187. {
  188. try
  189. {
  190. dataTable1.Rows.Clear();
  191. ArrayList arrayList = new ArrayList();
  192. if (chkDate.Checked)
  193. {
  194. arrayList.Add(dateBegin.DateTime.ToShortDateString() + " 00:00:00");
  195. arrayList.Add(dateEnd.DateTime.ToShortDateString() + " 23:59:59");
  196. }
  197. else
  198. {
  199. arrayList.Add("0001/01/01 00:00:00");
  200. arrayList.Add("9999/12/31 23:59:59");
  201. }
  202. if (chkITEM_NAME.Checked)
  203. {
  204. arrayList.Add(ultraQueryITEM_NAME.Text.Trim());
  205. arrayList.Add(ultraQueryITEM_NAME.Text.Trim());
  206. arrayList.Add(ultraQueryITEM_NAME.Text.Trim());
  207. }
  208. else
  209. {
  210. arrayList.Add("");
  211. arrayList.Add("");
  212. arrayList.Add("");
  213. }
  214. if (chkITEM_CODE.Checked)
  215. {
  216. arrayList.Add(ultraQueryITEM_CODE.Text.Trim());
  217. arrayList.Add(ultraQueryITEM_CODE.Text.Trim());
  218. arrayList.Add(ultraQueryITEM_CODE.Text.Trim());
  219. }
  220. else
  221. {
  222. arrayList.Add("");
  223. arrayList.Add("");
  224. arrayList.Add("");
  225. }
  226. if (chkORDER_LINE_SQE.Checked)
  227. {
  228. arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim());
  229. arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim());
  230. arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim());
  231. }
  232. else
  233. {
  234. arrayList.Add("");
  235. arrayList.Add("");
  236. arrayList.Add("");
  237. }
  238. if (chkSTOCK_NO.Checked)
  239. {
  240. arrayList.Add(txtSTOCK_NO.Text.Trim());
  241. arrayList.Add(txtSTOCK_NO.Text.Trim());
  242. arrayList.Add(txtSTOCK_NO.Text.Trim());
  243. }
  244. else
  245. {
  246. arrayList.Add("");
  247. arrayList.Add("");
  248. arrayList.Add("");
  249. }
  250. DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryCkInBillRecord",
  251. new Object[] { arrayList }, ob);
  252. if (dt == null || dt.Rows.Count == 0)
  253. {
  254. dataTable1_1.Rows.Clear();
  255. dataTable1.Rows.Clear();
  256. return;
  257. }
  258. GridHelper.CopyDataToDatatable(dt, dataTable1, true);//把dt复制给dataTable1
  259. ChangeColor(ultraGrid1);
  260. GridHelper.RefreshAndAutoSize(ultraGrid1);
  261. }
  262. catch (Exception e)
  263. {
  264. MessageUtil.ShowWarning(e.Message);
  265. return;
  266. }
  267. }
  268. private void QueryCkOutBillRecord()
  269. {
  270. try
  271. {
  272. dataTable2.Rows.Clear();
  273. ArrayList arrayList = new ArrayList();
  274. if (chkDate.Checked)
  275. {
  276. arrayList.Add(dateBegin.DateTime.ToShortDateString() + " 00:00:00");
  277. arrayList.Add(dateEnd.DateTime.ToShortDateString() + " 23:59:59");
  278. }
  279. else
  280. {
  281. arrayList.Add("0001/01/01 00:00:00");
  282. arrayList.Add("9999/12/31 23:59:59");
  283. }
  284. if (chkITEM_NAME.Checked)
  285. {
  286. arrayList.Add(ultraQueryITEM_NAME.Text.Trim());
  287. arrayList.Add(ultraQueryITEM_NAME.Text.Trim());
  288. arrayList.Add(ultraQueryITEM_NAME.Text.Trim());
  289. }
  290. else
  291. {
  292. arrayList.Add("");
  293. arrayList.Add("");
  294. arrayList.Add("");
  295. }
  296. if (chkITEM_CODE.Checked)
  297. {
  298. arrayList.Add(ultraQueryITEM_CODE.Text.Trim());
  299. arrayList.Add(ultraQueryITEM_CODE.Text.Trim());
  300. arrayList.Add(ultraQueryITEM_CODE.Text.Trim());
  301. }
  302. else
  303. {
  304. arrayList.Add("");
  305. arrayList.Add("");
  306. arrayList.Add("");
  307. }
  308. if (chkORDER_LINE_SQE.Checked)
  309. {
  310. arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim());
  311. arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim());
  312. arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim());
  313. }
  314. else
  315. {
  316. arrayList.Add("");
  317. arrayList.Add("");
  318. arrayList.Add("");
  319. }
  320. if (chkSTOCK_NO.Checked)
  321. {
  322. arrayList.Add(txtSTOCK_NO.Text.Trim());
  323. arrayList.Add(txtSTOCK_NO.Text.Trim());
  324. arrayList.Add(txtSTOCK_NO.Text.Trim());
  325. }
  326. else
  327. {
  328. arrayList.Add("");
  329. arrayList.Add("");
  330. arrayList.Add("");
  331. }
  332. DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryCkOutBillRecord",
  333. new Object[] { arrayList }, ob);
  334. if (dt == null || dt.Rows.Count == 0)
  335. {
  336. dataTable2_1.Rows.Clear();
  337. dataTable2.Rows.Clear();
  338. return;
  339. }
  340. GridHelper.CopyDataToDatatable(dt, dataTable2, true);//把dt复制给dataTable1
  341. ChangeColor(ultraGrid2);
  342. GridHelper.RefreshAndAutoSize(ultraGrid2);
  343. }
  344. catch (Exception e)
  345. {
  346. MessageUtil.ShowWarning(e.Message);
  347. return;
  348. }
  349. }
  350. //查询红冲记录
  351. private void QueryCkStoreRedRecord()
  352. {
  353. try
  354. {
  355. dataTable3.Rows.Clear();
  356. ArrayList arrayList = new ArrayList();
  357. if (chkDate.Checked)
  358. {
  359. arrayList.Add(dateBegin.DateTime.ToShortDateString() + " 00:00:00");
  360. arrayList.Add(dateEnd.DateTime.ToShortDateString() + " 23:59:59");
  361. }
  362. else
  363. {
  364. arrayList.Add("0001/01/01 00:00:00");
  365. arrayList.Add("9999/12/31 23:59:59");
  366. }
  367. if (chkITEM_NAME.Checked)
  368. {
  369. arrayList.Add(ultraQueryITEM_NAME.Text.Trim());
  370. arrayList.Add(ultraQueryITEM_NAME.Text.Trim());
  371. arrayList.Add(ultraQueryITEM_NAME.Text.Trim());
  372. }
  373. else
  374. {
  375. arrayList.Add("");
  376. arrayList.Add("");
  377. arrayList.Add("");
  378. }
  379. if (chkITEM_CODE.Checked)
  380. {
  381. arrayList.Add(ultraQueryITEM_CODE.Text.Trim());
  382. arrayList.Add(ultraQueryITEM_CODE.Text.Trim());
  383. arrayList.Add(ultraQueryITEM_CODE.Text.Trim());
  384. }
  385. else
  386. {
  387. arrayList.Add("");
  388. arrayList.Add("");
  389. arrayList.Add("");
  390. }
  391. if (chkORDER_LINE_SQE.Checked)
  392. {
  393. arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim());
  394. arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim());
  395. arrayList.Add(ultraQueryORDER_LINE_SQE.Text.Trim());
  396. }
  397. else
  398. {
  399. arrayList.Add("");
  400. arrayList.Add("");
  401. arrayList.Add("");
  402. }
  403. if (chkSTOCK_NO.Checked)
  404. {
  405. arrayList.Add(txtSTOCK_NO.Text.Trim());
  406. arrayList.Add(txtSTOCK_NO.Text.Trim());
  407. arrayList.Add(txtSTOCK_NO.Text.Trim());
  408. }
  409. else
  410. {
  411. arrayList.Add("");
  412. arrayList.Add("");
  413. arrayList.Add("");
  414. }
  415. DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryCkStoreRedRecord",
  416. new Object[] { arrayList }, ob);
  417. if (dt == null || dt.Rows.Count == 0)
  418. {
  419. return;
  420. }
  421. GridHelper.CopyDataToDatatable(dt, dataTable3, true);//把dt复制给dataTable1
  422. GridHelper.RefreshAndAutoSize(ultraGrid3);
  423. }
  424. catch (Exception e)
  425. {
  426. MessageUtil.ShowWarning(e.Message);
  427. return;
  428. }
  429. }
  430. private void ConfirmCkInBillStoreRed()
  431. {
  432. try
  433. {
  434. if (ultraTabControl1.SelectedTab.Index != 0)
  435. {
  436. MessageUtil.ShowTips("只有选择了入库单红冲页才能进行红冲操作!");
  437. return;
  438. }
  439. if (ultraGrid1.ActiveRow == null || dataTable1.Rows.Count == 0)
  440. {
  441. MessageUtil.ShowTips("请选择一条记录进行红冲操作!");
  442. return;
  443. }
  444. if (ultraGrid1.ActiveRow.Cells["IS_RED"].Text.Trim() != "0")
  445. {
  446. MessageUtil.ShowTips("此记录已经红冲不允许再次操作!");
  447. return;
  448. }
  449. ultraGrid1_1.UpdateData();
  450. DataRow[] arr = dataTable1_1.Select("CHK = 'True'");
  451. if (arr.Length == 0)
  452. {
  453. MessageUtil.ShowTips("请至少勾选一条库存记录进行红冲操作!");
  454. return;
  455. }
  456. string strValid = IsValid(dataTable1_1);
  457. if (strValid != "")
  458. {
  459. MessageUtil.ShowTips(strValid);
  460. return;
  461. }
  462. if (MessageUtil.ShowYesNoAndQuestion("是否确认对此记录进行红冲?") == DialogResult.Yes)
  463. {
  464. string userId = UserInfo.GetUserID();
  465. string user = UserInfo.GetUserName();
  466. string strDate = DateTime.Now.ToString();
  467. ArrayList all = new ArrayList();
  468. ArrayList alBase = new ArrayList();//盘盈盘亏记录表
  469. ArrayList alBaseParams = new ArrayList();
  470. ArrayList alCk = new ArrayList();//库存记录表
  471. ArrayList alCkParams = new ArrayList();
  472. ArrayList alCkInBill = new ArrayList();//入库记录表
  473. ArrayList alCkInBillParams = new ArrayList();
  474. ArrayList alCkInBillPos = new ArrayList();//入库记录表
  475. ArrayList alCkInBillPosParams = new ArrayList();
  476. ArrayList alCkOutBill = new ArrayList();//出库记录表
  477. ArrayList alCkOutBillParams = new ArrayList();
  478. ArrayList alCkOutBillPos = new ArrayList();//出库记录从表
  479. ArrayList alCkOutBillPosParams = new ArrayList();
  480. ArrayList listSubC = new ArrayList();
  481. string strDIFF_QTY = "";
  482. foreach (DataRow dr in arr)
  483. {
  484. //if (dr["DEAL_REMARK"].ToString() == "")
  485. //{
  486. // MessageUtil.ShowTips("红冲原因不能为空!");
  487. // return;
  488. //}
  489. if (dr["RED_QTY"].ToString() != "")
  490. {
  491. strDIFF_QTY = "";
  492. if (ultraGrid1.ActiveRow.Cells["ITEM_CLASS"].Text.Trim() == "W01")
  493. {
  494. strDIFF_QTY = "-" + dr["RED_QTY"].ToString();
  495. }
  496. else
  497. {
  498. //非铁合金的入库量需要除以转换系数
  499. strDIFF_QTY = "-" + Math.Round(Convert.ToDouble(dr["RED_QTY"].ToString()) / Convert.ToDouble(ultraGrid1.ActiveRow.Cells["ITEM_UOM_CONEFFICIENT"].Text.Trim()), 4);//入库数量
  500. }
  501. alBaseParams = new ArrayList();
  502. alBaseParams.Add("3");//盘库类型代码 3红冲入库
  503. alBaseParams.Add("红冲入库");//盘库类型名称
  504. alBaseParams.Add("");//盘库原因代码
  505. alBaseParams.Add(dr["DEAL_REMARK"].ToString());//盘库原因名称
  506. alBaseParams.Add(dr["INV_POS_ID"].ToString());
  507. alBaseParams.Add(dr["INV_ID"].ToString());//库存记录号
  508. alBaseParams.Add(dr["IN_STOCK_NO"].ToString());//原出库或入库单号 IN_STOCK_NO
  509. alBaseParams.Add(dr["ORDER_ID"].ToString());
  510. alBaseParams.Add(dr["ORDER_LINE_SQE"].ToString());
  511. alBaseParams.Add(dr["SUPP_CODE"].ToString());
  512. alBaseParams.Add(dr["SUPP_NAME"].ToString());
  513. alBaseParams.Add(dr["INV_PHYSIC"].ToString());
  514. alBaseParams.Add(dr["INV_POS"].ToString());//库位
  515. alBaseParams.Add(dr["ITEM_UNIQUE"].ToString());
  516. alBaseParams.Add(dr["ITEM_CODE"].ToString());
  517. alBaseParams.Add(dr["ITEM_NAME"].ToString());
  518. alBaseParams.Add(dr["ITEM_UOM"].ToString());//采购单位
  519. alBaseParams.Add(dr["ITEM_UOM_CONEFFICIENT"].ToString());
  520. alBaseParams.Add(dr["WEIGHT_UNIT"].ToString());
  521. alBaseParams.Add(dr["BATCH_NO"].ToString());
  522. alBaseParams.Add(dr["START_QTY"].ToString());//数据库原始量
  523. alBaseParams.Add("");//采购量 BUY_QTY
  524. alBaseParams.Add("");//采购价格 BUY_PRICE
  525. alBaseParams.Add(dr["INV_QTY"].ToString());//库存数量
  526. alBaseParams.Add(dr["INV_PRICE"].ToString());//库存价格
  527. alBaseParams.Add(dr["INV_AMT"].ToString());
  528. alBaseParams.Add("");//盘点量 REAL_QTY
  529. alBaseParams.Add("");//盘点金额 REAL_AMT
  530. alBaseParams.Add(dr["RED_QTY"].ToString());//红冲量
  531. alBaseParams.Add(Convert.ToDouble(dr["INV_PRICE"].ToString()) * Convert.ToDouble(dr["RED_QTY"].ToString()));//红冲金额
  532. alBaseParams.Add("");//备注
  533. alBaseParams.Add(user);//创建人
  534. alBase.Add(alBaseParams);
  535. //改变库存量
  536. alCkParams = new ArrayList();
  537. alCkParams.Add(strDIFF_QTY);
  538. //alCkParams.Add(strDIFF_QTY);
  539. alCkParams.Add(dr["INV_POS_ID"].ToString());
  540. alCk.Add(alCkParams);
  541. alCkInBillParams = new ArrayList();
  542. alCkInBillParams.Add(dr["INV_ID"].ToString());
  543. alCkInBillParams.Add(dr["STATUS"].ToString());//STATUS 未结算
  544. alCkInBillParams.Add(dr["MR_LINE_ID"].ToString());
  545. alCkInBillParams.Add(dr["REFE_ID"].ToString());
  546. if (String.IsNullOrEmpty(dr["REFE_ID"].ToString().Trim()))
  547. {
  548. MessageUtil.ShowTips("送货单号为空!");
  549. return;
  550. }
  551. listSubC.Add(dr["REFE_ID"].ToString().Trim());
  552. alCkInBillParams.Add(dr["REF_TYPE"].ToString());
  553. alCkInBillParams.Add(dr["ORDER_ID"].ToString());
  554. alCkInBillParams.Add(dr["ORDER_LINE_SQE"].ToString());
  555. alCkInBillParams.Add(dr["SUPP_CODE"].ToString());
  556. alCkInBillParams.Add(dr["SUPP_NAME"].ToString());
  557. alCkInBillParams.Add(dr["INV_PHYSIC"].ToString());
  558. alCkInBillParams.Add(dr["INV_POS"].ToString());
  559. alCkInBillParams.Add(dr["ITEM_UNIQUE"].ToString());
  560. alCkInBillParams.Add("");//ITEM_UOM_ID
  561. alCkInBillParams.Add("");//ITEM_ATTR_ID
  562. alCkInBillParams.Add("");//ITEM_ATTR
  563. alCkInBillParams.Add("");//ITEM_STANDARDS_ID
  564. alCkInBillParams.Add("");//ITEM_STANDARDS_CODE
  565. alCkInBillParams.Add(dr["ITEM_CODE"].ToString());//ITEM_CODE
  566. alCkInBillParams.Add("");//ITEM_DESC
  567. alCkInBillParams.Add("");//ITEM_DESC_E
  568. alCkInBillParams.Add(dr["ITEM_NAME"].ToString());
  569. alCkInBillParams.Add("");//ITEM_SPEC
  570. alCkInBillParams.Add("");//ITEM_USE_UOM
  571. alCkInBillParams.Add(dr["BATCH_NO"].ToString());
  572. alCkInBillParams.Add(dr["ITEM_UOM"].ToString());
  573. alCkInBillParams.Add(dr["ITEM_UOM_CONEFFICIENT"].ToString());
  574. alCkInBillParams.Add(dr["WEIGHT_UNIT"].ToString());
  575. alCkInBillParams.Add("7");//RECEIVE_TYPE 入库类型 红冲入库
  576. alCkInBillParams.Add(strDIFF_QTY);//入库数量
  577. alCkInBillParams.Add("-" + Math.Round(Convert.ToDouble(dr["INV_PRICE"].ToString()) * Convert.ToDouble(dr["RED_QTY"].ToString()), 2));//入库金额
  578. alCkInBillParams.Add(dr["BUG_PRICE"].ToString());//计划价
  579. alCkInBillParams.Add("红冲入库");//备注
  580. alCkInBillParams.Add("1");//VALIDFLAG
  581. alCkInBillParams.Add(dr["BUY_PRICE"].ToString());//入库单价
  582. alCkInBillParams.Add(dr["BUY_PRICE_TAX"].ToString());//入库单价含税
  583. alCkInBillParams.Add(dr["REFE_ID"].ToString().Trim()+"_red");//红冲标识+财务标识
  584. alCkInBillParams.Add(userId);
  585. alCkInBillParams.Add(user);
  586. alCkInBill.Add(alCkInBillParams);
  587. alCkInBillPosParams = new ArrayList();
  588. alCkInBillPosParams.Add(dr["INV_ID"].ToString());
  589. alCkInBillPosParams.Add(dr["INV_PHYSIC"].ToString());
  590. alCkInBillPosParams.Add(dr["INV_POS"].ToString());
  591. alCkInBillPosParams.Add(strDIFF_QTY);//入库数量
  592. alCkInBillPosParams.Add("红冲入库");//备注
  593. alCkInBillPosParams.Add("1");//VALIDFLAG
  594. alCkInBillPosParams.Add(userId);
  595. alCkInBillPosParams.Add(user);
  596. alCkInBillPos.Add(alCkInBillPosParams);
  597. }
  598. }
  599. if (alBase.Count == 0)
  600. {
  601. MessageUtil.ShowTips("已勾选数据请填写正确!");
  602. return;
  603. }
  604. all.Add(alBase);
  605. all.Add(alCk);
  606. all.Add(alCkInBill);
  607. all.Add(alCkInBillPos);
  608. //all.Add(alCkOutBill);
  609. //all.Add(alCkOutBillPos);
  610. int ii= PublicServer.SetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.ConfirmCkInBillStoreRed",
  611. new Object[] { all, ultraGrid1.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim() }, ob);
  612. if (ii > 0)
  613. {
  614. QueryCkInBillRecord();
  615. string str = string.Join(",", (string[])listSubC.ToArray(typeof(string)));
  616. if (MessageUtil.ShowYesNoAndQuestion("红冲成功,确定需要给红冲关联送货单行:" + str + "重新办理入库?") != DialogResult.Yes)
  617. {
  618. return;
  619. }
  620. CoreResult crt = this.execute<CoreResult>("com.hnshituo.pur.ck.service.ExcDeliverySubCService", "doRed", new object[] { listSubC });
  621. if (crt.Resultcode != 0)
  622. {
  623. MessageUtil.ShowTips("恢复待入库状态失败:" + crt.Resultmsg);
  624. return;
  625. }
  626. else {
  627. MessageUtil.ShowTips("已恢复待入库状态,请及时办理入库" );
  628. return;
  629. }
  630. }
  631. }
  632. }
  633. catch (Exception e)
  634. {
  635. // QueryCkInBillRecord();
  636. MessageUtil.ShowWarning(e.Message);
  637. return;
  638. }
  639. }
  640. private void ConfirmCkOutBillStoreRed()
  641. {
  642. try
  643. {
  644. if (ultraTabControl1.SelectedTab.Index != 1)
  645. {
  646. MessageUtil.ShowTips("只有选择了出库单红冲页才能进行红冲操作!");
  647. return;
  648. }
  649. if (ultraGrid2.ActiveRow == null || dataTable2.Rows.Count == 0)
  650. {
  651. MessageUtil.ShowTips("请选择一条记录进行红冲操作!");
  652. return;
  653. }
  654. if (ultraGrid2.ActiveRow.Cells["IS_RED"].Text.Trim() != "0")
  655. {
  656. MessageUtil.ShowTips("此记录已经红冲不允许再次操作!");
  657. return;
  658. }
  659. ultraGrid2_1.UpdateData();
  660. DataRow[] arr = dataTable2_1.Select("CHK = 'True'");
  661. if (arr.Length == 0)
  662. {
  663. MessageUtil.ShowTips("请至少勾选一条库存记录进行红冲操作!");
  664. return;
  665. }
  666. string strValid = IsValid(dataTable2_1);
  667. if (strValid != "")
  668. {
  669. MessageUtil.ShowTips(strValid);
  670. return;
  671. }
  672. if (MessageUtil.ShowYesNoAndQuestion("是否确认对此记录进行红冲?") == DialogResult.Yes)
  673. {
  674. string userId = UserInfo.GetUserID();
  675. string user = UserInfo.GetUserName();
  676. string strDate = DateTime.Now.ToString();
  677. ArrayList all = new ArrayList();
  678. ArrayList alBase = new ArrayList();//盘盈盘亏记录表
  679. ArrayList alBaseParams = new ArrayList();
  680. ArrayList alCk = new ArrayList();//库存记录表
  681. ArrayList alCkParams = new ArrayList();
  682. ArrayList alCkInBill = new ArrayList();//入库记录表
  683. ArrayList alCkInBillParams = new ArrayList();
  684. ArrayList alCkInBillPos = new ArrayList();//入库记录表
  685. ArrayList alCkInBillPosParams = new ArrayList();
  686. ArrayList alCkOutBill = new ArrayList();//出库记录表
  687. ArrayList alCkOutBillParams = new ArrayList();
  688. ArrayList alCkOutBillPos = new ArrayList();//出库记录从表
  689. ArrayList alCkOutBillPosParams = new ArrayList();
  690. string strDIFF_QTY = "";
  691. foreach (DataRow dr in arr)
  692. {
  693. //if (dr["DEAL_REMARK"].ToString() == "")
  694. //{
  695. // MessageUtil.ShowTips("红冲原因不能为空!");
  696. // return;
  697. //}
  698. if (dr["RED_QTY"].ToString() != "")
  699. {
  700. strDIFF_QTY = "";
  701. if (ultraGrid2.ActiveRow.Cells["ITEM_CLASS"].Text.Trim() == "W01")
  702. {
  703. strDIFF_QTY = dr["RED_QTY"].ToString();
  704. }
  705. else
  706. {
  707. //非铁合金的入库量需要除以转换系数
  708. strDIFF_QTY = Math.Round(Convert.ToDouble(dr["RED_QTY"].ToString()) / Convert.ToDouble(ultraGrid2.ActiveRow.Cells["ITEM_UOM_CONEFFICIENT"].Text.Trim()), 4).ToString();//入库数量
  709. }
  710. alBaseParams = new ArrayList();
  711. alBaseParams.Add("4");//盘库类型代码 3红冲出库
  712. alBaseParams.Add("红冲出库");//盘库类型名称
  713. alBaseParams.Add("");//红冲原因代码
  714. alBaseParams.Add(dr["DEAL_REMARK"].ToString());//红冲原因名称
  715. alBaseParams.Add(dr["INV_POS_ID"].ToString());
  716. alBaseParams.Add(dr["INV_ID"].ToString());//库存记录号
  717. alBaseParams.Add(dr["IN_STOCK_NO"].ToString());//原出库或入库单号 IN_STOCK_NO
  718. alBaseParams.Add(dr["ORDER_ID"].ToString());
  719. alBaseParams.Add(dr["ORDER_LINE_SQE"].ToString());
  720. alBaseParams.Add(dr["SUPP_CODE"].ToString());
  721. alBaseParams.Add(dr["SUPP_NAME"].ToString());
  722. alBaseParams.Add(dr["INV_PHYSIC"].ToString());
  723. alBaseParams.Add(dr["INV_POS"].ToString());//库位
  724. alBaseParams.Add(dr["ITEM_UNIQUE"].ToString());
  725. alBaseParams.Add(dr["ITEM_CODE"].ToString());
  726. alBaseParams.Add(dr["ITEM_NAME"].ToString());
  727. alBaseParams.Add(dr["ITEM_UOM"].ToString());//采购单位
  728. alBaseParams.Add(dr["ITEM_UOM_CONEFFICIENT"].ToString());
  729. alBaseParams.Add(dr["WEIGHT_UNIT"].ToString());
  730. alBaseParams.Add(dr["BATCH_NO"].ToString());
  731. alBaseParams.Add(dr["START_QTY"].ToString());//数据库原始量
  732. alBaseParams.Add("");//采购量 BUY_QTY
  733. alBaseParams.Add("");//采购价格 BUY_PRICE
  734. alBaseParams.Add(dr["INV_QTY"].ToString());//库存数量
  735. alBaseParams.Add(dr["INV_PRICE"].ToString());//库存价格
  736. alBaseParams.Add(dr["INV_AMT"].ToString());
  737. alBaseParams.Add("");//盘点量 REAL_QTY
  738. alBaseParams.Add("");//盘点金额 REAL_AMT
  739. alBaseParams.Add(dr["RED_QTY"].ToString());//红冲量
  740. alBaseParams.Add(Convert.ToDouble(dr["INV_PRICE"].ToString()) * Convert.ToDouble(dr["RED_QTY"].ToString()));//红冲金额
  741. alBaseParams.Add("");//备注
  742. alBaseParams.Add(user);//创建人
  743. alBase.Add(alBaseParams);
  744. //改变库存量
  745. alCkParams = new ArrayList();
  746. alCkParams.Add(strDIFF_QTY);
  747. //alCkParams.Add(strDIFF_QTY);
  748. alCkParams.Add(dr["INV_POS_ID"].ToString());
  749. alCk.Add(alCkParams);
  750. alCkOutBillParams = new ArrayList();
  751. alCkOutBillParams.Add(dr["INV_ID"].ToString());
  752. alCkOutBillParams.Add(dr["STATUS"].ToString());//STATUS 3已结算
  753. alCkOutBillParams.Add(dr["MR_LINE_ID"].ToString());
  754. alCkOutBillParams.Add(dr["REFE_ID"].ToString());
  755. alCkOutBillParams.Add(dr["REF_TYPE"].ToString());
  756. alCkOutBillParams.Add(dr["DELIVER_SHEET_ID"].ToString());
  757. alCkOutBillParams.Add(dr["DELIVER_ADDRESS"].ToString());
  758. alCkOutBillParams.Add(dr["COST_CENTER"].ToString());//成本中心
  759. alCkOutBillParams.Add(dr["USE_ORG_ID"].ToString());
  760. alCkOutBillParams.Add(dr["USE_ORG_NAME"].ToString());
  761. alCkOutBillParams.Add(dr["INV_PHYSIC"].ToString());
  762. //alCkOutBillParams.Add(dr["INV_POS"].ToString());
  763. alCkOutBillParams.Add(dr["ITEM_UNIQUE"].ToString());
  764. alCkOutBillParams.Add("");//ITEM_UOM_ID
  765. alCkOutBillParams.Add("");//ITEM_ATTR_ID
  766. alCkOutBillParams.Add("");//ITEM_ATTR
  767. alCkOutBillParams.Add("");//ITEM_STANDARDS_ID
  768. alCkOutBillParams.Add("");//ITEM_STANDARDS_CODE
  769. alCkOutBillParams.Add(dr["ITEM_CODE"].ToString());//ITEM_CODE
  770. alCkOutBillParams.Add("");//ITEM_DESC
  771. alCkOutBillParams.Add("");//ITEM_DESC_E
  772. alCkOutBillParams.Add(dr["ITEM_NAME"].ToString());
  773. alCkOutBillParams.Add("");//ITEM_SPEC
  774. alCkOutBillParams.Add("");//ITEM_USE_UOM
  775. alCkOutBillParams.Add(dr["BATCH_NO"].ToString());
  776. alCkOutBillParams.Add(dr["ITEM_UOM"].ToString());
  777. alCkOutBillParams.Add(dr["ITEM_UOM_CONEFFICIENT"].ToString());
  778. alCkOutBillParams.Add(dr["WEIGHT_UNIT"].ToString());
  779. alCkOutBillParams.Add("7");//红冲出库
  780. alCkOutBillParams.Add("-" + strDIFF_QTY);//出库数量
  781. alCkOutBillParams.Add("-" + Math.Round(Convert.ToDouble(dr["INV_PRICE"].ToString()) * Convert.ToDouble(dr["RED_QTY"].ToString()) / Convert.ToDouble(dr["ITEM_UOM_CONEFFICIENT"].ToString()), 2));//入库金额
  782. alCkOutBillParams.Add("红冲出库");//备注
  783. alCkOutBillParams.Add("1");//VALIDFLAG
  784. alCkOutBillParams.Add(userId);
  785. alCkOutBillParams.Add(user);
  786. alCkOutBillParams.Add(dr["SUPP_CODE"].ToString());
  787. alCkOutBillParams.Add(dr["SUPP_NAME"].ToString());
  788. alCkOutBillParams.Add(dr["ORDER_ID"].ToString());
  789. alCkOutBillParams.Add(dr["ORDER_LINE_SQE"].ToString());
  790. alCkOutBillParams.Add(dr["BUY_PRICE"].ToString());
  791. alCkOutBillParams.Add(dr["BUG_PRICE"].ToString());
  792. alCkOutBill.Add(alCkOutBillParams);
  793. alCkOutBillPosParams = new ArrayList();
  794. alCkOutBillPosParams.Add(dr["INV_ID"].ToString());
  795. alCkOutBillPosParams.Add(dr["INV_POS_ID"].ToString());
  796. alCkOutBillPosParams.Add(dr["INV_PHYSIC"].ToString());
  797. alCkOutBillPosParams.Add(dr["INV_POS"].ToString());
  798. alCkOutBillPosParams.Add("-" + strDIFF_QTY);//入库数量
  799. alCkOutBillPosParams.Add("红冲出库");//备注
  800. alCkOutBillPosParams.Add("1");//VALIDFLAG
  801. alCkOutBillPosParams.Add(userId);
  802. alCkOutBillPosParams.Add(user);
  803. alCkOutBillPos.Add(alCkOutBillPosParams);
  804. }
  805. }
  806. if (alBase.Count == 0)
  807. {
  808. MessageUtil.ShowTips("已勾选数据请填写正确!");
  809. return;
  810. }
  811. all.Add(alBase);
  812. all.Add(alCk);
  813. //all.Add(alCkInBill);
  814. //all.Add(alCkInBillPos);
  815. all.Add(alCkOutBill);
  816. all.Add(alCkOutBillPos);
  817. PublicServer.SetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.ConfirmCkOutBillStoreRed",
  818. new Object[] { all, ultraGrid2.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim() }, ob);
  819. QueryCkOutBillRecord();
  820. MessageUtil.ShowTips("红冲成功!");
  821. }
  822. }
  823. catch (Exception e)
  824. {
  825. QueryCkOutBillRecord();
  826. MessageUtil.ShowWarning(e.Message);
  827. return;
  828. }
  829. }
  830. private string IsValid(DataTable dataTable)
  831. {
  832. foreach (DataRow dr in dataTable.Rows)
  833. {
  834. if (dr["RED_QTY"].ToString() == "")
  835. {
  836. return "红冲量不能为空!";
  837. }
  838. //else if (dr["DEAL_REMARK"].ToString() == "")
  839. //{
  840. // return "红冲原因不能为空!";
  841. //}
  842. }
  843. return "";
  844. }
  845. private void CancelCkOutInCarryRecord()
  846. {
  847. try
  848. {
  849. if (ultraTabControl1.SelectedTab.Index != 2)
  850. {
  851. MessageUtil.ShowTips("只有选择了红冲记录页才能进行取消红冲操作!");
  852. return;
  853. }
  854. if (ultraGrid3.ActiveRow == null || dataTable3.Rows.Count == 0)
  855. {
  856. MessageUtil.ShowTips("请选择一条记录进行取消红冲操作!");
  857. return;
  858. }
  859. if (MessageUtil.ShowYesNoAndQuestion("是否确认对此记录进行取消红冲?") == DialogResult.Yes)
  860. {
  861. //1.判定新入库或出库记录状态是否改变 2.如果改变则不允许取消红冲 3.如果没有改变则先把新入库或者出库记录置为无效,盘库记录置为无效,库存改变回来
  862. string userId = UserInfo.GetUserID();
  863. string user = UserInfo.GetUserName();
  864. ultraGrid3.UpdateData();
  865. DataRow[] arr = dataTable3.Select("CHK = 'True'");
  866. string strIN_STOCK_NO = ultraGrid3.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim();//原入库单号
  867. string strSTOCK_NO = ultraGrid3.ActiveRow.Cells["STOCK_NO"].Text.Trim();//新单号
  868. ArrayList all = new ArrayList();
  869. ArrayList all1 = new ArrayList();
  870. ArrayList all2 = new ArrayList();
  871. ArrayList all3 = new ArrayList();
  872. ArrayList alBase = new ArrayList();//盘盈盘亏记录表
  873. ArrayList alBaseParams = new ArrayList();
  874. ArrayList alCk = new ArrayList();//库存记录表
  875. ArrayList alCkParams = new ArrayList();
  876. ArrayList alCkInBill = new ArrayList();//入库记录表
  877. ArrayList alCkInBillParams = new ArrayList();
  878. ArrayList alCkInBillPos = new ArrayList();//入库记录表
  879. ArrayList alCkInBillPosParams = new ArrayList();
  880. ArrayList alCkOutBill = new ArrayList();//出库记录表
  881. ArrayList alCkOutBillParams = new ArrayList();
  882. ArrayList alCkOutBillPos = new ArrayList();//出库记录从表
  883. ArrayList alCkOutBillPosParams = new ArrayList();
  884. ArrayList alCkInBillTion = new ArrayList();
  885. ArrayList alCkInBillTionParams = new ArrayList();
  886. alBaseParams.Add(strSTOCK_NO);
  887. string inStockno = "";
  888. foreach (DataRow dr in arr)
  889. {
  890. string Stock_In = dr["STOCKTAKING_DOC"].ToString();
  891. string StockIn = dr["IN_STOCK_NO"].ToString();
  892. //查询原入库单号对应的入库记录号
  893. string invid = "";
  894. string Outinvid = "";
  895. DataTable dt = ServerHelper.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryInvid", new object[] { StockIn }, this.ob);
  896. if(dt.Rows.Count>0)
  897. {
  898. invid = dt.Rows[0]["INV_ID"].ToString();
  899. }
  900. DataTable dt1 = ServerHelper.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryOutInvid", new object[] { StockIn }, this.ob);
  901. if (dt1.Rows.Count > 0)
  902. {
  903. Outinvid = dt1.Rows[0]["INV_ID"].ToString();
  904. }
  905. alCkParams = new ArrayList();
  906. alCkParams.Add("0");
  907. alCkParams.Add(StockIn);
  908. alCk.Add(alCkParams);
  909. alCkInBillPosParams = new ArrayList();
  910. alCkInBillPosParams.Add(dr["RED_QTY"].ToString());
  911. alCkInBillPosParams.Add(StockIn);
  912. alCkInBillPosParams.Add(invid);
  913. alCkInBillPos.Add(alCkInBillPosParams);
  914. alCkOutBillPosParams = new ArrayList();
  915. alCkOutBillPosParams.Add(dr["RED_QTY"].ToString());
  916. alCkOutBillPosParams.Add(StockIn);
  917. alCkOutBillPosParams.Add(Outinvid);
  918. alCkOutBillPos.Add(alCkOutBillPosParams);
  919. alCkInBillParams = new ArrayList();
  920. alCkInBillParams.Add("0");
  921. alCkInBillParams.Add(dr["ORDER_LINE_SQE"].ToString());
  922. alCkInBillParams.Add("%_red");
  923. alCkInBillParams.Add(dr["STOCK_NO"].ToString());
  924. alCkInBill.Add(alCkInBillParams);
  925. alCkInBillTionParams = new ArrayList();
  926. alCkInBillTionParams.Add("0");
  927. alCkInBillTionParams.Add(userId);
  928. alCkInBillTionParams.Add(user);
  929. alCkInBillTionParams.Add(dr["STOCK_NO"].ToString());
  930. alCkInBillTion.Add(alCkInBillTionParams);
  931. }
  932. PublicServer.SetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.CancelCkOutInCarryRecord",
  933. new Object[] { alCk, alCkInBillPos, alCkOutBillPos, alCkInBill, alCkInBillTion }, ob);
  934. QueryCkStoreRedRecord();
  935. MessageUtil.ShowTips("取消红冲成功!");
  936. }
  937. }
  938. catch (Exception e)
  939. {
  940. //QueryCkStoreRedRecord();
  941. MessageUtil.ShowWarning(e.Message);
  942. return;
  943. }
  944. }
  945. //private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
  946. //{
  947. // if (ultraGrid1.ActiveRow.Cells["IS_RED"].Text.Trim() == "0")
  948. // {
  949. // QueryCkInBillRecordDetail();
  950. // }
  951. // else
  952. // {
  953. // QueryCkInBillRedRecordDetail();
  954. // }
  955. //}
  956. private void QueryCkInBillRecordDetail()
  957. {
  958. try
  959. {
  960. dataTable1_1.Rows.Clear();
  961. ultraGrid1.UpdateData();
  962. DataRow[] arr = dataTable1.Select("CHK = 'True'");
  963. ultraGrid1_1.UpdateData();
  964. DataRow[] arr1 = dataTable1_1.Select("CHK = 'True'");
  965. //ArrayList arrayList1 = new ArrayList();
  966. //ArrayList arrayList = new ArrayList();
  967. string arrayList1="";
  968. foreach (DataRow dr in arr)
  969. {
  970. //arrayList.Add(ultraGrid1.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim());
  971. //arrayList1.Add(dr["IN_STOCK_NO"].ToString());
  972. // arrayList1 +=dr["IN_STOCK_NO"].ToString()+"','";
  973. foreach (DataRow dr1 in arr1)
  974. {
  975. dr1["RED_QTY"] = dr1["BUY_QTY"].ToString();
  976. }
  977. }
  978. //if(arrayList1.Count<=0)
  979. //{
  980. // arrayList1.Add(ultraGrid1.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim());
  981. //}
  982. //arrayList.Add(arrayList1);
  983. //string arrayList = arrayList1.Substring(0, arrayList1.Length-3);
  984. if(arr.Length>0)
  985. {
  986. DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryCkInBillRecordDetail",
  987. new Object[] { arr.Select(a => a["IN_STOCK_NO"].ToString()).ToArray() }, ob);//
  988. if (dt == null || dt.Rows.Count == 0)
  989. {
  990. dataTable1_1.Rows.Clear();
  991. return;
  992. }
  993. GridHelper.CopyDataToDatatable(dt, dataTable1_1, true);//把dt复制给dataTable1
  994. }
  995. PublicPur.RefreshAndAutoSizeColumns(ultraGrid1_1, new string[] { "RED_QTY", "DEAL_REMARK" }, false);//刷新Grid
  996. }
  997. catch (Exception e)
  998. {
  999. MessageUtil.ShowWarning(e.Message);
  1000. return;
  1001. }
  1002. }
  1003. private void QueryCkInBillRedRecordDetail()
  1004. {
  1005. try
  1006. {
  1007. dataTable1_1.Rows.Clear();
  1008. ultraGrid1.UpdateData();
  1009. DataRow[] arr = dataTable1.Select("CHK = 'True'");
  1010. ultraGrid1_1.UpdateData();
  1011. DataRow[] arr1 = dataTable1_1.Select("CHK = 'True'");
  1012. foreach (DataRow dr in arr)
  1013. {
  1014. foreach (DataRow dr1 in arr1)
  1015. {
  1016. dr1["RED_QTY"] = dr1["BUY_QTY"].ToString();
  1017. }
  1018. }
  1019. ArrayList arrayList = new ArrayList();
  1020. arrayList.Add(ultraGrid1.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim());
  1021. DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryCkInBillRedRecordDetail",
  1022. new Object[] { arrayList }, ob);//
  1023. if (dt == null || dt.Rows.Count == 0)
  1024. {
  1025. return;
  1026. }
  1027. GridHelper.CopyDataToDatatable(dt, dataTable1_1, true);//把dt复制给dataTable1
  1028. PublicPur.RefreshAndAutoSizeColumns(ultraGrid1_1, new string[] { "RED_QTY", "DEAL_REMARK" }, false);//刷新Grid
  1029. ultraGrid1_1.Rows[0].Activation = Activation.ActivateOnly;//此行不可编辑
  1030. }
  1031. catch (Exception e)
  1032. {
  1033. MessageUtil.ShowWarning(e.Message);
  1034. return;
  1035. }
  1036. }
  1037. private void ultraGrid1_1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  1038. {
  1039. ultraGrid1_1.UpdateData();
  1040. //DataRow[] arr1 = dataTable1_1.Select("CHK = 'True'");
  1041. //foreach (DataRow dr in arr1)
  1042. //{
  1043. // dr["RED_QTY"] = dr["BUY_QTY"].ToString();
  1044. //}
  1045. if (e.Cell.Column.Key == "CHK")
  1046. {
  1047. PublicPur.GridEdite(ultraGrid1_1.ActiveRow);
  1048. }
  1049. else if (e.Cell.Column.Key == "RED_QTY")//DIFF_QTY
  1050. {
  1051. if (e.Cell.Value.ToString() != "")
  1052. {
  1053. if (!StringUtil.IsDouble(e.Cell.Value.ToString()))
  1054. {
  1055. MessageUtil.ShowTips("请输入数字类型!");
  1056. e.Cell.Value = "";
  1057. return;
  1058. }
  1059. if (Convert.ToDouble(e.Cell.Row.Cells["RED_QTY"].Value.ToString()) > Convert.ToDouble(e.Cell.Row.Cells["INV_QTY"].Text.Trim()))
  1060. {
  1061. MessageUtil.ShowTips("红冲量不能大于入库量!");
  1062. e.Cell.Value = "";
  1063. return;
  1064. }
  1065. //if (Convert.ToDouble(e.Cell.Row.Cells["RED_QTY"].Text.Trim()) > Convert.ToDouble(e.Cell.Row.Cells["STORE_QTY"].Text.Trim()))
  1066. //{
  1067. // MessageUtil.ShowTips("红冲量不能大于库存量!");
  1068. // e.Cell.Value = "";
  1069. // return;
  1070. //}
  1071. }
  1072. }
  1073. }
  1074. private void ultraGrid1_1_AfterRowActivate(object sender, EventArgs e)
  1075. {
  1076. ultraGrid1_1.UpdateData();
  1077. PublicPur.GridEdite(ultraGrid1_1.ActiveRow);
  1078. }
  1079. private void ultraGrid2_AfterRowActivate(object sender, EventArgs e)
  1080. {
  1081. if (ultraGrid2.ActiveRow.Cells["IS_RED"].Text.Trim() == "0")
  1082. {
  1083. QueryCkOutBillRecordDetail();
  1084. }
  1085. else
  1086. {
  1087. QueryCkOutBillRedRecordDetail();
  1088. }
  1089. }
  1090. private void QueryCkOutBillRecordDetail()
  1091. {
  1092. try
  1093. {
  1094. dataTable2_1.Rows.Clear();
  1095. ArrayList arrayList = new ArrayList();
  1096. arrayList.Add(ultraGrid2.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim());
  1097. DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryCkOutBillRecordDetail",
  1098. new Object[] { arrayList }, ob);//
  1099. if (dt == null || dt.Rows.Count == 0)
  1100. {
  1101. return;
  1102. }
  1103. GridHelper.CopyDataToDatatable(dt, dataTable2_1, true);//把dt复制给dataTable1
  1104. //GridHelper.RefreshAndAutoSize(ultraGrid2_1);
  1105. PublicPur.RefreshAndAutoSizeColumns(ultraGrid2_1, new string[] { "RED_QTY", "DEAL_REMARK" }, false);//刷新Grid
  1106. }
  1107. catch (Exception e)
  1108. {
  1109. MessageUtil.ShowWarning(e.Message);
  1110. return;
  1111. }
  1112. }
  1113. private void QueryCkOutBillRedRecordDetail()
  1114. {
  1115. try
  1116. {
  1117. dataTable2_1.Rows.Clear();
  1118. ArrayList arrayList = new ArrayList();
  1119. arrayList.Add(ultraGrid2.ActiveRow.Cells["IN_STOCK_NO"].Text.Trim());
  1120. DataTable dt = PublicServer.GetData("com.hnshituo.pur.ck.service.impl.FrmCkStoreRed.QueryCkOutBillRedRecordDetail",
  1121. new Object[] { arrayList }, ob);//
  1122. if (dt == null || dt.Rows.Count == 0)
  1123. {
  1124. return;
  1125. }
  1126. GridHelper.CopyDataToDatatable(dt, dataTable2_1, true);//把dt复制给dataTable1
  1127. //GridHelper.RefreshAndAutoSize(ultraGrid2_1);
  1128. PublicPur.RefreshAndAutoSizeColumns(ultraGrid2_1, new string[] { "RED_QTY", "DEAL_REMARK" }, false);//刷新Grid
  1129. ultraGrid2_1.Rows[0].Activation = Activation.ActivateOnly;//此行不可编辑
  1130. }
  1131. catch (Exception e)
  1132. {
  1133. MessageUtil.ShowWarning(e.Message);
  1134. return;
  1135. }
  1136. }
  1137. private void ultraGrid2_1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  1138. {
  1139. ultraGrid2_1.UpdateData();
  1140. if (e.Cell.Column.Key == "CHK")
  1141. {
  1142. PublicPur.GridEdite(ultraGrid2_1.ActiveRow);
  1143. }
  1144. else if (e.Cell.Column.Key == "RED_QTY")//DIFF_QTY
  1145. {
  1146. if (e.Cell.Value.ToString() != "")
  1147. {
  1148. if (!StringUtil.IsDouble(e.Cell.Value.ToString()))
  1149. {
  1150. MessageUtil.ShowTips("请输入数字类型!");
  1151. e.Cell.Value = "";
  1152. return;
  1153. }
  1154. if (Convert.ToDouble(e.Cell.Row.Cells["RED_QTY"].Value.ToString()) > Convert.ToDouble(e.Cell.Row.Cells["INV_QTY"].Text.Trim()))
  1155. {
  1156. MessageUtil.ShowTips("红冲量不能大于出库量!");
  1157. e.Cell.Value = "";
  1158. return;
  1159. }
  1160. }
  1161. }
  1162. }
  1163. private void chkORDER_LINE_SQE_CheckedChanged(object sender, EventArgs e)
  1164. {
  1165. ultraQueryORDER_LINE_SQE.Enabled = chkORDER_LINE_SQE.Checked;
  1166. }
  1167. private void chkSTOCK_NO_CheckedChanged(object sender, EventArgs e)
  1168. {
  1169. txtSTOCK_NO.Enabled = chkSTOCK_NO.Checked;
  1170. }
  1171. private void chkITEM_CODE_CheckedChanged(object sender, EventArgs e)
  1172. {
  1173. ultraQueryITEM_CODE.Enabled = chkITEM_CODE.Checked;
  1174. }
  1175. private void chkITEM_NAME_CheckedChanged(object sender, EventArgs e)
  1176. {
  1177. ultraQueryITEM_NAME.Enabled = chkITEM_NAME.Checked;
  1178. }
  1179. private void ultraGrid2_1_AfterRowActivate(object sender, EventArgs e)
  1180. {
  1181. ultraGrid2_1.UpdateData();
  1182. PublicPur.GridEdite(ultraGrid2_1.ActiveRow);
  1183. }
  1184. private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
  1185. {
  1186. if (ultraTabControl1.SelectedTab.Index == 0)
  1187. {
  1188. chkDate.Text = "入库时间";
  1189. chkSTOCK_NO.Text = "入库编号";
  1190. }
  1191. else if (ultraTabControl1.SelectedTab.Index == 1)
  1192. {
  1193. chkDate.Text = "出库时间";
  1194. chkSTOCK_NO.Text = "出库编号";
  1195. }
  1196. else if (ultraTabControl1.SelectedTab.Index == 2)
  1197. {
  1198. chkDate.Text = "红冲时间";
  1199. chkSTOCK_NO.Text = "红冲编号";
  1200. }
  1201. }
  1202. private void ultraGrid1_CellChange(object sender, CellEventArgs e)
  1203. {
  1204. if (ultraGrid1.ActiveRow.Cells["IS_RED"].Text.Trim() == "0")
  1205. {
  1206. QueryCkInBillRecordDetail();
  1207. }
  1208. else
  1209. {
  1210. QueryCkInBillRedRecordDetail();
  1211. }
  1212. //ultraGrid1.UpdateData();
  1213. //DataRow[] arr = dataTable1.Select("CHK = 'True'");
  1214. //ultraGrid1_1.UpdateData();
  1215. // DataRow[] arr1 = dataTable1_1.Select("CHK = 'True'");
  1216. //foreach (DataRow dr in arr)
  1217. //{
  1218. // foreach (DataRow dr1 in arr1)
  1219. // {
  1220. // dr1["RED_QTY"] = dr1["BUY_QTY"].ToString();
  1221. // }
  1222. //}
  1223. }
  1224. }
  1225. }