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.Control;
using System.Collections;
using Core.Mes.Client.Comm.Tool;
using Core.Mes.Client.Comm.Server;
namespace Core.StlMes.Client.SaleOrder
{
public partial class frmOrderReviewManager : FrmBase
{
public frmOrderReviewManager()
{
InitializeComponent();
}
private void che_date_CheckedChanged(object sender, EventArgs e)
{
if (che_date.Checked)
{
date_starte.ReadOnly = false;
date_end.ReadOnly = false;
}
else
{
date_starte.ReadOnly = true;
date_end.ReadOnly = true;
}
}
private void ord_no_CheckedChanged(object sender, EventArgs e)
{
orde_cho.Enabled = ord_no.Checked;
}
private void app_no_CheckedChanged(object sender, EventArgs e)
{
app_chm.Enabled = app_no.Checked;
}
private void frmOrderReviewManager_Load(object sender, EventArgs e)
{
this.date_starte.DateTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")).AddMonths(-1);
this.date_end.DateTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")).AddDays(1).AddSeconds(-1);
Appstatus();
}
///
/// 绑定评审状态
///
private void Appstatus()
{
DataTable dt = Globals.GetData("com.steering.pss.sale.order.CoreOrderReviewLaw.appStatus", null, this.ob);
app_chm.DataSource = dt;
app_chm.DisplayMember = "BASENAME";
app_chm.ValueMember = "BASECODE";
}
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "doQuery":
this.Query();
break;
case "doAdd":
this.doAdd();//提报评审
break;
case "doClose":
this.Close();
break;
}
}
///
/// 提报技术评审
///
public void doAdd()
{
if (ultraGrid2.Rows.Count == 0)
{
MessageUtil.ShowTips("没有可提报的数据!");
return;
}
if (ultraGrid2.ActiveRow.Cells["ORDER_STS"].Value.ToString() == "待技术评审")
{
MessageUtil.ShowTips("当前这条数据已经进行提报!");
return;
}
//int count = ServerHelper.SetData("com.steering.pss.sale.order.CopyOrderApproval.getThOrderStatus", new object[] { ultraGrid2.ActiveRow.Cells["ORD_PK"].Value.ToString() }, this.ob);
//if (count < 0)
//{
// MessageUtil.ShowWarning("请等待天淮合同技术评审,交货期通过!");
// return;
//}
//if (count == 1)
//{
// MessageUtil.ShowWarning("配套服务科未确认下发,无法提报!");
// return;
//}
if (ultraGrid2.ActiveRow.Cells["ORDER_STS"].Value.ToString() == "待提报评审")
{
if (MessageUtil.ShowYesNoAndQuestion("是否评审提报选择的合同?") == DialogResult.No) return;
ArrayList a1 = new ArrayList();
string reviewSrc = "H";
a1.Add(reviewSrc);
a1.Add(ultraGrid2.ActiveRow.Cells["ORD_PK"].Value.ToString());//pk值
a1.Add(this.UserInfo.GetUserName());
a1.Add(ultraGrid2.ActiveRow.Cells["ORD_PK"].Value.ToString());
string ordertype = "";
if (ultraGrid2.ActiveRow.Cells["ORDER_TYPCODE"].Value.ToString().Equals("120102")
|| ultraGrid2.ActiveRow.Cells["ORDER_TYPCODE"].Value.ToString().Equals("120105")) //现货合同和贸易
{
ordertype = "A";
}
else
{
ordertype = "B";
}
//先进行质量设计 看合同是否满足评审提报的要求。 否则不能提报
if (ordertype != "A")
{
string errMsg = doQuality(); //质量设计
if (errMsg != "")
{
MessageUtil.ShowWarning(errMsg + "不能提报技术评审,请修改合同信息,重新提报!");
return;
}
//质量设计预处理这是判断合同信息合理性
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReviewManager.getOrderDesignKey", new object[] { ultraGrid2.ActiveRow.Cells["ORD_PK"].Value.ToString() }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
if (!dt.Rows[0][0].ToString().Equals("0"))
{
MessageUtil.ShowWarning("质量设计预处理失败,请尝试重新提报!");
return;
}
}
}
string name = UserInfo.GetUserName();
string dept1 = ClsBaseInfo.GetDepartBySectionIdChangeSale(UserInfo.GetDeptid(), this.ob);
dept1 = dept1 + "-" + UserInfo.GetDepartment();
string saleOrg = ClsBaseInfo.GetSaleOrg(UserInfo.GetDeptid());
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderReviewManager";
ccp.MethodName = "coreOrderReviewManagerReport";
ccp.ServerParams = new object[] { a1, ordertype, name, dept1, saleOrg };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp == null)
return;
else
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnObject.ToString());
return;
}
}
//这一段代码并到上面的方法 在后台以一个事务处理
/* if (ordertype != "A")
{
string dept = ClsBaseInfo.GetDepartBySectionId(UserInfo.GetDeptid(), this.ob);
CoreClientParam ccp1 = new CoreClientParam();
ccp1.IfShowErrMsg = false;
ccp1.ServerName = "com.steering.pss.sale.order.CoreOrderReviewManager";
ccp1.MethodName = "updateReviewItemListStatus";
ccp1.ServerParams = new object[] { ultraGrid2.ActiveRow.Cells["ORD_PK"].Value.ToString(), UserInfo.GetUserName(), dept + "-" + UserInfo.GetDepartment() };
ccp1 = this.ExecuteNonQuery(ccp1, CoreInvokeType.Internal);
}*/
MessageUtil.ShowTips("提报成功!");
Query();
}
else
{
MessageUtil.ShowTips("当前这条数据不是待提报评审!");
return;
}
}
///
/// 质量设计
///
private string doQuality()
{
//执行数据库相关操作
string returnMsg = "";
CoreClientParam ccp = new CoreClientParam();
//这三个参数 合同行的三个参数 ordPk ordLnPk 以及合同行号 不能为空
for (int i = 0; i < ultraGrid9.Rows.Count; i++)
{
string ordPk = ultraGrid2.ActiveRow.Cells["ORD_PK"].Value.ToString();
string ordLnPk = ultraGrid9.Rows[i].Cells["ORD_LN_PK"].Value.ToString();
string ordSeq = ultraGrid9.Rows[i].Cells["ORDER_SEQ"].Value.ToString();
ArrayList param = new ArrayList();
param.Add("SYSTEM");
//服务端的包名+类名
ccp.ServerName = "com.steering.pss.sale.order.qualityDesign.QualityDesignMain";
//类里的方法名
ccp.MethodName = "qualityDesign";
ccp.ServerParams = new object[] { ordPk, ordLnPk, ordSeq, param };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnInfo != "")
{
returnMsg = ordSeq+" "+ccp.ReturnInfo;
return returnMsg;
}
}
return returnMsg;
}
public void Query()
{
designStatus1.DoClear();
dataSet1.Clear();
String beginTime = "";
String endTime = "";
//合同号
string order = "";
if (ord_no.Checked)
{
order = orde_cho.Text.Trim();
}
if (che_date.Checked)
{
beginTime = date_starte.DateTime.ToString("yyyy-MM-dd") + "00:00:01";
endTime = date_end.DateTime.ToString("yyyy-MM-dd") + "23:59:59";
}
else
{
beginTime = "1000-01-01 00:00:01";
endTime = "9999-12-31 23:59:59";
}
//评审状态
string appstatus = "";
if (app_no.Checked)
{
appstatus = app_chm.Value.ToString().Trim();
}
string[] arr = this.ValidDataPurviewIds;
string supp = this.CustomInfo.Contains("120504") ? "120504" : "";
DataTable dt = Globals.GetData("com.steering.pss.sale.order.CoreOrderReviewManager.CoreOrderReviewManagerHeadQuery", new Object[] { order, appstatus, beginTime, endTime, arr, supp }, this.ob);
ultraGrid2.DataSource = dt;
}
public void doQueryeReview(string orderReview)
{
DataTable dt1 = Globals.GetData("com.steering.pss.sale.order.CoreOrderReviewManager.CoreOrderReviewManagerReviewQuery", new Object[] { orderReview }, this.ob);
GridHelper.CopyDataToDatatable(ref dt1, ref this.orderReviewDw, true);
}
private void doQueryOrder(string ordermodel)
{
DataTable dt1 = Globals.GetData("com.steering.pss.sale.order.CoreOrderReviewLaw.ordermodelQuery", new Object[] { ordermodel }, this.ob);
GridHelper.CopyDataToDatatable(ref dt1, ref this.orderlawDp, true);
}
private void doQueryeffect(string order)
{
DataTable dt = Globals.GetData("com.steering.pss.sale.order.CoreOrderReviewManager.CoreOrderReviewManagerSqeQuery", new Object[] { order }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.orderLineDt, true);
if (dt.Rows.Count > 0)
{
for (int i = 0; i < ultraGrid9.Rows.Count; i++)
{
if (ultraGrid9.Rows[i].Cells["ASSEL_FL"].Value.ToString() == "1")
{
ultraGrid9.Rows[i].Cells["ASSEL_FL"].Value = true;
}
else
{
ultraGrid9.Rows[i].Cells["ASSEL_FL"].Value = false;
}
if ("1".Equals(ultraGrid9.Rows[i].Cells["VALIDFLAG"].Value.ToString()))
{
ultraGrid9.Rows[i].Cells["VALIDFLAG"].Value = true;
}
else
{
ultraGrid9.Rows[i].Cells["VALIDFLAG"].Value = false;
}
if ("1".Equals(ultraGrid9.Rows[i].Cells["MPS_FL"].Value.ToString()))
{
ultraGrid9.Rows[i].Cells["MPS_FL"].Value = true;
}
else
{
ultraGrid9.Rows[i].Cells["MPS_FL"].Value = false;
}
if ("1".Equals(ultraGrid9.Rows[i].Cells["PRODUCER_FL"].Value.ToString()))
{
ultraGrid9.Rows[i].Cells["PRODUCER_FL"].Value = true;
}
else
{
ultraGrid9.Rows[i].Cells["PRODUCER_FL"].Value = false;
}
}
}
}
private void ultraGrid2_AfterRowActivate(object sender, EventArgs e)
{
this.doQueryeffect(ultraGrid2.ActiveRow.Cells["ORD_PK"].Text);
this.doQueryOrder(ultraGrid2.ActiveRow.Cells["ORDER_MODEL_NO"].Text);
this.doQueryeReview(ultraGrid2.ActiveRow.Cells["ORD_PK"].Text);
designStatus1.DoQuery(ultraGrid2.ActiveRow.Cells["ORDER_NO"].Text.Trim(), this.ob);
}
private void orde_cho_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
Query();
}
}
}