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.StlMes.Client.SaleOrder;
using System.Collections;
using Core.Mes.Client.Comm.Control;
using Core.StlMes.Client.SaleComm;
using Infragistics.Win.UltraWinGrid;
using Core.Mes.Client.Comm.Tool;
using Core.Mes.Client.Comm.Server;
using Core.StlMes.Client.SaleOrder.ReviewForm;
using Core.StlMes.Client.SaleOrder.Dialog;
namespace Core.StlMes.Client.SaleOrder
{
public partial class frmOrderEffect : FrmBase
{
public frmOrderEffect()
{
InitializeComponent();
this.IsLoadUserView = true;
}
private void frmOrderEffect_Load(object sender, EventArgs e)
{
DateTime Today = DateTime.Now;
this.date_starte.DateTime = Today.Date.AddMonths(-1);
this.date_end.DateTime = DateTime.Today;
}
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "doQuery":
this.Query();
break;
case "doAdd":
this.doAdd();
break;
case "doUpdate":
this.doUpdate();
break;
case "PrintOrder":
PrintOrder();
break;
case "Confirm":
AffirmAddDesc();
break;
case "doClose":
this.Close();
break;
}
}
///
/// 确认加工备注
///
private void AffirmAddDesc()
{
gffect_oder.UpdateData();
UltraGridRow uRow = gffect_oder.ActiveRow;
if (uRow == null)
{
MessageUtil.ShowWarning("请选择需要确认加工备注的合同!");
return;
}
if (uRow.GetText("TYPE_CODE") != "120106")
{
MessageUtil.ShowWarning("您选择的合同不是【自产+外加工】类型,不需要确认加工备注!");
return;
}
if (uRow.GetText("ORDER_STS") == "12020301")
{
MessageUtil.ShowWarning("您所选合同已经生效,不必重复确认加工备注!");
return;
}
string ordPk = uRow.GetText("ORD_PK");
FrmAffirmProcessMemo apm = new FrmAffirmProcessMemo(this.ob, ordPk);
apm.ShowDialog();
}
private void PrintOrder()
{
UltraGridRow ugr = gffect_oder.ActiveRow;
if (ugr == null)
{
MessageUtil.ShowWarning("请选择您要打印的合同!");
return;
}
string ordPk = ugr.Cells["ORD_PK"].Value.ToString();
string printPrice = ugr.Cells["PRINT_PRICE"].Value.ToString();
if (printPrice.Trim() == "结算价")
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.frmOrderEffect.queryBlaPriceStatus", new object[] { ordPk }, ob);
if (dt != null && dt.Rows.Count > 0)
{
if (dt.Rows[0][0].ToString() != "0")
{
MessageUtil.ShowWarning("您选择合同的结算价尚未全部确认,不能打印!");
return;
}
}
else
{
return;
}
}
string strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepFormalContractPrint.cpt&__bypagesize__=false" + "&ORD_PK=" + ordPk;
FrmOrderRepExcel fBug = new FrmOrderRepExcel(ob, strurl);
fBug.AutoSize = true;
fBug.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
fBug.WindowState = FormWindowState.Maximized;
fBug.Text = "合同打印";
fBug.Show();
}
///
/// 撤销生效
///
private void doUpdate()
{
gffect_oder.UpdateData();
ArrayList parm = new ArrayList();
int count = 0;
foreach (UltraGridRow row in gffect_oder.Rows)
{
if (row.Cells["CHK"].Value.ToString().ToUpper() == "TRUE")
{
string ordPk = row.Cells["ORD_PK"].Value.ToString();
if (row.Cells["TYPE_CODE"].Value.ToString() != "120102" && row.Cells["TYPE_CODE"].Value.ToString() != "120103") //现货合同暂时不管
{
DataTable matDt = ServerHelper.GetData("com.steering.pss.sale.order.frmOrderEffect.queryOrderMat", new object[] { ordPk }, this.ob);
if (matDt != null && matDt.Rows.Count > 0)
{
MessageUtil.ShowWarning("合同在材料表中存在记录,不允许撤回! ");
return;
}
}
List lockList = new List();
DataTable lockDt = ServerHelper.GetData("com.steering.pss.sale.order.frmOrderEffect.queryOrderLineLockStatus", new object[] { ordPk }, this.ob);
if (lockDt != null && lockDt.Rows.Count > 0)
{
for (int i = 0; i < lockDt.Rows.Count; i++)
{
lockList.Add(lockDt.Rows[i][0].ToString());
}
}
if (lockList.Contains("1"))
{
MessageUtil.ShowWarning("您选择的合同存在合同行被锁定,无法撤销生效,\n请先处理合同变更,再撤销生效!");
return;
}
List list = new List();
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.frmOrderEffect.getOrdLnDlyPkStatus", new object[] { ordPk }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
list.Add(dt.Rows[i][0].ToString());
}
}
if (list.Contains("12020401") || list.Contains("12020402"))
{
MessageUtil.ShowError("您选择的合同已经开始提报,无法撤销生效,\n请先撤销提报,再撤销生效!");
return;
}
DataTable dt1 = ServerHelper.GetData("com.steering.pss.glbusiness.FrmTHOrderManage.getThBcOrder", new object[] { row.Cells["ORDER_NO"].Value.ToString() }, this.ob);
if (dt1 != null && dt1.Rows.Count > 0 && !"002001042001012".Equals(UserInfo.GetDeptid()) && UserInfo.GetUserName() != "admin")
{
MessageUtil.ShowWarning("非配套服务科成员,无法撤销生效天淮半成品的合同!");
return;
}
if (row.Cells["ORDER_NO"].Value.ToString().StartsWith("TH") && !"002001042001012".Equals(UserInfo.GetDeptid()) && UserInfo.GetUserName() != "admin")
{
MessageUtil.ShowWarning("非配套服务科成员,无法撤销生效天淮成品的合同!");
return;
}
parm.Add(ordPk);
count += 1;
}
}
if (count == 0)
{
MessageUtil.ShowTips("请选择需要撤销生效的合同");
return;
}
if (MessageUtil.ShowQuestion("确认撤销生效?").ToString().ToLower().Equals("no"))
{
return;
}
string saleOrg = ClsBaseInfo.GetSaleOrg(UserInfo.GetDeptid());
string name = UserInfo.GetUserName();
string dept = ClsBaseInfo.GetDepartBySectionIdChangeSale(UserInfo.GetDeptid(), this.ob);
dept = dept + "-" + UserInfo.GetDepartment();
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.frmOrderEffect";
ccp.MethodName = "undoOrderEffect";
ccp.ServerParams = new object[] { parm, saleOrg, CustomInfo, dept, name };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp == null)
return;
else
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnObject.ToString());
return;
}
}
MessageBox.Show("撤销操作完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
Query();
}
///
/// 生效
///
private void doAdd()
{
gffect_oder.UpdateData();
ArrayList parm = new ArrayList();
int count = 0;
foreach (UltraGridRow row in gffect_oder.Rows)
{
if (row.Cells["CHK"].Value.ToString().ToUpper() == "TRUE")
{
string ordPk = row.Cells["ORD_PK"].Value.ToString();
//界面上先过滤一遍状态,后台也做了判断的。
if (row.Cells["ORDER_STS"].Value.ToString() == "12020301")
{
MessageUtil.ShowWarning("您所选合同已经生效,不必重复操作!");
return;
}
//判断选择的合同类型(120106) 加工备注是否确认
if (row.GetText("TYPE_CODE") == "120106")
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.frmOrderEffect.getPurLineMemoStatus", new object[] { ordPk }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
if (dt.Rows[0][0].ToString2().Contains("L") || dt.Rows[0][0].ToString2().Contains("F"))
{
MessageUtil.ShowWarning("合同号:" + row.GetText("ORDER_NO") + " 属于自产+外加工类合同,请先确认其加工备注!");
return;
}
}
else
{
MessageUtil.ShowWarning("合同号:" + row.GetText("ORDER_NO") + "发生异常!");
return;
}
}
//DataTable dt1 = ServerHelper.GetData("com.steering.pss.glbusiness.FrmTHOrderManage.getThBcOrder", new object[] { row.Cells["ORDER_NO"].Value.ToString() }, this.ob);
//if (dt1 != null && dt1.Rows.Count > 0 && !"002001042001012".Equals(UserInfo.GetDeptid()) && UserInfo.GetUserName() != "admin")
//{
// MessageUtil.ShowWarning("非配套服务科成员,无法生效天淮半成品的合同!");
// return;
//}
//if (row.Cells["ORDER_NO"].Value.ToString().StartsWith("TH") && !"002001042001012".Equals(UserInfo.GetDeptid()) && UserInfo.GetUserName() != "admin")
//{
// MessageUtil.ShowWarning("非配套服务科成员,无法生效天淮成品的合同!");
// return;
//}
ArrayList list = new ArrayList();
string custNo = row.Cells["CUSTM_ORDER_NO"].Value.ToString();
list.Add(ordPk);
list.Add(custNo);
parm.Add(list);
count += 1;
}
}
if (count == 0)
{
MessageUtil.ShowTips("请选择需要生效的合同");
return;
}
if (this.CustomInfo.Contains("NORMAL"))
{
if (MessageUtil.ShowYesNoAndQuestion("是否确认生效?") == DialogResult.No)
{
return;
}
}
else
{
if (MessageUtil.ShowYesNoAndQuestion("是否确认放行生效?") == DialogResult.No)
{
return;
}
}
string name = UserInfo.GetUserName();
string dept = ClsBaseInfo.GetDepartBySectionIdChangeSale(UserInfo.GetDeptid(), this.ob);
dept = dept + "-" + UserInfo.GetDepartment();
string saleOrg = ClsBaseInfo.GetSaleOrg(UserInfo.GetDeptid());
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "com.steering.pss.sale.order.frmOrderEffect";
ccp.MethodName = "orderEffect";
ccp.ServerParams = new object[] { parm, name, this.CustomInfo, saleOrg, dept };
ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
if (ccp == null)
return;
else
{
if (ccp.ReturnCode == -1)
{
MessageUtil.ShowWarning(ccp.ReturnInfo);
return;
}
}
MessageBox.Show("生效操作完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
Query();
}
///
/// 获取当前合同头下面,勾选监制,但监制编号为null的Count
///
///
///
private int GetPrdcrStsIsNullCount(string ordPk)
{
DataTable dt = Globals.GetData("com.steering.pss.sale.order.frmOrderEffect.GetPrdcrStsIsNullCount", new Object[] { ordPk }, this.ob);
return Convert.ToInt32(dt.Rows[0][0]);
}
///
/// 获取当前合同头下面,勾选监制,但监制状态不通过的Count
///
///
///
private int GetNoPrdcrStsCount(string ordPk)
{
DataTable dt = Globals.GetData("com.steering.pss.sale.order.frmOrderEffect.GetNoPrdcrStsCount", new Object[] { ordPk }, this.ob);
return Convert.ToInt32(dt.Rows[0][0]);
}
public void Query()
{
//签约时间
string date = "";
if (che_date.Checked)
{
if (date_starte.Text.Equals("") || date_end.Text.Equals(""))
{
MessageBox.Show("请选择审批时间范围!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
if (Convert.ToDateTime(date_starte.Value) > Convert.ToDateTime(date_end.Value))
{
date_starte.Focus();
MessageBox.Show("输入日期范围不正确!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
else
{
string strFrom1 = Convert.ToDateTime(date_starte.Value).ToString("yyyy-MM-dd") + " 00:00:01";
string strTo1 = Convert.ToDateTime(date_end.Value).ToString("yyyy-MM-dd") + " 23:59:59";
date += " AND B3.APPROVAL_TIME BETWEEN TO_DATE('" + strFrom1 + "' ,'YYYY-MM-DD HH24:MI:SS') AND TO_DATE( '" + strTo1 + "','YYYY-MM-DD HH24:MI:SS')";
}
}
else
{
date = "";
}
//合同号
string order = "";
if (ord_no.Checked)
order = orde_cho.Text.Trim();
//评审状态
string appstatus = "";
if (chkEffSts.Checked)
{
appstatus = cmbEffSts.Value.ToString().Trim();//ultraComboEditor1.Value.ToString().Trim()
}
string[] arr = this.ValidDataPurviewIds;
DataTable dt = Globals.GetData("com.steering.pss.sale.order.frmOrderEffect.CoreOrderEffectHeadQuery", new Object[] { date, order, this.CustomInfo, appstatus, arr }, this.ob);
gffect_oder.DataSource = dt;
for (int i = 0; i < gffect_oder.Rows.Count; i++)
{
if (gffect_oder.Rows[i].Cells["CUSTOMER_MODEL_FL"].Value.ToString() == "0")
{
gffect_oder.Rows[i].Cells["CUSTOMER_MODEL_FL"].Value = false;
}
else
{
gffect_oder.Rows[i].Cells["CUSTOMER_MODEL_FL"].Value = true;
}
}
//列自适应
GridHelper.RefreshAndAutoSizeExceptColumns(gffect_oder, new UltraGridColumn[] { });
}
private void che_date_CheckedChanged(object sender, EventArgs e)
{
date_starte.Enabled = che_date.Checked;
date_end.Enabled = che_date.Checked;
}
private void ord_no_CheckedChanged(object sender, EventArgs e)
{
orde_cho.Enabled = ord_no.Checked;
}
private void gffect_oder_AfterRowActivate(object sender, EventArgs e)
{
UltraGridRow ugr = gffect_oder.ActiveRow;
if (ugr == null)
return;
this.doQueryeffect(gffect_oder.ActiveRow.Cells["ORD_PK"].Text);
this.doQueryeffect_mol(gffect_oder.ActiveRow.Cells["ORDER_MODEL_NO"].Value.ToString());
this.queryPriceInfo(gffect_oder.ActiveRow.Cells["ORD_PK"].Text);
for (int i = 0; i < ugr.Cells.Count; i++)
{
if (ugr.Cells[i].Column.Key.Equals("CUSTM_ORDER_NO") || ugr.Cells[i].Column.Key.Equals("CHK"))
ugr.Cells[i].Activation = Activation.AllowEdit;
else
ugr.Cells[i].Activation = Activation.ActivateOnly;
}
}
private void queryPriceInfo(string ordPk)
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.frmOrderEffect.queryPriceInfo", new object[] { ordPk }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
txtPrice.Text = dt.Rows[0][0].ToString();
}
}
private void doQueryeffect_mol(string ordermodel)
{
DataTable dt = Globals.GetData("com.steering.pss.sale.order.frmOrderEffect.CoreOrderEffectinfo", new Object[] { ordermodel }, this.ob);
efforder_mol.DataSource = dt;
//列自适应
GridHelper.RefreshAndAutoSizeExceptColumns(efforder_mol, new UltraGridColumn[] {
});
}
private void doQueryeffect(string order)
{
DataTable dt = Globals.GetData("com.steering.pss.sale.order.frmOrderEffect.CoreOrderEffectSqeQuery", new Object[] { order }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.orderLineDt, true);
//列自适应
GridHelper.RefreshAndAutoSizeExceptColumns(efforder_seq, new UltraGridColumn[] { });
if (dt.Rows.Count > 0)
{
for (int i = 0; i < efforder_seq.Rows.Count; i++)
{
if (efforder_seq.Rows[i].Cells["OUTS_BILLET_FL"].Value.ToString() == "1")
{
efforder_seq.Rows[i].Cells["OUTS_BILLET_FL"].Value = true;
}
else
{
efforder_seq.Rows[i].Cells["OUTS_BILLET_FL"].Value = false;
}
if (efforder_seq.Rows[i].Cells["OUTS_STL_PIPE_FL"].Value.ToString() == "1")
{
efforder_seq.Rows[i].Cells["OUTS_STL_PIPE_FL"].Value = true;
}
else
{
efforder_seq.Rows[i].Cells["OUTS_STL_PIPE_FL"].Value = false;
}
if (efforder_seq.Rows[i].Cells["ASSEL_FL"].Value.ToString() == "1")
{
efforder_seq.Rows[i].Cells["ASSEL_FL"].Value = true;
}
else
{
efforder_seq.Rows[i].Cells["ASSEL_FL"].Value = false;
}
}
}
//DataTable dt1 = Globals.GetData("com.steering.pss.sale.order.frmOrderEffect.orderEffectPriceQuery", new Object[] { order }, this.ob);
//gorder_price.DataSource = dt1;
}
private void gffect_oder_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
{
string acustom = gffect_oder.ActiveCell.Value.ToString();
dlgBuyerInfo spt = new dlgBuyerInfo();
spt.oPbd = this.ob;
spt.customer = acustom;
spt.FilePath = "checker";
spt.ShowDialog();
}
private void efforder_seq_AfterRowActivate(object sender, EventArgs e)
{
if (efforder_seq.ActiveRow != null)
{
//DataRow orderLine = dataSet1.Tables["orderLineDt"].Rows[efforder_seq.ActiveRow.Index];
//ctrlOrderLineChild1.loadOrderLineChild(this.ob, orderLine);
}
}
private void buload_Click(object sender, EventArgs e)
{
ArrayList slist = new ArrayList();
string sFileName = loadtx.Text;
FlileUploadcomm.FlileUpload(sFileName);
}
private void deleload_Click(object sender, EventArgs e)
{
string sFileName = loadtx.Text;
FlileDeletecomm.FlileDelete(sFileName);
loadtx.Text = "";
}
private void Downbu_Click(object sender, EventArgs e)
{
}
private void orde_cho_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
Query();
}
private void chkEffSts_CheckedChanged(object sender, EventArgs e)
{
if (chkEffSts.Checked)
{
cmbEffSts.ReadOnly = false;
cmbEffSts.Value = "0";
}
else
{
cmbEffSts.ReadOnly = true;
}
}
}
}