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
}
}