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 System.Collections;
using Core.Mes.Client.Comm.Tool;
using Core.StlMes.Client.SaleOrder.Dialog;
using Infragistics.Win;
using Core.StlMes.Client.SaleOrder.ReviewForm;
using Core.Mes.Client.Comm.Format;
namespace Core.StlMes.Client.SaleOrder.OrderForm
{
///
/// 合同审批提报
///
public partial class frmOrderApproval : FrmBase
{
public frmOrderApproval()
{
InitializeComponent();
}
bool queryAll = false; //所有生效
bool queryPass = false; //价格放行通过的合同
string saleOrg = "";
///
/// 价格评审窗体是否打开 (原来模态形式,现在用非模态形式打开)
///
private bool isOpened = false;
///
/// 重写基类方法
///
///
///
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "doQuery":
doQuery();
break;
case "doPrice":
doPriceN();
break;
case "ChgePrice":
ChgePrice();
break;
case "doReport":
DoReport();
break;
case "doCancel":
DoCancel();
break;
case "BackDelivery":
if (saleOrg != "100102")
BackToDelivery();
else
{
BackToDeliveryIE();
}
break;
case "BackEdit":
BackEdit(); //现货合同退回
break;
//case "BackDeliveryIE":
// BackToDeliveryIE();
// break;
//分界面按钮
case "doThrough":
DoOrderPass();
break;
case "doRollback":
DoOrderRollBack();
break;
case "Export":
GridHelper.ulGridToExcel(ultraGridHead, "合同审批提报");
break;
case "doClose":
this.Close();
break;
}
}
///
/// 审批退回
///
private void DoOrderRollBack()
{
ultraGridHead.UpdateData();
ArrayList parm = new ArrayList();
int count = 0;
foreach (UltraGridRow row in ultraGridHead.Rows)
{
if (row.Cells["CHK"].Value.ToString().ToUpper() == "TRUE")
{
string ordPk = row.Cells["ORD_PK"].Value.ToString();
count += 1;
parm.Add(ordPk);
}
}
if (count == 0)
{
MessageBox.Show("请选择需要审批退回的数据。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
if (MessageUtil.ShowQuestion("确认审批退回?").ToString().ToLower().Equals("yes"))
{
string dept = ClsBaseInfo.GetDepartBySectionIdChangeSale(UserInfo.GetDeptid(), this.ob);
string name = UserInfo.GetUserName(); //操作人
dept = dept + "-" + UserInfo.GetDepartment(); //部门-科室
//主管审批退回:12020222
if (this.CustomInfo.Contains("director"))
{
dlgReviewMemo dlg = new dlgReviewMemo();
dlg.ReviewFlag = 0;
dlg.ReviewSatus = "审批退回";
dlg.ShowDialog();
string reviewMemo = dlg.ReviewMemo;
if (dlg.DialogResult != DialogResult.OK)
return;
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CopyOrderApproval";
ccp.MethodName = "reviewBack";
ccp.ServerParams = new object[] { parm, name, dept, reviewMemo, saleOrg };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp == null)
return;
else
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnObject.ToString());
return;
}
}
doQuery();
}
else if (this.CustomInfo.Contains("manager"))
{
dlgReviewMemo dlg = new dlgReviewMemo();
dlg.ReviewFlag = 0;
dlg.ReviewSatus = "审批退回";
dlg.ShowDialog();
string reviewMemo = dlg.ReviewMemo;
if (dlg.DialogResult != DialogResult.OK)
return;
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CopyOrderApproval";
ccp.MethodName = "reviewBackManager";
ccp.ServerParams = new object[] { parm, name, dept, reviewMemo };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp == null)
return;
else
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnObject.ToString());
return;
}
}
doQuery();
}
}
}
///
/// 审批通过
///
private void DoOrderPass()
{
ultraGridHead.UpdateData();
ArrayList parm = new ArrayList();
int count = 0;
foreach (UltraGridRow row in ultraGridHead.Rows)
{
if (row.Cells["CHK"].Value.ToString().ToUpper() == "TRUE")
{
if (row.Cells["ORDER_STS"].Value.ToString() == "12020251")
{
MessageUtil.ShowWarning("合同已经评审通过!");
return;
}
count += 1;
string ordPk = row.Cells["ORD_PK"].Value.ToString();
parm.Add(ordPk);
}
}
if (count == 0)
{
MessageBox.Show("请选择需要操作的数据。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
string dept = ClsBaseInfo.GetDepartBySectionIdChangeSale(UserInfo.GetDeptid(), this.ob);
string name = UserInfo.GetUserName(); //操作人
dept = dept + "-" + UserInfo.GetDepartment(); //部门-科室
if (MessageUtil.ShowQuestion("确认审批通过?").ToString().ToLower().Equals("yes"))
{
//主管审批通过:12020222
if (this.CustomInfo.Contains("director"))
{
dlgReviewMemo dlg = new dlgReviewMemo();
dlg.ReviewFlag = 1;
dlg.ReviewSatus = "审批通过";
dlg.ShowDialog();
string reviewMemo = dlg.ReviewMemo;
if (dlg.DialogResult != DialogResult.OK)
return;
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CopyOrderApproval";
ccp.MethodName = "reviewPass";
ccp.ServerParams = new object[] { parm, name, dept, reviewMemo, saleOrg };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp == null)
return;
else
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnObject.ToString());
return;
}
//if ("100101".Equals(saleOrg))
if (this.CustomInfo.Equals("director-120504"))// 天淮系统审批价格法务
{
automaticExamine(parm, "SYSTEM", dept, reviewMemo);
}
}
doQuery();
}
else if (this.CustomInfo.Contains("manager"))
{
//评审说明
dlgReviewMemo dlg = new dlgReviewMemo();
dlg.ReviewFlag = 1;
dlg.ReviewSatus = "审批通过";
dlg.ShowDialog();
string reviewMemo = dlg.ReviewMemo;
if (dlg.DialogResult != DialogResult.OK)
return;
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CopyOrderApproval";
ccp.MethodName = "reviewPassManager";
ccp.ServerParams = new object[] { parm, name, dept, reviewMemo };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp == null)
return;
else
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnObject.ToString());
return;
}
}
doQuery();
}
}
}
private void automaticExamine(ArrayList parm, string name, string dept, string reviewMemo)
{
// 主管经理审批
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CopyOrderApproval";
ccp.MethodName = "reviewPassManager";
ccp.ServerParams = new object[] { parm, name, dept, reviewMemo };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning("主管经理审批自动审批失败!");
return;
}
// 价格审批
foreach (var ordPk in parm)
{
SlmOrderPriceEntity sop = new SlmOrderPriceEntity();
sop.DealName = name;
sop.DealUnitcode = UserInfo.GetDeptid();
sop.DealUnitdesc = UserInfo.GetDepartment();
sop.DealDeptcode = ClsBaseInfo.GetDepartIdBySectionId(UserInfo.GetDeptid(), this.ob);
sop.DealDeptdesc = ClsBaseInfo.GetDepartBySectionId(UserInfo.GetDeptid(), this.ob);
CoreClientParam ccp1 = new CoreClientParam();
ccp1.IfShowErrMsg = false;
ccp1.ServerName = "com.steering.pss.sale.order.CorePriceConfirm";
ccp1.MethodName = "passPrice";
ccp1.ServerParams = new object[] { ordPk, name, "营销管理部-价格管理科", JSONFormat.Format(sop), "", new ArrayList() };
ccp1 = this.ExecuteNonQuery(ccp1, CoreInvokeType.Internal);
if (ccp1.ReturnCode == -1)
{
MessageUtil.ShowWarning("价格审批自动审批失败!");
return;
}
}
// 法务审批
CoreClientParam ccp2 = new CoreClientParam();
ccp2.IfShowErrMsg = false;
ccp2.ServerName = "com.steering.pss.sale.order.CoreOrderReviewLaw";
ccp2.MethodName = "lawReviewPass";
ccp2.ServerParams = new object[] { parm, name, "销售总公司-合同管理科", reviewMemo };
ccp2 = this.ExecuteNonQuery(ccp2, CoreInvokeType.Internal);
if (ccp2.ReturnCode == -1)
{
MessageUtil.ShowWarning("法务审批自动审批失败!");
return;
}
}
///
/// 定价内容
///
private void doPrice()
{
UltraGridRow ugr = ultraGridHead.ActiveRow;
if (ugr == null)
{
}
if (ultraGridHead.ActiveRow == null)
{
MessageBox.Show("请选择合同头数据。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
frmOrderPriceDetails opDetails = new frmOrderPriceDetails();
opDetails.ob = this.ob;
// opDetails.OrdPk = ultraGridHead.ActiveRow.Cells["ORD_PK"].Value.ToString();
ArrayList parms = new ArrayList();
ArrayList priceNoParms = new ArrayList();
foreach (UltraGridRow row in ultraGridHead.Rows)
{
if (row.Selected || row.Activated)
{
parms.Add(row.Cells["ORD_PK"].Value.ToString());
priceNoParms.Add(row.Cells["PRICE_NO"].Value.ToString());
}
}
//string[] strs = priceNoParms.Cast().Distinct().ToArray();
int selectedCount = ultraGridHead.Rows.AsQueryable().Where(a => a.Selected == true).Count();
int count = ultraGridHead.Rows.AsQueryable().Where(a => a.Selected == true
&& ultraGridHead.ActiveRow.Cells["PRICE_NO"].Value.ToString() == a.Cells["PRICE_NO"].Value.ToString()).Count();
if (selectedCount == count)
{
opDetails.ShowDialog();
}
else
{
MessageBox.Show("选中合同头定价编号不一致,无法进行定价维护。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
}
///
/// 修正合同头状态
///
///
private void UpdateHeadStatus(string ordPk, string hStatus, string hStatusDesc)
{
//获取当前选中合同头主键,修正当前合同头主键下面全部合同行,全部交货行状态为交货期评审通过。
//执行数据库相关操作
CoreClientParam ccp = new CoreClientParam();
//服务端的包名+类名
ccp.ServerName = "com.steering.pss.sale.order.CopyOrderApproval";
//类里的方法名
ccp.MethodName = "UpdateHeadStatus";
//带一个审批人和时间。
ccp.ServerParams = new object[] { ordPk, hStatus, hStatusDesc, UserInfo.GetUserName() };
try
{
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
}
catch (Exception ex)
{
MessageBox.Show("错误提示:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (ccp.ReturnCode == -1)
{
return;
}
else
{
//MessageBox.Show("提报成功。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
doQuery();
foreach (UltraGridRow row in ultraGridHead.Rows)
{
if (ordPk.Equals(row.Cells["ORD_PK"].Value.ToString()))
{
row.Activate();
break;
}
}
}
}
///
/// 查询功能
///
private void doQuery()
{
string orderNo = ultraTextOrder.Text.Trim();
string orderStart = "";
string orderEnd = "";
if (uchkDate.Checked)
{
orderStart = ultraDateTimeSta.DateTime.ToString("yyyy-MM-dd") + " 00:00:01";
orderEnd = ultraDateTimeEnd.DateTime.ToString("yyyy-MM-dd") + " 23:59:59";
}
else
{
orderStart = "1000-01-01 00-00-01";
orderEnd = "9999-01-01 23-59-59";
}
if (!ultraCheckOrder.Checked)
{
orderNo = "";
}
DataTable dt = new DataTable();
//合同头状态为“交货期评审通过/审批退回(业务主管或主管经理)/价格评审失败/法务评审失败/待提报审批/待审批”的合同
List list = null;
if (this.CustomInfo.Contains("approval"))
{
if (queryAll == false && queryPass == false)
{
list = new List() { "12020212", "12020221", "12020223", "12020231", "12020241", "12020213", "12020220", orderNo, saleOrg, orderStart, orderEnd };
}
else if (queryAll == true)
{
list = new List() { orderNo, saleOrg, orderStart, orderEnd };
}
else if (queryPass == true)
{
list = new List() { orderNo, saleOrg, orderStart, orderEnd };
}
}
//主管
else if (this.CustomInfo.Contains("director")) //queryAll在此处无效 只为跟服务端统一
{
list = new List() { "12020220", "12020220", "12020220", "12020220", "12020220", "12020220", "12020220", orderNo, saleOrg, orderStart, orderEnd };
//展示内容:待审批12020220
}
//经理
else if (this.CustomInfo.Contains("manager")) //queryAll在此处无效 只为跟服务端统一
{
list = new List() { "12020222", "12020222", "12020222", "12020222", "12020222", "12020222", "12020220", orderNo, saleOrg, orderStart, orderEnd };
}
else
{
return;
}
string[] arr = this.ValidDataPurviewIds;
string supp = this.CustomInfo.Contains("120504") ? "120504" : "";
dt = ServerHelper.GetData("com.steering.pss.sale.order.CopyOrderApproval.doGetQuery", new Object[] { list, this.CustomInfo, arr, saleOrg, queryAll, queryPass, supp }, this.ob);
if (dt.Rows.Count <= 0)
{
this.orderLine.Rows.Clear();
this.slmOrderModelItem.Rows.Clear();
this.slmOrderPrice.Rows.Clear();
}
GridHelper.CopyDataToDatatable(ref dt, ref this.orderHead, true);
//列自适应
//GridHelper.RefreshAndAutoSizeExceptColumns(ultraGridHead, new UltraGridColumn[] { });
}
///
/// 查询定位功能
///
private void doQuery(string ord_pk)
{
dataSetOrder.Clear();
string orderNo = ultraTextOrder.Text.Trim();
//string orderSts = "'120210','120211','120212','120213'";
string orderStart = ultraDateTimeSta.DateTime.ToShortDateString();
string orderEnd = ultraDateTimeEnd.DateTime.ToShortDateString();
if (!uchkDate.Checked)
{
orderStart = ultraDateTimeSta.MinDate.ToShortDateString();
orderEnd = ultraDateTimeSta.MaxDate.ToShortDateString();
}
if (!ultraCheckOrder.Checked)
{
orderNo = "";
}
DataTable dt = new DataTable();
if (this.CustomInfo.Contains("doQueryReport"))
{
dt = ServerHelper.GetData("com.steering.pss.sale.order.CopyOrderApproval.doGetQuery", new Object[] { orderNo, orderStart, orderEnd, "12020204", "12020205", "", "" }, this.ob);
}
if (this.CustomInfo.Contains("doQueryReports"))
{
dt = ServerHelper.GetData("com.steering.pss.sale.order.CopyOrderApproval.doGetQuery", new Object[] { orderNo, orderStart, orderEnd, "12020205", "12020206", "12020207", "" }, this.ob);
}
GridHelper.CopyDataToDatatable(ref dt, ref this.orderHead, true);
foreach (UltraGridRow row in ultraGridHead.Rows)
{
if ("1".Equals(row.Cells["CUSTOMER_MODEL_FL"].Value))
{
row.Cells["CUSTOMER_MODEL_FL"].Value = true;
}
else
{
row.Cells["CUSTOMER_MODEL_FL"].Value = false;
}
if ("1".Equals(row.Cells["VALIDFLAG"].Value))
{
row.Cells["VALIDFLAG"].Value = true;
row.Appearance.ForeColor = Color.Black;
}
else
{
row.Cells["VALIDFLAG"].Value = false;
row.Appearance.ForeColor = Color.Red;
}
if (ord_pk.Equals(row.Cells["ORD_PK"].Value.ToString()))
{
row.Activate();
}
}
if (dt.Rows.Count <= 0)
{
this.orderHead.Rows.Clear();
}
//列自适应
GridHelper.RefreshAndAutoSizeExceptRows(ultraGridHead, new UltraGridColumn[] {
});
}
private void ultraCheckOrder_CheckedChanged(object sender, EventArgs e)
{
if (ultraCheckOrder.Checked)
{
this.ultraTextOrder.ReadOnly = false;
}
else
{
this.ultraTextOrder.ReadOnly = true;
}
}
private void uchkDate_CheckedChanged(object sender, EventArgs e)
{
if (uchkDate.Checked)
{
ultraDateTimeSta.ReadOnly = false;
ultraDateTimeEnd.ReadOnly = false;
}
else
{
ultraDateTimeSta.ReadOnly = true;
ultraDateTimeEnd.ReadOnly = true;
}
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
}
private void ultraGridLine_AfterRowActivate(object sender, EventArgs e)
{
}
///
/// 单纯审批提报
///
///
///
///
///
///
///
///
private bool orderstsUpdate(string ord_pk, string orderstsType, string orderstsDesc, string oldOrdersts)
{
ArrayList parms = new ArrayList();
parms.Add(orderstsType);
parms.Add(orderstsDesc);
//加入审批人和审批时间
parms.Add(UserInfo.GetUserName());
parms.Add(ord_pk);
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.sale.order.CopyOrderApproval";
ccp.MethodName = "doUpdateHeadOrder";
ccp.ServerParams = new object[] { parms };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1)
{
return false;
}
else
{
ArrayList parmsHead = new ArrayList();
parmsHead.Add(orderstsType);
parmsHead.Add(orderstsDesc);
parmsHead.Add(oldOrdersts);
parmsHead.Add("合同审批管理(frmOrderApproval.cs)");
parmsHead.Add(ord_pk);
parms = new ArrayList();
parms.Add(orderstsType);
parms.Add(oldOrdersts);
parms.Add("合同审批管理(frmOrderApproval.cs)");
parms.Add(ord_pk);
ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderManager";
ccp.MethodName = "upOrderHeadLineDelivery";
ccp.ServerParams = new object[] { parms, parmsHead };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1)
{
return false;
}
return true;
}
}
private bool orderstsUpdateMeMo(string ord_pk, string orderstsType, string orderstsDesc, string MeMo, string oldOrdersts)
{
ArrayList parms = new ArrayList();
parms.Add(orderstsType);
parms.Add(orderstsDesc);
parms.Add(MeMo);
parms.Add(ord_pk);
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.sale.order.CopyOrderApproval";
ccp.MethodName = "doUpdateHeadOrderMeMo";
ccp.ServerParams = new object[] { parms };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1)
{
return false;
}
else
{
ArrayList parmsHead = new ArrayList();
parmsHead.Add(orderstsType);
parmsHead.Add(orderstsDesc);
parmsHead.Add(oldOrdersts);
parmsHead.Add("合同评审管理(frmOrderApproval.cs),评审回退");
parmsHead.Add(ord_pk);
parms = new ArrayList();
parms.Add(orderstsType);
parms.Add(oldOrdersts);
parms.Add("合同评审管理(frmOrderApproval.cs),评审回退");
parms.Add(ord_pk);
ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.sale.order.CoreOrderManager";
ccp.MethodName = "upOrderHeadLineDelivery";
ccp.ServerParams = new object[] { parms, parmsHead };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1)
{
return false;
}
return true;
}
}
private void frmOrderApproval_Load(object sender, EventArgs e)
{
InitTime();
if (this.CustomInfo != "approval" && this.CustomInfo != "approval-120504")
{
chkQueryAll.Visible = false;
chkPass.Visible = false;
}
utSaleorg.ValueList = ClsBaseInfo.GetSaleOrgByValid(this.ValidDataPurviewIds);
saleOrg = ClsBaseInfo.GetSaleOrg(UserInfo.GetDeptid());
utSaleorg.Value=saleOrg;
if (saleOrg == "100102")
{
chkPass.Visible = false;
ultraGridHead.DisplayLayout.Bands[0].Groups[0].Hidden = true;
}
if (utSaleorg.ValueList.ValueListItems.Count > 1)
{
ultraLabel30.Visible = true;
utSaleorg.Visible = true;
}
}
private void ultraGridHead_AfterRowActivate(object sender, EventArgs e)
{
ultraGridHead.UpdateData();
UltraGridRow ugr = ultraGridHead.ActiveRow;
if (ugr != null)
{
String ordPk = ugr.Cells["ORD_PK"].Value.ToString();
String orderModelNo = ugr.Cells["ORDER_MODEL_NO"].Value.ToString();
String priceNo = ugr.Cells["PRICE_NO"].Value.ToString();
if (ultraTabControl1.SelectedTab.Key.Equals("1"))
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CopyOrderApproval.doGetLineOrder", new Object[] { ordPk }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.orderLine, true);
}
else if (ultraTabControl1.SelectedTab.Key.Equals("2"))
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CopyOrderApproval.doGetModelItem", new Object[] { orderModelNo }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.slmOrderModelItem, true);
}
else if (ultraTabControl1.SelectedTab.Key.Equals("3"))
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CopyOrderApproval.GetOrderPriceList", new Object[] { priceNo, ordPk }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.slmOrderPrice, true);
}
else if (ultraTabControl1.SelectedTab.Key.Equals("4"))
{
textBox1.Text = getPriceBase(ordPk);
}
else
{
designStatus1.DoQuery(ultraGridHead.ActiveRow.Cells["ORDER_NO"].Value.ToString(), this.ob);
}
foreach (UltraGridCell cell in ugr.Cells)
{
if (!cell.Column.Key.Equals("CHK"))
cell.Activation = Activation.ActivateOnly;
}
}
//列自适应
GridHelper.RefreshAndAutoSizeExceptRows(ultraGridLine, new UltraGridColumn[] {
});
}
private void ultraDateTimeSta_ValueChanged(object sender, EventArgs e)
{
ultraDateTimeSta.FormatString = "yyyy-MM-dd";
}
///
/// 初始时间控件 2015/06/18
///
private void InitTime()
{
ultraDateTimeSta.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")).AddMonths(-1);
ultraDateTimeEnd.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")).AddHours(24).AddSeconds(-1);
}
///
/// 查询合同头状态/定价编号 2015/06/18
///
/// 合同头号
///
private String[] getOrderHeadStatus(String ordPk)
{
String[] status = null;
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CopyOrderApproval.getOrdPkStatus", new Object[] { ordPk }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
status = new String[2];
status[0] = dt.Rows[0][0].ToString();
status[1] = dt.Rows[0][1].ToString();
}
return status;
}
///
/// 获取价格评审单的状态
///
///
///
private String getOrderPriceStatus(String priceNo)
{
String status = "";
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CopyOrderApproval.getOrderPriceStatus", new Object[] { priceNo }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
status = dt.Rows[0][0].ToString();
}
return status;
}
///
/// 提报审批
///
private void DoReport()
{
ultraGridHead.UpdateData();
ArrayList parm = new ArrayList();
int count = 0;
string pk = "";
foreach (UltraGridRow ugr in ultraGridHead.Rows)
{
if (ugr.Cells["CHK"].Value.ToString().ToUpper() == "TRUE")
{
count += 1;
ArrayList list = new ArrayList();
string ordPk = ugr.Cells["ORD_PK"].Value.ToString().Trim();
string orderNo = ugr.Cells["ORDER_NO"].Value.ToString().Trim();
string orderType = ugr.Cells["ORDER_TYP"].Value.ToString().Trim();
//合同头状态
String[] statuses = getOrderHeadStatus(ordPk);
if (statuses == null)
{
MessageUtil.ShowWarning("合同" + orderNo + "状态异常,不能提报审批");
return;
}
string status = statuses[0];
string priceNo = statuses[1];
int flag = 0; //是否需要进行价格维护
if (orderType == "120104")
{
flag = 1; //预排合同不需要定价
}
else
{
if (orderNo.StartsWith("TH"))
{
flag = 1; // 天淮成品合同不需要定价,取天管合同价格,维护内部价格
} else if (saleOrg.Equals("100102"))
{
flag = 1; //国贸公司跳过价格维护
}
else
{
if (priceNo.Length > 0)
{
string sts = getOrderPriceStatus(priceNo);
if (sts != "W")
{
MessageUtil.ShowWarning("价格评审不是待审状态,无法提报!");
return;
}
flag = 1;
}
else
{
flag = 0;
}
}
}
DataTable dt1 = ServerHelper.GetData("com.steering.pss.glbusiness.FrmTHOrderManage.getThBcOrder", new object[] { orderNo }, this.ob);
if (dt1 != null && dt1.Rows.Count > 0 && ("002001042001012".Equals(UserInfo.GetDeptid()) || UserInfo.GetUserName() == "admin"))
{
flag = 1;
}
if ("天津钢管制造有限公司".Equals(ugr.Cells["CUSTOMER_NM"].Value.ToString().Trim()) && "江苏天淮钢管有限公司".Equals(ugr.Cells["SUPPLY_UNIT_NM"].Value.ToString().Trim()))
{
flag = 1;
}
//合同头状态为“交货期评审通过/待提报审批”的合同;而且必须有定价内容
if ((status.Equals("12020212") || status.Equals("12020213")) && flag > 0)
{
list.Add(ordPk);
list.Add(orderType);
pk = ordPk;
parm.Add(list);
}
else
{
if (!status.Equals("12020212") && !status.Equals("12020213"))
{
if (saleOrg == "100102")
{
MessageUtil.ShowWarning("合同" + orderNo + "处于待审批或者已审批通过,不必重复提报审批");
return;
}
else
{
MessageUtil.ShowWarning("合同" + orderNo + "需要重新维护定价或者已处于待审批,不能提报审批");
return;
}
}
if (flag == 0)
{
MessageUtil.ShowWarning("合同" + orderNo + "没有定价内容,不能提报审批");
return;
}
}
}
}
if (count == 0)
{
MessageUtil.ShowWarning("请选择需要提报审批的数据");
return;
}
if (MessageUtil.ShowYesNoAndQuestion("确认提报审批") == DialogResult.Yes)
{
CoreClientParam ccp = new CoreClientParam();
dlgReviewMemo dlg = new dlgReviewMemo();
dlg.ReviewFlag = 1;
dlg.ReviewSatus = "提报审批";
dlg.ShowDialog();
string reviewMemo = dlg.ReviewMemo;
if (dlg.DialogResult != DialogResult.OK)
return;
string dept = ClsBaseInfo.GetDepartBySectionIdChangeSale(UserInfo.GetDeptid(), this.ob);
dept = dept + "-" + UserInfo.GetDepartment();
ccp.ServerName = "com.steering.pss.sale.order.CopyOrderApproval";
ccp.MethodName = "doExport";
ccp.ServerParams = new object[] { parm, reviewMemo, UserInfo.GetUserName(), dept, saleOrg };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1)
{
return;
}
MessageUtil.ShowTips("提报审批成功!");
doQuery();
activeRow(ultraGridHead, pk);
}
}
private void activeRow(UltraGrid ug, String value)
{
foreach (UltraGridRow ugr in ug.Rows)
{
if (ugr.Cells["ORD_PK"].Value.ToString().Equals(value))
{
ugr.Activate();
}
}
}
///
/// 撤销提报
///
private void DoCancel()
{
if (saleOrg == "100102")
{
MessageUtil.ShowWarning("此功能对国贸合同没有操作权限!");
return;
}
ultraGridHead.UpdateData();
ArrayList parm = new ArrayList();
int count = 0;
string pk = "";
foreach (UltraGridRow ugr in ultraGridHead.Rows)
{
if (ugr.Cells["CHK"].Value.ToString().ToUpper() == "TRUE")
{
ArrayList list = new ArrayList();
count += 1;
String ordPk = ugr.Cells["ORD_PK"].Value.ToString().Trim();
String orderNo = ugr.Cells["ORDER_NO"].Value.ToString().Trim();
String orderType = ugr.Cells["ORDER_TYP"].Value.ToString().Trim();
//合同头状态
String[] statuses = getOrderHeadStatus(ordPk);
if (statuses == null)
{
MessageUtil.ShowWarning("合同" + orderNo + "状态异常,不能审批");
return;
}
String status = statuses[0];
if (status.Equals("12020220"))
{
list.Add(ordPk);
list.Add(orderType);
pk = ordPk;
parm.Add(list);
}
else
{
MessageUtil.ShowWarning("合同" + orderNo + "状态不是待审批状态,不能撤销提报");
return;
}
}
}
if (count == 0)
{
MessageUtil.ShowWarning("请选择需要撤销审批的数据");
return;
}
if (MessageUtil.ShowYesNoAndQuestion("确认撤销提报") == DialogResult.Yes)
{
CoreClientParam ccp = new CoreClientParam();
ccp.ServerName = "com.steering.pss.sale.order.CopyOrderApproval";
ccp.MethodName = "doCancel";
ccp.ServerParams = new object[] { parm, saleOrg };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp.ReturnCode == -1)
{
return;
}
MessageUtil.ShowTips("撤销提报成功!");
doQuery();
activeRow(ultraGridHead, pk);
}
}
///
/// 定价内容
///
private void doPriceN()
{
if (saleOrg == "100102")
{
MessageUtil.ShowWarning("此功能国贸合同没有操作权限!");
return;
}
UltraGridRow ugr = ultraGridHead.ActiveRow;
if (ugr == null)
{
MessageUtil.ShowWarning("请选择需要定价的合同");
return;
}
string ordPk = ugr.Cells["ORD_PK"].Value.ToString().Trim();
string[] statuses = getOrderHeadStatus(ordPk);
string orderType = ugr.Cells["ORDER_TYP"].Value.ToString().Trim();
if (orderType.Equals("120104"))
{
MessageUtil.ShowWarning("预排合同不需要维护价格!");
return;
}
if (statuses == null)
{
MessageUtil.ShowWarning("合同状态异常,不能维护定价");
return;
}
string status = statuses[0];
ArrayList list = new ArrayList() { "12020212", "12020213", "12020221", "12020223", "12020231", "12020241" };
if (list.Contains(status))
{
//frmOrderPriceDetails opDetails = new frmOrderPriceDetails();
//opDetails.OrdPk = ordPk;
//opDetails.Ob = this.ob;
//opDetails.ShowDialog();
if (isOpened == true)
{
return;
}
FrmPriceConfirm fpc = new FrmPriceConfirm(this.ob, ordPk);
fpc.FormUse = "2";
fpc.Size = new Size(1000, 680);
fpc.SaleOrg = ugr.Cells["SALE_ORG"].Value.ToString();
fpc.Text = "价格维护";
isOpened = true;
fpc.FrmClosedRefreshHandle += fpc_FrmClosedRefreshHandle;
fpc.Show();
}
else
{
MessageUtil.ShowWarning("合同已审批,不能定价维护");
return;
}
}
void fpc_FrmClosedRefreshHandle(string ordPk)
{
isOpened = false;
doQuery();
foreach (UltraGridRow ugrn in ultraGridHead.Rows)
{
if (ugrn.Cells["ORD_PK"].Value.ToString().Equals(ordPk))
{
ugrn.Activate();
}
}
}
///
/// 查询定价内容
///
///
///
private String getPriceBase(String ordPk)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderReviewLaw.queryPriceInfo", new Object[] { ordPk }, ob);
if (dt != null && dt.Rows.Count > 0)
{
return dt.Rows[0][0].ToString();
}
else
{
return "";
}
}
private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
{
ultraGridHead.UpdateData();
UltraGridRow ugr = ultraGridHead.ActiveRow;
if (ugr != null)
{
String ordPk = ugr.Cells["ORD_PK"].Value.ToString();
String orderModelNo = ugr.Cells["ORDER_MODEL_NO"].Value.ToString();
String priceNo = ugr.Cells["PRICE_NO"].Value.ToString();
if (e.Tab.Key.Equals("1"))
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CopyOrderApproval.doGetLineOrder", new Object[] { ordPk }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.orderLine, true);
}
else if (e.Tab.Key.Equals("2"))
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CopyOrderApproval.doGetModelItem", new Object[] { orderModelNo }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.slmOrderModelItem, true);
}
else if (e.Tab.Key.Equals("3"))
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CopyOrderApproval.GetOrderPriceList", new Object[] { priceNo, ordPk }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.slmOrderPrice, true);
}
else if (e.Tab.Key.Equals("4"))
{
textBox1.Text = getPriceBase(ordPk);
}
else
{
designStatus1.DoQuery(ultraGridHead.ActiveRow.Cells["ORDER_NO"].Value.ToString(), this.ob);
}
}
}
///
/// 会退到交货期评审通过
///
private void BackToDelivery()
{
if (saleOrg == "100102")
{
MessageUtil.ShowWarning("此功能只针对于国内贸易部!");
return;
}
//主管 ,经理 价格 法务 评审失败的状态 可以直接会退到交货期评审通过
UltraGridRow ugr = ultraGridHead.ActiveRow;
if (ugr == null)
{
MessageUtil.ShowWarning("请选择需要退回交货期的合同!");
return;
}
string ordPk = ugr.Cells["ORD_PK"].Value.ToString();
string sts = "";
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderManager.getOrderHeadStatus", new object[] { ordPk }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
sts = dt.Rows[0][0].ToString();
}
if (ugr.Cells["SUPPLY_UNIT_NM"].Text.Equals("江苏天淮钢管有限公司") && !ugr.Cells["FST_DRAWEE_UNIT_NM"].Text.Equals("江苏天淮钢管有限公司"))
{
MessageUtil.ShowWarning("天淮成品合同无法退回交货期!");
return;
}
if (sts != "12020301" && Convert.ToInt32(sts) < 12020301 && Convert.ToInt32(sts) >= 12020212)
{
if (MessageUtil.ShowYesNoAndQuestion("是否退回到交货期状态?") == DialogResult.No) return;
string dept = ClsBaseInfo.GetDepartBySectionIdChangeSale(UserInfo.GetDeptid(), this.ob);
dept = dept + "-" + UserInfo.GetDepartment();
string name = UserInfo.GetUserName();
dlgReviewMemo dlg = new dlgReviewMemo();
dlg.ReviewFlag = 0;
dlg.ReviewSatus = "退回交货期状态";
dlg.ShowDialog();
string reviewMemo = dlg.ReviewMemo;
if (dlg.DialogResult != DialogResult.OK)
return;
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CopyOrderApproval";
ccp.MethodName = "backToDelivery";
ccp.ServerParams = new object[] { ordPk, dept, name, reviewMemo };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp != null)
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnInfo);
return;
}
MessageUtil.ShowTips("回退成功!");
doQuery();
}
}
else
{
MessageUtil.ShowWarning("合同已生效或者处于交货期通过之前的状态,不能直接退回交货期");
return;
}
}
//回退交货期 国贸
private void BackToDeliveryIE()
{
if (saleOrg != "100102")
{
MessageUtil.ShowWarning("此功能只针对于国际贸易部!");
return;
}
//国贸 待审批 审批通过的状态 可以直接会退到交货期评审通过
UltraGridRow ugr = ultraGridHead.ActiveRow;
if (ugr == null)
{
MessageUtil.ShowWarning("请选择需要退回交货期的合同!");
return;
}
string ordPk = ugr.Cells["ORD_PK"].Value.ToString();
string sts = "";
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderManager.getOrderHeadStatus", new object[] { ordPk }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
sts = dt.Rows[0][0].ToString();
}
if (sts != "12020301" && Convert.ToInt32(sts) < 12020301 && Convert.ToInt32(sts) >= 12020212)
{
if (MessageUtil.ShowYesNoAndQuestion("是否退回到交货期状态?") == DialogResult.No) return;
string dept = ClsBaseInfo.GetDepartBySectionIdChangeSale(UserInfo.GetDeptid(), this.ob);
dept = dept + "-" + UserInfo.GetDepartment();
string name = UserInfo.GetUserName();
dlgReviewMemo dlg = new dlgReviewMemo();
dlg.ReviewFlag = 0;
dlg.ReviewSatus = "退回交货期状态";
dlg.ShowDialog();
string reviewMemo = dlg.ReviewMemo;
if (dlg.DialogResult != DialogResult.OK)
return;
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CopyOrderApproval";
ccp.MethodName = "backToDeliveryIE";
ccp.ServerParams = new object[] { ordPk, dept, name, reviewMemo };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp != null)
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnInfo);
return;
}
MessageUtil.ShowTips("回退成功!");
doQuery();
}
}
else
{
MessageUtil.ShowWarning("合同已生效或者处于交货期通过之前的状态,不能直接退回交货期!");
return;
}
}
private void ultraTextOrder_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
doQuery();
}
private void frmOrderApproval_Shown(object sender, EventArgs e)
{
if (saleOrg == "100102") //国贸
{
if (toolMenu.Toolbars[0].Tools.Exists("doPrice"))
toolMenu.Toolbars[0].Tools["doPrice"].InstanceProps.Visible = DefaultableBoolean.False;
if (toolMenu.Toolbars[0].Tools.Exists("doCancel"))
toolMenu.Toolbars[0].Tools["doCancel"].InstanceProps.Visible = DefaultableBoolean.False;
if (toolMenu.Toolbars[0].Tools.Exists("ChgePrice"))
toolMenu.Toolbars[0].Tools["ChgePrice"].InstanceProps.Visible = DefaultableBoolean.False;
}
if (this.CustomInfo.Contains("approval")) //用于审批提报界面
{
if (queryPass != true)
{
if (toolMenu.Toolbars[0].Tools.Exists("ChgePrice"))
this.ToolBarItemEnable(this, "ChgePrice", false);
if (toolMenu.Toolbars[0].Tools.Exists("doPrice"))
this.ToolBarItemEnable(this, "doPrice", true);
}
else
{
if (toolMenu.Toolbars[0].Tools.Exists("ChgePrice"))
this.ToolBarItemEnable(this, "ChgePrice", true);
if (toolMenu.Toolbars[0].Tools.Exists("doPrice"))
this.ToolBarItemEnable(this, "doPrice", false);
}
}
}
private void chkQueryAll_CheckedChanged(object sender, EventArgs e)
{
if (chkQueryAll.Checked)
{
chkPass.Checked = false;
queryAll = true;
doQuery();
}
else
{
queryAll = false;
doQuery();
}
}
private void chkPass_CheckedChanged(object sender, EventArgs e)
{
if (chkPass.Checked)
{
chkQueryAll.Checked = false;
queryPass = true;
doQuery();
if (toolMenu.Toolbars[0].Tools.Exists("ChgePrice"))
this.ToolBarItemEnable(this, "ChgePrice", true);
if (toolMenu.Toolbars[0].Tools.Exists("doPrice"))
this.ToolBarItemEnable(this, "doPrice", false);
}
else
{
queryPass = false;
doQuery();
if (toolMenu.Toolbars[0].Tools.Exists("ChgePrice"))
this.ToolBarItemEnable(this, "ChgePrice", false);
if (toolMenu.Toolbars[0].Tools.Exists("doPrice"))
this.ToolBarItemEnable(this, "doPrice", true);
}
}
private void ChgePrice()
{
if (saleOrg == "100102")
{
MessageUtil.ShowWarning("此功能国贸合同没有操作权限!");
return;
}
UltraGridRow ugr = ultraGridHead.ActiveRow;
if (ugr == null)
{
MessageUtil.ShowWarning("请选择需要定价的合同");
return;
}
String ordPk = ugr.Cells["ORD_PK"].Value.ToString().Trim();
String[] statuses = getOrderHeadStatus(ordPk);
if (statuses == null)
{
MessageUtil.ShowWarning("合同状态异常,不能价格维护");
return;
}
String status = statuses[0];
if (Convert.ToInt32(status == "" ? "0" : status) >= 12020232)
{
if (isOpened)
{
return;
}
FrmPriceConfirm fpc = new FrmPriceConfirm(this.ob, ordPk);
fpc.FormUse = "3";
fpc.Size = new Size(1000, 680);
fpc.SaleOrg = ugr.Cells["SALE_ORG"].Value.ToString();
fpc.Text = "价格维护";
fpc.FrmClosedRefreshHandle += fpc_FrmClosedRefreshHandle;
isOpened = true;
fpc.Show();
}
else
{
MessageUtil.ShowWarning("不是价格放行的合同,不能价格维护!\n若要维护价格,请点击定价维护!");
return;
}
}
///
/// 现货退回
///
private void BackEdit()
{
UltraGridRow ugr = ultraGridHead.ActiveRow;
if (ugr == null)
{
MessageUtil.ShowWarning("请选择需要退回的现货合同!");
return;
}
string ordPk = ugr.Cells["ORD_PK"].Value.ToString();
string ordType = "";
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderManager.getOrderType", new object[] { ordPk }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
ordType = dt.Rows[0][0].ToString();
}
if (ordType == "120102" || ordType == "120105")
{
//2015-10-30 修改了现货合同的逻辑 不存在现货合同的退回情况 现货合同的基本信息不存在修改情况 因为是根据选择的炉号生成的现货合同
//MessageUtil.ShowWarning("现货合同不允许退回!");
//return;
if (MessageUtil.ShowYesNoAndQuestion("是否将现货合同退回到录入状态?") == DialogResult.No) return;
string dept = ClsBaseInfo.GetDepartBySectionIdChangeSale(UserInfo.GetDeptid(), this.ob);
dept = dept + "-" + UserInfo.GetDepartment();
string name = UserInfo.GetUserName();
dlgReviewMemo dlg = new dlgReviewMemo();
dlg.ReviewFlag = 0;
dlg.ReviewSatus = "退回录入状态";
dlg.ShowDialog();
string reviewMemo = dlg.ReviewMemo;
if (dlg.DialogResult != DialogResult.OK)
return;
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.CopyOrderApproval";
ccp.MethodName = "backEdit";
ccp.ServerParams = new object[] { ordPk, dept, name, reviewMemo, saleOrg };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp != null)
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnInfo);
return;
}
MessageUtil.ShowTips("回退成功!");
doQuery();
}
}
else
{
MessageUtil.ShowWarning("您选择的合同不是现货合同或者贸易合同,无法退回!");
return;
}
}
private void utSaleorg_ValueChanged(object sender, EventArgs e)
{
if (utSaleorg.SelectedIndex == -1)
utSaleorg.SelectedIndex = 0;
saleOrg = utSaleorg.Value.ToString();
doQuery();
}
}
}