private void btnPrintBarCode_Click(object sender, EventArgs e)
        {
            try
            {
                if (dataGridView1.CurrentRow == null)
                {
                    throw new Exception("选择打印的条形码记录行不允许为空!");
                }

                List <View_S_InDepotGoodsBarCodeTable> lstBarCodeInfo = new List <View_S_InDepotGoodsBarCodeTable>();
                IBarCodeServer serviceBarCode = ServerModuleFactory.GetServerModule <IBarCodeServer>();

                foreach (DataGridViewRow dgvr in this.dataGridView1.SelectedRows)
                {
                    View_S_InDepotGoodsBarCodeTable barcode = new View_S_InDepotGoodsBarCodeTable();

                    QueryCondition_Store tempInfo = new QueryCondition_Store();

                    tempInfo.BatchNo   = dgvr.Cells["批次号"].Value.ToString();
                    tempInfo.GoodsID   = Convert.ToInt32(dgvr.Cells["物品ID"].Value);
                    tempInfo.Provider  = m_strProvider;
                    tempInfo.StorageID = m_strStorage;

                    S_Stock stockInfo = UniversalFunction.GetStockInfo(tempInfo);

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

                    barcode.条形码 =
                        serviceBarCode.GetBarCode(stockInfo.GoodsID, stockInfo.BatchNo, stockInfo.StorageID, stockInfo.Provider);

                    barcode.图号型号   = goodsInfo.图号型号;
                    barcode.物品名称   = goodsInfo.物品名称;
                    barcode.规格     = goodsInfo.规格;
                    barcode.供货单位   = stockInfo.Provider;
                    barcode.批次号    = stockInfo.BatchNo;
                    barcode.货架     = stockInfo.ShelfArea;
                    barcode.层      = stockInfo.LayerNumber;
                    barcode.列      = stockInfo.ColumnNumber;
                    barcode.材料类别编码 = dgvr.Cells["退货数"].Value.ToString();
                    barcode.物品ID   = stockInfo.GoodsID;

                    lstBarCodeInfo.Add(barcode);
                }

                foreach (var item in lstBarCodeInfo)
                {
                    ServerModule.PrintPartBarcode.PrintBarcodeList(item, Convert.ToDecimal(item.材料类别编码));
                }

                MessageBox.Show("条码全部打印完成");
            }
            catch (Exception ex)
            {
                MessageDialog.ShowErrorMessage(ex.Message);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 赋值库存信息
        /// </summary>
        /// <param name="dataContext">数据上下文</param>
        /// <param name="billInfo">单据信息</param>
        /// <param name="listSingle">明细信息</param>
        /// <param name="operationType">操作类型</param>
        /// <returns>返回库存信息对象</returns>
        S_Stock AssignStockInfo(DepotManagementDataContext dataContext, S_CannibalizeBill billInfo, S_CannibalizeList listSingle,
                                CE_SubsidiaryOperationType operationType)
        {
            S_Stock tempLnqStock = new S_Stock();

            tempLnqStock.GoodsID    = Convert.ToInt32(listSingle.GoodsID);
            tempLnqStock.BatchNo    = listSingle.BatchNo;
            tempLnqStock.ExistCount = (decimal)listSingle.Count;
            tempLnqStock.Date       = ServerTime.Time;
            tempLnqStock.Provider   = listSingle.Provider;
            tempLnqStock.UnitPrice  = (decimal)listSingle.UnitPrice;
            tempLnqStock.Price      = tempLnqStock.UnitPrice * tempLnqStock.ExistCount;

            if (operationType == CE_SubsidiaryOperationType.库房调出)
            {
                tempLnqStock.StorageID = billInfo.OutStoreRoom;
            }
            else if (operationType == CE_SubsidiaryOperationType.库房调入)
            {
                tempLnqStock.StorageID = billInfo.InStoreRoom;
            }
            else
            {
                throw new Exception("业务类型错误");
            }

            QueryCondition_Store store = new QueryCondition_Store();

            store.BatchNo   = tempLnqStock.BatchNo;
            store.GoodsID   = tempLnqStock.GoodsID;
            store.StorageID = billInfo.OutStoreRoom;
            store.Provider  = tempLnqStock.Provider;

            S_Stock stockInfo = UniversalFunction.GetStockInfo(dataContext, store);

            tempLnqStock.GoodsStatus = stockInfo.GoodsStatus;

            tempLnqStock.InputPerson = BasicInfo.LoginID;

            return(tempLnqStock);
        }
        void CreateIsolationBusiness(Business_Sample_ConfirmTheApplication lnqSample)
        {
            IRejectIsolationService serviceIsolation =
                Service_Quality_QC.ServerModuleFactory.GetServerModule <IRejectIsolationService>();
            BillNumberControl billNoControl = new BillNumberControl(CE_BillTypeEnum.合格品隔离处置单.ToString(), serviceIsolation);

            QueryCondition_Store queryInfo = new QueryCondition_Store();

            queryInfo.BatchNo   = lnqSample.Purchase_BatchNo;
            queryInfo.GoodsID   = lnqSample.Purchase_GoodsID;
            queryInfo.Provider  = lnqSample.Purchase_Provider;
            queryInfo.StorageID = lnqSample.Purchase_StorageID;

            List <S_Stock> stockList = UniversalFunction.GetStockInfoList(queryInfo);

            foreach (S_Stock stockInfo in stockList)
            {
                Business_QualityManagement_Isolation lnqIsolation = new Business_QualityManagement_Isolation();

                lnqIsolation.BillNo          = billNoControl.GetNewBillNo();
                lnqIsolation.BatchNo         = lnqSample.Purchase_BatchNo;
                lnqIsolation.GoodsID         = lnqSample.Purchase_GoodsID;
                lnqIsolation.Provider        = lnqSample.Purchase_Provider;
                lnqIsolation.StorageID       = stockInfo.StorageID;
                lnqIsolation.IsolationReason = lnqSample.Review_RectificationItem_Explain;
                lnqIsolation.GoodsCount      = stockInfo.ExistCount;

                string KeyWords = "【" + UniversalFunction.GetGoodsInfo(lnqIsolation.GoodsID).物品名称 + "】【" + lnqIsolation.BatchNo + "】";

                if (!serviceIsolation.IsRepeatIsolation(lnqIsolation.GoodsID, lnqIsolation.BatchNo, lnqIsolation.StorageID))
                {
                    serviceIsolation.SaveInfo(lnqIsolation);
                    serviceIsolation.FinishBill(lnqIsolation.BillNo);
                    m_serverFlow.FlowHold(lnqIsolation.BillNo, lnqIsolation.StorageID, "暂存 由【样品确认申请单】:"
                                          + lnqSample.BillNo + " 系统自动生成", KeyWords);
                    MessageDialog.ShowPromptMessage("由您填写的相关信息导致此物品已被隔离,且已生成【不合格品隔离处置单】,单号【"
                                                    + lnqIsolation.BillNo + "】,且【隔离人】是您本人,请及时处理");
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// 生成领料退库单
        /// </summary>
        /// <param name="context">数据上下文</param>
        /// <param name="billNo">单据号</param>
        void InsertReturnBill(DepotManagementDataContext context, string billNo)
        {
            IMaterialReturnedInTheDepot serverReturnedBill =
                ServerModule.ServerModuleFactory.GetServerModule <IMaterialReturnedInTheDepot>();


            var varList = from a in context.S_ScrapGoods
                          where a.Bill_ID == billNo &&
                          a.ResponsibilityProvider == a.Provider
                          select a;

            if (varList.Count() == 0)
            {
                return;
            }

            var varData = from a in context.S_ScrapBill
                          where a.Bill_ID == billNo
                          select a;

            if (varData.Count() == 0)
            {
                return;
            }

            S_ScrapBill bill = varData.Single();

            //操作主表
            S_MaterialReturnedInTheDepot returnBill = new S_MaterialReturnedInTheDepot();

            var data1 = from a in context.BASE_MaterialRequisitionPurpose
                        where a.Purpose == bill.ProductType &&
                        a.Code.Substring(0, 1) == "F"
                        select a;

            returnBill.Bill_ID             = m_assignBill.AssignNewNo(context, serverReturnedBill, CE_BillTypeEnum.领料退库单.ToString());
            returnBill.Bill_Time           = ServerTime.Time;
            returnBill.BillStatus          = MaterialReturnedInTheDepotBillStatus.已完成.ToString();
            returnBill.Department          = bill.DeclareDepartment;
            returnBill.ReturnType          = "其他退库";//退库类别
            returnBill.FillInPersonnel     = bill.FillInPersonnel;
            returnBill.FillInPersonnelCode = bill.FillInPersonnelCode;
            returnBill.DepartmentDirector  = bill.DepartmentDirector;
            returnBill.QualityInputer      = "";
            returnBill.DepotManager        = BasicInfo.LoginName;
            returnBill.PurposeCode         = data1.First().Code;
            returnBill.ReturnReason        = "由【报废单】:" + billNo + " 生成的报废退库";
            returnBill.Remark          = "系统自动生成";
            returnBill.StorageID       = "01";
            returnBill.ReturnMode      = "领料退库";//退库方式
            returnBill.IsOnlyForRepair = false;
            returnBill.InDepotDate     = ServerTime.Time;

            context.S_MaterialReturnedInTheDepot.InsertOnSubmit(returnBill);
            context.SubmitChanges();

            foreach (S_ScrapGoods goodsInfo in varList)
            {
                View_F_GoodsPlanCost goodsView = UniversalFunction.GetGoodsInfo(context, goodsInfo.GoodsID);

                QueryCondition_Store queryInfo = new QueryCondition_Store();

                queryInfo.BatchNo   = goodsInfo.BatchNo;
                queryInfo.GoodsID   = goodsInfo.GoodsID;
                queryInfo.StorageID = "01";

                S_Stock stockInfo = UniversalFunction.GetStockInfo(context, queryInfo);

                S_MaterialListReturnedInTheDepot detailInfo = new S_MaterialListReturnedInTheDepot();

                detailInfo.BatchNo         = goodsInfo.BatchNo;
                detailInfo.Bill_ID         = returnBill.Bill_ID;
                detailInfo.GoodsID         = goodsInfo.GoodsID;
                detailInfo.Provider        = goodsInfo.Provider;
                detailInfo.ReturnedAmount  = goodsInfo.Quantity;
                detailInfo.Depot           = goodsView.物品类别;
                detailInfo.ColumnNumber    = stockInfo == null ? "" : stockInfo.ColumnNumber;
                detailInfo.LayerNumber     = stockInfo == null ? "" : stockInfo.LayerNumber;
                detailInfo.ShelfArea       = stockInfo == null ? "" : stockInfo.ShelfArea;
                detailInfo.ProviderBatchNo = stockInfo == null ? "" : stockInfo.ProviderBatchNo;
                detailInfo.Remark          = "";

                context.S_MaterialListReturnedInTheDepot.InsertOnSubmit(detailInfo);
                context.SubmitChanges();
            }

            serverReturnedBill.OpertaionDetailAndStock(context, returnBill);
            context.SubmitChanges();
        }
Exemplo n.º 5
0
        /// <summary>
        /// 生成采购退货单
        /// </summary>
        /// <param name="context">数据上下文</param>
        /// <param name="billNo">单据号</param>
        void InsertRejectBill(DepotManagementDataContext context, string billNo)
        {
            string error = null;
            IMaterialRejectBill     serverRejectBill     = ServerModule.ServerModuleFactory.GetServerModule <IMaterialRejectBill>();
            IMaterialListRejectBill serverRejectListBill = ServerModule.ServerModuleFactory.GetServerModule <IMaterialListRejectBill>();

            var varData = from a in context.S_ScrapBill
                          where a.Bill_ID == billNo
                          select a;

            if (varData.Count() == 0)
            {
                return;
            }

            S_ScrapBill   scarpBill   = varData.Single();
            List <string> lstProvider = (from a in context.S_ScrapGoods
                                         where a.Bill_ID == billNo && a.ResponsibilityProvider == a.Provider
                                         select a.Provider).Distinct().ToList();

            foreach (string provider in lstProvider)
            {
                var dataProviderWork = from a in context.ProviderPrincipal
                                       where a.Provider == provider &&
                                       a.IsMainDuty == true
                                       select a;

                View_HR_Personnel    personnelInfo = UniversalFunction.GetPersonnelInfo(context, dataProviderWork.First().PrincipalWorkId);
                S_MaterialRejectBill bill          = new S_MaterialRejectBill();

                bill.Bill_ID             = m_assignBill.AssignNewNo(context, serverRejectBill, CE_BillTypeEnum.采购退货单.ToString());
                bill.Bill_Time           = ServerTime.Time;
                bill.BillStatus          = MaterialRejectBillBillStatus.已完成.ToString();
                bill.Department          = personnelInfo.部门编码;
                bill.FillInPersonnel     = personnelInfo.姓名;
                bill.FillInPersonnelCode = personnelInfo.工号;
                bill.DepotManager        = BasicInfo.LoginName;
                bill.Provider            = provider;
                bill.Reason       = "由【报废单】:" + billNo + " 生成的报废退货";
                bill.Remark       = "系统自动生成";
                bill.BillType     = "总仓库退货单";
                bill.StorageID    = "01";
                bill.OutDepotDate = ServerTime.Time;

                context.S_MaterialRejectBill.InsertOnSubmit(bill);
                context.SubmitChanges();

                var varData2 = from a in context.S_ScrapGoods
                               where a.Provider == provider &&
                               a.Bill_ID == billNo &&
                               a.ResponsibilityProvider == a.Provider
                               select a;

                foreach (S_ScrapGoods goodsInfo in varData2)
                {
                    string orderForm = GetOrderForm(context, goodsInfo.GoodsID, goodsInfo.BatchNo, provider);

                    if (orderForm == null)
                    {
                        throw new Exception(UniversalFunction.GetGoodsMessage(context, goodsInfo.GoodsID)
                                            + " 批次号:【" + goodsInfo.BatchNo + "】  供应商:【" + provider + "】 找不到对应的【订单号】");
                    }

                    QueryCondition_Store queryInfo = new QueryCondition_Store();

                    queryInfo.BatchNo   = goodsInfo.BatchNo;
                    queryInfo.GoodsID   = goodsInfo.GoodsID;
                    queryInfo.StorageID = "01";

                    S_Stock stockInfo = UniversalFunction.GetStockInfo(context, queryInfo);

                    //插入业务明细信息
                    S_MaterialListRejectBill goods = new S_MaterialListRejectBill();

                    goods.Bill_ID         = bill.Bill_ID;
                    goods.GoodsID         = goodsInfo.GoodsID;
                    goods.Provider        = provider;
                    goods.ProviderBatchNo = stockInfo == null ? "" : stockInfo.ProviderBatchNo;
                    goods.BatchNo         = goodsInfo.BatchNo;
                    goods.Amount          = (decimal)goodsInfo.Quantity;
                    goods.Remark          = "";
                    goods.AssociateID     = orderForm;

                    if (!serverRejectListBill.SetPriceInfo(goods.AssociateID, goods, bill.StorageID, out error))
                    {
                        throw new Exception(error);
                    }

                    context.S_MaterialListRejectBill.InsertOnSubmit(goods);
                    context.SubmitChanges();
                }

                serverRejectBill.OpertaionDetailAndStock(context, bill);
                context.SubmitChanges();
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// 结束业务
        /// </summary>
        /// <param name="billNo">业务编号</param>
        public void FinishBill(string billNo)
        {
            IFlowServer serviceFlow = FlowControlService.ServerModuleFactory.GetServerModule <IFlowServer>();

            Flow_FlowInfo flowInfo =
                _serviceFlow.GetNowFlowInfo(_serviceFlow.GetBusinessTypeID(CE_BillTypeEnum.合格品隔离处置单, null), billNo);

            if (flowInfo == null)
            {
                throw new Exception("单据状态为空,请重新确认");
            }

            DepotManagementDataContext ctx = CommentParameter.DepotDataContext;

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

            try
            {
                Business_QualityManagement_Isolation billInfo = GetSingleBillInfo(billNo);

                if (billInfo == null || billInfo.BillNo.Length == 0)
                {
                    throw new Exception("此单据不存在");
                }

                switch (flowInfo.FlowID)
                {
                case 57:
                    UpdateStockGoodsStatus(ctx, billInfo, (int)CE_StockGoodsStatus.隔离);
                    break;

                case 59:
                    if (billInfo.QC_ScraptCount != null && billInfo.QC_ScraptCount > 0)
                    {
                        InsertIntoMaterialRequisition(ctx, billInfo);
                    }

                    if ((decimal)billInfo.QC_QualifiedCount == billInfo.GoodsCount)
                    {
                        UpdateStockGoodsStatus(ctx, billInfo, (int)CE_StockGoodsStatus.正常);
                    }

                    break;

                case 60:

                    QueryCondition_Store stockQuery = new QueryCondition_Store();

                    stockQuery.BatchNo   = billInfo.BatchNo;
                    stockQuery.GoodsID   = billInfo.GoodsID;
                    stockQuery.StorageID = billInfo.StorageID;
                    stockQuery.Provider  = billInfo.Provider;

                    S_Stock stockInfo = UniversalFunction.GetStockInfo(ctx, stockQuery);

                    if (stockInfo == null)
                    {
                        throw new Exception("获取库存信息失败");
                    }

                    if (billInfo.QC_ConcessionCount == null || billInfo.QC_QualifiedCount == null)
                    {
                        if (stockInfo.ExistCount != billInfo.PH_QualifiedCount)
                        {
                            throw new Exception("此物品的当前库存为【" + stockInfo.ExistCount + "】不等于【处理人】的【合格数】," +
                                                "请根据处理方式要求采购员开【领料单】或者【采购退货单】减库存");
                        }
                    }
                    else
                    {
                        if (stockInfo.ExistCount != billInfo.QC_ConcessionCount + billInfo.QC_QualifiedCount)
                        {
                            throw new Exception("此物品的当前库存为【" + stockInfo.ExistCount + "】不等于【QC】的【让步数】+【合格数】," +
                                                "请根据处理方式要求采购员开【领料单】或者【采购退货单】减库存");
                        }
                    }

                    UpdateStockGoodsStatus(ctx, billInfo, (int)CE_StockGoodsStatus.正常);
                    break;

                default:
                    break;
                }

                ctx.SubmitChanges();
                ctx.Transaction.Commit();
            }
            catch (Exception ex)
            {
                ctx.Transaction.Rollback();
                throw new Exception(ex.Message);
            }
        }