using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CoreFS.CA06;
using Core.Mes.Client.Comm.Tool;
using com.steering.pss.plnsaleord.order.model;
using System.Collections;
using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Server;
using Infragistics.Win.UltraWinGrid;
using Core.Mes.Client.Comm;
using Infragistics.Win;
namespace Core.StlMes.Client.PlnSaleOrd
{
public partial class ComPlnJGDJDeal : UserControl
{
int inNum = 0;
public OpeBase _ob = null;
public ComPlnJGDJDeal()
{
InitializeComponent();
Init();
}
///
/// 初始化
///
public void Init()
{
EntityHelper.ShowGridCaption(ultraGridSaleOrder.DisplayLayout.Bands[0]);
EntityHelper.ShowGridCaption(ultraGridBl.DisplayLayout.Bands[0]);
comOrdJGDJPanel1.ctrlForQueryPORDERSTATUS.SelectedIndex = 0;
ultraGridSaleOrder.DisplayLayout.Bands[0].Columns["BlGroupNum"].EditorComponent = ultraFileLook;
ultraGridSaleOrder.DisplayLayout.Bands[0].Columns["BlGroupNum"].ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always;
PlanComm.setGridActivation(this.ultraGridSaleOrder.DisplayLayout.Bands[0], "CHC");
PlanComm.setGridActivation(this.ultraGridBl.DisplayLayout.Bands[0], "CHC", "Aimwallthick", "Lengthmax", "Lengthmin", "Aimlength", "JgblReqNum");
PlanComm.setGridActivation(this.ultraGridJgOrd.DisplayLayout.Bands[0], "CHC");
PlanComm.setGridDigitalCol(ultraGridSaleOrder.DisplayLayout.Bands[0], 7, 3,
"OrderQty", "Orderweight", "Planweight", "Paydownweight",
"ReqQtysum", "ConfirmWtSum", "PaydownWtMin", "PaydownWtMax");
PlanComm.setGridDigitalCol(ultraGridSaleOrder.DisplayLayout.Bands[0], 7, 2,
"Totlength", "TotlengthM");
PlanComm.setGridDigitalCol(ultraGridSaleOrder.DisplayLayout.Bands[0], 5, 2,
"Outdiameter", "Wallthick", "Lengthmax", "Lengthmin", "LenToendMin",
"LenToendMax", "LengthJg", "HeightOrdMax", "HeightOrdMin");
PlanComm.setGridDigitalCol(ultraGridSaleOrder.DisplayLayout.Bands[0], 5, 0,
"Ordernum", "PaydownNum");
PlanComm.setGridDigitalCol(ultraGridSaleOrder.DisplayLayout.Bands[0], 3, 6, "WeightPerM");
PlanComm.setGridSummarySet(ultraGridSaleOrder, 3, "OrderQty", "Orderweight", "Planweight",
"ReqQtysum", "ConfirmWtSum", "PaydownWtMin", "PaydownWtMax", "Paydownweight");
PlanComm.setGridSummarySet(ultraGridSaleOrder, 2, "TotlengthM");
PlanComm.setGridSummarySet(ultraGridSaleOrder, 0, "Ordernum", "PaydownNum", "TotlengthM");
PlanComm.setGridDigitalCol(ultraGridJgOrd.DisplayLayout.Bands[0], 5, 2,
"MIN_D_JG", "MAX_D_JG", "DIAMETER_JG", "LENGTH_JG",
"HEIGHT_JG", "WEIGHT_JG", "MIN_D", "MIN_H", "DIAMETER",
"DIAMETER_PL", "HEIGHT_PL", "LENGTH_MIN", "LENGTH_MAX",
"MIN_H_CP", "MAX_H_CP", "MIN_D_CP", "MAX_D_CP", "CHECK_J_VAL");
PlanComm.setGridDigitalCol(ultraGridBl.DisplayLayout.Bands[0], 5, 2,
"Outdiameter", "Wallthick", "Aimwallthick", "Lengthmax", "Lengthmin",
"Aimlength", "GetrateDj", "DimaterYlg", "HeightYlg");
PlanComm.setGridDigitalCol(ultraGridBl.DisplayLayout.Bands[0], 7, 3,
"Singleweight", "JgblReqWeight", "Matchweight", "PlanWeight", "JgcutplanWt");
PlanComm.setGridDigitalCol(ultraGridBl.DisplayLayout.Bands[0], 5, 0,
"JgblReqNum", "Matchnum", "JgcutplanNum");
}
///
/// 获取查询条件信息
///
/// 查询条件信息
public ArrayList GetQueryCondition()
{
ArrayList ary = new ArrayList();
string strRollmonth = "";
string strAcceptNo = "";//接收批次号
string strOrderNo = ""; //合同号
string strOrderStatus = ""; //合同状态
string haveJg = ""; //是否有接箍
string haveDj = ""; //是否有短节
if (comOrdJGDJPanel1.checkBoxHvJg.Checked)
{
haveJg = "1";
}
if (comOrdJGDJPanel1.checkBoxHvDj.Checked)
{
haveDj = "1";
}
if (comOrdJGDJPanel1.checkBoxAcceptNo.Checked)
{
strAcceptNo = comOrdJGDJPanel1.ultraTextEditorAcceptNo.Text.Trim();
}
if (comOrdJGDJPanel1.checkBoxForReqPORDERSTATUS.Checked)
{
strOrderStatus = comOrdJGDJPanel1.ctrlForQueryPORDERSTATUS.Value.ToString();
}
if (comOrdJGDJPanel1.checkBoxForReqORDER_NO.Checked)
{
strOrderNo = comOrdJGDJPanel1.ctrlForQueryORDER_NO.Text.Trim();
}
if (comOrdJGDJPanel1.checkBoxRollMonth.Checked)
{
strRollmonth = comOrdJGDJPanel1.ultraDateTimeRollMonth.DateTime.ToString("yyyy-MM");
}
ary.Add(strRollmonth);
ary.Add(strAcceptNo);
ary.Add(strOrderNo);
ary.Add(strOrderStatus);
ary.Add(haveJg);
ary.Add(haveJg);
ary.Add(haveDj);
ary.Add(haveDj);
return ary;
}
///
/// 根据信息栏查询
///
/// 查询条件信息
public void DoQuery(ArrayList ary)
{
if (ary == null)
{
return;
}
bindingSourceSaleOrd.DataSource = EntityHelper.GetData
("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.querySaleOrder",
new object[] { ary }, _ob);
DoQueryDjBl(ary);
DoQueryJgOrd(ary);
}
///
/// 短节备料查询
///
///
public void DoQueryDjBl(ArrayList ary)
{
if (ary == null)
{
return;
}
bindingSourceBlOrd.DataSource = EntityHelper.GetData
("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.queryDjBlNeed",
new object[] { ary }, _ob);
foreach (UltraGridRow item in ultraGridBl.Rows)
{
if (item.Cells["Planstatus"].Text.Equals("待处理"))
{
//控制壁厚
item.Cells["Aimwallthick"].Appearance.BackColor = Color.FromArgb(255, 255, 192);
item.Cells["Aimwallthick"].Appearance.BackHatchStyle = BackHatchStyle.None;
item.Cells["Aimwallthick"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
//最大长度
item.Cells["Lengthmax"].Appearance.BackColor = Color.FromArgb(255, 255, 192);
item.Cells["Lengthmax"].Appearance.BackHatchStyle = BackHatchStyle.None;
item.Cells["Lengthmax"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
//最小长度
item.Cells["Lengthmin"].Appearance.BackColor = Color.FromArgb(255, 255, 192);
item.Cells["Lengthmin"].Appearance.BackHatchStyle = BackHatchStyle.None;
item.Cells["Lengthmin"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
//控制长度
item.Cells["Aimlength"].Appearance.BackColor = Color.FromArgb(255, 255, 192);
item.Cells["Aimlength"].Appearance.BackHatchStyle = BackHatchStyle.None;
item.Cells["Aimlength"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
//备料需求支数
item.Cells["JgblReqNum"].Appearance.BackColor = Color.FromArgb(255, 255, 192);
item.Cells["JgblReqNum"].Appearance.BackHatchStyle = BackHatchStyle.None;
item.Cells["JgblReqNum"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
}
else
{
//控制壁厚
item.Cells["Aimwallthick"].Appearance.BackColor = Color.Transparent;
item.Cells["Aimwallthick"].Appearance.BackHatchStyle = BackHatchStyle.Default;
item.Cells["Aimwallthick"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
//最大长度
item.Cells["Lengthmax"].Appearance.BackColor = Color.Transparent;
item.Cells["Lengthmax"].Appearance.BackHatchStyle = BackHatchStyle.Default;
item.Cells["Lengthmax"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
//最小长度
item.Cells["Lengthmin"].Appearance.BackColor = Color.Transparent;
item.Cells["Lengthmin"].Appearance.BackHatchStyle = BackHatchStyle.Default;
item.Cells["Lengthmin"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
//控制长度
item.Cells["Aimlength"].Appearance.BackColor = Color.Transparent;
item.Cells["Aimlength"].Appearance.BackHatchStyle = BackHatchStyle.Default;
item.Cells["Aimlength"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
//备料需求支数
item.Cells["JgblReqNum"].Appearance.BackColor = Color.Transparent;
item.Cells["JgblReqNum"].Appearance.BackHatchStyle = BackHatchStyle.Default;
item.Cells["JgblReqNum"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
}
}
}
///
/// 修改短节备料需求
///
public void DoUpdateDjBl()
{
int intUpdate = 0;
ultraGridBl.UpdateData();
IQueryable checkRows = ultraGridBl.Rows.AsQueryable().Where("CHC = 'True'");
if (checkRows.Count() == 0)
{
MessageUtil.ShowTips("请勾选短节备料需求!!");
return;
}
string time = DateTime.Now.ToString();
ArrayList list1 = new ArrayList();
foreach (UltraGridRow item in checkRows)
{
if (item.Cells["Planstatus"].Text.Equals("待处理"))
{
intUpdate += 1;
ArrayList list = new ArrayList();
list.Add(item.Cells["Aimwallthick"].Value.ToString());
list.Add(item.Cells["Lengthmax"].Value.ToString());
list.Add(item.Cells["Lengthmin"].Value.ToString());
list.Add(item.Cells["Aimlength"].Value.ToString());
list.Add(item.Cells["JgblReqNum"].Value.ToString());
list.Add(item.Cells["ReqBlId"].Value.ToString());
list.Add(item.Cells["Outdiameter"].Value.ToString());
list.Add(CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName());
list.Add(time);
list1.Add(list);
}
}
if (intUpdate == 0)
{
MessageUtil.ShowTips("请勾选计划状态为【待处理】的短节备料需求!");
return;
}
PlanComm.WaitFromOpen(this.Cursor);
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal";
ccp.MethodName = "doUpdateDjBl";
ccp.ServerParams = new object[] { list1};
ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
PlanComm.WaitFromColse(this.Cursor);
if (ccp == null)
{
MessageUtil.ShowError("服务端处理失败!");
return;
}
if (ccp.ReturnCode < 0)
{
MessageUtil.ShowError("服务端处理失败!\n" + ccp.ReturnInfo);
return;
}
if (ccp.ReturnCode!=-1)
{
MessageUtil.ShowTips(ccp.ReturnInfo.ToString());
if (ccp.ReturnInfo.Equals("修改短节备料需求成功!"))
{
DoQueryDjBl(GetQueryCondition());
}
}
}
///
/// 接箍合同查询
///
///
public void DoQueryJgOrd(ArrayList ary)
{
if (ary == null)
{
return;
}
DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.queryJgOrder",
new object[] { ary }, _ob);
GridHelper.CopyDataToDatatable(dt, dataTable2, true);
}
///
/// 接箍处理
///
public void DoProcessJg()
{
ultraGridSaleOrder.UpdateData();
IQueryable checkRows = ultraGridSaleOrder.Rows.AsQueryable().Where("CHC = 'True'");
if (checkRows.Count() == 0)
{
MessageUtil.ShowTips("未勾选合同!");
return;
}
PlanComm.WaitFromOpen(this.Cursor);
ArrayList list = new ArrayList();
foreach (UltraGridRow uRow in checkRows)
{
list.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
}
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal";
ccp.MethodName = "tranSactionJg";
ccp.ServerParams = new object[] { list, CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName() };
ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
PlanComm.WaitFromColse(this.Cursor);
if (ccp == null)
{
MessageUtil.ShowError("服务端处理失败!");
return;
}
if (ccp.ReturnCode < 0)
{
MessageUtil.ShowError("服务端处理失败!\n" + ccp.ReturnInfo);
return;
}
if (ccp.ReturnObject != null)
{
MessageUtil.ShowTips(ccp.ReturnObject.ToString());
DoQuery(GetQueryCondition());
}
}
///
/// 撤消接箍处理
///
public void DoCancelJg()
{
ultraGridSaleOrder.UpdateData();
IQueryable checkRows = ultraGridSaleOrder.Rows.AsQueryable().Where("CHC = 'True'");
if (checkRows.Count() == 0)
{
MessageUtil.ShowTips("未勾选合同!");
return;
}
PlanComm.WaitFromOpen(this.Cursor);
ArrayList list = new ArrayList();
foreach (UltraGridRow uRow in checkRows)
{
list.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
}
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal";
ccp.MethodName = "cancelJg";
ccp.ServerParams = new object[] { list, CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName() };
ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
PlanComm.WaitFromColse(this.Cursor);
if (ccp == null)
{
MessageUtil.ShowError("服务端处理失败!");
return;
}
if (ccp.ReturnCode < 0)
{
MessageUtil.ShowError("服务端处理失败!\n" + ccp.ReturnInfo);
return;
}
if (ccp.ReturnObject != null)
{
MessageUtil.ShowTips(ccp.ReturnObject.ToString());
DoQuery(GetQueryCondition());
}
}
///
/// 短节处理
///
public void DoProcessDj()
{
try
{
int defailNum = 0;
string messageErr = "";
ultraGridSaleOrder.UpdateData();
IQueryable checkRows = ultraGridSaleOrder.Rows.AsQueryable().Where(" CHC = 'True'");
if (checkRows.Count() == 0)
{
MessageUtil.ShowTips("未勾选合同!");
return;
}
ArrayList paramBL = new ArrayList();
ArrayList paramUpdate = new ArrayList();
PlanComm.WaitFromOpen(this.Cursor);
foreach (UltraGridRow uRow in checkRows)
{
DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.querySaleStatus",
new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString() }, _ob);
if (dtStatus == null || dtStatus.Rows.Count <= 0)
{
continue;
}
if (dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("6") < 0
&& dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("0") > 0)
{
if (dtStatus.Rows[0]["DJBL_REQ_IS_OK"].ToString().Equals("2"))
{
defailNum++;
messageErr = "合同" + uRow.Cells["OrderNo"].Value.ToString() + "/"
+ uRow.Cells["OrderSeq"].Value.ToString() + "没有短节!";
continue;
}
if (dtStatus.Rows[0]["DJBL_REQ_IS_OK"].ToString().Equals("1"))
{
defailNum++;
messageErr = "合同" + uRow.Cells["OrderNo"].Value.ToString() + "/"
+ uRow.Cells["OrderSeq"].Value.ToString() + "已处理短节!";
continue;
}
string desginKey = uRow.Cells["DesginKey"].Value.ToString();
if (desginKey.Equals(""))
{
defailNum++;
messageErr = "合同" + uRow.Cells["OrderNo"].Value.ToString() + "/"
+ uRow.Cells["OrderSeq"].Value.ToString()
+ "未找到质量设计!";
continue;
}
DataTable dtBl = queryBlCodeByGp(desginKey, uRow.Cells["BlGroupNum"].Value.ToString());
ArrayList listupdate = new ArrayList();
if (dtBl.Rows.Count > 0 && dtBl != null)
{
foreach (DataRow dr in dtBl.Rows)
{
string strCodeBl = dr["PSC_BL"].ToString();//备料码
DataTable dtbllist = QueryBlList(strCodeBl);
if (dtbllist != null && dtbllist.Rows.Count > 0)
{
PlnPorderBlReqEntity blReqEntity = new PlnPorderBlReqEntity();
int planNum = (int)Math.Ceiling(double.Parse(dtStatus.Rows[0]["ORDERNUM"].ToString()) * (1 + double.Parse(dtStatus.Rows[0]["DELVRY_RANGE_MAX"].ToString()) / 100));
#region 备料清单信息
double min_d = Convert.ToDouble(dtbllist.Rows[0]["MIN_D"]);
double min_h = Convert.ToDouble(dtbllist.Rows[0]["MIN_H"]);
double Weight_One = PlanComm.WeightOfMi(min_d, min_h);//米单重(吨/米)
double aimlength = (Convert.ToDouble(dtbllist.Rows[0]["MAX_L"])
+ Convert.ToDouble(dtbllist.Rows[0]["MIN_L"])) / 2;
double singleweight = aimlength * Weight_One;//单重
//每只备料管可切短节支数。
int eatchBlnum = (int)(aimlength / Convert.ToDouble(uRow.Cells["Lengthmax"].Value));
if(eatchBlnum==0)
{
int eatchBlnum_minL = (int)(Convert.ToDouble(dtbllist.Rows[0]["MAX_L"]) / Convert.ToDouble(uRow.Cells["Lengthmin"].Value));
if(eatchBlnum_minL >0)
{
eatchBlnum = 1;
}
else
{
PlanComm.WaitFromColse(this.Cursor);
MessageBox.Show("备料管长度范围过小,不能满足合同要求!");
return;
}
}
string specSameSale = "0";
if (uRow.Cells["Outdiameter"].Value.ToString().Equals(dtbllist.Rows[0]["MIN_D"].ToString())
&& uRow.Cells["Wallthick"].Value.ToString().Equals(dtbllist.Rows[0]["MIN_H"].ToString())
&& uRow.Cells["Steelcode"].Value.ToString().Equals(dtbllist.Rows[0]["STEELCODE"].ToString()))
{
specSameSale = "1";
}
if(Convert.ToDouble(dtbllist.Rows[0]["MIN_L"])< Convert.ToDouble(uRow.Cells["Lengthmin"].Value))
{
blReqEntity.Lengthmin =uRow.Cells["Lengthmin"].Value.ToString();
}
else
{
blReqEntity.Lengthmin = dtbllist.Rows[0]["MIN_L"].ToString();
}
blReqEntity.CodeDjBl = strCodeBl;
blReqEntity.Bltype = "短节备料";
blReqEntity.OrdLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString();
blReqEntity.OrderNo = uRow.Cells["OrderNo"].Value.ToString();
blReqEntity.OrderSeq = uRow.Cells["OrderSeq"].Value.ToString();
blReqEntity.DeliveryNo = uRow.Cells["DeliveryNo"].Value.ToString();
blReqEntity.CreateName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName();
blReqEntity.Outdiameter = min_d.ToString();
blReqEntity.Wallthick = min_h.ToString();
blReqEntity.Psc = QueryPsc(dtbllist.Rows[0]["PRODUCCODE"].ToString(),
dtbllist.Rows[0]["STD_CODE"].ToString(),
dtbllist.Rows[0]["STEELCODE"].ToString(),
dtbllist.Rows[0]["STD_STYLE"].ToString());
blReqEntity.Msc = QueryPscForMsc(blReqEntity.Psc);
blReqEntity.Singleweight = singleweight.ToString(); //单重
#endregion
if (planNum % eatchBlnum == 0)
{
int blNum = (int)(planNum / eatchBlnum);
blReqEntity.JgblReqWeight = (blNum * singleweight).ToString();//备料需求量
blReqEntity.JgblReqNum = blNum.ToString();//备料需求支数
}
else
{
int blNum = (int)(planNum / eatchBlnum) + 1;
blReqEntity.JgblReqWeight = (blNum * singleweight).ToString();//备料需求量
blReqEntity.JgblReqNum = blNum.ToString();//备料需求支数
}
blReqEntity.SpecSameSale = specSameSale;
paramBL.Add(blReqEntity);
}
else
{
defailNum++;
messageErr = "备料码:" + strCodeBl + "未找到基础信息,请查看备料码是否已作废。";
continue;
}
}
}
//完成短节
listupdate.Add("1");
listupdate.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
paramUpdate.Add(listupdate);
}
else
{
defailNum++;
if (dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("1") < 0)
{
messageErr = "合同:" + uRow.Cells["OrderNo"].Value.ToString() + "/"
+ uRow.Cells["OrderSeq"].Value.ToString()
+ "未接收!";
}
//else
//{
// messageErr = "合同:" + uRow.Cells["OrderNo"].Value.ToString() + "/"
// + uRow.Cells["OrderSeq"].Value.ToString()
// + "已经生产完了!";
//}
continue;
}
}
if (paramBL.Count == 0)
{
PlanComm.WaitFromColse(this.Cursor);
MessageUtil.ShowTips("0条处理成功," + defailNum + "条处理失败。\n" + messageErr);
return;
}
int isSucceed = ServerHelper.SetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.tranSactionDj",
new object[] { paramBL, paramUpdate }, _ob);
PlanComm.WaitFromColse(this.Cursor);
if (isSucceed > 0)
{
MessageUtil.ShowTips(paramBL.Count + "条处理成功," + defailNum + "条处理失败。\n" + messageErr);
}
}
catch (Exception ex)
{
PlanComm.WaitFromColse(this.Cursor);
if (!(ex is MESException))
{
MessageBox.Show(ex.Message);
}
}
DoQuery(GetQueryCondition());
}
///
/// 撤消短节合同
///
public void DoCancelDj()
{
try
{
int defailNum = 0;
string messageErr = "";
ultraGridSaleOrder.UpdateData();
IQueryable checkRows = ultraGridSaleOrder.Rows.AsQueryable().Where(" CHC = 'True'");
if (checkRows.Count() == 0)
{
MessageUtil.ShowTips("未勾选合同!");
return;
}
ArrayList list = new ArrayList();
PlanComm.WaitFromOpen(this.Cursor);
foreach (UltraGridRow uRow in checkRows)
{
bool fl = false;
DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.querySaleStatus",
new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString() }, _ob);
if (dtStatus == null || dtStatus.Rows.Count <= 0)
{
continue;
}
DataTable dtBl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.selectBlReqStatusByPk",
new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString() }, _ob);
if (dtBl == null || dtBl.Rows.Count <= 0)
{
defailNum++;
messageErr = "合同:" + uRow.Cells["OrderNo"].Value.ToString() + "/"
+ uRow.Cells["OrderSeq"].Value.ToString()
+ "没有对应的备料需求!";
continue;
}
foreach (DataRow dr in dtBl.Rows)
{
if (!dr["PLANSTATUS"].ToString().Trim().Equals("0"))
{
defailNum++;
messageErr = "合同:" + uRow.Cells["OrderNo"].Value.ToString() + "/"
+ uRow.Cells["OrderSeq"].Value.ToString()
+ "的备料需求:" + dr["REQ_BL_ID"].ToString() + "已经确认。";
break;
}
fl = true;
}
if (fl && dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("6") < 0)
{
ArrayList param = new ArrayList();
if (!dtStatus.Rows[0]["DJBL_REQ_IS_OK"].ToString().Equals("1"))
{
defailNum++;
messageErr = "合同:" + uRow.Cells["OrderNo"].Value.ToString() + "/"
+ uRow.Cells["OrderSeq"].Value.ToString()
+ "没有短节合同!";
continue;
}
param.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString());
list.Add(param);
}
else if (dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("1") < 0)
{
defailNum++;
messageErr = "合同:" + uRow.Cells["ORDER_NO"].Value.ToString()
+ "/" + uRow.Cells["ORDER_SEQ"].Value.ToString() + "还未接收!";
continue;
}
else
{
defailNum++;
messageErr = "合同:" + uRow.Cells["OrderNo"].Value.ToString() + "/"
+ uRow.Cells["OrderSeq"].Value.ToString()
+ "已经生产完了!";
continue;
}
}
if (list.Count == 0)
{
PlanComm.WaitFromColse(this.Cursor);
MessageUtil.ShowTips("0条撤销成功," + defailNum + "条撤销失败。\n" + messageErr);
return;
}
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal";
ccp.MethodName = "doCancelDj";
ccp.ServerParams = new object[] { list };
PlanComm.WaitFromColse(this.Cursor);
ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode != -1)
{
MessageUtil.ShowTips(list.Count + "条撤销成功," + defailNum
+ "条撤销失败。\n" + messageErr);
}
}
catch (Exception ex)
{
PlanComm.WaitFromColse(this.Cursor);
if (!(ex is MESException))
{
MessageBox.Show(ex.Message);
}
}
DoQuery(GetQueryCondition());
}
///
/// 短节备料确认
///
public void DoConfirmDj()
{
ultraGridBl.UpdateData();
ArrayList list = new ArrayList();
IQueryable ugrs = ultraGridBl.Rows.AsQueryable().Where("CHC = 'True'");
if (ugrs.Count() == 0)
{
MessageUtil.ShowTips("请勾选需要确认的备料需求。");
return;
}
foreach (UltraGridRow ugr in ugrs)
{
PlnPorderBlReqEntity blReqEntity = new PlnPorderBlReqEntity();
blReqEntity.ReqBlId = ugr.Cells["ReqBlId"].Value.ToString();
list.Add(blReqEntity);
}
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal";
ccp.MethodName = "doConfirmBl";
ccp.ServerParams = new object[] { list, CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName() };
ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode != -1)
{
if (ccp.ReturnObject != null && !ccp.ReturnObject.ToString().Equals(""))
{
MessageUtil.ShowTips(ccp.ReturnObject.ToString());
}
DoQuery(GetQueryCondition());
}
}
///
/// 短节备料取消确认
///
public void CanCelConfirmBl()
{
ultraGridBl.UpdateData();
ArrayList list = new ArrayList();
IQueryable ugrs = ultraGridBl.Rows.AsQueryable().Where("CHC = 'True'");
if (ugrs.Count() == 0)
{
MessageUtil.ShowTips("未勾选备料需求。");
return;
}
foreach (UltraGridRow ugr in ugrs)
{
list.Add(ugr.Cells["ReqBlId"].Value.ToString());
}
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal";
ccp.MethodName = "canCelConfirmBl";
ccp.ServerParams = new object[] { list };
ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode != -1)
{
if (ccp.ReturnObject != null && !ccp.ReturnObject.ToString().Equals(""))
{
MessageUtil.ShowTips(ccp.ReturnObject.ToString());
}
DoQuery(GetQueryCondition());
}
}
///
/// 查询备料清单表
///
/// 备料码
public DataTable QueryBlList(string strCodeJg)
{
try
{
DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.queryBlList",
new object[] { strCodeJg }, _ob);
return dt;
}
catch
{
return null;
}
}
///
/// 查询产品码
///
/// 备料品名、标准、钢级、标准类别
/// 产品码
public string QueryPsc(string producCode, string stdCode, string steelCode, string stdStyle)
{
try
{
ArrayList param = new ArrayList();
param.Add(producCode);
param.Add(stdCode);
param.Add(steelCode);
param.Add(stdStyle);
param.Add(stdStyle);
param.Add(stdStyle);
DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.queryblPsc",
new object[] { param }, _ob);
if (dt != null && dt.Rows.Count > 0)
{
return dt.Rows[0]["PSC"].ToString();
}
else
{
return "";
}
}
catch
{
return "";
}
}
///
/// 查询产品码与冶金规范对应关系\
///
/// 产品码
/// 冶金规范码
public string QueryPscForMsc(string strPsc)
{
try
{
DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.queryPscForMsc",
new object[] { strPsc }, _ob);
if (dt != null && dt.Rows.Count > 0)
{
return dt.Rows[0]["MSC"].ToString();
}
else
{
return "";
}
}
catch
{
return "";
}
}
///
/// 查询一组短节备料码
///
/// 质量设计主键
/// 备料组号
///
private DataTable queryBlCodeByGp(string designKey, string gourpNum)
{
try
{
ArrayList param = new ArrayList();
param.Add(designKey);
param.Add(gourpNum);
DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.queryBlCodeByGp",
new object[] { param }, _ob);
return dt;
}
catch
{
return null;
}
}
private void ultraGridSaleOrder_AfterSelectChange(object sender,
Infragistics.Win.UltraWinGrid.AfterSelectChangeEventArgs e)
{
try
{
for (int i = 0; i < ultraGridSaleOrder.Selected.Rows.Count; i++)
{
if (ultraGridSaleOrder.Selected.Rows[i].GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow))
{
ultraGridSaleOrder.Selected.Rows[i].Cells["CHC"].Value = true;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "出错");
}
}
private void ultraFileLook_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
UltraGridRow ugr = ultraGridSaleOrder.ActiveRow;
if (ugr == null)
{
return;
}
DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.querySaleStatus",
new object[] { ugr.Cells["OrdLnDlyPk"].Value.ToString() }, _ob);
if (dtStatus == null || dtStatus.Rows.Count <= 0)
{
return;
}
if (dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("4") < 0
&& dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("0") > 0)
{
//选择短节备料组
FrmGroupofDjBl ChooseGroup = new FrmGroupofDjBl(_ob);
int orderNum = 0;
int.TryParse(ugr.Cells["Ordernum"].Value.ToString(), out orderNum);
ChooseGroup.DesginKey = ugr.Cells["DesginKey"].Value.ToString();
ChooseGroup.GroupNum = ugr.Cells["BlGroupNum"].Value.ToString();
ChooseGroup.OrdLnDlyPk = ugr.Cells["OrdLnDlyPk"].Value.ToString();
ChooseGroup.ShowDialog();
//判断是否需要更新合同备料组
if (!ugr.Cells["BlGroupNum"].Value.ToString().Equals(ChooseGroup.GroupNum))
{
try
{
ArrayList parms = new ArrayList();
ugr.Cells["BlGroupNum"].Value = ChooseGroup.GroupNum;
parms.Add(ugr.Cells["BlGroupNum"].Value.ToString());
parms.Add(ugr.Cells["OrdLnDlyPk"].Value.ToString());
ServerHelper.SetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.updateDjBlGroup",
new object[] { parms }, _ob);
}
catch (Exception ex)
{
if (!(ex is MESException))
{
MessageBox.Show(ex.Message);
}
}
}
if (ChooseGroup.IsCreatOk)
{
ugr.Cells["DjblReqIsOk"].Value = "是";
DoQuery(GetQueryCondition());
}
}
}
private void ultraGridJgOrd_AfterRowActivate(object sender, EventArgs e)
{
UltraGridRow ugr = ultraGridJgOrd.ActiveRow;
if (ugr == null)
{
return;
}
ultraGridSaleOrder.UpdateData();
IQueryable uRows = ultraGridSaleOrder.Rows.AsQueryable().Where(
" OrdLnDlyPk = '" + ugr.Cells["ORD_LN_DLY_PK"].Value.ToString() + "'");
ultraGridSaleOrder.ActiveRow = uRows.First();
}
private void ultraGridSaleOrder_AfterRowActivate(object sender, EventArgs e)
{
UltraGridRow ugr = ultraGridSaleOrder.ActiveRow;
if (ugr == null)
{
return;
}
string orderNo = ugr.Cells["OrderNo"].Value.ToString();
string orderSeq = ugr.Cells["OrderSeq"].Value.ToString();
string deliveryNo = ugr.Cells["DeliveryNo"].Value.ToString();
IEnumerable ugrs = ultraGridBl.Rows.Where(a =>
a.Cells["OrderNo"].Value.ToString().Equals(orderNo)
&& a.Cells["OrderSeq"].Value.ToString().Equals(orderSeq)
&& a.Cells["DeliveryNo"].Value.ToString().Equals(deliveryNo));
foreach (UltraGridRow uRow in this.ultraGridBl.Rows)
{
if (ugrs.Contains(uRow))
{
uRow.Appearance.ForeColor = System.Drawing.Color.DarkBlue;
}
else
{
uRow.Appearance.ForeColor = System.Drawing.Color.Black;
}
}
if (ugrs.Count() > 0)
{
UltraGridRow ugrbl = ultraGridBl.ActiveRow;
if (ugrbl == null)
{
return;
}
if (!ugrs.Contains(ugrbl))
{
ultraGridBl.ActiveRow = ugrs.First();
}
}
ultraGridJgOrd.UpdateData();
IQueryable uRows = ultraGridJgOrd.Rows.AsQueryable().Where(
" ORD_LN_DLY_PK = '" + ugr.Cells["OrdLnDlyPk"].Value.ToString() + "'");
foreach (UltraGridRow uRow in ultraGridJgOrd.Rows)
{
if (uRows.Contains(uRow))
{
uRow.Appearance.ForeColor = System.Drawing.Color.DarkBlue;
}
else
{
uRow.Appearance.ForeColor = System.Drawing.Color.Black;
}
}
if (uRows.Count() > 0)
{
UltraGridRow ugrJg = ultraGridJgOrd.ActiveRow;
if (ugrJg == null)
{
return;
}
if (!uRows.Contains(ugrJg))
{
ultraGridJgOrd.ActiveRow = uRows.First();
}
}
}
private void ultraGridBl_AfterRowActivate(object sender, EventArgs e)
{
UltraGridRow ugr = ultraGridBl.ActiveRow;
if (ugr == null)
{
return;
}
string orderNo = ugr.Cells["OrderNo"].Value.ToString();
string orderSeq = ugr.Cells["OrderSeq"].Value.ToString();
string deliveryNo = ugr.Cells["DeliveryNo"].Value.ToString();
ultraGridSaleOrder.UpdateData();
IEnumerable uRows = ultraGridSaleOrder.Rows.Where(a =>
a.Cells["OrderNo"].Value.ToString().Equals(orderNo)
&& a.Cells["OrderSeq"].Value.ToString().Equals(orderSeq)
&& a.Cells["DeliveryNo"].Value.ToString().Equals(deliveryNo));
ultraGridSaleOrder.ActiveRow = uRows.First();
}
public void DoExport()
{
if(inNum==0||inNum==1){
GridHelper.ulGridToExcel(ultraGridSaleOrder, "销售合同");
}
else if (inNum == 2)
{
GridHelper.ulGridToExcel(ultraGridBl, "短接备料需求");
}
}
private void ultraGridSaleOrder_Click(object sender, EventArgs e)
{
inNum = 1;
}
private void ultraGridSaleOrder_ClickCell(object sender, ClickCellEventArgs e)
{
inNum = 1;
}
private void ultraGridBl_Click(object sender, EventArgs e)
{
inNum = 2;
}
private void ultraGridBl_ClickCell(object sender, ClickCellEventArgs e)
{
inNum = 2;
}
}
}