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 Core.Mes.Client.Comm.Server;
using CoreFS.CA06;
using CoreFS.SA06;
using System.Collections;
using Core.Mes.Client.Comm.Control;
using Infragistics.Win.UltraWinGrid;
using Infragistics.Win;
using Infragistics.Win.UltraWinGrid.ExcelExport;
using System.IO;
using Infragistics.Excel;
using System.Diagnostics;
using Core.Mes.Client.Comm;
namespace Core.StlMes.Client.Plan.Order
{
///
/// 备料组选择界面
/// @author:杨天海
/// @version:v1.1
/// @date:2015.05.01
///
public partial class FrmGroupofDjBl : FrmBase
{
///
/// 质量设计desgin_key
///
private string desgin_key = "";
public string Desgin_key
{
get { return desgin_key; }
set { desgin_key = value; }
}
///
/// 备料组
///
private string group_num = "";
public string Group_num
{
get { return group_num; }
set { group_num = value; }
}
///
/// 合同计划支数
///
private string plan_num = "";
public string Plan_num
{
get { return plan_num; }
set { plan_num = value; }
}
///
/// 合同号
///
private string order_no = "";
public string Order_no
{
get { return order_no; }
set { order_no = value; }
}
///
/// 和同行号
///
private string order_seq = "";
public string Order_seq
{
get { return order_seq; }
set { order_seq = value; }
}
///
/// 交货编码
///
private string delivery_no = "";
public string Delivery_no
{
get { return delivery_no; }
set { delivery_no = value; }
}
///
/// 合同长度描述
///
private string lengthdisc = "";
public string Lengthdisc
{
get { return lengthdisc; }
set { lengthdisc = value; }
}
///
/// 形成短节合同状态
///
private bool isCreatOk = false;
public bool IsCreatOk
{
get { return isCreatOk; }
set { isCreatOk = value; }
}
private double lengthMax = 0;
///
/// 销售合同短节长度上限
///
public double LengthMax
{
get { return lengthMax; }
set { lengthMax = value; }
}
private int orderNum = 0;
///
/// 短节合同订货支数
///
public int OrderNum
{
get { return orderNum; }
set { orderNum = value; }
}
///
/// 钢级(牌号)代码
///
private string steelcode;
///
/// 钢级(牌号)代码
///
public string Steelcode
{
get { return steelcode; }
set { steelcode = value; }
}
///
/// 钢级(牌号)名称
///
private string steelname;
///
/// 钢级(牌号)名称
///
public string Steelname
{
get { return steelname; }
set { steelname = value; }
}
///
/// 外径
///
private string outdiameter;
///
/// 外径
///
public string Outdiameter
{
get { return outdiameter; }
set { outdiameter = value; }
}
///
/// 壁厚
///
private string wallthick;
///
/// 壁厚
///
public string Wallthick
{
get { return wallthick; }
set { wallthick = value; }
}
public FrmGroupofDjBl()
{
InitializeComponent();
}
///
/// 构造
///
///
public FrmGroupofDjBl(OpeBase ob)
{
this.ob = ob;
InitializeComponent();
}
private void FrmGroupofDjBl_Load(object sender, EventArgs e)
{
FrmSaleOrderOP SaleOrder = new FrmSaleOrderOP(this.ob);
DataTable dt = SaleOrder.QueryBlCode(Desgin_key);
DataTable dtGroup = ServerHelper.GetData("com.steering.pss.plan.order.CoreSaleOrderOP.queryBlGroup",
new object[] { Desgin_key }, this.ob);
GridHelper.CopyDataToDatatable(dtGroup, dataTable1, true);
foreach (UltraGridRow uRow in ultraGrid1.Rows)
{
uRow.Cells["PLAN_NUM"].Value = Plan_num;
uRow.Cells["LENGTHDISC"].Value = Lengthdisc;
uRow.Cells["STEELCODE"].Value = steelcode;
uRow.Cells["STEELNAME"].Value = steelname;
uRow.Cells["OUTDIAMETER"].Value = outdiameter;
uRow.Cells["WALLTHICK"].Value = wallthick;
if (uRow.Cells["GROUP_NUM"].Value.ToString().Equals(Group_num))
{
uRow.Cells["CHECK"].Value = true;
}
}
dataTable2.Clear();
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
DataTable dtBlList = SaleOrder.QueryBlList(dr["PSC_BL"].ToString());
if (dtBlList != null && dtBlList.Rows.Count > 0)
{
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;//单重
double eatchBlnum = aimlength / lengthMax;//每只备料管可切短节支数。
DataRow drNew = dataTable2.NewRow();
drNew["GROUP_NUM"] = dr["GROUP_NUM"].ToString();
drNew["PSC_BL"] = dtBlList.Rows[0]["PSC_BL"].ToString();
drNew["PRODUCNAME"] = dtBlList.Rows[0]["PRODUCNAME"].ToString();
drNew["STD_NAME"] = dtBlList.Rows[0]["STD_NAME"].ToString();
drNew["STEELNAME"] = dtBlList.Rows[0]["STEELNAME"].ToString();
drNew["STD_STYLE_DESC"] = dtBlList.Rows[0]["STD_STYLE_DESC"].ToString();
drNew["MODEL_DESC"] = dtBlList.Rows[0]["MODEL_DESC"].ToString();
drNew["MIN_D"] = dtBlList.Rows[0]["MIN_D"].ToString();
drNew["MIN_H"] = dtBlList.Rows[0]["MIN_H"].ToString();
drNew["USE_DESC"] = dtBlList.Rows[0]["USE_DESC"].ToString();
drNew["MIN_L"] = dtBlList.Rows[0]["MIN_L"].ToString();
drNew["MAX_L"] = dtBlList.Rows[0]["MAX_L"].ToString();
drNew["MEMO"] = dtBlList.Rows[0]["MEMO"].ToString();
drNew["SINGLEWEIGHT"] = singleweight;
drNew["STEELCODE"] = dtBlList.Rows[0]["STEELCODE"].ToString();
drNew["STD_CODE"] = dtBlList.Rows[0]["STD_CODE"].ToString();
drNew["PRODUCCODE"] = dtBlList.Rows[0]["PRODUCCODE"].ToString();
drNew["STD_STYLE"] = dtBlList.Rows[0]["STD_STYLE"].ToString();
drNew["BLGTODJNUM"] = eatchBlnum;
if (OrderNum % eatchBlnum == 0)
{
drNew["JGBL_REQ_NUM"] = (int)(OrderNum / eatchBlnum);
drNew["JGBL_REQ_WEIGHT"] = (int)(OrderNum / eatchBlnum) * singleweight;
}
else
{
drNew["JGBL_REQ_NUM"] = (int)(OrderNum / eatchBlnum) + 1;
drNew["JGBL_REQ_WEIGHT"] = ((int)(OrderNum / eatchBlnum) + 1) * singleweight;
}
dataTable2.Rows.Add(drNew);
}
}
}
PlanComm.setGridActivation(ultraGrid1.DisplayLayout.Bands[0], "CHECK");
PlanComm.setGridActivation(ultraGrid1.DisplayLayout.Bands[1], "JGBL_REQ_NUM");
}
///
/// 确定按钮
///
///
///
private void ultraButton1_Click(object sender, EventArgs e)
{
foreach(UltraGridRow uRow in ultraGrid1.Rows)
{
if (Convert.ToBoolean(uRow.Cells["CHECK"].Text))
{
ArrayList status = new ArrayList();
status.Add(this.Order_no);
status.Add(this.Order_seq);
status.Add(this.Delivery_no);
DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plan.order.CoreSaleOrderOP.querySaleByPrimary",
new object[] { status }, this.ob);
if (dtStatus == null || dtStatus.Rows.Count <= 0)
{
Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("查询销售合同状态失败!");
return;
}
if (dtStatus.Rows[0]["PORDERSTATUS"].ToString().Equals("1")
&& dtStatus.Rows[0]["DJBL_REQ_IS_OK"].ToString().Equals("0"))
{
ArrayList listBL = new ArrayList();
ArrayList paramUpdate = new ArrayList();
ArrayList listupdate = new ArrayList();
foreach (UltraGridRow cRow in uRow.ChildBands[0].Rows)
{
#region 短节备料需求处理
FrmSaleOrderOP SaleOrder = new FrmSaleOrderOP(this.ob);
string strPSC = "";//产品码
string strCodeBl = cRow.Cells["PSC_BL"].Value.ToString();//备料码
ArrayList parms = new ArrayList();
double aimlength = (Convert.ToDouble(cRow.Cells["MAX_L"].Value)
+ Convert.ToDouble(cRow.Cells["MIN_L"].Value)) / 2;
string specSameSale = "0";
if (dtStatus.Rows[0]["OUTDIAMETER"].ToString().Equals(cRow.Cells["MIN_D"].Value.ToString())
&& dtStatus.Rows[0]["WALLTHICK"].ToString().Equals(cRow.Cells["MIN_H"].Value.ToString())
&& dtStatus.Rows[0]["STEELCODE"].ToString().Equals(cRow.Cells["STEELCODE"].Value.ToString()))
{
specSameSale = "1";
}
parms.Add("短节备料");
parms.Add(Order_no);
parms.Add(Order_seq);
parms.Add(Delivery_no);
parms.Add(strCodeBl);
parms.Add("0"); //计划状态
parms.Add(CoreUserInfo.UserInfo.GetUserName());
parms.Add(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
#region 备料清单信息
parms.Add(cRow.Cells["STEELCODE"].Value.ToString());
parms.Add(cRow.Cells["STEELNAME"].Value.ToString());
parms.Add("");//钢种代码
parms.Add(cRow.Cells["MIN_D"].Value.ToString());//外径
parms.Add(cRow.Cells["MIN_H"].Value.ToString());//壁厚
parms.Add("");//控制壁厚
parms.Add(cRow.Cells["MAX_L"].Value.ToString());
parms.Add(cRow.Cells["MIN_L"].Value.ToString());
parms.Add(aimlength.ToString());//控制长度
parms.Add(cRow.Cells["STD_CODE"].Value.ToString());
parms.Add(cRow.Cells["STD_NAME"].Value.ToString());
strPSC = SaleOrder.QueryPsc(cRow.Cells["PRODUCCODE"].Value.ToString(),
cRow.Cells["STD_CODE"].Value.ToString(),
cRow.Cells["STEELCODE"].Value.ToString(),
cRow.Cells["STD_STYLE"].Value.ToString());
parms.Add(SaleOrder.QueryPscForMsc(strPSC));
parms.Add(cRow.Cells["SINGLEWEIGHT"].Value.ToString()); //单重
#endregion
parms.Add(cRow.Cells["JGBL_REQ_WEIGHT"].Value.ToString()); //备料需求量
parms.Add(cRow.Cells["JGBL_REQ_NUM"].Value.ToString()); //备料需求支数
parms.Add(specSameSale);
listBL.Add(parms);
#endregion
}
//更新销售合同
paramUpdate.Add("1");
paramUpdate.Add(dtStatus.Rows[0]["ORD_LN_DLY_PK"].ToString());
listupdate.Add(paramUpdate);
int isSucceed = ServerHelper.SetData("com.steering.pss.plan.order.CoreSaleOrderOP.tranSactionDj",
new object[] { listBL,listupdate }, this.ob);
if (isSucceed > 0)
{
Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("形成短节合同成功!");
IsCreatOk = true;
}
else
{
Core.Mes.Client.Comm.Tool.MessageUtil.ShowError("形成短节合同失败!");
}
}
Group_num = uRow.Cells["GROUP_NUM"].Value.ToString();
this.Close();
return;
}
}
MessageBox.Show("请选择短节备料组!");
}
///
/// 取消按钮
///
///
///
private void ultraButton2_Click(object sender, EventArgs e)
{
this.Close();
}
///
/// 控制单选
///
///
///
private void ultraGrid1_CellChange(object sender, CellEventArgs e)
{
if (e.Cell.Column.Key.Equals("CHECK"))
{
if (Convert.ToBoolean(e.Cell.Row.Cells["CHECK"].Text))
{
foreach (UltraGridRow uRow in ultraGrid1.Rows)
{
if (uRow != e.Cell.Row)
{
uRow.Cells["CHECK"].Value = false;
}
}
}
}
}
private void ultraGrid1_AfterCellUpdate(object sender, CellEventArgs e)
{
if (e.Cell.Column.Key.Equals("JGBL_REQ_NUM") && e.Cell.Row.Cells["JGBL_REQ_NUM"].DataChanged)
{
e.Cell.Row.Update();
int num = 0;
double singleweight = 0;
if (int.TryParse(e.Cell.Row.Cells["JGBL_REQ_NUM"].Value.ToString(), out num) &&
double.TryParse(e.Cell.Row.Cells["SINGLEWEIGHT"].Value.ToString(), out singleweight))
{
e.Cell.Row.Cells["JGBL_REQ_WEIGHT"].Value = (num * singleweight).ToString();
}
else
{
e.Cell.Row.Cells["JGBL_REQ_NUM"].Value = 0;
e.Cell.Row.Cells["JGBL_REQ_WEIGHT"].Value = 0;
}
}
}
}
}