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;
using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Tool;
using Core.StlMes.Client.SaleOrder.BLL;
using Core.StlMes.Client.SaleOrder.Control;
using CoreFS.CA06;
using CoreFS.SA06;
using Infragistics.Win.UltraWinGrid;
namespace Core.StlMes.Client.SaleOrder.Dialog
{
public partial class CraftOrdDesignFilePopup : FrmBase
{
private ArrayList _listOrdLnPk;
private CraftFileApplyCtrl _craftFileApplyCtrl;
private PlaSaleOrdProcCtrl _plaSaleOrdProcCtrl;
private bool _isMultiChoice = false;
public bool IsMultiChoice
{
get { return _isMultiChoice; }
set { _isMultiChoice = value; }
}
private string _craftNos = "";
public string CraftNos
{
get { return _craftNos; }
set { _craftNos = value; }
}
public CraftOrdDesignFilePopup()
{
InitializeComponent();
}
public CraftOrdDesignFilePopup(ArrayList listOrdLnPk, string customInfo, OpeBase ob)
{
InitializeComponent();
this.ob = ob;
this.CustomInfo = customInfo;
this._listOrdLnPk = listOrdLnPk;
craftImg.ButtonsRight.Clear();
Query();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
ultraGrid1.DisplayLayout.Override.FilterOperandStyle = FilterOperandStyle.UseColumnEditor;
}
private void CraftOrdDesignFilePopup_Load(object sender, EventArgs e)
{
if (CustomInfo == "CraftAppFile")
{
_craftFileApplyCtrl = new CraftFileApplyCtrl(splitContainer1.Panel2, ob);
}
else if (CustomInfo == "PlaOrdProc")
{
craftImg.ButtonsRight.Clear();
_plaSaleOrdProcCtrl = new PlaSaleOrdProcCtrl(splitContainer1.Panel2, ob, "CraftFile");
}
else if (CustomInfo == "CraftQuery")
{
craftImg.ButtonsRight.Clear();
this.splitContainer1.Panel2Collapsed = true;
this.ultraGrid1.DisplayLayout.Bands[0].Columns["CHK"].Hidden = true;
ultraGrid1.DisplayLayout.Bands[0].Override.AllowUpdate = Infragistics.Win.DefaultableBoolean.False;
ultraGrid1.DisplayLayout.Bands[0].Override.AllowDelete = Infragistics.Win.DefaultableBoolean.False;
ckValid.Visible = true;
ckValid.Checked = true;
}
else if (CustomInfo == "AppointCraftFile")
{
craftImg.ButtonsRight.Clear();
this.splitContainer1.Panel2Collapsed = true;
}
else if (CustomInfo == "AppointTmpCraftFile")
{
craftImg.ButtonsRight.Clear();
this.splitContainer1.Panel2Collapsed = true;
}
else if(CustomInfo == "ChoiceCraftNo")
{
craftImg.ButtonsRight.Clear();
this.splitContainer1.Panel2Collapsed = true;
ultraToolbarsManager1.Tools["确认选择"].SharedProps.Visible = true;
ultraToolbarsManager1.Tools["指定工艺文件"].SharedProps.Visible = false;
}
if (CustomInfo != "CraftQuery")
{
Query();
}
}
public override void ToolBar_Click(object sender, string ToolbarKey)
{
base.ToolBar_Click(sender, ToolbarKey);
switch (ToolbarKey)
{
case "Query":
Query();
break;
case "SavePsc":
SavePsc();
break;
case "SetMemo":
SetMemo();
break;
case "DeleteCraft":
DeleteCraft();
break;
case "InvalidCraftFile":
InvalidCraftFile("0");
break;
case "ValidCraftFile":
InvalidCraftFile("1");
break;
case "BatchDownLoad":
BatchDownLoad();
break;
case "Export":
GridHelper.ulGridToExcel(ultraGrid1, "工艺文件信息");
break;
}
}
///
/// 批量下载文件
///
public void BatchDownLoad()
{
if (ultraGrid1.Selected.Rows.Count <= 0)
{
MessageUtil.ShowWarning("请拖选您要批量下载的工艺文件!");
return;
}
List pathList = new List();
foreach (UltraGridRow uRow in ultraGrid1.Selected.Rows)
{
if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow))
{
string filePathOld = uRow.GetValue("CRAFT_PATH_OLD");
if (filePathOld != "")
pathList.Add(filePathOld);
}
}
dlgOrderAskDown down = new dlgOrderAskDown(this.ob, pathList);
down.DeleteButton.Visible = false;
down.ShowDialog();
//打开下载后的文件夹
if (down.Pic != "")
System.Diagnostics.Process.Start("Explorer.exe", down.Pic);
}
private void InvalidCraftFile(string validflag)
{
IQueryable rows = ultraGrid1.Rows.AsQueryable().Where(a => a.GetValue("CHK") == "True");
if (rows.Count() == 0)
{
MessageUtil.ShowWarning("请选择一条记录!");
return;
}
string craftKey = rows.First().GetValue("CRAFT_KEY");
string craftNo = rows.First().GetValue("CRAFT_NO");
string craftNoV = rows.First().GetValue("CRAFT_NO_V");
if (MessageUtil.ShowYesNoAndQuestion(string.Format("是否确认{0}该工艺文件!",
(validflag == "0" ? "作废" : "恢复"))) == System.Windows.Forms.DialogResult.No)
{
return;
}
ServerHelper.SetData("com.steering.pss.sale.order.ReviewForm.CoreOrderReviewTechnology.invalidCraftFile",
new object[] { craftKey, validflag }, ob);
MessageUtil.ShowTips((validflag == "0" ? "作废" : "恢复") + "成功!");
Relocate(craftNo, craftNoV);
}
private void SavePsc()
{
_craftFileApplyCtrl.Save();
}
public void Query()
{
try
{
this.Cursor = Cursors.WaitCursor;
string craftNo = "";
string memo = "";
string validflag = "999";
if (labelTextBox1.Checked)
craftNo = labelTextBox1.Text.Trim();
if (labelTextBox2.Checked)
memo = labelTextBox2.Text.Trim();
if (ckValid.Checked)
validflag = "1";
DataTable dt = ServerHelper.GetData(
"com.steering.pss.sale.order.ReviewForm.CoreOrderReviewTechnology.getCraftOrdDesignFile",
new object[] { CustomInfo, craftNo, memo, labelCheckBox1.Checked.ToString(), validflag }, ob);
GridHelper.CopyDataToDatatable(dt, this.dataTable1, true);
string[] craftNos = _craftNos.Split(',');
foreach (UltraGridRow row in ultraGrid1.Rows)
{
row.Cells["MEMO"].Activation = Activation.ActivateOnly;
if (CustomInfo == "ChoiceCraftNo" && craftNos.Contains(row.GetValue("CRAFT_NO")))
{
row.SetValue("CHK", "True");
}
}
if (ckValid.Checked)
{
ultraGrid1.DisplayLayout.Bands[0].Columns["EFFECT_TIME"].Hidden = false;
}
else
{
ultraGrid1.DisplayLayout.Bands[0].Columns["EFFECT_TIME"].Hidden = true;
}
}
finally
{
this.Cursor = Cursors.Default;
}
}
private void Relocate(string craftNo, string craftNoV)
{
Query();
IQueryable rows = ultraGrid1.Rows.AsQueryable().Where(
a => a.GetValue("CRAFT_NO") == craftNo && a.GetValue("CRAFT_NO_V") == craftNoV);
if (rows.Count() > 0)
{
rows.First().Activate();
}
}
private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
switch (e.Tool.Key)
{
case "指定工艺文件":
AppointCraft();
break;
case "确认选择":
Choice();
break;
case "Query":
Query();
break;
}
}
private void Choice()
{
ultraGrid1.UpdateData();
IQueryable rows = ultraGrid1.Rows.AsQueryable().Where("CHK = 'True'");
//if (rows.Count() == 0)
//{
// MessageUtil.ShowWarning("请选择一行记录!");
// return;
//}
_craftNos = string.Join(",", rows.Select(a => a.GetValue("CRAFT_NO")));
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
private bool SaveCraft()
{
ultraGrid1.UpdateData();
IQueryable rows = ultraGrid1.Rows.AsQueryable().Where(a => a.GetValue("CHK") == "True");
UltraGridRow row = null;
if (rows.Count() > 0)
{
row = rows.First();
if (row.GetValue("CREATE_TIME") != "")
{
MessageUtil.ShowWarning("不能修改已保存的工艺文件!");
return false;
}
}
else
{
MessageUtil.ShowWarning("请选择一行记录!");
return false;
}
ArrayList list = new ArrayList();
list.Add(row.GetValue("CRAFT_NO"));
list.Add(row.GetValue("CRAFT_NO_V"));
list.Add(row.GetValue("CRAFT_PATH_OLD"));
list.Add(CoreUserInfo.UserInfo.GetUserName());
list.Add(row.GetValue("CRAFT_KEY"));
ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.insertCraftOrdDesignFile",
new object[] { list }, ob);
return true;
}
private void UpgradeCraft()
{
}
private void AppointCraft()
{
ultraGrid1.UpdateData();
IQueryable rows = ultraGrid1.Rows.AsQueryable().Where(a => a.GetValue("CHK") == "True");
if (rows.Count() == 0)
{
MessageUtil.ShowWarning("请选择一条工艺文件进行指定!");
return;
}
foreach (ArrayList list in _listOrdLnPk)
{
DataTable dtCraftDesignSts = GetCraftDesignSts(list[2].ToString());
if (dtCraftDesignSts.Rows.Count > 0)
{
if (dtCraftDesignSts.Rows[0]["DESIGN_STS"].ToString() != "S"
|| dtCraftDesignSts.Rows[0]["VALIDFLAG"].ToString() != "2")
{
MessageUtil.ShowWarning("请选择制定中并且设计状态通过的合同行进行指定工艺!");
return;
}
}
else
{
MessageUtil.ShowWarning("请选择制定中并且设计状态通过的合同行进行指定工艺!");
return;
}
}
ArrayList parm = new ArrayList();
foreach (ArrayList list in _listOrdLnPk)
{
if (GetCraftValidCntByOrdLnPk(list[2].ToString()) > 0)
{
if (MessageUtil.ShowYesNoAndQuestion("合同号" + list[0].ToString() + " 合同行" + list[1].ToString()
+ "存在有效的工艺文件,是否确认重新指定工艺文件?") == System.Windows.Forms.DialogResult.Yes)
{
parm.Add(list[2]);
}
}
else
{
parm.Add(list[2]);
}
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认指定工艺文件?") == System.Windows.Forms.DialogResult.No)
{
return;
}
string craftNo = rows.First().GetValue("CRAFT_NO");
string craftPath = rows.First().GetValue("CRAFT_PATH_OLD");
string craftNoV = rows.First().GetValue("CRAFT_NO_V");
string memo = rows.First().GetValue("MEMO");
string name = UserInfo.GetUserName();
ServerHelper.SetData("com.steering.pss.sale.order.ReviewForm.CoreOrderReviewTechnology.saveCraftNoBatch",
new object[] { parm, craftNo, craftPath, craftNoV, memo, name }, ob);
MessageUtil.ShowTips("指定成功!");
this.Close();
}
private DataTable GetCraftDesignSts(string ordLnPk)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreOrderReviewTechnology.getCraftDesignSts",
new object[] { ordLnPk }, ob);
return dt;
}
private void ultraGrid1_CellChange(object sender, CellEventArgs e)
{
ultraGrid1.UpdateData();
if (e.Cell.Column.Key == "CHK" && !_isMultiChoice)
{
if (e.Cell.Value.ToString() == "True")
{
e.Cell.Row.Cells["MEMO"].Activation = Activation.AllowEdit;
IQueryable rows = ultraGrid1.Rows.AsQueryable().Where(
a => ((a.GetValue("CRAFT_NO") != e.Cell.Row.GetValue("CRAFT_NO")
|| a.GetValue("CRAFT_NO_V") != e.Cell.Row.GetValue("CRAFT_NO_V"))
&& a.GetValue("CHK") == "True"));
if (rows.Count() > 0)
{
rows.First().Cells["MEMO"].Activation = Activation.ActivateOnly;
rows.First().Cells["CHK"].Value = false;
}
}
else
{
e.Cell.Row.Cells["MEMO"].Activation = Activation.ActivateOnly;
}
}
ultraGrid1.UpdateData();
}
private void craftImg_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
UltraGridRow row = ultraGrid1.ActiveRow;
string filePathOld = row.GetValue("CRAFT_PATH_OLD");
string filePathNew = "";
if (e.Button.Key.ToLower().Equals("select"))
{
dlgOrderAskDown down = new dlgOrderAskDown(this.ob, filePathOld);
down.DeleteButton.Visible = false;
down.ShowDialog();
}
else if (e.Button.Key.ToLower().Equals("insert"))
{
string guid = Guid.NewGuid().ToString("N").ToUpper();
dlgOrderAskDown down = new dlgOrderAskDown(this.ob, filePathOld);
down.CtrlFileDown1.FilePath = filePathOld;
if (down.CtrlFileDown1.List.Count > 0)
{
MessageUtil.ShowWarning("只能上传一份文件!");
return;
}
List list = new List();
FileBean bean = new FileBean();
OpenFileDialog file = new OpenFileDialog();
file.Multiselect = false;
DialogResult drStat;
drStat = file.ShowDialog();
if (drStat == DialogResult.OK)
{
string fileName = file.FileName;
string filena = System.IO.Path.GetFileName(fileName);
string craftNo = filena.Split('.')[0];
if (!craftNo.ToUpper().Contains("SJ") && !craftNo.ToUpper().Contains("KZ"))
{
MessageUtil.ShowWarning("工艺文件号必须包含SJ或者KZ!");
return;
}
filePathNew = "Qcm/Craft/" + guid + "/";
row.Cells["CRAFT_NO"].Value = craftNo;
row.Cells["CRAFT_PATH"].Value = filena;
row.Cells["CRAFT_PATH_OLD"].Value = filePathNew + filena;
row.Cells["CRAFT_NO_V"].Value = "00";
row.Cells["CREATE_NAME"].Value = CoreUserInfo.UserInfo.GetUserName();
row.Cells["CRAFT_KEY"].Value = guid;
//if (GetCraftCraftNoCnt(craftNo) > 0)
//{
// MessageUtil.ShowWarning("该工艺文件号已被录入为单次使用工艺文件,不能再录入为多次使用的工艺文件!");
// return;
//}
string strCraftNoV = GetCraftFileMaxCraftNoV(craftNo);
if (GetCraftFileCraftNoCnt(craftNo) > 0)
{
//row.Cells["CRAFT_NO_V"].Value = strCraftNoV;
//if (MessageUtil.ShowYesNoAndQuestion("系统已存在该工艺文件号,是否确认升级版本到"+ strCraftNoV +"?") == DialogResult.No)
//{
// Relocate(guid);
// return;
//}
MessageUtil.ShowWarning("系统已存在此工艺文件号!");
return;
}
if (SaveCraft() == false) return;
bean = new FileBean();
bean.setFileName(filena);
bean.setPathName(filePathNew);
bean.setFile(FileHelper.FileToArray(fileName));
list.Add(bean);
bool isSuccess = Core.Mes.Client.Comm.Server.FileHelper.Upload(list);
if (isSuccess)
{
MessageBox.Show("上传成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question);
}
else
{
MessageBox.Show("上传失败", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question);
}
Relocate(row.GetValue("CRAFT_NO"), row.GetValue("CRAFT_NO_V"));
}
//if (fileName != "")
//{
// if (row.GetValue("CRAFT_NO") == "")
// {
// row.Cells["CRAFT_NO"].Value = fileName;
// }
// down.DeleteButton.Visible = _isPopup;
// down.Pic = filePath2;
// down.ShowDialog();
// if (down.CtrlFileDown1.List.Count == 0)
// {
// craftOrdDesign.CraftPath = "";
// _craftOrdDesignBLL.UpdateCraftPath(craftOrdDesign, "0", "1");
// ultraGrid1.ActiveRow.Cells["CraftPath"].Value = "";
// }
//}
}
}
private void SetMemo()
{
IQueryable rows = ultraGrid1.Rows.AsQueryable().Where(a => a.GetValue("CHK") == "True");
if (rows.Count() == 0)
{
MessageUtil.ShowWarning("请选择一条记录!");
return;
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认修改备注信息?") == System.Windows.Forms.DialogResult.No)
{
return;
}
string craftNo = rows.First().GetValue("CRAFT_NO");
string craftNoV = rows.First().GetValue("CRAFT_NO_V");
string memo = rows.First().GetValue("MEMO");
string craftKey = rows.First().GetValue("CRAFT_KEY");
ServerHelper.SetData("com.steering.pss.sale.order.ReviewForm.CoreOrderReviewTechnology.setCraftFile",
new object[] { craftNo, memo, craftKey }, ob);
MessageUtil.ShowTips("修改成功!");
Relocate(craftNo, craftNoV);
}
private void DeleteCraft()
{
IQueryable rows = ultraGrid1.Rows.AsQueryable().Where(a => a.GetValue("CHK") == "True");
if (rows.Count() == 0)
{
MessageUtil.ShowWarning("请选择一条记录!");
return;
}
string craftKey = rows.First().GetValue("CRAFT_KEY");
string craftNo = rows.First().GetValue("CRAFT_NO");
string craftNoV = rows.First().GetValue("CRAFT_NO_V");
string ordLnPk = rows.First().GetValue("ORD_LN_PK");
string craftSeq = rows.First().GetValue("CRAFT_SEQ");
string craftFilePathOld = rows.First().GetValue("CRAFT_PATH_OLD");
CraftOrdDesignBLL craftOrdDesignBLL = new CraftOrdDesignBLL(ob);
DataTable dtCraftFile = GetCraftFileByPk(craftKey);
if (rows.First().GetValue("CRAFT_TYPE") == "G" && dtCraftFile.Rows[0]["VALIDFLAG"].ToString() != "0")
{
MessageUtil.ShowWarning("只能删除已作废的工艺文件!");
return;
}
if (rows.First().GetValue("CRAFT_TYPE") == "G" && craftOrdDesignBLL.GetCraftCraftNoCnt(craftNo) > 0)
{
MessageUtil.ShowWarning("该工艺文件号已被合同行使用,不能删除!");
return;
}
CraftOrdDesignEntity craftOrdDesignEntity = new CraftOrdDesignEntity();
if (rows.First().GetValue("CRAFT_TYPE") == "L")
{
craftOrdDesignEntity = craftOrdDesignBLL.QueryByPk(new CraftOrdDesignEntity()
{
OrdLnPk = ordLnPk,
CraftSeq = decimal.Parse(craftSeq)
});
}
if (rows.First().GetValue("CRAFT_TYPE") == "L" && craftOrdDesignEntity.Validflag != "0")
{
MessageUtil.ShowWarning("只能删除已作废的工艺文件!");
return;
}
if (rows.First().GetValue("CRAFT_TYPE") == "L" && craftOrdDesignBLL.GetCraftNoCntOutLn(craftNo, craftNoV, ordLnPk) > 0)
{
MessageUtil.ShowWarning("该工艺文件号已被其它合同使用,不能删除!");
return;
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认删除该工艺文件?") == System.Windows.Forms.DialogResult.No)
{
return;
}
if (FileHelper.Delete(craftFilePathOld) == false)
{
MessageUtil.ShowWarning("删除工艺文件失败,请重试!");
return;
}
ServerHelper.SetData("com.steering.pss.sale.order.ReviewForm.CoreOrderReviewTechnology.deleteCraftFile",
new object[] { craftKey, craftNo, craftNoV }, ob);
MessageUtil.ShowTips("删除成功!");
Relocate(craftNo, craftNoV);
}
private int GetCraftFileCraftNoCnt(string craftNo)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.getCraftFileCraftNoCnt",
new object[] { craftNo }, ob);
return int.Parse(dt.Rows[0][0].ToString());
}
private DataRow GetCraftFileByPk(string craftNo, string craftNoV)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.getCraftFileByPk",
new object[] { craftNo, craftNoV }, ob);
return dt.Rows[0];
}
private string GetCraftFileMaxCraftNoV(string craftNo)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.getCraftFileMaxCraftNoV",
new object[] { craftNo }, ob);
return dt.Rows[0][0].ToString();
}
private int GetCraftCraftNoCnt(string craftNo)
{
CraftOrdDesignBLL craftOrdDesignBLL = new CraftOrdDesignBLL(ob);
return craftOrdDesignBLL.GetCraftCraftNoCnt(craftNo);
}
private void ultraGrid1_BeforeRowInsert(object sender, BeforeRowInsertEventArgs e)
{
if (CustomInfo != "CraftAppFile" && CustomInfo != "PlaOrdProc")
{
e.Cancel = true;
}
}
private int GetCraftValidCntByOrdLnPk(string ordLnPk)
{
CraftOrdDesignBLL craftOrdDesignBLL = new CraftOrdDesignBLL(ob);
return craftOrdDesignBLL.GetCraftValidCntByOrdLnPk(ordLnPk);
}
///
/// 通过主键获取工艺文件
///
///
///
private DataTable GetCraftFileByPk(string craftKey)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreOrderReviewTechnology.getCraftFileByPk",
new object[] { craftKey }, ob);
return dt;
}
private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
{
ultraGrid1.UpdateData();
UltraGridRow row = ultraGrid1.ActiveRow;
if (CustomInfo == "CraftAppFile")
{
_craftFileApplyCtrl.Query(new CraftFileApplyEntity()
{
CraftNo = row.GetValue("CRAFT_NO"),
CraftNoV = row.GetValue("CRAFT_NO_V"),
CraftKey = row.GetValue("CRAFT_KEY")
});
}
else if (CustomInfo == "PlaOrdProc")
{
_plaSaleOrdProcCtrl.Query(new PlnSaleordProcEntity()
{
CraftFileNo = row.GetValue("CRAFT_NO"),
CraftNoV = row.GetValue("CRAFT_NO_V")
}, "");
}
}
private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e)
{
//if (e.Row.GetValue("VALIDFLAG") == "无效")
//{
// e.Row.Appearance.ForeColor = Color.Red;
//}
e.Row.Cells["ADD_ASK"].Value = "查看";
}
private void ultraGrid1_ClickCellButton(object sender, CellEventArgs e)
{
UltraGridRow row = ultraGrid1.ActiveRow;
if (row == null) return;
string craftKey = row.Cells["CRAFT_KEY"].Value.ToString();
string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepTechOrderLineAsk.cpt&op=view&desgin_key=" + craftKey + "";
FrmRepExcel fre = new FrmRepExcel(this.ob, url);
//fre.AutoSize = true;
fre.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
fre.Text = "附加要求";
fre.ShowDialog();
}
}
}