using com.steering.pss.sale.order.model;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Tool;
using Core.StlMes.Client.Qcm;
using CoreFS.CA06;
using Infragistics.Win.UltraWinGrid;
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;
namespace Core.StlMes.Client.SaleOrder.Dialog
{
public partial class FrmStableMps : FrmBase
{
public FrmStableMps()
{
InitializeComponent();
}
public FrmStableMps(OpeBase _ob)
{
InitializeComponent();
this.ob = _ob;
}
private string msc = "";
private string finaUser = "";
private string finaUserDesc = "";
private string dimater = "";
private string height = "";
private string model = "";
private string ordLnPk = "";
///
/// 合同行号
///
public string OrdLnPk
{
get { return ordLnPk; }
set { ordLnPk = value; }
}
private string wdType = "1";
///
/// 弹出窗体的方式
///
public string WdType
{
get { return wdType; }
set { wdType = value; }
}
public delegate void FrmClosedRefresh();
public event FrmClosedRefresh frmClosedRefresh;
private void FrmStableMps_Load(object sender, EventArgs e)
{
EntityHelper.ShowGridCaption(gdMps.DisplayLayout.Bands[0]);
InitFormData(this.OrdLnPk);
if (WdType == "2")
{
QueryDataByFilter();
}
}
private void InitFormData(string ordLnPk)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreStableMps.queryOrdInfo", new object[] { ordLnPk }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
msc = dt.Rows[0]["MSC"].ToString2();
finaUser = dt.Rows[0]["FINAL_USER"].ToString2();
finaUserDesc = dt.Rows[0]["FINAL_USER_DESC"].ToString2();
dimater = dt.Rows[0]["DIMATER"].ToString2();
height = dt.Rows[0]["HEIGHT"].ToString2();
model = dt.Rows[0]["MODEL_CODE"].ToString2();
}
}
private void gdMps_AfterRowInsert(object sender, Infragistics.Win.UltraWinGrid.RowEventArgs e)
{
string mpsId = gdMps.Rows.Max(a => a.Cells["MPSID"].Value.ToString2());
if (mpsId == "")
{
e.Row.Cells["MPSID"].Value = DateTime.Now.ToString("yyyyMMdd") + "001";
}
else
{
if (mpsId.Substring(0, 8) == DateTime.Now.ToString("yyyyMMdd"))
e.Row.Cells["MPSID"].Value = DateTime.Now.ToString("yyyyMMdd") + (Convert.ToInt32(mpsId.Substring(8, 3)) + 1).ToString().PadLeft(3, '0');
else
e.Row.Cells["MPSID"].Value = DateTime.Now.ToString("yyyyMMdd") + "001";
}
e.Row.Cells["MSC"].Value = msc;
e.Row.Cells["FINAUSER"].Value = finaUser;
e.Row.Cells["FINAUSERDESC"].Value = finaUserDesc;
e.Row.Cells["DIMATERMIN"].Value = dimater;
e.Row.Cells["DIMATERMAX"].Value = dimater;
e.Row.Cells["HEIGHTMIN"].Value = height;
e.Row.Cells["HEIGHTMAX"].Value = height;
}
private void gdMps_ClickCellButton(object sender, CellEventArgs e)
{
gdMps.UpdateData();
if (e.Cell.Column.Key.Equals("ModelDesc"))
{
UltraGridRow ugr = gdMps.ActiveRow;
FrmModel fm = new FrmModel();
fm.FrmOb = this.ob;
fm.Desc = ugr.Cells["ModelDesc"].Value.ToString();
fm.ShowDialog();
if (fm.DialogResult != DialogResult.OK)
return;
ugr.Cells["ModelCode"].Value = fm.Code;
ugr.Cells["ModelDesc"].Value = fm.Desc;
}
}
private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
switch (e.Tool.Key)
{
case "Query":
if (WdType == "1")
{
QueryData();
}
else if (WdType == "2")
{
QueryDataByFilter();
}
break;
case "Save":
SaveData();
break;
case "Select":
SelectStableMps();
break;
case "Close":
this.Close();
break;
}
}
private void SelectStableMps()
{
gdMps.UpdateData();
UltraGridRow ugr = gdMps.ActiveRow;
if (ugr == null)
{
MessageUtil.ShowWarning("请选择您要引用的MPS!");
return;
}
if (ugr.Cells["MpsFileName"].Value.ToString2() == "")
{
MessageUtil.ShowWarning("您选择的MPS编号尚未上传MPS文本!");
return;
}
SlmOrderStableMpsEntity sos = (SlmOrderStableMpsEntity)ugr.ListObject;
int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreStableMps.selectStableMps", new object[] { sos, this.OrdLnPk }, this.ob);
if (count > 0)
{
MessageUtil.ShowTips("选择成功!");
DialogResult = DialogResult.OK;
}
else
{
MessageUtil.ShowWarning("选择失败,请尝试重新选择!");
}
}
///
/// 保存数据
///
private void SaveData()
{
gdMps.UpdateData();
UltraGridRow[] row = gdMps.Rows.AsQueryable().Where(a => a.Cells["CHK"].Value.ToString().ToUpper() == "TRUE").ToArray();
if (row.Length <= 0)
{
MessageUtil.ShowWarning("请选择需要保存的记录!");
return;
}
ArrayList parm = new ArrayList();
List list = new List();
foreach (var uRow in row)
{
SlmOrderStableMpsEntity sos = (SlmOrderStableMpsEntity)uRow.ListObject;
if (sos.MpsNo == "")
{
MessageUtil.ShowWarning("请输入MPS编号");
return;
}
if (sos.DimaterMin != "" && sos.DimaterMax != "")
{
if (Convert.ToDecimal(sos.DimaterMin) > Convert.ToDecimal(sos.DimaterMax))
{
MessageUtil.ShowWarning("外径下限不能超过上限!");
return;
}
}
if (sos.HeightMin != "" && sos.HeightMax != "")
{
if (Convert.ToDecimal(sos.HeightMin) > Convert.ToDecimal(sos.HeightMax))
{
MessageUtil.ShowWarning("壁厚下限不能超过上限");
return;
}
}
if (sos.Validflag == "") //新增
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreStableMps.queryMpsNoByNo", new object[] { sos.MpsNo }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
MessageUtil.ShowWarning("MpsId:【" + sos.MpsId + "】 Mps编号:【" + sos.MpsNo + "】 系统已经存在!");
return;
}
}
else
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreStableMps.queryMpsNoById", new object[] { sos.MpsId }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
if (dt.Rows[0][0].ToString2() != sos.MpsNo)
{
DataTable dt1 = ServerHelper.GetData("com.steering.pss.sale.order.CoreStableMps.queryMpsNoByNo", new object[] { sos.MpsNo }, this.ob);
if (dt1 != null && dt1.Rows.Count > 0)
{
MessageUtil.ShowWarning("MpsId:【" + sos.MpsId + "】 Mps编号:【" + sos.MpsNo + "】 系统已经存在!");
return;
}
}
}
}
if (list.Contains(sos.MpsNo))
{
MessageUtil.ShowWarning("MPS编号重复!");
return;
}
else
{
list.Add(sos.MpsNo);
}
sos.CreateName = UserInfo.GetUserName();
sos.UpdateName = UserInfo.GetUserName();
parm.Add(sos);
}
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CoreStableMps";
ccp.MethodName = "saveData";
ccp.ServerParams = new object[] { parm };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp != null)
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnInfo);
return;
}
MessageUtil.ShowTips("保存成功!");
if (WdType == "1")
{
QueryData();
}
else if (WdType == "2")
{
QueryDataByFilter();
}
}
}
private void MpsFile_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
UltraGridRow row = gdMps.ActiveRow;
if (row == null)
return;
string mpsId = row.Cells["MPSID"].Value.ToString();
if (e.Button.Key.Equals("upload")) // 上传
{
if (row.Cells["VALIDFLAG"].Value.ToString2() == "")
{
MessageUtil.ShowWarning("请先保存该记录,才可上传MPS文本!");
return;
}
string reStr = FlileUpload("Mps/" + ordLnPk);
if (reStr == "F")
{
MessageUtil.ShowWarning("上传失败,尝试重新上传!");
return;
}
else if (reStr == "N")
{
return;
}
row.Cells["MPSFILENAME"].Value = reStr;
if (updateStableMps(mpsId, "Mps/" + ordLnPk, reStr))
{
MessageUtil.ShowTips("上传成功!");
}
else
{
MessageUtil.ShowWarning("上传失败,尝试重新上传!");
}
}
else if (e.Button.Key.Equals("view")) //预览
{
if (row.Cells["VALIDFLAG"].Value.ToString2() == "")
{
MessageUtil.ShowWarning("暂无MPS文本可供查看!");
return;
}
string filePath = "Mps/" + ordLnPk;
string dbFilePath = "";
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreStableMps.selectMpsAddr", new object[] { row.Cells["MPSID"].Value.ToString2() }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
dbFilePath = dt.Rows[0][0].ToString();
}
else
{
MessageUtil.ShowWarning("暂无MPS文本可供查看!");
return;
}
string fpath = filePath;
if (dbFilePath != filePath)
fpath = dbFilePath;
dlgOrderAskDown down = new dlgOrderAskDown(this.ob, fpath);
down.ShowDialog();
if (down.CtrlFileDown1.List.Count == 0)
{
if (dbFilePath == filePath)
updateStableMps(mpsId, filePath, "");
row.Cells["MPSFILENAME"].Value = "";
}
}
}
///
/// 更新固定MPS
///
///
///
///
private bool updateStableMps(string mpsId, string mpsAddr, string p)
{
int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreStableMps.updateStableMps", new object[] { mpsId, mpsAddr, p }, this.ob);
if (count > 0)
{
return true;
}
else
{
return false;
}
}
public static string FlileUpload(string sFileName)
{
List list = new List();
FileBean bean = new FileBean();
OpenFileDialog file = new OpenFileDialog();
file.Multiselect = false; // file.Multiselect = true 改为 file.Multiselect = false
DialogResult drStat;
drStat = file.ShowDialog();
string fileList = "";
if (drStat == DialogResult.OK)
{
foreach (string fileName in file.FileNames)
{
bean = new FileBean();
string filena = System.IO.Path.GetFileName(fileName);
bean.setFileName(filena);
bean.setPathName(sFileName);
bean.setFile(FileHelper.FileToArray(fileName));
list.Add(bean);
fileList = filena;
}
bool isSuccess = false;
isSuccess = Core.Mes.Client.Comm.Server.FileHelper.Upload(list);
if (isSuccess)
{
return fileList;
}
else
{
return "F";
}
}
else
return "N"; //未选择文件
}
private void FrmStableMps_Shown(object sender, EventArgs e)
{
if (WdType == "1")
{
ultraToolbarsManager1.Toolbars[0].Tools["Select"].SharedProps.Visible = false;
}
}
private void QueryData()
{
string no = "";
string name = "";
if (mpsNo.Checked)
{
no = mpsNo.Text.Trim();
}
if (mpsName.Checked)
{
name = mpsName.Text.Trim();
}
List list = EntityHelper.GetData("com.steering.pss.sale.order.CoreStableMps.queryData", new object[] { no, name }, this.ob);
slmOrderStableMpsEntityBindingSource1.DataSource = list;
}
///
/// 根据过滤条件查询数据
///
private void QueryDataByFilter()
{
string no = "";
string name = "";
if (mpsNo.Checked)
{
no = mpsNo.Text.Trim();
}
if (mpsName.Checked)
{
name = mpsName.Text.Trim();
}
ArrayList parm = new ArrayList();
parm.Add(no);
parm.Add(name);
parm.Add(dimater);
parm.Add(dimater);
parm.Add(height);
parm.Add(height);
parm.Add(model);
parm.Add(msc);
parm.Add(finaUser);
List list = EntityHelper.GetData("com.steering.pss.sale.order.CoreStableMps.queryDataByFilter", new object[] { parm }, this.ob);
slmOrderStableMpsEntityBindingSource1.DataSource = list;
}
private void FrmStableMps_FormClosed(object sender, FormClosedEventArgs e)
{
if (frmClosedRefresh != null)
frmClosedRefresh();
}
}
}