/// <summary> /// 显示剩余数量和剩余金额,并将剩余金额为负数的项标红 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gvRelationDetail_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) { WBSline_boi node = gvRelationDetail.GetFocusedRow() as WBSline_boi; //if (node != null && (e.Column == colRemainQty || e.Column == colRemainAmount)) //{ // ContractBoi remainBoi = viewModel.remainContractBoiList.Find(m => m.ItemNo == node.ItemNo); // if (remainBoi != null) // { // if (e.Column == colRemainQty) // { // decimal remainQty = ObjectHelper.GetDefaultDecimal(remainBoi.CtrctQty); // node.remainQty = remainQty; // if (remainQty < 0) // { // e.Appearance.BackColor = Color.Red; // e.Appearance.ForeColor = Color.White; // } // } // else if (e.Column == colRemainAmount) // { // decimal remainAmount = ObjectHelper.GetDefaultDecimal(remainBoi.CtrctAmount); // node.remainAmount = remainAmount; // if (remainAmount < 0) // { // e.Appearance.BackColor = Color.Red; // e.Appearance.ForeColor = Color.White; // } // } // } //} }
/// <summary> /// 插入关联关系项 /// </summary> /// <param name="BoqNo"></param> /// <param name="Boi"></param> /// <param name="OperationBy">操作人</param> /// <returns>No信息</returns> private WBSline_boi AddWBSlineBoi(string WbsNo, WBSline_boi Boi, String OperationBy, SqlTransaction Tran = null) { List <CmdParameter> cmds = new List <CmdParameter>(); cmds.Add(new CmdParameter("@ProjectNo", Boi.ProjectNo)); cmds.Add(new CmdParameter("@BidNo", Boi.BidNo)); cmds.Add(new CmdParameter("@WbsNo", WbsNo)); cmds.Add(new CmdParameter("@BoQNo", Boi.BoQNo)); cmds.Add(new CmdParameter("@ItemNo", Boi.ItemNo)); cmds.Add(new CmdParameter("@ItemName", Boi.ItemName)); cmds.Add(new CmdParameter("@WBSLineNo", Boi.WBSLineNo)); cmds.Add(new CmdParameter("@WbsSysCode", Boi.WbsSysCode)); cmds.Add(new CmdParameter("@Currency", Boi.Currency)); cmds.Add(new CmdParameter("@CurrencyCode", Boi.CurrencyCode)); cmds.Add(new CmdParameter("@ExchangeRate", Boi.ExchangeRate)); cmds.Add(new CmdParameter("@Uom", Boi.Uom)); cmds.Add(new CmdParameter("@Qty", Boi.Qty)); cmds.Add(new CmdParameter("@Amount", Boi.Amount)); cmds.Add(new CmdParameter("@CtrctQty", Boi.CtrctQty)); cmds.Add(new CmdParameter("@CtrctPrjPrice", Boi.CtrctPrjPrice)); cmds.Add(new CmdParameter("@CtrctAmount", Boi.CtrctAmount)); cmds.Add(new CmdParameter("@LatestQty", Boi.LatestQty)); cmds.Add(new CmdParameter("@LatestPrice", Boi.LatestPrice)); cmds.Add(new CmdParameter("@LatestAmount", Boi.LatestAmount)); cmds.Add(new CmdParameter("@ChangeQty", Boi.ChangeQty)); cmds.Add(new CmdParameter("@ChangePrice", Boi.ChangePrice)); cmds.Add(new CmdParameter("@ChangeAmount", Boi.ChangeAmount)); cmds.Add(new CmdParameter("@Description", Boi.Description)); cmds.Add(new CmdParameter("@CategoryNo", Boi.CategoryNo)); cmds.Add(new CmdParameter("@isCntrcItem", Boi.isCntrcItem)); cmds.Add(new CmdParameter("@isImportant", Boi.isImportant)); cmds.Add(new CmdParameter("@IsTax", Boi.IsTax)); cmds.Add(new CmdParameter("@EndingComputeQty", Boi.EndingComputeQty)); cmds.Add(new CmdParameter("@EndingComputeAmount", Boi.EndingComputeAmount)); cmds.Add(new CmdParameter("@OperationBy", OperationBy)); cmds.Add(new CmdParameter("@Id", 0, System.Data.ParameterDirection.Output)); cmds.Add(new CmdParameter("@Infor", "", System.Data.ParameterDirection.Output)); cmds.Add(new CmdParameter("@Ok", 0, System.Data.ParameterDirection.Output)); ParameterResult pResult = new ParameterResult() { Parameters = cmds.ToArray() }; HdDbCmdManager.GetInstance().Execute("ERP_BoQ.dbo.Gl_Cntrct_WbsLine_Boi_Add", CommandType.StoredProcedure, pResult.Parameters, Tran); if (!Convert.ToBoolean(pResult["@Ok"])) { throw new FaultException <ApplicationServiceError>(new ApplicationServiceError() { ErrorMessage = pResult["@Infor"].ToString() }); } Boi.WbsNo = WbsNo; return(Boi); }
private void qtyEdit_Validating(object sender, CancelEventArgs e) { WBSline_boi node = gvRelationDetail.GetFocusedRow() as WBSline_boi; CalcEdit edit = sender as CalcEdit; decimal qty = edit.Value; if (node != null) { if (qty < 0) { //edit.ErrorText = "数量不可为负数"; gvRelationDetail.SetColumnError(gvRelationDetail.FocusedColumn, "数量不可为负数"); e.Cancel = true; return; } List <WBSline_boi> lstExceptFocusedRow = viewModel.boq.AllRelationList.FindAll(m => m.ItemNo == node.ItemNo && m.WBSLineNo != node.WBSLineNo); ContractBoi originBoi = viewModel.originContractBoiList.Find(m => m.ItemNo == node.ItemNo); if (lstExceptFocusedRow != null && lstExceptFocusedRow.Count > 0) //如果存在其他相同合同项,判断相同合同项 { decimal remainQty = 0, remainAmount = 0; lstExceptFocusedRow.ForEach(m => { remainQty = remainQty + ObjectHelper.GetDefaultDecimal(m.Qty); remainAmount = remainAmount + ObjectHelper.GetDefaultDecimal(m.Amount); }); remainQty = ObjectHelper.GetDefaultDecimal(originBoi.CtrctQty) - remainQty; remainAmount = ObjectHelper.GetDefaultDecimal(originBoi.CtrctAmount) - remainAmount; if (remainQty - ObjectHelper.GetDefaultDecimal(edit.EditValue) < 0) { gvRelationDetail.SetColumnError(gvRelationDetail.FocusedColumn, "该项的关联数量总值大于该项合同清单数量的总值,请核对后再输入"); //edit.ErrorText = "该项的关联数量总值大于该项合同清单数量的总值,请核对后再输入"; e.Cancel = true; } } else { decimal remainQty = 0, remainAmount = 0; remainQty = ObjectHelper.GetDefaultDecimal(originBoi.CtrctQty); remainAmount = ObjectHelper.GetDefaultDecimal(originBoi.CtrctAmount); if (remainQty - ObjectHelper.GetDefaultDecimal(edit.EditValue) < 0) { gvRelationDetail.SetColumnError(gvRelationDetail.FocusedColumn, "该项的关联数量总值大于该项合同清单数量的总值,请核对后再输入"); //edit.ErrorText = "该项的关联数量总值大于该项合同清单数量的总值,请核对后再输入"; e.Cancel = true; } } } }
/// <summary> /// 删除关联关系 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void bbiDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { gvRelationDetail.PostEditor(); if (!this.Validate()) { XtraMessageBox.Show("输入不符合规则"); return; } WBSline_boi deleteRow = gvRelationDetail.GetFocusedRow() as WBSline_boi; if (deleteRow != null) { viewModel.DeleteRelation(deleteRow.ItemNo); gcRelationDetail.RefreshDataSource(); } }