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 Pur.Entity.configureEntity;
using CoreFS.CA06;
using Pur.Entity;
using Core.Mes.Client.Comm.Tool;
using Core.Mes.Client.Comm.Control;
using Infragistics.Win.UltraWinGrid;
using System.Collections;
using Pur.require_plan;
using Pur.Pop_upWindow;
using Infragistics.Win;
using com.hnshituo.pur.vo;
using com.hnshituo.bpm.req.vo;
using Bpm;
using Infragistics.Win.UltraWinEditors;
using System.Text.RegularExpressions;
namespace Pur.pur_plan
{
public partial class frmPurPlanExamineNew : FrmPmsBase
{
public frmPurPlanExamineNew()
{
InitializeComponent();
this.IsLoadUserView = true;
GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0],new string[]{"CHK"});
ultraGrid2.DisplayLayout.Bands[0].Override.AllowUpdate = DefaultableBoolean.False;
ultraGrid4.DisplayLayout.Bands[0].Override.AllowUpdate = DefaultableBoolean.False;
ultraGrid4.DisplayLayout.Bands[1].Override.AllowUpdate = DefaultableBoolean.False;
}
private void frmPurPlanExamine_Shown(object sender, EventArgs e)
{
this.ToolBarItemEnable(this, "Query", true);
this.ToolBarItemEnable(this, "Examine", true);
this.ToolBarItemEnable(this, "show_Information", true);
}
private void frmPurPlanExamineNew_Load(object sender, EventArgs e)
{
//年份默认查询
DataTable dt = new DataTable();
dt.Columns.Add("YEAR", Type.GetType("System.Int32"));
for (int i = 2015; i <= 2060; i++)
dt.Rows.Add(new object[] { i });
txt_year.DataSource = dt;
txt_year.ValueMember = "YEAR";
txt_year.DisplayMember = "YEAR";
txt_year.Value = DateTime.Now.Year;
//明细默认查询
txt_Status11.SelectedIndex = 1;
}
//菜单按钮事件
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "Query":
getSumAuditPlanM_s();
break;
case "show_Information":
Process();
break;
case "Exit":
Exit();
break;
case "ExamineSubmit":
ExamineSubmit();
break;
case "Export":
GridHelper.ulGridToExcel(this.ultraGrid4, "当月报表");
break;
}
}
///
/// 查询采购计划主表
///
///
public void get_PUR_PLAN_M()
{
try
{
this.Cursor = Cursors.WaitCursor;
dataTable1.Clear();
dataTable2.Clear();
dataSet4.Clear();
EntityPurPlanM entity = new EntityPurPlanM();
entity.BpmUserId = UserInfo.GetUserID();
entity.ValidDataPurviewIds = this.ValidDataPurviewIds;
if (ultraGrid6.ActiveRow == null)
{
return;
}
entity.MrPeriodEnd = Convert.ToDateTime(ultraGrid6.ActiveRow.Cells["mrperiodend"].Value);
entity.BpmProcDefKey = BpmFlowConstants.PROCDEF_PUR_PLAN_AUDIT;
entity.Validflag = "1";
DataTable dt = new DataTable();
if (txt_Status11.SelectedIndex == -1)
{
MessageUtil.ShowTips("请选择数据范围进行查询");
}
if (txt_Status11.Value.ToString().Trim() == "wait")
{
dt = this.execute("com.hnshituo.pur.purplan.service.PurPlanMService", "find_audit_status", new object[] { entity });
}
else if (txt_Status11.Value.ToString().Trim() == "did")
{
dt = this.execute("com.hnshituo.pur.purplan.service.PurPlanMService", "find_audited_status", new object[] { entity });
}
else
{
dt = this.execute("com.hnshituo.pur.purplan.service.PurPlanMService", "getPurPlanM", new object[] { entity });
}
foreach (DataRow row in dt.Rows)
{
row["MRPERIODEND"] = Convert.ToDateTime(row["MRPERIODEND"]).ToString("yyyy/MM");
}
GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true);
GridHelper.RefreshAndAutoSize(ultraGrid1);
//查询采购行信息
DataTable dt3 = this.execute("com.hnshituo.pur.purplan.service.PurPlanDService", "getPurPlanDByMonth", new object[] { entity });
if (dt3.Rows.Count > 0)
{
//查询汇总头信息
DataTable dt2 = this.execute("com.hnshituo.pur.purplan.service.PurPlanMService", "getPurPlanMByMonth", new object[] { entity });
if (dt2 != null && dt2.Rows.Count > 0)
{
//将汇总头信息按下列排序
DataTable dt_Copy = dt2.Clone();
dt_Copy.PrimaryKey = new DataColumn[] { dt_Copy.Columns["arcMidName"] };
for (int i = 0; i < dt2.Rows.Count; i++)
{
switch (dt2.Rows[i]["arcMidName"].ToString())
{
case "钢铁料":
dt_Copy.ImportRow(dt2.Rows[i]);
break;
case "铁合金":
dt_Copy.ImportRow(dt2.Rows[i]);
break;
case "电极":
dt_Copy.ImportRow(dt2.Rows[i]);
break;
case "添加剂":
dt_Copy.ImportRow(dt2.Rows[i]);
break;
case "矿石燃料":
dt_Copy.ImportRow(dt2.Rows[i]);
break;
case "耐火材料":
dt_Copy.ImportRow(dt2.Rows[i]);
break;
case "辅助材料":
dt_Copy.ImportRow(dt2.Rows[i]);
break;
}
}
for (int i = 0; i < dt2.Rows.Count; i++)
{
if (dt2.Rows[i]["arcMidName"].ToString().Trim() != "")
{
if (!dt_Copy.Rows.Contains(dt2.Rows[i]["arcMidName"].ToString()))
{
dt_Copy.ImportRow(dt2.Rows[i]);
}
}
}
dt2 = dt_Copy.Copy();
dt2.PrimaryKey = null;
}
dt2.Columns.Add("qtyPreInv", Type.GetType("System.String"));
dt2.Columns.Add("qtyPreInvAmt", Type.GetType("System.String"));
dt2.Columns.Add("qtyEndInv", Type.GetType("System.String"));
dt2.Columns.Add("qtyEndInvAmt", Type.GetType("System.String"));
DataTable dt3set = dt3.Copy();
//去掉重复物料
for (int j = dt3set.Rows.Count - 1; j >= 0; j--)
{
String strItemUnique = dt3set.Rows[j]["itemUnique"].ToString().Trim();
DataRow[] rowss = dt3.Select("itemUnique='" + strItemUnique + "'");
if (rowss.Count() >= 2)
{
dt3set.Rows.RemoveAt(j);
}
}
foreach (DataRow rows in dt2.Rows)
{
String strArcCode = rows["arcMidCode"].ToString().Trim();
DataRow[] rowdd = dt3set.Select("arcMidCode='" + strArcCode + "'");
double DbqtyPreInv = 0;
double DbqtyPreInvAmt = 0;
double DbqtyEndInv = 0;
double DbqtyEndInvAmt = 0;
foreach (DataRow roww in rowdd)
{
DbqtyPreInv = DbqtyPreInv + Convert.ToDouble(roww["qtyPreInv"]);
DbqtyPreInvAmt = DbqtyPreInvAmt + Convert.ToDouble(roww["qtyPreInvAmt"]);
DbqtyEndInv = DbqtyEndInv + Convert.ToDouble(roww["qtyEndInv"]);
DbqtyEndInvAmt = DbqtyEndInvAmt + Convert.ToDouble(roww["qtyEndInvAmt"]);
}
rows["qtyPreInv"] = DbqtyPreInv;
rows["qtyPreInvAmt"] = DbqtyPreInvAmt;
rows["qtyEndInv"] = DbqtyEndInv;
rows["qtyEndInvAmt"] = DbqtyEndInvAmt;
}
GridHelper.CopyDataToDatatable(ref dt2, ref dataTable9, true);
GridHelper.CopyDataToDatatable(ref dt3, ref dataTable6, true);
GridHelper.RefreshAndAutoSize(ultraGrid4);
//查询需求行子行信息
//DataTable dt_requires = this.execute("com.hnshituo.pur.requireplan.service.RequirePlanDService", "getSumAuditRequirePlanD", new object[] { PurPlanMEntity });
//GridHelper.CopyDataToDatatable(ref dt_requires, ref dataTable8, true);
}
}
catch (Exception ex)
{
MessageUtil.ShowTips("数据处理失败:"+ex.Message);
}
finally
{
this.Cursor = Cursors.Default;
}
}
///
/// 查询采购计划详表
///
///
public void get_PUR_PLAN_D(EntityPurPlanD PurPlanDEntity)
{
DataTable dt = this.execute("com.hnshituo.pur.purplan.service.PurPlanDService", "getPlanD", new object[] { PurPlanDEntity, 0, 0 });
GridHelper.CopyDataToDatatable(ref dt, ref dataTable2, true);//绑定采购计划行表
//DataTable dt_require = this.execute("com.hnshituo.pur.requireplan.service.RequirePlanDService", "getRequireByPlanD_ids", new object[] { ultraGrid1.ActiveRow.Cells["MRID"].Value.ToString() });
////删除父表中没有的行
//for (int i = 0; i < dt_require.Rows.Count; )
//{
// if (!dataTable2.Rows.Contains(new object[] { dt_require.Rows[i]["BUYERDEPTCODE"].ToString(), dt_require.Rows[i]["ITEMUNIQUE"].ToString() }))
// {
// dt_require.Rows.RemoveAt(i);
// }
// else { i++; }
//}
//GridHelper.CopyDataToDatatable(ref dt_require, ref dataTable3, true);//绑定采购计划行子表
}
///
/// 激活采购计划主表行(未审批)
///
///
///
private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
{
//dataTable3.Rows.Clear();
dataTable2.Clear();
message.Clear();
EntityPurPlanD PurPlanDEntity = new EntityPurPlanD();
if (ultraGrid1.ActiveRow == null)
{
return;
}
String strMrId= ultraGrid1.ActiveRow.Cells["MRID"].Value.ToString().Trim();
PurPlanDEntity.MrId = strMrId;
if (PurPlanDEntity.MrId == null || PurPlanDEntity.MrId == "")
{
return;
}
PurPlanDEntity.Validflag = "1";
get_PUR_PLAN_D(PurPlanDEntity);//查询采购计划详表
getOrderReview(strMrId);
}
///
/// 查询评审意见
///
///
private void getOrderReview(string strMrid)
{
DataTable dt11 = this.execute("com.hnshituo.pur.order.service.OrderMService", "getReviewMsg", new object[] { strMrid });
GridHelper.CopyDataToDatatable(dt11, dataTable7, true);
GridHelper.RefreshAndAutoSize(ultraGrid3);
}
///
/// 流程详情查看
///
private void Process()
{
UltraGridRow uge = ultraGrid1.ActiveRow;
if (uge == null)
{
MessageUtil.ShowWarning("请选择一条审批记录");
return;
}
string mrId = uge.Cells["MRId"].Value.ToString();
ProcInstDetail detail = new ProcInstDetail(BpmFlowConstants.PROCDEF_PUR_PLAN_AUDIT, mrId);
detail.ShowDialog();
}
///
/// 查询所有计划月份的采购计划汇总信息
///
private void getSumAuditPlanM_s()
{
try
{
this.Cursor = Cursors.WaitCursor;
EntityPurPlanM entity = new EntityPurPlanM();
entity.BpmUserId = UserInfo.GetUserID();
entity.ValidDataPurviewIds = this.ValidDataPurviewIds;
if (txt_year.SelectedIndex != -1)
{
entity.DeleteName = txt_year.Value.ToString();
}
DataTable dt = this.execute("com.hnshituo.pur.purplan.service.PurPlanMService", "getSumAuditPlanM_s", new object[] { entity });
foreach (DataRow row in dt.Rows)
{
row["MRPERIODEND"] = Convert.ToDateTime(row["MRPERIODEND"]).ToString("yyyy/MM");
double bBUDGETAMT = 0;
double.TryParse(row["BUDGETAMT"].ToString(), out bBUDGETAMT);
row["BUDGETAMT"] = Math.Round(bBUDGETAMT * 1.13, 2);//统计含税金额
}
GridHelper.CopyDataToDatatable(ref dt, ref dataTable5, true);
ultraGrid6.UpdateData();
foreach (UltraGridRow ugr in ultraGrid6.Rows)
{
if (Convert.ToDouble(ugr.Cells["validflag"].Value) > 0)//还有未审批
{
ugr.Appearance.ForeColor = Color.Red;
}
else//已审批
{
ugr.Appearance.ForeColor = Color.Black;
}
}
}
catch (Exception ex)
{
MessageUtil.ShowTips("加载数据失败:"+ex.Message);
}
finally
{
this.Cursor = Cursors.Default;
}
GridHelper.RefreshAndAutoSizeExceptColumns(ultraGrid6, new UltraGridColumn[] { });
}
///
/// 设置UltraComboEditor中的中文和非中文统一高度。
///
///
public static void SetComboItemHeight(UltraComboEditor cmb)
{
foreach (ValueListItem item in cmb.Items)
{
if (item.DisplayText != null)
{
if (Regex.IsMatch(item.DisplayText, @"[\u4e00-\u9fa5]+"))
{
item.Appearance.FontData.SizeInPoints = 9.0F;
}
else
{
item.Appearance.FontData.SizeInPoints = 10.5F;
}
}
}
}
private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
{
//dataTable3.Clear();
//dataTable2.Rows.Clear();//清空采购计划行
//if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0])
//{
// this.ToolBarItemEnable(this, "Query", true);
// this.ToolBarItemEnable(this, "Examine", true);
// this.ToolBarItemEnable(this, "show_Information", true);
// if (ultraGrid1.ActiveRow == null)
// {
// return;
// }
// UltraGridRow uge = ultraGrid1.ActiveRow;
// String YY = uge.Cells["mrId"].Value.ToString();
// EntityPurPlanD RqPM = new EntityPurPlanD();
// RqPM.MrId = YY;
// RqPM.Validflag = "1";
// get_PUR_PLAN_D(RqPM);//查询采购计划详表
//}
//if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[1])
//{
// this.ToolBarItemEnable(this, "Query", true);
// this.ToolBarItemEnable(this, "Examine", false);
// this.ToolBarItemEnable(this, "show_Information", true);
// if (ultraGrid3.ActiveRow == null)
// {
// return;
// }
// UltraGridRow uge = ultraGrid3.ActiveRow;
// String YY = uge.Cells["mrId"].Value.ToString();
// EntityPurPlanD RqPM = new EntityPurPlanD();
// RqPM.MrId = YY;
// RqPM.Validflag = "1";
// get_PUR_PLAN_D(RqPM);//查询采购计划详表
//}
}
///
/// 退回
///
private void Exit()
{
this.Close();
}
///
/// 提报
///
private void ExamineSubmit()
{
CoreResult rt = new CoreResult();
//当月报表模式
if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0])
{
frmExamineShow Fex = new frmExamineShow();
Fex.ShowDialog();
ReqCompleteTask req = new ReqCompleteTask();
req.OperatorUserId = UserInfo.GetUserID();
EntityPurPlanM entity = new EntityPurPlanM();
entity.BpmUserId = UserInfo.GetUserID();
entity.ValidDataPurviewIds = this.ValidDataPurviewIds;
entity.MrPeriodEnd = Convert.ToDateTime(ultraGrid6.ActiveRow.Cells["mrperiodend"].Value);
entity.BpmProcDefKey = BpmFlowConstants.PROCDEF_PUR_PLAN_AUDIT;
entity.Validflag = "1";
if (Fex.Status == "2")//通过
{
req.AuditData = true;
req.AuditMessage = Fex.ExamineMessage;
rt = this.execute("com.hnshituo.pur.purplan.service.PurPlanMService", "doAudit_all", new object[] { req, entity });
if (rt.Resultcode == 0)
{
MessageUtil.ShowTips("操作成功");
getSumAuditPlanM_s();
}
else
{
MessageUtil.ShowTips("操作失败," + rt.Resultmsg);
return;
}
}
else if (Fex.Status == "1")
{
req.AuditData = false;
req.AuditMessage = Fex.ExamineMessage;
rt = this.execute("com.hnshituo.pur.purplan.service.PurPlanMService", "doAudit_all", new object[] { req, entity });
if (rt.Resultcode == 0)
{
MessageUtil.ShowTips("操作成功");
getSumAuditPlanM_s();
}
else
{
MessageUtil.ShowTips("操作失败");
return;
}
}
}
else if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[1])
{
ultraGrid1.UpdateData();
ArrayList list = new ArrayList();
foreach (UltraGridRow row in ultraGrid1.Rows)
{
if (Convert.ToBoolean(row.GetCellValue("CHK")) == true)
{
EntityPurPlanM pm = new EntityPurPlanM();
pm.MrId = row.GetCellValue("MRID").ToString().Trim();
pm.ReqOrgId = row.GetCellValue("BpmTaskId").ToString().Trim();
pm.DeleteUserid = UserInfo.GetUserID();//审批人ID
list.Add(pm);
}
}
if (list.Count <= 0)
{
MessageUtil.ShowTips("请选择需要审批的计划!");
return;
}
//UltraGridRow uge = ultraGrid1.ActiveRow;
// ArrayList al = setUserPlan();
frmExamineShowNew frm = new frmExamineShowNew(list, this.ob,"pur");
frm.ShowDialog();
if (frm.tips == "1")
{
getSumAuditPlanM_s();
}
}
else
{
MessageUtil.ShowTips("未知参数");
}
}
///
/// 选择计划月,查询相应的月份数据
///
///
///
private void ultraGrid6_AfterRowActivate(object sender, EventArgs e)
{
get_PUR_PLAN_M();
}
//控制选择CHK
private void txt_Status_ValueChanged(object sender, EventArgs e)
{
get_PUR_PLAN_M();
foreach(UltraGridRow row in ultraGrid1.Rows)
{
row.Cells["CHK"].Value=false;
}
if (txt_Status11.SelectedIndex == 1)//待审批
{
ultraGrid1.DisplayLayout.Bands[0].Columns["CHK"].Hidden = false;
}
else
{
ultraGrid1.DisplayLayout.Bands[0].Columns["CHK"].Hidden = true;
}
}
private void ultraTabControl1_SelectedTabChanged_1(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
{
if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0])
{
this.ToolBarItemEnable(this, "show_Information", false);
}
else
{
this.ToolBarItemEnable(this, "show_Information", true);
}
}
private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e)
{
if (e.Row.Cells["status"].Value.ToString().StartsWith("审批不通过"))
{
e.Row.Appearance.ForeColor = Color.Red;
}
else
{
e.Row.Appearance.ForeColor = Color.Black;
}
}
}
}