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 Pur.Entity.balanceEntity;
using Core.Mes.Client.Comm.Control;
using com.hnshituo.pur.vo;
using Core.Mes.Client.Comm.Tool;
using System.Collections;
using Infragistics.Win;
using Pur.Entity;
namespace Pur.balance
{
public partial class FrmBlanceMana : FrmPmsBase
{
public FrmBlanceMana()
{
InitializeComponent();
bandListValue();
txt_CreateTimeStart.Value = ((DateTime)txt_CreateTimeStart.Value).AddMonths(-1);//将查询的截止日期加一天
GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], "Check");
ultraGrid2.DisplayLayout.Bands[0].Override.AllowUpdate = DefaultableBoolean.False;
}
///
/// toolbar工具栏加载
///
///
///
public override void ToolBar_Click(object sender, string ToolbarKey)
{
switch (ToolbarKey)
{
case "Query":
getBalanceM();
break;
case "Update":
//UpdPUR_MAT();
break;
case "DeleteBalanceM":
if (ultraGrid1.ActiveRow != null)
{
DeleteBalanceM(ultraGrid1.ActiveRow.Cells["BALANCEID"].Value.ToString());
}
break;
case "DeleteBalanceC":
if (ultraGrid2.ActiveRow != null)
{
DeleteBalanceC(ultraGrid2.ActiveRow.Cells["ID"].Value.ToString());
}
break;
case "DeleteBalanceCD":
if (ultraTabControl1.SelectedTab.Key == "0")
{
if (ultraGrid3.ActiveRow != null)
{
DeleteBalanceCD(ultraGrid3.ActiveRow.Cells["ID"].Value.ToString());
}
}
else if (ultraTabControl1.SelectedTab.Key == "1")
{
if (ultraGrid4.ActiveRow != null)
{
DeleteBalanceCD(ultraGrid4.ActiveRow.Cells["ID"].Value.ToString());
}
}
else if (ultraTabControl1.SelectedTab.Key == "2")
{
if (ultraGrid5.ActiveRow != null)
{
DeleteBalanceCD(ultraGrid5.ActiveRow.Cells["ID"].Value.ToString());
}
}
break;
case "getBalanceRegM":
getBalanceRegM();//生成报销登记单
break;
}
}
///
/// 绑定grid下拉框
///
private void bandListValue()
{
//参考结算标准类别
Infragistics.Win.ValueList valueList3 = new Infragistics.Win.ValueList();
valueList3.ValueListItems.Add("1", "基准计价");
valueList3.ValueListItems.Add("2", "成分计价");
valueList3.ValueListItems.Add("3", "批量计价");
//设置默认选项
if (valueList3.ValueListItems.Count > 0)
{
valueList3.SelectedIndex = 0;
}
Infragistics.Win.ValueList valueList4 = new Infragistics.Win.ValueList();
valueList4.ValueListItems.Add("1", "基准计价");
valueList4.ValueListItems.Add("2", "成分计价");
valueList4.ValueListItems.Add("3", "批量计价");
//设置默认选项
if (valueList4.ValueListItems.Count > 0)
{
valueList4.SelectedIndex = 0;
}
Infragistics.Win.ValueList valueList5 = new Infragistics.Win.ValueList();
valueList5.ValueListItems.Add("1", "基准计价");
valueList5.ValueListItems.Add("2", "成分计价");
valueList5.ValueListItems.Add("3", "批量计价");
//设置默认选项
if (valueList5.ValueListItems.Count > 0)
{
valueList5.SelectedIndex = 0;
}
ultraGrid3.DisplayLayout.Bands[0].Columns["REFSTANDARDMTYPE"].ValueList = valueList3;
ultraGrid4.DisplayLayout.Bands[0].Columns["REFSTANDARDMTYPE"].ValueList = valueList4;
ultraGrid5.DisplayLayout.Bands[0].Columns["REFSTANDARDMTYPE"].ValueList = valueList5;
}
///
/// 获取结算单信息
///
private void getBalanceM()
{
PurBalanceBillMEntity entity = getEnSelContion();
DataTable dt = this.execute("com.hnshituo.pur.balance.service.BalanceBillMService", "getBalanceM", new object[] { entity });
//按创建时间降序
if (dt.Rows.Count != 0)
{
dt.DefaultView.Sort = "CREATETIME DESC";
dt = dt.DefaultView.ToTable();
}
GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true);//结算信息
if (dt.Rows.Count < 1)
{
dataTable2.Rows.Clear();
dataTable3.Rows.Clear();
dataTable4.Rows.Clear();
dataTable5.Rows.Clear();
}
}
///
/// 查询结算单详表
///
///
private void getBalanceC(string strBalanceId)
{
PurBalanceBillCEntity pbbcEntity = new PurBalanceBillCEntity();
pbbcEntity.BalanceId = strBalanceId;
pbbcEntity.Validflag = "1";
DataTable dt = this.execute("com.hnshituo.pur.balance.service.BalanceBillCService", "find", new object[] { pbbcEntity, 0, 0 });
GridHelper.CopyDataToDatatable(ref dt, ref dataTable5, true);//结算信息
if (dt.Rows.Count < 1)
{
dataTable2.Rows.Clear();
dataTable3.Rows.Clear();
dataTable4.Rows.Clear();
}
}
///
/// 查询结算单详表明细
///
///
private void getBalanceCD(string strBalanceId, string strBalanceCId)
{
PurBalanceBillCDEntity pbbcdEntity = new PurBalanceBillCDEntity();
pbbcdEntity.BalanceId = strBalanceId;
pbbcdEntity.BalanceCId = strBalanceCId;
pbbcdEntity.Type = "3";//数量
pbbcdEntity.Validflag = "1";
DataTable dt = this.execute("com.hnshituo.pur.balance.service.BalanceBillCDService", "find", new object[] { pbbcdEntity, 0, 0 });
GridHelper.CopyDataToDatatable(ref dt, ref dataTable2, true);//数量
pbbcdEntity.Type = "2";//单价
dt = this.execute("com.hnshituo.pur.balance.service.BalanceBillCDService", "find", new object[] { pbbcdEntity, 0, 0 });
GridHelper.CopyDataToDatatable(ref dt, ref dataTable3, true);//单价
pbbcdEntity.Type = "4";//金额
dt = this.execute("com.hnshituo.pur.balance.service.BalanceBillCDService", "find", new object[] { pbbcdEntity, 0, 0 });
GridHelper.CopyDataToDatatable(ref dt, ref dataTable4, true);//金额
}
///
/// 删除结算单主表
///
///
private void DeleteBalanceM(string strBalanceId)
{
if (MessageUtil.ShowYesNoAndQuestion("确定要删除结算单【" + strBalanceId + "】吗") == DialogResult.Yes)
{
CoreResult crt = this.execute("com.hnshituo.pur.balance.service.BalanceBillMService", "DeleteBalanceM", new object[] { strBalanceId, UserInfo.GetUserName(), UserInfo.GetUserID() });
if (crt.Resultcode != 0)
{
MessageUtil.ShowTips("删除结算单失败 " + crt.Resultmsg);
return;
}
MessageUtil.ShowTips("删除结算单成功!");
getBalanceM();
}
}
///
/// 删除结算单行表
///
///
private void DeleteBalanceC(string strBalanceCId)
{
if (MessageUtil.ShowYesNoAndQuestion("确定要删除结算单行号【" + strBalanceCId + "】吗") == DialogResult.Yes)
{
CoreResult crt = this.execute("com.hnshituo.pur.balance.service.BalanceBillMService", "DeleteBalanceC", new object[] { strBalanceCId, UserInfo.GetUserName(), UserInfo.GetUserID() });
if (crt.Resultcode != 0)
{
MessageUtil.ShowTips("删除结算行失败 " + crt.Resultmsg);
return;
}
MessageUtil.ShowTips("删除结算行成功!");
getBalanceC(ultraGrid1.ActiveRow.Cells["BALANCEID"].Value.ToString());
}
}
///
/// 删除结算单明细说明表
///
///
private void DeleteBalanceCD(string strBalanceCDId)
{
if (MessageUtil.ShowYesNoAndQuestion("删除结算明细说明【" + strBalanceCDId + "】吗") == DialogResult.Yes)
{
PurBalanceBillCDEntity pbbcd = new PurBalanceBillCDEntity();
pbbcd.Id = strBalanceCDId;
pbbcd.Validflag = "0";
pbbcd.DeleteName = UserInfo.GetUserName();
pbbcd.DeleteUserid = UserInfo.GetUserID();
CoreResult crt = this.execute("com.hnshituo.pur.balance.service.BalanceBillCDService", "doUpdate", new object[] { pbbcd });
if (crt.Resultcode != 0)
{
MessageUtil.ShowTips("删除结算明细说明行失败 " + crt.Resultmsg);
return;
}
MessageUtil.ShowTips("删除结算明细说明行成功!");
getBalanceCD(ultraGrid1.ActiveRow.Cells["BALANCEID"].Value.ToString(), ultraGrid2.ActiveRow.Cells["ID"].Value.ToString());
}
}
///
/// 获取查询条件
///
///
private PurBalanceBillMEntity getEnSelContion()
{
PurBalanceBillMEntity entity = new PurBalanceBillMEntity();
if (txt_STATUS.Value != null && txt_STATUS.Value.ToString() != "")
{
entity.Status = txt_STATUS.Value.ToString();//状态
}
if (txt_BALANCE_ID.Text != "")
{
entity.BalanceId = txt_BALANCE_ID.Text;//结算单号
}
if (txt_SUPP_NAME.Text != null)
{
entity.SuppName = txt_SUPP_NAME.Text;//供应商名称
}
if (txt_CreateTimeStart.Value != null)
{
entity.CreateTime = (DateTime)txt_CreateTimeStart.Value;//起始时间
}
else
{
entity.CreateTime = DateTime.MinValue;
}
if (txt_CreateTimeEnd.Value != null)
{
entity.UpdateTime = (DateTime)txt_CreateTimeEnd.Value;//结束时间
}
else
{
entity.UpdateTime = DateTime.MaxValue;
}
entity.Validflag = "1";//状态
return entity;
}
///
/// 结算单主表激活行事件
///
///
///
private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
{
getBalanceC(ultraGrid1.ActiveRow.Cells["BALANCEID"].Value.ToString());
}
///
/// 结算单行表激活行事件
///
///
///
private void ultraGrid2_AfterRowActivate(object sender, EventArgs e)
{
getBalanceCD(ultraGrid1.ActiveRow.Cells["BALANCEID"].Value.ToString(), ultraGrid2.ActiveRow.Cells["ID"].Value.ToString());
}
///
/// 生成报销登记单
///
private void getBalanceRegM()
{
ultraGrid1.UpdateData();
ArrayList al_BalanceId=new ArrayList();
ArrayList al_SUPPCODE=new ArrayList();//保存供应商,判定不能选择同一个供应商的结算单
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
if ((Boolean)ultraGrid1.Rows[i].Cells["Check"].Value)
{
al_BalanceId.Add(ultraGrid1.Rows[i].Cells["BALANCEID"].Value.ToString());
if (!al_SUPPCODE.Contains(ultraGrid1.Rows[i].Cells["SUPPCODE"].Value.ToString()) && al_SUPPCODE.Count>0)
{
MessageUtil.ShowTips("请选择同一个供应商的结算单");
return;
}
else
{
al_SUPPCODE.Add(ultraGrid1.Rows[i].Cells["SUPPCODE"].Value.ToString());
}
}
}
if (al_BalanceId.Count < 1)
{
MessageUtil.ShowTips("请勾选结算单");
return;
}
FrmPop_BalanceRegM frm = new FrmPop_BalanceRegM(al_BalanceId, this.ob);
frm.ShowDialog();
}
}
}