using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Core.Mes.Client.Comm.Server;
using CoreFS.CA06;
using Core.Mes.Client.Comm.Tool;
using Infragistics.Win.UltraWinGrid;
namespace Core.StlMes.Client.SaleOrder.Control
{
public partial class CtrlLinePurchase : UserControl
{
public CtrlLinePurchase()
{
InitializeComponent();
}
private OpeBase _ob;
///
/// 长度
///
private DataRow dRow = null;
private string _saleOrg;
private SlmOrderLineNewEntity one;
///
/// 交货信息或者加工备注标志
///
private int dlyFlag = 1;
///
/// 交货信息或者加工备注标志 默认1 表示贸易合同 2表示加工备注
///
public int DlyFlag
{
get { return dlyFlag; }
set { dlyFlag = value; }
}
///
/// 刷新委托
///
public delegate void MyRefresh();
///
/// 此控件的刷新事件
///
public event MyRefresh OnMyRefresh;
///
/// 设置下拉框的属性 需要在调用此控件的界面的OnLoad事件中调用
///
public void LoadSetting()
{
cmbStdName.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend;
cmbProName.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend;
cmbSteel.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend;
cmbModel.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend;
cmbStdStyle.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend;
cmbSpec.AutoCompleteMode = Infragistics.Win.AutoCompleteMode.SuggestAppend;
}
///
/// 初始化控件
///
///
public void Init(OpeBase ob, string saleOrg)
{
OrderFunction.InitComboEditor(cmbStdName, "com.steering.pss.sale.order.CoreOrderManager.queryStdName", "STD_CODE", ob, true);
OrderFunction.InitComboEditor(cmbProName, "com.steering.pss.sale.order.CoreOrderManager.queryProName", "PRODUCCODE", ob, true);
OrderFunction.InitComboEditor(cmbSteel, "com.steering.pss.sale.order.CoreOrderManager.querySteel", "STEELCODE", ob, true);
OrderFunction.InitComboEditor(cmbModel, "com.steering.pss.sale.order.CoreOrderManager.queryModel", "MODEL_CODE", ob, true);
OrderFunction.InitComboEditor(cmbStdStyle, "com.steering.pss.sale.order.CoreOrderManager.queryStdStyle", "STD_STYLE", ob, true);
OrderFunction.InitComboEditor(cmbSpec, "com.steering.pss.sale.order.CoreOrderManager.querySpec", "SPEC_CODE", ob, true);
SetDlyType(ob);
this._ob = ob;
_saleOrg = saleOrg;
}
///
/// 设置交货量差
///
private void SetDlyType(OpeBase ob)
{
DataTable isx = ServerHelper.GetData("com.steering.pss.sale.base.CoreBuyerOrder.GetQueryBaseInfo", new Object[] { "1216" }, ob);
cmbDlyType.DataSource = isx;
cmbDlyType.DisplayMember = "BASENAME";
cmbDlyType.ValueMember = "BASECODE";
cmbDlyType.Text = "%";
cmbDlyType.Enabled = false;
ClsBaseInfo.SetComboItemHeight(cmbDlyType);
cmbUnit.DataSource = null;
isx = ServerHelper.GetData("com.steering.pss.sale.base.CoreBuyerOrder.GetQueryBaseInfo", new Object[] { "1215" }, ob);
cmbUnit.DataSource = isx;
cmbUnit.DisplayMember = "BASENAME";
cmbUnit.ValueMember = "BASECODE";
cmbUnit.Text = "吨";
}
///
/// 获取控件的值
///
///
public SlmOrderLineNewEntity GetControlValue()
{
if (cmbStdName.SelectedItem == null)
{
MessageUtil.ShowWarning("请选择标准名称!");
return null;
}
if (cmbProName.SelectedItem == null)
{
MessageUtil.ShowWarning("请选择品名!");
return null;
}
if (cmbSteel.SelectedItem == null)
{
MessageUtil.ShowWarning("请选择钢级!");
return null;
}
if (cmbModel.SelectedItem == null)
{
MessageUtil.ShowWarning("请选择扣型!");
return null;
}
/* if (cmbStdStyle.SelectedItem == null)
{
MessageUtil.ShowWarning("请选择标准类别!");
return null;
}*/
if (cmbSpec.SelectedItem == null)
{
MessageUtil.ShowWarning("请选择产品规格!");
return null;
}
if (txtLength.Text.Trim() == "")
{
MessageUtil.ShowWarning("请维护长度信息!");
return null;
}
if (numQty.Text.Trim() == "")
{
MessageUtil.ShowWarning("请输入订货量!");
return null;
}
if (cmbUnit.SelectedItem == null)
{
MessageUtil.ShowWarning("请选择订货单位!");
return null;
}
SlmOrderLineNewEntity sol = new SlmOrderLineNewEntity();
sol.Produccode = cmbProName.Value.ToString();
sol.Producname = cmbProName.Text.Trim();
sol.StdCode = cmbStdName.Value.ToString();
sol.StdName = cmbStdName.Text.Trim();
sol.Steelcode = cmbSteel.Value.ToString();
sol.Steelname = cmbSteel.Text.Trim();
sol.ModelCode = cmbModel.Value.ToString();
sol.ModelDesc = cmbModel.Text.Trim();
sol.SpecCode = cmbSpec.Value.ToString();
sol.SpecName = cmbSpec.Text.Trim();
sol.StdStyle = cmbStdStyle.Value.ToString2();
sol.StdStyleDesc = cmbStdStyle.Text.Trim();
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderManager.querySpecInfo", new object[] { sol.SpecCode }, this._ob);
if (dt != null && dt.Rows.Count > 0)
{
sol.Dimater = Convert.ToDecimal(dt.Rows[0]["DIMATER"].ToString());
sol.Height = Convert.ToDecimal(dt.Rows[0]["HEIGHT"].ToString());
}
else
{
MessageUtil.ShowWarning("您选择的规格已被作废!");
return null;
}
if (dRow == null)
{
sol.LenNo = one.LenNo;
sol.LenDesc = one.LenDesc;
sol.LenUnit = one.LenUnit;
sol.LenMin = one.LenMin;
sol.LenMax = one.LenMax;
sol.ShrtLenRato = one.ShrtLenRato;
sol.Shortest = one.Shortest;
sol.LongLenRato = one.LongLenRato;
sol.Longest = one.Longest;
sol.ShrtStove = one.ShrtStove;
sol.AvgLenMin = one.AvgLenMin;
sol.DifrncLenMax = one.DifrncLenMax;
sol.EndlenSpecstd = one.EndlenSpecstd;
sol.SiglLen = one.SiglLen;
}
else
{
sol.LenNo = dRow["LEN_NO"].ToString();
sol.LenDesc = dRow["LEN_DESC"].ToString();
sol.LenUnit = dRow["LEN_UNIT"].ToString();
sol.LenMin = Convert.ToDecimal(dRow["LEN_MIN"].ToString());
sol.LenMax = Convert.ToDecimal(dRow["LEN_MAX"].ToString());
if (dRow["SHRT_LEN_RATO"].ToString() != "")
{
sol.ShrtLenRato = Convert.ToDecimal(dRow["SHRT_LEN_RATO"].ToString());
}
else
{
sol.ShrtLenRato = null;
}
if (dRow["SHORTEST"].ToString() != "")
{
sol.Shortest = Convert.ToDecimal(dRow["SHORTEST"].ToString());
}
else
{
sol.Shortest = null;
}
if (dRow["LONG_LEN_RATO"].ToString() != "")
{
sol.LongLenRato = Convert.ToDecimal(dRow["LONG_LEN_RATO"].ToString());
}
else
{
sol.LongLenRato = null;
}
if (dRow["LONGEST"].ToString() != "")
{
sol.Longest = Convert.ToDecimal(dRow["LONGEST"].ToString());
}
else
{
sol.Longest = null;
}
sol.ShrtStove = dRow["SHRT_STOVE"].ToString();
if (dRow["AVG_LEN_MIN"].ToString() != "")
{
sol.AvgLenMin = Convert.ToDecimal(dRow["AVG_LEN_MIN"].ToString());
}
else
{
sol.AvgLenMin = null;
}
if (dRow["DIFRNC_LEN_MAX"].ToString() != "")
{
sol.DifrncLenMax = Convert.ToDecimal(dRow["DIFRNC_LEN_MAX"].ToString());
}
else
{
sol.DifrncLenMax = null;
}
if (dRow["ENDLEN_SPECSTD"].ToString() != "")
{
sol.EndlenSpecstd = Convert.ToDecimal(dRow["ENDLEN_SPECSTD"].ToString());
}
else
{
sol.EndlenSpecstd = null;
}
if (dRow["SIGL_LEN"].ToString() != "")
{
sol.SiglLen = Convert.ToDecimal(dRow["SIGL_LEN"].ToString());
}
else
{
sol.SiglLen = null;
}
}
sol.OrderUnit = cmbUnit.Text.Trim();
sol.OrderQty = Convert.ToDecimal(numQty.Value);
sol.DelvryRangeTpe = cmbDlyType.Text.Trim();
sol.DelvryRangeMin = Convert.ToDecimal(numDMin.Value);
sol.DelvryRangeMax = Convert.ToDecimal(numDMax.Value);
sol.FinalUser = txtFinallyUser.Text.Trim() == "" ? "N/A" : txtFinallyUser.Tag.ToString();
sol.FinalUserDesc = txtFinallyUser.Text.Trim() == "" ? "N/A" : txtFinallyUser.Text.Trim();
sol.Psc = "N/A";
sol.PscDesc = "N/A";
sol.OrderSpecCode = "N/A";
sol.OrderSpecDesc = "N/A";
if (dlyFlag == 1)
{
sol.OrderAddDesc = "";
}
else if (dlyFlag == 2)
{
sol.OrderAddDesc = txtDlyInfo.Text.Trim();
}
return sol;
}
///
/// 长度按钮点击
///
///
///
private void txtLength_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
frmOrderLen len = new frmOrderLen(_ob);
len.LenNo = "";
len.GetOrderLen += new frmOrderLen.GetOrderLenHander(len_GetOrderLen);
len.ShowDialog();
}
void len_GetOrderLen(DataRow lenRow)
{
dRow = lenRow;
txtLength.Text = lenRow["LEN_DESC"].ToString();
}
///
/// 最终用户点击
///
///
///
private void txtFinallyUser_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
FrmOrderBuyer buyer = new FrmOrderBuyer(_ob, _saleOrg, "100204");
buyer.GetOrderBuyer += new FrmOrderBuyer.GetOrderBuyerHander(buyer_GetOrderBuyer);
buyer.ShowDialog();
}
void buyer_GetOrderBuyer(UltraGridRow ugr)
{
if (ugr != null)
{
txtFinallyUser.Tag = ugr.Cells["CUSTOMER_NO"].Value.ToString();
txtFinallyUser.Text = ugr.Cells["CUSTOMER_NM"].Value.ToString();
}
else
{
txtFinallyUser.Tag = "";
txtFinallyUser.Text = "";
}
}
///
/// 设置控件的值
///
///
public void SetControlValue(SlmOrderLineNewEntity sol)
{
if (sol == null)
return;
one = sol;
cmbStdName.Text = sol.StdName;
cmbProName.Text = sol.Producname;
cmbSteel.Text = sol.Steelname;
cmbModel.Text = sol.ModelDesc;
cmbStdStyle.Text = sol.StdStyleDesc;
cmbSpec.Text = sol.SpecName;
txtLength.Text = sol.LenDesc;
numQty.Value = sol.OrderQty;
cmbUnit.Text = sol.OrderUnit;
numDMin.Value = sol.DelvryRangeMin;
numDMax.Value = sol.DelvryRangeMax;
cmbDlyType.Text = sol.DelvryRangeTpe;
txtFinallyUser.Text = sol.FinalUserDesc;
txtFinallyUser.Tag = sol.FinalUser;
if (dlyFlag == 1)
{
txtDlyInfo.Text = sol.DelvryDesc;
}
else if (dlyFlag == 2)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderManager.getPurLineAddDesc", new object[] { one.OrdLnPk }, this._ob);
if (dt != null && dt.Rows.Count > 0)
{
txtDlyInfo.Text = dt.Rows[0][0].ToString2();
}
else
{
txtDlyInfo.Text = "";
}
}
}
///
/// 清空控件的值
///
public void ClearControlValue()
{
cmbStdName.Text = "";
cmbProName.Text = "";
cmbSteel.Text = "";
cmbModel.Text = "";
cmbStdStyle.Text = "";
cmbSpec.Text = "";
txtLength.Text = "";
numQty.Value = "";
cmbUnit.Text = "";
numDMin.Value = "";
numDMax.Value = "";
cmbDlyType.Text = "";
txtFinallyUser.Text = "";
txtFinallyUser.Tag = "";
txtDlyInfo.Text = "";
}
///
/// 交货行弹窗
///
///
///
private void txtDlyInfo_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
if (e.Button.Key.Equals("normal"))
{
if (one == null || one.OrdLnPk == "")
{
MessageUtil.ShowWarning("请选择一行合同行或者新增一行合同行!");
return;
}
frmOrderDelivery delivery = new frmOrderDelivery(_ob);
delivery.ManageNo = one.OrdPk;
delivery.OrderNo = one.OrdLnPk;
delivery.OrderSeq = one.OrderSeq;
delivery.SaleOrg = _saleOrg;
delivery.ShRow = one.FinalUserDesc;
delivery.NumWt = one.OrderQty.ToString();
delivery.DlyTime = "";
delivery.DlyAddress = "";
delivery.LenUnit = one.LenUnit;
//根据估算重量公式计算
delivery.NumTag = Convert.ToString(OrderFunction.GetPrdctWgtNew(Convert.ToDecimal(one.OrderQty), one.OrderUnit, one.SpecCode, _ob));
//单位
delivery.OrderUnit = one.OrderUnit;
//DataSet,也许有记录,也许为空。
delivery.OrderSet = null;
//产品规格代码 numTag
delivery.Spec_code = one.SpecCode;
//保总长
delivery.Order_line_lne = 0;
delivery.GetOrderDelivery += new frmOrderDelivery.GetOrderDeliveryHander(delivery_GetOrderDelivery);
delivery.ShowDialog();
}
else if (e.Button.Key.Equals("update")) //修改加工备注(用于合同在后面流程中 发现加工备注不符合要求) 实现合同流程与加工备注确认分离
{
if (one.OrdLnPk == "")
{
MessageUtil.ShowWarning("请选择一行合同行或者新增一行合同行!");
return;
}
if (txtDlyInfo.Text.Trim() == "")
{
MessageUtil.ShowWarning("请输入加工备注!");
return;
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认修改该合同行的加工备注?") == DialogResult.No) return;
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderManager";
ccp.MethodName = "updateOrderAddDesc";
ccp.ServerParams = new object[] { txtDlyInfo.Text.Trim(), one.OrdLnPk, one.OrdPk };
ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp != null)
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnInfo);
return;
}
MessageUtil.ShowTips("加工备注修改成功!");
OnMyRefresh();
}
}
}
void delivery_GetOrderDelivery(DataSet ds)
{
string txtDly = "";
for (int i = 0; i < ds.Tables.Count; i++)
{
if (ds.Tables[i].TableName.Equals("Main"))
{
for (int k = 0; k < ds.Tables[i].Rows.Count; k++)
{
string ordLnDlyPk = ds.Tables[i].Rows[k]["ORD_LN_DLY_PK"].ToString();
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderLine.getOrderDlyTransit", new object[] { ordLnDlyPk }, this._ob);
string trasLine = "";
for (int n = 0; n < dt.Rows.Count; n++)
{
string agency = dt.Rows[n]["AGENCY_FL"].ToString();
if (agency == "0" || agency == "2") //买方线路
{
if (agency == "0")
trasLine += " 买方线路:";
else
{
trasLine += " 买方线路(买方代办):";
}
if (dt.Rows[n]["TRANSIT_TYP"].ToString() != "")
trasLine = trasLine + "运输方式:" + dt.Rows[n]["TRANSIT_TYP"].ToString();
if (dt.Rows[n]["DESTINATION"].ToString() != "")
trasLine = trasLine + " 目的地:" + dt.Rows[n]["DESTINATION"].ToString();
if (dt.Rows[n]["STATION_NO"].ToString() != "")
trasLine = trasLine + " 到站名称:" + dt.Rows[n]["STATION_NM"].ToString();
if (dt.Rows[n]["SPCL_LN_NO"].ToString() != "")
trasLine = trasLine + " 专用线名称:" + dt.Rows[n]["SPCL_LN_NM"].ToString();
if (dt.Rows[n]["PORT_NO"].ToString() != "")
trasLine = trasLine + " 港口/码头:" + dt.Rows[n]["PORT_DESC"].ToString();
if (dt.Rows[n]["CARRIER_UNIT"].ToString() != "")
trasLine = trasLine + " 承运单位:" + dt.Rows[n]["CARRIER_UNIT"].ToString();
if (dt.Rows[n]["RECEIVOR"].ToString() != "")
trasLine = trasLine + " 接货人:" + dt.Rows[n]["RECEIVOR"].ToString();
}
else
{
trasLine += " TPCO代办线路:";
if (dt.Rows[n]["TRANSIT_TYP"].ToString() != "")
trasLine = trasLine + " 运输方式:" + dt.Rows[n]["TRANSIT_TYP"].ToString();
if (dt.Rows[n]["DESTINATION"].ToString() != "")
trasLine = trasLine + " 目的地:" + dt.Rows[n]["DESTINATION"].ToString();
if (dt.Rows[n]["STATION_NO"].ToString() != "")
trasLine = trasLine + " 到站名称:" + dt.Rows[n]["STATION_NM"].ToString();
if (dt.Rows[n]["SPCL_LN_NO"].ToString() != "")
trasLine = trasLine + " 专用线名称:" + dt.Rows[n]["SPCL_LN_NM"].ToString();
if (dt.Rows[n]["PORT_NO"].ToString() != "")
trasLine = trasLine + " 港口/码头:" + dt.Rows[n]["PORT_DESC"].ToString();
if (dt.Rows[n]["CARRIER_UNIT"].ToString() != "")
trasLine = trasLine + " 承运单位:" + dt.Rows[n]["CARRIER_UNIT"].ToString();
if (dt.Rows[n]["RECEIVOR"].ToString() != "")
trasLine = trasLine + " 接货人:" + dt.Rows[n]["RECEIVOR"].ToString();
}
trasLine = trasLine + ";";
}
txtDly += "交货量:" + ds.Tables[i].Rows[k]["DELVRY_QTY"].ToString() + ";交货日期:" + ds.Tables[i].Rows[k]["DELVRY_EDATE"].ToString()
+ ";收货单位:" + ds.Tables[i].Rows[k]["RECEIV_NM"].ToString()
+ ";交货地点:" + ds.Tables[i].Rows[k]["DELVRY_ADDR"].ToString() + trasLine + "\r\n";
txtDlyInfo.Text = txtDly;
}
}
}
string ordLnPk = one.OrdLnPk;
int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderInfoUpdate.updateOrderLineDesc", new object[] { ordLnPk, txtDlyInfo.Text }, this._ob);
//if (count <= 0)
//{
// MessageUtil.ShowWarning("确认失败,请尝试重新确认!");
// return;
//}
OnMyRefresh();
}
}
}