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 System.Collections;
using Core.Mes.Client.Comm.Control;
using Infragistics.Win.UltraWinGrid;
using Infragistics.Win;
using System.IO;
using Infragistics.Excel;
using System.Diagnostics;
using Core.Mes.Client.Comm;
using Core.Mes.Client.Comm.Tool;
using com.steering.pss.plnsaleord.order.model;
namespace Core.StlMes.Client.PlnSaleOrd
{
///
/// 备料组选择界面
/// @author:杨天海
/// @version:v1.1
/// @date:2015.05.01
///
public partial class FrmGroupofDjBl : FrmBase
{
///
/// 质量设计desginKey
///
private string desginKey = "";
///
/// 备料组
///
private string groupNum = "";
///
/// 交货行PK
///
private string ordLnDlyPk = "";
///
/// 合同计划支数
///
private int orderNum = 0;
///
/// 短节最大长度
///
private double lenMax = 0;
///
/// 形成短节合同状态
///
private bool isCreatOk = false;
public bool IsCreatOk
{
get { return isCreatOk; }
set { isCreatOk = value; }
}
///
/// 交货行PK
///
public string OrdLnDlyPk
{
get { return ordLnDlyPk; }
set { ordLnDlyPk = value; }
}
///
/// 质量设计desginKey
///
public string DesginKey
{
get { return desginKey; }
set { desginKey = value; }
}
///
/// 备料组
///
public string GroupNum
{
get { return groupNum; }
set { groupNum = value; }
}
public FrmGroupofDjBl()
{
InitializeComponent();
}
///
/// 构造
///
///
public FrmGroupofDjBl(OpeBase ob)
{
this.ob = ob;
InitializeComponent();
}
private void FrmGroupofDjBl_Load(object sender, EventArgs e)
{
PlanComm.setGridActivation(ultraGrid1.DisplayLayout.Bands[0], "CHECK");
PlanComm.setGridActivation(ultraGrid1.DisplayLayout.Bands[1], "JGBL_REQ_NUM");
DoQuery();
}
///
/// 查询
///
private void DoQuery()
{
if (desginKey.Equals(""))
{
MessageUtil.ShowTips("未找到评审数据!");
return;
}
DataTable dtGroup = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.queryBlGroup",
new object[] { desginKey, ordLnDlyPk }, this.ob);
GridHelper.CopyDataToDatatable(dtGroup, dataTable1, true);
foreach (UltraGridRow uRow in ultraGrid1.Rows)
{
uRow.Expanded = true;
}
foreach (UltraGridRow uRow in ultraGrid1.Rows)
{
if (uRow.Cells["GROUP_NUM"].Value.ToString().Equals(groupNum))
{
uRow.Cells["CHECK"].Value = true;
}
}
dataTable2.Clear();
#region 查询短节
int.TryParse(dtGroup.Rows[0]["ORDERNUM"].ToString(), out orderNum);
double.TryParse(dtGroup.Rows[0]["LENGTHMAX"].ToString(), out lenMax);
DataTable dtBlList = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.queryDesginBlList",
new object[] { desginKey }, this.ob);
if (dtBlList == null || dtBlList.Rows.Count < 0)
{
return;
}
foreach (DataRow dr in dtBlList.Rows)
{
double min_d = Convert.ToDouble(dr["MIN_D"]);
double min_h = Convert.ToDouble(dr["MIN_H"]);
double Weight_One = PlanComm.WeightOfMi(min_d, min_h);//米单重(吨/米)
double lengthMax = Convert.ToDouble(dr["MAX_L"]);
double lengthMin = Convert.ToDouble(dr["MIN_L"]);
double aimlength = (lengthMax + lengthMin) / 2;
double singleweight = aimlength * Weight_One;//单重
if (lenMax <= lengthMax)
{
if (aimlength < lenMax)
{
aimlength = lenMax;
}
}
else
{
continue;
}
int eatchBlnum = (int)(aimlength / lenMax);//每只备料管可切短节支数。
DataRow drNew = dataTable2.NewRow();
drNew["GROUP_NUM"] = dr["GROUP_NUM"].ToString();
drNew["PSC_BL"] = dr["PSC_BL"].ToString();
drNew["PRODUCNAME"] = dr["PRODUCNAME"].ToString();
drNew["STD_NAME"] = dr["STD_NAME"].ToString();
drNew["STEELNAME"] = dr["STEELNAME"].ToString();
drNew["STD_STYLE_DESC"] = dr["STD_STYLE_DESC"].ToString();
drNew["MODEL_DESC"] = dr["MODEL_DESC"].ToString();
drNew["MIN_D"] = dr["MIN_D"].ToString();
drNew["MIN_H"] = dr["MIN_H"].ToString();
drNew["USE_DESC"] = dr["USE_DESC"].ToString();
drNew["MIN_L"] = dr["MIN_L"].ToString();
drNew["MAX_L"] = dr["MAX_L"].ToString();
drNew["MEMO"] = dr["MEMO"].ToString();
drNew["SINGLEWEIGHT"] = singleweight;
drNew["STEELCODE"] = dr["STEELCODE"].ToString();
drNew["STD_CODE"] = dr["STD_CODE"].ToString();
drNew["PRODUCCODE"] = dr["PRODUCCODE"].ToString();
drNew["STD_STYLE"] = dr["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);
}
#endregion
}
///
/// 确定按钮
///
///
///
private void ultraButton1_Click(object sender, EventArgs e)
{
foreach(UltraGridRow uRow in ultraGrid1.Rows)
{
if (Convert.ToBoolean(uRow.Cells["CHECK"].Text))
{
DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.querySaleByPrimary",
new object[] { ordLnDlyPk }, this.ob);
if (dtStatus == null || dtStatus.Rows.Count <= 0)
{
MessageUtil.ShowTips("查询销售合同状态失败!");
return;
}
if (dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("4") < 0
&& 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 短节备料需求处理
string strPSC = "";//产品码
string strCodeBl = cRow.Cells["PSC_BL"].Value.ToString();//备料码
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";
}
PlnPorderBlReqEntity blReqEntity = new PlnPorderBlReqEntity();
blReqEntity.Bltype = "短节备料";
blReqEntity.OrdLnDlyPk = ordLnDlyPk;
blReqEntity.OrderNo = dtStatus.Rows[0]["ORDER_NO"].ToString();
blReqEntity.OrderSeq = dtStatus.Rows[0]["ORDER_SEQ"].ToString();
blReqEntity.DeliveryNo = dtStatus.Rows[0]["DELIVERY_NO"].ToString();
blReqEntity.CodeDjBl = strCodeBl;
blReqEntity.CreateName = UserInfo.GetUserName();
strPSC = QueryPsc(cRow.Cells["PRODUCCODE"].Value.ToString(),
cRow.Cells["STD_CODE"].Value.ToString(),
cRow.Cells["STEELCODE"].Value.ToString(),
cRow.Cells["STD_STYLE"].Value.ToString());
blReqEntity.Psc = strPSC;
blReqEntity.Msc = QueryPscForMsc(strPSC);
blReqEntity.Singleweight = cRow.Cells["SINGLEWEIGHT"].Value.ToString();
blReqEntity.SpecSameSale = specSameSale;
blReqEntity.JgblReqWeight = cRow.Cells["JGBL_REQ_WEIGHT"].Value.ToString(); //备料需求量
blReqEntity.JgblReqNum = cRow.Cells["JGBL_REQ_NUM"].Value.ToString(); //备料需求支数
listBL.Add(blReqEntity);
#endregion
}
//更新销售合同
paramUpdate.Add("1");
paramUpdate.Add(dtStatus.Rows[0]["ORD_LN_DLY_PK"].ToString());
listupdate.Add(paramUpdate);
int isSucceed = ServerHelper.SetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.tranSactionDj",
new object[] { listBL, listupdate }, this.ob);
if (isSucceed > 0)
{
MessageUtil.ShowTips("形成短节合同成功!");
IsCreatOk = true;
}
}
groupNum = 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;
}
}
}
///
/// 查询产品码
///
/// 备料品名、标准、钢级、标准类别
/// 产品码
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 }, this.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 }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
return dt.Rows[0]["MSC"].ToString();
}
else
{
return "";
}
}
catch
{
return "";
}
}
}
}