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 CoreFS.CA06;
using CoreFS.SA06;
using Infragistics.Win;
using Infragistics.Win.UltraWinGrid;
using Pur.configure;
using Pur.Entity;
using Pur.Entity.configureEntity;
using Pur.Entity.require_planEntiy;
using Pur.Pop_upWindow;
namespace Pur.require_plan
{
public partial class frmBenefitPlan : FrmPmsBase
{
//是否刷新
private string tips = "0";
//调整单位ID
private string cg_itemUomId = "";
public string Tips
{
get { return tips; }
set { tips = value; }
}
string basecode_pop = "";//物料分类编码
public frmBenefitPlan()
{
InitializeComponent();
}
public frmBenefitPlan(OpeBase OB)
{
this.ob = OB;
InitializeComponent();
}
private void frmBenefitPlan_Load(object sender, EventArgs e)
{
ultraExpandableGroupBox1.Expanded = false;
GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], "CHK","qtyPur","refuseReason");
GridHelper.SetExcludeColumnsActive(ultraGrid2.DisplayLayout.Bands[0], "CHK");
GridHelper.SetExcludeColumnsActive(ultraGrid3.DisplayLayout.Bands[0], "");
GridHelper.SetExcludeColumnsActive(ultraGrid4.DisplayLayout.Bands[0], "");
txt_Status.SelectedIndex = 3;
txt_UrgencyType.SelectedIndex = 0;
Ck_Ctime.Checked = false;
Ck_ptime.Checked = false;
txtMrPeriodStart.Enabled = false;
txtMrPeriodEnd.Enabled = false;
txtAuditedEnd.Enabled = false;
txtAuditedStart.Enabled = false;
txtMrPeriodStart.Value = DateTime.Now.AddMonths(-1).ToString();
txtMrPeriodEnd.Value = DateTime.Now.AddHours(23).ToString();
ck_Mtime.Checked = true;
cop_planMouthStart.Value = DateTime.Now.AddMonths(-2);
cop_planMouthEnd.Value = DateTime.Now < DateTime.Parse(DateTime.Now.ToString("yyyy/MM/26")) ? DateTime.Now: DateTime.Now.AddMonths(1);
String strYear = DateTime.Now.Year + "";
String strMouth = DateTime.Now.Month + "";
String strStart = strYear + "-" + strMouth + "-" + "20 00:00:00";
String strEnd = strYear + "-" + strMouth + "-" + "26 00:00:00";
txtAuditedStart.Value = Convert.ToDateTime(strStart);
txtAuditedEnd.Value = Convert.ToDateTime(strEnd);
ultraTabControl1.SelectedTab = ultraTabControl1.Tabs[0];
GetPUR_REQUIRE_PLAND();
}
#region toolbar工具栏
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "Query"://刷新数据
GetPUR_REQUIRE_PLAND();
break;
case "doChange":// 生成新采购计划
ChangePUR_REQUIRE_PLAND();
break;
case "doAdd"://添加到采购计划
addPUR_REQUIRE_PLAND();
break;
case "doReceive"://接收
ReceivePUR_REQUIRE_PLAND();
break;
case "cancelReceive"://取消接收
CancelPUR_REQUIRE_PLAND();
break;
case "doReject"://退回
RejectPUR_REQUIRE_PLAND();
break;
case "cancelBenefit"://取消利计划
cancelBenefit();
break;
case "doClose": // 关闭
this.Close();
break;
}
}
///
/// 添加到新的采购计划
///
private void addPUR_REQUIRE_PLAND()
{
ultraGrid2.UpdateData();
IQueryable checkRows = ultraGrid2.Rows.AsQueryable().Where("CHK = 'True' ");
if (checkRows.Count() == 0)
{
Core.Mes.Client.Comm.Tool.MessageUtil.ShowWarning("未勾需求信息!");
return;
}
ArrayList list = new ArrayList();
foreach (UltraGridRow uRows in checkRows)
{
RequirePlanD ReqPD = new RequirePlanD();
ReqPD.MrLineId = uRows.Cells["id"].Value.ToString();
list.Add(ReqPD.MrLineId);
}
frmPopAddReceive FPRD = new frmPopAddReceive(this.ob, list);
FPRD.ShowDialog();
if (FPRD.tips == "1")
{
tips = "1";
GetPUR_REQUIRE_PLAND();
return;
}
}
///
/// 调整
///
private void ChangePUR_REQUIRE_PLAND()
{
ultraGrid2.UpdateData();
IQueryable checkRows = ultraGrid2.Rows.AsQueryable().Where("CHK = 'True' ");
if (checkRows.Count() == 0)
{
Core.Mes.Client.Comm.Tool.MessageUtil.ShowWarning("未勾需求信息!");
return;
}
ArrayList list = new ArrayList();
foreach (UltraGridRow uRows in checkRows)
{
RequirePlanD ReqPD = new RequirePlanD();
ReqPD.MrLineId = uRows.Cells["id"].Value.ToString();
list.Add(ReqPD.MrLineId);
}
FrmPurRePlanChangeNew FPRD = new FrmPurRePlanChangeNew(this.ob, list);
FPRD.ShowDialog();
if (FPRD.Tips == "1")
{
tips = "1";
GetPUR_REQUIRE_PLAND();
return;
}
}
///
/// 接收需求计划行
///
private void ReceivePUR_REQUIRE_PLAND()
{
try
{
ultraGrid1.UpdateData();
IQueryable checkRows = ultraGrid1.Rows.AsQueryable().Where(a => a.GetValue("CHK") == "True" && a.GetValue("qtyPur") != "" && double.Parse(a.GetValue("qtyPur")) > 0);
//IQueryable checkRows = ultraGrid1.Rows.AsQueryable().Where("CHK = 'True' ");
if (checkRows.Count() == 0)
{
MessageUtil.ShowWarning("未勾需求计划行信息或未输入有效的核准量!");
return;
}
ArrayList list = new ArrayList();
foreach (UltraGridRow uRows in checkRows)
{
RequirePlanD ReqPD = new RequirePlanD();
ReqPD.MrLineId = uRows.Cells["mrLineId"].Value.ToString();
ReqPD.QtyPur = Convert.ToDouble(uRows.Cells["qtyPur"].Value);
ReqPD.Qty = Convert.ToDouble(uRows.Cells["qty"].Value);
String strReason = uRows.GetCellValue("refuseReason").ToString().Trim();
if (ReqPD.Qty > ReqPD.QtyPur)
{
if (String.IsNullOrEmpty(strReason))
{
MessageUtil.ShowTips("若您部分核准物料:" + uRows.GetCellValue("itemName") + "的需求量,需填写减量的【处理意见】");
comm.doActiveSelRow(ultraGrid1, "mrLineId", ReqPD.MrLineId);
return;
}
ReqPD.RefuseReason = "【减量】" + strReason;
}
else if (ReqPD.Qty == ReqPD.QtyPur)
{
ReqPD.RefuseReason = strReason;
}
else
{
MessageUtil.ShowTips("物料:" + uRows.GetCellValue("itemName") + "的核准的需求量不能大于需求量");
comm.doActiveSelRow(ultraGrid1, "mrLineId", ReqPD.MrLineId);
return;
}
ReqPD.ItemUomId = uRows.Cells["itemUomId"].Value.ToString();
ReqPD.ItemUnique = uRows.Cells["itemUnique"].Value.ToString();
if(string.IsNullOrEmpty(ReqPD.ItemUomId))
{
MessageUtil.ShowTips("未获取物料:" + uRows.GetCellValue("itemName") + "采购单位编码");
comm.doActiveSelRow(ultraGrid1, "mrLineId", ReqPD.MrLineId);
return;
}
if (string.IsNullOrEmpty(ReqPD.ItemUnique))
{
MessageUtil.ShowTips("未获取物料:" + uRows.GetCellValue("itemName") + "采购单位编码");
comm.doActiveSelRow(ultraGrid1, "mrLineId", ReqPD.MrLineId);
return;
}
ReqPD.CreateUserid = UserInfo.GetUserID();
ReqPD.CreateTime = DateTime.Now;
ReqPD.CreateName = UserInfo.GetUserName();
list.Add(ReqPD);
}
if (MessageUtil.ShowYesNoAndQuestion("确定接收?") == DialogResult.No)
{
return;
}
CoreResult re = this.execute("com.hnshituo.pur.requireplan.service.RequirePlanDService", "doReceive", new object[] { list, "1" });
if (re.Resultcode == 0)
{
MessageUtil.ShowTips("接收成功");
GetPUR_REQUIRE_PLAND();
return;
}
else
{
MessageUtil.ShowTips("操作失败:" + re.Resultmsg);
return;
}
}
catch (Exception ex)
{
MessageUtil.ShowTips("操作失败:" + ex);
}
}
///
/// 取消利计划
///
private void cancelBenefit()
{
try
{
if (ultraGrid4.ActiveRow == null)
{
MessageUtil.ShowTips("请选择撤销利计划的拆分需求计划行!");
return;
}
UltraGridRow rowP = ultraGrid4.ActiveRow;
String strMrLineId = rowP.GetCellValue("mrlineid").ToString().Trim();
String strItemUnique = rowP.GetCellValue("itemUnique").ToString().Trim();
string strId = rowP.GetCellValue("id").ToString().Trim();
if (testStatus(strMrLineId, 3) == false)
{
return;
}
ArrayList list = new ArrayList();
//减少接收表数据
//插入接收表数据
//更新需求计划行行状态
RequireReceive rr = new RequireReceive();
rr.Id = rowP.GetCellValue("id").ToString().Trim();
rr.MrLineId = strMrLineId;
rr.PurLineId = rowP.GetCellValue("mrLineId").ToString().Trim();
//rr.Qty = Convert.ToDouble(uRows.GetCellValue("QTYLJHTemp"));
rr.CreateUserid = UserInfo.GetUserID();
rr.CreateTime = DateTime.Now;
rr.CreateName = UserInfo.GetUserName();
list.Add(rr);
if (MessageUtil.ShowYesNoAndQuestion("确定对需求计划行:" + strMrLineId + "进行撤销利计划操作?") != DialogResult.Yes)
{
return;
}
CoreResult re = this.execute("com.hnshituo.pur.requireplan.service.RequireReceiveService", "doBenefit", new object[] { list, "2" });
if (re.Resultcode == 0)
{
MessageUtil.ShowTips("撤销成功!");
}
else
{
MessageUtil.ShowTips("操作失败:" + re.Resultmsg + "!");
return;
}
}
catch (Exception ex)
{
MessageUtil.ShowTips("操作失败:" + ex.Message + "!");
}
}
///
/// 取消接收
///
private void CancelPUR_REQUIRE_PLAND()
{
try
{
ultraGrid2.UpdateData();
IQueryable checkRows = ultraGrid2.Rows.AsQueryable().Where("CHK = 'True' ");
if (checkRows.Count() == 0)
{
MessageUtil.ShowWarning("未勾选需取消接收的需求计划行!");
return;
}
ArrayList list = new ArrayList();
foreach (UltraGridRow uRows in checkRows)
{
RequirePlanD ReqPD = new RequirePlanD();
ReqPD.MrLineId = uRows.Cells["mrlineId"].Value.ToString();
if (testStatus(ReqPD.MrLineId, 1) == false)
{
return;
}
//ReqPD.FlagGeneratedPurPlan = "1";//原则上只允许状态为1/2的才能转3
ReqPD.CreateUserid = UserInfo.GetUserID();
ReqPD.CreateTime = DateTime.Now;
ReqPD.CreateName = UserInfo.GetUserName();
list.Add(ReqPD);
}
if (MessageUtil.ShowYesNoAndQuestion("确定取消接收?") == DialogResult.No)
{
return;
}
CoreResult re = this.execute("com.hnshituo.pur.requireplan.service.RequirePlanDService", "doReceive", new object[] { list, "2" });
if (re.Resultcode == 0)
{
MessageUtil.ShowTips("取消成功");
GetPUR_REQUIRE_PLAND();
return;
}
else
{
MessageUtil.ShowTips("操作失败:" + re.Resultmsg);
return;
}
}
catch (Exception ex)
{
MessageUtil.ShowTips("操作失败:" + ex.Message);
}
}
///
/// 退回需求计划行
///
private void RejectPUR_REQUIRE_PLAND()
{
try
{
ultraGrid1.UpdateData();
IQueryable checkRows = ultraGrid1.Rows.AsQueryable().Where("CHK = 'True' ");
if (checkRows.Count() == 0)
{
MessageUtil.ShowWarning("未勾选需要接收的需求计划行!");
return;
}
ArrayList list = new ArrayList();
foreach (UltraGridRow uRows in checkRows)
{
RequirePlanD ReqPD = new RequirePlanD();
ReqPD.MrLineId = uRows.Cells["mrLineId"].Value.ToString();
ReqPD.FlagGeneratedPurPlan = "3";//原则上只允许状态为1/2的才能转3
String strReason = uRows.GetCellValue("refuseReason").ToString().Trim();
if (String.IsNullOrEmpty(strReason))
{
MessageUtil.ShowTips("若您退回物料:" + uRows.GetCellValue("itemName") + "的需求,需填写您的【处理意见】");
comm.doActiveSelRow(ultraGrid1,"mrLineId", ReqPD.MrLineId);
return;
}
ReqPD.RefuseReason = "【退回】"+strReason;
list.Add(ReqPD);
}
frmRequireReturnPop frm1 = new frmRequireReturnPop();
frm1.ShowDialog();
if (frm1.tips!="1")
{
return;
}
if (String.IsNullOrEmpty(frm1.status))
{
MessageUtil.ShowTips("请选择处理方式");
return;
}
foreach (RequirePlanD ReqPD1 in list)
{
ReqPD1.IsAllowReturn = frm1.status;
if (frm1.status == "1")
{
ReqPD1.RefuseReason = "【允许修改返回】" + ReqPD1.RefuseReason;
}
}
CoreResult re = this.execute("com.hnshituo.pur.requireplan.service.RequirePlanDService", "doReceive", new object[] { list, "3" });
if (re.Resultcode == 0)
{
MessageUtil.ShowTips("退回成功");
GetPUR_REQUIRE_PLAND();
return;
}
else
{
MessageUtil.ShowTips("操作失败:" + re.Resultmsg);
return;
}
}
catch (Exception ex)
{
MessageUtil.ShowTips("操作失败:" + ex);
}
}
///
/// 查询
///
private void GetPUR_REQUIRE_PLAND()
{
try
{
this.Cursor = Cursors.WaitCursor;
string adm = CoreUserInfo.UserInfo.GetUserID();
Dictionary ReqPnew = getQueryCondition(adm);
if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0])
{
dataSet1.Clear();
dataSet2.Clear();
//审批未接收源需求计划
ReqPnew.Add("statusCol", "1");//未接收
DataTable dt1 = this.execute("com.hnshituo.pur.requireplan.service.RequirePlanDService", "get_RePDM", new object[] { ReqPnew });
foreach (DataRow row in dt1.Rows)
{
row["qtypur"] = row["qty"];
row["itemDescE"] = Convert.ToDateTime(row["itemDescE"]).ToString("yyyy/MM");
}
GridHelper.CopyDataToDatatable(dt1, dataTable1, true);
GridHelper.RefreshAndAutoSize(ultraGrid1);
//利计划计划
ReqPnew["rStatus"] = "1";
ReqPnew["lineSeq"] = "1";//非分拆开数据
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, dataTable4, true);
//已处理数据
ReqPnew["rStatus"] = "2";
ReqPnew["lineSeq"] = "2";//分拆开数据
DataTable dt10 = this.execute("com.hnshituo.pur.requireplan.service.RequireReceiveService", "get_canUse", new object[] { ReqPnew });
if (dt2.Rows.Count <= 0)
{
dt10.Clear();
}
else
{
for (int j = dt10.Rows.Count - 1; j >= 0; j--)
{
dt10.Rows[j]["itemDescE"] = Convert.ToDateTime(dt10.Rows[j]["itemDescE"]).ToString("yyyy/MM");
String strMrLineId = dt10.Rows[j]["mrLineId"].ToString().Trim();
DataRow[] rowss = dt2.Select("mrLineId='" + strMrLineId + "'");
if (rowss.Count() <= 0)
{
dt10.Rows.RemoveAt(j);
}
}
}
GridHelper.CopyDataToDatatable(dt10, dataTable6, true);
GridHelper.RefreshAndAutoSize(ultraGrid2);
}
else
{
dataSet3.Clear();
dataSet4.Clear();
//审批已接收源需求计划
ReqPnew["statusCol"] = "2";//已接收(2已接收 4已编制)
DataTable dt7 = this.execute("com.hnshituo.pur.requireplan.service.RequirePlanDService", "get_RePDM", new object[] { ReqPnew });
foreach (DataRow row in dt7.Rows)
{
row["itemDescE"] = Convert.ToDateTime(row["itemDescE"]).ToString("yyyy/MM");
}
GridHelper.CopyDataToDatatable(dt7, dataTable2, true);
GridHelper.RefreshAndAutoSize(ultraGrid3);
}
}
catch (Exception ex)
{
MessageUtil.ShowTips("加载数据失败:" + ex);
}
finally
{
this.Cursor = Cursors.Default;
}
}
#endregion
#region 界面函数
///
/// 校验状态
///
///
///
///
private bool testStatus(string mrlineId, int p2)//校验状态
{
if (String.IsNullOrEmpty(mrlineId))
{
MessageUtil.ShowTips("为获取到需求计划行号!");
return false;
}
if (p2 == 1)
{
RequireReceive rr = new RequireReceive();
rr.MrLineId = mrlineId;
rr.Validflag = "1";
DataTable dt2 = this.execute("com.hnshituo.pur.requireplan.service.RequireReceiveService", "find", new object[] { rr,0,0});
if (dt2.Rows.Count == 0)
{
MessageUtil.ShowTips("需求计划行:" + mrlineId + "已退回或已删除!");
comm.doActiveSelRow(ultraGrid2, "mrlineId", mrlineId);
return false;
}
if (dt2.Rows.Count > 1)
{
MessageUtil.ShowTips("需求计划行:" + mrlineId + "已利计划,请先撤销利计划再操作!");
comm.doActiveSelRow(ultraGrid2, "mrlineId", mrlineId);
return false;
}
if (dt2.Rows[0]["status"].ToString().Trim() == "2")
{
MessageUtil.ShowTips("需求计划行:" + mrlineId + "已编制汇总,请先撤销编制汇总再操作!");
comm.doActiveSelRow(ultraGrid2, "mrlineId", mrlineId);
return false;
}
}
//是否可以利计划判断
else if (p2 == 2)
{
RequireReceive rr = new RequireReceive();
rr.MrLineId = mrlineId;
rr.Purtype = "1";//编制类型
rr.Validflag = "1";//有效数据
List listR = this.execute>("com.hnshituo.pur.requireplan.service.RequireReceiveService", "find", new object[] { rr,0,0});
if (listR.Count() == 0)
{
MessageUtil.ShowTips("未发现接收需求计划行:" + mrlineId+"信息记录,可能已被删除或退回,或请刷新重新操作!");
return false;
}
else if (listR.Count() > 1)
{
MessageUtil.ShowTips("接收需求计划行:" + mrlineId + "数据异常,或请刷新重新操作!");
return false;
}
else
{
rr = listR[0];
if (rr.Status == "2")
{
MessageUtil.ShowTips("该接收需求计划行:" + mrlineId+"已编制汇总!");
return false;
}
if (rr.Qty <= 0)
{
MessageUtil.ShowTips("该接收需求计划行:" + mrlineId + "剩余最大可利计划量【"+rr.Qty+rr.ItemUom+"】!");
return false;
}
}
}
//是否可以利计划判断
else if (p2 == 3)
{
RequireReceive rr = new RequireReceive();
rr.MrLineId = mrlineId;
rr.Purtype = "1";//编制类型
rr.Validflag = "1";//有效数据
List listR = this.execute>("com.hnshituo.pur.requireplan.service.RequireReceiveService", "find", new object[] { rr, 0, 0 });
if (listR.Count() == 0)
{
MessageUtil.ShowTips("未发现接收需求计划行:" + mrlineId + "信息记录,可能已被删除或退回,或请刷新重新操作!");
return false;
}
else if (listR.Count() > 1)
{
MessageUtil.ShowTips("接收需求计划行:" + mrlineId + "数据异常,或请刷新重新操作!");
return false;
}
else
{
rr = listR[0];
if (rr.Status == "2")
{
MessageUtil.ShowTips("该接收需求计划行:" + mrlineId + "已编制汇总!");
return false;
}
}
}
else
{
MessageUtil.ShowTips("未知验证参数!");
return false;
}
return true;
}
///
/// 获取查询条件
///
///
///
private Dictionary getQueryCondition(string adm)
{
Dictionary ReqPnew = new Dictionary();
if (Ck_Ctime.Checked)
{
if (txtMrPeriodStart.Text != "")
{
DateTime Start = Convert.ToDateTime(txtMrPeriodStart.Value);
ReqPnew.Add("createTimeStart", Start);
}
if (txtMrPeriodEnd.Text != "")
{
DateTime End = Convert.ToDateTime(txtMrPeriodEnd.Value);
ReqPnew.Add("createTimeEnd", End);
}
}
if (Ck_ptime.Checked)
{
if (txtAuditedStart.Text != "")
{
DateTime Start1 = Convert.ToDateTime(txtAuditedStart.Value);
ReqPnew.Add("auditedTimeStart", Start1);
}
if (txtAuditedEnd.Text != "")
{
DateTime End1 = Convert.ToDateTime(txtAuditedEnd.Value);
ReqPnew.Add("auditedTimeEnd", End1);
}
}
//计划时间
if (ck_Mtime.Checked == true)
{
if (cop_planMouthStart.Text != "")
{
DateTime Start1 = DateTime.Parse(Convert.ToDateTime(cop_planMouthStart.Value).ToString("yyyy/MM"));
ReqPnew.Add("mrPeriodStart", Start1);
}
if (cop_planMouthEnd.Text != "")
{
DateTime End1 = DateTime.Parse(Convert.ToDateTime(cop_planMouthEnd.Value).ToString("yyyy/MM"));
ReqPnew.Add("mrPeriodEnd", End1);
}
}
ReqPnew.Add("mStatus", txt_Status.Value == null ? "" : txt_Status.Value.ToString().Trim());
ReqPnew.Add("urgencyType", txt_UrgencyType.Value == null ? "" : txt_UrgencyType.Value.ToString().Trim());
ReqPnew.Add("mrId", txt_MrId.Text.Trim());
ReqPnew.Add("itemCode", txt_ItemCode.Text.Trim());
ReqPnew.Add("itemName", txt_ItemName.Text.Trim());
ReqPnew.Add("baseCode", basecode_pop);
ReqPnew.Add("buyerUnitDesc", adm);
ReqPnew.Add("style", "1");//仅查有效数据
return ReqPnew;
}
#endregion
#region 界面事件
private void Ck_Ctime_CheckedChanged(object sender, EventArgs e)
{
txtMrPeriodStart.Enabled = Ck_Ctime.Checked;
txtMrPeriodEnd.Enabled = Ck_Ctime.Checked;
}
private void Ck_ptime_CheckedChanged(object sender, EventArgs e)
{
txtAuditedEnd.Enabled = Ck_ptime.Checked;
txtAuditedStart.Enabled = Ck_ptime.Checked;
}
///
/// 物料大类弹窗
///
///
///
private void txt_itemClass_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)// 物料大类弹窗
{
FrmMatClassPop_ups PopMat = new FrmMatClassPop_ups(this.ob);
PopMat.ShowDialog();
if (PopMat.Basecode == null)
return;
txt_itemClass.Text = PopMat.Basename;
basecode_pop = PopMat.Basecode;
}
private void ultraGrid1_CellChange(object sender, CellEventArgs e)
{
if (e.Cell.Column.Key.Equals("qtyPur"))
{
object oldv = e.Cell.Row.Cells["qtyPur"].Value;
ultraGrid1.UpdateData();
object newv = e.Cell.Row.Cells["qtyPur"].Value;
double reqty = Convert.ToDouble(e.Cell.Row.Cells["qty"].Value);
if (newv != DBNull.Value)
{
if (Convert.ToDouble(newv) > reqty)
{
e.Cell.Row.Cells["qtyPur"].Value = oldv;
return;
}
}
}
}
//查询筛选后待编制需求计划行
private void btn_queryDate_Click(object sender, EventArgs e)
{
dataSet2.Clear();
try
{
string adm = CoreUserInfo.UserInfo.GetUserID();
Dictionary ReqPnew = getQueryCondition(adm);
ReqPnew["rStatus"] = "1";
ReqPnew["lineSeq"] = "1";//非分拆开数据
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");
}
ReqPnew["rStatus"] = "2";
ReqPnew["lineSeq"] = "2";//分拆开数据
DataTable dt10 = this.execute("com.hnshituo.pur.requireplan.service.RequireReceiveService", "get_canUse", new object[] { ReqPnew });
if (dt2.Rows.Count <= 0)
{
dt10.Clear();
}
else
{
for (int j = dt10.Rows.Count - 1; j >= 0; j--)
{
dt10.Rows[j]["itemDescE"] = Convert.ToDateTime(dt10.Rows[j]["itemDescE"]).ToString("yyyy/MM");
String strMrLineId = dt10.Rows[j]["mrLineId"].ToString().Trim();
DataRow[] rowss = dt2.Select("mrLineId='" + strMrLineId + "'");
if (rowss.Count() <= 0)
{
dt10.Rows.RemoveAt(j);
}
}
}
if (ck_isShowLi.Checked)
{
for (int j = dt2.Rows.Count - 1; j >= 0; j--)
{
if (dt10.Rows.Count > 0)
{
String strMrLineId = dt2.Rows[j]["mrLineId"].ToString().Trim();
foreach (DataRow rows in dt10.Rows)
{
if (rows["mrLineId"].ToString().Trim() == strMrLineId)
{
}
else
{
dt2.Rows.RemoveAt(j);
}
}
}
else
{
dt2.Rows.RemoveAt(j);
}
}
}
GridHelper.CopyDataToDatatable(dt2, dataTable4, true);
GridHelper.CopyDataToDatatable(dt10, dataTable6, true);
}
catch (Exception ex)
{
MessageUtil.ShowTips("加载数据失败:" + ex);
}
}
//查询拆分需求计划行
private void ultraGrid3_ClickCell(object sender, ClickCellEventArgs e)
{
String strmrLineId = e.Cell.Row.GetCellValue("mrLineId").ToString().Trim();
if (String.IsNullOrEmpty(strmrLineId))
{
return;
}
Dictionary ReqPnew = new Dictionary();
ReqPnew["mrLineId"] = strmrLineId;
ReqPnew["style"] = "1";//有效数据
DataTable dt3 = this.execute("com.hnshituo.pur.requireplan.service.RequireReceiveService", "get_canUse", new object[] { ReqPnew });
GridHelper.CopyDataToDatatable(dt3, dataTable3, true);
GridHelper.RefreshAndAutoSize(ultraGrid4);
}
private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
{
if (e.Tab.TabControl.SelectedTab.Key.Equals("0"))
{
//if (toolMenu.Toolbars[0].Tools.Exists("doQuery")) { toolMenu.Toolbars[0].Tools["doQuery"].InstanceProps.Visible = DefaultableBoolean.True; }
//if (toolMenu.Toolbars[0].Tools.Exists("doCreate")) { toolMenu.Toolbars[0].Tools["doCreate"].InstanceProps.Visible = DefaultableBoolean.False; }
//if (toolMenu.Toolbars[0].Tools.Exists("cancelCreate")) { toolMenu.Toolbars[0].Tools["cancelCreate"].InstanceProps.Visible = DefaultableBoolean.True; }
//if (toolMenu.Toolbars[0].Tools.Exists("doExcel")) { toolMenu.Toolbars[0].Tools["doExcel"].InstanceProps.Visible = DefaultableBoolean.True; }
//if (toolMenu.Toolbars[0].Tools.Exists("doExit")) { toolMenu.Toolbars[0].Tools["doExit"].InstanceProps.Visible = DefaultableBoolean.True; }
this.ToolBarItemEnable(this, "doReceive", true);
this.ToolBarItemEnable(this, "doReject", true);
this.ToolBarItemEnable(this, "cancelReceive", true);
this.ToolBarItemEnable(this, "doChange", true);
this.ToolBarItemEnable(this, "cancelBenefit", false);
}
else
{
//if (toolMenu.Toolbars[0].Tools.Exists("doQuery")) { toolMenu.Toolbars[0].Tools["doQuery"].InstanceProps.Visible = DefaultableBoolean.True; }
//if (toolMenu.Toolbars[0].Tools.Exists("doCreate")) { toolMenu.Toolbars[0].Tools["doCreate"].InstanceProps.Visible = DefaultableBoolean.True; }
//if (toolMenu.Toolbars[0].Tools.Exists("cancelCreate")) { toolMenu.Toolbars[0].Tools["cancelCreate"].InstanceProps.Visible = DefaultableBoolean.False; }
//if (toolMenu.Toolbars[0].Tools.Exists("doExcel")) { toolMenu.Toolbars[0].Tools["doExcel"].InstanceProps.Visible = DefaultableBoolean.False; }
//if (toolMenu.Toolbars[0].Tools.Exists("doExit")) { toolMenu.Toolbars[0].Tools["doExit"].InstanceProps.Visible = DefaultableBoolean.True; }
this.ToolBarItemEnable(this, "doReceive", false);
this.ToolBarItemEnable(this, "doReject", false);
this.ToolBarItemEnable(this, "cancelReceive", false);
this.ToolBarItemEnable(this, "doChange", false);
this.ToolBarItemEnable(this, "cancelBenefit", true);
}
}
private void ck_Mtime_CheckedChanged(object sender, EventArgs e)
{
cop_planMouthStart.Enabled = ck_Mtime.Checked;
cop_planMouthEnd.Enabled = ck_Mtime.Checked;
}
#endregion
private void ultraGrid1_ClickCell(object sender, ClickCellEventArgs e)
{
if (ultraExpandableGroupBox1.Expanded)
{
//加载单位
String strItemCode = e.Cell.Row.GetCellValue("itemCode").ToString().Trim();
if (String.IsNullOrEmpty(strItemCode))
{
return;
}
cg_itemName.Text = e.Cell.Row.GetCellValue("itemName").ToString().Trim();
cg_itemUom.Text = e.Cell.Row.GetCellValue("itemUom").ToString().Trim();
cg_Qty.Value = e.Cell.Row.GetCellValue("qty");
cg_weightUnit.Text = e.Cell.Row.GetCellValue("weightUnit").ToString().Trim();
cg_itemUomId = e.Cell.Row.GetCellValue("itemUomId").ToString().Trim();
cg_conf.Text = e.Cell.Row.GetCellValue("itemUomConefficient").ToString().Trim();
getMatUOM(strItemCode);
cg_itemUom.Value = cg_itemUomId;
}
}
// 获取单位转换
private void getMatUOM(String strItemCode)
{
if (!string.IsNullOrEmpty(strItemCode))
{
PurMatUomsEntity MatUomsEntity = new PurMatUomsEntity();
MatUomsEntity.ItemCode = strItemCode;
MatUomsEntity.Validflag = "1";
DataTable dt_matUOM = this.execute("com.hnshituo.pur.configure.service.MatUomsService", "find", new object[] { MatUomsEntity, 0, 0 });
cg_itemUom.DataSource = dt_matUOM;
cg_itemUom.ValueMember = "itemUomId";
cg_itemUom.DisplayMember = "uomName";
}
}
//选择单位
private void cg_itemUom_ValueChanged(object sender, EventArgs e)
{
//获取改变之前的转化系数
if (cg_itemUom.SelectedIndex==-1)
{
return;
}
if (String.IsNullOrEmpty(cg_conf.Text.Trim()))
{
return;
}
double oldCon = Convert.ToDouble(cg_conf.Text);
cg_itemUomId = cg_itemUom.Value.ToString().Trim();
//需改变数量
PurMatUomsEntity dt_matUOM = this.execute("com.hnshituo.pur.configure.service.MatUomsService", "findById", new object[] { cg_itemUomId });
if (dt_matUOM == null)
{
return;
}
double newCon = (double)dt_matUOM.ItemUomConefficient;
double oldQtyPur = Convert.ToDouble(cg_Qty.Value);
double newQtyPur = 0;
if (oldCon != newCon)
{
newQtyPur = oldQtyPur * oldCon / newCon;
cg_Qty.Value = newQtyPur;
cg_conf.Text = newCon+"";
}
cg_weightUnit.Text = dt_matUOM.WeightUnit;
cg_conf.Text = newCon + "";
}
//写到行信息里面
private void btn_cg_Click(object sender, EventArgs e)
{
if (ultraGrid1.ActiveRow == null)
{
return;
}
UltraGridRow uge = ultraGrid1.ActiveRow;
String strItemUomId = uge.GetCellValue("itemUomId").ToString().Trim();
if (String.IsNullOrEmpty(strItemUomId))
{
MessageUtil.ShowTips("无法获取行单位ID");
return;
}
if (String.IsNullOrEmpty(cg_itemUomId))
{
MessageUtil.ShowTips("请先选择采购单位");
cg_itemUom.Focus();
return;
}
if (cg_itemUomId == strItemUomId)
{
MessageUtil.ShowTips("未发现可调整项");
cg_itemUom.Focus();
return;
}
if (MessageUtil.ShowYesNoAndQuestion("确定调整该需求行物料:" + uge.GetCellValue("itemName")) != DialogResult.Yes)
{
return;
}
uge.Cells["itemUomId"].Value = cg_itemUomId;//记录新的单位换算ID
uge.Cells["itemUnique"].Value = uge.GetCellValue("itemCode").ToString().Trim() + "@" + uge.GetCellValue("itemAttrId").ToString().Trim() + "@" + uge.GetCellValue("itemStandardsId").ToString().Trim() + "@" + cg_itemUomId;
uge.Cells["qty"].Value = cg_Qty.Value;
uge.Cells["weightUnit"].Value = cg_weightUnit.Text.Trim();
uge.Cells["itemUom"].Value = cg_itemUom.Text.Trim();
uge.Cells["itemUomConefficient"].Value = cg_conf.Text.Trim();
uge.Cells["refuseReason"].Value = "【调整】采购单位调整";
ultraGrid1.UpdateData();
MessageUtil.ShowTips("已修改");
//清空
cg_itemName.Clear();
cg_itemUom.SelectedIndex = -1;
cg_itemUomId = "";
cg_weightUnit.Clear();
cg_conf.Clear();
}
}
}