private void btnReexamine_Click(object sender, EventArgs e)
        {
            if (m_strDJZTFlag == "已检验")
            {
                Service_Manufacture_WorkShop.IWorkShopBasic serviceBasic =
                    Service_Manufacture_WorkShop.ServerModuleFactory.GetServerModule <Service_Manufacture_WorkShop.IWorkShopBasic>();

                WS_WorkShopCode tempLnq = serviceBasic.GetWorkShopCodeInfo(tbsDept.Tag.ToString());

                if (tempLnq == null)
                {
                    MessageDialog.ShowPromptMessage("获取车间信息错误");
                    return;
                }

                if (m_findSellIn.RetrialBill(txtSellID.Text, txtRemarkAll.Text, out m_err))
                {
                    MessageBox.Show("复审通过!", "提示");

                    List <string> tempList =
                        GlobalObject.GeneralFunction.ConvertListTypeToStringList <CE_RoleEnum>(
                            UniversalFunction.GetStoreroomKeeperRoleEnumList(tempLnq.WSCode));

                    m_billMessageServer.PassFlowMessage(txtSellID.Text,
                                                        string.Format("【退货方式】:{0}  【库房】:{1}   ※※※ 等待【下线车间工作人员】处理", cmbTHFS.Text, cmbStorage.Text),
                                                        BillFlowMessage_ReceivedUserType.角色, tempList);
                    this.Close();
                }
            }
            else
            {
                MessageBox.Show("请重新确认单据状态", "提示");
            }
        }
Beispiel #2
0
        /// <summary>
        /// 工具账务操作
        /// </summary>
        /// <param name="ctx">数据上下文</param>
        /// <param name="billNo">单据号</param>
        /// <param name="goodsID">物品ID</param>
        /// <param name="provider">供应商</param>
        /// <param name="operationCount">操作数量</param>
        /// <param name="workID">操作人员ID</param>
        void ToolsOperation(DepotManagementDataContext ctx, string billNo, int goodsID, string provider,
                            decimal operationCount, string workID)
        {
            IToolsManage serverTools = ServerModule.ServerModuleFactory.GetServerModule <IToolsManage>();

            if (serverTools.IsTools(goodsID))
            {
                Service_Manufacture_WorkShop.IWorkShopBasic serverWSBasic =
                    Service_Manufacture_WorkShop.ServerModuleFactory.GetServerModule <Service_Manufacture_WorkShop.IWorkShopBasic>();
                IPersonnelInfoServer serverPersonnel = ServerModuleFactory.GetServerModule <IPersonnelInfoServer>();

                View_HR_Personnel viewPersonnel = serverPersonnel.GetPersonnelInfo(workID);
                WS_WorkShopCode   tempWSCode    = serverWSBasic.GetPersonnelWorkShop(workID);

                S_MachineAccount_Tools toolsInfo = new S_MachineAccount_Tools();

                toolsInfo.GoodsID    = goodsID;
                toolsInfo.Provider   = provider;
                toolsInfo.StockCount = -operationCount;

                if (tempWSCode != null)
                {
                    toolsInfo.StorageCode = tempWSCode.WSCode;
                }
                else
                {
                    toolsInfo.StorageCode = viewPersonnel.部门编码;
                }

                serverTools.OpertionInfo(ctx, toolsInfo);
                serverTools.DayToDayAccount(ctx, toolsInfo, billNo);
            }
        }
        private void customDataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == -1 && e.RowIndex >= 0 &&
                customDataGridView1.CurrentRow.Cells["物品ID"].Value != null &&
                customDataGridView1.CurrentRow.Cells["物品ID"].Value.ToString().Length > 0)
            {
                BarCodeInfo barCode = new BarCodeInfo();

                barCode.BatchNo = customDataGridView1.CurrentRow.Cells["批次号"].Value == null ? "" :
                                  customDataGridView1.CurrentRow.Cells["批次号"].Value.ToString();
                barCode.Count = customDataGridView1.CurrentRow.Cells["数量"].Value == null ? 0 :
                                Convert.ToDecimal(customDataGridView1.CurrentRow.Cells["数量"].Value);
                barCode.GoodsID = Convert.ToInt32(customDataGridView1.CurrentRow.Cells["物品ID"].Value);

                View_F_GoodsPlanCost goodsInfo = UniversalFunction.GetGoodsInfo(barCode.GoodsID);

                barCode.GoodsName = goodsInfo.物品名称;
                barCode.GoodsCode = goodsInfo.图号型号;
                barCode.Spec      = goodsInfo.规格;

                CE_BusinessType tempType = CE_BusinessType.库房业务;

                Service_Manufacture_WorkShop.IWorkShopBasic serverWSBasic =
                    Service_Manufacture_WorkShop.ServerModuleFactory.GetServerModule <Service_Manufacture_WorkShop.IWorkShopBasic>();

                WS_WorkShopCode tempWSCode = serverWSBasic.GetWorkShopCodeInfo(txtApplyingDepartment.Tag.ToString());

                Dictionary <string, string> tempDic = new Dictionary <string, string>();

                CE_InPutBusinessType inPutType =
                    GlobalObject.GeneralFunction.StringConvertToEnum <CE_InPutBusinessType>(cmbBillType.Text);
                CE_MarketingType marketType =
                    GlobalObject.EnumOperation.InPutBusinessTypeConvertToMarketingType(inPutType);
                CE_SubsidiaryOperationType subsdiaryType =
                    GlobalObject.EnumOperation.InPutBusinessTypeConvertToSubsidiaryOperationType(inPutType);

                tempDic.Add("", marketType.ToString());

                if (tempWSCode != null)
                {
                    tempType = CE_BusinessType.综合业务;
                    tempDic.Add(tempWSCode.WSCode, subsdiaryType.ToString());
                }

                产品编号 frm = new 产品编号(barCode, tempType, txtBillNo.Text, (lbBillStatus.Text != CE_CommonBillStatus.单据完成.ToString()), tempDic);

                if (frm.ShowDialog() == DialogResult.OK)
                {
                    customDataGridView1.Rows[e.RowIndex].Cells["数量"].Value = frm.IntCount;
                }
            }
        }
Beispiel #4
0
        private void dgv_Main_DoubleClick(object sender, EventArgs e)
        {
            if (dgv_Main.CurrentRow == null)
            {
                return;
            }

            BarCodeInfo tempInfo = new BarCodeInfo();

            tempInfo.BatchNo   = m_dtMxRK.Rows[dgv_Main.CurrentRow.Index]["BatchNo"].ToString();
            tempInfo.Count     = Convert.ToDecimal(m_dtMxRK.Rows[dgv_Main.CurrentRow.Index]["Count"]);
            tempInfo.GoodsCode = m_dtMxRK.Rows[dgv_Main.CurrentRow.Index]["GoodsCode"].ToString();
            tempInfo.GoodsID   = Convert.ToInt32(m_dtMxRK.Rows[dgv_Main.CurrentRow.Index]["CPID"]);
            tempInfo.GoodsName = m_dtMxRK.Rows[dgv_Main.CurrentRow.Index]["GoodsName"].ToString();
            tempInfo.Remark    = m_dtMxRK.Rows[dgv_Main.CurrentRow.Index]["Remark"].ToString();
            tempInfo.Spec      = m_dtMxRK.Rows[dgv_Main.CurrentRow.Index]["Spec"].ToString();

            CE_BusinessType tempType = CE_BusinessType.库房业务;

            Service_Manufacture_WorkShop.IWorkShopBasic serverWSBasic =
                Service_Manufacture_WorkShop.ServerModuleFactory.GetServerModule <Service_Manufacture_WorkShop.IWorkShopBasic>();

            if (tbsDept.Text.Trim().Length == 0 || tbsDept.Tag == null)
            {
                throw new Exception("请选择【出货车间】");
            }

            WS_WorkShopCode tempWSCode = serverWSBasic.GetWorkShopCodeInfo(tbsDept.Tag.ToString());

            Dictionary <string, string> tempDic = new Dictionary <string, string>();

            tempDic.Add(UniversalFunction.GetStorageID(cmbStorage.Text), CE_MarketingType.入库.ToString());

            if (tempWSCode != null)
            {
                tempType = CE_BusinessType.综合业务;
                tempDic.Add(tempWSCode.WSCode, CE_SubsidiaryOperationType.营销入库.ToString());
            }

            产品编号 form = new 产品编号(tempInfo, tempType, txtSellID.Text,
                                 !(m_strDJZTFlag != "已保存" && m_strDJZTFlag != ""), tempDic);

            form.BlAfterServer = cmbRKFS.Text.Contains("售后返修");

            form.ShowDialog();

            if (form.IntCount != 0)
            {
                dgv_Main.CurrentRow.Cells["Count"].Value = form.IntCount;
            }
        }
Beispiel #5
0
        /// <summary>
        /// 赋值账务信息
        /// </summary>
        /// <param name="dataContxt">数据上下文</param>
        /// <param name="bill">单据信息</param>
        /// <param name="item">明细信息</param>
        /// <returns>返回账务信息</returns>
        S_FetchGoodsDetailBill AssignDetailInfo(DepotManagementDataContext dataContxt, S_ScrapBill bill, S_ScrapGoods item)
        {
            Service_Manufacture_WorkShop.IWorkShopStock serverWSStock =
                Service_Manufacture_WorkShop.ServerModuleFactory.GetServerModule <Service_Manufacture_WorkShop.IWorkShopStock>();
            Service_Manufacture_WorkShop.IWorkShopBasic serverWSBasic =
                Service_Manufacture_WorkShop.ServerModuleFactory.GetServerModule <Service_Manufacture_WorkShop.IWorkShopBasic>();
            WS_WorkShopCode tempWSCode = serverWSBasic.GetPersonnelWorkShop(dataContxt, bill.FillInPersonnelCode);

            S_FetchGoodsDetailBill detailBill = new S_FetchGoodsDetailBill();

            string error = "";

            if (!m_serverProductCode.UpdateProductStock(dataContxt, bill.Bill_ID, "报废", "05", false, item.GoodsID, out error))
            {
                throw new Exception(error);
            }

            detailBill.ID          = Guid.NewGuid();
            detailBill.FetchBIllID = bill.Bill_ID;
            detailBill.BillTime    = ServerTime.Time;
            detailBill.FetchCount  = -(decimal)item.Quantity;
            detailBill.GoodsID     = item.GoodsID;
            detailBill.BatchNo     = item.BatchNo == "无批次" ? "" : item.BatchNo;

            WS_WorkShopStock tempWSStock = new WS_WorkShopStock();

            if (tempWSCode != null)
            {
                tempWSStock = serverWSStock.GetStockSingleInfo(dataContxt, tempWSCode.WSCode, item.GoodsID, item.BatchNo);
            }

            detailBill.UnitPrice        = tempWSStock == null ? 0 : tempWSStock.UnitPrice;
            detailBill.Price            = detailBill.UnitPrice * (decimal)detailBill.FetchCount;
            detailBill.Provider         = item.Provider;
            detailBill.FillInPersonnel  = bill.FillInPersonnel;
            detailBill.FinanceSignatory = null;
            detailBill.DepartDirector   = bill.DepartmentDirector;
            detailBill.DepotManager     = bill.DepotManager;
            detailBill.OperationType    = (int)CE_SubsidiaryOperationType.报废;
            detailBill.Remark           = "【报废】";
            detailBill.FillInDate       = bill.Bill_Time;

            return(detailBill);
        }
Beispiel #6
0
        /// <summary>
        /// 车间出库业务的处理
        /// </summary>
        /// <param name="ctx">数据上下文</param>
        /// <param name="fetchGoodsDetailInfo">出库业务对象</param>
        void FetchWorkShop(DepotManagementDataContext ctx, S_FetchGoodsDetailBill fetchGoodsDetailInfo)
        {
            if (fetchGoodsDetailInfo == null)
            {
                return;
            }

            Service_Manufacture_WorkShop.IWorkShopBasic serverWSBasic =
                Service_Manufacture_WorkShop.ServerModuleFactory.GetServerModule <Service_Manufacture_WorkShop.IWorkShopBasic>();
            WS_WorkShopCode tempWSCode = serverWSBasic.GetPersonnelWorkShop(ctx, fetchGoodsDetailInfo.FillInPersonnel);

            if (Convert.ToBoolean(BasicInfo.BaseSwitchInfo[(int)GlobalObject.CE_SwitchName.开启车间管理模块]) &&
                tempWSCode != null)
            {
                WS_Subsidiary tempSubsidiary = new WS_Subsidiary();

                tempSubsidiary.BillTime       = ServerTime.Time;
                tempSubsidiary.Applicant      = UniversalFunction.GetStorageName(ctx, fetchGoodsDetailInfo.StorageID);
                tempSubsidiary.Affirm         = fetchGoodsDetailInfo.DepotManager;
                tempSubsidiary.AffirmDate     = ServerTime.Time;
                tempSubsidiary.BatchNo        = fetchGoodsDetailInfo.BatchNo;
                tempSubsidiary.BillNo         = fetchGoodsDetailInfo.FetchBIllID;
                tempSubsidiary.GoodsID        = fetchGoodsDetailInfo.GoodsID;
                tempSubsidiary.Provider       = fetchGoodsDetailInfo.Provider;
                tempSubsidiary.OperationCount = (decimal)fetchGoodsDetailInfo.FetchCount < 0 ? -(decimal)fetchGoodsDetailInfo.FetchCount : (decimal)fetchGoodsDetailInfo.FetchCount;
                tempSubsidiary.OperationType  = fetchGoodsDetailInfo.OperationType;
                tempSubsidiary.Proposer       = fetchGoodsDetailInfo.FillInPersonnel;
                tempSubsidiary.ProposerDate   = fetchGoodsDetailInfo.FillInDate == null ? ServerTime.Time : Convert.ToDateTime(fetchGoodsDetailInfo.FillInDate);
                tempSubsidiary.UnitPrice      = fetchGoodsDetailInfo.UnitPrice;
                tempSubsidiary.WSCode         = tempWSCode.WSCode;
                tempSubsidiary.Remark         = fetchGoodsDetailInfo.Remark;

                Service_Manufacture_WorkShop.IWorkShopStock serverWSStock =
                    Service_Manufacture_WorkShop.ServerModuleFactory.GetServerModule <Service_Manufacture_WorkShop.IWorkShopStock>();
                serverWSStock.OperationSubsidiary(ctx, tempSubsidiary);
            }
        }
Beispiel #7
0
        /// <summary>
        /// 确认单据
        /// </summary>
        /// <param name="billNo">单据号</param>
        /// <param name="list">明细信息</param>
        /// <param name="error">错误信息</param>
        /// <returns>成功返回True,失败返回False</returns>
        public bool AffirmBill(string billNo, DataTable list, out string error)
        {
            error = null;

            DepotManagementDataContext ctx = CommentParameter.DepotDataContext;

            ctx.Connection.Open();
            ctx.Transaction = ctx.Connection.BeginTransaction();

            try
            {
                var varData = from a in ctx.WS_CannibalizeBill
                              where a.BillNo == billNo
                              select a;

                WS_CannibalizeBill tempBill = new WS_CannibalizeBill();

                if (varData.Count() == 1)
                {
                    tempBill = varData.Single();

                    if (tempBill.BillStatus != CannibalizeBillStatus.等待确认.ToString())
                    {
                        throw new Exception("单据状态错误,请重新确认");
                    }

                    tempBill.BillStatus = CannibalizeBillStatus.单据已完成.ToString();
                    tempBill.Affirm     = BasicInfo.LoginName;
                    tempBill.AffirmDate = ServerTime.Time;
                }
                else
                {
                    throw new Exception("数据不唯一,请重新确认");
                }

                var varCannibalizeWSCode = from a in ctx.WS_CannibalizeWSCode
                                           where a.BillNo == tempBill.BillNo
                                           select a;

                ListControl(ctx, tempBill, varCannibalizeWSCode.ToList <WS_CannibalizeWSCode>(), list);
                ctx.SubmitChanges();

                var varOperationType = from a in varCannibalizeWSCode
                                       join b in ctx.BASE_SubsidiaryOperationType
                                       on a.OperationType equals b.OperationType
                                       orderby b.DepartmentType
                                       select a;

                var varGoodsList = from a in ctx.WS_CannibalizeList
                                   where a.BillNo == tempBill.BillNo
                                   select a;

                foreach (WS_CannibalizeList tempItem in varGoodsList)
                {
                    decimal unitPrice = 0;

                    foreach (WS_CannibalizeWSCode item in varOperationType)
                    {
                        WS_Subsidiary tempSubsidiary = new WS_Subsidiary();

                        tempSubsidiary.BatchNo        = tempItem.BatchNo;
                        tempSubsidiary.BillNo         = tempBill.BillNo;
                        tempSubsidiary.GoodsID        = tempItem.GoodsID;
                        tempSubsidiary.OperationCount = tempItem.OperationCount;
                        tempSubsidiary.OperationType  = item.OperationType;
                        tempSubsidiary.Remark         = tempItem.Remark;
                        tempSubsidiary.WSCode         = item.WSCode;
                        tempSubsidiary.Proposer       = tempBill.Proposer;
                        tempSubsidiary.ProposerDate   = (DateTime)tempBill.ProposerDate;
                        tempSubsidiary.Affirm         = BasicInfo.LoginName;
                        tempSubsidiary.AffirmDate     = ServerTime.Time;
                        tempSubsidiary.BillTime       = ServerTime.Time;

                        WS_CannibalizeWSCode tempCanWSCode = new WS_CannibalizeWSCode();

                        tempCanWSCode.BillNo = tempSubsidiary.BillNo;

                        Service_Manufacture_WorkShop.IWorkShopStock serverStock =
                            Service_Manufacture_WorkShop.ServerModuleFactory.GetServerModule <Service_Manufacture_WorkShop.IWorkShopStock>();
                        switch (item.OperationType)
                        {
                        case (int)CE_SubsidiaryOperationType.车间调出:
                            tempCanWSCode.OperationType = (int)CE_SubsidiaryOperationType.车间调入;

                            WS_WorkShopStock tempWSStock = serverStock.GetStockSingleInfo(tempSubsidiary.WSCode,
                                                                                          tempSubsidiary.GoodsID,
                                                                                          tempSubsidiary.BatchNo);

                            unitPrice = tempWSStock == null ? 0 : tempWSStock.UnitPrice;
                            tempSubsidiary.UnitPrice = unitPrice;
                            break;

                        case (int)CE_SubsidiaryOperationType.车间调入:
                            tempCanWSCode.OperationType = (int)CE_SubsidiaryOperationType.车间调出;
                            tempSubsidiary.UnitPrice    = unitPrice;
                            break;

                        default:
                            break;
                        }

                        tempCanWSCode = GetCannibalizeWSCode(tempCanWSCode);

                        if (tempCanWSCode == null)
                        {
                            throw new Exception("调运车间信息错误");
                        }

                        Service_Manufacture_WorkShop.IWorkShopBasic serverBasic =
                            Service_Manufacture_WorkShop.ServerModuleFactory.GetServerModule <Service_Manufacture_WorkShop.IWorkShopBasic>();
                        WS_WorkShopCode tempCode = serverBasic.GetWorkShopCodeInfo(tempCanWSCode.WSCode);

                        if (tempCode == null)
                        {
                            throw new Exception("获取车间名称失败");
                        }

                        tempSubsidiary.Applicant = tempCode.WSName;

                        serverStock.OperationSubsidiary(ctx, tempSubsidiary);
                    }
                }

                ctx.SubmitChanges();
                ctx.Transaction.Commit();
                return(true);
            }
            catch (Exception ex)
            {
                ctx.Transaction.Rollback();
                error = ex.Message;
                return(false);
            }
        }
Beispiel #8
0
        /// <summary>
        /// 获得序号
        /// </summary>
        /// <param name="Dt">数据集</param>
        /// <returns>返回获得序号后的数据集</returns>
        //DataTable GetCountNumber(DataTable Dt)
        //{
        //    for (int i = 0; i < Dt.Rows.Count; i++)
        //    {
        //        Dt.Rows[i]["序号"] = i + 1;
        //    }

        //    return Dt;
        //}

        private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                txtProductCode.Text = txtProductCode.Text.ToUpper();

                if (!CheckForm())
                {
                    return;
                }
                //获得入库方式
                cmbRKFS.Text = m_findSellIn.GetInStockWay(cmbProduct.Text.ToString(), txtProductCode.Text.ToString());

                //检测钢印规则
                if (!m_serverProductCode.VerifyProductCodesInfo(Convert.ToInt32(cmbProduct.Tag),
                                                                txtProductCode.Text.Trim(), GlobalObject.CE_BarCodeType.内部钢印码,
                                                                out m_err))
                {
                    MessageDialog.ShowPromptMessage(m_err);
                    return;
                }

                if (!m_findSellIn.IsProductCodeOperationStandard(CE_MarketingType.入库.ToString(), typeof(CE_MarketingType),
                                                                 Convert.ToInt32(cmbProduct.Tag), txtProductCode.Text,
                                                                 cmbStorage.Tag.ToString(), out m_err))
                {
                    MessageDialog.ShowPromptMessage(m_err);
                    return;
                }

                Service_Manufacture_WorkShop.IWorkShopBasic serverWorkShopBasic =
                    Service_Manufacture_WorkShop.ServerModuleFactory.GetServerModule <Service_Manufacture_WorkShop.IWorkShopBasic>();

                WS_WorkShopCode tempWorkCode = serverWorkShopBasic.GetPersonnelWorkShop(BasicInfo.LoginID);

                if (tempWorkCode == null)
                {
                    throw new Exception("您不是车间人员,无法执行产品入库业务");
                }

                if (!m_findSellIn.IsProductCodeOperationStandard(CE_SubsidiaryOperationType.营销入库.ToString(), typeof(CE_SubsidiaryOperationType),
                                                                 Convert.ToInt32(cmbProduct.Tag), txtProductCode.Text,
                                                                 tempWorkCode.WSCode, out m_err))
                {
                    MessageDialog.ShowPromptMessage(m_err);
                    return;
                }

                if (dataGridView1.DataSource != null)
                {
                    m_dtProductCodes = (DataTable)dataGridView1.DataSource;
                }

                DataRow dr = m_dtProductCodes.NewRow();

                dr["产品名称"] = cmbProduct.Text.ToString();
                dr["箱体编号"] = txtProductCode.Text;
                dr["入库方式"] = cmbRKFS.Text.ToString();
                dr["入库库房"] = cmbStorage.Text.ToString();
                dr["物品ID"] = Convert.ToInt32(cmbProduct.Tag);
                dr["库房ID"] = cmbStorage.Tag.ToString();

                ProductCode_AutoCreatePutIn_Subsidiary lnqTemp = new ProductCode_AutoCreatePutIn_Subsidiary();

                lnqTemp.GoodsID     = Convert.ToInt32(dr["物品ID"]);
                lnqTemp.ProductCode = dr["箱体编号"].ToString();
                lnqTemp.PutInType   = dr["入库方式"].ToString();
                lnqTemp.StorageID   = dr["库房ID"].ToString();

                if (!CheckSameGoods(dr))
                {
                    return;
                }

                m_dtProductCodes.Rows.Add(dr);
                dataGridView1.DataSource = m_dtProductCodes;

                m_serverProductCode.Add_AutoCreatePutIn_Subsidiary(lnqTemp);
                PositioningRecord(dr);
            }
            catch (Exception ex)
            {
                MessageDialog.ShowPromptMessage(ex.Message);
            }
        }
        private void dataGridView1_DoubleClick(object sender, EventArgs e)
        {
            if (dataGridView1.CurrentRow == null)
            {
                return;
            }


            View_S_MaterialReturnedInTheDepot lnqMaterialReturn = m_goodsServer.GetBillView(m_billNo);
            int intGoodsID = Convert.ToInt32(dataGridView1.CurrentRow.Cells["物品ID"].Value);

            switch (UniversalFunction.GetGoodsType(intGoodsID, m_strStorage))
            {
            case CE_GoodsType.CVT:
            case CE_GoodsType.TCU:
                BarCodeInfo tempInfo = new BarCodeInfo();

                tempInfo.BatchNo   = dataGridView1.CurrentRow.Cells["批次号"].Value.ToString();
                tempInfo.Count     = Convert.ToDecimal(dataGridView1.CurrentRow.Cells["退库数"].Value);
                tempInfo.GoodsCode = dataGridView1.CurrentRow.Cells["图号型号"].Value.ToString();
                tempInfo.GoodsID   = intGoodsID;
                tempInfo.GoodsName = dataGridView1.CurrentRow.Cells["物品名称"].Value.ToString();
                tempInfo.Remark    = dataGridView1.CurrentRow.Cells["备注"].Value.ToString();
                tempInfo.Spec      = dataGridView1.CurrentRow.Cells["规格"].Value.ToString();

                bool blCheck = true;

                if (m_operateMode == CE_BusinessOperateMode.查看)
                {
                    blCheck = false;
                }
                else
                {
                    if (lnqMaterialReturn.单据状态 != "等待仓管退库")
                    {
                        blCheck = false;
                    }
                }

                IMaterialReturnedInTheDepot serverBill = ServerModuleFactory.GetServerModule <IMaterialReturnedInTheDepot>();

                View_S_MaterialReturnedInTheDepot tempLnq = serverBill.GetBillView(m_billNo);

                CE_BusinessType tempType = CE_BusinessType.库房业务;

                Service_Manufacture_WorkShop.IWorkShopBasic serverWSBasic =
                    Service_Manufacture_WorkShop.ServerModuleFactory.GetServerModule <Service_Manufacture_WorkShop.IWorkShopBasic>();

                WS_WorkShopCode tempWSCode = serverWSBasic.GetPersonnelWorkShop(tempLnq.申请人编码);

                Dictionary <string, string> tempDic = new Dictionary <string, string>();

                tempDic.Add(m_strStorage, CE_MarketingType.领料退库.ToString());

                if (tempWSCode != null)
                {
                    tempType = CE_BusinessType.综合业务;
                    tempDic.Add(tempWSCode.WSCode, CE_SubsidiaryOperationType.领料退库.ToString());
                }

                产品编号 formCode = new 产品编号(tempInfo, tempType, m_billNo, blCheck, tempDic);

                if (m_strStorage == "05")
                {
                    if (dataGridView1.CurrentRow.Cells["返修状态"].Value == null ||
                        dataGridView1.CurrentRow.Cells["返修状态"].Value.ToString() == "")
                    {
                        MessageDialog.ShowPromptMessage("请选择产品的返修状态");
                        return;
                    }
                    else
                    {
                        formCode.BlIsRepaired = (bool)dataGridView1.CurrentRow.Cells["返修状态"].Value;
                    }
                }

                formCode.ShowDialog();
                break;

            case CE_GoodsType.工装:
                工装编号录入窗体 form = new 工装编号录入窗体(m_billNo, intGoodsID, CE_BusinessBillType.领料退库, lnqMaterialReturn.单据状态 == "等待仓管退库" ? true : false);
                form.StartPosition = FormStartPosition.CenterScreen;
                form.ShowDialog();
                break;

            case CE_GoodsType.量检具:
                量检具编号录入窗体 formLJY = new 量检具编号录入窗体(m_billNo, intGoodsID,
                                                  Convert.ToDecimal(dataGridView1.CurrentRow.Cells["退库数"].Value), CE_BusinessBillType.领料退库,
                                                  m_operateMode == CE_BusinessOperateMode.仓库核实 ? true : false);

                formLJY.ShowDialog();
                break;

            case CE_GoodsType.零件:
                break;

            case CE_GoodsType.未知物品:
                break;

            default:
                break;
            }
        }