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 Pur.Entity;
using com.hnshituo.pur.vo;
using Pur.configure;
using Pur.require_plan;
using Core.Mes.Client.Comm.Control;
using System.Text.RegularExpressions;
using Infragistics.Win.UltraWinEditors;
using System.Collections;
using System.Web.UI.WebControls;
using Pur.Pop_upWindow;
namespace Pur.Balance
{
public partial class FrmPurClause : FrmPmsBase
{
public FrmPurClause()
{
InitializeComponent();
}
private void FrmPurClause_Load(object sender, EventArgs e)
{
clearEdtArea();
preInit();
QureyClauseM();
}
#region toolbar工具栏
//toolbar工具栏加载
public override void ToolBar_Click(object sender, string ToolBarKey)
{
switch (ToolBarKey)
{
case "Query"://查询主表数据
QureyClauseM();
//GetQueryPhysicWH();
break;
case "Add"://增加主表
AddClauseM();
break;
case "Update"://修改主表
EditClauseM();
break;
case "Delete"://删除主表
DeleteClauseM();
break;
case "AddClauseC": //新增明细表
AddClauseC();
break;
case "UpdateClauseC"://修改明细表
EditClauseC();
break;
case "DeleteClauseC"://删除明细表
DeleteClauseC();
break;
case "Close"://关闭窗口
this.Close();
break;
}
}
#endregion
#region 数据处理
///
/// 查询主表数据
///
private void QureyClauseM()
{
try
{
//获取查询区域数据
string strBcmId = QBcmId.Text.ToString().Trim();
string strBcmName = QBcmName.Text.ToString().Trim();
//构建查询实体类
BalanceClauseM bm = new BalanceClauseM();
bm.BcmId = strBcmId;
bm.BcmName = strBcmName;
bm.Validflag = "1";
//执行查询
DataTable dt = this.execute("com.hnshituo.pur.balance.service.BalanceClauseMService", "doQueryClauseM", new object[] { bm });
GridHelper.CopyDataToDatatable(ref dt, ref dataTable4, true);
// QureyBasePriceM();
// BalanceClassCommon.doActiveSelRow(ultraGrid1, "id", oldstrid);
// BalanceClassCommon.doActiveSelRow(ultraGrid2, "id", strid);
}
catch (Exception ex)
{
MessageBox.Show("查询失败:"+ex.Message,"提示");
}
}
private void AddClauseM()
{
try
{
//获取编辑区信息与校验
string strbcnname = edtBcmName.Text.ToString().Trim();
if (!isBcmNameMatch(strbcnname))
{
MessageBox.Show("条款行名称为空或者过长", "提示");
edtBcmName.Focus();
return;
}
String strmatClassCode = edtSuitMatClassCode.Text.ToString().Trim();
string strmatcode = edtSuitMatCode.Text.ToString().Trim();
string strsuppcode = edtSuitSuppCode.Text.ToString().Trim();
if (edtStartTime.Value == null)
{
MessageBox.Show("请输入有效生效时间","提示");
edtStartTime.Focus();
return;
}
if (edtEndTime.Value == null)
{
MessageBox.Show("请输入有效失效时间","提示");
edtStartTime.Focus();
return;
}
DateTime starttime = (DateTime)edtStartTime.Value;
DateTime endtime = (DateTime)edtEndTime.Value;
if (!(DateTime.Compare(starttime, endtime)<0))
{
MessageBox.Show("生效时间不能晚于失效时间", "提示");
edtEndTime.Focus();
return;
}
if (!isRemarkMatch(edtRemark.Text.ToString().Trim()))
{
MessageBox.Show("备注过长", "提示");
edtBcmName.Focus();
return;
}
//构建实体类
BalanceClauseM bc = new BalanceClauseM();
bc.BcmName = strbcnname;
bc.Status = "1";
bc.SuitMat = strmatcode;
bc.SuitMatClass = strmatClassCode;
bc.SuitSupp = strsuppcode;
bc.Validflag = "1";
bc.StartTime = starttime;
bc.EndTime = endtime;
bc.Remark = edtRemark.Text.ToString().Trim();
bc.CreateName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName();
bc.CreateTime = DateTime.Now;
bc.CreateUserid = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserID();
//执行插入
CoreResult re = this.execute("com.hnshituo.pur.balance.service.BalanceClauseMService", "doAddClauseM", new object[] { bc });
if (re.Resultcode == 0)
{
QureyClauseM();
BalanceClassCommon.doActiveSelRow(ultraGrid1, "bcmName", strbcnname);
// BalanceClassCommon.doActiveSelRow(ultraGrid2, "id", strid);
}
else
{
MessageBox.Show(re.Resultmsg,"提示");
return;
}
}
catch (Exception ex)
{
MessageBox.Show("操作失败:"+ex.Message, "提示");
}
}
private void EditClauseM()
{
try
{
if (ultraGrid1.ActiveRow != null)
{
//获取编辑区信息与校验
string strbcmid = ultraGrid1.ActiveRow.Cells["bcmId"].Value.ToString().Trim();
string strVersionno = ultraGrid1.ActiveRow.Cells["bcmVersionNo"].Value.ToString().Trim();
if (string.IsNullOrEmpty(strbcmid) || string.IsNullOrEmpty(strVersionno))
{
MessageBox.Show("数据异常,获取条款编码或者版本号为空", "提示");
edtBcmId.Focus();
return;
}
string strbcnname = edtBcmName.Text.ToString().Trim();
if (!isBcmNameMatch(strbcnname))
{
MessageBox.Show("条款行名称为空或者过长", "提示");
edtBcmName.Focus();
return;
}
String strmatClassCode = edtSuitMatClassCode.Text.ToString().Trim();
string strmatcode = edtSuitMatCode.Text.ToString().Trim();
string strsuppcode = edtSuitSuppCode.Text.ToString().Trim();
if (edtStartTime.Value == null)
{
MessageBox.Show("请输入有效生效时间", "提示");
edtStartTime.Focus();
return;
}
if (edtEndTime.Value == null)
{
MessageBox.Show("请输入有效失效时间", "提示");
edtStartTime.Focus();
return;
}
DateTime starttime = (DateTime)edtStartTime.Value;
DateTime endtime = (DateTime)edtEndTime.Value;
if (!(DateTime.Compare(starttime, endtime) < 0))
{
MessageBox.Show("生效时间不能晚于失效时间", "提示");
edtEndTime.Focus();
return;
}
if (!isRemarkMatch(edtRemark.Text.ToString().Trim()))
{
MessageBox.Show("备注过长", "提示");
edtBcmName.Focus();
return;
}
//提示是否需要修改
if (MessageBox.Show("将修改编号为[" + strbcmid + "]的条款信息?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
//构建实体类
BalanceClauseM bc = new BalanceClauseM();
bc.BcmId = strbcmid;
bc.BcmVersionNo = strVersionno;
bc.BcmName = strbcnname;
bc.Status = "1";
bc.SuitMat = strmatcode;
bc.SuitMatClass = strmatClassCode;
bc.SuitSupp = strsuppcode;
bc.Validflag = "1";
bc.StartTime = starttime;
bc.EndTime = endtime;
bc.Remark = edtRemark.Text.ToString().Trim();
bc.UpdateName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName();
bc.UpdateTime = DateTime.Now;
bc.UpdateUserid = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserID();
//执行插入
CoreResult re = this.execute("com.hnshituo.pur.balance.service.BalanceClauseMService", "doUpdateClauseM", new object[] { bc });
if (re.Resultcode == 0)
{
QureyClauseM();
BalanceClassCommon.doActiveSelRow(ultraGrid1, "bcmId", strbcmid);
// BalanceClassCommon.doActiveSelRow(ultraGrid2, "id", strid);
}
else
{
MessageBox.Show(re.Resultmsg, "提示");
return;
}
}
}
else
{
MessageBox.Show("请选择需要编辑的条款", "提示");
}
}
catch (Exception ex)
{
MessageBox.Show("操作失败:" + ex.Message, "提示");
}
}
private void DeleteClauseM()
{
try
{
if (ultraGrid1.ActiveRow != null)
{
//获取编辑区信息与校验
string strbcmid = ultraGrid1.ActiveRow.Cells["bcmId"].Value.ToString().Trim();
string strVersionno = ultraGrid1.ActiveRow.Cells["bcmVersionNo"].Value.ToString().Trim();
if (string.IsNullOrEmpty(strbcmid) || string.IsNullOrEmpty(strVersionno))
{
MessageBox.Show("数据异常,获取条款编码或者版本号为空", "提示");
edtBcmId.Focus();
return;
}
//提示是否需要修改
if (MessageBox.Show("将删除编号为[" + strbcmid + "]的条款信息?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
//构建实体类
BalanceClauseM bc = new BalanceClauseM();
bc.BcmId = strbcmid;
bc.BcmVersionNo = strVersionno;
bc.Validflag = "0";
bc.DeleteName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName();
bc.DeleteTime = DateTime.Now;
bc.DeleteUserid = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserID();
//执行插入
CoreResult re = this.execute("com.hnshituo.pur.balance.service.BalanceClauseMService", "doUpdateClauseM", new object[] { bc });
if (re.Resultcode == 0)
{
QureyClauseM();
BalanceClassCommon.doActiveSelRow(ultraGrid1, "bcmId", strbcmid);
// BalanceClassCommon.doActiveSelRow(ultraGrid2, "id", strid);
}
else
{
MessageBox.Show(re.Resultmsg, "提示");
return;
}
}
}
else
{
MessageBox.Show("请选择需要删除的条款", "提示");
}
}
catch (Exception ex)
{
MessageBox.Show("操作失败:" + ex.Message, "提示");
}
}
///
/// 新增条款明细
///
private void AddClauseC()
{
try
{
if (ultraGrid1.ActiveRow != null)
{
string strbcmid = ultraGrid1.ActiveRow.Cells["bcmId"].Value.ToString().Trim();
edtBcmIdC.Text = strbcmid;
//获取编辑区信息
string strbalanceclass = edtBalanceClass.Value.ToString().Trim();
if (string.IsNullOrEmpty(strbalanceclass))
{
MessageBox.Show("请选择标准类型", "提示");
edtBalanceClass.Focus();
return;
}
string strbalanceid = edtBalanceId.Value.ToString().Trim();
if (string.IsNullOrEmpty(strbalanceid))
{
MessageBox.Show("请选择一条有效的计价标准", "提示");
edtBalanceId.Focus();
return;
}
string strremarkc = edtremarkc.Text.ToString().Trim();
//构建实体类
BalanceClauseC bc = new BalanceClauseC();
bc.BcmId = strbcmid;
bc.BalanceClass = strbalanceclass;
bc.BalanceId = strbalanceid;
bc.Remark = strremarkc;
bc.Validflag = "1";
bc.CreateName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName();
bc.CreateTime = DateTime.Now;
bc.CreateUserid = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserID();
//调用API进行操作
CoreResult re = this.execute("com.hnshituo.pur.balance.service.BalanceClauseCService", "doAddClauseC", new object[] { bc });
if (re.Resultcode == 0)
{
QureyClauseM();
BalanceClassCommon.doActiveSelRow(ultraGrid1, "bcmId", strbcmid);
BalanceClassCommon.doActiveSelRow(ultraGrid2, "balanceid", strbalanceid);
}
else
{
MessageBox.Show(re.Resultmsg, "提示");
return;
}
}
else
{
MessageBox.Show("请选择需要新增条款明细的条款行","提示");
return;
}
}
catch (Exception ex)
{
MessageBox.Show("操作失败:" + ex.Message, "提示");
}
}
///
/// 修改明细
///
private void EditClauseC()
{
try
{
if (ultraGrid2.ActiveRow != null)
{
string strbcmid = ultraGrid2.ActiveRow.Cells["bcmId"].Value.ToString().Trim();
string strbccid = ultraGrid2.ActiveRow.Cells["bccId"].Value.ToString().Trim();
//edtBcmIdC.Text = strbcmid;
//获取编辑区信息
string strbalanceclass = edtBalanceClass.Value.ToString().Trim();
if (string.IsNullOrEmpty(strbalanceclass))
{
MessageBox.Show("请选择标准类型", "提示");
edtBalanceClass.Focus();
return;
}
string strbalanceid = edtBalanceId.Value.ToString().Trim();
if (string.IsNullOrEmpty(strbalanceid))
{
MessageBox.Show("请选择一条有效的计价标准", "提示");
edtBalanceId.Focus();
return;
}
string strremarkc = edtremarkc.Text.ToString().Trim();
//构建实体类
BalanceClauseC bc = new BalanceClauseC();
bc.BccId = strbccid;
bc.BcmId = strbcmid;
bc.BalanceClass = strbalanceclass;
bc.BalanceId = strbalanceid;
bc.Remark = strremarkc;
bc.Validflag = "1";
bc.UpdateName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName();
bc.UpdateTime = DateTime.Now;
bc.UpdateUserid = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserID();
//调用API进行操作
CoreResult re = this.execute("com.hnshituo.pur.balance.service.BalanceClauseCService", "doUpdateClauseC", new object[] { bc });
if (re.Resultcode == 0)
{
QureyClauseM();
BalanceClassCommon.doActiveSelRow(ultraGrid1, "bcmId", strbcmid);
BalanceClassCommon.doActiveSelRow(ultraGrid2, "bccId", strbccid);
}
else
{
MessageBox.Show(re.Resultmsg, "提示");
return;
}
}
else
{
MessageBox.Show("请选择需要修改条款明细的条款行", "提示");
return;
}
}
catch (Exception ex)
{
MessageBox.Show("操作失败:" + ex.Message, "提示");
}
}
///
/// 删除明细
///
private void DeleteClauseC()
{
try
{
if (ultraGrid2.ActiveRow != null)
{
string strbcmid = ultraGrid2.ActiveRow.Cells["bcmId"].Value.ToString().Trim();
string strbccid = ultraGrid2.ActiveRow.Cells["bccId"].Value.ToString().Trim();
//构建实体类
BalanceClauseC bc = new BalanceClauseC();
bc.BccId = strbccid;
bc.Validflag = "0";
bc.DeleteName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName();
bc.DeleteTime = DateTime.Now;
bc.DeleteUserid = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserID();
//调用API进行操作
CoreResult re = this.execute("com.hnshituo.pur.balance.service.BalanceClauseCService", "doUpdateClauseC", new object[] { bc });
if (re.Resultcode == 0)
{
QureyClauseM();
BalanceClassCommon.doActiveSelRow(ultraGrid1, "bcmId", strbcmid);
BalanceClassCommon.doActiveSelRow(ultraGrid2, "bccId", strbccid);
}
else
{
MessageBox.Show(re.Resultmsg, "提示");
return;
}
}
else
{
MessageBox.Show("请选择需要删除条款明细的条款行", "提示");
return;
}
}
catch (Exception ex)
{
MessageBox.Show("操作失败:" + ex.Message, "提示");
}
}
#endregion
#region 界面事件
private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
{
try
{
//清空界面
clearEdtArea();
//加载数据
string strbcmid=ultraGrid1.ActiveRow.Cells["bcmId"].Value.ToString().Trim();
edtBcmId.Text = strbcmid;
edtBcmName.Text = ultraGrid1.ActiveRow.Cells["bcmName"].Value.ToString().Trim();
if (ultraGrid1.ActiveRow.Cells["endTime"].Value != null)
{
edtEndTime.Value = ultraGrid1.ActiveRow.Cells["endTime"].Value;
}
if (ultraGrid1.ActiveRow.Cells["startTime"].Value != null)
{
edtStartTime.Value = ultraGrid1.ActiveRow.Cells["startTime"].Value;
}
edtRemark.Text = ultraGrid1.ActiveRow.Cells["remark"].Value.ToString().Trim();
edtSuitMatClassCode.Text = ultraGrid1.ActiveRow.Cells["suitMatClass"].Value.ToString().Trim();
edtSuitMatCode.Text = ultraGrid1.ActiveRow.Cells["suitMat"].Value.ToString().Trim();
edtSuitSuppCode.Text = ultraGrid1.ActiveRow.Cells["suitSupp"].Value.ToString().Trim();
//加载从表数据
BalanceClauseC bc = new BalanceClauseC();
bc.BcmId = strbcmid;
bc.Validflag = "1";
DataTable dt = this.execute("com.hnshituo.pur.balance.service.BalanceClauseCService", "doQueryClauseC", new object[] { bc });
GridHelper.CopyDataToDatatable(ref dt, ref dataTable3, true);
}
catch (Exception ex)
{
MessageBox.Show("操作失败:" + ex.Message, "提示");
}
}
private void ultraGrid1_AfterCellActivate(object sender, EventArgs e)
{
try
{
ultraTabControl2.SelectedTab = ultraTabControl2.Tabs[0];
}
catch (Exception ex)
{
MessageBox.Show("操作失败:" + ex.Message, "提示");
}
}
private void ultraGrid2_AfterCellActivate(object sender, EventArgs e)
{
try
{
ultraTabControl2.SelectedTab = ultraTabControl2.Tabs[1];
}
catch (Exception ex)
{
MessageBox.Show("操作失败:" + ex.Message, "提示");
}
}
private void ultraGrid2_AfterRowActivate(object sender, EventArgs e)
{
try
{
//加载数据到编辑区
edtBccId.Text = ultraGrid2.ActiveRow.Cells["bccId"].Value.ToString().Trim();
edtBcmIdC.Text = ultraGrid2.ActiveRow.Cells["bcmId"].Value.ToString().Trim();
edtremarkc.Text = ultraGrid2.ActiveRow.Cells["remark"].Value.ToString().Trim();
string strbalanceclass=ultraGrid2.ActiveRow.Cells["BalanceClass"].Value.ToString().Trim();
string strbalanceid=ultraGrid2.ActiveRow.Cells["BalanceId"].Value.ToString().Trim();
if (string.IsNullOrEmpty(strbalanceclass) || string.IsNullOrEmpty(strbalanceid))
{
MessageBox.Show("数据异常,标准类型编号和编号都不能为空","");
return;
}
edtBalanceClass.Value = strbalanceclass;
edtBalanceId.Value = strbalanceid;
//加载其它的数据
if (strbalanceclass == "1")
{
//tab控制
ultraTabControl1.SelectedTab = ultraTabControl1.Tabs[0];
//构建查询实体类
BalanceBasepriceC pc = new BalanceBasepriceC();
pc.StandId = strbalanceid;
pc.Validflag = "1";
//调用服务器查询API进行查询
DataTable re = this.execute("com.hnshituo.pur.balance.service.BalanceBasepriceCService", "doQureyBasePriceC", new object[] { pc });
GridHelper.CopyDataToDatatable(ref re, ref dataTable2, true);
CicpPriceC.Clear();
}
else if (strbalanceclass == "2")
{
//tab控制
ultraTabControl1.SelectedTab = ultraTabControl1.Tabs[1];
//构建查询实体类
BalanceCicpriceC pc = new BalanceCicpriceC();
pc.StandId = strbalanceid;
pc.Validflag = "1";
//调用服务器查询API进行查询
DataTable re = this.execute("com.hnshituo.pur.balance.service.BalanceCicpriceCService", "doQureyCicpPriceC", new object[] { pc });
GridHelper.CopyDataToDatatable(ref re, ref dataTable1, true);
basepriceC.Clear();
}
else if (strbalanceclass == "3")
{
ultraTabControl1.SelectedTab = ultraTabControl1.Tabs[2];
MessageBox.Show("批量计价计暂时无数据", "提示");
return;
}
else if (strbalanceclass == "9")
{
ultraTabControl1.SelectedTab = ultraTabControl1.Tabs[3];
MessageBox.Show("其它计价暂时无数据", "提示");
return;
}
else
{
MessageBox.Show("无效标准类型编码:" + strbalanceclass, "提示");
return;
}
}
catch (Exception ex)
{
MessageBox.Show("操作失败:" + ex.Message, "提示");
}
}
private void clearEdtArea()
{
foreach (Control ctr in ultraExpandableGroupBox1.Controls)
{
if (ctr is System.Windows.Forms.Label)
{ continue; }
if (ctr is UltraCheckEditor)
{
UltraCheckEditor ultcmb = (UltraCheckEditor)ctr;
ultcmb.Checked = false;
}
if (ctr is UltraComboEditor)
{
UltraComboEditor ultcmb = (UltraComboEditor)ctr;
ultcmb.Text = "";
ultcmb.Enabled = false;
}
if (ctr is System.Windows.Forms.CheckBox)
{
System.Windows.Forms.CheckBox cb = (System.Windows.Forms.CheckBox)ctr;
cb.Checked = false;
}
ctr.Text = null;
}
}
private void edtSuitMatClassName_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
FrmMatClassPop_ups classfrm = new FrmMatClassPop_ups(this.ob);
classfrm.ShowDialog();
string strmatclasscode = classfrm.Basecode;
string strmatclassname = classfrm.Basename;
edtSuitMatClassCode.Text = strmatclasscode;
edtSuitMatClassName.Text = strmatclassname;
}
private void edtSuitMatName_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
FrmPurPlanMat matfrm = new FrmPurPlanMat(this.ob);
matfrm.ShowDialog();
string strmatcode = matfrm.getItemCode();
string strmatname = matfrm.getItemName();
edtSuitMatCode.Text = strmatcode;
edtSuitMatName.Text = strmatname;
}
private void edtSuitSuppName_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
frmSuppSel suppfrm = new frmSuppSel(this.ob);
suppfrm.ShowDialog();
string strsuppcode = suppfrm.strSUPP_CODE;
string strsuppname = suppfrm.strSUPP_NAME;
edtSuitSuppCode.Text = strsuppcode;
edtSuitSuppName.Text = strsuppname;
}
private void edtBalanceName_EditorButtonClick(object sender, EditorButtonEventArgs e)
{
//获取类型
String strbalclass = edtBalanceClass.Value.ToString().Trim();
if (string.IsNullOrEmpty(strbalclass))
{
MessageBox.Show("请先选中计价标准类型", "提示");
}
FrmPopGetBalance Frmb = new FrmPopGetBalance(this.ob, strbalclass);
Frmb.balclass = strbalclass;
Frmb.ShowDialog();
edtBalanceName.Text = Frmb.BalanceName;
edtBalanceId.Text = Frmb.BalanceId;
}
#endregion
#region 正则表达式定义
private bool isBcmNameMatch(string str)
{
Regex obj = new Regex("^.{1,20}$");
bool isos=obj.IsMatch(str);
return isos;
}
private bool isRemarkMatch(string str)
{
Regex obj = new Regex("^.{0,178}$");
return obj.IsMatch(str);
}
#endregion
#region 界面初始化加载数据
//初始化结算类型
private void preInit()
{
ArrayList aryTmp = new ArrayList();
aryTmp.Add(new ValueListItem("1", "基准计价"));
aryTmp.Add(new ValueListItem("2", "成分计价"));
aryTmp.Add(new ValueListItem("3", "批量计价"));
aryTmp.Add(new ValueListItem("9", "其它计价"));
BalanceClassCommon.FilComboboxbyList(edtBalanceClass, aryTmp);
}
#endregion
}
}