Esempio n. 1
0
        /// <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;
            //            }
            //        }

            //    }
            //}
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        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;
                    }
                }
            }
        }
Esempio n. 4
0
        /// <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();
            }
        }