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 Core.Mes.Client.Comm.Tool;
using Core.Mes.Client.Comm.Control;
using System.Collections;
using Pur.Entity.balanceEntity;
using Pur.Entity.configureEntity;
using com.hnshituo.pur.vo;
using Infragistics.Win;
using Infragistics.Win.UltraWinGrid;
namespace Pur.balance
{
public partial class frmConfirmBalance : FrmPmsBase
{
string QstrSuppCode = "";
Hashtable Qhs = new Hashtable();
public frmConfirmBalance(OpeBase ob, ArrayList strOrder, string strSuppName, string strSuppCode)
{
InitializeComponent();
this.ob = ob;
txt_SuppName.Text = strSuppName;
QstrSuppCode = strSuppCode;
getBalance(strOrder);
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
GridHelper.SetExcludeColumnsActive(ultraGrid1.DisplayLayout.Bands[0], "Check", "BASEQTY");
ultraGrid1.DisplayLayout.Bands[0].PerformAutoResizeColumns(true, PerformAutoSizeType.AllRowsInBand);//自Á?适º¨º应®|列¢D宽¨ª
}
///
/// 获取结算单信息
///
private void getBalance(ArrayList strOrder)
{
DataTable dt = this.execute("com.hnshituo.pur.balance.service.BalanceBillCService", "getBalance", new object[] { strOrder });
//基础数量默认为入库量
GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true);//结算信息
ultraGrid1.UpdateData();
bandListValue();// 绑定grid下拉框
saveBalanceBillCD();// 建立保存结算单明细说明保存库
}
///
/// 建立保存结算单明细说明保存库
///
private void saveBalanceBillCD()
{
for (int i = 0; i < dataTable1.Rows.Count; i++)
{
Hashtable hs = new Hashtable();
hs.Add(0, dataTable2.Copy());
hs.Add(1, dataTable3.Copy());
hs.Add(2, dataTable4.Copy());
Qhs.Add(ultraGrid1.Rows[i].Cells["INSTOCKNO"].Value.ToString(), hs);
}
}
///
/// 绑定grid下拉框
///
private void bandListValue()
{
//参考结算标准类别
Infragistics.Win.ValueList valueList2 = new Infragistics.Win.ValueList();
valueList2.ValueListItems.Add("1", "基准计价");
valueList2.ValueListItems.Add("2", "成分计价");
valueList2.ValueListItems.Add("3", "批量计价");
//设置默认选项
if (valueList2.ValueListItems.Count > 0)
{
valueList2.SelectedIndex = 0;
}
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;
}
ultraGrid2.DisplayLayout.Bands[0].Columns["REFSTANDARDMTYPE"].ValueList = valueList2;
ultraGrid3.DisplayLayout.Bands[0].Columns["REFSTANDARDMTYPE"].ValueList = valueList3;
ultraGrid4.DisplayLayout.Bands[0].Columns["REFSTANDARDMTYPE"].ValueList = valueList4;
}
///
/// 结算操作
///
private void addBalance()
{
getData();
ultraGrid1.UpdateData();
ArrayList alpbbc = new ArrayList();
PurBalanceBillMEntity pbbm = new PurBalanceBillMEntity();//结算主表
ArrayList alpbbcd = new ArrayList();
//结算主表
pbbm.BalanceId = Guid.NewGuid().ToString();//结算单号
pbbm.Status = "1";//结算状态
pbbm.SuppName = txt_SuppName.Text;//供应商名称
pbbm.SuppCode = QstrSuppCode;//供应商代码
pbbm.OpOrgId = UserInfo.GetDeptid();//操作者机构ID
pbbm.OpOrgName = UserInfo.GetDepartment();//操作者机构名称
pbbm.SettleDate = System.DateTime.Now;//结算日期
if (string.IsNullOrEmpty(txt_BALANCE_AMT_TAX.Text))
{
pbbm.TotalWithoutAmtTax = 0;//含税总金额
}
else
{
pbbm.TotalWithoutAmtTax = double.Parse(txt_BALANCE_AMT_TAX.Text);//含税总金额
}
if (string.IsNullOrEmpty(txt_BALANCE_AMT_WITHOUT_TAX.Text))
{
pbbm.TotalWithAmtTax = double.Parse(txt_BALANCE_AMT_WITHOUT_TAX.Text);//不含税总金额
}
else
{
pbbm.TotalWithAmtTax = double.Parse(txt_BALANCE_AMT_WITHOUT_TAX.Text);//不含税总金额
}
pbbm.Validflag = "1";
pbbm.CreateUserid = UserInfo.GetUserID();
pbbm.CreateName = UserInfo.GetUserName();
pbbm.CreateTime = System.DateTime.Now;
//结算明细
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
if ((Boolean)ultraGrid1.Rows[i].Cells["Check"].Value)
{
double bINNUM = 0;//入库量
double.TryParse(ultraGrid1.Rows[i].Cells["INNUM"].Value.ToString(), out bINNUM);
double bINVOICEDQTY = 0;//已结算量
double.TryParse(ultraGrid1.Rows[i].Cells["INVOICEDQTY"].Value.ToString(), out bINVOICEDQTY);
double bBASEQTY = 0;//基础数量
double.TryParse(ultraGrid1.Rows[i].Cells["BASEQTY"].Value.ToString(), out bBASEQTY);
if (bBASEQTY > (bINNUM-bINVOICEDQTY))
{
MessageUtil.ShowTips("单号【" + ultraGrid1.Rows[i].Cells["INSTOCKNO"].Value.ToString() + "】的基础数量不能大于入库量和已结算量的差值");
return;
}
PurCkInBillEntity pckb = new PurCkInBillEntity();//入库单表
pckb = this.execute("com.hnshituo.pur.ck.service.CkInBillService", "findById", new object[] { ultraGrid1.Rows[i].Cells["INSTOCKNO"].Value.ToString() });
PurBalanceBillCEntity pbbc = new PurBalanceBillCEntity();//结算明细
pbbc = EntityHelper.CopyEntity(pckb);
pbbc.Validflag = "1";
pbbc.Id = Guid.NewGuid().ToString();//主键
pbbc.BalanceId = pbbm.BalanceId;//结算单号
if (ultraGrid1.ActiveRow.Cells["BASEQTY"].Value.ToString().Trim() != "")
{
pbbc.BaseQty = double.Parse(ultraGrid1.Rows[i].Cells["BASEQTY"].Value.ToString());//基础数量
}
if (ultraGrid1.ActiveRow.Cells["PRICEWITHOUTTAX"].Value.ToString().Trim() != "")
{
pbbc.BaseQty = double.Parse(ultraGrid1.Rows[i].Cells["PRICEWITHOUTTAX"].Value.ToString());//基础单价
}
if (ultraGrid1.Rows[i].Cells["ADDSUBTQTY"].Value.ToString().Trim() != "")
{
pbbc.AddSubtQty = double.Parse(ultraGrid1.Rows[i].Cells["ADDSUBTQTY"].Value.ToString());//加扣数量
}
if (ultraGrid1.Rows[i].Cells["ADDSUBTPRICE"].Value.ToString().Trim() != "")
{
pbbc.AddSubtPrice = double.Parse(ultraGrid1.Rows[i].Cells["ADDSUBTPRICE"].Value.ToString());//加扣单价
}
if (ultraGrid1.Rows[i].Cells["BALANCEQTY"].Value.ToString().Trim() != "")
{
pbbc.BalanceQty = double.Parse(ultraGrid1.Rows[i].Cells["BALANCEQTY"].Value.ToString());//结算数量
}
if (ultraGrid1.Rows[i].Cells["BALANCEPRICE"].Value.ToString().Trim() != "")
{
pbbc.BalancePrice = double.Parse(ultraGrid1.Rows[i].Cells["BALANCEPRICE"].Value.ToString());//结算单价
}
if (ultraGrid1.Rows[i].Cells["ADDSUBTAMT"].Value.ToString().Trim() != "")
{
pbbc.AddSubtAmt = double.Parse(ultraGrid1.Rows[i].Cells["ADDSUBTAMT"].Value.ToString());//加扣金额
}
if (ultraGrid1.Rows[i].Cells["BALANCEAMT"].Value.ToString().Trim() != "")
{
pbbc.BalanceAmt = double.Parse(ultraGrid1.Rows[i].Cells["BALANCEAMT"].Value.ToString());//结算金额
pbbc.BalanceAmtWithoutTax = pbbc.BalanceAmt * 1.13;
}
pbbc.CreateUserid = UserInfo.GetUserID();
pbbc.CreateName = UserInfo.GetUserName();
pbbc.CreateTime = System.DateTime.Now;
pbbc.UpdateName = null;
pbbc.UpdateTime = null;
pbbc.UpdateUserid = null;
alpbbc.Add(pbbc);//结算明细
//结算明细说明
Hashtable hs = (Hashtable)Qhs[ultraGrid1.Rows[i].Cells["INSTOCKNO"].Value.ToString()];
DataTable dtQty = (DataTable)hs[0];
DataTable dtPrice = (DataTable)hs[1];
DataTable dtAmt = (DataTable)hs[2];
///加扣数量
for (int j = 0; j < dtQty.Rows.Count; j++)
{
PurBalanceBillCDEntity pbbcd = new PurBalanceBillCDEntity();//结算明细说明
pbbcd.Id = Guid.NewGuid().ToString();
pbbcd.BalanceCId = pbbc.Id;
pbbcd.BalanceId = pbbc.BalanceId;
pbbcd.AddSubtValue = double.Parse(dtQty.Rows[j]["ADDSUBTVALUE"].ToString());
pbbcd.BalanceDesc = dtQty.Rows[j]["BALANCEDESC"].ToString();
pbbcd.Validflag = "1";
pbbcd.RefStandardMType = dtQty.Rows[j]["REFSTANDARDMTYPE"].ToString().Trim();//参考结算标准类别
pbbcd.RefStandardCId = dtQty.Rows[j]["REFSTANDARDCID"].ToString();
pbbcd.RefStandardMId = dtQty.Rows[j]["REFSTANDARDMID"].ToString();
pbbcd.Type = "3";//类别
pbbcd.CreateUserid = UserInfo.GetUserID();
pbbcd.CreateName = UserInfo.GetUserName();
pbbcd.CreateTime = System.DateTime.Now;
pbbcd.UpdateName = null;
pbbcd.UpdateTime = null;
pbbcd.UpdateUserid = null;
alpbbcd.Add(pbbcd);//结算明细说明
}
///加扣单价
for (int j = 0; j < dtPrice.Rows.Count; j++)
{
PurBalanceBillCDEntity pbbcd = new PurBalanceBillCDEntity();//结算明细说明
pbbcd.Id = Guid.NewGuid().ToString();
pbbcd.BalanceCId = pbbc.Id;
pbbcd.BalanceId = pbbc.BalanceId;
pbbcd.AddSubtValue = double.Parse(dtPrice.Rows[j]["ADDSUBTVALUE"].ToString());
pbbcd.BalanceDesc = dtPrice.Rows[j]["BALANCEDESC"].ToString();
pbbcd.RefStandardMType = dtPrice.Rows[j]["REFSTANDARDMTYPE"].ToString().Trim();//参考结算标准类别
pbbcd.RefStandardCId = dtPrice.Rows[j]["REFSTANDARDCID"].ToString();
pbbcd.RefStandardMId = dtPrice.Rows[j]["REFSTANDARDMID"].ToString();
pbbcd.Validflag = "1";
pbbcd.Type = "2";//类别
pbbcd.CreateUserid = UserInfo.GetUserID();
pbbcd.CreateName = UserInfo.GetUserName();
pbbcd.CreateTime = System.DateTime.Now;
pbbcd.UpdateName = null;
pbbcd.UpdateTime = null;
pbbcd.UpdateUserid = null;
alpbbcd.Add(pbbcd);//结算明细说明
}
///加扣金额
for (int j = 0; j < dtAmt.Rows.Count; j++)
{
PurBalanceBillCDEntity pbbcd = new PurBalanceBillCDEntity();//结算明细说明
pbbcd.Id = Guid.NewGuid().ToString();
pbbcd.BalanceCId = pbbc.Id;
pbbcd.BalanceId = pbbc.BalanceId;
pbbcd.AddSubtValue = double.Parse(dtAmt.Rows[j]["ADDSUBTVALUE"].ToString());
pbbcd.BalanceDesc = dtAmt.Rows[j]["BALANCEDESC"].ToString();
pbbcd.RefStandardMType = dtAmt.Rows[j]["REFSTANDARDMTYPE"].ToString().Trim();//参考结算标准类别
pbbcd.RefStandardCId = dtAmt.Rows[j]["REFSTANDARDCID"].ToString();
pbbcd.RefStandardMId = dtAmt.Rows[j]["REFSTANDARDMID"].ToString();
pbbcd.Validflag = "1";
pbbcd.Type = "4";//类别
pbbcd.CreateUserid = UserInfo.GetUserID();
pbbcd.CreateName = UserInfo.GetUserName();
pbbcd.CreateTime = System.DateTime.Now;
pbbcd.UpdateName = null;
pbbcd.UpdateTime = null;
pbbcd.UpdateUserid = null;
alpbbcd.Add(pbbcd);//结算明细说明
}
}
}
if (alpbbc.Count < 1)
{
MessageUtil.ShowTips("请选择入库单行信息结算");
return;
}
CoreResult crt = this.execute("com.hnshituo.pur.balance.service.BalanceBillMService", "AddBalance", new object[] { pbbm, alpbbc, alpbbcd });
if (crt.Resultcode != 0)
{
MessageUtil.ShowTips("结算失败 " + crt.Resultmsg);
return;
}
MessageUtil.ShowTips("结算成功,结算单号:" + crt.Resultmsg);
}
private void getData()
{
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
double bINNUM = 0;//入库量
if (ultraGrid1.Rows[i].Cells["INNUM"].Value != null)
{
double.TryParse(ultraGrid1.Rows[i].Cells["INNUM"].Value.ToString(), out bINNUM);
}
double bINVOICEDQTY = 0;//已结算量
if (ultraGrid1.Rows[i].Cells["INVOICEDQTY"].Value != null)
{
double.TryParse(ultraGrid1.Rows[i].Cells["INVOICEDQTY"].Value.ToString(), out bINVOICEDQTY);
}
ultraGrid1.Rows[i].Cells["BASEQTY"].Value = bINNUM - bINVOICEDQTY;//基础数量
ultraGrid1.Rows[i].Cells["BALANCEQTY"].Value = ultraGrid1.Rows[i].Cells["BASEQTY"].Value;//结算数量
ultraGrid1.Rows[i].Cells["BALANCEPRICE"].Value = ultraGrid1.Rows[i].Cells["PRICEWITHOUTTAX"].Value;//结算单价
double bBALANCEQTY = 0;//结算数量
if (ultraGrid1.Rows[i].Cells["BALANCEQTY"].Value != null)
{
double.TryParse(ultraGrid1.Rows[i].Cells["BALANCEQTY"].Value.ToString(), out bBALANCEQTY);
}
double bBALANCEPRICE = 0;//结算单价
if (ultraGrid1.Rows[i].Cells["BALANCEPRICE"].Value != null)
{
double.TryParse(ultraGrid1.Rows[i].Cells["BALANCEPRICE"].Value.ToString(), out bBALANCEPRICE);
}
ultraGrid1.Rows[i].Cells["BALANCEAMT"].Value = bBALANCEQTY * bBALANCEPRICE;//含税金额
}
ultraGrid1.UpdateData();
double summer = 0;//含税总金额
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
if ((Boolean)ultraGrid1.Rows[i].Cells["Check"].Value)
{
if (ultraGrid1.Rows[i].Cells["BALANCEAMT"].Value.ToString().Trim() != "")
{
double d = 0;
double.TryParse(ultraGrid1.Rows[i].Cells["BALANCEAMT"].Value.ToString(), out d);
summer += d;
}
}
}
txt_BALANCE_AMT_WITHOUT_TAX.Text = summer.ToString(); //不含税总金额
txt_TAX_AMT.Text = (summer * 0.13).ToString();//税额
txt_BALANCE_AMT_TAX.Text = (summer * 1.13).ToString();//含税总金额
}
private void ultraGrid1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
{
ultraGrid1.UpdateData();
//如果已结算量大于入库量,则不让其结算
if (e.Cell.Column.Key == "Check")
{
if ((Boolean)(e.Cell.Value))
{
double bINNUM = 0;//入库量
if (e.Cell.Row.Cells["INNUM"].Value != null)
{
double.TryParse(e.Cell.Row.Cells["INNUM"].Value.ToString(), out bINNUM);
}
double bINVOICEDQTY = 0;//已结算量
if (e.Cell.Row.Cells["INVOICEDQTY"].Value != null)
{
double.TryParse(e.Cell.Row.Cells["INVOICEDQTY"].Value.ToString(), out bINVOICEDQTY);
}
if (bINVOICEDQTY >= bINNUM)
{
MessageUtil.ShowTips("已结算量必须小于入库量才能选择结算");
e.Cell.Value = false;
}
}
}
}
private void ultraGrid1_AfterCellUpdate(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
{
if (ultraGrid1.ActiveRow != null)
{
if (e.Cell.Column.Key == "BASEQTY")//基础数量
{
double b_BASEQTY = 0;//基础数量
double.TryParse(e.Cell.Value.ToString(), out b_BASEQTY);
double b_ADDSUBTQTY = 0;//加减数量
double.TryParse(e.Cell.Row.Cells["ADDSUBTQTY"].Value.ToString(), out b_ADDSUBTQTY);
//结算数量
e.Cell.Row.Cells["BALANCEQTY"].Value = b_BASEQTY + b_ADDSUBTQTY;
//结算单价
double d_BALANCEPRICE = 0;
if (ultraGrid1.ActiveRow.Cells["BALANCEPRICE"].Value != null)
{
double.TryParse(ultraGrid1.ActiveRow.Cells["BALANCEPRICE"].Value.ToString(), out d_BALANCEPRICE);
}
//加减金额
double d_ADDSUBTAMT = 0;//加减金额
if (ultraGrid1.ActiveRow.Cells["ADDSUBTAMT"].Value != null)
double.TryParse(ultraGrid1.ActiveRow.Cells["ADDSUBTAMT"].Value.ToString(), out d_ADDSUBTAMT);
ultraGrid1.ActiveRow.Cells["BALANCEAMT"].Value = (b_BASEQTY + b_ADDSUBTQTY) * d_BALANCEPRICE + d_ADDSUBTAMT;//计算结算单总金额
}
if (e.Cell.Column.Key == "BALANCEAMT")//计算含税总金额和不含税总金额
{
double summer = 0;//含税总金额
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
if (ultraGrid1.Rows[i].Cells["BALANCEAMT"].Value.ToString().Trim() != "")
{
double d = 0;
double.TryParse(ultraGrid1.Rows[i].Cells["BALANCEAMT"].Value.ToString(), out d);
summer += d;
}
}
txt_BALANCE_AMT_WITHOUT_TAX.Text = summer.ToString(); //不含税总金额
txt_TAX_AMT.Text = (summer * 0.13).ToString();//税额
txt_BALANCE_AMT_TAX.Text = (summer * 1.13).ToString();//含税总金额
}
}
}
///
/// 按钮控件
///
///
///
private void barsManagerButon_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
switch (e.Tool.Key.ToString())
{
case "Query":
{
}
break;
case "conFirmation":
{
if (ultraGrid1.Rows.Count < 1)
{
MessageUtil.ShowTips("没有入库单,不能进行结算操作");
return;
}
addBalance();
}
break;
case "ESC":
{
this.Close();
}
break;
}
}
///
/// 加减额度改变事件
///
///
///
private void ultraGrid2_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
{
if (ultraGrid1.Rows.Count < 1)
{
return;
}
if (sender.Equals(ultraGrid2))
{
ultraGrid2.UpdateData();
//保存当前结算单行加减数量表
Hashtable hs = (Hashtable)Qhs[ultraGrid1.ActiveRow.Cells["INSTOCKNO"].Value.ToString()];
hs[0] = dataTable2.Copy();
}
else if (sender.Equals(ultraGrid3))
{
ultraGrid3.UpdateData();
//保存当前结算单行加减数量表
Hashtable hs = (Hashtable)Qhs[ultraGrid1.ActiveRow.Cells["INSTOCKNO"].Value.ToString()];
hs[1] = dataTable3.Copy();
}
else if (sender.Equals(ultraGrid4))
{
ultraGrid4.UpdateData();
//保存当前结算单行加减数量表
Hashtable hs = (Hashtable)Qhs[ultraGrid1.ActiveRow.Cells["INSTOCKNO"].Value.ToString()];
hs[2] = dataTable4.Copy();
}
}
///
/// 加减额度更新事件
///
///
///
private void ultraGrid2_AfterCellUpdate(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
{
if (ultraGrid1.ActiveRow != null)
{
if (sender.Equals(ultraGrid2))//数量
{
if (e.Cell.Column.Key == "ADDSUBTVALUE")//输入字段为数量加减额度
{
double summer = 0;
for (int i = 0; i < ultraGrid2.Rows.Count; i++)
{
if (ultraGrid2.Rows[i].Cells["ADDSUBTVALUE"].Value.ToString().Trim() != "")
{
double d = 0;
double.TryParse(ultraGrid2.Rows[i].Cells["ADDSUBTVALUE"].Value.ToString(), out d);
summer += d;
}
}
ultraGrid1.ActiveRow.Cells["ADDSUBTQTY"].Value = summer.ToString();//结算单加减数量
//改变结算单的 结算数量 和 结算金额
//结算数量=基础数量+加减数量
double d_BASEQTY = 0;//基础数量
double.TryParse(ultraGrid1.ActiveRow.Cells["BASEQTY"].Value.ToString(), out d_BASEQTY);
ultraGrid1.ActiveRow.Cells["BALANCEQTY"].Value = summer + d_BASEQTY;//结算数量
//结算金额=结算数量*结算单价+加减金额
double d_BALANCEPRICE = 0;//结算单价
double.TryParse(ultraGrid1.ActiveRow.Cells["BALANCEPRICE"].Value.ToString(), out d_BALANCEPRICE);
//加减金额
double d_ADDSUBTAMT = 0;//加减金额
double.TryParse(ultraGrid1.ActiveRow.Cells["ADDSUBTAMT"].Value.ToString(), out d_ADDSUBTAMT);
ultraGrid1.ActiveRow.Cells["BALANCEAMT"].Value = (summer + d_BASEQTY) * d_BALANCEPRICE + d_ADDSUBTAMT;//计算结算单总金额
}
}
else if (sender.Equals(ultraGrid3))//单价
{
if (e.Cell.Column.Key == "ADDSUBTVALUE")//输入字段为单价加减额度
{
double summer = 0;
for (int i = 0; i < ultraGrid3.Rows.Count; i++)
{
if (ultraGrid3.Rows[i].Cells["ADDSUBTVALUE"].Value.ToString().Trim() != "")
{
double d = 0;
double.TryParse(ultraGrid3.Rows[i].Cells["ADDSUBTVALUE"].Value.ToString(), out d);
summer += d;
}
}
ultraGrid1.ActiveRow.Cells["ADDSUBTPRICE"].Value = summer.ToString();//加减单价
//改变结算单的 结算单价 和 结算金额
//结算单价=基础单价+加减单价
double d_PRICEWITHTAX = 0;//基础单价
double.TryParse(ultraGrid1.ActiveRow.Cells["PRICEWITHOUTTAX"].Value.ToString(), out d_PRICEWITHTAX);
ultraGrid1.ActiveRow.Cells["BALANCEPRICE"].Value = summer + d_PRICEWITHTAX;//结算单价
//结算金额=结算数量*结算单价+加减金额
double d_BALANCEQTY = 0;//结算数量
double.TryParse(ultraGrid1.ActiveRow.Cells["BALANCEQTY"].Value.ToString(), out d_BALANCEQTY);
//加减金额
double d_ADDSUBTAMT = 0;//加减金额
double.TryParse(ultraGrid1.ActiveRow.Cells["ADDSUBTAMT"].Value.ToString(), out d_ADDSUBTAMT);
ultraGrid1.ActiveRow.Cells["BALANCEAMT"].Value = d_BALANCEQTY * (summer + d_PRICEWITHTAX) + d_ADDSUBTAMT;//计算结算单总金额
}
}
else if (sender.Equals(ultraGrid4))//金额
{
if (e.Cell.Column.Key == "ADDSUBTVALUE")//输入字段为金额加减额度
{
double summer = 0;
for (int i = 0; i < ultraGrid4.Rows.Count; i++)
{
if (ultraGrid4.Rows[i].Cells["ADDSUBTVALUE"].Value.ToString().Trim() != "")
{
double d = 0;
double.TryParse(ultraGrid4.Rows[i].Cells["ADDSUBTVALUE"].Value.ToString(), out d);
summer += d;
}
}
//改变结算单的 结算金额
//结算金额=结算金额-原加减金额+新加减金额
double d_BALANCEAMT = 0;//新结算金额
double.TryParse(ultraGrid1.ActiveRow.Cells["BALANCEAMT"].Value.ToString(), out d_BALANCEAMT);
double d_ADDSUBTAMT = 0;//原加减金额
double.TryParse(ultraGrid1.ActiveRow.Cells["ADDSUBTAMT"].Value.ToString(), out d_ADDSUBTAMT);
ultraGrid1.ActiveRow.Cells["BALANCEAMT"].Value = d_BALANCEAMT - d_ADDSUBTAMT + summer;//计算结算单总金额
ultraGrid1.ActiveRow.Cells["ADDSUBTAMT"].Value = summer.ToString();//计算结算单加减金额
}
}
}
}
///
/// 选中结算行事件
///
///
///
private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
{
//保存当前结算单行加减数量表
Hashtable hs = (Hashtable)Qhs[ultraGrid1.ActiveRow.Cells["INSTOCKNO"].Value.ToString()];
DataTable dt = (DataTable)hs[0];
GridHelper.CopyDataToDatatable(ref dt, ref dataTable2, true);
dt = (DataTable)hs[1];
GridHelper.CopyDataToDatatable(ref dt, ref dataTable3, true);
dt = (DataTable)hs[2];
GridHelper.CopyDataToDatatable(ref dt, ref dataTable4, true);
}
}
}