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 CoreFS.CA06;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Control;
using Infragistics.Win.UltraWinGrid;
using Core.StlMes.Client.Qcm;
using Core.Mes.Client.Comm.Format;
using System.Collections;
using Core.Mes.Client.Comm.Tool;
using Core.StlMes.Client.SaleOrder.Dialog;
namespace Core.StlMes.Client.SaleOrder
{
public partial class frmOrderMpsUpdate : FrmBase
{
public frmOrderMpsUpdate()
{
InitializeComponent();
this.IsLoadUserView = true;
}
private string[] dataArr = null;
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
}
///
/// 来自于哪个界面 1交货期评审提报 2 交货期评审 3 合同行变更时的交货期
///
private string statusFrom = ""; //
private void frmOrderDeliveryReview_Load(object sender, EventArgs e)
{
uchkDate.Checked = true;
//默认查询当前日期-1月——当前日期数据。
udtEnd.DateTime = DateTime.Now;
udtStart.DateTime = DateTime.Now.AddMonths(-1);
if ("REPORT".Equals(this.CustomInfo)) //交货期评审提报
{
statusFrom = "1";
}
}
///
/// 重写基类toolBar方法
///
///
///
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "doQuery":
doQuery();
break;
case "doClose":
this.Close();
break;
case "InPutMpsNo":
InPutMpsNo();
break;
case "Save":
Save();
break;
case "AddMps":
AddMps();
break;
}
}
///
/// 维护MPS编号
///
private void InPutMpsNo()
{
UltraGridRow ugr = ultraGHead.ActiveRow;
if (ugr == null)
{
MessageUtil.ShowWarning("请选择一个需要维护MPS编号的合同!");
return;
}
string ordPk = ugr.Cells["ORD_PK"].Value.ToString();
//判断选择的合同是否需要维护MPS编号
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.getMpsFlag", new object[] { ordPk }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
if (!dt.Rows[0][0].ToString().Contains("1"))
{
MessageUtil.ShowWarning("您选择的合同不需要维护MPS编号!");
return;
}
}
else
{
MessageUtil.ShowWarning("您选择的合同合同行出现异常!");
return;
}
FrmInPutMpsNo pmn = new FrmInPutMpsNo(this.ob, ordPk);
pmn.ShowDialog();
doQuery();
foreach (UltraGridRow uRow in ultraGHead.Rows)
{
if (uRow.Cells["ORD_PK"].Value.ToString() == ordPk)
{
uRow.Activate();
break;
}
}
}
///
/// 查询出技术评审通过的合同头信息。
///
private void doQuery()
{
string orderNo = utxtOrderNo.Text.Trim();
string orderStart = "1000-01-01 00:00:01";
string orderEnd = "9999-12-31 23:59:59";
TimeSpan ts = udtEnd.DateTime.Subtract(udtStart.DateTime);
if (ts.TotalDays < 0)
{
MessageBox.Show("创建开始日期必须小于创建结束日期。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
if (uchkDate.Checked)
{
orderStart = udtStart.DateTime.ToString("yyyy-MM-dd") + " 00:00:01";
orderEnd = udtEnd.DateTime.ToString("yyyy-MM-dd") + " 23:59:59";
}
string[] arr = this.ValidDataPurviewIds;
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.doQueryMpsUpdate", new Object[] { orderNo, orderStart, orderEnd, arr }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.orderHeadDt, true);
if (dt.Rows.Count > 0)
{
//列自适应
GridHelper.RefreshAndAutoSizeExceptRows(ultraGHead, new UltraGridColumn[] { });
ultraGHead.UpdateData();
}
else
{
slm_order_line.Rows.Clear();
}
}
private void bindSlmOrderLine(string orderPk)
{
if (ultraGHead.ActiveRow == null)
{
MessageBox.Show("请先选择合同头信息!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
this.slm_order_line.Clear();
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreDeliveryReview.GetOrderLineForMpsUpdate", new Object[] { orderPk, statusFrom }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.slm_order_line, true);
GridHelper.SetExcludeColumnsActive(ultraGridOrderLine.DisplayLayout.Bands[0], "MPS_NO_INPUT");
//列自适应
UltraGridColumn[] col = new UltraGridColumn[] { ultraGridOrderLine.DisplayLayout.Bands[0].Columns["LEN_DESC"], ultraGridOrderLine.DisplayLayout.Bands[0].Columns["STD_NAME"]
, ultraGridOrderLine.DisplayLayout.Bands[0].Columns["PSC_DESC"] };
GridHelper.RefreshAndAutoSizeExceptColumns(ultraGridOrderLine, col);
ultraGridOrderLine.UpdateData();
}
///
/// 带出合同行信息和交货行信息。
///
///
///
private void ultraGHead_AfterRowActivate(object sender, EventArgs e)
{
if (ultraGHead.ActiveRow != null)
{
string orderPk = ultraGHead.ActiveRow.Cells["ORD_PK"].Value.ToString();
bindSlmOrderLine(orderPk);
}
}
private void uchkOrderNo_CheckedChanged(object sender, EventArgs e)
{
utxtOrderNo.ReadOnly = !uchkOrderNo.Checked;
}
///
/// 创建日期是否有效
///
///
///
private void uchkDate_CheckedChanged(object sender, EventArgs e)
{
if (uchkDate.Checked)
{
udtStart.ReadOnly = false;
udtEnd.ReadOnly = false;
}
else
{
udtStart.ReadOnly = true;
udtEnd.ReadOnly = true;
}
}
///
/// cellChange事件
///
///
///
private void ultraGridOrderLine_CellChange(object sender, CellEventArgs e)
{
if (e.Cell.Column.Key.Equals("DELVRY_EDATE"))
return;
ultraGridOrderLine.UpdateData();
if (e.Cell.Column.Key.Equals("CHK"))
{
if (Convert.ToBoolean(e.Cell.Value))
{
for (int i = 0; i < e.Cell.Row.Cells.Count; i++)
{
e.Cell.Row.Cells[i].Activation = Activation.AllowEdit;
}
}
else
{
for (int i = 0; i < e.Cell.Row.Cells.Count; i++)
{
if (e.Cell.Row.Cells[i].Column.Key.Equals("CHK"))
{
e.Cell.Row.Cells[i].Activation = Activation.AllowEdit;
}
else
e.Cell.Row.Cells[i].Activation = Activation.ActivateOnly;
}
}
}
}
private string deliveryInsertPk = "";
private int deliveryInsertSeq = 0;
private void utxtOrderNo_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
doQuery();
}
private void AddMps()
{
ultraGridOrderLine.UpdateData();
UltraGridRow ugr = ultraGridOrderLine.ActiveRow;
if (ugr == null)
{
MessageUtil.ShowWarning("请选择一行合同行!");
return;
}
FrmStableMps fsm = new FrmStableMps(this.ob);
fsm.OrdLnPk = ugr.Cells["ORD_LN_PK"].Value.ToString();
fsm.WindowState = FormWindowState.Maximized;
fsm.ShowDialog();
}
///
/// 保存
///
private void Save()
{
ultraGridOrderLine.UpdateData();
ArrayList parm = new ArrayList();
foreach (UltraGridRow ugr in ultraGridOrderLine.Rows)
{
string inputMpsNo = ugr.Cells["MPS_NO_INPUT"].Value.ToString();
string mpsFile = ugr.Cells["MPS_FILE"].Value.ToString();
if (inputMpsNo == "")
{
MessageUtil.ShowWarning("请输入确认后的MPS编号!");
ugr.Activate();
return;
}
if (mpsFile == "")
{
MessageUtil.ShowWarning("请上传MPS文本文件!");
ugr.Activate();
return;
}
string ordLnPk = ugr.Cells["ORD_LN_PK"].Value.ToString();
ArrayList list = new ArrayList();
list.Add(inputMpsNo);
//list.Add(mpsFile);
list.Add(ordLnPk);
parm.Add(list);
}
if (MessageUtil.ShowYesNoAndQuestion("是否确定保存输入的MPS编号") == DialogResult.No) return;
int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreInPutMpsNo.saveMpsLine", new object[] { parm }, this.ob);
if (count > 0)
{
MessageUtil.ShowTips("确认后的MPS编号保存成功!");
//this.Close();
}
}
///
/// GRID按钮
///
///
///
private void MpsFile_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
if (e.Button.Key.Equals("upload")) // 上传
{
UltraGridRow row = ultraGridOrderLine.ActiveRow;
if (row == null)
return;
string ordLnPk = row.Cells["ORD_LN_PK"].Value.ToString();
if ("".Equals(ordLnPk))
return;
Core.Mes.Client.Comm.Server.FileHelper.Delete("Mps/" + ordLnPk);
string reStr = FlileUpload("Mps/" + ordLnPk);
if (reStr == "F")
{
MessageUtil.ShowWarning("上传失败,尝试重新上传!");
return;
}
else if (reStr == "N")
{
return;
}
row.Cells["MPS_FILE"].Value = reStr;
row.Cells["MPS_NO_FILE"].Value = "最近上传的MPS文本 " + reStr;
if (updateOrderLineMps(reStr, ordLnPk))
{
MessageUtil.ShowTips("上传成功!");
}
else
{
MessageUtil.ShowWarning("上传失败,尝试重新上传!");
}
}
else if (e.Button.Key.Equals("view")) //预览
{
UltraGridRow row = ultraGridOrderLine.ActiveRow;
if (row == null)
return;
string ordLnPk = row.Cells["ORD_LN_PK"].Value.ToString();
string filePath = "Mps/" + ordLnPk;
//引用的地址
string dbFilePath = "";
bool isNull = false;
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreInPutMpsNo.selectMpsAddr", new object[] { ordLnPk }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
dbFilePath = dt.Rows[0][0].ToString();
}
else
{
isNull = true;
}
//引用地址存在 优先显示引用地址的文件
string fpath = filePath;
if (dbFilePath != filePath && isNull == false)
fpath = dbFilePath;
dlgOrderAskDown down = new dlgOrderAskDown(this.ob, fpath);
down.ShowDialog();
if (down.CtrlFileDown1.List.Count == 0)
{
if (dbFilePath == filePath)
updateOrderLineMps("", ordLnPk);
row.Cells["MPS_FILE"].Value = "";
row.Cells["MPS_NO_FILE"].Value = "无MPS文件";
}
}
}
private bool updateOrderLineMps(string mpsFile, string ordLnPk)
{
//更新合同行地址文件信息
int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreInPutMpsNo.updateMpsLine", new object[] { mpsFile, ordLnPk }, 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 stableMps_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
if (e.Button.Key.Equals("select"))
{
ultraGridOrderLine.UpdateData();
UltraGridRow ugr = ultraGridOrderLine.ActiveRow;
if (ugr == null)
{
MessageUtil.ShowWarning("请选择一行合同行!");
return;
}
FrmStableMps fsm = new FrmStableMps(this.ob);
fsm.OrdLnPk = ugr.Cells["ORD_LN_PK"].Value.ToString();
fsm.WindowState = FormWindowState.Maximized;
fsm.WdType = "2";
fsm.frmClosedRefresh += fsm_frmClosedRefresh;
fsm.ShowDialog();
}
}
void fsm_frmClosedRefresh()
{
bindSlmOrderLine(ultraGHead.ActiveRow.Cells["ORD_PK"].Value.ToString());
}
}
}