using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using com.hnshituo.pur.vo; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Tool; using Infragistics.Win.UltraWinGrid; using Pur.configure; using Pur.Entity; using Pur.Entity.ck; using Pur.Entity.configureEntity; using Pur.PublicTools; namespace Pur.require_plan { public partial class FrmPurInstockRequireChangeNew : FrmPmsBase { String strCoustomInfo = ""; String strTType = "1"; string strGType = "3"; public FrmPurInstockRequireChangeNew() { InitializeComponent(); this.IsLoadUserView = true; } private void FrmPurInstockRequireChangeNew_Load(object sender, EventArgs e) { strCoustomInfo = this.CustomInfo == null ? "" : this.CustomInfo.ToString(); txt_g_qty.Enabled = false; chkDate.Checked = false; txt_date_yueBegin.Enabled = false; txt_date_yueBegin.Value = DateTime.Now; txt_date_yueEnd.Enabled = false; txt_date_yueEnd.Value = DateTime.Now; txt_createTM_be_re.Enabled = true; txt_createTM_be_re.Value = DateTime.Now.AddMonths(-2); txt_createTM_end_re.Enabled = true; txt_createTM_end_re.Value = DateTime.Now.AddDays(2); ck_ctime_re.Checked = true; txt_createTimeE.Enabled = true; txt_createTimeS.Enabled = true; txt_createTimeE.Value = System.DateTime.Now; txt_createTimeS.Value = DateTime.Now.AddMonths(-1); ck_ctime.Checked = true; if (strCoustomInfo == "lk") { strTType = "2"; strGType = "4"; btn_gua.Text = "利库挂单"; btn_release.Text = "利库脱单"; } GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], new string[] { }); GridHelper.SetExcludeColumnsActive(ultraGrid4.DisplayLayout.Bands[0], new string[] { }); GridHelper.SetExcludeColumnsActive(ultraGrid3.DisplayLayout.Bands[0], new string[] { "CHK", "releaseQty" }); GridHelper.SetExcludeColumnsActive(ultraGrid2.DisplayLayout.Bands[0], new string[] { "createQty" }); getDropDownList(); } #region toolbar public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": GetPUR_CK_STORAGE(""); break; case "CancelReleaseQty": CancelReleaseQty(); break; case "doExcel": doExcel(); break; } } /// /// 查询库存 /// private void GetPUR_CK_STORAGE(string strInvid) { try { this.Cursor = Cursors.WaitCursor; //查询库存 if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0]) { dataTable1.Rows.Clear(); dataTable3.Rows.Clear(); CkStorage CkSto = new CkStorage(); CkSto.InvId = txt_InvId.Text.Trim(); CkSto.ItemCode = txt_itemCode.Text.Trim(); CkSto.ItemName = txt_itemName.Text.Trim(); if (txt_invPhysic.SelectedIndex != -1 && txt_invPhysic.SelectedIndex != 0) { CkSto.DeleteUserid = txt_invPhysic.Text.Trim(); } CkSto.SuppName = txt_suppName.Text.Trim(); CkSto.PurLineId = txt_purLineId.Text.Trim(); if (ck_ctime.Checked) { if (!string.IsNullOrEmpty(txt_createTimeS.Text)) { CkSto.CreateTime = Convert.ToDateTime(txt_createTimeS.Value); } if (!string.IsNullOrEmpty(txt_createTimeE.Text)) { CkSto.UpdateTime = Convert.ToDateTime(txt_createTimeE.Value).AddDays(1); } } DataTable dt = this.execute("com.hnshituo.pur.ck.service.CkStorageService", "findUsageStorage", new object[] { CkSto }); GridHelper.CopyDataToDatatable(dt, dataTable1, true); GridHelper.RefreshAndAutoSize(ultraGrid1); if (!String.IsNullOrEmpty(strInvid)) { PublicTools.publicPms.doActiveSelRow(ultraGrid1, "INVID", strInvid); } } else { //查询脱挂单记录 record.Clear(); dataTable6.Clear(); dataTable7.Clear(); RequireReleaseInstockqty release = new RequireReleaseInstockqty(); release.ItemCode = txt_itemCode_re.Text.Trim(); release.ItemName = txt_itemName_re.Text.Trim(); if (ck_ctime_re.Checked) { if (!string.IsNullOrEmpty(txt_createTM_be_re.Text)) { release.CreateTime = Convert.ToDateTime(txt_createTM_be_re.Value); } if (!string.IsNullOrEmpty(txt_createTM_end_re.Text)) { release.DeleteTime = Convert.ToDateTime(txt_createTM_end_re.Value).AddDays(1); } } if (txt_releaseType.SelectedIndex != -1) { release.ReleaseType = txt_releaseType.Value.ToString().Trim(); } DataTable dt1 = this.execute("com.hnshituo.pur.requireplan.service.RequireReleaseInstockqtyService", "doQuery_List", new object[] { release }); GridHelper.CopyDataToDatatable(dt1, dataTable4, true); GridHelper.RefreshAndAutoSize(ultraGrid4); } } catch (Exception e) { MessageUtil.ShowTips("查询数据失败:" + e.Message); } finally { this.Cursor = Cursors.Default; } } /// /// 导出Excel /// private void doExcel() { try { if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0]) { this.Cursor = Cursors.WaitCursor; ArrayList alUltraGrid = new ArrayList(); alUltraGrid.Add(ultraGrid1); alUltraGrid.Add(ultraGrid2); ArrayList alSheeft = new ArrayList(); alSheeft.Add("可挂单(利库)库存数据"); alSheeft.Add("可挂单(利库)采购计划数据"); if (ultraGrid1.Rows.Count > 0) { GridHelper.ulGridToExcel(alUltraGrid, alSheeft, "可挂单库存数据");//导出excel } } else { this.Cursor = Cursors.WaitCursor; ArrayList alUltraGrid = new ArrayList(); alUltraGrid.Add(ultraGrid4); ArrayList alSheeft = new ArrayList(); alSheeft.Add("脱挂单(利库)历史数据"); if (ultraGrid4.Rows.Count > 0) { GridHelper.ulGridToExcel(alUltraGrid, alSheeft, "脱挂单(利库)历史数据");//导出excel } } } catch (Exception e) { MessageUtil.ShowTips("导出失败" + e.Message); } finally { this.Cursor = Cursors.Default; } } /// /// 取消挂单 /// private void CancelReleaseQty() { UltraGridRow uge = ultraGrid4.ActiveRow; if (uge == null) { MessageUtil.ShowTips("请选择脱单或者挂单记录进行操作"); return; } String strTid = uge.GetCellValue("TID").ToString().Trim(); if (String.IsNullOrEmpty(strTid)) { MessageUtil.ShowTips("单号不能为空"); return; } if (MessageUtil.ShowYesNoAndQuestion("确定取消?") != DialogResult.Yes) { return; } RequireReleaseInstockqty release = new RequireReleaseInstockqty(); release.DeleteName = UserInfo.GetUserName(); release.DeleteUserid = UserInfo.GetUserID(); release.DeleteTime = DateTime.Now; release.Tid = strTid; CoreResult crt = this.execute("com.hnshituo.pur.requireplan.service.RequireReleaseInstockqtyService", "cancelReleaseQty", new object[] { release }); if (crt.Resultcode == 0) { MessageUtil.ShowTips("操作成功"); GetPUR_CK_STORAGE(""); } else { MessageUtil.ShowTips("操作失败:" + crt.Resultmsg); } } #endregion #region 公共函数 /// /// 初始化drop /// private void getDropDownList() { //txt_type.SelectedIndex = 0; PhysicSeatEntity Phouse = new PhysicSeatEntity(); Phouse.Validflag = "1"; Phouse.DeleteUserid = "1"; DataTable dt3 = this.execute("com.hnshituo.pur.configure.service.ActualSeatService", "getActualSeat", new object[] { Phouse, 0, 0 }); publicPms.FilComboboxAdd(txt_invPhysic, dt3, "INVPHYSIC", "INVPHYSICNAME", "", true, "/", ""); txt_invPhysic.SelectedIndex = 0; } /// /// 获取库存占用表可脱单信息 /// /// private void getUseDetail(string strInvId) { PurCkStorageUseEntity use = new PurCkStorageUseEntity(); use.InvId = strInvId; if (strCoustomInfo == "lk") { use.DeleteName = "lk"; } DataTable dt1 = this.execute("com.hnshituo.pur.ck.service.CkStorageUseService", "getCanRealse", new object[] { use }); GridHelper.CopyDataToDatatable(dt1, dataTable5, true); GridHelper.RefreshAndAutoSize(ultraGrid3); } /// /// 获取可调整的需求计划信息 /// private void getPurPlanDDetail(String strItemCode) { String strPurlineid = ultraGrid1.ActiveRow.GetCellValue("purLineId").ToString(); EntityPurPlanD pur = new EntityPurPlanD(); //获取通知单行号 DateTime End1 = new DateTime(); DateTime End2 = new DateTime(); if (chkDate.Checked) { if (txt_date_yueBegin.Value == null) { MessageUtil.ShowTips("请输入计划月份(起)"); return; } End1 = DateTime.Parse(Convert.ToDateTime(txt_date_yueBegin.Value).ToString("yyyy/MM")); pur.CreateTime = End1; if (txt_date_yueEnd.Value == null) { MessageUtil.ShowTips("请输入计划月份(止)"); return; } End2 = DateTime.Parse(Convert.ToDateTime(txt_date_yueEnd.Value).ToString("yyyy/MM")); pur.UpdateTime = End2; } if (String.IsNullOrEmpty(strItemCode)) { MessageUtil.ShowTips("物料编号为空"); return; } pur.DeleteName = txt_selectDeptId.Text.Trim(); pur.Remark = "1";//挂单查询 pur.UpdateUserid = strItemCode; if (strCoustomInfo == "lk") { pur.UpdateName = "lk"; } else { pur.UpdateName = "gd"; } DataTable dt1 = this.execute("com.hnshituo.pur.purplan.service.PurPlanDService", "getPlanD", new object[] { pur }); GridHelper.CopyDataToDatatable(dt1, dataTable3, true); foreach (UltraGridRow row in ultraGrid2.Rows) { row.Cells["createQty"].Value = row.GetCellValue("pickQty"); String strPurLineId2=row.GetCellValue("MRLINEID").ToString().Trim(); if (strPurLineId2 == strPurlineid) { row.Hidden = true; } } GridHelper.RefreshAndAutoSize(ultraGrid2); } #endregion #region 界面事件 private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { purPlanD.Clear(); useage.Clear(); UltraGridRow uge = ultraGrid1.ActiveRow; if (uge == null) { MessageUtil.ShowTips("请选择库存记录进行操作"); return; } String strInvId = uge.GetCellValue("InvId").ToString().Trim(); if (String.IsNullOrEmpty(strInvId)) { MessageUtil.ShowTips("库存记录号为空"); return; } double dbGDQty = 0;//无主需求量 double dbTDQty = 0;//无主需求量 if (uge.GetCellValue("itemUom").ToString() == "基吨") { //double.TryParse(uge.GetCellValue("INVQTYWEIGHT").ToString().Trim(), out dbSQty);//基吨的只能利库存数量 //double.TryParse(uge.GetCellValue("normalQtyWeight").ToString().Trim(), out dbGQty);//基吨的只能利库存数量 double.TryParse(uge.GetCellValue("unNormalQtyWeight").ToString().Trim(), out dbGDQty);//基吨的只能利库存数量 double.TryParse(uge.GetCellValue("normalQtyWeight").ToString().Trim(), out dbTDQty);//基吨的只能利库存数量 } else { //double.TryParse(uge.GetCellValue("INVQTY").ToString().Trim(), out dbSQty); //double.TryParse(uge.GetCellValue("normalQty").ToString().Trim(), out dbGQty); double.TryParse(uge.GetCellValue("unNormalQty").ToString().Trim(), out dbGDQty); double.TryParse(uge.GetCellValue("normalQty").ToString().Trim(), out dbTDQty); } txt_g_qty.Value = dbGDQty; txt_t_qty.Value = dbTDQty; String strItemCode = ultraGrid1.ActiveRow.GetCellValue("itemCode").ToString().Trim(); getPurPlanDDetail(strItemCode); getUseDetail(strInvId); } private void ultraGrid4_AfterRowActivate(object sender, EventArgs e) { dataTable6.Clear(); dataTable7.Clear(); UltraGridRow row = ultraGrid4.ActiveRow; if (row == null) { return; } String strTid = row.GetCellValue("TID").ToString(); RequireReleaseD release = new RequireReleaseD(); release.Tid = strTid; DataTable dt2 = this.execute("com.hnshituo.pur.requireplan.service.RequireReleaseDService", "doQuery_List", new object[] { release }); GridHelper.CopyDataToDatatable(dt2, dataTable6, true); GridHelper.RefreshAndAutoSize(ultraGrid5); RequireReleaseInv releaseInv = new RequireReleaseInv(); releaseInv.Tid = strTid; DataTable dt3 = this.execute("com.hnshituo.pur.requireplan.service.RequireReleaseInvService", "doQuery_List", new object[] { releaseInv }); GridHelper.CopyDataToDatatable(dt3, dataTable7, true); GridHelper.RefreshAndAutoSize(ultraGrid6); } private void ultraGrid2_AfterRowActivate(object sender, EventArgs e) { dataTable3.Clear(); String strMRLINEID = ultraGrid2.ActiveRow.GetCellValue("MRLINEID").ToString().Trim(); if (String.IsNullOrEmpty(strMRLINEID)) { return; } Dictionary ReqPnew = new Dictionary(); ReqPnew["purLineId"] = strMRLINEID; DataTable dt2 = this.execute("com.hnshituo.pur.requireplan.service.RequireReceiveService", "get_canUse", new object[] { ReqPnew }); foreach (DataRow row in dt2.Rows) { row["itemDescE"] = Convert.ToDateTime(row["itemDescE"]).ToString("yyyy/MM"); } GridHelper.CopyDataToDatatable(dt2, dataTable3, true); GridHelper.RefreshAndAutoSize(ultraGrid3); } private void chkDate_CheckedChanged(object sender, EventArgs e) { txt_date_yueEnd.Enabled = chkDate.Checked; txt_date_yueBegin.Enabled = chkDate.Checked; } private void txt_selectDept_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { frmdepartment frm = new frmdepartment(this.ob); // frm.StartPosition = FormStartPosition.Manual; // frm.Location = publicPms.getShowLocation(frm); frm.ShowDialog(); String strdeptId = frm.BuyerUnitCode; String strDeptName = frm.Fulltext; //txt_selectDept.Text = strDeptName; //txt_selectDeptId.Text = strdeptId; } private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0]) { this.ToolBarItemEnable(this, "CancelReleaseQty", false); } else { this.ToolBarItemEnable(this, "CancelReleaseQty", true); } } private void ck_ctime_re_CheckedChanged(object sender, EventArgs e) { txt_createTM_be_re.Enabled = ck_ctime_re.Checked; txt_createTM_end_re.Enabled = ck_ctime_re.Checked; } private void ck_ctime_CheckedChanged(object sender, EventArgs e) { txt_createTimeE.Enabled = ck_ctime.Checked; txt_createTimeS.Enabled = ck_ctime.Checked; } #endregion #region 脱单行按钮 private void btn_release_Click(object sender, EventArgs e) { if (ultraGrid1.ActiveRow == null) { MessageUtil.ShowTips("请选择待脱单的库存记录"); return; } UltraGridRow row = ultraGrid1.ActiveRow; String strPurLineId = row.GetCellValue("purLineId").ToString().Trim(); String strInvId = row.GetCellValue("invId").ToString().Trim(); if (String.IsNullOrEmpty(strPurLineId)) { MessageUtil.ShowTips("选择的库存记录采购计划号为空"); return; } double dbTQty = 0; ArrayList list = new ArrayList(); IQueryable checkRows = ultraGrid3.Rows.AsQueryable().Where(a => a.GetValue("CHK") == "True"); //("CHK = 'True' and QTYLJHTemp='0'"); if (checkRows.Count() <= 0) { MessageUtil.ShowTips("请选择需求计划行"); return; } foreach (UltraGridRow uRows in checkRows) { if (Convert.ToBoolean(uRows.GetCellValue("CHK")) == true) { RequireReleaseD reqD = new RequireReleaseD(); reqD.ReceiveId = uRows.GetCellValue("REFEID").ToString().Trim(); reqD.UseId = uRows.GetCellValue("ID").ToString().Trim(); if (String.IsNullOrEmpty(reqD.ReceiveId)) { MessageUtil.ShowTips("选择的可脱需求计划接收号不能为空"); return; } if (String.IsNullOrEmpty(reqD.UseId)) { MessageUtil.ShowTips("选择的可脱需求计划的占用编号不能为空"); return; } double releaseQty = 0; double.TryParse(uRows.GetCellValue("releaseQty").ToString().Trim(), out releaseQty); if (releaseQty <= 0) { MessageUtil.ShowTips("选择的可脱需求计划的脱单量需大于0"); return; } reqD.Qty = releaseQty; dbTQty = dbTQty + releaseQty; list.Add(reqD); } } RequireReleaseInstockqty release = new RequireReleaseInstockqty(); release.CreateName = UserInfo.GetUserName(); release.CreateUserId = UserInfo.GetUserID(); release.CreateTime = DateTime.Now; release.ReleaseQty = dbTQty; release.PurLineId = strPurLineId; release.InvId = strInvId; release.ReleaseType = strTType;//正常脱单 release.CreateName = UserInfo.GetUserName(); release.CreateTime = DateTime.Now; release.CreateUserId = UserInfo.GetUserID(); if (MessageUtil.ShowYesNoAndQuestion("确定对该采购计划脱单操作?") != DialogResult.Yes) { return; } CoreResult crt = this.execute("com.hnshituo.pur.requireplan.service.RequireReleaseInstockqtyService", "doReleaseQty", new object[] { list, release }); if (crt.Resultcode == 0) { MessageUtil.ShowTips("操作成功"); GetPUR_CK_STORAGE(strInvId); } else { MessageUtil.ShowTips("操作失败:" + crt.Resultmsg); } } #endregion #region 挂单行按钮 private void btn_query_Click(object sender, EventArgs e) { UltraGridRow uge = ultraGrid1.ActiveRow; if (uge == null) { MessageUtil.ShowTips("请选择库存记录进行操作"); return; } String strItemCode = uge.GetCellValue("itemCode").ToString().Trim(); getPurPlanDDetail(strItemCode); } private void btn_gua_Click(object sender, EventArgs e) { UltraGridRow uge = ultraGrid1.ActiveRow; if (uge == null) { MessageUtil.ShowTips("请选择库存记录进行操作"); return; } String strInvIdOld = uge.GetCellValue("invId").ToString().Trim(); //String strItemCode = uge.GetCellValue("itemCode").ToString().Trim(); if (string.IsNullOrEmpty(strInvIdOld)) { MessageUtil.ShowTips("库存记录号为空"); return; } double dbGQtyAll = 0; if (uge.GetCellValue("itemUom").ToString() == "基吨") { double.TryParse(uge.GetCellValue("unNormalQtyWeight").ToString().Trim(), out dbGQtyAll); } else { double.TryParse(uge.GetCellValue("unNormalQty").ToString().Trim(), out dbGQtyAll); } if (dbGQtyAll <= 0) { MessageUtil.ShowTips("最大可挂量需大于0"); return; } UltraGridRow row = ultraGrid2.ActiveRow; if (row == null) { MessageUtil.ShowTips("请选择待挂单的采购计划行"); return; } String StrPurLineId = row.GetCellValue("mrLineId").ToString().Trim(); if (string.IsNullOrEmpty(StrPurLineId)) { MessageUtil.ShowTips("采购计划行号为空"); return; } double dbGQty = 0; double.TryParse(row.GetCellValue("createQty").ToString().Trim(), out dbGQty); if (dbGQty <= 0) { MessageUtil.ShowTips("编制的挂单量需大于0"); return; } if (dbGQty > dbGQtyAll) { MessageUtil.ShowTips("编制的挂单量需不能大于最大可挂单量"); return; } FrmPurInstockRequireChangePop frm = new FrmPurInstockRequireChangePop(this.ob,strInvIdOld, StrPurLineId, dbGQty,strGType); frm.ShowDialog(); if (frm.strTips == "1") { GetPUR_CK_STORAGE(strInvIdOld); } } #endregion } }