void 图号型号_m_OnCompleteSearch()
        {
            DataRow drTemp = this.图号型号.DataResult;

            if (drTemp != null)
            {
                customDataGridView1.CurrentRow.Cells["物品名称"].Value = drTemp["物品名称"];
                customDataGridView1.CurrentRow.Cells["规格"].Value   = drTemp["规格"];
                customDataGridView1.CurrentRow.Cells["物品ID"].Value = drTemp["序号"];
                customDataGridView1.CurrentRow.Cells["单位"].Value   = drTemp["单位"];

                ((DataGridViewTextBoxShowCell)customDataGridView1.CurrentRow.Cells["批次号"]).m_EndSql =
                    " and 物品ID = " + (int)drTemp["序号"];

                IBasicGoodsServer goodsService = SCM_Level01_ServerFactory.GetServerModule <IBasicGoodsServer>();

                F_GoodsAttributeRecord record = goodsService.GetGoodsAttirbuteRecord(Convert.ToInt32(drTemp["序号"]),
                                                                                     Convert.ToInt32(CE_GoodsAttributeName.来料须依据检验结果入库));

                if (record != null)
                {
                    customDataGridView1.CurrentRow.Cells["检验报告"].Value = Convert.ToBoolean(record.AttributeValue);
                }
            }
        }
Ejemplo n.º 2
0
        ///// <summary>
        ///// 获取指定用户计划价格表中的物品信息对话框,用户编码为null时获取所有信息
        ///// </summary>
        ///// <param name="userCode">用户编码</param>
        ///// <returns>成功则返回获取到的对话框,失败返回null</returns>
        //static public FormQueryInfo GetPlanCostGoodsDialog(string userCode)
        //{
        //    return GetPlanCostGoodsDialog(userCode, null);
        //}

        ///// <summary>
        ///// 获取指定用户计划价格表中的物品信息,用户编码为null时获取所有信息
        ///// </summary>
        ///// <param name="userCode">用户编码</param>
        ///// <param name="lstDepotCode">仓库类别列表</param>
        ///// <returns>成功则返回获取到的对话框,失败返回null</returns>
        //static private IQueryable<View_F_GoodsPlanCost> GetPlanCostGoods(string userCode, List<string> lstDepotCode)
        //{
        //    IBasicGoodsServer goodsServer = ServerModuleFactory.GetServerModule<IBasicGoodsServer>();
        //    IQueryable<View_F_GoodsPlanCost> queryResult = goodsServer.GetGoodsInfo(userCode, lstDepotCode);
        //    return queryResult;
        //}

        ///// <summary>
        ///// 获取指定用户计划价格表中的物品信息对话框,用户编码为null时获取所有信息
        ///// </summary>
        ///// <param name="userCode">用户编码</param>
        ///// <param name="lstDepotCode">仓库类别列表</param>
        ///// <returns>成功则返回获取到的对话框,失败返回null</returns>
        //static public FormQueryInfo GetPlanCostGoodsDialog(string userCode, List<string> lstDepotCode)
        //{
        //    IBasicGoodsServer goodsServer = ServerModuleFactory.GetServerModule<IBasicGoodsServer>();
        //    IQueryable<View_F_GoodsPlanCost> queryResult = goodsServer.GetGoodsInfo(userCode, lstDepotCode);
        //    System.Data.DataTable dataTable = GlobalObject.GeneralFunction.ConvertToDataTable<View_F_GoodsPlanCost>(queryResult);
        //    FormQueryInfo form = new FormQueryInfo(dataTable);

        //    form.ShowColumns = new string[] { "图号型号", "物品名称", "规格", "单位", "物品类别", "物品类别名称", "序号" };
        //    return form;
        //}

        /// <summary>
        /// 获取指定用户计划价格表中的物品信息对话框,用户编码为null时获取所有信息
        /// </summary>
        /// <param name="userCode">用户编码</param>
        /// <param name="lstDepotCode">仓库类别列表</param>
        /// <returns>成功则返回获取到的对话框,失败返回null</returns>
        static public FormQueryInfo GetPlanCostGoodsDialogSift(string strWhere)
        {
            IBasicGoodsServer goodsServer = ServerModuleFactory.GetServerModule <IBasicGoodsServer>();

            System.Data.DataTable dataTable = goodsServer.GetGoodsInfoSiftAttribute(strWhere);
            FormQueryInfo         form      = new FormQueryInfo(dataTable);

            form.ShowColumns = new string[] { "图号型号", "物品名称", "规格", "单位", "物品类别", "物品类别名称", "序号" };
            return(form);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 获取计划价格表中的物品信息对话框
        /// </summary>
        /// <returns>成功则返回获取到的对话框,失败返回null</returns>
        static public FormQueryInfo GetPlanCostGoodsDialog(bool blUsing)
        {
            IBasicGoodsServer goodsServer = ServerModuleFactory.GetServerModule <IBasicGoodsServer>();
            IQueryable <View_F_GoodsPlanCost> queryResult = goodsServer.GetGoodsInfo(blUsing);

            System.Data.DataTable dataTable = GlobalObject.GeneralFunction.ConvertToDataTable <View_F_GoodsPlanCost>(queryResult);
            FormQueryInfo         form      = new FormQueryInfo(dataTable);

            form.ShowColumns = new string[] { "图号型号", "物品名称", "规格", "单位", "物品类别", "物品类别名称", "序号" };
            return(form);
        }
Ejemplo n.º 4
0
        public List <View_Business_WarehouseInPut_RequisitionDetail> GetListViewDetail_OrderForm(string billNo, List <string> listOrderForm)
        {
            List <View_Business_WarehouseInPut_RequisitionDetail> listResult =
                new List <View_Business_WarehouseInPut_RequisitionDetail>();

            string orderFormNum = "";

            foreach (string item in listOrderForm)
            {
                orderFormNum += "'" + item + "',";
            }

            orderFormNum = orderFormNum.Substring(0, orderFormNum.Length - 1);

            string strSql = " select a.订单号, b.物品ID , b.图号型号, b.物品名称 ,b.规格, " +
                            " a.供货单位, b.订货数量, c.单位 from View_B_OrderFormInfo as a  " +
                            " inner join View_B_OrderFormGoods as b on a.订单号 = b.订单号 " +
                            " inner join View_F_GoodsPlanCost as c on b.物品ID = c.序号 where a.订单号 in (" + orderFormNum + ")";

            DataTable dtTemp = GlobalObject.DatabaseServer.QueryInfo(strSql);

            foreach (DataRow dr in dtTemp.Rows)
            {
                View_Business_WarehouseInPut_RequisitionDetail tempLnq =
                    new View_Business_WarehouseInPut_RequisitionDetail();

                tempLnq.单据号  = billNo;
                tempLnq.单位   = dr["单位"].ToString();
                tempLnq.供应商  = dr["供货单位"].ToString();
                tempLnq.关联业务 = dr["订单号"].ToString();
                tempLnq.物品ID = (int)dr["物品ID"];
                tempLnq.图号型号 = dr["图号型号"].ToString();
                tempLnq.物品名称 = dr["物品名称"].ToString();
                tempLnq.规格   = dr["规格"].ToString();
                tempLnq.数量   = (decimal)dr["订货数量"];

                IBasicGoodsServer goodsService = SCM_Level01_ServerFactory.GetServerModule <IBasicGoodsServer>();

                F_GoodsAttributeRecord record = goodsService.GetGoodsAttirbuteRecord(tempLnq.物品ID, Convert.ToInt32(CE_GoodsAttributeName.来料须依据检验结果入库));

                if (record != null)
                {
                    tempLnq.检验报告 = Convert.ToBoolean(record.AttributeValue);
                }

                listResult.Add(tempLnq);
            }


            return(listResult);
        }
Ejemplo n.º 5
0
        private void 条形码打印ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count < 1)
            {
                MessageDialog.ShowPromptMessage("请选择记录后再打印条形码");
                return;
            }

            List <View_S_InDepotGoodsBarCodeTable> lstBarCodeInfo = new List <View_S_InDepotGoodsBarCodeTable>();

            for (int i = 0; i < dataGridView1.SelectedRows.Count; i++)
            {
                string goodsCode = dataGridView1.SelectedRows[i].Cells["图号型号"].Value.ToString();
                string goodsName = dataGridView1.SelectedRows[i].Cells["物品名称"].Value.ToString();
                string spec      = dataGridView1.SelectedRows[i].Cells["规格"].Value.ToString();
                string provider  = dataGridView1.SelectedRows[i].Cells["供应商"].Value.ToString();
                string batchCode = dataGridView1.SelectedRows[i].Cells["批次号"].Value.ToString();
                string StorageID = dataGridView1.SelectedRows[i].Cells["库房编码"].Value.ToString();

                IBarCodeServer server = ServerModuleFactory.GetServerModule <IBarCodeServer>();
                View_S_InDepotGoodsBarCodeTable barcode = server.GetBarCodeInfo(goodsCode, goodsName, spec, provider, batchCode, StorageID);

                if (barcode == null)
                {
                    S_InDepotGoodsBarCodeTable newBarcode = new S_InDepotGoodsBarCodeTable();

                    IBasicGoodsServer basicServer = ServerModuleFactory.GetServerModule <IBasicGoodsServer>();
                    newBarcode.GoodsID     = basicServer.GetGoodsID(goodsCode, goodsName, spec);
                    newBarcode.Provider    = provider;
                    newBarcode.BatchNo     = batchCode;
                    newBarcode.ProductFlag = "0";
                    newBarcode.StorageID   = StorageID;

                    if (!server.Add(newBarcode, out m_err))
                    {
                        MessageDialog.ShowErrorMessage(m_err);
                        return;
                    }

                    barcode = server.GetBarCodeInfo(goodsCode, goodsName, spec, provider, batchCode, StorageID);
                }

                lstBarCodeInfo.Add(barcode);
            }

            foreach (var item in lstBarCodeInfo)
            {
                ServerModule.PrintPartBarcode.PrintBarcodeList(item);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 从行记录中提取物品对象信息
        /// </summary>
        /// <param name="row">行记录</param>
        /// <returns>提取的物品信息</returns>
        View_S_HomemadeRejectList GetGoodsInfo(DataGridViewRow row)
        {
            if (row == null)
            {
                return(null);
            }

            View_S_HomemadeRejectList goods = new View_S_HomemadeRejectList();

            goods.序号   = (long)row.Cells["序号"].Value;
            goods.退货单号 = (string)row.Cells["退货单号"].Value;
            goods.物品ID = (int)row.Cells["物品ID"].Value;
            goods.图号型号 = (string)row.Cells["图号型号"].Value;
            goods.物品名称 = (string)row.Cells["物品名称"].Value;
            goods.规格   = (string)row.Cells["规格"].Value;
            goods.供应商  = (string)row.Cells["供应商"].Value;
            goods.批次号  = (string)row.Cells["批次号"].Value;
            goods.供方批次 = (string)row.Cells["供方批次"].Value;
            goods.退货数  = (decimal)row.Cells["退货数"].Value;
            goods.备注   = (string)row.Cells["备注"].Value;

            View_F_GoodsPlanCost basicGoodsInfo = null;

            if (row.Cells["单位"].Value != System.DBNull.Value)
            {
                goods.单位   = (string)row.Cells["单位"].Value;
                goods.物品类别 = (string)row.Cells["物品类别"].Value;
                goods.货架   = Convert.ToString(row.Cells["货架"].Value);
                goods.列    = Convert.ToString(row.Cells["列"].Value);
                goods.层    = Convert.ToString(row.Cells["层"].Value);
            }
            else
            {
                IBasicGoodsServer basicGoodsServer = ServerModuleFactory.GetServerModule <IBasicGoodsServer>();

                basicGoodsInfo = basicGoodsServer.GetGoodsInfo(goods.图号型号, goods.物品名称, goods.规格, out m_strErr);

                if (!string.IsNullOrEmpty(m_strErr))
                {
                    MessageDialog.ShowErrorMessage(m_strErr);
                    return(null);
                }

                goods.单位 = basicGoodsInfo.单位;
            }

            return(goods);
        }
        /// <summary>
        /// 从行记录中提取物品对象信息
        /// </summary>
        /// <param name="row">行记录</param>
        /// <returns>提取的物品信息</returns>
        View_S_MaterialListRejectBill GetGoodsInfo(DataGridViewRow row)
        {
            if (row == null)
            {
                return(null);
            }

            View_S_MaterialListRejectBill goods = new View_S_MaterialListRejectBill();

            goods.序号   = (long)row.Cells["序号"].Value;
            goods.退货单号 = (string)row.Cells["退货单号"].Value;
            goods.物品ID = (int)row.Cells["物品ID"].Value;
            goods.图号型号 = (string)row.Cells["图号型号"].Value;
            goods.物品名称 = (string)row.Cells["物品名称"].Value;
            goods.规格   = (string)row.Cells["规格"].Value;
            goods.供应商  = (string)row.Cells["供应商"].Value;
            goods.批次号  = (string)row.Cells["批次号"].Value;
            goods.供方批次 = (string)row.Cells["供方批次"].Value;
            goods.退货数  = (decimal)row.Cells["退货数"].Value;
            goods.备注   = (string)row.Cells["备注"].Value;
            goods.关联单号 = (string)row.Cells["关联单号"].Value;

            View_F_GoodsPlanCost basicGoodsInfo = null;

            if (row.Cells["单位"].Value != System.DBNull.Value)
            {
                goods.单位   = (string)row.Cells["单位"].Value;
                goods.物品类别 = (string)row.Cells["物品类别"].Value;
                goods.货架   = (string)row.Cells["货架"].Value;
                goods.列    = (string)row.Cells["列"].Value;
                goods.层    = (string)row.Cells["层"].Value;
            }
            else
            {
                IBasicGoodsServer basicGoodsServer = ServerModuleFactory.GetServerModule <IBasicGoodsServer>();
                basicGoodsInfo = basicGoodsServer.GetGoodsInfo(goods.图号型号, goods.物品名称, goods.规格, out m_error);

                if (!GlobalObject.GeneralFunction.IsNullOrEmpty(m_error))
                {
                    MessageDialog.ShowErrorMessage(m_error);
                    return(null);
                }

                goods.单位 = basicGoodsInfo.单位;
            }

            return(goods);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 插入临时表
        /// </summary>
        /// <param name="code">产品型号</param>
        /// <param name="count">数量</param>
        public void AddTempTable(string code, decimal count)
        {
            DepotManagementDataContext dataContext = CommentParameter.DepotDataContext;
            S_ForWantingReportTemp     lnqFor      = new S_ForWantingReportTemp();

            IBasicGoodsServer serverGoods = ServerModuleFactory.GetServerModule <IBasicGoodsServer>();

            string error = "";

            View_F_GoodsPlanCost tempLnq = serverGoods.GetGoodsInfo(code, "", out error);

            lnqFor.GoodsID = tempLnq == null ? 0 : tempLnq.序号;
            lnqFor.Count   = count;
            dataContext.S_ForWantingReportTemp.InsertOnSubmit(lnqFor);

            dataContext.SubmitChanges();
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 获取计划价格表中的物品信息对话框
        /// </summary>
        /// <returns>成功则返回获取到的对话框,失败返回null</returns>
        static public FormQueryInfo GetOrderFormGoodsDialog(string provider)
        {
            IBasicGoodsServer goodsServer = ServerModuleFactory.GetServerModule <IBasicGoodsServer>();

            using (DepotManagementDataContext ctx = CommentParameter.DepotDataContext)
            {
                IQueryable <View_F_GoodsPlanCost> queryResult = (from a in ctx.View_F_GoodsPlanCost
                                                                 join b in ctx.Bus_PurchasingMG_UnitPriceList
                                                                 on a.序号 equals b.GoodsID
                                                                 where b.Provider == provider &&
                                                                 b.ValidityStart <= ServerTime.Time &&
                                                                 b.ValidityEnd >= ServerTime.Time &&
                                                                 a.禁用 == false
                                                                 orderby a.图号型号, a.物品名称, a.规格
                                                                 select a).Distinct();

                FormQueryInfo form = new FormQueryInfo(queryResult);

                form.ShowColumns = new string[] { "图号型号", "物品名称", "规格", "单位", "物品类别", "物品类别名称", "序号" };
                return(form);
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 从行记录中提取物品对象信息
        /// </summary>
        /// <param name="row">行记录</param>
        /// <returns>提取的物品信息</returns>
        View_S_MaterialDetainList GetGoodsInfo(DataGridViewRow row)
        {
            if (row == null)
            {
                return(null);
            }

            View_S_MaterialDetainList goods = new View_S_MaterialDetainList();

            goods.序号    = (int)row.Cells["序号"].Value;
            goods.扣货单号  = (string)row.Cells["扣货单号"].Value;
            goods.物品ID  = (int)row.Cells["物品ID"].Value;
            goods.图号型号  = (string)row.Cells["图号型号"].Value;
            goods.物品名称  = (string)row.Cells["物品名称"].Value;
            goods.规格    = (string)row.Cells["规格"].Value;
            goods.供应商   = (string)row.Cells["供应商"].Value;
            goods.批次号   = (string)row.Cells["批次号"].Value;
            goods.扣货数   = (decimal)row.Cells["扣货数"].Value;
            goods.备注    = (string)row.Cells["备注"].Value;
            goods.单位    = row.Cells["单位"].Value.ToString();
            goods.关联订单号 = (string)row.Cells["关联订单号"].Value.ToString();

            View_F_GoodsPlanCost basicGoodsInfo = null;

            IBasicGoodsServer basicGoodsServer = ServerModuleFactory.GetServerModule <IBasicGoodsServer>();

            basicGoodsInfo = basicGoodsServer.GetGoodsInfo(goods.图号型号, goods.物品名称, goods.规格, out m_strErr);

            if (!GlobalObject.GeneralFunction.IsNullOrEmpty(m_strErr))
            {
                MessageDialog.ShowErrorMessage(m_strErr);
                return(null);
            }

            return(goods);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 更改数据CVT客户基础信息
        /// </summary>
        /// <param name="cvtCustomer">CVT客户信息</param>
        /// <param name="error">c错误信息</param>
        /// <returns>更改成功返回True,更改失败返回False</returns>
        public bool UpdateCVTCustomerInformation(YX_CVTCustomerInformation cvtCustomer, out string error)
        {
            error = null;

            try
            {
                DepotManagementDataContext dataContext = CommentParameter.DepotDataContext;

                var varData = from a in dataContext.YX_CVTCustomerInformation
                              where a.ID != cvtCustomer.ID &&
                              a.VehicleShelfNumber == cvtCustomer.VehicleShelfNumber
                              select a;

                if (varData.Count() != 0)
                {
                    error = "数据不唯一";
                    return(false);
                }
                else
                {
                    var varCVT = from a in dataContext.YX_CVTCustomerInformation
                                 where a.ID == cvtCustomer.ID
                                 select a;

                    if (varCVT.Count() == 1)
                    {
                        YX_CVTCustomerInformation lnqCustomer = varCVT.Single();

                        lnqCustomer.CarModelID         = cvtCustomer.CarModelID;
                        lnqCustomer.ClientName         = cvtCustomer.ClientName;
                        lnqCustomer.CVTNumber          = cvtCustomer.CVTNumber;
                        lnqCustomer.DealerName         = cvtCustomer.DealerName;
                        lnqCustomer.FullAddress        = cvtCustomer.FullAddress;
                        lnqCustomer.PhoneNumber        = cvtCustomer.PhoneNumber;
                        lnqCustomer.ProductID          = cvtCustomer.ProductID;
                        lnqCustomer.Remark             = cvtCustomer.Remark;
                        lnqCustomer.SellDate           = cvtCustomer.SellDate;
                        lnqCustomer.SiteCity           = cvtCustomer.SiteCity;
                        lnqCustomer.SiteProvince       = cvtCustomer.SiteProvince;
                        lnqCustomer.VehicleShelfNumber = cvtCustomer.VehicleShelfNumber;
                        lnqCustomer.VKT           = cvtCustomer.VKT;
                        lnqCustomer.OverTheReason = cvtCustomer.OverTheReason;
                        lnqCustomer.ProofNo       = cvtCustomer.ProofNo;

                        var varInfo = from a in dataContext.YX_CVTCustomerInformation
                                      where a.VehicleShelfNumber == cvtCustomer.VehicleShelfNumber
                                      select a;

                        if (varInfo.Count() == 1)
                        {
                            YX_CVTCustomerInformation lnqInfo = varInfo.Single();


                            if (lnqInfo.CVTNumber != cvtCustomer.CVTNumber)
                            {
                                YX_CVTCustomerInformationHistory lnqCustomerHistory = new YX_CVTCustomerInformationHistory();

                                IProductListServer serverProcutList = ServerModuleFactory.GetServerModule <IProductListServer>();

                                lnqCustomerHistory.CarModel   = serverProcutList.GetMotorcycleInfo(Convert.ToInt32(cvtCustomer.CarModelID));
                                lnqCustomerHistory.ClientName = cvtCustomer.ClientName;

                                IBasicGoodsServer serverBasicGoods = ServerModuleFactory.GetServerModule <IBasicGoodsServer>();

                                F_GoodsPlanCost lnqGoods = serverBasicGoods.GetGoodsInfo(Convert.ToInt32(cvtCustomer.ProductID));

                                lnqCustomerHistory.CVTType            = lnqGoods.GoodsCode;
                                lnqCustomerHistory.DealerName         = cvtCustomer.DealerName;
                                lnqCustomerHistory.FinishDate         = ServerTime.Time;
                                lnqCustomerHistory.FinishPersonnel    = BasicInfo.LoginName;
                                lnqCustomerHistory.NewPartCode        = cvtCustomer.CVTNumber;
                                lnqCustomerHistory.OldPartCode        = lnqInfo.CVTNumber;
                                lnqCustomerHistory.Remark             = "手动修改";
                                lnqCustomerHistory.ReplaceCode        = lnqGoods.GoodsCode;
                                lnqCustomerHistory.ReplaceName        = lnqGoods.GoodsName;
                                lnqCustomerHistory.ReplaceSpec        = lnqGoods.Spec;
                                lnqCustomerHistory.VehicleShelfNumber = cvtCustomer.VehicleShelfNumber;

                                dataContext.YX_CVTCustomerInformationHistory.InsertOnSubmit(lnqCustomerHistory);
                            }
                        }
                    }
                }

                dataContext.SubmitChanges();
                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
Ejemplo n.º 12
0
        private void btnPrintCVTBarcodes_Click(object sender, EventArgs e)
        {
            StringBuilder error     = new StringBuilder();
            string        errorTemp = null;

            打印整台份返修箱条码 form = new 打印整台份返修箱条码();

            form.ShowDialog();

            List <View_ZPX_ReparativeBarcode> lstPrintData = form.PrintData;

            if (lstPrintData != null && form.blPrintFlag && lstPrintData.Count > 0)
            {
                if (MessageDialog.ShowEnquiryMessage("此过程需要一段时间,是否继续?") == DialogResult.No)
                {
                    return;
                }

                List <View_S_InDepotGoodsBarCodeTable> lstBarCodeInfo = new List <View_S_InDepotGoodsBarCodeTable>();
                DateTime              dt = ServerModule.ServerTime.Time;
                IBasicGoodsServer     basicGoodsServer = ServerModuleFactory.GetServerModule <IBasicGoodsServer>();
                Dictionary <int, int> dicBarcode       = new Dictionary <int, int>();

                try
                {
                    Cursor.Current = Cursors.WaitCursor;

                    foreach (var item in lstPrintData)
                    {
                        // 装配挑选回收件
                        string batchCode = "ZTJ" + dt.ToString("yyyyMMdd");
                        string goodsCode = item.零部件编码;
                        string goodsName = item.零部件名称;
                        string spec      = item.规格;
                        string provider  = item.供货单位;
                        string StorageID = "01";

                        View_S_InDepotGoodsBarCodeTable barcode    = null;
                        S_InDepotGoodsBarCodeTable      newBarcode = new S_InDepotGoodsBarCodeTable();

                        newBarcode.GoodsID = basicGoodsServer.GetGoodsID(goodsCode, goodsName, spec);

                        if (newBarcode.GoodsID == 0)
                        {
                            error.AppendLine("[" + goodsCode + "]" + "[" + goodsName + "]" + "[" + spec + "] 无物品ID");
                            continue;
                        }

                        newBarcode.Provider    = provider;
                        newBarcode.BatchNo     = batchCode;
                        newBarcode.ProductFlag = "0";
                        newBarcode.StorageID   = StorageID;

                        barcode = m_barCodeServer.GetBarCodeInfo(goodsCode, goodsName, spec, provider, batchCode, StorageID);

                        if (barcode == null)
                        {
                            if (!m_barCodeServer.Add(newBarcode, out errorTemp))
                            {
                                MessageDialog.ShowErrorMessage(errorTemp);
                                return;
                            }
                        }

                        barcode      = m_barCodeServer.GetBarCodeInfo(goodsCode, goodsName, spec, provider, batchCode, StorageID);
                        barcode.物品ID = item.数量;

                        dicBarcode.Add(barcode.条形码, item.数量);

                        if (barcode.工位 != null)
                        {
                            string[] workBench = barcode.工位.Split(new char[] { ',' });

                            if (workBench.Length == 1)
                            {
                                lstBarCodeInfo.Add(barcode);
                            }
                            else
                            {
                                foreach (var wb in workBench)
                                {
                                    View_S_InDepotGoodsBarCodeTable barCode =
                                        GlobalObject.CloneObject.CloneProperties <View_S_InDepotGoodsBarCodeTable>(barcode);

                                    barCode.工位 = wb;
                                    lstBarCodeInfo.Add(barCode);
                                }
                            }
                        }
                        else
                        {
                            barcode.工位 = "";
                            lstBarCodeInfo.Add(barcode);
                        }
                    }

                    lstBarCodeInfo.Sort(this.SortMethod);

                    foreach (var barcode in lstBarCodeInfo)
                    {
                        // barcode.物品ID 中保存的为数量
                        ServerModule.PrintPartBarcode.PrintBarcodeList(barcode, barcode.物品ID);
                    }

                    if (MessageDialog.ShowEnquiryMessage("是否将当前打印物品数量增加到多批次管理信息中?") == DialogResult.Yes)
                    {
                        IMultiBatchPartServer multiBatchPartServer = ServerModuleFactory.GetServerModule <IMultiBatchPartServer>();

                        if (!multiBatchPartServer.AddFromReparativePartList(GlobalObject.BasicInfo.LoginID,
                                                                            form.PurposeID, dicBarcode, out m_err))
                        {
                            MessageDialog.ShowErrorMessage(m_err);
                        }
                    }
                }
                catch (Exception exce)
                {
                    MessageDialog.ShowErrorMessage(exce.Message);
                }
                finally
                {
                    Cursor.Current = Cursors.Arrow;
                }
            }

            if (error.Length > 0)
            {
                MessageDialog.ShowErrorMessage(error.ToString());
            }
        }
        /// <summary>
        /// 更新返修零件信息
        /// </summary>
        /// <param name="lstInfo">要添加的条形码信息</param>
        /// <param name="error">出错时输出错误信息</param>
        /// <returns>返回操作是否成功的标志</returns>
        /// <remarks>打印条形码时如果找不到此物品的条形码时直接生成条形码用</remarks>
        public bool Update(List <StateData <View_ZPX_ReparativeBarcode> > lstInfo, out string error)
        {
            error = null;

            try
            {
                DepotManagementDataContext ctx = CommentParameter.DepotDataContext;

                IBasicGoodsServer serverBasicGoods = SCM_Level01_ServerFactory.GetServerModule <IBasicGoodsServer>();

                int intGoodsID = 0;

                foreach (var item in lstInfo)
                {
                    intGoodsID = serverBasicGoods.GetGoodsID(item.Data.零部件编码, item.Data.零部件名称, item.Data.规格);

                    if (intGoodsID == 0)
                    {
                        error = string.Format("获取不到 {0}, {1}, 规格:{2} 的物品的物品编号,请与管理员联系",
                                              item.Data.零部件编码, item.Data.零部件名称, item.Data.规格);

                        return(false);
                    }

                    ZPX_ReparativeBarcode data = new ZPX_ReparativeBarcode();

                    data.ID       = item.Data.序号;
                    data.Edition  = item.Data.产品编码;
                    data.GoodsID  = intGoodsID;
                    data.Amount   = item.Data.数量;
                    data.Provider = item.Data.供货单位;
                    data.Position = item.Data.位置;

                    IQueryable <ZPX_ReparativeBarcode> result = null;

                    if (data.ID != 0)
                    {
                        result = from r in ctx.ZPX_ReparativeBarcode
                                 where r.ID == data.ID
                                 select r;
                    }
                    else
                    {
                        result = from r in ctx.ZPX_ReparativeBarcode
                                 where r.Edition == data.Edition && r.GoodsID == intGoodsID
                                 select r;
                    }

                    switch (item.DataStatus)
                    {
                    case StateData <View_ZPX_ReparativeBarcode> .DataStatusEnum.Add:

                        if (result.Count() > 0)
                        {
                            error = string.Format("{0}, {1}, 规格:{2} 的物品已经存在不允许重复添加",
                                                  item.Data.零部件编码, item.Data.零部件名称, item.Data.规格);

                            return(false);
                        }

                        ctx.ZPX_ReparativeBarcode.InsertOnSubmit(data);
                        break;

                    case StateData <View_ZPX_ReparativeBarcode> .DataStatusEnum.Delete:

                        if (result.Count() == 0)
                        {
                            error = string.Format("{0}, {1}, 规格:{2} 的物品不存在无法删除",
                                                  item.Data.零部件编码, item.Data.零部件名称, item.Data.规格);

                            return(false);
                        }

                        ctx.ZPX_ReparativeBarcode.DeleteOnSubmit(result.Single());

                        break;

                    case StateData <View_ZPX_ReparativeBarcode> .DataStatusEnum.Update:

                        if (result.Count() == 0)
                        {
                            error = string.Format("{0}, {1}, 规格:{2} 的物品不存在无法更新",
                                                  item.Data.零部件编码, item.Data.零部件名称, item.Data.规格);

                            return(false);
                        }

                        var record = result.Single();

                        record.Amount   = data.Amount;
                        record.Provider = data.Provider;
                        record.Position = data.Position;

                        break;
                    }
                }

                ctx.SubmitChanges();

                return(true);
            }
            catch (Exception exce)
            {
                error = exce.Message;
                return(false);
            }
        }
        /// <summary>
        /// 产品编号处理
        /// </summary>
        /// <param name="productTable">产品编号列表</param>
        /// <param name="code">产品型号</param>
        /// <param name="zcCode">总成号</param>
        /// <param name="goodsID">物品ID</param>
        /// <param name="djh">单据号</param>
        /// <param name="error">出错时返回错误信息,无错时返回null</param>
        /// <returns>处理成功返回True,处理失败返回False</returns>
        public bool UpdateProducts(DataTable productTable, string code, string zcCode, int goodsID, string djh, out string error)
        {
            error = null;

            DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

            try
            {
                //删除原有的同物品同批次的所有产品的唯一编码
                var varData_Del = from a in dataContxt.ProductsCodes
                                  where a.DJH == djh &&
                                  a.GoodsID == goodsID
                                  select a;

                dataContxt.ProductsCodes.DeleteAllOnSubmit(varData_Del);
                dataContxt.SubmitChanges();

                //FOR循环进行添加
                List <ProductsCodes> lisList = new List <ProductsCodes>();

                if (productTable.Rows.Count == 0)
                {
                    return(true);
                }
                else
                {
                    for (int i = 0; i < productTable.Rows.Count; i++)
                    {
                        var varData = from a in dataContxt.ProductsCodes
                                      where a.DJH == djh &&
                                      a.GoodsID == goodsID &&
                                      a.ProductCode == productTable.Rows[i]["ProductCode"].ToString()
                                      select a;

                        if (varData.Count() == 0)
                        {
                            IBasicGoodsServer    serverBasicGoods = SCM_Level01_ServerFactory.GetServerModule <IBasicGoodsServer>();
                            View_F_GoodsPlanCost tempGoodsLnq     = UniversalFunction.GetGoodsInfo(goodsID);

                            if (tempGoodsLnq == null)
                            {
                                throw new Exception("系统中无此物品信息");
                            }

                            ProductsCodes lnqList = new ProductsCodes();

                            lnqList.ProductCode = productTable.Rows[i]["ProductCode"].ToString();
                            lnqList.GoodsName   = tempGoodsLnq.物品名称;
                            lnqList.GoodsCode   = tempGoodsLnq.图号型号;
                            lnqList.Spec        = tempGoodsLnq.规格;
                            lnqList.GoodsID     = goodsID;
                            lnqList.Code        = code;
                            lnqList.ZcCode      = zcCode;
                            lnqList.DJH         = djh;
                            lnqList.BoxNo       = productTable.Rows[i]["BoxNo"].ToString();

                            lisList.Add(lnqList);
                        }
                    }

                    dataContxt.ProductsCodes.InsertAllOnSubmit(lisList);
                    dataContxt.SubmitChanges();
                }

                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
        /// <summary>
        /// 获取服务组件
        /// </summary>
        /// <returns>返回组件接口</returns>
        public static T GetServerModule <T>()
        {
            string name = typeof(T).ToString();

            m_hashTable = new Hashtable();

            //if (m_hashTable.ContainsKey(name))
            //{
            //    return (T)m_hashTable[name];
            //}

            if (typeof(T) == typeof(IProviderServer))
            {
                IProviderServer serverModule = new ProviderServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IAccessoryDutyInfoManageServer))
            {
                IAccessoryDutyInfoManageServer serverModule = new AccessoryDutyInfoManageServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IDepartmentServer))
            {
                IDepartmentServer serverModule = new DepartmentServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IMaterialTypeServer))
            {
                IMaterialTypeServer serverModule = new MaterialTypeServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IStoreServer))
            {
                IStoreServer serverModule = new StoreServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ICheckOutInDepotServer))
            {
                ICheckOutInDepotServer serverModule = new CheckOutInDepotServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IUnitServer))
            {
                IUnitServer serverModule = new UnitServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IClientServer))
            {
                IClientServer serverModule = new ClientServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IProductListServer))
            {
                IProductListServer serverModule = new ProductListServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IBasicGoodsServer))
            {
                IBasicGoodsServer serverModule = SCM_Level01_ServerFactory.GetServerModule <IBasicGoodsServer>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IAssemblyInfoServer))
            {
                IAssemblyInfoServer serverModule = PMS_ServerFactory.GetServerModule <IAssemblyInfoServer>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IBarCodeServer))
            {
                IBarCodeServer serverModule = BasicServerFactory.GetServerModule <IBarCodeServer>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IBomServer))
            {
                IBomServer serverModule = PMS_ServerFactory.GetServerModule <IBomServer>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IBomMappingServer))
            {
                IBomMappingServer serverModule = PMS_ServerFactory.GetServerModule <IBomMappingServer>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IAssemblingBom))
            {
                IAssemblingBom serverModule = PMS_ServerFactory.GetServerModule <IAssemblingBom>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IElectronFileServer))
            {
                IElectronFileServer serverModule = PMS_ServerFactory.GetServerModule <IElectronFileServer>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IChoseConfectServer))
            {
                IChoseConfectServer serverModule = PMS_ServerFactory.GetServerModule <IChoseConfectServer>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IWorkbenchService))
            {
                IWorkbenchService serverModule = PMS_ServerFactory.GetServerModule <IWorkbenchService>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IGoodsGradeServer))
            {
                IGoodsGradeServer serverModule = new GoodsGradeServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IBargainInfoServer))
            {
                IBargainInfoServer serverModule = new BargainInfoServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IBargainGoodsServer))
            {
                IBargainGoodsServer serverModule = new BargainGoodsServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IOrderFormInfoServer))
            {
                IOrderFormInfoServer serverModule = new OrderFormInfoServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IOrderFormGoodsServer))
            {
                IOrderFormGoodsServer serverModule = new OrderFormGoodsServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IOrdinaryInDepotBillServer))
            {
                IOrdinaryInDepotBillServer serverModule = new OrdinaryInDepotBillServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IOrdinaryInDepotGoodsBill))
            {
                IOrdinaryInDepotGoodsBill serverModule = new OrdinaryInDepotGoodsBill();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IProductInfoServer))
            {
                IProductInfoServer serverModule = PMS_ServerFactory.GetServerModule <IProductInfoServer>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IBillTypeServer))
            {
                IBillTypeServer serverModule = BasicServerFactory.GetServerModule <IBillTypeServer>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IAssignBillNoServer))
            {
                IAssignBillNoServer serverModule = BasicServerFactory.GetServerModule <IAssignBillNoServer>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IMaterialRequisitionServer))
            {
                IMaterialRequisitionServer serverModule = new MaterialRequisitionServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IPersonnelInfoServer))
            {
                IPersonnelInfoServer serverModule = SCM_Level01_ServerFactory.GetServerModule <IPersonnelInfoServer>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IMaterialRequisitionGoodsServer))
            {
                IMaterialRequisitionGoodsServer serverModule = new MaterialRequisitionGoodsServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IDeclareWastrelType))
            {
                IDeclareWastrelType serverModule = new DeclareWastrelType();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IScrapBillServer))
            {
                IScrapBillServer serverModule = new ScrapBillServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IScrapGoodsServer))
            {
                IScrapGoodsServer serverModule = new ScrapGoodsServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IMaterialRequisitionPurposeServer))
            {
                IMaterialRequisitionPurposeServer serverModule = new MaterialRequisitionPurposeServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IFieldWidthServer))
            {
                IFieldWidthServer serverModule = new FieldWidthServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IHomemadePartInDepotServer))
            {
                IHomemadePartInDepotServer serverModule = new HomemadePartInDepotServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IMaterialReturnedInTheDepot))
            {
                IMaterialReturnedInTheDepot serverModule = new MaterialReturnedInTheDepot();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IMaterialListReturnedInTheDepot))
            {
                IMaterialListReturnedInTheDepot serverModule = new MaterialListReturnedInTheDepot();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IMaterialRejectBill))
            {
                IMaterialRejectBill serverModule = new MaterialRejectBill();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IMaterialListRejectBill))
            {
                IMaterialListRejectBill serverModule = new MaterialListRejectBill();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IDetailSummaryInfo))
            {
                IDetailSummaryInfo serverModule = new DetailSummaryInfo();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IDepotTypeForPersonnel))
            {
                IDepotTypeForPersonnel serverModule = SCM_Level01_ServerFactory.GetServerModule <IDepotTypeForPersonnel>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IInvoiceServer))
            {
                IInvoiceServer serverModule = new InvoiceServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ISellIn))
            {
                ISellIn serverModule = new SellIn();
                m_hashTable.Add(name, serverModule);
            }
            //else if (typeof(T) == typeof(IProductOrder))
            //{
            //    IProductOrder serverModule = new ProductOrder();
            //    m_hashTable.Add(name, serverModule);
            //}
            else if (typeof(T) == typeof(ICannibalize))
            {
                ICannibalize serverModule = new Cannibalize();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ICheckReturnRepair))
            {
                ICheckReturnRepair serverModule = new CheckReturnRepair();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IIsolationManageBill))
            {
                IIsolationManageBill serverModule = new IsolationManageBill();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IMessMessageFeedback))
            {
                IMessMessageFeedback serverModule = new MessMessageFeedback();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ITorqueConverterInfoServer))
            {
                ITorqueConverterInfoServer serverModule = new TorqueConverterInfoServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IProductPlan))
            {
                IProductPlan serverModule = new ProductPlan();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IStoreageCheck))
            {
                IStoreageCheck serverModule = new StoreageCheck();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ISafeStockServer))
            {
                ISafeStockServer serverModule = new SafeStockServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IMusterAffirmBill))
            {
                IMusterAffirmBill serverModule = new MusterAffirmBill();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IMusterUse))
            {
                IMusterUse serverModule = new MusterUse();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ITempElectronFileServer))
            {
                ITempElectronFileServer serverModule = PMS_ServerFactory.GetServerModule <ITempElectronFileServer>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IMultiBatchPartServer))
            {
                IMultiBatchPartServer serverModule = PMS_ServerFactory.GetServerModule <IMultiBatchPartServer>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ITechnologyChange))
            {
                ITechnologyChange serverModule = new TechnologyChange();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IGoodsLeastPackAndStock))
            {
                IGoodsLeastPackAndStock serverModule = new GoodsLeastPackAndStock();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IOrderFormAffrim))
            {
                IOrderFormAffrim serverModule = new OrderFormAffrim();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IMarketingPlan))
            {
                IMarketingPlan serverModule = new MarketingPlan();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IPurcharsingPlan))
            {
                IPurcharsingPlan serverModule = new PurcharsingPlan();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IGeneratesCheckOutInDepotServer))
            {
                IGeneratesCheckOutInDepotServer serverModule = new GeneratesCheckOutInDepotServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IGoodsAntirust))
            {
                IGoodsAntirust serverModule = new GoodsAntirust();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IQuarantine))
            {
                IQuarantine serverModule = new Quarantine();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IAfterServiceMakePartsBill))
            {
                IAfterServiceMakePartsBill serverModule = new AfterServiceMakePartsBill();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IReparativePartInfoServer))
            {
                IReparativePartInfoServer serverModule = PMS_ServerFactory.GetServerModule <IReparativePartInfoServer>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IConvertCVTNumber))
            {
                IConvertCVTNumber serverModule = PMS_ServerFactory.GetServerModule <IConvertCVTNumber>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IProductBarcodeServer))
            {
                IProductBarcodeServer serverModule = PMS_ServerFactory.GetServerModule <IProductBarcodeServer>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ICheckOutInDepotForOutsourcingServer))
            {
                ICheckOutInDepotForOutsourcingServer serverModule = new CheckOutInDepotForOutsourcingServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IProductChange))
            {
                IProductChange serverModule = new ProductChange();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IHomemadeRejectBill))
            {
                IHomemadeRejectBill serverModule = new HomemadeRejectBill();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IHomemadeRejectList))
            {
                IHomemadeRejectList serverModule = new HomemadeRejectList();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IFrockProvingReport))
            {
                IFrockProvingReport serverModule = new FrockProvingReport();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IMaterialDetainBill))
            {
                IMaterialDetainBill serverModule = new MaterialDetainBill();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IPrintProductBarcodeInfo))
            {
                IPrintProductBarcodeInfo serverModule = PMS_ServerFactory.GetServerModule <IPrintProductBarcodeInfo>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IThreePacketsOfTheRepairBill))
            {
                IThreePacketsOfTheRepairBill serverModule = new ThreePacketsOfTheRepairBill();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IFrockIndepotBill))
            {
                IFrockIndepotBill serverModule = new FrockIndepotBill();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ICommunicateReportBill))
            {
                ICommunicateReportBill serverModule = new CommunicateReportBill();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IProductCodeServer))
            {
                IProductCodeServer serverModule = SCM_Level02_ServerFactory.GetServerModule <IProductCodeServer>();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IHomemadePartInfoServer))
            {
                IHomemadePartInfoServer serverModule = new HomemadePartInfoServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IStorageInfo))
            {
                IStorageInfo serverModule = new StorageInfo();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IProductDeliveryInspectionServer))
            {
                IProductDeliveryInspectionServer serverModule = new ProductDeliveryInspectionServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ICVTCustomerInformationServer))
            {
                ICVTCustomerInformationServer serverModule = new CVTCustomerInformationServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ICVTTruckLoadingInformation))
            {
                ICVTTruckLoadingInformation serverModule = new CVTTruckLoadingInformation();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IQualityProblemRectificationDisposalBill))
            {
                IQualityProblemRectificationDisposalBill serverModule = new QualityProblemRectificationDisposalBill();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IGoodsShelfLife))
            {
                IGoodsShelfLife serverModule = new GoodsShelfLife();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IReport))
            {
                IReport serverModule = new Report();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IMarqueeServer))
            {
                IMarqueeServer serverModule = new MarqueeServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IDeviceMaintenanceBill))
            {
                IDeviceMaintenanceBill serverModule = new DeviceMaintenanceBill();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ICBOMServer))
            {
                ICBOMServer serverModule = new CBOMServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ILogisticSafeStock))
            {
                ILogisticSafeStock serverModule = new LogisticSafeStock();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IUnProductTestingSingle))
            {
                IUnProductTestingSingle serverModule = new UnProductTestingSingle();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IDisposableGoodsServer))
            {
                IDisposableGoodsServer serverModule = new DisposableGoodsServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ITCURepairInfoServer))
            {
                ITCURepairInfoServer serverModule = new TCURepairInfoServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ISalesOrderServer))
            {
                ISalesOrderServer serverModule = new SalesOrderServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ITechnologyAlteration))
            {
                ITechnologyAlteration serverModule = new TechnologyAlteration();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IMinorPurchaseBillServer))
            {
                IMinorPurchaseBillServer serverModule = new MinorPurchaseBillServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IProductLendService))
            {
                IProductLendService serverModule = new ProductLendService();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IProductLendReturnService))
            {
                IProductLendReturnService serverModule = new ProductLendReturnService();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IProductReturnService))
            {
                IProductReturnService serverModule = new ProductReturnService();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IStockLack))
            {
                IStockLack serverModule = new StockLack();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IOfflineFailSafeServer))
            {
                IOfflineFailSafeServer serverModule = new OfflineFailSafeServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(ISystemLogServer))
            {
                ISystemLogServer serverModule = new SystemLogServer();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IFinancialDetailManagement))
            {
                IFinancialDetailManagement serverModule = new FinancialDetailManagement();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IToolsManage))
            {
                IToolsManage serverModule = new ToolsManage();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IGaugeManage))
            {
                IGaugeManage serverModule = new GaugeManage();
                m_hashTable.Add(name, serverModule);
            }
            else if (typeof(T) == typeof(IQualitySystemDatabase))
            {
                IQualitySystemDatabase serverModule = new QualitySystemDatabase();
                m_hashTable.Add(name, serverModule);
            }

            if (m_hashTable.ContainsKey(name))
            {
                return((T)m_hashTable[name]);
            }

            return(default(T));
        }