Beispiel #1
0
        private void btnUpdate_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count == 0)
            {
                MessageDialog.ShowPromptMessage("请选择要修改的记录后再进行此操作");
                return;
            }
            else if (dataGridView1.SelectedRows.Count > 1)
            {
                MessageDialog.ShowPromptMessage("只能选择要修改的一条记录后再进行此操作");
                return;
            }

            if (!CheckDataItem())
            {
                return;
            }

            if (Convert.ToBoolean(BasicInfo.BaseSwitchInfo[(int)GlobalObject.CE_SwitchName.开启车间管理模块]) && txtBatchNo.Text.Trim().Length == 0)
            {
                btnBatchNo.Focus();
                MessageDialog.ShowPromptMessage("批次号不能为空!");
                return;
            }

            View_F_GoodsPlanCost planCost = m_planCostServer.GetGoodsInfo(txtCode.Text, txtName.Text, txtSpec.Text, out m_strErr);

            if (planCost == null)
            {
                return;
            }

            S_FrockInDepotGoodsBill      goods     = new S_FrockInDepotGoodsBill();
            View_S_FrockInDepotGoodsBill viewGoods = GetGoodsInfo(dataGridView1.SelectedRows[0]);

            goods.ID      = viewGoods.序号;
            goods.GoodsID = planCost.序号;
            goods.Amount  = numGoodsAmount.Value;

            if (m_operateMode == CE_BusinessOperateMode.仓库核实)
            {
                goods.ShelfArea    = txtShelf.Text;
                goods.ColumnNumber = txtColumn.Text;
                goods.LayerNumber  = txtLayer.Text;
            }

            goods.Remark = txtRemarkList.Text;

            if (!m_goodsServer.UpdateGoods(goods, out m_queryResultGoods, out m_strErr))
            {
                MessageDialog.ShowErrorMessage(m_strErr);
                return;
            }

            int rowIndex = dataGridView1.SelectedRows[0].Index;

            RefreshDataGridView(m_queryResultGoods);
            PositioningRecord(rowIndex);
        }
Beispiel #2
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            if (!CheckDataItem())
            {
                return;
            }

            if (Convert.ToBoolean(BasicInfo.BaseSwitchInfo[(int)GlobalObject.CE_SwitchName.开启车间管理模块]) && txtBatchNo.Text.Trim().Length == 0)
            {
                btnBatchNo.Focus();
                MessageDialog.ShowPromptMessage("批次号不能为空!");
                return;
            }

            int planCode = m_planCostServer.GetGoodsID(txtCode.Text, txtName.Text, txtSpec.Text, "030502",
                                                       (int)cmbUnit.SelectedValue, "自制件工装报检【" + m_billNo + "】自动生成", out m_strErr);

            S_FrockInDepotGoodsBill goods    = new S_FrockInDepotGoodsBill();
            View_F_GoodsPlanCost    planCost = m_planCostServer.GetGoodsInfo(txtCode.Text, txtName.Text, txtSpec.Text, out m_strErr);

            if (planCost == null)
            {
                return;
            }

            goods.Bill_ID      = m_billNo;
            goods.BatchNo      = txtBatchNo.Text;
            goods.Amount       = numGoodsAmount.Value;
            goods.ShelfArea    = "";
            goods.ColumnNumber = "";
            goods.LayerNumber  = "";
            goods.Remark       = txtRemarkList.Text;
            goods.StorageID    = UniversalFunction.GetStorageID(cmbStorage.Text);
            goods.GoodsID      = planCost.序号;

            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                if (row.Cells["图号型号"].Value.ToString() == txtCode.Text && row.Cells["物品名称"].Value.ToString() == txtName.Text &&
                    row.Cells["规格"].Value.ToString() == txtSpec.Text)
                {
                    MessageDialog.ShowPromptMessage("已经存在相同的物品信息列不允许再进行重复添加!");
                    return;
                }
            }

            if (!m_goodsServer.AddGoods(m_billNo, goods, out m_queryResultGoods, out m_strErr))
            {
                MessageDialog.ShowErrorMessage(m_strErr);
                return;
            }

            RefreshDataGridView(m_queryResultGoods);
            PositioningRecord(planCost.图号型号, planCost.物品名称, planCost.规格);
        }
        /// <summary>
        /// 清除NULL值
        /// </summary>
        /// <param name="goods">物品信息</param>
        private void ClearNullValue(S_FrockInDepotGoodsBill goods)
        {
            if (goods.BatchNo == null)
            {
                goods.BatchNo = "";
            }

            if (goods.ShelfArea == null)
            {
                goods.ShelfArea = "";
            }

            if (goods.ColumnNumber == null)
            {
                goods.ColumnNumber = "";
            }

            if (goods.LayerNumber == null)
            {
                goods.LayerNumber = "";
            }
        }
        /// <summary>
        /// 更新普通入库单物品
        /// </summary>
        /// <param name="goods">物品信息</param>
        /// <param name="returnInfo">操作完毕后查询数据库的返回结果</param>
        /// <param name="error">出错时返回错误信息,无错时返回null</param>
        /// <returns>操作是否成功的标志</returns>
        public bool UpdateGoods(S_FrockInDepotGoodsBill goods, out IQueryable <View_S_FrockInDepotGoodsBill> returnInfo, out string error)
        {
            returnInfo = null;
            error      = null;

            DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

            try
            {
                var result = from r in dataContxt.S_FrockInDepotGoodsBill
                             where r.ID == goods.ID
                             select r;

                ClearNullValue(goods);

                S_FrockInDepotGoodsBill updateObject = result.Single();

                updateObject.GoodsID      = goods.GoodsID;
                updateObject.Amount       = goods.Amount;
                updateObject.BatchNo      = goods.BatchNo;
                updateObject.ShelfArea    = goods.ShelfArea;
                updateObject.ColumnNumber = goods.ColumnNumber;
                updateObject.LayerNumber  = goods.LayerNumber;
                updateObject.Remark       = goods.Remark;

                dataContxt.SubmitChanges();

                returnInfo = GetGoodsViewInfo(updateObject.Bill_ID);

                return(true);
            }
            catch (Exception err)
            {
                error = err.Message;
                return(false);
            }
        }
        /// <summary>
        /// 添加自制件工装报检物品
        /// </summary>
        /// <param name="billNo">单据编号</param>
        /// <param name="goods">物品信息</param>
        /// <param name="returnInfo">操作完毕后查询数据库的返回结果</param>
        /// <param name="error">出错时返回错误信息,无错时返回null</param>
        /// <returns>操作是否成功的标志</returns>
        public bool AddGoods(string billNo, S_FrockInDepotGoodsBill goods,
                             out IQueryable <View_S_FrockInDepotGoodsBill> returnInfo, out string error)
        {
            returnInfo = null;
            error      = null;

            DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

            try
            {
                ClearNullValue(goods);

                dataContxt.S_FrockInDepotGoodsBill.InsertOnSubmit(goods);
                dataContxt.SubmitChanges();

                returnInfo = GetGoodsViewInfo(billNo);
                return(true);
            }
            catch (Exception err)
            {
                error = err.Message;
                return(false);
            }
        }
        /// <summary>
        /// 赋值账务信息
        /// </summary>
        /// <param name="ctx">数据上下文</param>
        /// <param name="bill">单据信息</param>
        /// <param name="item">明细信息</param>
        /// <returns>返回账务信息</returns>
        S_InDepotDetailBill AssignDetailInfo(DepotManagementDataContext ctx, S_FrockInDepotBill bill, S_FrockInDepotGoodsBill item)
        {
            IPersonnelInfoServer serverPersonnelInfo = ServerModuleFactory.GetServerModule <IPersonnelInfoServer>();
            View_HR_Personnel    lnqPersonnel        = UniversalFunction.GetPersonnelInfo(ctx, bill.JJRYID);
            S_InDepotDetailBill  lnqDetailBill       = new S_InDepotDetailBill();

            View_F_GoodsPlanCost lnqBasicGoodsInfo = UniversalFunction.GetGoodsInfo(ctx, item.GoodsID);

            lnqDetailBill.ID              = Guid.NewGuid();
            lnqDetailBill.BillTime        = (DateTime)bill.InDepotDate;
            lnqDetailBill.FillInPersonnel = lnqPersonnel.姓名;
            lnqDetailBill.Department      = lnqPersonnel.部门名称;
            lnqDetailBill.FactPrice       = 0;
            lnqDetailBill.FactUnitPrice   = 0;
            lnqDetailBill.GoodsID         = item.GoodsID;
            lnqDetailBill.BatchNo         = item.BatchNo;
            lnqDetailBill.InDepotBillID   = bill.Bill_ID;
            lnqDetailBill.InDepotCount    = item.Amount;
            lnqDetailBill.Price           = 0;
            lnqDetailBill.UnitPrice       = 0;
            lnqDetailBill.OperationType   = (int)CE_SubsidiaryOperationType.自制件工装入库;
            lnqDetailBill.Provider        = bill.Provider;
            lnqDetailBill.StorageID       = bill.StorageID;
            lnqDetailBill.AffrimPersonnel = bill.DepotManager;
            lnqDetailBill.FillInDate      = bill.Bill_Time;

            return(lnqDetailBill);
        }
        /// <summary>
        /// 赋值库存信息
        /// </summary>
        /// <param name="ctx">数据上下文</param>
        /// <param name="bill">单据信息</param>
        /// <param name="item">明细信息</param>
        /// <returns>返回库存信息对象</returns>
        S_Stock AssignStockInfo(DepotManagementDataContext ctx, S_FrockInDepotBill bill, S_FrockInDepotGoodsBill item)
        {
            S_Stock stock = new S_Stock();

            stock.GoodsID = item.GoodsID;

            stock.Provider = CE_WorkShopCode.JJCJ.ToString();

            stock.BatchNo         = item.BatchNo;
            stock.ProviderBatchNo = "";

            stock.StorageID    = bill.StorageID;
            stock.ShelfArea    = item.ShelfArea;
            stock.ColumnNumber = item.ColumnNumber;
            stock.LayerNumber  = item.LayerNumber;

            stock.ExistCount = (decimal)item.Amount;

            stock.UnitPrice = 0;
            stock.Price     = 0;

            return(stock);
        }