| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622 |
- 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宽¨ª
- }
- /// <summary>
- /// 获取结算单信息
- /// </summary>
- private void getBalance(ArrayList strOrder)
- {
- DataTable dt = this.execute<DataTable>("com.hnshituo.pur.balance.service.BalanceBillCService", "getBalance", new object[] { strOrder });
- //基础数量默认为入库量
- GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true);//结算信息
- ultraGrid1.UpdateData();
-
- bandListValue();// 绑定grid下拉框
- saveBalanceBillCD();// 建立保存结算单明细说明保存库
- }
- /// <summary>
- /// 建立保存结算单明细说明保存库
- /// </summary>
- 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);
- }
- }
- /// <summary>
- /// 绑定grid下拉框
- /// </summary>
- 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;
- }
- /// <summary>
- /// 结算操作
- /// </summary>
- 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<PurCkInBillEntity>("com.hnshituo.pur.ck.service.CkInBillService", "findById", new object[] { ultraGrid1.Rows[i].Cells["INSTOCKNO"].Value.ToString() });
- PurBalanceBillCEntity pbbc = new PurBalanceBillCEntity();//结算明细
- pbbc = EntityHelper.CopyEntity<PurBalanceBillCEntity>(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<CoreResult>("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();//含税总金额
- }
- }
- }
- /// <summary>
- /// 按钮控件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- 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;
- }
- }
- /// <summary>
- /// 加减额度改变事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- 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();
- }
- }
- /// <summary>
- /// 加减额度更新事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- 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();//计算结算单加减金额
- }
- }
- }
- }
- /// <summary>
- /// 选中结算行事件
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- 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);
- }
- }
- }
|